]> git.proxmox.com Git - pve-docs.git/blame - api-viewer/apidata.js
update static/schema information
[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" : {
183 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
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",
fa22697b 2130 "gotify"
82551b2b
TL
2131 ],
2132 "type" : "string"
2133 }
2134 },
2135 "type" : "object"
2136 },
2137 "links" : [
2138 {
2139 "href" : "{name}",
2140 "rel" : "child"
2141 }
2142 ],
2143 "type" : "array"
2144 }
2145 }
2146 },
2147 "leaf" : 0,
2148 "path" : "/cluster/notifications/targets",
2149 "text" : "targets"
2150 },
2151 {
2152 "children" : [
2153 {
2154 "info" : {
2155 "DELETE" : {
2156 "allowtoken" : 1,
fa22697b 2157 "description" : "Remove matcher",
82551b2b 2158 "method" : "DELETE",
fa22697b 2159 "name" : "delete_matcher",
82551b2b
TL
2160 "parameters" : {
2161 "additionalProperties" : 0,
2162 "properties" : {
2163 "name" : {
2164 "format" : "pve-configid",
2165 "type" : "string",
2166 "typetext" : "<string>"
2167 }
2168 }
2169 },
2170 "permissions" : {
2171 "check" : [
2172 "perm",
fa22697b 2173 "/mapping/notifications",
82551b2b
TL
2174 [
2175 "Mapping.Modify"
2176 ]
2177 ]
2178 },
2179 "protected" : 1,
2180 "returns" : {
2181 "type" : "null"
2182 }
2183 },
2184 "GET" : {
2185 "allowtoken" : 1,
fa22697b 2186 "description" : "Return a specific matcher",
82551b2b 2187 "method" : "GET",
fa22697b 2188 "name" : "get_matcher",
82551b2b
TL
2189 "parameters" : {
2190 "additionalProperties" : 0,
2191 "properties" : {
2192 "name" : {
2193 "format" : "pve-configid",
2194 "type" : "string",
2195 "typetext" : "<string>"
2196 }
2197 }
2198 },
2199 "permissions" : {
2200 "check" : [
2201 "or",
2202 [
2203 "perm",
fa22697b 2204 "/mapping/notifications",
82551b2b
TL
2205 [
2206 "Mapping.Modify"
2207 ]
2208 ],
2209 [
2210 "perm",
fa22697b 2211 "/mapping/notifications",
82551b2b
TL
2212 [
2213 "Mapping.Audit"
2214 ]
2215 ]
2216 ]
2217 },
2218 "protected" : 1,
2219 "returns" : {
2220 "properties" : {
2221 "comment" : {
2222 "description" : "Comment",
2223 "optional" : 1,
2224 "type" : "string"
2225 },
2226 "digest" : {
2227 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
2228 "maxLength" : 64,
2229 "optional" : 1,
2230 "type" : "string"
2231 },
fa22697b
TL
2232 "disable" : {
2233 "default" : 0,
2234 "description" : "Disable this matcher",
2235 "optional" : 1,
2236 "type" : "boolean"
2237 },
2238 "invert-match" : {
2239 "description" : "Invert match of the whole matcher",
2240 "optional" : 1,
2241 "type" : "boolean"
2242 },
2243 "match-calendar" : {
2244 "description" : "Match notification timestamp",
82551b2b 2245 "items" : {
82551b2b
TL
2246 "type" : "string"
2247 },
fa22697b 2248 "optional" : 1,
82551b2b
TL
2249 "type" : "array"
2250 },
fa22697b
TL
2251 "match-field" : {
2252 "description" : "Metadata fields to match (regex or exact match). Must be in the form (regex|exact):<field>=<value>",
2253 "items" : {
2254 "type" : "string"
2255 },
2256 "optional" : 1,
2257 "type" : "array"
2258 },
2259 "match-severity" : {
2260 "description" : "Notification severities to match",
2261 "items" : {
2262 "type" : "string"
2263 },
2264 "optional" : 1,
2265 "type" : "array"
2266 },
2267 "mode" : {
2268 "default" : "all",
2269 "description" : "Choose between 'all' and 'any' for when multiple properties are specified",
2270 "enum" : [
2271 "all",
2272 "any"
2273 ],
82551b2b
TL
2274 "optional" : 1,
2275 "type" : "string"
2276 },
2277 "name" : {
fa22697b 2278 "description" : "Name of the matcher.",
82551b2b
TL
2279 "format" : "pve-configid",
2280 "type" : "string"
fa22697b
TL
2281 },
2282 "target" : {
2283 "description" : "Targets to notify on match",
2284 "items" : {
2285 "format" : "pve-configid",
2286 "type" : "string"
2287 },
2288 "optional" : 1,
2289 "type" : "array"
82551b2b
TL
2290 }
2291 },
2292 "type" : "object"
2293 }
2294 },
2295 "PUT" : {
2296 "allowtoken" : 1,
fa22697b 2297 "description" : "Update existing matcher",
82551b2b 2298 "method" : "PUT",
fa22697b 2299 "name" : "update_matcher",
82551b2b
TL
2300 "parameters" : {
2301 "additionalProperties" : 0,
2302 "properties" : {
2303 "comment" : {
2304 "description" : "Comment",
2305 "optional" : 1,
2306 "type" : "string",
2307 "typetext" : "<string>"
2308 },
2309 "delete" : {
2310 "description" : "A list of settings you want to delete.",
2311 "items" : {
2312 "format" : "pve-configid",
2313 "type" : "string"
2314 },
2315 "optional" : 1,
2316 "type" : "array",
2317 "typetext" : "<array>"
2318 },
2319 "digest" : {
2320 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
2321 "maxLength" : 64,
2322 "optional" : 1,
2323 "type" : "string",
2324 "typetext" : "<string>"
2325 },
fa22697b
TL
2326 "disable" : {
2327 "default" : 0,
2328 "description" : "Disable this matcher",
2329 "optional" : 1,
2330 "type" : "boolean",
2331 "typetext" : "<boolean>"
2332 },
2333 "invert-match" : {
2334 "description" : "Invert match of the whole matcher",
2335 "optional" : 1,
2336 "type" : "boolean",
2337 "typetext" : "<boolean>"
2338 },
2339 "match-calendar" : {
2340 "description" : "Match notification timestamp",
82551b2b 2341 "items" : {
82551b2b
TL
2342 "type" : "string"
2343 },
2344 "optional" : 1,
2345 "type" : "array",
2346 "typetext" : "<array>"
2347 },
fa22697b
TL
2348 "match-field" : {
2349 "description" : "Metadata fields to match (regex or exact match). Must be in the form (regex|exact):<field>=<value>",
2350 "items" : {
2351 "type" : "string"
2352 },
82551b2b 2353 "optional" : 1,
fa22697b
TL
2354 "type" : "array",
2355 "typetext" : "<array>"
2356 },
2357 "match-severity" : {
2358 "description" : "Notification severities to match",
2359 "items" : {
2360 "type" : "string"
2361 },
2362 "optional" : 1,
2363 "type" : "array",
2364 "typetext" : "<array>"
2365 },
2366 "mode" : {
2367 "default" : "all",
2368 "description" : "Choose between 'all' and 'any' for when multiple properties are specified",
2369 "enum" : [
2370 "all",
2371 "any"
2372 ],
2373 "optional" : 1,
2374 "type" : "string"
82551b2b
TL
2375 },
2376 "name" : {
fa22697b 2377 "description" : "Name of the matcher.",
82551b2b
TL
2378 "format" : "pve-configid",
2379 "type" : "string",
2380 "typetext" : "<string>"
fa22697b
TL
2381 },
2382 "target" : {
2383 "description" : "Targets to notify on match",
2384 "items" : {
2385 "format" : "pve-configid",
2386 "type" : "string"
2387 },
2388 "optional" : 1,
2389 "type" : "array",
2390 "typetext" : "<array>"
82551b2b
TL
2391 }
2392 }
2393 },
2394 "permissions" : {
2395 "check" : [
2396 "perm",
fa22697b 2397 "/mapping/notifications",
82551b2b
TL
2398 [
2399 "Mapping.Modify"
2400 ]
2401 ]
2402 },
2403 "protected" : 1,
2404 "returns" : {
2405 "type" : "null"
2406 }
2407 }
2408 },
2409 "leaf" : 1,
fa22697b 2410 "path" : "/cluster/notifications/matchers/{name}",
82551b2b
TL
2411 "text" : "{name}"
2412 }
2413 ],
2414 "info" : {
2415 "GET" : {
2416 "allowtoken" : 1,
fa22697b 2417 "description" : "Returns a list of all matchers",
82551b2b 2418 "method" : "GET",
fa22697b 2419 "name" : "get_matchers",
82551b2b
TL
2420 "parameters" : {
2421 "additionalProperties" : 0
2422 },
2423 "permissions" : {
fa22697b
TL
2424 "check" : [
2425 "or",
2426 [
2427 "perm",
2428 "/mapping/notifications",
2429 [
2430 "Mapping.Modify"
2431 ]
2432 ],
2433 [
2434 "perm",
2435 "/mapping/notifications",
2436 [
2437 "Mapping.Audit"
2438 ]
2439 ],
2440 [
2441 "perm",
2442 "/mapping/notifications",
2443 [
2444 "Mapping.Use"
2445 ]
2446 ]
2447 ]
82551b2b
TL
2448 },
2449 "protected" : 1,
2450 "returns" : {
2451 "items" : {
2452 "properties" : {
2453 "comment" : {
2454 "description" : "Comment",
2455 "optional" : 1,
2456 "type" : "string"
2457 },
fa22697b
TL
2458 "disable" : {
2459 "default" : 0,
2460 "description" : "Disable this matcher",
2461 "optional" : 1,
2462 "type" : "boolean"
2463 },
2464 "invert-match" : {
2465 "description" : "Invert match of the whole matcher",
2466 "optional" : 1,
2467 "type" : "boolean"
2468 },
2469 "match-calendar" : {
2470 "description" : "Match notification timestamp",
82551b2b 2471 "items" : {
82551b2b
TL
2472 "type" : "string"
2473 },
fa22697b 2474 "optional" : 1,
82551b2b
TL
2475 "type" : "array"
2476 },
fa22697b
TL
2477 "match-field" : {
2478 "description" : "Metadata fields to match (regex or exact match). Must be in the form (regex|exact):<field>=<value>",
2479 "items" : {
2480 "type" : "string"
2481 },
2482 "optional" : 1,
2483 "type" : "array"
2484 },
2485 "match-severity" : {
2486 "description" : "Notification severities to match",
2487 "items" : {
2488 "type" : "string"
2489 },
2490 "optional" : 1,
2491 "type" : "array"
2492 },
2493 "mode" : {
2494 "default" : "all",
2495 "description" : "Choose between 'all' and 'any' for when multiple properties are specified",
2496 "enum" : [
2497 "all",
2498 "any"
2499 ],
82551b2b
TL
2500 "optional" : 1,
2501 "type" : "string"
2502 },
2503 "name" : {
fa22697b 2504 "description" : "Name of the matcher.",
82551b2b
TL
2505 "format" : "pve-configid",
2506 "type" : "string"
fa22697b
TL
2507 },
2508 "origin" : {
2509 "description" : "Show if this entry was created by a user or was built-in",
2510 "enum" : [
2511 "user-created",
2512 "builtin",
2513 "modified-builtin"
2514 ],
2515 "type" : "string"
2516 },
2517 "target" : {
2518 "description" : "Targets to notify on match",
2519 "items" : {
2520 "format" : "pve-configid",
2521 "type" : "string"
2522 },
2523 "optional" : 1,
2524 "type" : "array"
82551b2b
TL
2525 }
2526 },
2527 "type" : "object"
2528 },
2529 "links" : [
2530 {
2531 "href" : "{name}",
2532 "rel" : "child"
2533 }
2534 ],
2535 "type" : "array"
5d9c884c
DM
2536 }
2537 },
82551b2b
TL
2538 "POST" : {
2539 "allowtoken" : 1,
fa22697b 2540 "description" : "Create a new matcher",
82551b2b 2541 "method" : "POST",
fa22697b 2542 "name" : "create_matcher",
82551b2b
TL
2543 "parameters" : {
2544 "additionalProperties" : 0,
2545 "properties" : {
2546 "comment" : {
2547 "description" : "Comment",
2548 "optional" : 1,
2549 "type" : "string",
2550 "typetext" : "<string>"
2551 },
fa22697b
TL
2552 "disable" : {
2553 "default" : 0,
2554 "description" : "Disable this matcher",
2555 "optional" : 1,
2556 "type" : "boolean",
2557 "typetext" : "<boolean>"
2558 },
2559 "invert-match" : {
2560 "description" : "Invert match of the whole matcher",
2561 "optional" : 1,
2562 "type" : "boolean",
2563 "typetext" : "<boolean>"
2564 },
2565 "match-calendar" : {
2566 "description" : "Match notification timestamp",
82551b2b 2567 "items" : {
82551b2b
TL
2568 "type" : "string"
2569 },
fa22697b 2570 "optional" : 1,
82551b2b
TL
2571 "type" : "array",
2572 "typetext" : "<array>"
2573 },
fa22697b
TL
2574 "match-field" : {
2575 "description" : "Metadata fields to match (regex or exact match). Must be in the form (regex|exact):<field>=<value>",
2576 "items" : {
4772952b
TL
2577 "type" : "string"
2578 },
82551b2b 2579 "optional" : 1,
fa22697b
TL
2580 "type" : "array",
2581 "typetext" : "<array>"
82551b2b 2582 },
fa22697b
TL
2583 "match-severity" : {
2584 "description" : "Notification severities to match",
2585 "items" : {
2586 "type" : "string"
2587 },
82551b2b 2588 "optional" : 1,
fa22697b
TL
2589 "type" : "array",
2590 "typetext" : "<array>"
82551b2b
TL
2591 },
2592 "mode" : {
fa22697b
TL
2593 "default" : "all",
2594 "description" : "Choose between 'all' and 'any' for when multiple properties are specified",
82551b2b 2595 "enum" : [
fa22697b
TL
2596 "all",
2597 "any"
82551b2b
TL
2598 ],
2599 "optional" : 1,
2600 "type" : "string"
2601 },
2602 "name" : {
fa22697b 2603 "description" : "Name of the matcher.",
82551b2b
TL
2604 "format" : "pve-configid",
2605 "type" : "string",
2606 "typetext" : "<string>"
fa22697b
TL
2607 },
2608 "target" : {
2609 "description" : "Targets to notify on match",
2610 "items" : {
2611 "format" : "pve-configid",
2612 "type" : "string"
2613 },
2614 "optional" : 1,
2615 "type" : "array",
2616 "typetext" : "<array>"
82551b2b
TL
2617 }
2618 }
2619 },
2620 "permissions" : {
2621 "check" : [
2622 "perm",
fa22697b 2623 "/mapping/notifications",
82551b2b
TL
2624 [
2625 "Mapping.Modify"
2626 ]
2627 ]
2628 },
2629 "protected" : 1,
2630 "returns" : {
2631 "type" : "null"
2632 }
4772952b
TL
2633 }
2634 },
2635 "leaf" : 0,
fa22697b
TL
2636 "path" : "/cluster/notifications/matchers",
2637 "text" : "matchers"
4772952b
TL
2638 }
2639 ],
2640 "info" : {
2641 "GET" : {
2642 "allowtoken" : 1,
82551b2b 2643 "description" : "Index for notification-related API endpoints.",
4772952b
TL
2644 "method" : "GET",
2645 "name" : "index",
2646 "parameters" : {
2647 "additionalProperties" : 0
2648 },
2649 "permissions" : {
2650 "user" : "all"
2651 },
2652 "returns" : {
2653 "items" : {
2654 "properties" : {},
2655 "type" : "object"
2656 },
2657 "links" : [
2658 {
2659 "href" : "{name}",
2660 "rel" : "child"
2661 }
2662 ],
2663 "type" : "array"
2664 }
2665 }
2666 },
2667 "leaf" : 0,
82551b2b
TL
2668 "path" : "/cluster/notifications",
2669 "text" : "notifications"
4772952b 2670 },
32d876b5
DM
2671 {
2672 "children" : [
c5aa7e14
TL
2673 {
2674 "info" : {
2675 "GET" : {
2676 "allowtoken" : 1,
2677 "description" : "Return the version of the cluster join API available on this node.",
2678 "method" : "GET",
2679 "name" : "join_api_version",
2680 "parameters" : {
2681 "additionalProperties" : 0
2682 },
2683 "permissions" : {
2684 "check" : [
2685 "perm",
2686 "/",
2687 [
2688 "Sys.Audit"
2689 ]
2690 ]
2691 },
2692 "returns" : {
2693 "description" : "Cluster Join API version, currently 1",
2694 "minimum" : 0,
2695 "type" : "integer"
2696 }
2697 }
2698 },
2699 "leaf" : 1,
2700 "path" : "/cluster/config/apiversion",
2701 "text" : "apiversion"
2702 },
32d876b5 2703 {
27a7acb2
DM
2704 "children" : [
2705 {
2706 "info" : {
2707 "DELETE" : {
e9cd3bd4 2708 "allowtoken" : 1,
27a7acb2
DM
2709 "description" : "Removes a node from the cluster configuration.",
2710 "method" : "DELETE",
2711 "name" : "delnode",
2712 "parameters" : {
2713 "additionalProperties" : 0,
2714 "properties" : {
2715 "node" : {
2716 "description" : "The cluster node name.",
2717 "format" : "pve-node",
2718 "type" : "string",
2719 "typetext" : "<string>"
2720 }
2721 }
2722 },
2723 "protected" : 1,
2724 "returns" : {
2725 "type" : "null"
2726 }
2727 },
2728 "POST" : {
e9cd3bd4 2729 "allowtoken" : 1,
e2d681b3 2730 "description" : "Adds a node to the cluster configuration. This call is for internal use.",
27a7acb2
DM
2731 "method" : "POST",
2732 "name" : "addnode",
2733 "parameters" : {
2734 "additionalProperties" : 0,
2735 "properties" : {
c5aa7e14
TL
2736 "apiversion" : {
2737 "description" : "The JOIN_API_VERSION of the new node.",
2738 "optional" : 1,
2739 "type" : "integer",
2740 "typetext" : "<integer>"
2741 },
27a7acb2
DM
2742 "force" : {
2743 "description" : "Do not throw error if node already exists.",
2744 "optional" : 1,
2745 "type" : "boolean",
2746 "typetext" : "<boolean>"
2747 },
1e3f8156 2748 "link[n]" : {
c5aa7e14 2749 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
2750 "format" : {
2751 "address" : {
2752 "default_key" : 1,
2753 "description" : "Hostname (or IP) of this corosync link address.",
2754 "format" : "address",
2755 "format_description" : "IP",
2756 "type" : "string"
2757 },
2758 "priority" : {
2759 "default" : 0,
c5aa7e14 2760 "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
2761 "maximum" : 255,
2762 "minimum" : 0,
2763 "optional" : 1,
2764 "type" : "integer"
2765 }
2766 },
2767 "optional" : 1,
2768 "type" : "string",
2769 "typetext" : "[address=]<IP> [,priority=<integer>]"
2770 },
c5aa7e14
TL
2771 "new_node_ip" : {
2772 "description" : "IP Address of node to add. Used as fallback if no links are given.",
2773 "format" : "ip",
2774 "optional" : 1,
2775 "type" : "string",
2776 "typetext" : "<string>"
2777 },
27a7acb2
DM
2778 "node" : {
2779 "description" : "The cluster node name.",
2780 "format" : "pve-node",
2781 "type" : "string",
2782 "typetext" : "<string>"
2783 },
2784 "nodeid" : {
2785 "description" : "Node id for this node.",
2786 "minimum" : 1,
2787 "optional" : 1,
2788 "type" : "integer",
2789 "typetext" : "<integer> (1 - N)"
2790 },
27a7acb2
DM
2791 "votes" : {
2792 "description" : "Number of votes for this node",
2793 "minimum" : 0,
2794 "optional" : 1,
2795 "type" : "integer",
2796 "typetext" : "<integer> (0 - N)"
2797 }
2798 }
2799 },
2800 "protected" : 1,
2801 "returns" : {
2802 "properties" : {
2803 "corosync_authkey" : {
2804 "type" : "string"
2805 },
2806 "corosync_conf" : {
2807 "type" : "string"
c5aa7e14
TL
2808 },
2809 "warnings" : {
2810 "items" : {
2811 "type" : "string"
2812 },
2813 "type" : "array"
27a7acb2
DM
2814 }
2815 },
2816 "type" : "object"
2817 }
2818 }
2819 },
2820 "leaf" : 1,
2821 "path" : "/cluster/config/nodes/{node}",
2822 "text" : "{node}"
2823 }
2824 ],
32d876b5
DM
2825 "info" : {
2826 "GET" : {
e9cd3bd4 2827 "allowtoken" : 1,
32d876b5
DM
2828 "description" : "Corosync node list.",
2829 "method" : "GET",
2830 "name" : "nodes",
2831 "parameters" : {
2832 "additionalProperties" : 0
2833 },
5d9c884c
DM
2834 "permissions" : {
2835 "check" : [
2836 "perm",
2837 "/",
2838 [
2839 "Sys.Audit"
2840 ]
2841 ]
2842 },
32d876b5
DM
2843 "returns" : {
2844 "items" : {
2845 "properties" : {
2846 "node" : {
2847 "type" : "string"
2848 }
2849 },
2850 "type" : "object"
2851 },
2852 "links" : [
2853 {
2854 "href" : "{node}",
2855 "rel" : "child"
2856 }
2857 ],
2858 "type" : "array"
2859 }
2860 }
2861 },
27a7acb2 2862 "leaf" : 0,
32d876b5
DM
2863 "path" : "/cluster/config/nodes",
2864 "text" : "nodes"
2865 },
27a7acb2
DM
2866 {
2867 "info" : {
2868 "GET" : {
e9cd3bd4 2869 "allowtoken" : 1,
27a7acb2
DM
2870 "description" : "Get information needed to join this cluster over the connected node.",
2871 "method" : "GET",
2872 "name" : "join_info",
2873 "parameters" : {
2874 "additionalProperties" : 0,
2875 "properties" : {
2876 "node" : {
2877 "default" : "current connected node",
2878 "description" : "The node for which the joinee gets the nodeinfo. ",
2879 "format" : "pve-node",
2880 "optional" : 1,
2881 "type" : "string",
2882 "typetext" : "<string>"
2883 }
2884 }
2885 },
a9a8e3d1
DM
2886 "permissions" : {
2887 "check" : [
2888 "perm",
2889 "/",
2890 [
2891 "Sys.Audit"
2892 ]
2893 ]
2894 },
27a7acb2
DM
2895 "returns" : {
2896 "additionalProperties" : 0,
2897 "properties" : {
2898 "config_digest" : {
2899 "type" : "string"
2900 },
2901 "nodelist" : {
2902 "items" : {
2903 "additionalProperties" : 1,
2904 "properties" : {
2905 "name" : {
2906 "description" : "The cluster node name.",
2907 "format" : "pve-node",
2908 "type" : "string"
2909 },
2910 "nodeid" : {
2911 "description" : "Node id for this node.",
2912 "minimum" : 1,
2913 "optional" : 1,
2914 "type" : "integer"
2915 },
2916 "pve_addr" : {
2917 "format" : "ip",
2918 "type" : "string"
2919 },
2920 "pve_fp" : {
2921 "description" : "Certificate SHA 256 fingerprint.",
2922 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
2923 "type" : "string"
2924 },
2925 "quorum_votes" : {
2926 "minimum" : 0,
2927 "type" : "integer"
2928 },
2929 "ring0_addr" : {
c5aa7e14 2930 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
2931 "format" : {
2932 "address" : {
2933 "default_key" : 1,
2934 "description" : "Hostname (or IP) of this corosync link address.",
2935 "format" : "address",
2936 "format_description" : "IP",
2937 "type" : "string"
2938 },
2939 "priority" : {
2940 "default" : 0,
c5aa7e14 2941 "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
2942 "maximum" : 255,
2943 "minimum" : 0,
2944 "optional" : 1,
2945 "type" : "integer"
2946 }
2947 },
27a7acb2
DM
2948 "optional" : 1,
2949 "type" : "string"
2950 }
2951 },
2952 "type" : "object"
2953 },
2954 "type" : "array"
2955 },
2956 "preferred_node" : {
2957 "description" : "The cluster node name.",
2958 "format" : "pve-node",
2959 "type" : "string"
2960 },
2961 "totem" : {
2962 "type" : "object"
2963 }
2964 },
2965 "type" : "object"
2966 }
2967 },
2968 "POST" : {
e9cd3bd4 2969 "allowtoken" : 1,
c5aa7e14 2970 "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
2971 "method" : "POST",
2972 "name" : "join",
2973 "parameters" : {
2974 "additionalProperties" : 0,
2975 "properties" : {
2976 "fingerprint" : {
2977 "description" : "Certificate SHA 256 fingerprint.",
2978 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
2979 "type" : "string"
2980 },
2981 "force" : {
2982 "description" : "Do not throw error if node already exists.",
2983 "optional" : 1,
2984 "type" : "boolean",
2985 "typetext" : "<boolean>"
2986 },
2987 "hostname" : {
2988 "description" : "Hostname (or IP) of an existing cluster member.",
2989 "type" : "string",
2990 "typetext" : "<string>"
2991 },
1e3f8156 2992 "link[n]" : {
c5aa7e14 2993 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
2994 "format" : {
2995 "address" : {
2996 "default_key" : 1,
2997 "description" : "Hostname (or IP) of this corosync link address.",
2998 "format" : "address",
2999 "format_description" : "IP",
3000 "type" : "string"
3001 },
3002 "priority" : {
3003 "default" : 0,
c5aa7e14 3004 "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
3005 "maximum" : 255,
3006 "minimum" : 0,
3007 "optional" : 1,
3008 "type" : "integer"
3009 }
3010 },
3011 "optional" : 1,
3012 "type" : "string",
3013 "typetext" : "[address=]<IP> [,priority=<integer>]"
3014 },
27a7acb2
DM
3015 "nodeid" : {
3016 "description" : "Node id for this node.",
3017 "minimum" : 1,
3018 "optional" : 1,
3019 "type" : "integer",
3020 "typetext" : "<integer> (1 - N)"
3021 },
3022 "password" : {
3023 "description" : "Superuser (root) password of peer node.",
3024 "maxLength" : 128,
3025 "type" : "string",
3026 "typetext" : "<string>"
3027 },
27a7acb2
DM
3028 "votes" : {
3029 "description" : "Number of votes for this node",
3030 "minimum" : 0,
3031 "optional" : 1,
3032 "type" : "integer",
3033 "typetext" : "<integer> (0 - N)"
3034 }
3035 }
3036 },
3037 "protected" : 1,
3038 "returns" : {
3039 "type" : "string"
3040 }
3041 }
3042 },
3043 "leaf" : 1,
3044 "path" : "/cluster/config/join",
3045 "text" : "join"
3046 },
32d876b5
DM
3047 {
3048 "info" : {
3049 "GET" : {
e9cd3bd4 3050 "allowtoken" : 1,
32d876b5
DM
3051 "description" : "Get corosync totem protocol settings.",
3052 "method" : "GET",
3053 "name" : "totem",
3054 "parameters" : {
3055 "additionalProperties" : 0
3056 },
5d9c884c
DM
3057 "permissions" : {
3058 "check" : [
3059 "perm",
3060 "/",
3061 [
3062 "Sys.Audit"
3063 ]
3064 ]
3065 },
32d876b5 3066 "returns" : {
32d876b5
DM
3067 "type" : "object"
3068 }
3069 }
3070 },
3071 "leaf" : 1,
3072 "path" : "/cluster/config/totem",
3073 "text" : "totem"
9226ccbc
TL
3074 },
3075 {
3076 "info" : {
3077 "GET" : {
e9cd3bd4 3078 "allowtoken" : 1,
9226ccbc
TL
3079 "description" : "Get QDevice status",
3080 "method" : "GET",
3081 "name" : "status",
3082 "parameters" : {
3083 "additionalProperties" : 0
3084 },
3085 "permissions" : {
3086 "check" : [
3087 "perm",
3088 "/",
3089 [
3090 "Sys.Audit"
3091 ]
3092 ]
3093 },
de786b48 3094 "protected" : 1,
9226ccbc
TL
3095 "returns" : {
3096 "type" : "object"
3097 }
3098 }
3099 },
3100 "leaf" : 1,
3101 "path" : "/cluster/config/qdevice",
3102 "text" : "qdevice"
32d876b5
DM
3103 }
3104 ],
3105 "info" : {
3106 "GET" : {
e9cd3bd4 3107 "allowtoken" : 1,
32d876b5
DM
3108 "description" : "Directory index.",
3109 "method" : "GET",
3110 "name" : "index",
3111 "parameters" : {
3112 "additionalProperties" : 0
3113 },
5d9c884c
DM
3114 "permissions" : {
3115 "check" : [
3116 "perm",
3117 "/",
3118 [
3119 "Sys.Audit"
3120 ]
3121 ]
3122 },
32d876b5
DM
3123 "returns" : {
3124 "items" : {
3125 "properties" : {},
3126 "type" : "object"
3127 },
3128 "links" : [
3129 {
3130 "href" : "{name}",
3131 "rel" : "child"
3132 }
3133 ],
3134 "type" : "array"
3135 }
27a7acb2
DM
3136 },
3137 "POST" : {
e9cd3bd4 3138 "allowtoken" : 1,
c5aa7e14 3139 "description" : "Generate new cluster configuration. If no links given, default to local IP address as link0.",
27a7acb2
DM
3140 "method" : "POST",
3141 "name" : "create",
3142 "parameters" : {
3143 "additionalProperties" : 0,
3144 "properties" : {
27a7acb2
DM
3145 "clustername" : {
3146 "description" : "The name of the cluster.",
3147 "format" : "pve-node",
3148 "maxLength" : 15,
3149 "type" : "string",
3150 "typetext" : "<string>"
3151 },
1e3f8156 3152 "link[n]" : {
c5aa7e14 3153 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
3154 "format" : {
3155 "address" : {
3156 "default_key" : 1,
3157 "description" : "Hostname (or IP) of this corosync link address.",
3158 "format" : "address",
3159 "format_description" : "IP",
3160 "type" : "string"
3161 },
3162 "priority" : {
3163 "default" : 0,
c5aa7e14 3164 "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
3165 "maximum" : 255,
3166 "minimum" : 0,
3167 "optional" : 1,
3168 "type" : "integer"
3169 }
3170 },
3171 "optional" : 1,
3172 "type" : "string",
3173 "typetext" : "[address=]<IP> [,priority=<integer>]"
3174 },
27a7acb2
DM
3175 "nodeid" : {
3176 "description" : "Node id for this node.",
3177 "minimum" : 1,
3178 "optional" : 1,
3179 "type" : "integer",
3180 "typetext" : "<integer> (1 - N)"
3181 },
27a7acb2
DM
3182 "votes" : {
3183 "description" : "Number of votes for this node.",
3184 "minimum" : 1,
3185 "optional" : 1,
3186 "type" : "integer",
3187 "typetext" : "<integer> (1 - N)"
3188 }
3189 }
3190 },
3191 "protected" : 1,
3192 "returns" : {
3193 "type" : "string"
3194 }
32d876b5
DM
3195 }
3196 },
3197 "leaf" : 0,
3198 "path" : "/cluster/config",
3199 "text" : "config"
3200 },
56122987 3201 {
56122987
DM
3202 "children" : [
3203 {
56122987
DM
3204 "children" : [
3205 {
44660702
DM
3206 "children" : [
3207 {
3208 "info" : {
3209 "DELETE" : {
e9cd3bd4 3210 "allowtoken" : 1,
44660702
DM
3211 "description" : "Delete rule.",
3212 "method" : "DELETE",
3213 "name" : "delete_rule",
3214 "parameters" : {
3215 "additionalProperties" : 0,
3216 "properties" : {
3217 "digest" : {
82551b2b
TL
3218 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3219 "maxLength" : 64,
44660702 3220 "optional" : 1,
013dc89f
DM
3221 "type" : "string",
3222 "typetext" : "<string>"
44660702
DM
3223 },
3224 "group" : {
3225 "description" : "Security Group name.",
4bd7df8b 3226 "maxLength" : 18,
44660702
DM
3227 "minLength" : 2,
3228 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3229 "type" : "string"
3230 },
3231 "pos" : {
3232 "description" : "Update rule at position <pos>.",
3233 "minimum" : 0,
3234 "optional" : 1,
4bd7df8b 3235 "type" : "integer",
013dc89f 3236 "typetext" : "<integer> (0 - N)"
44660702
DM
3237 }
3238 }
3239 },
3240 "permissions" : {
3241 "check" : [
3242 "perm",
3243 "/",
3244 [
3245 "Sys.Modify"
3246 ]
3247 ]
3248 },
3249 "protected" : 1,
3250 "proxyto" : null,
3251 "returns" : {
3252 "type" : "null"
7aacca6f
DM
3253 }
3254 },
44660702 3255 "GET" : {
e9cd3bd4 3256 "allowtoken" : 1,
44660702
DM
3257 "description" : "Get single rule data.",
3258 "method" : "GET",
3259 "name" : "get_rule",
3260 "parameters" : {
3261 "additionalProperties" : 0,
3262 "properties" : {
3263 "group" : {
3264 "description" : "Security Group name.",
4bd7df8b 3265 "maxLength" : 18,
44660702
DM
3266 "minLength" : 2,
3267 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3268 "type" : "string"
3269 },
3270 "pos" : {
3271 "description" : "Update rule at position <pos>.",
3272 "minimum" : 0,
3273 "optional" : 1,
4bd7df8b 3274 "type" : "integer",
013dc89f 3275 "typetext" : "<integer> (0 - N)"
44660702 3276 }
7aacca6f 3277 }
56122987 3278 },
44660702
DM
3279 "permissions" : {
3280 "check" : [
3281 "perm",
3282 "/",
3283 [
3284 "Sys.Audit"
3285 ]
3286 ]
3287 },
3288 "proxyto" : null,
3289 "returns" : {
3290 "properties" : {
e2d681b3
TL
3291 "action" : {
3292 "type" : "string"
3293 },
3294 "comment" : {
3295 "optional" : 1,
3296 "type" : "string"
3297 },
3298 "dest" : {
3299 "optional" : 1,
3300 "type" : "string"
3301 },
3302 "dport" : {
3303 "optional" : 1,
3304 "type" : "string"
3305 },
3306 "enable" : {
3307 "optional" : 1,
3308 "type" : "integer"
3309 },
4772952b
TL
3310 "icmp-type" : {
3311 "optional" : 1,
3312 "type" : "string"
3313 },
e2d681b3
TL
3314 "iface" : {
3315 "optional" : 1,
3316 "type" : "string"
3317 },
3318 "ipversion" : {
3319 "optional" : 1,
3320 "type" : "integer"
3321 },
95895385
TL
3322 "log" : {
3323 "description" : "Log level for firewall rule",
3324 "enum" : [
3325 "emerg",
3326 "alert",
3327 "crit",
3328 "err",
3329 "warning",
3330 "notice",
3331 "info",
3332 "debug",
3333 "nolog"
3334 ],
3335 "optional" : 1,
3336 "type" : "string"
3337 },
e2d681b3
TL
3338 "macro" : {
3339 "optional" : 1,
5f26e15b 3340 "type" : "string"
e2d681b3 3341 },
44660702
DM
3342 "pos" : {
3343 "type" : "integer"
e2d681b3
TL
3344 },
3345 "proto" : {
3346 "optional" : 1,
3347 "type" : "string"
3348 },
3349 "source" : {
3350 "optional" : 1,
3351 "type" : "string"
3352 },
3353 "sport" : {
3354 "optional" : 1,
3355 "type" : "string"
3356 },
3357 "type" : {
3358 "type" : "string"
44660702
DM
3359 }
3360 },
3361 "type" : "object"
56122987 3362 }
44660702 3363 },
7aacca6f 3364 "PUT" : {
e9cd3bd4 3365 "allowtoken" : 1,
44660702
DM
3366 "description" : "Modify rule data.",
3367 "method" : "PUT",
3368 "name" : "update_rule",
7aacca6f
DM
3369 "parameters" : {
3370 "additionalProperties" : 0,
3371 "properties" : {
44660702
DM
3372 "action" : {
3373 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
7aacca6f 3374 "maxLength" : 20,
44660702 3375 "minLength" : 2,
7aacca6f 3376 "optional" : 1,
44660702 3377 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
3378 "type" : "string"
3379 },
44660702 3380 "comment" : {
e94f0d56 3381 "description" : "Descriptive comment.",
7aacca6f 3382 "optional" : 1,
013dc89f
DM
3383 "type" : "string",
3384 "typetext" : "<string>"
7aacca6f 3385 },
44660702
DM
3386 "delete" : {
3387 "description" : "A list of settings you want to delete.",
3388 "format" : "pve-configid-list",
7aacca6f 3389 "optional" : 1,
013dc89f
DM
3390 "type" : "string",
3391 "typetext" : "<string>"
7aacca6f 3392 },
44660702
DM
3393 "dest" : {
3394 "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.",
3395 "format" : "pve-fw-addr-spec",
0695fdaf 3396 "maxLength" : 512,
7aacca6f 3397 "optional" : 1,
013dc89f
DM
3398 "type" : "string",
3399 "typetext" : "<string>"
7aacca6f
DM
3400 },
3401 "digest" : {
82551b2b
TL
3402 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3403 "maxLength" : 64,
7aacca6f 3404 "optional" : 1,
013dc89f
DM
3405 "type" : "string",
3406 "typetext" : "<string>"
7aacca6f 3407 },
44660702
DM
3408 "dport" : {
3409 "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.",
3410 "format" : "pve-fw-dport-spec",
7aacca6f 3411 "optional" : 1,
013dc89f
DM
3412 "type" : "string",
3413 "typetext" : "<string>"
7aacca6f 3414 },
44660702 3415 "enable" : {
e94f0d56 3416 "description" : "Flag to enable/disable a rule.",
44660702 3417 "minimum" : 0,
7aacca6f 3418 "optional" : 1,
4bd7df8b 3419 "type" : "integer",
013dc89f 3420 "typetext" : "<integer> (0 - N)"
7aacca6f 3421 },
44660702
DM
3422 "group" : {
3423 "description" : "Security Group name.",
4bd7df8b 3424 "maxLength" : 18,
44660702
DM
3425 "minLength" : 2,
3426 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3427 "type" : "string"
3428 },
4772952b 3429 "icmp-type" : {
287a95cf 3430 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
3431 "format" : "pve-fw-icmp-type-spec",
3432 "optional" : 1,
3433 "type" : "string",
3434 "typetext" : "<string>"
3435 },
44660702
DM
3436 "iface" : {
3437 "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.",
3438 "format" : "pve-iface",
3439 "maxLength" : 20,
3440 "minLength" : 2,
7aacca6f 3441 "optional" : 1,
013dc89f
DM
3442 "type" : "string",
3443 "typetext" : "<string>"
7aacca6f 3444 },
95895385
TL
3445 "log" : {
3446 "description" : "Log level for firewall rule.",
3447 "enum" : [
3448 "emerg",
3449 "alert",
3450 "crit",
3451 "err",
3452 "warning",
3453 "notice",
3454 "info",
3455 "debug",
3456 "nolog"
3457 ],
3458 "optional" : 1,
3459 "type" : "string"
3460 },
44660702 3461 "macro" : {
e94f0d56 3462 "description" : "Use predefined standard macro.",
44660702
DM
3463 "maxLength" : 128,
3464 "optional" : 1,
013dc89f
DM
3465 "type" : "string",
3466 "typetext" : "<string>"
7aacca6f
DM
3467 },
3468 "moveto" : {
3469 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
44660702 3470 "minimum" : 0,
7aacca6f 3471 "optional" : 1,
4bd7df8b 3472 "type" : "integer",
013dc89f 3473 "typetext" : "<integer> (0 - N)"
7aacca6f 3474 },
44660702
DM
3475 "pos" : {
3476 "description" : "Update rule at position <pos>.",
3477 "minimum" : 0,
3478 "optional" : 1,
4bd7df8b 3479 "type" : "integer",
013dc89f 3480 "typetext" : "<integer> (0 - N)"
7aacca6f 3481 },
44660702
DM
3482 "proto" : {
3483 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
3484 "format" : "pve-fw-protocol-spec",
7aacca6f 3485 "optional" : 1,
013dc89f
DM
3486 "type" : "string",
3487 "typetext" : "<string>"
44660702
DM
3488 },
3489 "source" : {
3490 "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.",
3491 "format" : "pve-fw-addr-spec",
0695fdaf 3492 "maxLength" : 512,
44660702 3493 "optional" : 1,
013dc89f
DM
3494 "type" : "string",
3495 "typetext" : "<string>"
44660702
DM
3496 },
3497 "sport" : {
3498 "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.",
3499 "format" : "pve-fw-sport-spec",
3500 "optional" : 1,
013dc89f
DM
3501 "type" : "string",
3502 "typetext" : "<string>"
7aacca6f
DM
3503 },
3504 "type" : {
e94f0d56 3505 "description" : "Rule type.",
7aacca6f
DM
3506 "enum" : [
3507 "in",
3508 "out",
3509 "group"
3510 ],
3511 "optional" : 1,
3512 "type" : "string"
3513 }
3514 }
3515 },
7aacca6f
DM
3516 "permissions" : {
3517 "check" : [
3518 "perm",
3519 "/",
3520 [
3521 "Sys.Modify"
3522 ]
3523 ]
3524 },
44660702 3525 "protected" : 1,
7aacca6f
DM
3526 "proxyto" : null,
3527 "returns" : {
3528 "type" : "null"
3529 }
7aacca6f
DM
3530 }
3531 },
44660702 3532 "leaf" : 1,
7aacca6f 3533 "path" : "/cluster/firewall/groups/{group}/{pos}",
44660702 3534 "text" : "{pos}"
7aacca6f
DM
3535 }
3536 ],
44660702
DM
3537 "info" : {
3538 "DELETE" : {
e9cd3bd4 3539 "allowtoken" : 1,
44660702
DM
3540 "description" : "Delete security group.",
3541 "method" : "DELETE",
3542 "name" : "delete_security_group",
3543 "parameters" : {
3544 "additionalProperties" : 0,
3545 "properties" : {
3546 "group" : {
3547 "description" : "Security Group name.",
4bd7df8b 3548 "maxLength" : 18,
44660702
DM
3549 "minLength" : 2,
3550 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3551 "type" : "string"
3552 }
56122987 3553 }
7aacca6f 3554 },
44660702
DM
3555 "permissions" : {
3556 "check" : [
3557 "perm",
3558 "/",
3559 [
3560 "Sys.Modify"
3561 ]
7aacca6f 3562 ]
56122987 3563 },
44660702
DM
3564 "protected" : 1,
3565 "returns" : {
3566 "type" : "null"
56122987 3567 }
7aacca6f 3568 },
7aacca6f 3569 "GET" : {
e9cd3bd4 3570 "allowtoken" : 1,
44660702 3571 "description" : "List rules.",
7aacca6f 3572 "method" : "GET",
44660702
DM
3573 "name" : "get_rules",
3574 "parameters" : {
3575 "additionalProperties" : 0,
7aacca6f 3576 "properties" : {
44660702
DM
3577 "group" : {
3578 "description" : "Security Group name.",
4bd7df8b 3579 "maxLength" : 18,
44660702
DM
3580 "minLength" : 2,
3581 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3582 "type" : "string"
7aacca6f 3583 }
44660702 3584 }
7aacca6f
DM
3585 },
3586 "permissions" : {
3587 "check" : [
3588 "perm",
3589 "/",
3590 [
3591 "Sys.Audit"
3592 ]
3593 ]
3594 },
44660702
DM
3595 "proxyto" : null,
3596 "returns" : {
3597 "items" : {
3598 "properties" : {
3599 "pos" : {
3600 "type" : "integer"
3601 }
3602 },
3603 "type" : "object"
3604 },
3605 "links" : [
3606 {
3607 "href" : "{pos}",
3608 "rel" : "child"
3609 }
3610 ],
3611 "type" : "array"
3612 }
3613 },
3614 "POST" : {
e9cd3bd4 3615 "allowtoken" : 1,
44660702
DM
3616 "description" : "Create new rule.",
3617 "method" : "POST",
3618 "name" : "create_rule",
7aacca6f
DM
3619 "parameters" : {
3620 "additionalProperties" : 0,
3621 "properties" : {
44660702
DM
3622 "action" : {
3623 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
3624 "maxLength" : 20,
56122987 3625 "minLength" : 2,
44660702
DM
3626 "optional" : 0,
3627 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 3628 "type" : "string"
56122987 3629 },
44660702 3630 "comment" : {
e94f0d56 3631 "description" : "Descriptive comment.",
56122987 3632 "optional" : 1,
013dc89f
DM
3633 "type" : "string",
3634 "typetext" : "<string>"
56122987 3635 },
44660702
DM
3636 "dest" : {
3637 "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 3638 "format" : "pve-fw-addr-spec",
0695fdaf 3639 "maxLength" : 512,
56122987 3640 "optional" : 1,
013dc89f
DM
3641 "type" : "string",
3642 "typetext" : "<string>"
56122987 3643 },
44660702 3644 "digest" : {
82551b2b
TL
3645 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3646 "maxLength" : 64,
7aacca6f 3647 "optional" : 1,
013dc89f
DM
3648 "type" : "string",
3649 "typetext" : "<string>"
56122987 3650 },
44660702
DM
3651 "dport" : {
3652 "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.",
3653 "format" : "pve-fw-dport-spec",
56122987 3654 "optional" : 1,
013dc89f
DM
3655 "type" : "string",
3656 "typetext" : "<string>"
56122987 3657 },
7aacca6f 3658 "enable" : {
e94f0d56 3659 "description" : "Flag to enable/disable a rule.",
44660702 3660 "minimum" : 0,
7aacca6f 3661 "optional" : 1,
4bd7df8b 3662 "type" : "integer",
013dc89f 3663 "typetext" : "<integer> (0 - N)"
56122987 3664 },
44660702
DM
3665 "group" : {
3666 "description" : "Security Group name.",
4bd7df8b 3667 "maxLength" : 18,
44660702 3668 "minLength" : 2,
7aacca6f 3669 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
3670 "type" : "string"
3671 },
4772952b 3672 "icmp-type" : {
287a95cf 3673 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
3674 "format" : "pve-fw-icmp-type-spec",
3675 "optional" : 1,
3676 "type" : "string",
3677 "typetext" : "<string>"
3678 },
44660702
DM
3679 "iface" : {
3680 "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.",
3681 "format" : "pve-iface",
3682 "maxLength" : 20,
7aacca6f 3683 "minLength" : 2,
44660702 3684 "optional" : 1,
013dc89f
DM
3685 "type" : "string",
3686 "typetext" : "<string>"
56122987 3687 },
95895385
TL
3688 "log" : {
3689 "description" : "Log level for firewall rule.",
3690 "enum" : [
3691 "emerg",
3692 "alert",
3693 "crit",
3694 "err",
3695 "warning",
3696 "notice",
3697 "info",
3698 "debug",
3699 "nolog"
3700 ],
3701 "optional" : 1,
3702 "type" : "string"
3703 },
7aacca6f 3704 "macro" : {
e94f0d56 3705 "description" : "Use predefined standard macro.",
44660702 3706 "maxLength" : 128,
7aacca6f 3707 "optional" : 1,
013dc89f
DM
3708 "type" : "string",
3709 "typetext" : "<string>"
7aacca6f
DM
3710 },
3711 "pos" : {
3712 "description" : "Update rule at position <pos>.",
44660702 3713 "minimum" : 0,
56122987 3714 "optional" : 1,
4bd7df8b 3715 "type" : "integer",
013dc89f 3716 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
3717 },
3718 "proto" : {
3719 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
44660702 3720 "format" : "pve-fw-protocol-spec",
7aacca6f 3721 "optional" : 1,
013dc89f
DM
3722 "type" : "string",
3723 "typetext" : "<string>"
44660702
DM
3724 },
3725 "source" : {
3726 "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.",
3727 "format" : "pve-fw-addr-spec",
0695fdaf 3728 "maxLength" : 512,
44660702 3729 "optional" : 1,
013dc89f
DM
3730 "type" : "string",
3731 "typetext" : "<string>"
44660702
DM
3732 },
3733 "sport" : {
3734 "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.",
3735 "format" : "pve-fw-sport-spec",
3736 "optional" : 1,
013dc89f
DM
3737 "type" : "string",
3738 "typetext" : "<string>"
44660702
DM
3739 },
3740 "type" : {
e94f0d56 3741 "description" : "Rule type.",
44660702
DM
3742 "enum" : [
3743 "in",
3744 "out",
3745 "group"
3746 ],
3747 "optional" : 0,
3748 "type" : "string"
56122987 3749 }
44660702 3750 }
56122987 3751 },
56122987
DM
3752 "permissions" : {
3753 "check" : [
3754 "perm",
3755 "/",
3756 [
3757 "Sys.Modify"
3758 ]
3759 ]
3760 },
44660702
DM
3761 "protected" : 1,
3762 "proxyto" : null,
56122987
DM
3763 "returns" : {
3764 "type" : "null"
7aacca6f 3765 }
44660702
DM
3766 }
3767 },
3768 "leaf" : 0,
3769 "path" : "/cluster/firewall/groups/{group}",
3770 "text" : "{group}"
3771 }
3772 ],
3773 "info" : {
3774 "GET" : {
e9cd3bd4 3775 "allowtoken" : 1,
44660702
DM
3776 "description" : "List security groups.",
3777 "method" : "GET",
3778 "name" : "list_security_groups",
3779 "parameters" : {
3780 "additionalProperties" : 0
3781 },
3782 "permissions" : {
3783 "user" : "all"
3784 },
3785 "returns" : {
3786 "items" : {
3787 "properties" : {
3788 "comment" : {
3789 "optional" : 1,
3790 "type" : "string"
3791 },
3792 "digest" : {
82551b2b
TL
3793 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3794 "maxLength" : 64,
44660702
DM
3795 "optional" : 0,
3796 "type" : "string"
3797 },
3798 "group" : {
3799 "description" : "Security Group name.",
4bd7df8b 3800 "maxLength" : 18,
44660702
DM
3801 "minLength" : 2,
3802 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3803 "type" : "string"
3804 }
3805 },
3806 "type" : "object"
56122987 3807 },
44660702
DM
3808 "links" : [
3809 {
3810 "href" : "{group}",
3811 "rel" : "child"
3812 }
3813 ],
3814 "type" : "array"
3815 }
3816 },
3817 "POST" : {
e9cd3bd4 3818 "allowtoken" : 1,
44660702
DM
3819 "description" : "Create new security group.",
3820 "method" : "POST",
3821 "name" : "create_security_group",
3822 "parameters" : {
3823 "additionalProperties" : 0,
3824 "properties" : {
3825 "comment" : {
3826 "optional" : 1,
013dc89f
DM
3827 "type" : "string",
3828 "typetext" : "<string>"
44660702
DM
3829 },
3830 "digest" : {
82551b2b
TL
3831 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3832 "maxLength" : 64,
44660702 3833 "optional" : 1,
013dc89f
DM
3834 "type" : "string",
3835 "typetext" : "<string>"
44660702
DM
3836 },
3837 "group" : {
3838 "description" : "Security Group name.",
4bd7df8b 3839 "maxLength" : 18,
44660702
DM
3840 "minLength" : 2,
3841 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3842 "type" : "string"
3843 },
3844 "rename" : {
3845 "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 3846 "maxLength" : 18,
44660702
DM
3847 "minLength" : 2,
3848 "optional" : 1,
3849 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3850 "type" : "string"
3851 }
3852 }
3853 },
3854 "permissions" : {
3855 "check" : [
3856 "perm",
3857 "/",
3858 [
3859 "Sys.Modify"
3860 ]
3861 ]
3862 },
3863 "protected" : 1,
3864 "returns" : {
3865 "type" : "null"
3866 }
3867 }
3868 },
3869 "leaf" : 0,
3870 "path" : "/cluster/firewall/groups",
3871 "text" : "groups"
3872 },
3873 {
3874 "children" : [
3875 {
3876 "info" : {
7aacca6f 3877 "DELETE" : {
e9cd3bd4 3878 "allowtoken" : 1,
44660702
DM
3879 "description" : "Delete rule.",
3880 "method" : "DELETE",
3881 "name" : "delete_rule",
3882 "parameters" : {
3883 "additionalProperties" : 0,
3884 "properties" : {
3885 "digest" : {
82551b2b
TL
3886 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3887 "maxLength" : 64,
44660702 3888 "optional" : 1,
013dc89f
DM
3889 "type" : "string",
3890 "typetext" : "<string>"
44660702
DM
3891 },
3892 "pos" : {
3893 "description" : "Update rule at position <pos>.",
3894 "minimum" : 0,
3895 "optional" : 1,
4bd7df8b 3896 "type" : "integer",
013dc89f 3897 "typetext" : "<integer> (0 - N)"
44660702
DM
3898 }
3899 }
3900 },
56122987
DM
3901 "permissions" : {
3902 "check" : [
3903 "perm",
3904 "/",
3905 [
7aacca6f 3906 "Sys.Modify"
56122987
DM
3907 ]
3908 ]
3909 },
44660702 3910 "protected" : 1,
56122987
DM
3911 "proxyto" : null,
3912 "returns" : {
7aacca6f 3913 "type" : "null"
44660702
DM
3914 }
3915 },
3916 "GET" : {
e9cd3bd4 3917 "allowtoken" : 1,
44660702
DM
3918 "description" : "Get single rule data.",
3919 "method" : "GET",
3920 "name" : "get_rule",
56122987
DM
3921 "parameters" : {
3922 "additionalProperties" : 0,
3923 "properties" : {
3924 "pos" : {
7aacca6f 3925 "description" : "Update rule at position <pos>.",
44660702 3926 "minimum" : 0,
56122987 3927 "optional" : 1,
4bd7df8b 3928 "type" : "integer",
013dc89f 3929 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
3930 }
3931 }
3932 },
7aacca6f
DM
3933 "permissions" : {
3934 "check" : [
3935 "perm",
3936 "/",
3937 [
3938 "Sys.Audit"
3939 ]
3940 ]
56122987 3941 },
44660702
DM
3942 "proxyto" : null,
3943 "returns" : {
7aacca6f 3944 "properties" : {
e2d681b3
TL
3945 "action" : {
3946 "type" : "string"
3947 },
3948 "comment" : {
3949 "optional" : 1,
3950 "type" : "string"
3951 },
3952 "dest" : {
3953 "optional" : 1,
3954 "type" : "string"
3955 },
3956 "dport" : {
3957 "optional" : 1,
3958 "type" : "string"
3959 },
3960 "enable" : {
3961 "optional" : 1,
3962 "type" : "integer"
3963 },
4772952b
TL
3964 "icmp-type" : {
3965 "optional" : 1,
3966 "type" : "string"
3967 },
e2d681b3
TL
3968 "iface" : {
3969 "optional" : 1,
3970 "type" : "string"
3971 },
3972 "ipversion" : {
3973 "optional" : 1,
3974 "type" : "integer"
3975 },
95895385
TL
3976 "log" : {
3977 "description" : "Log level for firewall rule",
3978 "enum" : [
3979 "emerg",
3980 "alert",
3981 "crit",
3982 "err",
3983 "warning",
3984 "notice",
3985 "info",
3986 "debug",
3987 "nolog"
3988 ],
3989 "optional" : 1,
3990 "type" : "string"
3991 },
e2d681b3
TL
3992 "macro" : {
3993 "optional" : 1,
5f26e15b 3994 "type" : "string"
e2d681b3 3995 },
44660702
DM
3996 "pos" : {
3997 "type" : "integer"
e2d681b3
TL
3998 },
3999 "proto" : {
4000 "optional" : 1,
4001 "type" : "string"
4002 },
4003 "source" : {
4004 "optional" : 1,
4005 "type" : "string"
4006 },
4007 "sport" : {
4008 "optional" : 1,
4009 "type" : "string"
4010 },
4011 "type" : {
4012 "type" : "string"
7aacca6f 4013 }
44660702
DM
4014 },
4015 "type" : "object"
4016 }
56122987 4017 },
44660702 4018 "PUT" : {
e9cd3bd4 4019 "allowtoken" : 1,
44660702
DM
4020 "description" : "Modify rule data.",
4021 "method" : "PUT",
4022 "name" : "update_rule",
7aacca6f
DM
4023 "parameters" : {
4024 "additionalProperties" : 0,
4025 "properties" : {
44660702
DM
4026 "action" : {
4027 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
4028 "maxLength" : 20,
4029 "minLength" : 2,
4030 "optional" : 1,
4031 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4032 "type" : "string"
7aacca6f 4033 },
44660702 4034 "comment" : {
e94f0d56 4035 "description" : "Descriptive comment.",
44660702 4036 "optional" : 1,
013dc89f
DM
4037 "type" : "string",
4038 "typetext" : "<string>"
7aacca6f 4039 },
44660702
DM
4040 "delete" : {
4041 "description" : "A list of settings you want to delete.",
4042 "format" : "pve-configid-list",
4043 "optional" : 1,
013dc89f
DM
4044 "type" : "string",
4045 "typetext" : "<string>"
44660702
DM
4046 },
4047 "dest" : {
4048 "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.",
4049 "format" : "pve-fw-addr-spec",
0695fdaf 4050 "maxLength" : 512,
44660702 4051 "optional" : 1,
013dc89f
DM
4052 "type" : "string",
4053 "typetext" : "<string>"
44660702
DM
4054 },
4055 "digest" : {
82551b2b
TL
4056 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4057 "maxLength" : 64,
44660702 4058 "optional" : 1,
013dc89f
DM
4059 "type" : "string",
4060 "typetext" : "<string>"
44660702
DM
4061 },
4062 "dport" : {
4063 "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.",
4064 "format" : "pve-fw-dport-spec",
4065 "optional" : 1,
013dc89f
DM
4066 "type" : "string",
4067 "typetext" : "<string>"
44660702
DM
4068 },
4069 "enable" : {
e94f0d56 4070 "description" : "Flag to enable/disable a rule.",
44660702
DM
4071 "minimum" : 0,
4072 "optional" : 1,
4bd7df8b 4073 "type" : "integer",
013dc89f 4074 "typetext" : "<integer> (0 - N)"
44660702 4075 },
4772952b 4076 "icmp-type" : {
287a95cf 4077 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
4078 "format" : "pve-fw-icmp-type-spec",
4079 "optional" : 1,
4080 "type" : "string",
4081 "typetext" : "<string>"
4082 },
44660702
DM
4083 "iface" : {
4084 "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.",
4085 "format" : "pve-iface",
4086 "maxLength" : 20,
7aacca6f 4087 "minLength" : 2,
44660702 4088 "optional" : 1,
013dc89f
DM
4089 "type" : "string",
4090 "typetext" : "<string>"
7aacca6f 4091 },
95895385
TL
4092 "log" : {
4093 "description" : "Log level for firewall rule.",
4094 "enum" : [
4095 "emerg",
4096 "alert",
4097 "crit",
4098 "err",
4099 "warning",
4100 "notice",
4101 "info",
4102 "debug",
4103 "nolog"
4104 ],
4105 "optional" : 1,
4106 "type" : "string"
4107 },
44660702 4108 "macro" : {
e94f0d56 4109 "description" : "Use predefined standard macro.",
44660702
DM
4110 "maxLength" : 128,
4111 "optional" : 1,
013dc89f
DM
4112 "type" : "string",
4113 "typetext" : "<string>"
44660702
DM
4114 },
4115 "moveto" : {
4116 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
4117 "minimum" : 0,
4118 "optional" : 1,
4bd7df8b 4119 "type" : "integer",
013dc89f 4120 "typetext" : "<integer> (0 - N)"
44660702
DM
4121 },
4122 "pos" : {
4123 "description" : "Update rule at position <pos>.",
4124 "minimum" : 0,
4125 "optional" : 1,
4bd7df8b 4126 "type" : "integer",
013dc89f 4127 "typetext" : "<integer> (0 - N)"
44660702
DM
4128 },
4129 "proto" : {
4130 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
4131 "format" : "pve-fw-protocol-spec",
4132 "optional" : 1,
013dc89f
DM
4133 "type" : "string",
4134 "typetext" : "<string>"
44660702
DM
4135 },
4136 "source" : {
4137 "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.",
4138 "format" : "pve-fw-addr-spec",
0695fdaf 4139 "maxLength" : 512,
44660702 4140 "optional" : 1,
013dc89f
DM
4141 "type" : "string",
4142 "typetext" : "<string>"
44660702
DM
4143 },
4144 "sport" : {
4145 "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.",
4146 "format" : "pve-fw-sport-spec",
4147 "optional" : 1,
013dc89f
DM
4148 "type" : "string",
4149 "typetext" : "<string>"
44660702
DM
4150 },
4151 "type" : {
e94f0d56 4152 "description" : "Rule type.",
44660702
DM
4153 "enum" : [
4154 "in",
4155 "out",
4156 "group"
4157 ],
4158 "optional" : 1,
4159 "type" : "string"
7aacca6f 4160 }
56122987
DM
4161 }
4162 },
7aacca6f
DM
4163 "permissions" : {
4164 "check" : [
4165 "perm",
4166 "/",
4167 [
4168 "Sys.Modify"
4169 ]
4170 ]
4171 },
44660702
DM
4172 "protected" : 1,
4173 "proxyto" : null,
4174 "returns" : {
4175 "type" : "null"
4176 }
7aacca6f 4177 }
56122987 4178 },
44660702
DM
4179 "leaf" : 1,
4180 "path" : "/cluster/firewall/rules/{pos}",
4181 "text" : "{pos}"
7aacca6f
DM
4182 }
4183 ],
7aacca6f 4184 "info" : {
44660702 4185 "GET" : {
e9cd3bd4 4186 "allowtoken" : 1,
44660702
DM
4187 "description" : "List rules.",
4188 "method" : "GET",
4189 "name" : "get_rules",
7aacca6f 4190 "parameters" : {
44660702 4191 "additionalProperties" : 0
7aacca6f
DM
4192 },
4193 "permissions" : {
4194 "check" : [
4195 "perm",
4196 "/",
4197 [
44660702 4198 "Sys.Audit"
7aacca6f
DM
4199 ]
4200 ]
4201 },
44660702 4202 "proxyto" : null,
7aacca6f 4203 "returns" : {
7aacca6f
DM
4204 "items" : {
4205 "properties" : {
44660702
DM
4206 "pos" : {
4207 "type" : "integer"
7aacca6f
DM
4208 }
4209 },
4210 "type" : "object"
56122987 4211 },
7aacca6f
DM
4212 "links" : [
4213 {
44660702 4214 "href" : "{pos}",
7aacca6f
DM
4215 "rel" : "child"
4216 }
44660702
DM
4217 ],
4218 "type" : "array"
7aacca6f 4219 }
44660702 4220 },
7aacca6f 4221 "POST" : {
e9cd3bd4 4222 "allowtoken" : 1,
44660702 4223 "description" : "Create new rule.",
7aacca6f 4224 "method" : "POST",
44660702 4225 "name" : "create_rule",
7aacca6f
DM
4226 "parameters" : {
4227 "additionalProperties" : 0,
4228 "properties" : {
44660702
DM
4229 "action" : {
4230 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
4231 "maxLength" : 20,
7aacca6f 4232 "minLength" : 2,
44660702
DM
4233 "optional" : 0,
4234 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4235 "type" : "string"
7aacca6f
DM
4236 },
4237 "comment" : {
e94f0d56 4238 "description" : "Descriptive comment.",
7aacca6f 4239 "optional" : 1,
013dc89f
DM
4240 "type" : "string",
4241 "typetext" : "<string>"
44660702
DM
4242 },
4243 "dest" : {
4244 "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.",
4245 "format" : "pve-fw-addr-spec",
0695fdaf 4246 "maxLength" : 512,
44660702 4247 "optional" : 1,
013dc89f
DM
4248 "type" : "string",
4249 "typetext" : "<string>"
44660702
DM
4250 },
4251 "digest" : {
82551b2b
TL
4252 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4253 "maxLength" : 64,
44660702 4254 "optional" : 1,
013dc89f
DM
4255 "type" : "string",
4256 "typetext" : "<string>"
44660702
DM
4257 },
4258 "dport" : {
4259 "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.",
4260 "format" : "pve-fw-dport-spec",
4261 "optional" : 1,
013dc89f
DM
4262 "type" : "string",
4263 "typetext" : "<string>"
44660702
DM
4264 },
4265 "enable" : {
e94f0d56 4266 "description" : "Flag to enable/disable a rule.",
44660702
DM
4267 "minimum" : 0,
4268 "optional" : 1,
4bd7df8b 4269 "type" : "integer",
013dc89f 4270 "typetext" : "<integer> (0 - N)"
44660702 4271 },
4772952b 4272 "icmp-type" : {
287a95cf 4273 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
4274 "format" : "pve-fw-icmp-type-spec",
4275 "optional" : 1,
4276 "type" : "string",
4277 "typetext" : "<string>"
4278 },
44660702
DM
4279 "iface" : {
4280 "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.",
4281 "format" : "pve-iface",
4282 "maxLength" : 20,
4283 "minLength" : 2,
4284 "optional" : 1,
013dc89f
DM
4285 "type" : "string",
4286 "typetext" : "<string>"
44660702 4287 },
95895385
TL
4288 "log" : {
4289 "description" : "Log level for firewall rule.",
4290 "enum" : [
4291 "emerg",
4292 "alert",
4293 "crit",
4294 "err",
4295 "warning",
4296 "notice",
4297 "info",
4298 "debug",
4299 "nolog"
4300 ],
4301 "optional" : 1,
4302 "type" : "string"
4303 },
44660702 4304 "macro" : {
e94f0d56 4305 "description" : "Use predefined standard macro.",
44660702
DM
4306 "maxLength" : 128,
4307 "optional" : 1,
013dc89f
DM
4308 "type" : "string",
4309 "typetext" : "<string>"
44660702
DM
4310 },
4311 "pos" : {
4312 "description" : "Update rule at position <pos>.",
4313 "minimum" : 0,
4314 "optional" : 1,
4bd7df8b 4315 "type" : "integer",
013dc89f 4316 "typetext" : "<integer> (0 - N)"
44660702
DM
4317 },
4318 "proto" : {
4319 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
4320 "format" : "pve-fw-protocol-spec",
4321 "optional" : 1,
013dc89f
DM
4322 "type" : "string",
4323 "typetext" : "<string>"
44660702
DM
4324 },
4325 "source" : {
4326 "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.",
4327 "format" : "pve-fw-addr-spec",
0695fdaf 4328 "maxLength" : 512,
44660702 4329 "optional" : 1,
013dc89f
DM
4330 "type" : "string",
4331 "typetext" : "<string>"
44660702
DM
4332 },
4333 "sport" : {
4334 "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.",
4335 "format" : "pve-fw-sport-spec",
4336 "optional" : 1,
013dc89f
DM
4337 "type" : "string",
4338 "typetext" : "<string>"
44660702
DM
4339 },
4340 "type" : {
e94f0d56 4341 "description" : "Rule type.",
44660702
DM
4342 "enum" : [
4343 "in",
4344 "out",
4345 "group"
4346 ],
4347 "optional" : 0,
4348 "type" : "string"
7aacca6f
DM
4349 }
4350 }
4351 },
4352 "permissions" : {
4353 "check" : [
4354 "perm",
4355 "/",
4356 [
4357 "Sys.Modify"
4358 ]
4359 ]
4360 },
44660702
DM
4361 "protected" : 1,
4362 "proxyto" : null,
7aacca6f 4363 "returns" : {
44660702
DM
4364 "type" : "null"
4365 }
4366 }
4367 },
4368 "leaf" : 0,
4369 "path" : "/cluster/firewall/rules",
4370 "text" : "rules"
4371 },
4372 {
4373 "children" : [
4374 {
4375 "children" : [
4376 {
4377 "info" : {
4378 "DELETE" : {
e9cd3bd4 4379 "allowtoken" : 1,
44660702
DM
4380 "description" : "Remove IP or Network from IPSet.",
4381 "method" : "DELETE",
4382 "name" : "remove_ip",
4383 "parameters" : {
4384 "additionalProperties" : 0,
4385 "properties" : {
4386 "cidr" : {
4387 "description" : "Network/IP specification in CIDR format.",
4388 "format" : "IPorCIDRorAlias",
013dc89f
DM
4389 "type" : "string",
4390 "typetext" : "<string>"
44660702
DM
4391 },
4392 "digest" : {
82551b2b
TL
4393 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4394 "maxLength" : 64,
44660702 4395 "optional" : 1,
013dc89f
DM
4396 "type" : "string",
4397 "typetext" : "<string>"
44660702
DM
4398 },
4399 "name" : {
4400 "description" : "IP set name.",
4401 "maxLength" : 64,
4402 "minLength" : 2,
4403 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4404 "type" : "string"
4405 }
4406 }
4407 },
4408 "permissions" : {
4409 "check" : [
4410 "perm",
4411 "/",
4412 [
4413 "Sys.Modify"
4414 ]
4415 ]
4416 },
4417 "protected" : 1,
4418 "returns" : {
4419 "type" : "null"
4420 }
7aacca6f 4421 },
44660702 4422 "GET" : {
e9cd3bd4 4423 "allowtoken" : 1,
44660702
DM
4424 "description" : "Read IP or Network settings from IPSet.",
4425 "method" : "GET",
4426 "name" : "read_ip",
4427 "parameters" : {
4428 "additionalProperties" : 0,
4429 "properties" : {
4430 "cidr" : {
4431 "description" : "Network/IP specification in CIDR format.",
4432 "format" : "IPorCIDRorAlias",
013dc89f
DM
4433 "type" : "string",
4434 "typetext" : "<string>"
44660702
DM
4435 },
4436 "name" : {
4437 "description" : "IP set name.",
4438 "maxLength" : 64,
4439 "minLength" : 2,
4440 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4441 "type" : "string"
4442 }
4443 }
4444 },
4445 "permissions" : {
4446 "check" : [
4447 "perm",
4448 "/",
4449 [
4450 "Sys.Audit"
4451 ]
4452 ]
4453 },
4454 "protected" : 1,
4455 "returns" : {
4456 "type" : "object"
4457 }
7aacca6f 4458 },
44660702 4459 "PUT" : {
e9cd3bd4 4460 "allowtoken" : 1,
44660702
DM
4461 "description" : "Update IP or Network settings",
4462 "method" : "PUT",
4463 "name" : "update_ip",
4464 "parameters" : {
4465 "additionalProperties" : 0,
4466 "properties" : {
4467 "cidr" : {
4468 "description" : "Network/IP specification in CIDR format.",
4469 "format" : "IPorCIDRorAlias",
013dc89f
DM
4470 "type" : "string",
4471 "typetext" : "<string>"
44660702
DM
4472 },
4473 "comment" : {
4474 "optional" : 1,
013dc89f
DM
4475 "type" : "string",
4476 "typetext" : "<string>"
44660702
DM
4477 },
4478 "digest" : {
82551b2b
TL
4479 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4480 "maxLength" : 64,
44660702 4481 "optional" : 1,
013dc89f
DM
4482 "type" : "string",
4483 "typetext" : "<string>"
44660702
DM
4484 },
4485 "name" : {
4486 "description" : "IP set name.",
4487 "maxLength" : 64,
4488 "minLength" : 2,
4489 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4490 "type" : "string"
4491 },
4492 "nomatch" : {
4493 "optional" : 1,
013dc89f
DM
4494 "type" : "boolean",
4495 "typetext" : "<boolean>"
44660702
DM
4496 }
4497 }
4498 },
4499 "permissions" : {
4500 "check" : [
4501 "perm",
4502 "/",
4503 [
4504 "Sys.Modify"
4505 ]
4506 ]
4507 },
4508 "protected" : 1,
4509 "returns" : {
4510 "type" : "null"
4511 }
7aacca6f
DM
4512 }
4513 },
44660702
DM
4514 "leaf" : 1,
4515 "path" : "/cluster/firewall/ipset/{name}/{cidr}",
4516 "text" : "{cidr}"
7aacca6f 4517 }
44660702 4518 ],
7aacca6f
DM
4519 "info" : {
4520 "DELETE" : {
e9cd3bd4 4521 "allowtoken" : 1,
44660702
DM
4522 "description" : "Delete IPSet",
4523 "method" : "DELETE",
4524 "name" : "delete_ipset",
56122987 4525 "parameters" : {
44660702 4526 "additionalProperties" : 0,
56122987 4527 "properties" : {
81a3384d
TL
4528 "force" : {
4529 "description" : "Delete all members of the IPSet, if there are any.",
4530 "optional" : 1,
4531 "type" : "boolean",
4532 "typetext" : "<boolean>"
4533 },
56122987 4534 "name" : {
44660702 4535 "description" : "IP set name.",
56122987 4536 "maxLength" : 64,
44660702 4537 "minLength" : 2,
56122987 4538 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 4539 "type" : "string"
56122987 4540 }
44660702 4541 }
7aacca6f 4542 },
56122987
DM
4543 "permissions" : {
4544 "check" : [
4545 "perm",
4546 "/",
4547 [
4548 "Sys.Modify"
4549 ]
4550 ]
4551 },
7aacca6f
DM
4552 "protected" : 1,
4553 "returns" : {
4554 "type" : "null"
44660702 4555 }
7aacca6f 4556 },
44660702 4557 "GET" : {
e9cd3bd4 4558 "allowtoken" : 1,
44660702
DM
4559 "description" : "List IPSet content",
4560 "method" : "GET",
4561 "name" : "get_ipset",
56122987
DM
4562 "parameters" : {
4563 "additionalProperties" : 0,
4564 "properties" : {
7aacca6f 4565 "name" : {
44660702 4566 "description" : "IP set name.",
7aacca6f 4567 "maxLength" : 64,
7aacca6f 4568 "minLength" : 2,
44660702 4569 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 4570 "type" : "string"
56122987 4571 }
7aacca6f 4572 }
56122987 4573 },
56122987
DM
4574 "permissions" : {
4575 "check" : [
4576 "perm",
4577 "/",
4578 [
44660702 4579 "Sys.Audit"
56122987
DM
4580 ]
4581 ]
44660702
DM
4582 },
4583 "returns" : {
4584 "items" : {
4585 "properties" : {
4586 "cidr" : {
4587 "type" : "string"
4588 },
4589 "comment" : {
4590 "optional" : 1,
4591 "type" : "string"
4592 },
4593 "digest" : {
82551b2b
TL
4594 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4595 "maxLength" : 64,
44660702
DM
4596 "optional" : 0,
4597 "type" : "string"
4598 },
4599 "nomatch" : {
4600 "optional" : 1,
4601 "type" : "boolean"
4602 }
4603 },
4604 "type" : "object"
4605 },
4606 "links" : [
4607 {
4608 "href" : "{cidr}",
4609 "rel" : "child"
4610 }
4611 ],
4612 "type" : "array"
7aacca6f
DM
4613 }
4614 },
44660702 4615 "POST" : {
e9cd3bd4 4616 "allowtoken" : 1,
44660702
DM
4617 "description" : "Add IP or Network to IPSet.",
4618 "method" : "POST",
4619 "name" : "create_ip",
56122987
DM
4620 "parameters" : {
4621 "additionalProperties" : 0,
4622 "properties" : {
44660702
DM
4623 "cidr" : {
4624 "description" : "Network/IP specification in CIDR format.",
4625 "format" : "IPorCIDRorAlias",
013dc89f
DM
4626 "type" : "string",
4627 "typetext" : "<string>"
44660702
DM
4628 },
4629 "comment" : {
4630 "optional" : 1,
013dc89f
DM
4631 "type" : "string",
4632 "typetext" : "<string>"
44660702
DM
4633 },
4634 "name" : {
4635 "description" : "IP set name.",
4636 "maxLength" : 64,
4637 "minLength" : 2,
4638 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4639 "type" : "string"
4640 },
4641 "nomatch" : {
4642 "optional" : 1,
013dc89f
DM
4643 "type" : "boolean",
4644 "typetext" : "<boolean>"
56122987
DM
4645 }
4646 }
4647 },
56122987
DM
4648 "permissions" : {
4649 "check" : [
4650 "perm",
4651 "/",
4652 [
44660702 4653 "Sys.Modify"
56122987
DM
4654 ]
4655 ]
4656 },
44660702 4657 "protected" : 1,
56122987 4658 "returns" : {
44660702
DM
4659 "type" : "null"
4660 }
56122987
DM
4661 }
4662 },
44660702
DM
4663 "leaf" : 0,
4664 "path" : "/cluster/firewall/ipset/{name}",
4665 "text" : "{name}"
56122987
DM
4666 }
4667 ],
56122987 4668 "info" : {
44660702 4669 "GET" : {
e9cd3bd4 4670 "allowtoken" : 1,
44660702
DM
4671 "description" : "List IPSets",
4672 "method" : "GET",
4673 "name" : "ipset_index",
56122987 4674 "parameters" : {
7aacca6f 4675 "additionalProperties" : 0
56122987 4676 },
56122987
DM
4677 "permissions" : {
4678 "check" : [
4679 "perm",
4680 "/",
4681 [
7aacca6f 4682 "Sys.Audit"
56122987
DM
4683 ]
4684 ]
4685 },
56122987
DM
4686 "returns" : {
4687 "items" : {
4688 "properties" : {
44660702
DM
4689 "comment" : {
4690 "optional" : 1,
4691 "type" : "string"
56122987 4692 },
44660702 4693 "digest" : {
82551b2b
TL
4694 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4695 "maxLength" : 64,
44660702
DM
4696 "optional" : 0,
4697 "type" : "string"
4698 },
4699 "name" : {
4700 "description" : "IP set name.",
4701 "maxLength" : 64,
4702 "minLength" : 2,
4703 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 4704 "type" : "string"
56122987
DM
4705 }
4706 },
4707 "type" : "object"
44660702
DM
4708 },
4709 "links" : [
4710 {
4711 "href" : "{name}",
4712 "rel" : "child"
4713 }
4714 ],
4715 "type" : "array"
56122987 4716 }
44660702
DM
4717 },
4718 "POST" : {
e9cd3bd4 4719 "allowtoken" : 1,
44660702
DM
4720 "description" : "Create new IPSet",
4721 "method" : "POST",
4722 "name" : "create_ipset",
7aacca6f
DM
4723 "parameters" : {
4724 "additionalProperties" : 0,
4725 "properties" : {
44660702
DM
4726 "comment" : {
4727 "optional" : 1,
013dc89f
DM
4728 "type" : "string",
4729 "typetext" : "<string>"
44660702
DM
4730 },
4731 "digest" : {
82551b2b
TL
4732 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4733 "maxLength" : 64,
44660702 4734 "optional" : 1,
013dc89f
DM
4735 "type" : "string",
4736 "typetext" : "<string>"
44660702
DM
4737 },
4738 "name" : {
4739 "description" : "IP set name.",
4740 "maxLength" : 64,
4741 "minLength" : 2,
4742 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4743 "type" : "string"
4744 },
4745 "rename" : {
4746 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
4747 "maxLength" : 64,
4748 "minLength" : 2,
4749 "optional" : 1,
4750 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4751 "type" : "string"
7aacca6f
DM
4752 }
4753 }
4754 },
56122987
DM
4755 "permissions" : {
4756 "check" : [
4757 "perm",
4758 "/",
4759 [
44660702 4760 "Sys.Modify"
56122987
DM
4761 ]
4762 ]
4763 },
44660702 4764 "protected" : 1,
56122987 4765 "returns" : {
44660702
DM
4766 "type" : "null"
4767 }
56122987 4768 }
7aacca6f 4769 },
44660702
DM
4770 "leaf" : 0,
4771 "path" : "/cluster/firewall/ipset",
4772 "text" : "ipset"
4773 },
56122987 4774 {
44660702
DM
4775 "children" : [
4776 {
4777 "info" : {
4778 "DELETE" : {
e9cd3bd4 4779 "allowtoken" : 1,
44660702
DM
4780 "description" : "Remove IP or Network alias.",
4781 "method" : "DELETE",
4782 "name" : "remove_alias",
4783 "parameters" : {
4784 "additionalProperties" : 0,
4785 "properties" : {
4786 "digest" : {
82551b2b
TL
4787 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4788 "maxLength" : 64,
44660702 4789 "optional" : 1,
013dc89f
DM
4790 "type" : "string",
4791 "typetext" : "<string>"
44660702
DM
4792 },
4793 "name" : {
4794 "description" : "Alias name.",
4795 "maxLength" : 64,
4796 "minLength" : 2,
4797 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4798 "type" : "string"
4799 }
4800 }
4801 },
4802 "permissions" : {
4803 "check" : [
4804 "perm",
4805 "/",
4806 [
4807 "Sys.Modify"
4808 ]
4809 ]
4810 },
4811 "protected" : 1,
4812 "returns" : {
4813 "type" : "null"
4814 }
4815 },
4816 "GET" : {
e9cd3bd4 4817 "allowtoken" : 1,
44660702
DM
4818 "description" : "Read alias.",
4819 "method" : "GET",
4820 "name" : "read_alias",
4821 "parameters" : {
4822 "additionalProperties" : 0,
4823 "properties" : {
4824 "name" : {
4825 "description" : "Alias name.",
4826 "maxLength" : 64,
4827 "minLength" : 2,
4828 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4829 "type" : "string"
4830 }
4831 }
4832 },
4833 "permissions" : {
4834 "check" : [
4835 "perm",
4836 "/",
4837 [
4838 "Sys.Audit"
4839 ]
4840 ]
4841 },
4842 "returns" : {
4843 "type" : "object"
4844 }
4845 },
4846 "PUT" : {
e9cd3bd4 4847 "allowtoken" : 1,
44660702
DM
4848 "description" : "Update IP or Network alias.",
4849 "method" : "PUT",
4850 "name" : "update_alias",
4851 "parameters" : {
4852 "additionalProperties" : 0,
4853 "properties" : {
4854 "cidr" : {
4855 "description" : "Network/IP specification in CIDR format.",
4856 "format" : "IPorCIDR",
013dc89f
DM
4857 "type" : "string",
4858 "typetext" : "<string>"
44660702
DM
4859 },
4860 "comment" : {
4861 "optional" : 1,
013dc89f
DM
4862 "type" : "string",
4863 "typetext" : "<string>"
44660702
DM
4864 },
4865 "digest" : {
82551b2b
TL
4866 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4867 "maxLength" : 64,
44660702 4868 "optional" : 1,
013dc89f
DM
4869 "type" : "string",
4870 "typetext" : "<string>"
44660702
DM
4871 },
4872 "name" : {
4873 "description" : "Alias name.",
4874 "maxLength" : 64,
4875 "minLength" : 2,
4876 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4877 "type" : "string"
4878 },
4879 "rename" : {
4880 "description" : "Rename an existing alias.",
4881 "maxLength" : 64,
4882 "minLength" : 2,
4883 "optional" : 1,
4884 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4885 "type" : "string"
4886 }
4887 }
4888 },
4889 "permissions" : {
4890 "check" : [
4891 "perm",
4892 "/",
4893 [
4894 "Sys.Modify"
4895 ]
4896 ]
4897 },
4898 "protected" : 1,
4899 "returns" : {
4900 "type" : "null"
4901 }
4902 }
4903 },
4904 "leaf" : 1,
4905 "path" : "/cluster/firewall/aliases/{name}",
4906 "text" : "{name}"
4907 }
4908 ],
4909 "info" : {
4910 "GET" : {
e9cd3bd4 4911 "allowtoken" : 1,
44660702
DM
4912 "description" : "List aliases",
4913 "method" : "GET",
4914 "name" : "get_aliases",
4915 "parameters" : {
4916 "additionalProperties" : 0
4917 },
4918 "permissions" : {
4919 "check" : [
4920 "perm",
4921 "/",
4922 [
4923 "Sys.Audit"
4924 ]
4925 ]
4926 },
4927 "returns" : {
4928 "items" : {
4929 "properties" : {
4930 "cidr" : {
4931 "type" : "string"
4932 },
4933 "comment" : {
4934 "optional" : 1,
4935 "type" : "string"
4936 },
4937 "digest" : {
82551b2b
TL
4938 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4939 "maxLength" : 64,
44660702
DM
4940 "optional" : 0,
4941 "type" : "string"
4942 },
4943 "name" : {
4944 "type" : "string"
4945 }
4946 },
4947 "type" : "object"
4948 },
4949 "links" : [
4950 {
4951 "href" : "{name}",
4952 "rel" : "child"
4953 }
4954 ],
4955 "type" : "array"
4956 }
4957 },
4958 "POST" : {
e9cd3bd4 4959 "allowtoken" : 1,
44660702
DM
4960 "description" : "Create IP or Network Alias.",
4961 "method" : "POST",
4962 "name" : "create_alias",
56122987
DM
4963 "parameters" : {
4964 "additionalProperties" : 0,
4965 "properties" : {
44660702
DM
4966 "cidr" : {
4967 "description" : "Network/IP specification in CIDR format.",
4968 "format" : "IPorCIDR",
013dc89f
DM
4969 "type" : "string",
4970 "typetext" : "<string>"
44660702
DM
4971 },
4972 "comment" : {
4973 "optional" : 1,
013dc89f
DM
4974 "type" : "string",
4975 "typetext" : "<string>"
44660702
DM
4976 },
4977 "name" : {
4978 "description" : "Alias name.",
4979 "maxLength" : 64,
4980 "minLength" : 2,
4981 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4982 "type" : "string"
56122987
DM
4983 }
4984 }
4985 },
56122987
DM
4986 "permissions" : {
4987 "check" : [
4988 "perm",
4989 "/",
4990 [
4991 "Sys.Modify"
4992 ]
4993 ]
4994 },
44660702 4995 "protected" : 1,
56122987
DM
4996 "returns" : {
4997 "type" : "null"
4998 }
44660702
DM
4999 }
5000 },
5001 "leaf" : 0,
5002 "path" : "/cluster/firewall/aliases",
5003 "text" : "aliases"
5004 },
5005 {
5006 "info" : {
5007 "GET" : {
e9cd3bd4 5008 "allowtoken" : 1,
44660702
DM
5009 "description" : "Get Firewall options.",
5010 "method" : "GET",
5011 "name" : "get_options",
5012 "parameters" : {
5013 "additionalProperties" : 0
7aacca6f 5014 },
56122987
DM
5015 "permissions" : {
5016 "check" : [
5017 "perm",
5018 "/",
5019 [
44660702 5020 "Sys.Audit"
56122987
DM
5021 ]
5022 ]
5023 },
44660702 5024 "returns" : {
56122987 5025 "properties" : {
5da3d723
TL
5026 "ebtables" : {
5027 "default" : 1,
5028 "description" : "Enable ebtables rules cluster wide.",
5029 "optional" : 1,
5030 "type" : "boolean"
5031 },
44660702
DM
5032 "enable" : {
5033 "description" : "Enable or disable the firewall cluster wide.",
5034 "minimum" : 0,
56122987 5035 "optional" : 1,
7aacca6f 5036 "type" : "integer"
56122987 5037 },
95895385
TL
5038 "log_ratelimit" : {
5039 "description" : "Log ratelimiting settings",
5040 "format" : {
5041 "burst" : {
5042 "default" : 5,
4772952b 5043 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
5044 "minimum" : 0,
5045 "optional" : 1,
5046 "type" : "integer"
5047 },
5048 "enable" : {
5049 "default" : "1",
5050 "default_key" : 1,
5051 "description" : "Enable or disable log rate limiting",
5052 "type" : "boolean"
5053 },
5054 "rate" : {
5055 "default" : "1/second",
5056 "description" : "Frequency with which the burst bucket gets refilled",
5057 "format_description" : "rate",
5058 "optional" : 1,
5059 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
5060 "type" : "string"
5061 }
5062 },
5063 "optional" : 1,
5064 "type" : "string"
5065 },
44660702
DM
5066 "policy_in" : {
5067 "description" : "Input policy.",
5068 "enum" : [
5069 "ACCEPT",
5070 "REJECT",
5071 "DROP"
5072 ],
56122987 5073 "optional" : 1,
44660702 5074 "type" : "string"
7aacca6f 5075 },
44660702
DM
5076 "policy_out" : {
5077 "description" : "Output policy.",
5078 "enum" : [
5079 "ACCEPT",
5080 "REJECT",
5081 "DROP"
5082 ],
7aacca6f 5083 "optional" : 1,
44660702
DM
5084 "type" : "string"
5085 }
5086 },
5087 "type" : "object"
5088 }
5089 },
5090 "PUT" : {
e9cd3bd4 5091 "allowtoken" : 1,
44660702
DM
5092 "description" : "Set Firewall options.",
5093 "method" : "PUT",
5094 "name" : "set_options",
5095 "parameters" : {
5096 "additionalProperties" : 0,
5097 "properties" : {
5098 "delete" : {
5099 "description" : "A list of settings you want to delete.",
5100 "format" : "pve-configid-list",
56122987 5101 "optional" : 1,
013dc89f
DM
5102 "type" : "string",
5103 "typetext" : "<string>"
56122987 5104 },
44660702 5105 "digest" : {
82551b2b
TL
5106 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
5107 "maxLength" : 64,
56122987 5108 "optional" : 1,
013dc89f
DM
5109 "type" : "string",
5110 "typetext" : "<string>"
56122987 5111 },
5da3d723
TL
5112 "ebtables" : {
5113 "default" : 1,
5114 "description" : "Enable ebtables rules cluster wide.",
5115 "optional" : 1,
5116 "type" : "boolean",
5117 "typetext" : "<boolean>"
5118 },
44660702
DM
5119 "enable" : {
5120 "description" : "Enable or disable the firewall cluster wide.",
7aacca6f 5121 "minimum" : 0,
56122987 5122 "optional" : 1,
4bd7df8b 5123 "type" : "integer",
013dc89f 5124 "typetext" : "<integer> (0 - N)"
56122987 5125 },
95895385
TL
5126 "log_ratelimit" : {
5127 "description" : "Log ratelimiting settings",
5128 "format" : {
5129 "burst" : {
5130 "default" : 5,
4772952b 5131 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
5132 "minimum" : 0,
5133 "optional" : 1,
5134 "type" : "integer"
5135 },
5136 "enable" : {
5137 "default" : "1",
5138 "default_key" : 1,
5139 "description" : "Enable or disable log rate limiting",
5140 "type" : "boolean"
5141 },
5142 "rate" : {
5143 "default" : "1/second",
5144 "description" : "Frequency with which the burst bucket gets refilled",
5145 "format_description" : "rate",
5146 "optional" : 1,
5147 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
5148 "type" : "string"
5149 }
5150 },
5151 "optional" : 1,
5152 "type" : "string",
5153 "typetext" : "[enable=]<1|0> [,burst=<integer>] [,rate=<rate>]"
5154 },
44660702
DM
5155 "policy_in" : {
5156 "description" : "Input policy.",
56122987 5157 "enum" : [
44660702
DM
5158 "ACCEPT",
5159 "REJECT",
5160 "DROP"
56122987 5161 ],
56122987 5162 "optional" : 1,
44660702 5163 "type" : "string"
56122987 5164 },
44660702
DM
5165 "policy_out" : {
5166 "description" : "Output policy.",
56122987 5167 "enum" : [
44660702
DM
5168 "ACCEPT",
5169 "REJECT",
5170 "DROP"
56122987 5171 ],
7aacca6f 5172 "optional" : 1,
44660702 5173 "type" : "string"
56122987 5174 }
44660702
DM
5175 }
5176 },
5177 "permissions" : {
5178 "check" : [
5179 "perm",
5180 "/",
5181 [
5182 "Sys.Modify"
5183 ]
5184 ]
7aacca6f
DM
5185 },
5186 "protected" : 1,
44660702
DM
5187 "returns" : {
5188 "type" : "null"
5189 }
5190 }
5191 },
5192 "leaf" : 1,
5193 "path" : "/cluster/firewall/options",
5194 "text" : "options"
5195 },
5196 {
5197 "info" : {
7aacca6f 5198 "GET" : {
e9cd3bd4 5199 "allowtoken" : 1,
44660702 5200 "description" : "List available macros",
7aacca6f 5201 "method" : "GET",
44660702
DM
5202 "name" : "get_macros",
5203 "parameters" : {
5204 "additionalProperties" : 0
7aacca6f 5205 },
44660702
DM
5206 "permissions" : {
5207 "user" : "all"
5208 },
5209 "returns" : {
5210 "items" : {
5211 "properties" : {
5212 "descr" : {
5213 "description" : "More verbose description (if available).",
5214 "type" : "string"
5215 },
5216 "macro" : {
5217 "description" : "Macro name.",
5218 "type" : "string"
5219 }
5220 },
5221 "type" : "object"
5222 },
5223 "type" : "array"
5224 }
5225 }
5226 },
5227 "leaf" : 1,
5228 "path" : "/cluster/firewall/macros",
5229 "text" : "macros"
5230 },
5231 {
5232 "info" : {
5233 "GET" : {
e9cd3bd4 5234 "allowtoken" : 1,
44660702
DM
5235 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
5236 "method" : "GET",
5237 "name" : "refs",
7aacca6f 5238 "parameters" : {
44660702 5239 "additionalProperties" : 0,
7aacca6f 5240 "properties" : {
44660702
DM
5241 "type" : {
5242 "description" : "Only list references of specified type.",
5243 "enum" : [
5244 "alias",
5245 "ipset"
5246 ],
5247 "optional" : 1,
5248 "type" : "string"
7aacca6f 5249 }
44660702 5250 }
7aacca6f
DM
5251 },
5252 "permissions" : {
5253 "check" : [
5254 "perm",
5255 "/",
5256 [
5257 "Sys.Audit"
5258 ]
5259 ]
5260 },
44660702
DM
5261 "returns" : {
5262 "items" : {
5263 "properties" : {
5264 "comment" : {
5265 "optional" : 1,
5266 "type" : "string"
5267 },
5268 "name" : {
5269 "type" : "string"
5270 },
5271 "ref" : {
5272 "type" : "string"
5273 },
07b013aa
TL
5274 "scope" : {
5275 "type" : "string"
5276 },
44660702
DM
5277 "type" : {
5278 "enum" : [
5279 "alias",
5280 "ipset"
5281 ],
5282 "type" : "string"
5283 }
5284 },
5285 "type" : "object"
5286 },
5287 "type" : "array"
5288 }
56122987
DM
5289 }
5290 },
7aacca6f 5291 "leaf" : 1,
44660702
DM
5292 "path" : "/cluster/firewall/refs",
5293 "text" : "refs"
56122987
DM
5294 }
5295 ],
56122987 5296 "info" : {
44660702 5297 "GET" : {
e9cd3bd4 5298 "allowtoken" : 1,
44660702
DM
5299 "description" : "Directory index.",
5300 "method" : "GET",
5301 "name" : "index",
56122987 5302 "parameters" : {
56122987
DM
5303 "additionalProperties" : 0
5304 },
44660702
DM
5305 "permissions" : {
5306 "user" : "all"
5307 },
56122987 5308 "returns" : {
44660702
DM
5309 "items" : {
5310 "properties" : {},
5311 "type" : "object"
5312 },
7aacca6f
DM
5313 "links" : [
5314 {
44660702
DM
5315 "href" : "{name}",
5316 "rel" : "child"
7aacca6f
DM
5317 }
5318 ],
7aacca6f 5319 "type" : "array"
7aacca6f 5320 }
56122987
DM
5321 }
5322 },
44660702
DM
5323 "leaf" : 0,
5324 "path" : "/cluster/firewall",
5325 "text" : "firewall"
7aacca6f
DM
5326 },
5327 {
56122987
DM
5328 "children" : [
5329 {
04d22a9f
TL
5330 "children" : [
5331 {
5332 "info" : {
5333 "GET" : {
5334 "allowtoken" : 1,
5335 "description" : "Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.",
5336 "method" : "GET",
5337 "name" : "get_volume_backup_included",
5338 "parameters" : {
5339 "additionalProperties" : 0,
5340 "properties" : {
5341 "id" : {
5342 "description" : "The job ID.",
5343 "maxLength" : 50,
5344 "type" : "string",
5345 "typetext" : "<string>"
5346 }
5347 }
5348 },
5349 "permissions" : {
5350 "check" : [
5351 "perm",
5352 "/",
5353 [
5354 "Sys.Audit"
5355 ]
5356 ]
5357 },
5358 "protected" : 1,
5359 "returns" : {
5360 "description" : "Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest.",
5361 "properties" : {
5362 "children" : {
5363 "items" : {
5364 "properties" : {
5365 "children" : {
5366 "description" : "The volumes of the guest with the information if they will be included in backups.",
5367 "items" : {
5368 "properties" : {
5369 "id" : {
5370 "description" : "Configuration key of the volume.",
5371 "type" : "string"
5372 },
5373 "included" : {
5374 "description" : "Whether the volume is included in the backup or not.",
5375 "type" : "boolean"
5376 },
5377 "name" : {
5378 "description" : "Name of the volume.",
5379 "type" : "string"
5380 },
5381 "reason" : {
5382 "description" : "The reason why the volume is included (or excluded).",
5383 "type" : "string"
5384 }
5385 },
5386 "type" : "object"
5387 },
5388 "optional" : 1,
5389 "type" : "array"
5390 },
5391 "id" : {
5392 "description" : "VMID of the guest.",
5393 "type" : "integer"
5394 },
5395 "name" : {
5396 "description" : "Name of the guest",
5397 "optional" : 1,
5398 "type" : "string"
5399 },
5400 "type" : {
5401 "description" : "Type of the guest, VM, CT or unknown for removed but not purged guests.",
5402 "enum" : [
5403 "qemu",
5404 "lxc",
5405 "unknown"
5406 ],
5407 "type" : "string"
5408 }
5409 },
5410 "type" : "object"
5411 },
5412 "type" : "array"
5413 }
5414 },
5415 "type" : "object"
5416 }
5417 }
5418 },
5419 "leaf" : 1,
5420 "path" : "/cluster/backup/{id}/included_volumes",
5421 "text" : "included_volumes"
5422 }
5423 ],
56122987 5424 "info" : {
44660702 5425 "DELETE" : {
e9cd3bd4 5426 "allowtoken" : 1,
44660702
DM
5427 "description" : "Delete vzdump backup job definition.",
5428 "method" : "DELETE",
5429 "name" : "delete_job",
5430 "parameters" : {
5431 "additionalProperties" : 0,
5432 "properties" : {
5433 "id" : {
5434 "description" : "The job ID.",
5435 "maxLength" : 50,
013dc89f
DM
5436 "type" : "string",
5437 "typetext" : "<string>"
44660702
DM
5438 }
5439 }
5440 },
5441 "permissions" : {
5442 "check" : [
5443 "perm",
5444 "/",
5445 [
5446 "Sys.Modify"
5447 ]
5448 ]
5449 },
5450 "protected" : 1,
56122987
DM
5451 "returns" : {
5452 "type" : "null"
44660702
DM
5453 }
5454 },
5455 "GET" : {
e9cd3bd4 5456 "allowtoken" : 1,
44660702
DM
5457 "description" : "Read vzdump backup job definition.",
5458 "method" : "GET",
5459 "name" : "read_job",
5460 "parameters" : {
5461 "additionalProperties" : 0,
5462 "properties" : {
5463 "id" : {
5464 "description" : "The job ID.",
5465 "maxLength" : 50,
013dc89f
DM
5466 "type" : "string",
5467 "typetext" : "<string>"
44660702
DM
5468 }
5469 }
56122987 5470 },
7aacca6f
DM
5471 "permissions" : {
5472 "check" : [
5473 "perm",
5474 "/",
5475 [
44660702 5476 "Sys.Audit"
7aacca6f
DM
5477 ]
5478 ]
5479 },
44660702
DM
5480 "returns" : {
5481 "type" : "object"
5482 }
5483 },
5484 "PUT" : {
e9cd3bd4 5485 "allowtoken" : 1,
44660702
DM
5486 "description" : "Update vzdump backup job definition.",
5487 "method" : "PUT",
5488 "name" : "update_job",
56122987 5489 "parameters" : {
44660702 5490 "additionalProperties" : 0,
56122987 5491 "properties" : {
44660702
DM
5492 "all" : {
5493 "default" : 0,
5494 "description" : "Backup all known guest systems on this host.",
7aacca6f 5495 "optional" : 1,
013dc89f
DM
5496 "type" : "boolean",
5497 "typetext" : "<boolean>"
7aacca6f 5498 },
44660702
DM
5499 "bwlimit" : {
5500 "default" : 0,
4a407cfd 5501 "description" : "Limit I/O bandwidth (in KiB/s).",
44660702
DM
5502 "minimum" : 0,
5503 "optional" : 1,
4bd7df8b 5504 "type" : "integer",
013dc89f 5505 "typetext" : "<integer> (0 - N)"
44660702 5506 },
5370fa8c
TL
5507 "comment" : {
5508 "description" : "Description for the Job.",
5509 "maxLength" : 512,
5510 "optional" : 1,
5511 "type" : "string",
5512 "typetext" : "<string>"
5513 },
44660702
DM
5514 "compress" : {
5515 "default" : "0",
5516 "description" : "Compress dump file.",
7aacca6f 5517 "enum" : [
44660702
DM
5518 "0",
5519 "1",
5520 "gzip",
c5aa7e14
TL
5521 "lzo",
5522 "zstd"
7aacca6f 5523 ],
44660702
DM
5524 "optional" : 1,
5525 "type" : "string"
7aacca6f 5526 },
44660702
DM
5527 "delete" : {
5528 "description" : "A list of settings you want to delete.",
5529 "format" : "pve-configid-list",
7aacca6f 5530 "optional" : 1,
013dc89f
DM
5531 "type" : "string",
5532 "typetext" : "<string>"
56122987 5533 },
44660702
DM
5534 "dow" : {
5535 "description" : "Day of week selection.",
5536 "format" : "pve-day-of-week-list",
7aacca6f 5537 "optional" : 1,
5370fa8c 5538 "requires" : "starttime",
013dc89f
DM
5539 "type" : "string",
5540 "typetext" : "<string>"
56122987 5541 },
44660702
DM
5542 "dumpdir" : {
5543 "description" : "Store resulting files to specified directory.",
56122987 5544 "optional" : 1,
013dc89f
DM
5545 "type" : "string",
5546 "typetext" : "<string>"
56122987 5547 },
44660702
DM
5548 "enabled" : {
5549 "default" : "1",
5550 "description" : "Enable or disable the job.",
5551 "optional" : 1,
013dc89f
DM
5552 "type" : "boolean",
5553 "typetext" : "<boolean>"
44660702
DM
5554 },
5555 "exclude" : {
5556 "description" : "Exclude specified guest systems (assumes --all)",
5557 "format" : "pve-vmid-list",
5558 "optional" : 1,
013dc89f
DM
5559 "type" : "string",
5560 "typetext" : "<string>"
44660702
DM
5561 },
5562 "exclude-path" : {
d2656385 5563 "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
5564 "items" : {
5565 "type" : "string"
5566 },
44660702 5567 "optional" : 1,
4a407cfd
TL
5568 "type" : "array",
5569 "typetext" : "<array>"
44660702
DM
5570 },
5571 "id" : {
5572 "description" : "The job ID.",
5573 "maxLength" : 50,
013dc89f
DM
5574 "type" : "string",
5575 "typetext" : "<string>"
44660702
DM
5576 },
5577 "ionice" : {
5578 "default" : 7,
159464a9 5579 "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
5580 "maximum" : 8,
5581 "minimum" : 0,
5582 "optional" : 1,
4bd7df8b 5583 "type" : "integer",
013dc89f 5584 "typetext" : "<integer> (0 - 8)"
44660702
DM
5585 },
5586 "lockwait" : {
5587 "default" : 180,
5588 "description" : "Maximal time to wait for the global lock (minutes).",
5589 "minimum" : 0,
5590 "optional" : 1,
4bd7df8b 5591 "type" : "integer",
013dc89f 5592 "typetext" : "<integer> (0 - N)"
44660702
DM
5593 },
5594 "mailnotification" : {
5595 "default" : "always",
82551b2b 5596 "description" : "Deprecated: use 'notification-policy' instead.",
56122987 5597 "enum" : [
44660702
DM
5598 "always",
5599 "failure"
56122987 5600 ],
44660702
DM
5601 "optional" : 1,
5602 "type" : "string"
5603 },
5604 "mailto" : {
82551b2b 5605 "description" : "Comma-separated list of email addresses or users that should receive email notifications. Has no effect if the 'notification-target' option is set at the same time.",
d2656385 5606 "format" : "email-or-username-list",
44660702 5607 "optional" : 1,
013dc89f
DM
5608 "type" : "string",
5609 "typetext" : "<string>"
44660702
DM
5610 },
5611 "maxfiles" : {
0695fdaf 5612 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
5613 "minimum" : 1,
5614 "optional" : 1,
4bd7df8b 5615 "type" : "integer",
013dc89f 5616 "typetext" : "<integer> (1 - N)"
44660702
DM
5617 },
5618 "mode" : {
5619 "default" : "snapshot",
5620 "description" : "Backup mode.",
5621 "enum" : [
5622 "snapshot",
5623 "suspend",
5624 "stop"
5625 ],
5626 "optional" : 1,
5627 "type" : "string"
5628 },
5629 "node" : {
5630 "description" : "Only run if executed on this node.",
5631 "format" : "pve-node",
5632 "optional" : 1,
013dc89f
DM
5633 "type" : "string",
5634 "typetext" : "<string>"
44660702 5635 },
7af2edf9 5636 "notes-template" : {
4e7f60c2
TL
5637 "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.",
5638 "maxLength" : 1024,
7af2edf9
TL
5639 "optional" : 1,
5640 "requires" : "storage",
5641 "type" : "string",
5642 "typetext" : "<string>"
5643 },
82551b2b
TL
5644 "notification-policy" : {
5645 "default" : "always",
5646 "description" : "Specify when to send a notification",
5647 "enum" : [
5648 "always",
5649 "failure",
5650 "never"
5651 ],
5652 "optional" : 1,
5653 "type" : "string"
5654 },
5655 "notification-target" : {
5656 "description" : "Determine the target to which notifications should be sent. Can either be a notification endpoint or a notification group. This option takes precedence over 'mailto', meaning that if both are set, the 'mailto' option will be ignored.",
5657 "format" : "pve-configid",
5658 "optional" : 1,
5659 "type" : "string",
5660 "typetext" : "<string>"
5661 },
4e7f60c2
TL
5662 "performance" : {
5663 "description" : "Other performance-related settings.",
5664 "format" : "backup-performance",
5665 "optional" : 1,
5666 "type" : "string",
82551b2b 5667 "typetext" : "[max-workers=<integer>] [,pbs-entries-max=<integer>]"
4e7f60c2 5668 },
44660702
DM
5669 "pigz" : {
5670 "default" : 0,
5671 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
5672 "optional" : 1,
013dc89f
DM
5673 "type" : "integer",
5674 "typetext" : "<integer>"
44660702 5675 },
9226ccbc
TL
5676 "pool" : {
5677 "description" : "Backup all known guest systems included in the specified pool.",
5678 "optional" : 1,
5679 "type" : "string",
5680 "typetext" : "<string>"
5681 },
7af2edf9
TL
5682 "protected" : {
5683 "description" : "If true, mark backup(s) as protected.",
5684 "optional" : 1,
5685 "requires" : "storage",
5686 "type" : "boolean",
5687 "typetext" : "<boolean>"
5688 },
739d4d64 5689 "prune-backups" : {
0695fdaf 5690 "default" : "keep-all=1",
739d4d64
TL
5691 "description" : "Use these retention options instead of those from the storage configuration.",
5692 "format" : "prune-backups",
5693 "optional" : 1,
5694 "type" : "string",
4772952b 5695 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 5696 },
44660702
DM
5697 "quiet" : {
5698 "default" : 0,
5699 "description" : "Be quiet.",
5700 "optional" : 1,
013dc89f
DM
5701 "type" : "boolean",
5702 "typetext" : "<boolean>"
44660702
DM
5703 },
5704 "remove" : {
5705 "default" : 1,
0695fdaf 5706 "description" : "Prune older backups according to 'prune-backups'.",
44660702 5707 "optional" : 1,
013dc89f
DM
5708 "type" : "boolean",
5709 "typetext" : "<boolean>"
44660702 5710 },
de786b48
TL
5711 "repeat-missed" : {
5712 "default" : 0,
5713 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
5714 "optional" : 1,
5715 "type" : "boolean",
5716 "typetext" : "<boolean>"
5717 },
5370fa8c
TL
5718 "schedule" : {
5719 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
5720 "format" : "pve-calendar-event",
5721 "maxLength" : 128,
5722 "optional" : 1,
5723 "type" : "string",
5724 "typetext" : "<string>"
5725 },
44660702
DM
5726 "script" : {
5727 "description" : "Use specified hook script.",
5728 "optional" : 1,
013dc89f
DM
5729 "type" : "string",
5730 "typetext" : "<string>"
44660702 5731 },
44660702
DM
5732 "starttime" : {
5733 "description" : "Job Start time.",
5370fa8c 5734 "optional" : 1,
44660702 5735 "pattern" : "\\d{1,2}:\\d{1,2}",
56122987 5736 "type" : "string",
44660702 5737 "typetext" : "HH:MM"
7aacca6f 5738 },
44660702
DM
5739 "stdexcludes" : {
5740 "default" : 1,
5741 "description" : "Exclude temporary files and logs.",
5742 "optional" : 1,
013dc89f
DM
5743 "type" : "boolean",
5744 "typetext" : "<boolean>"
44660702
DM
5745 },
5746 "stop" : {
5747 "default" : 0,
1e3f8156 5748 "description" : "Stop running backup jobs on this host.",
44660702 5749 "optional" : 1,
013dc89f
DM
5750 "type" : "boolean",
5751 "typetext" : "<boolean>"
44660702
DM
5752 },
5753 "stopwait" : {
5754 "default" : 10,
5755 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
5756 "minimum" : 0,
5757 "optional" : 1,
4bd7df8b 5758 "type" : "integer",
013dc89f 5759 "typetext" : "<integer> (0 - N)"
44660702
DM
5760 },
5761 "storage" : {
5762 "description" : "Store resulting file to this storage.",
5763 "format" : "pve-storage-id",
5764 "optional" : 1,
013dc89f
DM
5765 "type" : "string",
5766 "typetext" : "<string>"
56122987 5767 },
44660702
DM
5768 "tmpdir" : {
5769 "description" : "Store temporary files to specified directory.",
5770 "optional" : 1,
013dc89f
DM
5771 "type" : "string",
5772 "typetext" : "<string>"
44660702
DM
5773 },
5774 "vmid" : {
5775 "description" : "The ID of the guest system you want to backup.",
5776 "format" : "pve-vmid-list",
5777 "optional" : 1,
013dc89f
DM
5778 "type" : "string",
5779 "typetext" : "<string>"
c5aa7e14
TL
5780 },
5781 "zstd" : {
5782 "default" : 1,
5783 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
5784 "optional" : 1,
5785 "type" : "integer",
5786 "typetext" : "<integer>"
56122987 5787 }
44660702 5788 }
56122987
DM
5789 },
5790 "permissions" : {
5791 "check" : [
5792 "perm",
5793 "/",
5794 [
44660702 5795 "Sys.Modify"
56122987 5796 ]
04d22a9f
TL
5797 ],
5798 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
56122987 5799 },
44660702
DM
5800 "protected" : 1,
5801 "returns" : {
5802 "type" : "null"
7aacca6f 5803 }
56122987
DM
5804 }
5805 },
04d22a9f 5806 "leaf" : 0,
44660702
DM
5807 "path" : "/cluster/backup/{id}",
5808 "text" : "{id}"
5809 }
5810 ],
5811 "info" : {
5812 "GET" : {
e9cd3bd4 5813 "allowtoken" : 1,
44660702
DM
5814 "description" : "List vzdump backup schedule.",
5815 "method" : "GET",
5816 "name" : "index",
5817 "parameters" : {
5818 "additionalProperties" : 0
5819 },
5820 "permissions" : {
5821 "check" : [
5822 "perm",
5823 "/",
5824 [
5825 "Sys.Audit"
5826 ]
5827 ]
5828 },
5829 "returns" : {
5830 "items" : {
5831 "properties" : {
5832 "id" : {
1c532546
TL
5833 "description" : "The job ID.",
5834 "maxLength" : 50,
44660702
DM
5835 "type" : "string"
5836 }
5837 },
5838 "type" : "object"
5839 },
5840 "links" : [
5841 {
5842 "href" : "{id}",
5843 "rel" : "child"
5844 }
5845 ],
5846 "type" : "array"
5847 }
5848 },
5849 "POST" : {
e9cd3bd4 5850 "allowtoken" : 1,
44660702
DM
5851 "description" : "Create new vzdump backup job.",
5852 "method" : "POST",
5853 "name" : "create_job",
5854 "parameters" : {
5855 "additionalProperties" : 0,
5856 "properties" : {
5857 "all" : {
5858 "default" : 0,
5859 "description" : "Backup all known guest systems on this host.",
5860 "optional" : 1,
013dc89f
DM
5861 "type" : "boolean",
5862 "typetext" : "<boolean>"
44660702
DM
5863 },
5864 "bwlimit" : {
5865 "default" : 0,
4a407cfd 5866 "description" : "Limit I/O bandwidth (in KiB/s).",
44660702
DM
5867 "minimum" : 0,
5868 "optional" : 1,
4bd7df8b 5869 "type" : "integer",
013dc89f 5870 "typetext" : "<integer> (0 - N)"
44660702 5871 },
5370fa8c
TL
5872 "comment" : {
5873 "description" : "Description for the Job.",
5874 "maxLength" : 512,
5875 "optional" : 1,
5876 "type" : "string",
5877 "typetext" : "<string>"
5878 },
44660702
DM
5879 "compress" : {
5880 "default" : "0",
5881 "description" : "Compress dump file.",
5882 "enum" : [
5883 "0",
5884 "1",
5885 "gzip",
c5aa7e14
TL
5886 "lzo",
5887 "zstd"
44660702
DM
5888 ],
5889 "optional" : 1,
5890 "type" : "string"
5891 },
5892 "dow" : {
5893 "default" : "mon,tue,wed,thu,fri,sat,sun",
5894 "description" : "Day of week selection.",
5895 "format" : "pve-day-of-week-list",
5896 "optional" : 1,
5370fa8c 5897 "requires" : "starttime",
013dc89f
DM
5898 "type" : "string",
5899 "typetext" : "<string>"
44660702
DM
5900 },
5901 "dumpdir" : {
5902 "description" : "Store resulting files to specified directory.",
5903 "optional" : 1,
013dc89f
DM
5904 "type" : "string",
5905 "typetext" : "<string>"
44660702
DM
5906 },
5907 "enabled" : {
5908 "default" : "1",
5909 "description" : "Enable or disable the job.",
5910 "optional" : 1,
013dc89f
DM
5911 "type" : "boolean",
5912 "typetext" : "<boolean>"
44660702
DM
5913 },
5914 "exclude" : {
5915 "description" : "Exclude specified guest systems (assumes --all)",
5916 "format" : "pve-vmid-list",
5917 "optional" : 1,
013dc89f
DM
5918 "type" : "string",
5919 "typetext" : "<string>"
44660702
DM
5920 },
5921 "exclude-path" : {
d2656385 5922 "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
5923 "items" : {
5924 "type" : "string"
5925 },
44660702 5926 "optional" : 1,
4a407cfd
TL
5927 "type" : "array",
5928 "typetext" : "<array>"
44660702 5929 },
5370fa8c
TL
5930 "id" : {
5931 "description" : "Job ID (will be autogenerated).",
5932 "format" : "pve-configid",
5933 "optional" : 1,
5934 "type" : "string",
5935 "typetext" : "<string>"
5936 },
44660702
DM
5937 "ionice" : {
5938 "default" : 7,
159464a9 5939 "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
5940 "maximum" : 8,
5941 "minimum" : 0,
5942 "optional" : 1,
4bd7df8b 5943 "type" : "integer",
013dc89f 5944 "typetext" : "<integer> (0 - 8)"
44660702
DM
5945 },
5946 "lockwait" : {
5947 "default" : 180,
5948 "description" : "Maximal time to wait for the global lock (minutes).",
5949 "minimum" : 0,
5950 "optional" : 1,
4bd7df8b 5951 "type" : "integer",
013dc89f 5952 "typetext" : "<integer> (0 - N)"
44660702
DM
5953 },
5954 "mailnotification" : {
5955 "default" : "always",
82551b2b 5956 "description" : "Deprecated: use 'notification-policy' instead.",
44660702
DM
5957 "enum" : [
5958 "always",
5959 "failure"
5960 ],
5961 "optional" : 1,
5962 "type" : "string"
5963 },
5964 "mailto" : {
82551b2b 5965 "description" : "Comma-separated list of email addresses or users that should receive email notifications. Has no effect if the 'notification-target' option is set at the same time.",
d2656385 5966 "format" : "email-or-username-list",
44660702 5967 "optional" : 1,
013dc89f
DM
5968 "type" : "string",
5969 "typetext" : "<string>"
44660702
DM
5970 },
5971 "maxfiles" : {
0695fdaf 5972 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
5973 "minimum" : 1,
5974 "optional" : 1,
4bd7df8b 5975 "type" : "integer",
013dc89f 5976 "typetext" : "<integer> (1 - N)"
44660702
DM
5977 },
5978 "mode" : {
5979 "default" : "snapshot",
5980 "description" : "Backup mode.",
5981 "enum" : [
5982 "snapshot",
5983 "suspend",
5984 "stop"
5985 ],
5986 "optional" : 1,
5987 "type" : "string"
5988 },
5989 "node" : {
5990 "description" : "Only run if executed on this node.",
5991 "format" : "pve-node",
5992 "optional" : 1,
013dc89f
DM
5993 "type" : "string",
5994 "typetext" : "<string>"
44660702 5995 },
7af2edf9 5996 "notes-template" : {
4e7f60c2
TL
5997 "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.",
5998 "maxLength" : 1024,
7af2edf9
TL
5999 "optional" : 1,
6000 "requires" : "storage",
6001 "type" : "string",
6002 "typetext" : "<string>"
6003 },
82551b2b
TL
6004 "notification-policy" : {
6005 "default" : "always",
6006 "description" : "Specify when to send a notification",
6007 "enum" : [
6008 "always",
6009 "failure",
6010 "never"
6011 ],
6012 "optional" : 1,
6013 "type" : "string"
6014 },
6015 "notification-target" : {
6016 "description" : "Determine the target to which notifications should be sent. Can either be a notification endpoint or a notification group. This option takes precedence over 'mailto', meaning that if both are set, the 'mailto' option will be ignored.",
6017 "format" : "pve-configid",
6018 "optional" : 1,
6019 "type" : "string",
6020 "typetext" : "<string>"
6021 },
4e7f60c2
TL
6022 "performance" : {
6023 "description" : "Other performance-related settings.",
6024 "format" : "backup-performance",
6025 "optional" : 1,
6026 "type" : "string",
82551b2b 6027 "typetext" : "[max-workers=<integer>] [,pbs-entries-max=<integer>]"
4e7f60c2 6028 },
44660702
DM
6029 "pigz" : {
6030 "default" : 0,
6031 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
6032 "optional" : 1,
013dc89f
DM
6033 "type" : "integer",
6034 "typetext" : "<integer>"
44660702 6035 },
9226ccbc
TL
6036 "pool" : {
6037 "description" : "Backup all known guest systems included in the specified pool.",
6038 "optional" : 1,
6039 "type" : "string",
6040 "typetext" : "<string>"
6041 },
7af2edf9
TL
6042 "protected" : {
6043 "description" : "If true, mark backup(s) as protected.",
6044 "optional" : 1,
6045 "requires" : "storage",
6046 "type" : "boolean",
6047 "typetext" : "<boolean>"
6048 },
739d4d64 6049 "prune-backups" : {
0695fdaf 6050 "default" : "keep-all=1",
739d4d64
TL
6051 "description" : "Use these retention options instead of those from the storage configuration.",
6052 "format" : "prune-backups",
6053 "optional" : 1,
6054 "type" : "string",
4772952b 6055 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 6056 },
44660702
DM
6057 "quiet" : {
6058 "default" : 0,
6059 "description" : "Be quiet.",
6060 "optional" : 1,
013dc89f
DM
6061 "type" : "boolean",
6062 "typetext" : "<boolean>"
44660702
DM
6063 },
6064 "remove" : {
6065 "default" : 1,
0695fdaf 6066 "description" : "Prune older backups according to 'prune-backups'.",
44660702 6067 "optional" : 1,
013dc89f
DM
6068 "type" : "boolean",
6069 "typetext" : "<boolean>"
44660702 6070 },
de786b48
TL
6071 "repeat-missed" : {
6072 "default" : 0,
6073 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
6074 "optional" : 1,
6075 "type" : "boolean",
6076 "typetext" : "<boolean>"
6077 },
5370fa8c
TL
6078 "schedule" : {
6079 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
6080 "format" : "pve-calendar-event",
6081 "maxLength" : 128,
6082 "optional" : 1,
6083 "type" : "string",
6084 "typetext" : "<string>"
6085 },
44660702
DM
6086 "script" : {
6087 "description" : "Use specified hook script.",
6088 "optional" : 1,
013dc89f
DM
6089 "type" : "string",
6090 "typetext" : "<string>"
44660702 6091 },
44660702
DM
6092 "starttime" : {
6093 "description" : "Job Start time.",
5370fa8c 6094 "optional" : 1,
44660702
DM
6095 "pattern" : "\\d{1,2}:\\d{1,2}",
6096 "type" : "string",
6097 "typetext" : "HH:MM"
6098 },
6099 "stdexcludes" : {
6100 "default" : 1,
6101 "description" : "Exclude temporary files and logs.",
6102 "optional" : 1,
013dc89f
DM
6103 "type" : "boolean",
6104 "typetext" : "<boolean>"
44660702
DM
6105 },
6106 "stop" : {
6107 "default" : 0,
1e3f8156 6108 "description" : "Stop running backup jobs on this host.",
44660702 6109 "optional" : 1,
013dc89f
DM
6110 "type" : "boolean",
6111 "typetext" : "<boolean>"
44660702
DM
6112 },
6113 "stopwait" : {
6114 "default" : 10,
6115 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
6116 "minimum" : 0,
6117 "optional" : 1,
4bd7df8b 6118 "type" : "integer",
013dc89f 6119 "typetext" : "<integer> (0 - N)"
44660702
DM
6120 },
6121 "storage" : {
6122 "description" : "Store resulting file to this storage.",
6123 "format" : "pve-storage-id",
6124 "optional" : 1,
013dc89f
DM
6125 "type" : "string",
6126 "typetext" : "<string>"
44660702
DM
6127 },
6128 "tmpdir" : {
6129 "description" : "Store temporary files to specified directory.",
6130 "optional" : 1,
013dc89f
DM
6131 "type" : "string",
6132 "typetext" : "<string>"
44660702
DM
6133 },
6134 "vmid" : {
6135 "description" : "The ID of the guest system you want to backup.",
6136 "format" : "pve-vmid-list",
6137 "optional" : 1,
013dc89f
DM
6138 "type" : "string",
6139 "typetext" : "<string>"
c5aa7e14
TL
6140 },
6141 "zstd" : {
6142 "default" : 1,
6143 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
6144 "optional" : 1,
6145 "type" : "integer",
6146 "typetext" : "<integer>"
44660702
DM
6147 }
6148 }
6149 },
6150 "permissions" : {
6151 "check" : [
6152 "perm",
6153 "/",
6154 [
6155 "Sys.Modify"
6156 ]
de0983cb
DM
6157 ],
6158 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
44660702
DM
6159 },
6160 "protected" : 1,
6161 "returns" : {
6162 "type" : "null"
6163 }
6164 }
6165 },
6166 "leaf" : 0,
6167 "path" : "/cluster/backup",
6168 "text" : "backup"
6169 },
04d22a9f
TL
6170 {
6171 "children" : [
6172 {
6173 "info" : {
6174 "GET" : {
6175 "allowtoken" : 1,
6176 "description" : "Shows all guests which are not covered by any backup job.",
6177 "method" : "GET",
6178 "name" : "get_guests_not_in_backup",
6179 "parameters" : {
6180 "additionalProperties" : 0
6181 },
6182 "permissions" : {
6183 "check" : [
6184 "perm",
6185 "/",
6186 [
6187 "Sys.Audit"
6188 ]
6189 ]
6190 },
6191 "protected" : 1,
6192 "returns" : {
6193 "description" : "Contains the guest objects.",
6194 "items" : {
6195 "properties" : {
6196 "name" : {
6197 "description" : "Name of the guest",
6198 "optional" : 1,
6199 "type" : "string"
6200 },
6201 "type" : {
6202 "description" : "Type of the guest.",
6203 "enum" : [
6204 "qemu",
6205 "lxc"
6206 ],
6207 "type" : "string"
6208 },
6209 "vmid" : {
6210 "description" : "VMID of the guest.",
6211 "type" : "integer"
6212 }
6213 },
6214 "type" : "object"
6215 },
6216 "type" : "array"
6217 }
6218 }
6219 },
6220 "leaf" : 1,
34f3e481
TL
6221 "path" : "/cluster/backup-info/not-backed-up",
6222 "text" : "not-backed-up"
04d22a9f
TL
6223 }
6224 ],
6225 "info" : {
6226 "GET" : {
6227 "allowtoken" : 1,
34f3e481 6228 "description" : "Index for backup info related endpoints",
04d22a9f 6229 "method" : "GET",
34f3e481 6230 "name" : "index",
04d22a9f
TL
6231 "parameters" : {
6232 "additionalProperties" : 0
6233 },
04d22a9f 6234 "returns" : {
34f3e481
TL
6235 "description" : "Directory index.",
6236 "items" : {
6237 "properties" : {
6238 "subdir" : {
6239 "description" : "API sub-directory endpoint",
6240 "type" : "string"
6241 }
6242 },
6243 "type" : "object"
6244 },
6245 "links" : [
6246 {
6247 "href" : "{subdir}",
6248 "rel" : "child"
6249 }
6250 ],
6251 "type" : "array"
04d22a9f
TL
6252 }
6253 }
6254 },
6255 "leaf" : 0,
34f3e481
TL
6256 "path" : "/cluster/backup-info",
6257 "text" : "backup-info"
04d22a9f 6258 },
44660702
DM
6259 {
6260 "children" : [
6261 {
6262 "children" : [
6263 {
6264 "children" : [
56122987 6265 {
56122987
DM
6266 "info" : {
6267 "POST" : {
e9cd3bd4 6268 "allowtoken" : 1,
44660702
DM
6269 "description" : "Request resource migration (online) to another node.",
6270 "method" : "POST",
6271 "name" : "migrate",
56122987 6272 "parameters" : {
7aacca6f 6273 "additionalProperties" : 0,
56122987
DM
6274 "properties" : {
6275 "node" : {
95895385 6276 "description" : "Target node.",
44660702 6277 "format" : "pve-node",
013dc89f
DM
6278 "type" : "string",
6279 "typetext" : "<string>"
56122987
DM
6280 },
6281 "sid" : {
44660702 6282 "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 6283 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 6284 "type" : "string",
44660702 6285 "typetext" : "<type>:<name>"
56122987 6286 }
7aacca6f 6287 }
56122987 6288 },
56122987
DM
6289 "permissions" : {
6290 "check" : [
6291 "perm",
6292 "/",
6293 [
6294 "Sys.Console"
6295 ]
6296 ]
6297 },
7aacca6f 6298 "protected" : 1,
7aacca6f
DM
6299 "returns" : {
6300 "type" : "null"
44660702 6301 }
56122987 6302 }
44660702
DM
6303 },
6304 "leaf" : 1,
6305 "path" : "/cluster/ha/resources/{sid}/migrate",
6306 "text" : "migrate"
6307 },
6308 {
6309 "info" : {
6310 "POST" : {
e9cd3bd4 6311 "allowtoken" : 1,
44660702
DM
6312 "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
6313 "method" : "POST",
6314 "name" : "relocate",
6315 "parameters" : {
6316 "additionalProperties" : 0,
6317 "properties" : {
6318 "node" : {
95895385 6319 "description" : "Target node.",
44660702 6320 "format" : "pve-node",
013dc89f
DM
6321 "type" : "string",
6322 "typetext" : "<string>"
44660702
DM
6323 },
6324 "sid" : {
6325 "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).",
6326 "format" : "pve-ha-resource-or-vm-id",
6327 "type" : "string",
6328 "typetext" : "<type>:<name>"
6329 }
6330 }
6331 },
6332 "permissions" : {
6333 "check" : [
6334 "perm",
6335 "/",
6336 [
6337 "Sys.Console"
6338 ]
6339 ]
6340 },
6341 "protected" : 1,
6342 "returns" : {
6343 "type" : "null"
6344 }
6345 }
6346 },
6347 "leaf" : 1,
6348 "path" : "/cluster/ha/resources/{sid}/relocate",
6349 "text" : "relocate"
6350 }
6351 ],
6352 "info" : {
6353 "DELETE" : {
e9cd3bd4 6354 "allowtoken" : 1,
44660702
DM
6355 "description" : "Delete resource configuration.",
6356 "method" : "DELETE",
6357 "name" : "delete",
7aacca6f 6358 "parameters" : {
44660702 6359 "additionalProperties" : 0,
7aacca6f
DM
6360 "properties" : {
6361 "sid" : {
6362 "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 6363 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 6364 "type" : "string",
44660702
DM
6365 "typetext" : "<type>:<name>"
6366 }
6367 }
6368 },
6369 "permissions" : {
6370 "check" : [
6371 "perm",
6372 "/",
6373 [
6374 "Sys.Console"
6375 ]
6376 ]
6377 },
6378 "protected" : 1,
6379 "returns" : {
6380 "type" : "null"
6381 }
6382 },
6383 "GET" : {
e9cd3bd4 6384 "allowtoken" : 1,
44660702
DM
6385 "description" : "Read resource configuration.",
6386 "method" : "GET",
6387 "name" : "read",
6388 "parameters" : {
6389 "additionalProperties" : 0,
6390 "properties" : {
6391 "sid" : {
6392 "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 6393 "format" : "pve-ha-resource-or-vm-id",
44660702 6394 "type" : "string",
7aacca6f
DM
6395 "typetext" : "<type>:<name>"
6396 }
44660702 6397 }
7aacca6f
DM
6398 },
6399 "permissions" : {
6400 "check" : [
6401 "perm",
6402 "/",
6403 [
6404 "Sys.Audit"
6405 ]
6406 ]
6407 },
5f26e15b
TL
6408 "returns" : {
6409 "properties" : {
6410 "comment" : {
6411 "description" : "Description.",
6412 "optional" : 1,
6413 "type" : "string"
6414 },
6415 "digest" : {
6416 "description" : "Can be used to prevent concurrent modifications.",
6417 "type" : "string"
6418 },
6419 "group" : {
6420 "description" : "The HA group identifier.",
6421 "format" : "pve-configid",
6422 "optional" : 1,
6423 "type" : "string"
6424 },
6425 "max_relocate" : {
6426 "description" : "Maximal number of service relocate tries when a service failes to start.",
6427 "optional" : 1,
6428 "type" : "integer"
6429 },
6430 "max_restart" : {
6431 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
6432 "optional" : 1,
6433 "type" : "integer"
6434 },
6435 "sid" : {
6436 "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).",
6437 "format" : "pve-ha-resource-or-vm-id",
6438 "type" : "string",
6439 "typetext" : "<type>:<name>"
6440 },
6441 "state" : {
6442 "description" : "Requested resource state.",
6443 "enum" : [
6444 "started",
6445 "stopped",
6446 "enabled",
6447 "disabled",
6448 "ignored"
6449 ],
6450 "optional" : 1,
6451 "type" : "string"
6452 },
6453 "type" : {
6454 "description" : "The type of the resources.",
6455 "type" : "string"
6456 }
6457 },
6458 "type" : "object"
6459 }
7aacca6f 6460 },
56122987 6461 "PUT" : {
e9cd3bd4 6462 "allowtoken" : 1,
44660702 6463 "description" : "Update resource configuration.",
7aacca6f 6464 "method" : "PUT",
44660702 6465 "name" : "update",
56122987
DM
6466 "parameters" : {
6467 "additionalProperties" : 0,
6468 "properties" : {
44660702
DM
6469 "comment" : {
6470 "description" : "Description.",
6471 "maxLength" : 4096,
56122987 6472 "optional" : 1,
013dc89f
DM
6473 "type" : "string",
6474 "typetext" : "<string>"
56122987 6475 },
7aacca6f
DM
6476 "delete" : {
6477 "description" : "A list of settings you want to delete.",
7aacca6f 6478 "format" : "pve-configid-list",
44660702
DM
6479 "maxLength" : 4096,
6480 "optional" : 1,
013dc89f
DM
6481 "type" : "string",
6482 "typetext" : "<string>"
56122987 6483 },
44660702 6484 "digest" : {
82551b2b
TL
6485 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
6486 "maxLength" : 64,
44660702 6487 "optional" : 1,
013dc89f
DM
6488 "type" : "string",
6489 "typetext" : "<string>"
56122987 6490 },
44660702
DM
6491 "group" : {
6492 "description" : "The HA group identifier.",
6493 "format" : "pve-configid",
7aacca6f 6494 "optional" : 1,
013dc89f
DM
6495 "type" : "string",
6496 "typetext" : "<string>"
56122987
DM
6497 },
6498 "max_relocate" : {
7aacca6f 6499 "default" : 1,
56122987 6500 "description" : "Maximal number of service relocate tries when a service failes to start.",
44660702
DM
6501 "minimum" : 0,
6502 "optional" : 1,
4bd7df8b 6503 "type" : "integer",
013dc89f 6504 "typetext" : "<integer> (0 - N)"
7aacca6f 6505 },
44660702
DM
6506 "max_restart" : {
6507 "default" : 1,
6508 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
6509 "minimum" : 0,
7aacca6f 6510 "optional" : 1,
4bd7df8b 6511 "type" : "integer",
013dc89f 6512 "typetext" : "<integer> (0 - N)"
44660702
DM
6513 },
6514 "sid" : {
6515 "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).",
6516 "format" : "pve-ha-resource-or-vm-id",
6517 "type" : "string",
6518 "typetext" : "<type>:<name>"
7aacca6f
DM
6519 },
6520 "state" : {
f13c1238
DM
6521 "default" : "started",
6522 "description" : "Requested resource state.",
7aacca6f 6523 "enum" : [
f13c1238
DM
6524 "started",
6525 "stopped",
7aacca6f 6526 "enabled",
2489d6df
WB
6527 "disabled",
6528 "ignored"
7aacca6f 6529 ],
7aacca6f 6530 "optional" : 1,
f13c1238 6531 "type" : "string",
2489d6df 6532 "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 6533 }
44660702
DM
6534 },
6535 "type" : "object"
56122987 6536 },
56122987
DM
6537 "permissions" : {
6538 "check" : [
6539 "perm",
6540 "/",
6541 [
6542 "Sys.Console"
6543 ]
6544 ]
6545 },
7aacca6f 6546 "protected" : 1,
56122987
DM
6547 "returns" : {
6548 "type" : "null"
6549 }
6550 }
6551 },
44660702 6552 "leaf" : 0,
7aacca6f 6553 "path" : "/cluster/ha/resources/{sid}",
44660702 6554 "text" : "{sid}"
56122987
DM
6555 }
6556 ],
7aacca6f
DM
6557 "info" : {
6558 "GET" : {
e9cd3bd4 6559 "allowtoken" : 1,
44660702
DM
6560 "description" : "List HA resources.",
6561 "method" : "GET",
6562 "name" : "index",
7aacca6f 6563 "parameters" : {
44660702
DM
6564 "additionalProperties" : 0,
6565 "properties" : {
6566 "type" : {
6567 "description" : "Only list resources of specific type",
6568 "enum" : [
6569 "ct",
6570 "vm"
6571 ],
6572 "optional" : 1,
6573 "type" : "string"
6574 }
6575 }
7aacca6f 6576 },
7aacca6f
DM
6577 "permissions" : {
6578 "check" : [
6579 "perm",
6580 "/",
6581 [
6582 "Sys.Audit"
6583 ]
6584 ]
6585 },
7aacca6f 6586 "returns" : {
7aacca6f 6587 "items" : {
7aacca6f 6588 "properties" : {
44660702 6589 "sid" : {
7aacca6f
DM
6590 "type" : "string"
6591 }
44660702
DM
6592 },
6593 "type" : "object"
7aacca6f
DM
6594 },
6595 "links" : [
6596 {
44660702 6597 "href" : "{sid}",
7aacca6f
DM
6598 "rel" : "child"
6599 }
44660702
DM
6600 ],
6601 "type" : "array"
7aacca6f
DM
6602 }
6603 },
6604 "POST" : {
e9cd3bd4 6605 "allowtoken" : 1,
44660702 6606 "description" : "Create a new HA resource.",
7aacca6f 6607 "method" : "POST",
44660702 6608 "name" : "create",
7aacca6f 6609 "parameters" : {
44660702 6610 "additionalProperties" : 0,
7aacca6f
DM
6611 "properties" : {
6612 "comment" : {
7aacca6f 6613 "description" : "Description.",
44660702 6614 "maxLength" : 4096,
7aacca6f 6615 "optional" : 1,
013dc89f
DM
6616 "type" : "string",
6617 "typetext" : "<string>"
7aacca6f 6618 },
44660702
DM
6619 "group" : {
6620 "description" : "The HA group identifier.",
6621 "format" : "pve-configid",
7aacca6f 6622 "optional" : 1,
013dc89f
DM
6623 "type" : "string",
6624 "typetext" : "<string>"
7aacca6f 6625 },
44660702
DM
6626 "max_relocate" : {
6627 "default" : 1,
6628 "description" : "Maximal number of service relocate tries when a service failes to start.",
6629 "minimum" : 0,
7aacca6f 6630 "optional" : 1,
4bd7df8b 6631 "type" : "integer",
013dc89f 6632 "typetext" : "<integer> (0 - N)"
7aacca6f 6633 },
44660702
DM
6634 "max_restart" : {
6635 "default" : 1,
6636 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
6637 "minimum" : 0,
6638 "optional" : 1,
4bd7df8b 6639 "type" : "integer",
013dc89f 6640 "typetext" : "<integer> (0 - N)"
44660702
DM
6641 },
6642 "sid" : {
6643 "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).",
6644 "format" : "pve-ha-resource-or-vm-id",
6645 "type" : "string",
6646 "typetext" : "<type>:<name>"
6647 },
6648 "state" : {
f13c1238
DM
6649 "default" : "started",
6650 "description" : "Requested resource state.",
7aacca6f 6651 "enum" : [
f13c1238
DM
6652 "started",
6653 "stopped",
44660702 6654 "enabled",
2489d6df
WB
6655 "disabled",
6656 "ignored"
7aacca6f 6657 ],
7aacca6f 6658 "optional" : 1,
f13c1238 6659 "type" : "string",
2489d6df 6660 "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 6661 },
44660702
DM
6662 "type" : {
6663 "description" : "Resource type.",
6664 "enum" : [
6665 "ct",
6666 "vm"
6667 ],
6668 "optional" : 1,
6669 "type" : "string"
6670 }
7aacca6f 6671 },
44660702 6672 "type" : "object"
7aacca6f
DM
6673 },
6674 "permissions" : {
6675 "check" : [
6676 "perm",
6677 "/",
6678 [
6679 "Sys.Console"
6680 ]
6681 ]
6682 },
44660702
DM
6683 "protected" : 1,
6684 "returns" : {
6685 "type" : "null"
6686 }
7aacca6f
DM
6687 }
6688 },
44660702
DM
6689 "leaf" : 0,
6690 "path" : "/cluster/ha/resources",
6691 "text" : "resources"
6692 },
6693 {
56122987
DM
6694 "children" : [
6695 {
56122987 6696 "info" : {
44660702 6697 "DELETE" : {
e9cd3bd4 6698 "allowtoken" : 1,
44660702
DM
6699 "description" : "Delete ha group configuration.",
6700 "method" : "DELETE",
6701 "name" : "delete",
56122987 6702 "parameters" : {
7aacca6f 6703 "additionalProperties" : 0,
56122987 6704 "properties" : {
7aacca6f
DM
6705 "group" : {
6706 "description" : "The HA group identifier.",
44660702 6707 "format" : "pve-configid",
013dc89f
DM
6708 "type" : "string",
6709 "typetext" : "<string>"
56122987 6710 }
7aacca6f 6711 }
56122987 6712 },
56122987
DM
6713 "permissions" : {
6714 "check" : [
6715 "perm",
6716 "/",
6717 [
7aacca6f 6718 "Sys.Console"
56122987
DM
6719 ]
6720 ]
6721 },
44660702 6722 "protected" : 1,
7aacca6f
DM
6723 "returns" : {
6724 "type" : "null"
56122987
DM
6725 }
6726 },
44660702 6727 "GET" : {
e9cd3bd4 6728 "allowtoken" : 1,
44660702
DM
6729 "description" : "Read ha group configuration.",
6730 "method" : "GET",
6731 "name" : "read",
56122987 6732 "parameters" : {
44660702 6733 "additionalProperties" : 0,
56122987
DM
6734 "properties" : {
6735 "group" : {
6736 "description" : "The HA group identifier.",
44660702 6737 "format" : "pve-configid",
013dc89f
DM
6738 "type" : "string",
6739 "typetext" : "<string>"
56122987 6740 }
44660702 6741 }
56122987 6742 },
56122987
DM
6743 "permissions" : {
6744 "check" : [
6745 "perm",
6746 "/",
6747 [
44660702 6748 "Sys.Audit"
56122987
DM
6749 ]
6750 ]
6751 },
44660702 6752 "returns" : {}
7aacca6f 6753 },
44660702 6754 "PUT" : {
e9cd3bd4 6755 "allowtoken" : 1,
44660702
DM
6756 "description" : "Update ha group configuration.",
6757 "method" : "PUT",
6758 "name" : "update",
7aacca6f 6759 "parameters" : {
44660702 6760 "additionalProperties" : 0,
7aacca6f 6761 "properties" : {
44660702
DM
6762 "comment" : {
6763 "description" : "Description.",
6764 "maxLength" : 4096,
6765 "optional" : 1,
013dc89f
DM
6766 "type" : "string",
6767 "typetext" : "<string>"
44660702
DM
6768 },
6769 "delete" : {
6770 "description" : "A list of settings you want to delete.",
6771 "format" : "pve-configid-list",
6772 "maxLength" : 4096,
6773 "optional" : 1,
013dc89f
DM
6774 "type" : "string",
6775 "typetext" : "<string>"
44660702
DM
6776 },
6777 "digest" : {
82551b2b
TL
6778 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
6779 "maxLength" : 64,
44660702 6780 "optional" : 1,
013dc89f
DM
6781 "type" : "string",
6782 "typetext" : "<string>"
44660702 6783 },
7aacca6f
DM
6784 "group" : {
6785 "description" : "The HA group identifier.",
44660702 6786 "format" : "pve-configid",
013dc89f
DM
6787 "type" : "string",
6788 "typetext" : "<string>"
44660702
DM
6789 },
6790 "nodes" : {
f13c1238 6791 "description" : "List of cluster node names with optional priority.",
44660702
DM
6792 "format" : "pve-ha-group-node-list",
6793 "optional" : 1,
7aacca6f 6794 "type" : "string",
f13c1238
DM
6795 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
6796 "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
6797 },
6798 "nofailback" : {
6799 "default" : 0,
6800 "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.",
6801 "optional" : 1,
013dc89f
DM
6802 "type" : "boolean",
6803 "typetext" : "<boolean>"
44660702
DM
6804 },
6805 "restricted" : {
6806 "default" : 0,
c4808e75 6807 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 6808 "optional" : 1,
013dc89f 6809 "type" : "boolean",
c4808e75
DM
6810 "typetext" : "<boolean>",
6811 "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
6812 }
6813 },
44660702 6814 "type" : "object"
7aacca6f 6815 },
7aacca6f
DM
6816 "permissions" : {
6817 "check" : [
6818 "perm",
6819 "/",
6820 [
44660702 6821 "Sys.Console"
7aacca6f
DM
6822 ]
6823 ]
6824 },
44660702
DM
6825 "protected" : 1,
6826 "returns" : {
6827 "type" : "null"
6828 }
56122987
DM
6829 }
6830 },
6831 "leaf" : 1,
44660702
DM
6832 "path" : "/cluster/ha/groups/{group}",
6833 "text" : "{group}"
56122987 6834 }
44660702
DM
6835 ],
6836 "info" : {
6837 "GET" : {
e9cd3bd4 6838 "allowtoken" : 1,
44660702
DM
6839 "description" : "Get HA groups.",
6840 "method" : "GET",
6841 "name" : "index",
6842 "parameters" : {
6843 "additionalProperties" : 0
6844 },
6845 "permissions" : {
6846 "check" : [
6847 "perm",
6848 "/",
6849 [
6850 "Sys.Audit"
6851 ]
6852 ]
6853 },
6854 "returns" : {
6855 "items" : {
6856 "properties" : {
6857 "group" : {
6858 "type" : "string"
6859 }
6860 },
6861 "type" : "object"
6862 },
6863 "links" : [
6864 {
6865 "href" : "{group}",
6866 "rel" : "child"
6867 }
6868 ],
6869 "type" : "array"
6870 }
6871 },
6872 "POST" : {
e9cd3bd4 6873 "allowtoken" : 1,
44660702
DM
6874 "description" : "Create a new HA group.",
6875 "method" : "POST",
6876 "name" : "create",
6877 "parameters" : {
6878 "additionalProperties" : 0,
6879 "properties" : {
6880 "comment" : {
6881 "description" : "Description.",
6882 "maxLength" : 4096,
6883 "optional" : 1,
013dc89f
DM
6884 "type" : "string",
6885 "typetext" : "<string>"
44660702
DM
6886 },
6887 "group" : {
6888 "description" : "The HA group identifier.",
6889 "format" : "pve-configid",
013dc89f
DM
6890 "type" : "string",
6891 "typetext" : "<string>"
44660702
DM
6892 },
6893 "nodes" : {
f13c1238 6894 "description" : "List of cluster node names with optional priority.",
44660702
DM
6895 "format" : "pve-ha-group-node-list",
6896 "optional" : 0,
6897 "type" : "string",
f13c1238
DM
6898 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
6899 "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
6900 },
6901 "nofailback" : {
6902 "default" : 0,
6903 "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.",
6904 "optional" : 1,
013dc89f
DM
6905 "type" : "boolean",
6906 "typetext" : "<boolean>"
44660702
DM
6907 },
6908 "restricted" : {
6909 "default" : 0,
c4808e75 6910 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 6911 "optional" : 1,
013dc89f 6912 "type" : "boolean",
c4808e75
DM
6913 "typetext" : "<boolean>",
6914 "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
6915 },
6916 "type" : {
6917 "description" : "Group type.",
6918 "enum" : [
6919 "group"
6920 ],
6921 "optional" : 1,
6922 "type" : "string"
6923 }
6924 },
6925 "type" : "object"
6926 },
6927 "permissions" : {
6928 "check" : [
6929 "perm",
6930 "/",
6931 [
6932 "Sys.Console"
6933 ]
6934 ]
6935 },
6936 "protected" : 1,
6937 "returns" : {
6938 "type" : "null"
6939 }
6940 }
6941 },
6942 "leaf" : 0,
6943 "path" : "/cluster/ha/groups",
6944 "text" : "groups"
7aacca6f
DM
6945 },
6946 {
7aacca6f
DM
6947 "children" : [
6948 {
6949 "info" : {
6950 "GET" : {
e9cd3bd4 6951 "allowtoken" : 1,
56122987 6952 "description" : "Get HA manger status.",
44660702 6953 "method" : "GET",
7aacca6f 6954 "name" : "status",
44660702
DM
6955 "parameters" : {
6956 "additionalProperties" : 0
6957 },
56122987
DM
6958 "permissions" : {
6959 "check" : [
6960 "perm",
6961 "/",
6962 [
6963 "Sys.Audit"
6964 ]
6965 ]
7aacca6f 6966 },
44660702 6967 "returns" : {
159464a9
TL
6968 "items" : {
6969 "properties" : {
6970 "crm_state" : {
6971 "description" : "For type 'service'. Service state as seen by the CRM.",
6972 "optional" : 1,
6973 "type" : "string"
6974 },
6975 "id" : {
6976 "description" : "Status entry ID (quorum, master, lrm:<node>, service:<sid>).",
6977 "type" : "string"
6978 },
6979 "max_relocate" : {
6980 "description" : "For type 'service'.",
6981 "optional" : 1,
6982 "type" : "integer"
6983 },
6984 "max_restart" : {
6985 "description" : "For type 'service'.",
6986 "optional" : 1,
6987 "type" : "integer"
6988 },
6989 "node" : {
6990 "description" : "Node associated to status entry.",
6991 "type" : "string"
6992 },
6993 "quorate" : {
6994 "description" : "For type 'quorum'. Whether the cluster is quorate or not.",
6995 "optional" : 1,
6996 "type" : "boolean"
6997 },
6998 "request_state" : {
6999 "description" : "For type 'service'. Requested service state.",
7000 "optional" : 1,
7001 "type" : "string"
7002 },
7003 "sid" : {
7004 "description" : "For type 'service'. Service ID.",
7005 "optional" : 1,
7006 "type" : "string"
7007 },
7008 "state" : {
7009 "description" : "For type 'service'. Verbose service state.",
7010 "optional" : 1,
7011 "type" : "string"
7012 },
7013 "status" : {
7014 "description" : "Status of the entry (value depends on type).",
7015 "type" : "string"
7016 },
7017 "timestamp" : {
7018 "description" : "For type 'lrm','master'. Timestamp of the status information.",
7019 "optional" : 1,
7020 "type" : "integer"
7021 },
7022 "type" : {
7023 "description" : "Type of status entry.",
7024 "enum" : [
7025 "quorum",
7026 "master",
7027 "lrm",
7028 "service"
7029 ]
7030 }
7031 },
7032 "type" : "object"
7033 },
44660702 7034 "type" : "array"
56122987
DM
7035 }
7036 }
7aacca6f 7037 },
7aacca6f 7038 "leaf" : 1,
44660702
DM
7039 "path" : "/cluster/ha/status/current",
7040 "text" : "current"
56122987
DM
7041 },
7042 {
7043 "info" : {
7044 "GET" : {
e9cd3bd4 7045 "allowtoken" : 1,
7aacca6f 7046 "description" : "Get full HA manger status, including LRM status.",
44660702
DM
7047 "method" : "GET",
7048 "name" : "manager_status",
7aacca6f
DM
7049 "parameters" : {
7050 "additionalProperties" : 0
7051 },
56122987
DM
7052 "permissions" : {
7053 "check" : [
7054 "perm",
7055 "/",
7056 [
7057 "Sys.Audit"
7058 ]
7059 ]
44660702
DM
7060 },
7061 "returns" : {
7062 "type" : "object"
7aacca6f 7063 }
56122987
DM
7064 }
7065 },
56122987 7066 "leaf" : 1,
44660702
DM
7067 "path" : "/cluster/ha/status/manager_status",
7068 "text" : "manager_status"
56122987
DM
7069 }
7070 ],
56122987
DM
7071 "info" : {
7072 "GET" : {
e9cd3bd4 7073 "allowtoken" : 1,
44660702 7074 "description" : "Directory index.",
7aacca6f 7075 "method" : "GET",
44660702
DM
7076 "name" : "index",
7077 "parameters" : {
7078 "additionalProperties" : 0
7079 },
7080 "permissions" : {
7081 "user" : "all"
7082 },
56122987 7083 "returns" : {
56122987
DM
7084 "items" : {
7085 "properties" : {},
7086 "type" : "object"
7087 },
7088 "links" : [
7089 {
44660702
DM
7090 "href" : "{name}",
7091 "rel" : "child"
56122987 7092 }
7aacca6f
DM
7093 ],
7094 "type" : "array"
44660702 7095 }
56122987 7096 }
7aacca6f 7097 },
44660702 7098 "leaf" : 0,
7aacca6f 7099 "path" : "/cluster/ha/status",
44660702 7100 "text" : "status"
56122987
DM
7101 }
7102 ],
56122987
DM
7103 "info" : {
7104 "GET" : {
e9cd3bd4 7105 "allowtoken" : 1,
7aacca6f 7106 "description" : "Directory index.",
44660702
DM
7107 "method" : "GET",
7108 "name" : "index",
7109 "parameters" : {
7110 "additionalProperties" : 0
7111 },
7aacca6f
DM
7112 "permissions" : {
7113 "check" : [
7114 "perm",
7115 "/",
7116 [
7117 "Sys.Audit"
7118 ]
7119 ]
7120 },
56122987 7121 "returns" : {
56122987 7122 "items" : {
7aacca6f
DM
7123 "properties" : {
7124 "id" : {
7125 "type" : "string"
7126 }
44660702
DM
7127 },
7128 "type" : "object"
7aacca6f
DM
7129 },
7130 "links" : [
7131 {
7132 "href" : "{id}",
7133 "rel" : "child"
7134 }
44660702
DM
7135 ],
7136 "type" : "array"
7aacca6f
DM
7137 }
7138 }
44660702
DM
7139 },
7140 "leaf" : 0,
7141 "path" : "/cluster/ha",
7142 "text" : "ha"
7aacca6f 7143 },
a9a8e3d1
DM
7144 {
7145 "children" : [
c5aa7e14
TL
7146 {
7147 "children" : [
7148 {
7149 "info" : {
7150 "DELETE" : {
7151 "allowtoken" : 1,
7152 "description" : "Delete ACME plugin configuration.",
7153 "method" : "DELETE",
7154 "name" : "delete_plugin",
7155 "parameters" : {
7156 "additionalProperties" : 0,
7157 "properties" : {
7158 "id" : {
7159 "description" : "Unique identifier for ACME plugin instance.",
7160 "format" : "pve-configid",
7161 "type" : "string",
7162 "typetext" : "<string>"
7163 }
7164 }
7165 },
7166 "permissions" : {
7167 "check" : [
7168 "perm",
7169 "/",
7170 [
7171 "Sys.Modify"
7172 ]
7173 ]
7174 },
7175 "protected" : 1,
7176 "returns" : {
7177 "type" : "null"
7178 }
7179 },
7180 "GET" : {
7181 "allowtoken" : 1,
7182 "description" : "Get ACME plugin configuration.",
7183 "method" : "GET",
7184 "name" : "get_plugin_config",
7185 "parameters" : {
7186 "additionalProperties" : 0,
7187 "properties" : {
7188 "id" : {
7189 "description" : "Unique identifier for ACME plugin instance.",
7190 "format" : "pve-configid",
7191 "type" : "string",
7192 "typetext" : "<string>"
7193 }
7194 }
7195 },
7196 "permissions" : {
7197 "check" : [
7198 "perm",
7199 "/",
7200 [
7201 "Sys.Modify"
7202 ]
7203 ]
7204 },
7205 "protected" : 1,
7206 "returns" : {
7207 "type" : "object"
7208 }
7209 },
7210 "PUT" : {
7211 "allowtoken" : 1,
7212 "description" : "Update ACME plugin configuration.",
7213 "method" : "PUT",
7214 "name" : "update_plugin",
7215 "parameters" : {
7216 "additionalProperties" : 0,
7217 "properties" : {
7218 "api" : {
7219 "description" : "API plugin name",
7220 "enum" : [
d2656385 7221 "1984hosting",
c5aa7e14
TL
7222 "acmedns",
7223 "acmeproxy",
7224 "active24",
7225 "ad",
7226 "ali",
d2656385 7227 "anx",
bd92b745 7228 "artfiles",
d2656385 7229 "arvan",
e7084ef7 7230 "aurora",
c5aa7e14
TL
7231 "autodns",
7232 "aws",
5370fa8c 7233 "azion",
c5aa7e14 7234 "azure",
bd92b745 7235 "bookmyname",
9d2e98ed 7236 "bunny",
c5aa7e14
TL
7237 "cf",
7238 "clouddns",
7239 "cloudns",
7240 "cn",
7241 "conoha",
7242 "constellix",
9d2e98ed
TL
7243 "cpanel",
7244 "curanet",
c5aa7e14
TL
7245 "cyon",
7246 "da",
7247 "ddnss",
7248 "desec",
ac70d7d1 7249 "df",
c5aa7e14 7250 "dgon",
bd92b745 7251 "dnsexit",
9d2e98ed 7252 "dnshome",
c5aa7e14 7253 "dnsimple",
9d2e98ed 7254 "dnsservices",
c5aa7e14
TL
7255 "do",
7256 "doapi",
7257 "domeneshop",
7258 "dp",
7259 "dpi",
7260 "dreamhost",
7261 "duckdns",
7262 "durabledns",
7263 "dyn",
7264 "dynu",
7265 "dynv6",
7266 "easydns",
d2656385 7267 "edgedns",
c5aa7e14
TL
7268 "euserv",
7269 "exoscale",
9d2e98ed 7270 "fornex",
c5aa7e14
TL
7271 "freedns",
7272 "gandi_livedns",
7273 "gcloud",
8dd66e12 7274 "gcore",
c5aa7e14 7275 "gd",
9d2e98ed 7276 "geoscaling",
8dd66e12 7277 "googledomains",
c5aa7e14 7278 "he",
d2656385 7279 "hetzner",
c5aa7e14
TL
7280 "hexonet",
7281 "hostingde",
d2656385 7282 "huaweicloud",
c5aa7e14 7283 "infoblox",
d2656385 7284 "infomaniak",
c5aa7e14
TL
7285 "internetbs",
7286 "inwx",
d2656385 7287 "ionos",
8dd66e12 7288 "ipv64",
c5aa7e14
TL
7289 "ispconfig",
7290 "jd",
d2656385
TL
7291 "joker",
7292 "kappernet",
c5aa7e14
TL
7293 "kas",
7294 "kinghost",
7295 "knot",
9d2e98ed 7296 "la",
c5aa7e14
TL
7297 "leaseweb",
7298 "lexicon",
7299 "linode",
7300 "linode_v4",
7301 "loopia",
7302 "lua",
7303 "maradns",
7304 "me",
7305 "miab",
7306 "misaka",
7307 "myapi",
7308 "mydevil",
7309 "mydnsjp",
9d2e98ed 7310 "mythic_beasts",
c5aa7e14
TL
7311 "namecheap",
7312 "namecom",
7313 "namesilo",
8dd66e12 7314 "nanelo",
c5aa7e14
TL
7315 "nederhost",
7316 "neodigit",
7317 "netcup",
d2656385 7318 "netlify",
c5aa7e14 7319 "nic",
d2656385
TL
7320 "njalla",
7321 "nm",
c5aa7e14
TL
7322 "nsd",
7323 "nsone",
7324 "nsupdate",
7325 "nw",
5370fa8c 7326 "oci",
c5aa7e14
TL
7327 "one",
7328 "online",
7329 "openprovider",
d2656385 7330 "openstack",
c5aa7e14
TL
7331 "opnsense",
7332 "ovh",
7333 "pdns",
7334 "pleskxml",
7335 "pointhq",
e7084ef7 7336 "porkbun",
d2656385 7337 "rackcorp",
c5aa7e14 7338 "rackspace",
9d2e98ed 7339 "rage4",
c5aa7e14
TL
7340 "rcode0",
7341 "regru",
d2656385 7342 "scaleway",
c5aa7e14
TL
7343 "schlundtech",
7344 "selectel",
9d2e98ed 7345 "selfhost",
c5aa7e14 7346 "servercow",
d2656385 7347 "simply",
c5aa7e14 7348 "tele3",
bd92b745 7349 "tencent",
d2656385 7350 "transip",
9d2e98ed 7351 "udr",
c5aa7e14
TL
7352 "ultra",
7353 "unoeuro",
7354 "variomedia",
5370fa8c 7355 "veesp",
9d2e98ed 7356 "vercel",
c5aa7e14
TL
7357 "vscale",
7358 "vultr",
e7084ef7 7359 "websupport",
d2656385 7360 "world4you",
c5aa7e14 7361 "yandex",
9d2e98ed 7362 "yc",
c5aa7e14
TL
7363 "zilore",
7364 "zone",
7365 "zonomi"
7366 ],
7367 "optional" : 1,
7368 "type" : "string"
7369 },
7370 "data" : {
7371 "description" : "DNS plugin data. (base64 encoded)",
7372 "optional" : 1,
7373 "type" : "string",
7374 "typetext" : "<string>"
7375 },
7376 "delete" : {
7377 "description" : "A list of settings you want to delete.",
7378 "format" : "pve-configid-list",
7379 "maxLength" : 4096,
7380 "optional" : 1,
7381 "type" : "string",
7382 "typetext" : "<string>"
7383 },
7384 "digest" : {
82551b2b
TL
7385 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
7386 "maxLength" : 64,
c5aa7e14
TL
7387 "optional" : 1,
7388 "type" : "string",
7389 "typetext" : "<string>"
7390 },
7391 "disable" : {
7392 "description" : "Flag to disable the config.",
7393 "optional" : 1,
7394 "type" : "boolean",
7395 "typetext" : "<boolean>"
7396 },
7397 "id" : {
7398 "description" : "ACME Plugin ID name",
7399 "format" : "pve-configid",
7400 "type" : "string",
7401 "typetext" : "<string>"
7402 },
7403 "nodes" : {
7404 "description" : "List of cluster node names.",
7405 "format" : "pve-node-list",
7406 "optional" : 1,
7407 "type" : "string",
7408 "typetext" : "<string>"
7409 },
7410 "validation-delay" : {
7411 "default" : 30,
7412 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
7413 "maximum" : 172800,
7414 "minimum" : 0,
7415 "optional" : 1,
7416 "type" : "integer",
7417 "typetext" : "<integer> (0 - 172800)"
7418 }
7419 },
7420 "type" : "object"
7421 },
7422 "permissions" : {
7423 "check" : [
7424 "perm",
7425 "/",
7426 [
7427 "Sys.Modify"
7428 ]
7429 ]
7430 },
7431 "protected" : 1,
7432 "returns" : {
7433 "type" : "null"
7434 }
7435 }
7436 },
7437 "leaf" : 1,
7438 "path" : "/cluster/acme/plugins/{id}",
7439 "text" : "{id}"
7440 }
7441 ],
7442 "info" : {
7443 "GET" : {
7444 "allowtoken" : 1,
7445 "description" : "ACME plugin index.",
7446 "method" : "GET",
7447 "name" : "index",
7448 "parameters" : {
7449 "additionalProperties" : 0,
7450 "properties" : {
7451 "type" : {
7452 "description" : "Only list ACME plugins of a specific type",
7453 "enum" : [
7454 "dns",
7455 "standalone"
7456 ],
7457 "optional" : 1,
7458 "type" : "string"
7459 }
7460 }
7461 },
7462 "permissions" : {
7463 "check" : [
7464 "perm",
7465 "/",
7466 [
7467 "Sys.Modify"
7468 ]
7469 ]
7470 },
7471 "protected" : 1,
7472 "returns" : {
7473 "items" : {
7474 "properties" : {
7475 "plugin" : {
7476 "description" : "Unique identifier for ACME plugin instance.",
7477 "format" : "pve-configid",
7478 "type" : "string"
7479 }
7480 },
7481 "type" : "object"
7482 },
7483 "links" : [
7484 {
7485 "href" : "{plugin}",
7486 "rel" : "child"
7487 }
7488 ],
7489 "type" : "array"
7490 }
7491 },
7492 "POST" : {
7493 "allowtoken" : 1,
7494 "description" : "Add ACME plugin configuration.",
7495 "method" : "POST",
7496 "name" : "add_plugin",
7497 "parameters" : {
7498 "additionalProperties" : 0,
7499 "properties" : {
7500 "api" : {
7501 "description" : "API plugin name",
7502 "enum" : [
d2656385 7503 "1984hosting",
c5aa7e14
TL
7504 "acmedns",
7505 "acmeproxy",
7506 "active24",
7507 "ad",
7508 "ali",
d2656385 7509 "anx",
bd92b745 7510 "artfiles",
d2656385 7511 "arvan",
e7084ef7 7512 "aurora",
c5aa7e14
TL
7513 "autodns",
7514 "aws",
5370fa8c 7515 "azion",
c5aa7e14 7516 "azure",
bd92b745 7517 "bookmyname",
9d2e98ed 7518 "bunny",
c5aa7e14
TL
7519 "cf",
7520 "clouddns",
7521 "cloudns",
7522 "cn",
7523 "conoha",
7524 "constellix",
9d2e98ed
TL
7525 "cpanel",
7526 "curanet",
c5aa7e14
TL
7527 "cyon",
7528 "da",
7529 "ddnss",
7530 "desec",
ac70d7d1 7531 "df",
c5aa7e14 7532 "dgon",
bd92b745 7533 "dnsexit",
9d2e98ed 7534 "dnshome",
c5aa7e14 7535 "dnsimple",
9d2e98ed 7536 "dnsservices",
c5aa7e14
TL
7537 "do",
7538 "doapi",
7539 "domeneshop",
7540 "dp",
7541 "dpi",
7542 "dreamhost",
7543 "duckdns",
7544 "durabledns",
7545 "dyn",
7546 "dynu",
7547 "dynv6",
7548 "easydns",
d2656385 7549 "edgedns",
c5aa7e14
TL
7550 "euserv",
7551 "exoscale",
9d2e98ed 7552 "fornex",
c5aa7e14
TL
7553 "freedns",
7554 "gandi_livedns",
7555 "gcloud",
8dd66e12 7556 "gcore",
c5aa7e14 7557 "gd",
9d2e98ed 7558 "geoscaling",
8dd66e12 7559 "googledomains",
c5aa7e14 7560 "he",
d2656385 7561 "hetzner",
c5aa7e14
TL
7562 "hexonet",
7563 "hostingde",
d2656385 7564 "huaweicloud",
c5aa7e14 7565 "infoblox",
d2656385 7566 "infomaniak",
c5aa7e14
TL
7567 "internetbs",
7568 "inwx",
d2656385 7569 "ionos",
8dd66e12 7570 "ipv64",
c5aa7e14
TL
7571 "ispconfig",
7572 "jd",
d2656385
TL
7573 "joker",
7574 "kappernet",
c5aa7e14
TL
7575 "kas",
7576 "kinghost",
7577 "knot",
9d2e98ed 7578 "la",
c5aa7e14
TL
7579 "leaseweb",
7580 "lexicon",
7581 "linode",
7582 "linode_v4",
7583 "loopia",
7584 "lua",
7585 "maradns",
7586 "me",
7587 "miab",
7588 "misaka",
7589 "myapi",
7590 "mydevil",
7591 "mydnsjp",
9d2e98ed 7592 "mythic_beasts",
c5aa7e14
TL
7593 "namecheap",
7594 "namecom",
7595 "namesilo",
8dd66e12 7596 "nanelo",
c5aa7e14
TL
7597 "nederhost",
7598 "neodigit",
7599 "netcup",
d2656385 7600 "netlify",
c5aa7e14 7601 "nic",
d2656385
TL
7602 "njalla",
7603 "nm",
c5aa7e14
TL
7604 "nsd",
7605 "nsone",
7606 "nsupdate",
7607 "nw",
5370fa8c 7608 "oci",
c5aa7e14
TL
7609 "one",
7610 "online",
7611 "openprovider",
d2656385 7612 "openstack",
c5aa7e14
TL
7613 "opnsense",
7614 "ovh",
7615 "pdns",
7616 "pleskxml",
7617 "pointhq",
e7084ef7 7618 "porkbun",
d2656385 7619 "rackcorp",
c5aa7e14 7620 "rackspace",
9d2e98ed 7621 "rage4",
c5aa7e14
TL
7622 "rcode0",
7623 "regru",
d2656385 7624 "scaleway",
c5aa7e14
TL
7625 "schlundtech",
7626 "selectel",
9d2e98ed 7627 "selfhost",
c5aa7e14 7628 "servercow",
d2656385 7629 "simply",
c5aa7e14 7630 "tele3",
bd92b745 7631 "tencent",
d2656385 7632 "transip",
9d2e98ed 7633 "udr",
c5aa7e14
TL
7634 "ultra",
7635 "unoeuro",
7636 "variomedia",
5370fa8c 7637 "veesp",
9d2e98ed 7638 "vercel",
c5aa7e14
TL
7639 "vscale",
7640 "vultr",
e7084ef7 7641 "websupport",
d2656385 7642 "world4you",
c5aa7e14 7643 "yandex",
9d2e98ed 7644 "yc",
c5aa7e14
TL
7645 "zilore",
7646 "zone",
7647 "zonomi"
7648 ],
7649 "optional" : 1,
7650 "type" : "string"
7651 },
7652 "data" : {
7653 "description" : "DNS plugin data. (base64 encoded)",
7654 "optional" : 1,
7655 "type" : "string",
7656 "typetext" : "<string>"
7657 },
7658 "disable" : {
7659 "description" : "Flag to disable the config.",
7660 "optional" : 1,
7661 "type" : "boolean",
7662 "typetext" : "<boolean>"
7663 },
7664 "id" : {
7665 "description" : "ACME Plugin ID name",
7666 "format" : "pve-configid",
7667 "type" : "string",
7668 "typetext" : "<string>"
7669 },
7670 "nodes" : {
7671 "description" : "List of cluster node names.",
7672 "format" : "pve-node-list",
7673 "optional" : 1,
7674 "type" : "string",
7675 "typetext" : "<string>"
7676 },
7677 "type" : {
7678 "description" : "ACME challenge type.",
7679 "enum" : [
7680 "dns",
7681 "standalone"
7682 ],
7683 "type" : "string"
7684 },
7685 "validation-delay" : {
7686 "default" : 30,
7687 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
7688 "maximum" : 172800,
7689 "minimum" : 0,
7690 "optional" : 1,
7691 "type" : "integer",
7692 "typetext" : "<integer> (0 - 172800)"
7693 }
7694 },
7695 "type" : "object"
7696 },
7697 "permissions" : {
7698 "check" : [
7699 "perm",
7700 "/",
7701 [
7702 "Sys.Modify"
7703 ]
7704 ]
7705 },
7706 "protected" : 1,
7707 "returns" : {
7708 "type" : "null"
7709 }
7710 }
7711 },
7712 "leaf" : 0,
7713 "path" : "/cluster/acme/plugins",
7714 "text" : "plugins"
7715 },
a9a8e3d1
DM
7716 {
7717 "children" : [
7718 {
7719 "info" : {
7720 "DELETE" : {
e9cd3bd4 7721 "allowtoken" : 1,
a9a8e3d1
DM
7722 "description" : "Deactivate existing ACME account at CA.",
7723 "method" : "DELETE",
7724 "name" : "deactivate_account",
7725 "parameters" : {
7726 "additionalProperties" : 0,
7727 "properties" : {
7728 "name" : {
7729 "default" : "default",
7730 "description" : "ACME account config file name.",
7731 "format" : "pve-configid",
7732 "format_description" : "name",
7733 "optional" : 1,
7734 "type" : "string",
7735 "typetext" : "<name>"
7736 }
7737 }
7738 },
7739 "protected" : 1,
7740 "returns" : {
7741 "type" : "string"
7742 }
7743 },
7744 "GET" : {
e9cd3bd4 7745 "allowtoken" : 1,
a9a8e3d1
DM
7746 "description" : "Return existing ACME account information.",
7747 "method" : "GET",
7748 "name" : "get_account",
7749 "parameters" : {
7750 "additionalProperties" : 0,
7751 "properties" : {
7752 "name" : {
7753 "default" : "default",
7754 "description" : "ACME account config file name.",
7755 "format" : "pve-configid",
7756 "format_description" : "name",
7757 "optional" : 1,
7758 "type" : "string",
7759 "typetext" : "<name>"
7760 }
7761 }
7762 },
7763 "protected" : 1,
7764 "returns" : {
7765 "additionalProperties" : 0,
7766 "properties" : {
7767 "account" : {
7768 "optional" : 1,
4d47f125 7769 "renderer" : "yaml",
a9a8e3d1
DM
7770 "type" : "object"
7771 },
7772 "directory" : {
7773 "description" : "URL of ACME CA directory endpoint.",
7774 "optional" : 1,
7775 "pattern" : "^https?://.*",
7776 "type" : "string"
7777 },
7778 "location" : {
7779 "optional" : 1,
7780 "type" : "string"
7781 },
7782 "tos" : {
7783 "optional" : 1,
7784 "type" : "string"
7785 }
7786 },
7787 "type" : "object"
7788 }
7789 },
7790 "PUT" : {
e9cd3bd4 7791 "allowtoken" : 1,
a9a8e3d1
DM
7792 "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
7793 "method" : "PUT",
7794 "name" : "update_account",
7795 "parameters" : {
7796 "additionalProperties" : 0,
7797 "properties" : {
7798 "contact" : {
7799 "description" : "Contact email addresses.",
7800 "format" : "email-list",
7801 "optional" : 1,
7802 "type" : "string",
7803 "typetext" : "<string>"
7804 },
7805 "name" : {
7806 "default" : "default",
7807 "description" : "ACME account config file name.",
7808 "format" : "pve-configid",
7809 "format_description" : "name",
7810 "optional" : 1,
7811 "type" : "string",
7812 "typetext" : "<name>"
7813 }
7814 }
7815 },
7816 "protected" : 1,
7817 "returns" : {
7818 "type" : "string"
7819 }
7820 }
7821 },
7822 "leaf" : 1,
7823 "path" : "/cluster/acme/account/{name}",
7824 "text" : "{name}"
7825 }
7826 ],
7827 "info" : {
7828 "GET" : {
e9cd3bd4 7829 "allowtoken" : 1,
a9a8e3d1
DM
7830 "description" : "ACMEAccount index.",
7831 "method" : "GET",
7832 "name" : "account_index",
7833 "parameters" : {
7834 "additionalProperties" : 0
7835 },
7836 "permissions" : {
7837 "user" : "all"
7838 },
7839 "protected" : 1,
7840 "returns" : {
7841 "items" : {
7842 "properties" : {},
7843 "type" : "object"
7844 },
7845 "links" : [
7846 {
7847 "href" : "{name}",
7848 "rel" : "child"
7849 }
7850 ],
7851 "type" : "array"
7852 }
7853 },
7854 "POST" : {
e9cd3bd4 7855 "allowtoken" : 1,
a9a8e3d1
DM
7856 "description" : "Register a new ACME account with CA.",
7857 "method" : "POST",
7858 "name" : "register_account",
7859 "parameters" : {
7860 "additionalProperties" : 0,
7861 "properties" : {
7862 "contact" : {
7863 "description" : "Contact email addresses.",
7864 "format" : "email-list",
7865 "type" : "string",
7866 "typetext" : "<string>"
7867 },
7868 "directory" : {
7869 "default" : "https://acme-v02.api.letsencrypt.org/directory",
7870 "description" : "URL of ACME CA directory endpoint.",
7871 "optional" : 1,
7872 "pattern" : "^https?://.*",
7873 "type" : "string"
7874 },
fa22697b
TL
7875 "eab-hmac-key" : {
7876 "description" : "HMAC key for External Account Binding.",
7877 "optional" : 1,
7878 "requires" : "eab-kid",
7879 "type" : "string",
7880 "typetext" : "<string>"
7881 },
7882 "eab-kid" : {
7883 "description" : "Key Identifier for External Account Binding.",
7884 "optional" : 1,
7885 "requires" : "eab-hmac-key",
7886 "type" : "string",
7887 "typetext" : "<string>"
7888 },
a9a8e3d1
DM
7889 "name" : {
7890 "default" : "default",
7891 "description" : "ACME account config file name.",
7892 "format" : "pve-configid",
7893 "format_description" : "name",
7894 "optional" : 1,
7895 "type" : "string",
7896 "typetext" : "<name>"
7897 },
7898 "tos_url" : {
7899 "description" : "URL of CA TermsOfService - setting this indicates agreement.",
7900 "optional" : 1,
7901 "type" : "string",
7902 "typetext" : "<string>"
7903 }
7904 }
7905 },
7906 "protected" : 1,
7907 "returns" : {
7908 "type" : "string"
7909 }
7910 }
7911 },
7912 "leaf" : 0,
7913 "path" : "/cluster/acme/account",
7914 "text" : "account"
7915 },
7916 {
7917 "info" : {
7918 "GET" : {
e9cd3bd4 7919 "allowtoken" : 1,
fa22697b 7920 "description" : "Retrieve ACME TermsOfService URL from CA. Deprecated, please use /cluster/acme/meta.",
a9a8e3d1
DM
7921 "method" : "GET",
7922 "name" : "get_tos",
7923 "parameters" : {
7924 "additionalProperties" : 0,
7925 "properties" : {
7926 "directory" : {
7927 "default" : "https://acme-v02.api.letsencrypt.org/directory",
7928 "description" : "URL of ACME CA directory endpoint.",
7929 "optional" : 1,
7930 "pattern" : "^https?://.*",
7931 "type" : "string"
7932 }
7933 }
7934 },
5da3d723
TL
7935 "permissions" : {
7936 "user" : "all"
7937 },
a9a8e3d1
DM
7938 "returns" : {
7939 "description" : "ACME TermsOfService URL.",
5c1699e5 7940 "optional" : 1,
a9a8e3d1
DM
7941 "type" : "string"
7942 }
7943 }
7944 },
7945 "leaf" : 1,
7946 "path" : "/cluster/acme/tos",
7947 "text" : "tos"
7948 },
fa22697b
TL
7949 {
7950 "info" : {
7951 "GET" : {
7952 "allowtoken" : 1,
7953 "description" : "Retrieve ACME Directory Meta Information",
7954 "method" : "GET",
7955 "name" : "get_meta",
7956 "parameters" : {
7957 "additionalProperties" : 0,
7958 "properties" : {
7959 "directory" : {
7960 "default" : "https://acme-v02.api.letsencrypt.org/directory",
7961 "description" : "URL of ACME CA directory endpoint.",
7962 "optional" : 1,
7963 "pattern" : "^https?://.*",
7964 "type" : "string"
7965 }
7966 }
7967 },
7968 "permissions" : {
7969 "check" : [
7970 "perm",
7971 "/nodes/{node}",
7972 [
7973 "Sys.Audit"
7974 ]
7975 ]
7976 },
7977 "returns" : {
7978 "additionalProperties" : 1,
7979 "properties" : {
7980 "caaIdentities" : {
7981 "description" : "Hostnames referring to the ACME servers.",
7982 "items" : {
7983 "type" : "string"
7984 },
7985 "optional" : 1,
7986 "type" : "array"
7987 },
7988 "externalAccountRequired" : {
7989 "description" : "EAB Required",
7990 "optional" : 1,
7991 "type" : "boolean"
7992 },
7993 "termsOfService" : {
7994 "description" : "ACME TermsOfService URL.",
7995 "optional" : 1,
7996 "type" : "string"
7997 },
7998 "website" : {
7999 "description" : "URL to more information about the ACME server.",
8000 "optional" : 1,
8001 "type" : "string"
8002 }
8003 },
8004 "type" : "object"
8005 }
8006 }
8007 },
8008 "leaf" : 1,
8009 "path" : "/cluster/acme/meta",
8010 "text" : "meta"
8011 },
a9a8e3d1
DM
8012 {
8013 "info" : {
8014 "GET" : {
e9cd3bd4 8015 "allowtoken" : 1,
a9a8e3d1
DM
8016 "description" : "Get named known ACME directory endpoints.",
8017 "method" : "GET",
8018 "name" : "get_directories",
8019 "parameters" : {
8020 "additionalProperties" : 0
8021 },
5da3d723
TL
8022 "permissions" : {
8023 "user" : "all"
8024 },
a9a8e3d1
DM
8025 "returns" : {
8026 "items" : {
8027 "additionalProperties" : 0,
8028 "properties" : {
8029 "name" : {
8030 "type" : "string"
8031 },
8032 "url" : {
8033 "description" : "URL of ACME CA directory endpoint.",
8034 "pattern" : "^https?://.*",
8035 "type" : "string"
8036 }
8037 },
8038 "type" : "object"
8039 },
8040 "type" : "array"
8041 }
8042 }
8043 },
8044 "leaf" : 1,
8045 "path" : "/cluster/acme/directories",
8046 "text" : "directories"
ac70d7d1
TL
8047 },
8048 {
8049 "info" : {
8050 "GET" : {
8051 "allowtoken" : 1,
8052 "description" : "Get schema of ACME challenge types.",
8053 "method" : "GET",
8054 "name" : "challengeschema",
8055 "parameters" : {
8056 "additionalProperties" : 0
8057 },
8058 "permissions" : {
8059 "user" : "all"
8060 },
8061 "returns" : {
8062 "items" : {
8063 "additionalProperties" : 0,
8064 "properties" : {
8065 "id" : {
8066 "type" : "string"
8067 },
8068 "name" : {
8069 "description" : "Human readable name, falls back to id",
8070 "type" : "string"
8071 },
8072 "schema" : {
8073 "type" : "object"
8074 },
8075 "type" : {
8076 "type" : "string"
8077 }
8078 },
8079 "type" : "object"
8080 },
8081 "type" : "array"
8082 }
8083 }
8084 },
8085 "leaf" : 1,
8086 "path" : "/cluster/acme/challenge-schema",
8087 "text" : "challenge-schema"
a9a8e3d1
DM
8088 }
8089 ],
8090 "info" : {
8091 "GET" : {
e9cd3bd4 8092 "allowtoken" : 1,
a9a8e3d1
DM
8093 "description" : "ACMEAccount index.",
8094 "method" : "GET",
8095 "name" : "index",
8096 "parameters" : {
8097 "additionalProperties" : 0
8098 },
8099 "permissions" : {
8100 "user" : "all"
8101 },
8102 "returns" : {
8103 "items" : {
8104 "properties" : {},
8105 "type" : "object"
8106 },
8107 "links" : [
8108 {
8109 "href" : "{name}",
8110 "rel" : "child"
8111 }
8112 ],
8113 "type" : "array"
8114 }
8115 }
8116 },
8117 "leaf" : 0,
8118 "path" : "/cluster/acme",
8119 "text" : "acme"
8120 },
1c532546
TL
8121 {
8122 "children" : [
8123 {
8124 "info" : {
8125 "GET" : {
e9cd3bd4 8126 "allowtoken" : 1,
1c532546
TL
8127 "description" : "Get ceph metadata.",
8128 "method" : "GET",
8129 "name" : "metadata",
8130 "parameters" : {
c5aa7e14
TL
8131 "additionalProperties" : 0,
8132 "properties" : {
8133 "scope" : {
8134 "default" : "all",
8135 "enum" : [
8136 "all",
8137 "versions"
8138 ],
8139 "optional" : 1,
8140 "type" : "string"
8141 }
8142 }
1c532546
TL
8143 },
8144 "permissions" : {
8145 "check" : [
8146 "perm",
8147 "/",
8148 [
8149 "Sys.Audit",
8150 "Datastore.Audit"
8151 ],
8152 "any",
8153 1
8154 ]
8155 },
8156 "protected" : 1,
8157 "returns" : {
9d2e98ed
TL
8158 "description" : "Items for each type of service containing objects for each instance.",
8159 "properties" : {
8160 "mds" : {
8161 "description" : "Metadata servers configured in the cluster and their properties.",
8162 "properties" : {
8163 "{id}" : {
8164 "description" : "Useful properties are listed, but not the full list.",
8165 "properties" : {
8166 "addr" : {
8167 "description" : "Bind addresses and ports.",
8168 "type" : "string"
8169 },
8170 "ceph_release" : {
8171 "description" : "Ceph release codename currently used.",
8172 "type" : "string"
8173 },
8174 "ceph_version" : {
8175 "description" : "Version info currently used by the service.",
8176 "type" : "string"
8177 },
8178 "ceph_version_short" : {
8179 "description" : "Short version (numerical) info currently used by the service.",
8180 "type" : "string"
8181 },
8182 "hostname" : {
8183 "description" : "Hostname on which the service is running.",
8184 "type" : "string"
8185 },
8186 "mem_swap_kb" : {
8187 "description" : "Memory of the service currently in swap.",
8188 "type" : "integer"
8189 },
8190 "mem_total_kb" : {
8191 "description" : "Memory consumption of the service.",
8192 "type" : "integer"
8193 },
8194 "name" : {
8195 "description" : "Name of the service instance.",
8196 "type" : "string"
8197 }
8198 },
8199 "type" : "object"
8200 }
8201 },
8202 "type" : "object"
8203 },
8204 "mgr" : {
8205 "description" : "Managers configured in the cluster and their properties.",
8206 "properties" : {
8207 "{id}" : {
8208 "description" : "Useful properties are listed, but not the full list.",
8209 "properties" : {
8210 "addr" : {
8211 "description" : "Bind address",
8212 "type" : "string"
8213 },
8214 "ceph_release" : {
8215 "description" : "Ceph release codename currently used.",
8216 "type" : "string"
8217 },
8218 "ceph_version" : {
8219 "description" : "Version info currently used by the service.",
8220 "type" : "string"
8221 },
8222 "ceph_version_short" : {
8223 "description" : "Short version (numerical) info currently used by the service.",
8224 "type" : "string"
8225 },
8226 "hostname" : {
8227 "description" : "Hostname on which the service is running.",
8228 "type" : "string"
8229 },
8230 "mem_swap_kb" : {
8231 "description" : "Memory of the service currently in swap.",
8232 "type" : "integer"
8233 },
8234 "mem_total_kb" : {
8235 "description" : "Memory consumption of the service.",
8236 "type" : "integer"
8237 },
8238 "name" : {
8239 "description" : "Name of the service instance.",
8240 "type" : "string"
8241 }
8242 },
8243 "type" : "object"
8244 }
8245 },
8246 "type" : "object"
8247 },
8248 "mon" : {
8249 "description" : "Monitors configured in the cluster and their properties.",
8250 "properties" : {
8251 "{id}" : {
8252 "description" : "Useful properties are listed, but not the full list.",
8253 "properties" : {
8254 "addrs" : {
8255 "description" : "Bind addresses and ports.",
8256 "type" : "string"
8257 },
8258 "ceph_release" : {
8259 "description" : "Ceph release codename currently used.",
8260 "type" : "string"
8261 },
8262 "ceph_version" : {
8263 "description" : "Version info currently used by the service.",
8264 "type" : "string"
8265 },
8266 "ceph_version_short" : {
8267 "description" : "Short version (numerical) info currently used by the service.",
8268 "type" : "string"
8269 },
8270 "hostname" : {
8271 "description" : "Hostname on which the service is running.",
8272 "type" : "string"
8273 },
8274 "mem_swap_kb" : {
8275 "description" : "Memory of the service currently in swap.",
8276 "type" : "integer"
8277 },
8278 "mem_total_kb" : {
8279 "description" : "Memory consumption of the service.",
8280 "type" : "integer"
8281 },
8282 "name" : {
8283 "description" : "Name of the service instance.",
8284 "type" : "string"
8285 }
8286 },
8287 "type" : "object"
8288 }
8289 },
8290 "type" : "object"
8291 },
8292 "node" : {
8293 "description" : "Ceph version installed on the nodes.",
8294 "properties" : {
8295 "{node}" : {
8296 "properties" : {
8297 "buildcommit" : {
8298 "description" : "GIT commit used for the build.",
8299 "type" : "string"
8300 },
8301 "version" : {
8302 "description" : "Version info.",
8303 "properties" : {
8304 "parts" : {
8305 "description" : "major, minor & patch",
8306 "type" : "array"
8307 },
8308 "str" : {
8309 "description" : "Version as single string.",
8310 "type" : "string"
8311 }
8312 },
8313 "type" : "object"
8314 }
8315 },
8316 "type" : "object"
8317 }
8318 },
8319 "type" : "object"
8320 },
8321 "osd" : {
8322 "description" : "OSDs configured in the cluster and their properties.",
8323 "properties" : {
8324 "{id}" : {
8325 "description" : "Useful properties are listed, but not the full list.",
8326 "properties" : {
8327 "back_addr" : {
8328 "description" : "Bind addresses and ports for backend inter OSD traffic.",
8329 "type" : "string"
8330 },
8331 "ceph_release" : {
8332 "description" : "Ceph release codename currently used.",
8333 "type" : "string"
8334 },
8335 "ceph_version" : {
8336 "description" : "Version info currently used by the service.",
8337 "type" : "string"
8338 },
8339 "ceph_version_short" : {
8340 "description" : "Short version (numerical) info currently used by the service.",
8341 "type" : "string"
8342 },
8343 "device_id" : {
8344 "description" : "Devices used by the OSD.",
8345 "type" : "string"
8346 },
8347 "front_addr" : {
8348 "description" : "Bind addresses and ports for frontend traffic to OSDs.",
8349 "type" : "string"
8350 },
8351 "hostname" : {
8352 "description" : "Hostname on which the service is running.",
8353 "type" : "string"
8354 },
8355 "id" : {
8356 "description" : "OSD ID.",
8357 "type" : "integer"
8358 },
8359 "mem_swap_kb" : {
8360 "description" : "Memory of the service currently in swap.",
8361 "type" : "integer"
8362 },
8363 "mem_total_kb" : {
8364 "description" : "Memory consumption of the service.",
8365 "type" : "integer"
8366 },
8367 "osd_data" : {
8368 "description" : "Path to the OSD data directory.",
8369 "type" : "string"
8370 },
8371 "osd_objectstore" : {
8372 "description" : "OSD objectstore type.",
8373 "type" : "string"
8374 }
8375 },
8376 "type" : "object"
8377 }
8378 },
8379 "type" : "array"
8380 }
8381 },
1c532546
TL
8382 "type" : "object"
8383 }
8384 }
8385 },
8386 "leaf" : 1,
8387 "path" : "/cluster/ceph/metadata",
8388 "text" : "metadata"
8389 },
8390 {
8391 "info" : {
8392 "GET" : {
e9cd3bd4 8393 "allowtoken" : 1,
1c532546
TL
8394 "description" : "Get ceph status.",
8395 "method" : "GET",
8396 "name" : "status",
8397 "parameters" : {
8398 "additionalProperties" : 0
8399 },
8400 "permissions" : {
8401 "check" : [
8402 "perm",
8403 "/",
8404 [
8405 "Sys.Audit",
8406 "Datastore.Audit"
8407 ],
8408 "any",
8409 1
8410 ]
8411 },
8412 "protected" : 1,
8413 "returns" : {
8414 "type" : "object"
8415 }
8416 }
8417 },
8418 "leaf" : 1,
8419 "path" : "/cluster/ceph/status",
8420 "text" : "status"
8421 },
8422 {
8423 "children" : [
8424 {
8425 "info" : {
8426 "GET" : {
e9cd3bd4 8427 "allowtoken" : 1,
1c532546
TL
8428 "description" : "Get the status of a specific ceph flag.",
8429 "method" : "GET",
8430 "name" : "get_flag",
8431 "parameters" : {
8432 "additionalProperties" : 0,
8433 "properties" : {
8434 "flag" : {
8435 "description" : "The name of the flag name to get.",
8436 "enum" : [
8437 "nobackfill",
8438 "nodeep-scrub",
8439 "nodown",
8440 "noin",
8441 "noout",
8442 "norebalance",
8443 "norecover",
8444 "noscrub",
8445 "notieragent",
8446 "noup",
8447 "pause"
8448 ],
8449 "type" : "string"
8450 }
8451 }
8452 },
8453 "permissions" : {
8454 "check" : [
8455 "perm",
8456 "/",
8457 [
8458 "Sys.Audit"
8459 ]
8460 ]
8461 },
8462 "protected" : 1,
8463 "returns" : {
8464 "type" : "boolean"
8465 }
8466 },
8467 "PUT" : {
e9cd3bd4 8468 "allowtoken" : 1,
1c532546
TL
8469 "description" : "Set or clear (unset) a specific ceph flag",
8470 "method" : "PUT",
8471 "name" : "update_flag",
8472 "parameters" : {
8473 "additionalProperties" : 0,
8474 "properties" : {
8475 "flag" : {
8476 "description" : "The ceph flag to update",
8477 "enum" : [
8478 "nobackfill",
8479 "nodeep-scrub",
8480 "nodown",
8481 "noin",
8482 "noout",
8483 "norebalance",
8484 "norecover",
8485 "noscrub",
8486 "notieragent",
8487 "noup",
8488 "pause"
8489 ],
8490 "type" : "string"
8491 },
8492 "value" : {
8493 "description" : "The new value of the flag",
8494 "type" : "boolean",
8495 "typetext" : "<boolean>"
8496 }
8497 }
8498 },
8499 "permissions" : {
8500 "check" : [
8501 "perm",
8502 "/",
8503 [
8504 "Sys.Modify"
8505 ]
8506 ]
8507 },
8508 "protected" : 1,
8509 "returns" : {
8510 "type" : "null"
8511 }
8512 }
8513 },
8514 "leaf" : 1,
8515 "path" : "/cluster/ceph/flags/{flag}",
8516 "text" : "{flag}"
8517 }
8518 ],
8519 "info" : {
8520 "GET" : {
e9cd3bd4 8521 "allowtoken" : 1,
1c532546
TL
8522 "description" : "get the status of all ceph flags",
8523 "method" : "GET",
8524 "name" : "get_all_flags",
8525 "parameters" : {
8526 "additionalProperties" : 0
8527 },
8528 "permissions" : {
8529 "check" : [
8530 "perm",
8531 "/",
8532 [
8533 "Sys.Audit"
8534 ]
8535 ]
8536 },
8537 "protected" : 1,
8538 "returns" : {
8539 "items" : {
8540 "additionalProperties" : 1,
8541 "properties" : {
9d2e98ed
TL
8542 "description" : {
8543 "description" : "Flag description.",
8544 "type" : "string"
8545 },
1c532546
TL
8546 "name" : {
8547 "description" : "Flag name.",
8548 "enum" : [
8549 "nobackfill",
8550 "nodeep-scrub",
8551 "nodown",
8552 "noin",
8553 "noout",
8554 "norebalance",
8555 "norecover",
8556 "noscrub",
8557 "notieragent",
8558 "noup",
8559 "pause"
8560 ],
8561 "type" : "string"
9d2e98ed
TL
8562 },
8563 "value" : {
8564 "description" : "Flag value.",
8565 "type" : "boolean"
1c532546
TL
8566 }
8567 },
8568 "type" : "object"
8569 },
8570 "links" : [
8571 {
8572 "href" : "{name}",
8573 "rel" : "child"
8574 }
8575 ],
8576 "type" : "array"
8577 }
8578 },
8579 "PUT" : {
e9cd3bd4 8580 "allowtoken" : 1,
1c532546
TL
8581 "description" : "Set/Unset multiple ceph flags at once.",
8582 "method" : "PUT",
8583 "name" : "set_flags",
8584 "parameters" : {
8585 "additionalProperties" : 0,
8586 "properties" : {
8587 "nobackfill" : {
8588 "description" : "Backfilling of PGs is suspended.",
8589 "optional" : 1,
8590 "type" : "boolean",
8591 "typetext" : "<boolean>"
8592 },
8593 "nodeep-scrub" : {
8594 "description" : "Deep Scrubbing is disabled.",
8595 "optional" : 1,
8596 "type" : "boolean",
8597 "typetext" : "<boolean>"
8598 },
8599 "nodown" : {
8600 "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
8601 "optional" : 1,
8602 "type" : "boolean",
8603 "typetext" : "<boolean>"
8604 },
8605 "noin" : {
8606 "description" : "OSDs that were previously marked out will not be marked back in when they start.",
8607 "optional" : 1,
8608 "type" : "boolean",
8609 "typetext" : "<boolean>"
8610 },
8611 "noout" : {
8612 "description" : "OSDs will not automatically be marked out after the configured interval.",
8613 "optional" : 1,
8614 "type" : "boolean",
8615 "typetext" : "<boolean>"
8616 },
8617 "norebalance" : {
8618 "description" : "Rebalancing of PGs is suspended.",
8619 "optional" : 1,
8620 "type" : "boolean",
8621 "typetext" : "<boolean>"
8622 },
8623 "norecover" : {
8624 "description" : "Recovery of PGs is suspended.",
8625 "optional" : 1,
8626 "type" : "boolean",
8627 "typetext" : "<boolean>"
8628 },
8629 "noscrub" : {
8630 "description" : "Scrubbing is disabled.",
8631 "optional" : 1,
8632 "type" : "boolean",
8633 "typetext" : "<boolean>"
8634 },
8635 "notieragent" : {
8636 "description" : "Cache tiering activity is suspended.",
8637 "optional" : 1,
8638 "type" : "boolean",
8639 "typetext" : "<boolean>"
8640 },
8641 "noup" : {
8642 "description" : "OSDs are not allowed to start.",
8643 "optional" : 1,
8644 "type" : "boolean",
8645 "typetext" : "<boolean>"
8646 },
8647 "pause" : {
8648 "description" : "Pauses read and writes.",
8649 "optional" : 1,
8650 "type" : "boolean",
8651 "typetext" : "<boolean>"
8652 }
8653 }
8654 },
8655 "permissions" : {
8656 "check" : [
8657 "perm",
8658 "/",
8659 [
8660 "Sys.Modify"
8661 ]
8662 ]
8663 },
8664 "protected" : 1,
8665 "returns" : {
8666 "type" : "string"
8667 }
8668 }
8669 },
8670 "leaf" : 0,
8671 "path" : "/cluster/ceph/flags",
8672 "text" : "flags"
8673 }
8674 ],
8675 "info" : {
8676 "GET" : {
e9cd3bd4 8677 "allowtoken" : 1,
1c532546
TL
8678 "description" : "Cluster ceph index.",
8679 "method" : "GET",
8680 "name" : "cephindex",
8681 "parameters" : {
8682 "additionalProperties" : 0
8683 },
8684 "permissions" : {
8685 "user" : "all"
8686 },
8687 "returns" : {
8688 "items" : {
8689 "properties" : {},
8690 "type" : "object"
8691 },
8692 "links" : [
8693 {
8694 "href" : "{name}",
8695 "rel" : "child"
8696 }
8697 ],
8698 "type" : "array"
8699 }
8700 }
8701 },
8702 "leaf" : 0,
8703 "path" : "/cluster/ceph",
8704 "text" : "ceph"
8705 },
5370fa8c
TL
8706 {
8707 "children" : [
159464a9
TL
8708 {
8709 "children" : [
8710 {
8711 "info" : {
8712 "DELETE" : {
8713 "allowtoken" : 1,
8714 "description" : "Delete realm-sync job definition.",
8715 "method" : "DELETE",
8716 "name" : "delete_job",
8717 "parameters" : {
8718 "additionalProperties" : 0,
8719 "properties" : {
8720 "id" : {
8721 "format" : "pve-configid",
8722 "type" : "string",
8723 "typetext" : "<string>"
8724 }
8725 }
8726 },
8727 "permissions" : {
8728 "check" : [
8729 "perm",
8730 "/",
8731 [
8732 "Sys.Modify"
8733 ]
8734 ]
8735 },
8736 "protected" : 1,
8737 "returns" : {
8738 "type" : "null"
8739 }
8740 },
8741 "GET" : {
8742 "allowtoken" : 1,
8743 "description" : "Read realm-sync job definition.",
8744 "method" : "GET",
8745 "name" : "read_job",
8746 "parameters" : {
8747 "additionalProperties" : 0,
8748 "properties" : {
8749 "id" : {
8750 "format" : "pve-configid",
8751 "type" : "string",
8752 "typetext" : "<string>"
8753 }
8754 }
8755 },
8756 "permissions" : {
8757 "check" : [
8758 "perm",
8759 "/",
8760 [
8761 "Sys.Audit"
8762 ]
8763 ]
8764 },
8765 "returns" : {
8766 "type" : "object"
8767 }
8768 },
8769 "POST" : {
8770 "allowtoken" : 1,
8771 "description" : "Create new realm-sync job.",
8772 "method" : "POST",
8773 "name" : "create_job",
8774 "parameters" : {
8775 "additionalProperties" : 0,
8776 "properties" : {
8777 "comment" : {
8778 "description" : "Description for the Job.",
8779 "maxLength" : 512,
8780 "optional" : 1,
8781 "type" : "string",
8782 "typetext" : "<string>"
8783 },
8784 "enable-new" : {
8785 "default" : "1",
8786 "description" : "Enable newly synced users immediately.",
8787 "optional" : 1,
8788 "type" : "boolean",
8789 "typetext" : "<boolean>"
8790 },
8791 "enabled" : {
8792 "default" : 1,
8793 "description" : "Determines if the job is enabled.",
8794 "optional" : 1,
8795 "type" : "boolean",
8796 "typetext" : "<boolean>"
8797 },
8798 "id" : {
8799 "description" : "The ID of the job.",
8800 "format" : "pve-configid",
8801 "maxLength" : 64,
8802 "type" : "string",
8803 "typetext" : "<string>"
8804 },
8805 "realm" : {
8806 "description" : "Authentication domain ID",
8807 "format" : "pve-realm",
8808 "maxLength" : 32,
8809 "optional" : 1,
8810 "type" : "string",
8811 "typetext" : "<string>"
8812 },
8813 "remove-vanished" : {
8814 "default" : "none",
8815 "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).",
8816 "optional" : 1,
8817 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
8818 "type" : "string",
8819 "typetext" : "([acl];[properties];[entry])|none"
8820 },
8821 "schedule" : {
8822 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
8823 "format" : "pve-calendar-event",
8824 "maxLength" : 128,
8825 "type" : "string",
8826 "typetext" : "<string>"
8827 },
8828 "scope" : {
8829 "description" : "Select what to sync.",
8830 "enum" : [
8831 "users",
8832 "groups",
8833 "both"
8834 ],
8835 "optional" : 1,
8836 "type" : "string"
8837 }
8838 },
8839 "type" : "object"
8840 },
8841 "permissions" : {
8842 "check" : [
8843 "and",
8844 [
8845 "perm",
8846 "/access/realm/{realm}",
8847 [
8848 "Realm.AllocateUser"
8849 ]
8850 ],
8851 [
8852 "perm",
8853 "/access/groups",
8854 [
8855 "User.Modify"
8856 ]
8857 ]
8858 ],
8859 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
8860 },
8861 "protected" : 1,
8862 "returns" : {
8863 "type" : "null"
8864 }
8865 },
8866 "PUT" : {
8867 "allowtoken" : 1,
8868 "description" : "Update realm-sync job definition.",
8869 "method" : "PUT",
8870 "name" : "update_job",
8871 "parameters" : {
8872 "additionalProperties" : 0,
8873 "properties" : {
8874 "comment" : {
8875 "description" : "Description for the Job.",
8876 "maxLength" : 512,
8877 "optional" : 1,
8878 "type" : "string",
8879 "typetext" : "<string>"
8880 },
8881 "delete" : {
8882 "description" : "A list of settings you want to delete.",
8883 "format" : "pve-configid-list",
8884 "maxLength" : 4096,
8885 "optional" : 1,
8886 "type" : "string",
8887 "typetext" : "<string>"
8888 },
8889 "enable-new" : {
8890 "default" : "1",
8891 "description" : "Enable newly synced users immediately.",
8892 "optional" : 1,
8893 "type" : "boolean",
8894 "typetext" : "<boolean>"
8895 },
8896 "enabled" : {
8897 "default" : 1,
8898 "description" : "Determines if the job is enabled.",
8899 "optional" : 1,
8900 "type" : "boolean",
8901 "typetext" : "<boolean>"
8902 },
8903 "id" : {
8904 "description" : "The ID of the job.",
8905 "format" : "pve-configid",
8906 "maxLength" : 64,
8907 "type" : "string",
8908 "typetext" : "<string>"
8909 },
8910 "remove-vanished" : {
8911 "default" : "none",
8912 "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).",
8913 "optional" : 1,
8914 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
8915 "type" : "string",
8916 "typetext" : "([acl];[properties];[entry])|none"
8917 },
8918 "schedule" : {
8919 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
8920 "format" : "pve-calendar-event",
8921 "maxLength" : 128,
8922 "type" : "string",
8923 "typetext" : "<string>"
8924 },
8925 "scope" : {
8926 "description" : "Select what to sync.",
8927 "enum" : [
8928 "users",
8929 "groups",
8930 "both"
8931 ],
8932 "optional" : 1,
8933 "type" : "string"
8934 }
8935 },
8936 "type" : "object"
8937 },
8938 "permissions" : {
8939 "check" : [
8940 "and",
8941 [
8942 "perm",
8943 "/access/realm/{realm}",
8944 [
8945 "Realm.AllocateUser"
8946 ]
8947 ],
8948 [
8949 "perm",
8950 "/access/groups",
8951 [
8952 "User.Modify"
8953 ]
8954 ]
8955 ],
8956 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
8957 },
8958 "protected" : 1,
8959 "returns" : {
8960 "type" : "null"
8961 }
8962 }
8963 },
8964 "leaf" : 1,
8965 "path" : "/cluster/jobs/realm-sync/{id}",
8966 "text" : "{id}"
8967 }
8968 ],
8969 "info" : {
8970 "GET" : {
8971 "allowtoken" : 1,
8972 "description" : "List configured realm-sync-jobs.",
8973 "method" : "GET",
8974 "name" : "syncjob_index",
8975 "parameters" : {
8976 "additionalProperties" : 0
8977 },
8978 "permissions" : {
8979 "check" : [
8980 "perm",
8981 "/",
8982 [
8983 "Sys.Audit"
8984 ]
8985 ]
8986 },
8987 "returns" : {
8988 "items" : {
8989 "properties" : {
8990 "comment" : {
8991 "description" : "A comment for the job.",
8992 "optional" : 1,
8993 "type" : "string"
8994 },
8995 "enabled" : {
8996 "description" : "If the job is enabled or not.",
8997 "type" : "boolean"
8998 },
8999 "id" : {
9000 "description" : "The ID of the entry.",
9001 "type" : "string"
9002 },
9003 "last-run" : {
9004 "description" : "Last execution time of the job in seconds since the beginning of the UNIX epoch",
9005 "optional" : 1,
9006 "type" : "integer"
9007 },
9008 "next-run" : {
9009 "description" : "Next planned execution time of the job in seconds since the beginning of the UNIX epoch.",
9010 "optional" : 1,
9011 "type" : "integer"
9012 },
9013 "realm" : {
9014 "description" : "Authentication domain ID",
9015 "format" : "pve-realm",
9016 "maxLength" : 32,
9017 "type" : "string"
9018 },
9019 "remove-vanished" : {
9020 "default" : "none",
9021 "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).",
9022 "optional" : "1",
9023 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
9024 "type" : "string",
9025 "typetext" : "([acl];[properties];[entry])|none"
9026 },
9027 "schedule" : {
9028 "description" : "The configured sync schedule.",
9029 "type" : "string"
9030 },
9031 "scope" : {
9032 "description" : "Select what to sync.",
9033 "enum" : [
9034 "users",
9035 "groups",
9036 "both"
9037 ],
9038 "optional" : "1",
9039 "type" : "string"
9040 }
9041 },
9042 "type" : "object"
9043 },
9044 "links" : [
9045 {
9046 "href" : "{id}",
9047 "rel" : "child"
9048 }
9049 ],
9050 "type" : "array"
9051 }
9052 }
9053 },
9054 "leaf" : 0,
9055 "path" : "/cluster/jobs/realm-sync",
9056 "text" : "realm-sync"
9057 },
5370fa8c
TL
9058 {
9059 "info" : {
9060 "GET" : {
9061 "allowtoken" : 1,
9062 "description" : "Returns a list of future schedule runtimes.",
9063 "method" : "GET",
9064 "name" : "schedule-analyze",
9065 "parameters" : {
9066 "additionalProperties" : 0,
9067 "properties" : {
9068 "iterations" : {
9069 "default" : 10,
9070 "description" : "Number of event-iteration to simulate and return.",
9071 "maximum" : 100,
9072 "minimum" : 1,
9073 "optional" : 1,
9074 "type" : "integer",
9075 "typetext" : "<integer> (1 - 100)"
9076 },
9077 "schedule" : {
9078 "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
9079 "format" : "pve-calendar-event",
9080 "maxLength" : 128,
9081 "type" : "string",
9082 "typetext" : "<string>"
9083 },
9084 "starttime" : {
9085 "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
9086 "optional" : 1,
9087 "type" : "integer",
9088 "typetext" : "<integer>"
9089 }
9090 }
9091 },
9092 "permissions" : {
9093 "user" : "all"
9094 },
9095 "returns" : {
9096 "description" : "An array of the next <iterations> events since <starttime>.",
9097 "items" : {
9098 "properties" : {
9099 "timestamp" : {
9100 "description" : "UNIX timestamp for the run.",
9101 "type" : "integer"
9102 },
9103 "utc" : {
9104 "description" : "UTC timestamp for the run.",
9105 "type" : "string"
9106 }
9107 },
9108 "type" : "object"
9109 },
9110 "type" : "array"
9111 }
9112 }
9113 },
9114 "leaf" : 1,
9115 "path" : "/cluster/jobs/schedule-analyze",
9116 "text" : "schedule-analyze"
9117 }
9118 ],
9119 "info" : {
9120 "GET" : {
9121 "allowtoken" : 1,
9122 "description" : "Index for jobs related endpoints.",
9123 "method" : "GET",
9124 "name" : "index",
9125 "parameters" : {
9126 "additionalProperties" : 0
9127 },
9128 "permissions" : {
9129 "user" : "all"
9130 },
9131 "returns" : {
9132 "description" : "Directory index.",
9133 "items" : {
9134 "properties" : {
9135 "subdir" : {
9136 "description" : "API sub-directory endpoint",
9137 "type" : "string"
9138 }
9139 },
9140 "type" : "object"
9141 },
9142 "links" : [
9143 {
9144 "href" : "{subdir}",
9145 "rel" : "child"
9146 }
9147 ],
9148 "type" : "array"
9149 }
9150 }
9151 },
9152 "leaf" : 0,
9153 "path" : "/cluster/jobs",
9154 "text" : "jobs"
9155 },
499c9b7f
TL
9156 {
9157 "children" : [
9158 {
9159 "children" : [
9160 {
9161 "info" : {
9162 "DELETE" : {
9163 "allowtoken" : 1,
9164 "description" : "Remove Hardware Mapping.",
9165 "method" : "DELETE",
9166 "name" : "delete",
9167 "parameters" : {
9168 "additionalProperties" : 0,
9169 "properties" : {
9170 "id" : {
9171 "format" : "pve-configid",
9172 "type" : "string",
9173 "typetext" : "<string>"
9174 }
9175 }
9176 },
9177 "permissions" : {
9178 "check" : [
9179 "perm",
9180 "/mapping/pci",
9181 [
9182 "Mapping.Modify"
9183 ]
9184 ]
9185 },
9186 "protected" : 1,
9187 "returns" : {
9188 "type" : "null"
9189 }
9190 },
9191 "GET" : {
9192 "allowtoken" : 1,
9193 "description" : "Get PCI Mapping.",
9194 "method" : "GET",
9195 "name" : "get",
9196 "parameters" : {
9197 "additionalProperties" : 0,
9198 "properties" : {
9199 "id" : {
9200 "format" : "pve-configid",
9201 "type" : "string",
9202 "typetext" : "<string>"
9203 }
9204 }
9205 },
9206 "permissions" : {
9207 "check" : [
9208 "or",
9209 [
9210 "perm",
9211 "/mapping/pci/{id}",
9212 [
9213 "Mapping.Use"
9214 ]
9215 ],
9216 [
9217 "perm",
9218 "/mapping/pci/{id}",
9219 [
9220 "Mapping.Modify"
9221 ]
9222 ],
9223 [
9224 "perm",
9225 "/mapping/pci/{id}",
9226 [
9227 "Mapping.Audit"
9228 ]
9229 ]
9230 ]
9231 },
9232 "protected" : 1,
9233 "returns" : {
9234 "type" : "object"
9235 }
9236 },
9237 "PUT" : {
9238 "allowtoken" : 1,
9239 "description" : "Update a hardware mapping.",
9240 "method" : "PUT",
9241 "name" : "update",
9242 "parameters" : {
9243 "additionalProperties" : 0,
9244 "properties" : {
9245 "delete" : {
9246 "description" : "A list of settings you want to delete.",
9247 "format" : "pve-configid-list",
9248 "maxLength" : 4096,
9249 "optional" : 1,
9250 "type" : "string",
9251 "typetext" : "<string>"
9252 },
9253 "description" : {
9254 "description" : "Description of the logical PCI device.",
9255 "maxLength" : 4096,
9256 "optional" : 1,
9257 "type" : "string",
9258 "typetext" : "<string>"
9259 },
9260 "digest" : {
82551b2b
TL
9261 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
9262 "maxLength" : 64,
499c9b7f
TL
9263 "optional" : 1,
9264 "type" : "string",
9265 "typetext" : "<string>"
9266 },
9267 "id" : {
9268 "description" : "The ID of the logical PCI mapping.",
9269 "format" : "pve-configid",
9270 "type" : "string",
9271 "typetext" : "<string>"
9272 },
9273 "map" : {
9274 "description" : "A list of maps for the cluster nodes.",
9275 "items" : {
9276 "format" : {
9277 "description" : {
9278 "description" : "Description of the node specific device.",
9279 "maxLength" : 4096,
9280 "optional" : 1,
9281 "type" : "string"
9282 },
9283 "id" : {
9284 "description" : "The vendor and device ID that is expected. Used for detecting hardware changes",
9285 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9286 "type" : "string"
9287 },
9288 "iommugroup" : {
82551b2b 9289 "description" : "The IOMMU group in which the device is to be expected in. Used for detecting hardware changes.",
499c9b7f
TL
9290 "optional" : 1,
9291 "type" : "integer"
9292 },
9293 "node" : {
9294 "description" : "The cluster node name.",
9295 "format" : "pve-node",
9296 "type" : "string"
9297 },
9298 "path" : {
9299 "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.",
9300 "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])?",
9301 "type" : "string"
9302 },
9303 "subsystem-id" : {
9304 "description" : "The subsystem vendor and device ID that is expected. Used for detecting hardware changes.",
9305 "optional" : 1,
9306 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9307 "type" : "string"
9308 }
9309 },
9310 "type" : "string"
9311 },
9312 "optional" : 1,
9313 "type" : "array",
9314 "typetext" : "<array>"
9315 },
9316 "mdev" : {
9317 "optional" : 1,
9318 "type" : "boolean",
9319 "typetext" : "<boolean>"
9320 }
9321 },
9322 "type" : "object"
9323 },
9324 "permissions" : {
9325 "check" : [
9326 "perm",
9327 "/mapping/pci/{id}",
9328 [
9329 "Mapping.Modify"
9330 ]
9331 ]
9332 },
9333 "protected" : 1,
9334 "returns" : {
9335 "type" : "null"
9336 }
9337 }
9338 },
9339 "leaf" : 1,
9340 "path" : "/cluster/mapping/pci/{id}",
9341 "text" : "{id}"
9342 }
9343 ],
9344 "info" : {
9345 "GET" : {
9346 "allowtoken" : 1,
9347 "description" : "List PCI Hardware Mapping",
9348 "method" : "GET",
9349 "name" : "index",
9350 "parameters" : {
9351 "additionalProperties" : 0,
9352 "properties" : {
9353 "check-node" : {
9354 "description" : "If given, checks the configurations on the given node for correctness, and adds relevant diagnostics for the devices to the response.",
9355 "format" : "pve-node",
9356 "optional" : 1,
9357 "type" : "string",
9358 "typetext" : "<string>"
9359 }
9360 }
9361 },
9362 "permissions" : {
9363 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/pci/<id>'.",
9364 "user" : "all"
9365 },
9366 "returns" : {
9367 "items" : {
9368 "properties" : {
9369 "checks" : {
9370 "description" : "A list of checks, only present if 'check_node' is set.",
9371 "items" : {
9372 "properties" : {
9373 "message" : {
9374 "description" : "The message of the error",
9375 "type" : "string"
9376 },
9377 "severity" : {
9378 "description" : "The severity of the error",
9379 "enum" : [
9380 "warning",
9381 "error"
9382 ],
9383 "type" : "string"
9384 }
9385 },
9386 "type" : "object"
9387 },
9388 "optional" : 1,
9389 "type" : "array"
9390 },
9391 "description" : {
9392 "description" : "A description of the logical mapping.",
9393 "type" : "string"
9394 },
9395 "id" : {
9396 "description" : "The logical ID of the mapping.",
9397 "type" : "string"
9398 },
9399 "map" : {
9400 "description" : "The entries of the mapping.",
9401 "items" : {
9402 "description" : "A mapping for a node.",
9403 "type" : "string"
9404 },
9405 "type" : "array"
9406 }
9407 },
9408 "type" : "object"
9409 },
9410 "links" : [
9411 {
9412 "href" : "{id}",
9413 "rel" : "child"
9414 }
9415 ],
9416 "type" : "array"
9417 }
9418 },
9419 "POST" : {
9420 "allowtoken" : 1,
9421 "description" : "Create a new hardware mapping.",
9422 "method" : "POST",
9423 "name" : "create",
9424 "parameters" : {
9425 "additionalProperties" : 0,
9426 "properties" : {
9427 "description" : {
9428 "description" : "Description of the logical PCI device.",
9429 "maxLength" : 4096,
9430 "optional" : 1,
9431 "type" : "string",
9432 "typetext" : "<string>"
9433 },
9434 "id" : {
9435 "description" : "The ID of the logical PCI mapping.",
9436 "format" : "pve-configid",
9437 "type" : "string",
9438 "typetext" : "<string>"
9439 },
9440 "map" : {
9441 "description" : "A list of maps for the cluster nodes.",
9442 "items" : {
9443 "format" : {
9444 "description" : {
9445 "description" : "Description of the node specific device.",
9446 "maxLength" : 4096,
9447 "optional" : 1,
9448 "type" : "string"
9449 },
9450 "id" : {
82551b2b
TL
9451 "description" : "The vendor and device ID that is expected. Used for detecting hardware changes",
9452 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9453 "type" : "string"
9454 },
9455 "iommugroup" : {
9456 "description" : "The IOMMU group in which the device is to be expected in. Used for detecting hardware changes.",
9457 "optional" : 1,
9458 "type" : "integer"
9459 },
9460 "node" : {
9461 "description" : "The cluster node name.",
9462 "format" : "pve-node",
9463 "type" : "string"
9464 },
9465 "path" : {
9466 "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.",
9467 "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])?",
9468 "type" : "string"
9469 },
9470 "subsystem-id" : {
9471 "description" : "The subsystem vendor and device ID that is expected. Used for detecting hardware changes.",
9472 "optional" : 1,
9473 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9474 "type" : "string"
9475 }
9476 },
9477 "type" : "string"
9478 },
9479 "optional" : 0,
9480 "type" : "array",
9481 "typetext" : "<array>"
9482 },
9483 "mdev" : {
9484 "optional" : 1,
9485 "type" : "boolean",
9486 "typetext" : "<boolean>"
9487 }
9488 },
9489 "type" : "object"
9490 },
9491 "permissions" : {
9492 "check" : [
9493 "perm",
9494 "/mapping/pci",
9495 [
9496 "Mapping.Modify"
9497 ]
9498 ]
9499 },
9500 "protected" : 1,
9501 "returns" : {
9502 "type" : "null"
9503 }
9504 }
9505 },
9506 "leaf" : 0,
9507 "path" : "/cluster/mapping/pci",
9508 "text" : "pci"
9509 },
9510 {
9511 "children" : [
9512 {
9513 "info" : {
9514 "DELETE" : {
9515 "allowtoken" : 1,
9516 "description" : "Remove Hardware Mapping.",
9517 "method" : "DELETE",
9518 "name" : "delete",
9519 "parameters" : {
9520 "additionalProperties" : 0,
9521 "properties" : {
9522 "id" : {
9523 "format" : "pve-configid",
9524 "type" : "string",
9525 "typetext" : "<string>"
9526 }
9527 }
9528 },
9529 "permissions" : {
9530 "check" : [
9531 "perm",
9532 "/mapping/usb",
9533 [
9534 "Mapping.Modify"
9535 ]
9536 ]
9537 },
9538 "protected" : 1,
9539 "returns" : {
9540 "type" : "null"
9541 }
9542 },
9543 "GET" : {
9544 "allowtoken" : 1,
9545 "description" : "Get USB Mapping.",
9546 "method" : "GET",
9547 "name" : "get",
9548 "parameters" : {
9549 "additionalProperties" : 0,
9550 "properties" : {
9551 "id" : {
9552 "format" : "pve-configid",
9553 "type" : "string",
9554 "typetext" : "<string>"
9555 }
9556 }
9557 },
9558 "permissions" : {
9559 "check" : [
9560 "or",
9561 [
9562 "perm",
9563 "/mapping/usb/{id}",
9564 [
9565 "Mapping.Audit"
9566 ]
9567 ],
9568 [
9569 "perm",
9570 "/mapping/usb/{id}",
9571 [
9572 "Mapping.Use"
9573 ]
9574 ],
9575 [
9576 "perm",
9577 "/mapping/usb/{id}",
9578 [
9579 "Mapping.Modify"
9580 ]
9581 ]
9582 ]
9583 },
9584 "protected" : 1,
9585 "returns" : {
9586 "type" : "object"
9587 }
9588 },
9589 "PUT" : {
9590 "allowtoken" : 1,
9591 "description" : "Update a hardware mapping.",
9592 "method" : "PUT",
9593 "name" : "update",
9594 "parameters" : {
9595 "additionalProperties" : 0,
9596 "properties" : {
9597 "delete" : {
9598 "description" : "A list of settings you want to delete.",
9599 "format" : "pve-configid-list",
9600 "maxLength" : 4096,
9601 "optional" : 1,
9602 "type" : "string",
9603 "typetext" : "<string>"
9604 },
9605 "description" : {
9606 "description" : "Description of the logical USB device.",
9607 "maxLength" : 4096,
9608 "optional" : 1,
9609 "type" : "string",
9610 "typetext" : "<string>"
9611 },
9612 "digest" : {
9613 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
9614 "maxLength" : 64,
9615 "optional" : 1,
9616 "type" : "string",
9617 "typetext" : "<string>"
9618 },
9619 "id" : {
9620 "description" : "The ID of the logical USB mapping.",
9621 "format" : "pve-configid",
9622 "type" : "string",
9623 "typetext" : "<string>"
9624 },
9625 "map" : {
9626 "description" : "A list of maps for the cluster nodes.",
9627 "items" : {
9628 "format" : {
9629 "description" : {
9630 "description" : "Description of the node specific device.",
9631 "maxLength" : 4096,
9632 "optional" : 1,
9633 "type" : "string"
9634 },
9635 "id" : {
9636 "description" : "The vendor and device ID that is expected. If a USB path is given, it is only used for detecting hardware changes",
9637 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9638 "type" : "string"
9639 },
9640 "node" : {
9641 "description" : "The cluster node name.",
9642 "format" : "pve-node",
9643 "type" : "string"
9644 },
9645 "path" : {
9646 "description" : "The path to the usb device.",
9647 "optional" : 1,
9648 "pattern" : "(?^:^(\\d+)\\-(\\d+(\\.\\d+)*)$)",
9649 "type" : "string"
9650 }
9651 },
9652 "type" : "string"
9653 },
9654 "type" : "array",
9655 "typetext" : "<array>"
9656 }
9657 },
9658 "type" : "object"
9659 },
9660 "permissions" : {
9661 "check" : [
9662 "perm",
9663 "/mapping/usb/{id}",
9664 [
9665 "Mapping.Modify"
9666 ]
9667 ]
9668 },
9669 "protected" : 1,
9670 "returns" : {
9671 "type" : "null"
9672 }
9673 }
9674 },
9675 "leaf" : 1,
9676 "path" : "/cluster/mapping/usb/{id}",
9677 "text" : "{id}"
9678 }
9679 ],
9680 "info" : {
9681 "GET" : {
9682 "allowtoken" : 1,
9683 "description" : "List USB Hardware Mappings",
9684 "method" : "GET",
9685 "name" : "index",
9686 "parameters" : {
9687 "additionalProperties" : 0,
9688 "properties" : {
9689 "check-node" : {
9690 "description" : "If given, checks the configurations on the given node for correctness, and adds relevant errors to the devices.",
9691 "format" : "pve-node",
9692 "optional" : 1,
9693 "type" : "string",
9694 "typetext" : "<string>"
9695 }
9696 }
9697 },
9698 "permissions" : {
9699 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/usb/<id>'.",
9700 "user" : "all"
9701 },
9702 "returns" : {
9703 "items" : {
9704 "properties" : {
9705 "description" : {
9706 "description" : "A description of the logical mapping.",
9707 "type" : "string"
9708 },
9709 "error" : {
9710 "description" : "A list of errors when 'check_node' is given.",
9711 "items" : {
9712 "properties" : {
9713 "message" : {
9714 "description" : "The message of the error",
9715 "type" : "string"
9716 },
9717 "severity" : {
9718 "description" : "The severity of the error",
9719 "type" : "string"
9720 }
9721 },
9722 "type" : "object"
9723 }
9724 },
9725 "id" : {
9726 "description" : "The logical ID of the mapping.",
9727 "type" : "string"
9728 },
9729 "map" : {
9730 "description" : "The entries of the mapping.",
9731 "items" : {
9732 "description" : "A mapping for a node.",
9733 "type" : "string"
9734 },
9735 "type" : "array"
9736 }
9737 },
9738 "type" : "object"
9739 },
9740 "links" : [
9741 {
9742 "href" : "{id}",
9743 "rel" : "child"
9744 }
9745 ],
9746 "type" : "array"
9747 }
9748 },
9749 "POST" : {
9750 "allowtoken" : 1,
9751 "description" : "Create a new hardware mapping.",
9752 "method" : "POST",
9753 "name" : "create",
9754 "parameters" : {
9755 "additionalProperties" : 0,
9756 "properties" : {
9757 "description" : {
9758 "description" : "Description of the logical USB device.",
9759 "maxLength" : 4096,
9760 "optional" : 1,
9761 "type" : "string",
9762 "typetext" : "<string>"
9763 },
9764 "id" : {
9765 "description" : "The ID of the logical USB mapping.",
9766 "format" : "pve-configid",
9767 "type" : "string",
9768 "typetext" : "<string>"
9769 },
9770 "map" : {
9771 "description" : "A list of maps for the cluster nodes.",
9772 "items" : {
9773 "format" : {
9774 "description" : {
9775 "description" : "Description of the node specific device.",
9776 "maxLength" : 4096,
9777 "optional" : 1,
9778 "type" : "string"
9779 },
9780 "id" : {
499c9b7f
TL
9781 "description" : "The vendor and device ID that is expected. If a USB path is given, it is only used for detecting hardware changes",
9782 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9783 "type" : "string"
9784 },
9785 "node" : {
9786 "description" : "The cluster node name.",
9787 "format" : "pve-node",
9788 "type" : "string"
9789 },
9790 "path" : {
9791 "description" : "The path to the usb device.",
9792 "optional" : 1,
9793 "pattern" : "(?^:^(\\d+)\\-(\\d+(\\.\\d+)*)$)",
9794 "type" : "string"
9795 }
9796 },
9797 "type" : "string"
9798 },
9799 "type" : "array",
9800 "typetext" : "<array>"
9801 }
9802 },
9803 "type" : "object"
9804 },
9805 "permissions" : {
9806 "check" : [
9807 "perm",
9808 "/mapping/usb",
9809 [
9810 "Mapping.Modify"
9811 ]
9812 ]
9813 },
9814 "protected" : 1,
9815 "returns" : {
9816 "type" : "null"
9817 }
9818 }
9819 },
9820 "leaf" : 0,
9821 "path" : "/cluster/mapping/usb",
9822 "text" : "usb"
9823 }
9824 ],
9825 "info" : {
9826 "GET" : {
9827 "allowtoken" : 1,
9828 "description" : "List resource types.",
9829 "method" : "GET",
9830 "name" : "index",
9831 "parameters" : {
9832 "additionalProperties" : 0
9833 },
9834 "permissions" : {
9835 "user" : "all"
9836 },
9837 "returns" : {
9838 "items" : {
9839 "type" : "object"
9840 },
9841 "links" : [
9842 {
9843 "href" : "{name}",
9844 "rel" : "child"
9845 }
9846 ],
9847 "type" : "array"
9848 }
9849 }
9850 },
9851 "leaf" : 0,
9852 "path" : "/cluster/mapping",
9853 "text" : "mapping"
9854 },
c5aa7e14
TL
9855 {
9856 "children" : [
9857 {
9858 "children" : [
9859 {
d2656385
TL
9860 "children" : [
9861 {
9862 "children" : [
9863 {
9864 "info" : {
9865 "DELETE" : {
9866 "allowtoken" : 1,
9867 "description" : "Delete sdn subnet object configuration.",
9868 "method" : "DELETE",
9869 "name" : "delete",
9870 "parameters" : {
9871 "additionalProperties" : 0,
9872 "properties" : {
9873 "subnet" : {
9874 "description" : "The SDN subnet object identifier.",
9875 "format" : "pve-sdn-subnet-id",
9876 "type" : "string",
9877 "typetext" : "<string>"
9878 },
9879 "vnet" : {
9880 "description" : "The SDN vnet object identifier.",
9881 "format" : "pve-sdn-vnet-id",
9882 "type" : "string",
9883 "typetext" : "<string>"
9884 }
9885 }
9886 },
9887 "permissions" : {
bd92b745
TL
9888 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
9889 "user" : "all"
d2656385
TL
9890 },
9891 "protected" : 1,
9892 "returns" : {
9893 "type" : "null"
9894 }
9895 },
9896 "GET" : {
9897 "allowtoken" : 1,
9898 "description" : "Read sdn subnet configuration.",
9899 "method" : "GET",
9900 "name" : "read",
9901 "parameters" : {
9902 "additionalProperties" : 0,
9903 "properties" : {
9904 "pending" : {
9905 "description" : "Display pending config.",
9906 "optional" : 1,
9907 "type" : "boolean",
9908 "typetext" : "<boolean>"
9909 },
9910 "running" : {
9911 "description" : "Display running config.",
9912 "optional" : 1,
9913 "type" : "boolean",
9914 "typetext" : "<boolean>"
9915 },
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.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
9932 "user" : "all"
d2656385
TL
9933 },
9934 "returns" : {
9935 "type" : "object"
9936 }
9937 },
9938 "PUT" : {
9939 "allowtoken" : 1,
9940 "description" : "Update sdn subnet object configuration.",
9941 "method" : "PUT",
9942 "name" : "update",
9943 "parameters" : {
9944 "additionalProperties" : 0,
9945 "properties" : {
9946 "delete" : {
9947 "description" : "A list of settings you want to delete.",
9948 "format" : "pve-configid-list",
9949 "maxLength" : 4096,
9950 "optional" : 1,
9951 "type" : "string",
9952 "typetext" : "<string>"
9953 },
fa22697b
TL
9954 "dhcp-dns-server" : {
9955 "description" : "IP address for the DNS server",
9956 "format" : "ip",
9957 "optional" : 1,
9958 "type" : "string",
9959 "typetext" : "<string>"
9960 },
9961 "dhcp-range" : {
9962 "description" : "A list of DHCP ranges for this subnet",
9963 "items" : {
9964 "format" : "pve-sdn-dhcp-range",
9965 "type" : "string"
9966 },
9967 "optional" : 1,
9968 "type" : "array",
9969 "typetext" : "<array>"
9970 },
d2656385 9971 "digest" : {
82551b2b
TL
9972 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
9973 "maxLength" : 64,
d2656385
TL
9974 "optional" : 1,
9975 "type" : "string",
9976 "typetext" : "<string>"
9977 },
9978 "dnszoneprefix" : {
9979 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
9980 "format" : "dns-name",
9981 "optional" : 1,
9982 "type" : "string",
9983 "typetext" : "<string>"
9984 },
9985 "gateway" : {
9986 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
9987 "format" : "ip",
9988 "optional" : 1,
9989 "type" : "string",
9990 "typetext" : "<string>"
9991 },
9992 "snat" : {
9993 "description" : "enable masquerade for this subnet if pve-firewall",
9994 "optional" : 1,
9995 "type" : "boolean",
9996 "typetext" : "<boolean>"
9997 },
9998 "subnet" : {
9999 "description" : "The SDN subnet object identifier.",
10000 "format" : "pve-sdn-subnet-id",
10001 "type" : "string",
10002 "typetext" : "<string>"
10003 },
10004 "vnet" : {
10005 "description" : "associated vnet",
10006 "optional" : 1,
10007 "type" : "string",
10008 "typetext" : "<string>"
10009 }
10010 },
10011 "type" : "object"
10012 },
10013 "permissions" : {
bd92b745
TL
10014 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
10015 "user" : "all"
d2656385
TL
10016 },
10017 "protected" : 1,
10018 "returns" : {
10019 "type" : "null"
10020 }
10021 }
10022 },
10023 "leaf" : 1,
10024 "path" : "/cluster/sdn/vnets/{vnet}/subnets/{subnet}",
10025 "text" : "{subnet}"
10026 }
10027 ],
10028 "info" : {
10029 "GET" : {
10030 "allowtoken" : 1,
10031 "description" : "SDN subnets index.",
10032 "method" : "GET",
10033 "name" : "index",
10034 "parameters" : {
10035 "additionalProperties" : 0,
10036 "properties" : {
10037 "pending" : {
10038 "description" : "Display pending config.",
10039 "optional" : 1,
10040 "type" : "boolean",
10041 "typetext" : "<boolean>"
10042 },
10043 "running" : {
10044 "description" : "Display running config.",
10045 "optional" : 1,
10046 "type" : "boolean",
10047 "typetext" : "<boolean>"
10048 },
10049 "vnet" : {
10050 "description" : "The SDN vnet object identifier.",
10051 "format" : "pve-sdn-vnet-id",
10052 "type" : "string",
10053 "typetext" : "<string>"
10054 }
10055 }
10056 },
10057 "permissions" : {
bd92b745 10058 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
d2656385
TL
10059 "user" : "all"
10060 },
10061 "returns" : {
10062 "items" : {
10063 "properties" : {},
10064 "type" : "object"
10065 },
10066 "links" : [
10067 {
10068 "href" : "{subnet}",
10069 "rel" : "child"
10070 }
10071 ],
10072 "type" : "array"
10073 }
10074 },
10075 "POST" : {
10076 "allowtoken" : 1,
10077 "description" : "Create a new sdn subnet object.",
10078 "method" : "POST",
10079 "name" : "create",
10080 "parameters" : {
10081 "additionalProperties" : 0,
10082 "properties" : {
fa22697b
TL
10083 "dhcp-dns-server" : {
10084 "description" : "IP address for the DNS server",
10085 "format" : "ip",
10086 "optional" : 1,
10087 "type" : "string",
10088 "typetext" : "<string>"
10089 },
10090 "dhcp-range" : {
10091 "description" : "A list of DHCP ranges for this subnet",
10092 "items" : {
10093 "format" : "pve-sdn-dhcp-range",
10094 "type" : "string"
10095 },
10096 "optional" : 1,
10097 "type" : "array",
10098 "typetext" : "<array>"
10099 },
d2656385
TL
10100 "dnszoneprefix" : {
10101 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
10102 "format" : "dns-name",
10103 "optional" : 1,
10104 "type" : "string",
10105 "typetext" : "<string>"
10106 },
10107 "gateway" : {
10108 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
10109 "format" : "ip",
10110 "optional" : 1,
10111 "type" : "string",
10112 "typetext" : "<string>"
10113 },
10114 "snat" : {
10115 "description" : "enable masquerade for this subnet if pve-firewall",
10116 "optional" : 1,
10117 "type" : "boolean",
10118 "typetext" : "<boolean>"
10119 },
10120 "subnet" : {
10121 "description" : "The SDN subnet object identifier.",
10122 "format" : "pve-sdn-subnet-id",
10123 "type" : "string",
10124 "typetext" : "<string>"
10125 },
10126 "type" : {
10127 "enum" : [
10128 "subnet"
10129 ],
10130 "type" : "string"
10131 },
10132 "vnet" : {
10133 "description" : "associated vnet",
10134 "optional" : 0,
10135 "type" : "string",
10136 "typetext" : "<string>"
10137 }
10138 },
10139 "type" : "object"
10140 },
10141 "permissions" : {
bd92b745
TL
10142 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
10143 "user" : "all"
d2656385
TL
10144 },
10145 "protected" : 1,
10146 "returns" : {
10147 "type" : "null"
10148 }
10149 }
10150 },
10151 "leaf" : 0,
10152 "path" : "/cluster/sdn/vnets/{vnet}/subnets",
10153 "text" : "subnets"
fa22697b
TL
10154 },
10155 {
10156 "info" : {
10157 "DELETE" : {
10158 "allowtoken" : 1,
10159 "description" : "Delete IP Mappings in a VNet",
10160 "method" : "DELETE",
10161 "name" : "ipdelete",
10162 "parameters" : {
10163 "additionalProperties" : 0,
10164 "properties" : {
10165 "mac" : {
10166 "description" : "Unicast MAC address.",
10167 "format" : "mac-addr",
10168 "format_description" : "XX:XX:XX:XX:XX:XX",
10169 "optional" : 1,
10170 "type" : "string",
10171 "typetext" : "<XX:XX:XX:XX:XX:XX>",
10172 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
10173 },
10174 "vnet" : {
10175 "description" : "The SDN vnet object identifier.",
10176 "format" : "pve-sdn-vnet-id",
10177 "type" : "string",
10178 "typetext" : "<string>"
10179 },
10180 "zone" : {
10181 "description" : "The SDN zone object identifier.",
10182 "format" : "pve-sdn-zone-id",
10183 "type" : "string",
10184 "typetext" : "<string>"
10185 }
10186 }
10187 },
10188 "permissions" : {
10189 "check" : [
10190 "perm",
10191 "/sdn/zones/{zone}/{vnet}",
10192 [
10193 "SDN.Allocate"
10194 ]
10195 ]
10196 },
10197 "protected" : 1,
10198 "returns" : {
10199 "type" : "null"
10200 }
10201 },
10202 "POST" : {
10203 "allowtoken" : 1,
10204 "description" : "Create IP Mapping in a VNet",
10205 "method" : "POST",
10206 "name" : "ipcreate",
10207 "parameters" : {
10208 "additionalProperties" : 0,
10209 "properties" : {
10210 "ip" : {
10211 "description" : "The IP address to associate with the given MAC address",
10212 "format" : "ip",
10213 "type" : "string",
10214 "typetext" : "<string>"
10215 },
10216 "mac" : {
10217 "description" : "Unicast MAC address.",
10218 "format" : "mac-addr",
10219 "format_description" : "XX:XX:XX:XX:XX:XX",
10220 "optional" : 1,
10221 "type" : "string",
10222 "typetext" : "<XX:XX:XX:XX:XX:XX>",
10223 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
10224 },
10225 "vnet" : {
10226 "description" : "The SDN vnet object identifier.",
10227 "format" : "pve-sdn-vnet-id",
10228 "type" : "string",
10229 "typetext" : "<string>"
10230 },
10231 "zone" : {
10232 "description" : "The SDN zone object identifier.",
10233 "format" : "pve-sdn-zone-id",
10234 "type" : "string",
10235 "typetext" : "<string>"
10236 }
10237 }
10238 },
10239 "permissions" : {
10240 "check" : [
10241 "perm",
10242 "/sdn/zones/{zone}/{vnet}",
10243 [
10244 "SDN.Allocate"
10245 ]
10246 ]
10247 },
10248 "protected" : 1,
10249 "returns" : {
10250 "type" : "null"
10251 }
10252 },
10253 "PUT" : {
10254 "allowtoken" : 1,
10255 "description" : "Update IP Mapping in a VNet",
10256 "method" : "PUT",
10257 "name" : "ipupdate",
10258 "parameters" : {
10259 "additionalProperties" : 0,
10260 "properties" : {
10261 "ip" : {
10262 "description" : "The IP address to associate with the given MAC address",
10263 "format" : "ip",
10264 "type" : "string",
10265 "typetext" : "<string>"
10266 },
10267 "mac" : {
10268 "description" : "Unicast MAC address.",
10269 "format" : "mac-addr",
10270 "format_description" : "XX:XX:XX:XX:XX:XX",
10271 "optional" : 1,
10272 "type" : "string",
10273 "typetext" : "<XX:XX:XX:XX:XX:XX>",
10274 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
10275 },
10276 "vmid" : {
10277 "description" : "The (unique) ID of the VM.",
10278 "format" : "pve-vmid",
10279 "maximum" : 999999999,
10280 "minimum" : 100,
10281 "optional" : 1,
10282 "type" : "integer",
10283 "typetext" : "<integer> (100 - 999999999)"
10284 },
10285 "vnet" : {
10286 "description" : "The SDN vnet object identifier.",
10287 "format" : "pve-sdn-vnet-id",
10288 "type" : "string",
10289 "typetext" : "<string>"
10290 },
10291 "zone" : {
10292 "description" : "The SDN zone object identifier.",
10293 "format" : "pve-sdn-zone-id",
10294 "type" : "string",
10295 "typetext" : "<string>"
10296 }
10297 }
10298 },
10299 "permissions" : {
10300 "check" : [
10301 "perm",
10302 "/sdn/zones/{zone}/{vnet}",
10303 [
10304 "SDN.Allocate"
10305 ]
10306 ]
10307 },
10308 "protected" : 1,
10309 "returns" : {
10310 "type" : "null"
10311 }
10312 }
10313 },
10314 "leaf" : 1,
10315 "path" : "/cluster/sdn/vnets/{vnet}/ips",
10316 "text" : "ips"
d2656385
TL
10317 }
10318 ],
c5aa7e14
TL
10319 "info" : {
10320 "DELETE" : {
10321 "allowtoken" : 1,
10322 "description" : "Delete sdn vnet object configuration.",
10323 "method" : "DELETE",
10324 "name" : "delete",
10325 "parameters" : {
10326 "additionalProperties" : 0,
10327 "properties" : {
10328 "vnet" : {
10329 "description" : "The SDN vnet object identifier.",
10330 "format" : "pve-sdn-vnet-id",
10331 "type" : "string",
10332 "typetext" : "<string>"
10333 }
10334 }
10335 },
10336 "permissions" : {
bd92b745
TL
10337 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
10338 "user" : "all"
c5aa7e14
TL
10339 },
10340 "protected" : 1,
10341 "returns" : {
10342 "type" : "null"
10343 }
10344 },
10345 "GET" : {
10346 "allowtoken" : 1,
10347 "description" : "Read sdn vnet configuration.",
10348 "method" : "GET",
10349 "name" : "read",
10350 "parameters" : {
10351 "additionalProperties" : 0,
10352 "properties" : {
d2656385
TL
10353 "pending" : {
10354 "description" : "Display pending config.",
10355 "optional" : 1,
10356 "type" : "boolean",
10357 "typetext" : "<boolean>"
10358 },
10359 "running" : {
10360 "description" : "Display running config.",
10361 "optional" : 1,
10362 "type" : "boolean",
10363 "typetext" : "<boolean>"
10364 },
c5aa7e14
TL
10365 "vnet" : {
10366 "description" : "The SDN vnet object identifier.",
10367 "format" : "pve-sdn-vnet-id",
10368 "type" : "string",
10369 "typetext" : "<string>"
10370 }
10371 }
10372 },
10373 "permissions" : {
bd92b745
TL
10374 "description" : "Require 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
10375 "user" : "all"
c5aa7e14
TL
10376 },
10377 "returns" : {
10378 "type" : "object"
10379 }
10380 },
10381 "PUT" : {
10382 "allowtoken" : 1,
10383 "description" : "Update sdn vnet object configuration.",
10384 "method" : "PUT",
10385 "name" : "update",
10386 "parameters" : {
10387 "additionalProperties" : 0,
10388 "properties" : {
10389 "alias" : {
10390 "description" : "alias name of the vnet",
5370fa8c 10391 "maxLength" : 256,
c5aa7e14 10392 "optional" : 1,
5370fa8c
TL
10393 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
10394 "type" : "string"
c5aa7e14
TL
10395 },
10396 "delete" : {
10397 "description" : "A list of settings you want to delete.",
10398 "format" : "pve-configid-list",
10399 "maxLength" : 4096,
10400 "optional" : 1,
10401 "type" : "string",
10402 "typetext" : "<string>"
10403 },
10404 "digest" : {
82551b2b
TL
10405 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
10406 "maxLength" : 64,
c5aa7e14
TL
10407 "optional" : 1,
10408 "type" : "string",
10409 "typetext" : "<string>"
10410 },
c5aa7e14
TL
10411 "tag" : {
10412 "description" : "vlan or vxlan id",
10413 "optional" : 1,
10414 "type" : "integer",
10415 "typetext" : "<integer>"
10416 },
ac70d7d1
TL
10417 "vlanaware" : {
10418 "description" : "Allow vm VLANs to pass through this vnet.",
10419 "optional" : 1,
10420 "type" : "boolean",
10421 "typetext" : "<boolean>"
10422 },
c5aa7e14
TL
10423 "vnet" : {
10424 "description" : "The SDN vnet object identifier.",
10425 "format" : "pve-sdn-vnet-id",
10426 "type" : "string",
10427 "typetext" : "<string>"
10428 },
10429 "zone" : {
10430 "description" : "zone id",
10431 "optional" : 1,
10432 "type" : "string",
10433 "typetext" : "<string>"
10434 }
10435 },
10436 "type" : "object"
10437 },
10438 "permissions" : {
bd92b745
TL
10439 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
10440 "user" : "all"
c5aa7e14
TL
10441 },
10442 "protected" : 1,
10443 "returns" : {
10444 "type" : "null"
10445 }
10446 }
10447 },
d2656385 10448 "leaf" : 0,
c5aa7e14
TL
10449 "path" : "/cluster/sdn/vnets/{vnet}",
10450 "text" : "{vnet}"
10451 }
10452 ],
10453 "info" : {
10454 "GET" : {
10455 "allowtoken" : 1,
10456 "description" : "SDN vnets index.",
10457 "method" : "GET",
10458 "name" : "index",
10459 "parameters" : {
d2656385
TL
10460 "additionalProperties" : 0,
10461 "properties" : {
10462 "pending" : {
10463 "description" : "Display pending config.",
10464 "optional" : 1,
10465 "type" : "boolean",
10466 "typetext" : "<boolean>"
10467 },
10468 "running" : {
10469 "description" : "Display running config.",
10470 "optional" : 1,
10471 "type" : "boolean",
10472 "typetext" : "<boolean>"
10473 }
10474 }
c5aa7e14
TL
10475 },
10476 "permissions" : {
bd92b745 10477 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
c5aa7e14
TL
10478 "user" : "all"
10479 },
10480 "returns" : {
10481 "items" : {
10482 "properties" : {},
10483 "type" : "object"
10484 },
10485 "links" : [
10486 {
10487 "href" : "{vnet}",
10488 "rel" : "child"
10489 }
10490 ],
10491 "type" : "array"
10492 }
10493 },
10494 "POST" : {
10495 "allowtoken" : 1,
10496 "description" : "Create a new sdn vnet object.",
10497 "method" : "POST",
10498 "name" : "create",
10499 "parameters" : {
10500 "additionalProperties" : 0,
10501 "properties" : {
10502 "alias" : {
10503 "description" : "alias name of the vnet",
5370fa8c 10504 "maxLength" : 256,
c5aa7e14 10505 "optional" : 1,
5370fa8c
TL
10506 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
10507 "type" : "string"
c5aa7e14 10508 },
c5aa7e14
TL
10509 "tag" : {
10510 "description" : "vlan or vxlan id",
ac70d7d1 10511 "optional" : 1,
c5aa7e14
TL
10512 "type" : "integer",
10513 "typetext" : "<integer>"
10514 },
10515 "type" : {
10516 "description" : "Type",
10517 "enum" : [
10518 "vnet"
10519 ],
10520 "optional" : 1,
10521 "type" : "string"
10522 },
ac70d7d1
TL
10523 "vlanaware" : {
10524 "description" : "Allow vm VLANs to pass through this vnet.",
10525 "optional" : 1,
10526 "type" : "boolean",
10527 "typetext" : "<boolean>"
10528 },
c5aa7e14
TL
10529 "vnet" : {
10530 "description" : "The SDN vnet object identifier.",
10531 "format" : "pve-sdn-vnet-id",
10532 "type" : "string",
10533 "typetext" : "<string>"
10534 },
10535 "zone" : {
10536 "description" : "zone id",
10537 "optional" : 0,
10538 "type" : "string",
10539 "typetext" : "<string>"
10540 }
10541 },
10542 "type" : "object"
10543 },
10544 "permissions" : {
10545 "check" : [
10546 "perm",
bd92b745 10547 "/sdn/zones/{zone}",
c5aa7e14
TL
10548 [
10549 "SDN.Allocate"
10550 ]
10551 ]
10552 },
10553 "protected" : 1,
10554 "returns" : {
10555 "type" : "null"
10556 }
10557 }
10558 },
10559 "leaf" : 0,
10560 "path" : "/cluster/sdn/vnets",
10561 "text" : "vnets"
10562 },
10563 {
10564 "children" : [
10565 {
10566 "info" : {
10567 "DELETE" : {
10568 "allowtoken" : 1,
10569 "description" : "Delete sdn zone object configuration.",
10570 "method" : "DELETE",
10571 "name" : "delete",
10572 "parameters" : {
10573 "additionalProperties" : 0,
10574 "properties" : {
10575 "zone" : {
10576 "description" : "The SDN zone object identifier.",
10577 "format" : "pve-sdn-zone-id",
10578 "type" : "string",
10579 "typetext" : "<string>"
10580 }
10581 }
10582 },
10583 "permissions" : {
10584 "check" : [
10585 "perm",
bd92b745 10586 "/sdn/zones/{zone}",
c5aa7e14
TL
10587 [
10588 "SDN.Allocate"
10589 ]
10590 ]
10591 },
10592 "protected" : 1,
10593 "returns" : {
10594 "type" : "null"
10595 }
10596 },
10597 "GET" : {
10598 "allowtoken" : 1,
10599 "description" : "Read sdn zone configuration.",
10600 "method" : "GET",
10601 "name" : "read",
10602 "parameters" : {
10603 "additionalProperties" : 0,
10604 "properties" : {
d2656385
TL
10605 "pending" : {
10606 "description" : "Display pending config.",
10607 "optional" : 1,
10608 "type" : "boolean",
10609 "typetext" : "<boolean>"
10610 },
10611 "running" : {
10612 "description" : "Display running config.",
10613 "optional" : 1,
10614 "type" : "boolean",
10615 "typetext" : "<boolean>"
10616 },
c5aa7e14
TL
10617 "zone" : {
10618 "description" : "The SDN zone object identifier.",
10619 "format" : "pve-sdn-zone-id",
10620 "type" : "string",
10621 "typetext" : "<string>"
10622 }
10623 }
10624 },
10625 "permissions" : {
10626 "check" : [
10627 "perm",
10628 "/sdn/zones/{zone}",
10629 [
10630 "SDN.Allocate"
10631 ]
10632 ]
10633 },
10634 "returns" : {
10635 "type" : "object"
10636 }
10637 },
10638 "PUT" : {
10639 "allowtoken" : 1,
10640 "description" : "Update sdn zone object configuration.",
10641 "method" : "PUT",
10642 "name" : "update",
10643 "parameters" : {
10644 "additionalProperties" : 0,
10645 "properties" : {
5370fa8c
TL
10646 "advertise-subnets" : {
10647 "description" : "Advertise evpn subnets if you have silent hosts",
10648 "optional" : 1,
10649 "type" : "boolean",
10650 "typetext" : "<boolean>"
10651 },
c5aa7e14
TL
10652 "bridge" : {
10653 "optional" : 1,
10654 "type" : "string",
10655 "typetext" : "<string>"
10656 },
7af2edf9
TL
10657 "bridge-disable-mac-learning" : {
10658 "description" : "Disable auto mac learning.",
10659 "optional" : 1,
10660 "type" : "boolean",
10661 "typetext" : "<boolean>"
10662 },
c5aa7e14
TL
10663 "controller" : {
10664 "description" : "Frr router name",
10665 "optional" : 1,
10666 "type" : "string",
10667 "typetext" : "<string>"
10668 },
10669 "delete" : {
10670 "description" : "A list of settings you want to delete.",
10671 "format" : "pve-configid-list",
10672 "maxLength" : 4096,
10673 "optional" : 1,
10674 "type" : "string",
10675 "typetext" : "<string>"
10676 },
fa22697b
TL
10677 "dhcp" : {
10678 "description" : "Type of the DHCP backend for this zone",
10679 "enum" : [
10680 "dnsmasq"
10681 ],
10682 "optional" : 1,
10683 "requires" : "ipam",
10684 "type" : "string"
10685 },
c5aa7e14 10686 "digest" : {
82551b2b
TL
10687 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
10688 "maxLength" : 64,
c5aa7e14
TL
10689 "optional" : 1,
10690 "type" : "string",
10691 "typetext" : "<string>"
10692 },
5370fa8c
TL
10693 "disable-arp-nd-suppression" : {
10694 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
10695 "optional" : 1,
10696 "type" : "boolean",
10697 "typetext" : "<boolean>"
10698 },
d2656385
TL
10699 "dns" : {
10700 "description" : "dns api server",
10701 "optional" : 1,
10702 "type" : "string",
10703 "typetext" : "<string>"
10704 },
10705 "dnszone" : {
10706 "description" : "dns domain zone ex: mydomain.com",
10707 "format" : "dns-name",
10708 "optional" : 1,
10709 "type" : "string",
10710 "typetext" : "<string>"
10711 },
c5aa7e14
TL
10712 "dp-id" : {
10713 "description" : "Faucet dataplane id",
10714 "optional" : 1,
10715 "type" : "integer",
10716 "typetext" : "<integer>"
10717 },
d2656385
TL
10718 "exitnodes" : {
10719 "description" : "List of cluster node names.",
10720 "format" : "pve-node-list",
10721 "optional" : 1,
10722 "type" : "string",
10723 "typetext" : "<string>"
10724 },
5370fa8c
TL
10725 "exitnodes-local-routing" : {
10726 "description" : "Allow exitnodes to connect to evpn guests",
10727 "optional" : 1,
10728 "type" : "boolean",
10729 "typetext" : "<boolean>"
10730 },
c30bb419
TL
10731 "exitnodes-primary" : {
10732 "description" : "Force traffic to this exitnode first.",
10733 "format" : "pve-node",
10734 "optional" : 1,
10735 "type" : "string",
10736 "typetext" : "<string>"
10737 },
d2656385
TL
10738 "ipam" : {
10739 "description" : "use a specific ipam",
e7084ef7 10740 "optional" : 1,
d2656385
TL
10741 "type" : "string",
10742 "typetext" : "<string>"
10743 },
10744 "mac" : {
10745 "description" : "Anycast logical router mac address",
10746 "format" : "mac-addr",
10747 "optional" : 1,
10748 "type" : "string",
10749 "typetext" : "<string>"
10750 },
c5aa7e14 10751 "mtu" : {
ac70d7d1 10752 "description" : "MTU",
c5aa7e14
TL
10753 "optional" : 1,
10754 "type" : "integer",
10755 "typetext" : "<integer>"
10756 },
10757 "nodes" : {
10758 "description" : "List of cluster node names.",
10759 "format" : "pve-node-list",
10760 "optional" : 1,
10761 "type" : "string",
10762 "typetext" : "<string>"
10763 },
10764 "peers" : {
10765 "description" : "peers address list.",
10766 "format" : "ip-list",
10767 "optional" : 1,
10768 "type" : "string",
10769 "typetext" : "<string>"
10770 },
d2656385
TL
10771 "reversedns" : {
10772 "description" : "reverse dns api server",
10773 "optional" : 1,
10774 "type" : "string",
10775 "typetext" : "<string>"
10776 },
c30bb419
TL
10777 "rt-import" : {
10778 "description" : "Route-Target import",
10779 "format" : "pve-sdn-bgp-rt-list",
10780 "optional" : 1,
10781 "type" : "string",
10782 "typetext" : "<string>"
10783 },
c5aa7e14 10784 "tag" : {
ac70d7d1
TL
10785 "description" : "Service-VLAN Tag",
10786 "minimum" : 0,
c5aa7e14
TL
10787 "optional" : 1,
10788 "type" : "integer",
ac70d7d1
TL
10789 "typetext" : "<integer> (0 - N)"
10790 },
10791 "vlan-protocol" : {
10792 "default" : "802.1q",
10793 "enum" : [
10794 "802.1q",
10795 "802.1ad"
10796 ],
10797 "optional" : 1,
10798 "type" : "string"
c5aa7e14
TL
10799 },
10800 "vrf-vxlan" : {
10801 "description" : "l3vni.",
10802 "optional" : 1,
10803 "type" : "integer",
10804 "typetext" : "<integer>"
10805 },
4a407cfd
TL
10806 "vxlan-port" : {
10807 "description" : "Vxlan tunnel udp port (default 4789).",
10808 "maximum" : 65536,
10809 "minimum" : 1,
10810 "optional" : 1,
10811 "type" : "integer",
10812 "typetext" : "<integer> (1 - 65536)"
10813 },
c5aa7e14
TL
10814 "zone" : {
10815 "description" : "The SDN zone object identifier.",
10816 "format" : "pve-sdn-zone-id",
10817 "type" : "string",
10818 "typetext" : "<string>"
10819 }
10820 },
10821 "type" : "object"
10822 },
10823 "permissions" : {
10824 "check" : [
10825 "perm",
bd92b745 10826 "/sdn/zones/{zone}",
c5aa7e14
TL
10827 [
10828 "SDN.Allocate"
10829 ]
10830 ]
10831 },
10832 "protected" : 1,
10833 "returns" : {
10834 "type" : "null"
10835 }
10836 }
10837 },
10838 "leaf" : 1,
10839 "path" : "/cluster/sdn/zones/{zone}",
10840 "text" : "{zone}"
10841 }
10842 ],
10843 "info" : {
10844 "GET" : {
10845 "allowtoken" : 1,
10846 "description" : "SDN zones index.",
10847 "method" : "GET",
10848 "name" : "index",
10849 "parameters" : {
10850 "additionalProperties" : 0,
10851 "properties" : {
d2656385
TL
10852 "pending" : {
10853 "description" : "Display pending config.",
10854 "optional" : 1,
10855 "type" : "boolean",
10856 "typetext" : "<boolean>"
10857 },
10858 "running" : {
10859 "description" : "Display running config.",
10860 "optional" : 1,
10861 "type" : "boolean",
10862 "typetext" : "<boolean>"
10863 },
c5aa7e14 10864 "type" : {
e7084ef7 10865 "description" : "Only list SDN zones of specific type",
c5aa7e14
TL
10866 "enum" : [
10867 "evpn",
10868 "faucet",
10869 "qinq",
ac70d7d1 10870 "simple",
c5aa7e14
TL
10871 "vlan",
10872 "vxlan"
10873 ],
10874 "optional" : 1,
10875 "type" : "string"
10876 }
10877 }
10878 },
10879 "permissions" : {
10880 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>'",
10881 "user" : "all"
10882 },
10883 "returns" : {
10884 "items" : {
10885 "properties" : {
fa22697b
TL
10886 "dhcp" : {
10887 "optional" : 1,
10888 "type" : "string"
10889 },
d2656385
TL
10890 "dns" : {
10891 "optional" : 1,
10892 "type" : "string"
10893 },
10894 "dnszone" : {
10895 "optional" : 1,
10896 "type" : "string"
10897 },
10898 "ipam" : {
10899 "optional" : 1,
10900 "type" : "string"
10901 },
10902 "mtu" : {
10903 "optional" : 1,
10904 "type" : "integer"
10905 },
10906 "nodes" : {
10907 "optional" : 1,
10908 "type" : "string"
10909 },
10910 "pending" : {
10911 "optional" : 1
10912 },
10913 "reversedns" : {
10914 "optional" : 1,
10915 "type" : "string"
10916 },
10917 "state" : {
10918 "optional" : 1,
10919 "type" : "string"
10920 },
c5aa7e14
TL
10921 "type" : {
10922 "type" : "string"
10923 },
10924 "zone" : {
10925 "type" : "string"
10926 }
10927 },
10928 "type" : "object"
10929 },
10930 "links" : [
10931 {
10932 "href" : "{zone}",
10933 "rel" : "child"
10934 }
10935 ],
10936 "type" : "array"
10937 }
10938 },
10939 "POST" : {
10940 "allowtoken" : 1,
10941 "description" : "Create a new sdn zone object.",
10942 "method" : "POST",
10943 "name" : "create",
10944 "parameters" : {
10945 "additionalProperties" : 0,
10946 "properties" : {
5370fa8c
TL
10947 "advertise-subnets" : {
10948 "description" : "Advertise evpn subnets if you have silent hosts",
10949 "optional" : 1,
10950 "type" : "boolean",
10951 "typetext" : "<boolean>"
10952 },
c5aa7e14
TL
10953 "bridge" : {
10954 "optional" : 1,
10955 "type" : "string",
10956 "typetext" : "<string>"
10957 },
7af2edf9
TL
10958 "bridge-disable-mac-learning" : {
10959 "description" : "Disable auto mac learning.",
10960 "optional" : 1,
10961 "type" : "boolean",
10962 "typetext" : "<boolean>"
10963 },
c5aa7e14
TL
10964 "controller" : {
10965 "description" : "Frr router name",
10966 "optional" : 1,
10967 "type" : "string",
10968 "typetext" : "<string>"
10969 },
fa22697b
TL
10970 "dhcp" : {
10971 "description" : "Type of the DHCP backend for this zone",
10972 "enum" : [
10973 "dnsmasq"
10974 ],
10975 "optional" : 1,
10976 "requires" : "ipam",
10977 "type" : "string"
10978 },
5370fa8c
TL
10979 "disable-arp-nd-suppression" : {
10980 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
10981 "optional" : 1,
10982 "type" : "boolean",
10983 "typetext" : "<boolean>"
10984 },
d2656385
TL
10985 "dns" : {
10986 "description" : "dns api server",
10987 "optional" : 1,
10988 "type" : "string",
10989 "typetext" : "<string>"
10990 },
10991 "dnszone" : {
10992 "description" : "dns domain zone ex: mydomain.com",
10993 "format" : "dns-name",
10994 "optional" : 1,
10995 "type" : "string",
10996 "typetext" : "<string>"
10997 },
c5aa7e14
TL
10998 "dp-id" : {
10999 "description" : "Faucet dataplane id",
11000 "optional" : 1,
11001 "type" : "integer",
11002 "typetext" : "<integer>"
11003 },
d2656385
TL
11004 "exitnodes" : {
11005 "description" : "List of cluster node names.",
11006 "format" : "pve-node-list",
11007 "optional" : 1,
11008 "type" : "string",
11009 "typetext" : "<string>"
11010 },
5370fa8c
TL
11011 "exitnodes-local-routing" : {
11012 "description" : "Allow exitnodes to connect to evpn guests",
11013 "optional" : 1,
11014 "type" : "boolean",
11015 "typetext" : "<boolean>"
11016 },
c30bb419
TL
11017 "exitnodes-primary" : {
11018 "description" : "Force traffic to this exitnode first.",
11019 "format" : "pve-node",
11020 "optional" : 1,
11021 "type" : "string",
11022 "typetext" : "<string>"
11023 },
d2656385
TL
11024 "ipam" : {
11025 "description" : "use a specific ipam",
e7084ef7 11026 "optional" : 1,
d2656385
TL
11027 "type" : "string",
11028 "typetext" : "<string>"
11029 },
11030 "mac" : {
11031 "description" : "Anycast logical router mac address",
11032 "format" : "mac-addr",
11033 "optional" : 1,
11034 "type" : "string",
11035 "typetext" : "<string>"
11036 },
c5aa7e14 11037 "mtu" : {
ac70d7d1 11038 "description" : "MTU",
c5aa7e14
TL
11039 "optional" : 1,
11040 "type" : "integer",
11041 "typetext" : "<integer>"
11042 },
11043 "nodes" : {
11044 "description" : "List of cluster node names.",
11045 "format" : "pve-node-list",
11046 "optional" : 1,
11047 "type" : "string",
11048 "typetext" : "<string>"
11049 },
11050 "peers" : {
11051 "description" : "peers address list.",
11052 "format" : "ip-list",
11053 "optional" : 1,
11054 "type" : "string",
11055 "typetext" : "<string>"
11056 },
d2656385
TL
11057 "reversedns" : {
11058 "description" : "reverse dns api server",
11059 "optional" : 1,
11060 "type" : "string",
11061 "typetext" : "<string>"
11062 },
c30bb419
TL
11063 "rt-import" : {
11064 "description" : "Route-Target import",
11065 "format" : "pve-sdn-bgp-rt-list",
11066 "optional" : 1,
11067 "type" : "string",
11068 "typetext" : "<string>"
11069 },
c5aa7e14 11070 "tag" : {
ac70d7d1
TL
11071 "description" : "Service-VLAN Tag",
11072 "minimum" : 0,
c5aa7e14
TL
11073 "optional" : 1,
11074 "type" : "integer",
ac70d7d1 11075 "typetext" : "<integer> (0 - N)"
c5aa7e14
TL
11076 },
11077 "type" : {
11078 "description" : "Plugin type.",
11079 "enum" : [
11080 "evpn",
11081 "faucet",
11082 "qinq",
ac70d7d1 11083 "simple",
c5aa7e14
TL
11084 "vlan",
11085 "vxlan"
11086 ],
11087 "format" : "pve-configid",
11088 "type" : "string"
11089 },
ac70d7d1
TL
11090 "vlan-protocol" : {
11091 "default" : "802.1q",
11092 "enum" : [
11093 "802.1q",
11094 "802.1ad"
11095 ],
11096 "optional" : 1,
11097 "type" : "string"
11098 },
c5aa7e14
TL
11099 "vrf-vxlan" : {
11100 "description" : "l3vni.",
11101 "optional" : 1,
11102 "type" : "integer",
11103 "typetext" : "<integer>"
11104 },
4a407cfd
TL
11105 "vxlan-port" : {
11106 "description" : "Vxlan tunnel udp port (default 4789).",
11107 "maximum" : 65536,
11108 "minimum" : 1,
11109 "optional" : 1,
11110 "type" : "integer",
11111 "typetext" : "<integer> (1 - 65536)"
11112 },
c5aa7e14
TL
11113 "zone" : {
11114 "description" : "The SDN zone object identifier.",
11115 "format" : "pve-sdn-zone-id",
11116 "type" : "string",
11117 "typetext" : "<string>"
11118 }
11119 },
11120 "type" : "object"
11121 },
11122 "permissions" : {
11123 "check" : [
11124 "perm",
11125 "/sdn/zones",
11126 [
11127 "SDN.Allocate"
11128 ]
11129 ]
11130 },
11131 "protected" : 1,
11132 "returns" : {
11133 "type" : "null"
11134 }
11135 }
11136 },
11137 "leaf" : 0,
11138 "path" : "/cluster/sdn/zones",
11139 "text" : "zones"
11140 },
11141 {
11142 "children" : [
11143 {
11144 "info" : {
11145 "DELETE" : {
11146 "allowtoken" : 1,
11147 "description" : "Delete sdn controller object configuration.",
11148 "method" : "DELETE",
11149 "name" : "delete",
11150 "parameters" : {
11151 "additionalProperties" : 0,
11152 "properties" : {
11153 "controller" : {
11154 "description" : "The SDN controller object identifier.",
11155 "format" : "pve-sdn-controller-id",
11156 "type" : "string",
11157 "typetext" : "<string>"
11158 }
11159 }
11160 },
11161 "permissions" : {
11162 "check" : [
11163 "perm",
11164 "/sdn/controllers",
11165 [
11166 "SDN.Allocate"
11167 ]
11168 ]
11169 },
11170 "protected" : 1,
11171 "returns" : {
11172 "type" : "null"
11173 }
11174 },
11175 "GET" : {
11176 "allowtoken" : 1,
11177 "description" : "Read sdn controller configuration.",
11178 "method" : "GET",
11179 "name" : "read",
11180 "parameters" : {
11181 "additionalProperties" : 0,
11182 "properties" : {
11183 "controller" : {
11184 "description" : "The SDN controller object identifier.",
11185 "format" : "pve-sdn-controller-id",
11186 "type" : "string",
11187 "typetext" : "<string>"
d2656385
TL
11188 },
11189 "pending" : {
11190 "description" : "Display pending config.",
11191 "optional" : 1,
11192 "type" : "boolean",
11193 "typetext" : "<boolean>"
11194 },
11195 "running" : {
11196 "description" : "Display running config.",
11197 "optional" : 1,
11198 "type" : "boolean",
11199 "typetext" : "<boolean>"
c5aa7e14
TL
11200 }
11201 }
11202 },
11203 "permissions" : {
11204 "check" : [
11205 "perm",
11206 "/sdn/controllers/{controller}",
11207 [
11208 "SDN.Allocate"
11209 ]
11210 ]
11211 },
11212 "returns" : {
11213 "type" : "object"
11214 }
11215 },
11216 "PUT" : {
11217 "allowtoken" : 1,
11218 "description" : "Update sdn controller object configuration.",
11219 "method" : "PUT",
11220 "name" : "update",
11221 "parameters" : {
11222 "additionalProperties" : 0,
11223 "properties" : {
11224 "asn" : {
11225 "description" : "autonomous system number",
c30bb419
TL
11226 "maximum" : 4294967296,
11227 "minimum" : 0,
c5aa7e14
TL
11228 "optional" : 1,
11229 "type" : "integer",
c30bb419
TL
11230 "typetext" : "<integer> (0 - 4294967296)"
11231 },
11232 "bgp-multipath-as-path-relax" : {
11233 "optional" : 1,
11234 "type" : "boolean",
11235 "typetext" : "<boolean>"
c5aa7e14
TL
11236 },
11237 "controller" : {
11238 "description" : "The SDN controller object identifier.",
11239 "format" : "pve-sdn-controller-id",
11240 "type" : "string",
11241 "typetext" : "<string>"
11242 },
11243 "delete" : {
11244 "description" : "A list of settings you want to delete.",
11245 "format" : "pve-configid-list",
11246 "maxLength" : 4096,
11247 "optional" : 1,
11248 "type" : "string",
11249 "typetext" : "<string>"
11250 },
11251 "digest" : {
82551b2b
TL
11252 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
11253 "maxLength" : 64,
c5aa7e14
TL
11254 "optional" : 1,
11255 "type" : "string",
11256 "typetext" : "<string>"
11257 },
d2656385
TL
11258 "ebgp" : {
11259 "description" : "Enable ebgp. (remote-as external)",
11260 "optional" : 1,
11261 "type" : "boolean",
11262 "typetext" : "<boolean>"
11263 },
11264 "ebgp-multihop" : {
11265 "optional" : 1,
11266 "type" : "integer",
11267 "typetext" : "<integer>"
11268 },
bd92b745
TL
11269 "isis-domain" : {
11270 "description" : "ISIS domain.",
11271 "optional" : 1,
11272 "type" : "string",
11273 "typetext" : "<string>"
11274 },
11275 "isis-ifaces" : {
11276 "description" : "ISIS interface.",
11277 "format" : "pve-iface-list",
11278 "optional" : 1,
11279 "type" : "string",
11280 "typetext" : "<string>"
11281 },
11282 "isis-net" : {
11283 "description" : "ISIS network entity title.",
11284 "optional" : 1,
11285 "type" : "string",
11286 "typetext" : "<string>"
11287 },
d2656385
TL
11288 "loopback" : {
11289 "description" : "source loopback interface.",
c5aa7e14
TL
11290 "optional" : 1,
11291 "type" : "string",
11292 "typetext" : "<string>"
11293 },
d2656385
TL
11294 "node" : {
11295 "description" : "The cluster node name.",
11296 "format" : "pve-node",
c5aa7e14
TL
11297 "optional" : 1,
11298 "type" : "string",
11299 "typetext" : "<string>"
11300 },
11301 "peers" : {
11302 "description" : "peers address list.",
11303 "format" : "ip-list",
11304 "optional" : 1,
11305 "type" : "string",
11306 "typetext" : "<string>"
11307 }
11308 },
11309 "type" : "object"
11310 },
11311 "permissions" : {
11312 "check" : [
11313 "perm",
11314 "/sdn/controllers",
11315 [
11316 "SDN.Allocate"
11317 ]
11318 ]
11319 },
11320 "protected" : 1,
11321 "returns" : {
11322 "type" : "null"
11323 }
11324 }
11325 },
11326 "leaf" : 1,
11327 "path" : "/cluster/sdn/controllers/{controller}",
11328 "text" : "{controller}"
11329 }
11330 ],
11331 "info" : {
11332 "GET" : {
11333 "allowtoken" : 1,
11334 "description" : "SDN controllers index.",
11335 "method" : "GET",
11336 "name" : "index",
11337 "parameters" : {
11338 "additionalProperties" : 0,
11339 "properties" : {
d2656385
TL
11340 "pending" : {
11341 "description" : "Display pending config.",
11342 "optional" : 1,
11343 "type" : "boolean",
11344 "typetext" : "<boolean>"
11345 },
11346 "running" : {
11347 "description" : "Display running config.",
11348 "optional" : 1,
11349 "type" : "boolean",
11350 "typetext" : "<boolean>"
11351 },
c5aa7e14
TL
11352 "type" : {
11353 "description" : "Only list sdn controllers of specific type",
11354 "enum" : [
d2656385 11355 "bgp",
c5aa7e14 11356 "evpn",
bd92b745
TL
11357 "faucet",
11358 "isis"
c5aa7e14
TL
11359 ],
11360 "optional" : 1,
11361 "type" : "string"
11362 }
11363 }
11364 },
11365 "permissions" : {
11366 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/controllers/<controller>'",
11367 "user" : "all"
11368 },
11369 "returns" : {
11370 "items" : {
11371 "properties" : {
11372 "controller" : {
11373 "type" : "string"
11374 },
d2656385
TL
11375 "pending" : {
11376 "optional" : 1
11377 },
11378 "state" : {
11379 "optional" : 1,
11380 "type" : "string"
11381 },
c5aa7e14
TL
11382 "type" : {
11383 "type" : "string"
11384 }
11385 },
11386 "type" : "object"
11387 },
11388 "links" : [
11389 {
11390 "href" : "{controller}",
11391 "rel" : "child"
11392 }
11393 ],
11394 "type" : "array"
11395 }
11396 },
11397 "POST" : {
11398 "allowtoken" : 1,
11399 "description" : "Create a new sdn controller object.",
11400 "method" : "POST",
11401 "name" : "create",
11402 "parameters" : {
11403 "additionalProperties" : 0,
11404 "properties" : {
11405 "asn" : {
11406 "description" : "autonomous system number",
c30bb419
TL
11407 "maximum" : 4294967296,
11408 "minimum" : 0,
c5aa7e14
TL
11409 "optional" : 1,
11410 "type" : "integer",
c30bb419
TL
11411 "typetext" : "<integer> (0 - 4294967296)"
11412 },
11413 "bgp-multipath-as-path-relax" : {
11414 "optional" : 1,
11415 "type" : "boolean",
11416 "typetext" : "<boolean>"
c5aa7e14
TL
11417 },
11418 "controller" : {
11419 "description" : "The SDN controller object identifier.",
11420 "format" : "pve-sdn-controller-id",
11421 "type" : "string",
11422 "typetext" : "<string>"
11423 },
d2656385
TL
11424 "ebgp" : {
11425 "description" : "Enable ebgp. (remote-as external)",
11426 "optional" : 1,
11427 "type" : "boolean",
11428 "typetext" : "<boolean>"
11429 },
11430 "ebgp-multihop" : {
11431 "optional" : 1,
11432 "type" : "integer",
11433 "typetext" : "<integer>"
11434 },
bd92b745
TL
11435 "isis-domain" : {
11436 "description" : "ISIS domain.",
11437 "optional" : 1,
11438 "type" : "string",
11439 "typetext" : "<string>"
11440 },
11441 "isis-ifaces" : {
11442 "description" : "ISIS interface.",
11443 "format" : "pve-iface-list",
11444 "optional" : 1,
11445 "type" : "string",
11446 "typetext" : "<string>"
11447 },
11448 "isis-net" : {
11449 "description" : "ISIS network entity title.",
11450 "optional" : 1,
11451 "type" : "string",
11452 "typetext" : "<string>"
11453 },
d2656385
TL
11454 "loopback" : {
11455 "description" : "source loopback interface.",
c5aa7e14
TL
11456 "optional" : 1,
11457 "type" : "string",
11458 "typetext" : "<string>"
11459 },
d2656385
TL
11460 "node" : {
11461 "description" : "The cluster node name.",
11462 "format" : "pve-node",
c5aa7e14
TL
11463 "optional" : 1,
11464 "type" : "string",
11465 "typetext" : "<string>"
11466 },
11467 "peers" : {
11468 "description" : "peers address list.",
11469 "format" : "ip-list",
11470 "optional" : 1,
11471 "type" : "string",
11472 "typetext" : "<string>"
11473 },
11474 "type" : {
11475 "description" : "Plugin type.",
11476 "enum" : [
d2656385 11477 "bgp",
c5aa7e14 11478 "evpn",
bd92b745
TL
11479 "faucet",
11480 "isis"
c5aa7e14
TL
11481 ],
11482 "format" : "pve-configid",
11483 "type" : "string"
11484 }
11485 },
11486 "type" : "object"
11487 },
11488 "permissions" : {
11489 "check" : [
11490 "perm",
11491 "/sdn/controllers",
11492 [
11493 "SDN.Allocate"
11494 ]
11495 ]
11496 },
11497 "protected" : 1,
11498 "returns" : {
11499 "type" : "null"
11500 }
11501 }
11502 },
11503 "leaf" : 0,
11504 "path" : "/cluster/sdn/controllers",
11505 "text" : "controllers"
d2656385
TL
11506 },
11507 {
11508 "children" : [
11509 {
fa22697b
TL
11510 "children" : [
11511 {
11512 "info" : {
11513 "GET" : {
11514 "allowtoken" : 1,
11515 "description" : "List PVE IPAM Entries",
11516 "method" : "GET",
11517 "name" : "ipamindex",
11518 "parameters" : {
11519 "additionalProperties" : 0,
11520 "properties" : {
11521 "ipam" : {
11522 "description" : "The SDN ipam object identifier.",
11523 "format" : "pve-sdn-ipam-id",
11524 "type" : "string",
11525 "typetext" : "<string>"
11526 }
11527 }
11528 },
11529 "permissions" : {
11530 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
11531 "user" : "all"
11532 },
11533 "protected" : 1,
11534 "returns" : {
11535 "type" : "array"
11536 }
11537 }
11538 },
11539 "leaf" : 1,
11540 "path" : "/cluster/sdn/ipams/{ipam}/status",
11541 "text" : "status"
11542 }
11543 ],
d2656385
TL
11544 "info" : {
11545 "DELETE" : {
11546 "allowtoken" : 1,
11547 "description" : "Delete sdn ipam object configuration.",
11548 "method" : "DELETE",
11549 "name" : "delete",
11550 "parameters" : {
11551 "additionalProperties" : 0,
11552 "properties" : {
11553 "ipam" : {
11554 "description" : "The SDN ipam object identifier.",
11555 "format" : "pve-sdn-ipam-id",
11556 "type" : "string",
11557 "typetext" : "<string>"
11558 }
11559 }
11560 },
11561 "permissions" : {
11562 "check" : [
11563 "perm",
11564 "/sdn/ipams",
11565 [
11566 "SDN.Allocate"
11567 ]
11568 ]
11569 },
11570 "protected" : 1,
11571 "returns" : {
11572 "type" : "null"
11573 }
11574 },
11575 "GET" : {
11576 "allowtoken" : 1,
11577 "description" : "Read sdn ipam configuration.",
11578 "method" : "GET",
11579 "name" : "read",
11580 "parameters" : {
11581 "additionalProperties" : 0,
11582 "properties" : {
11583 "ipam" : {
11584 "description" : "The SDN ipam object identifier.",
11585 "format" : "pve-sdn-ipam-id",
11586 "type" : "string",
11587 "typetext" : "<string>"
11588 }
11589 }
11590 },
11591 "permissions" : {
11592 "check" : [
11593 "perm",
11594 "/sdn/ipams/{ipam}",
11595 [
11596 "SDN.Allocate"
11597 ]
11598 ]
11599 },
11600 "returns" : {
11601 "type" : "object"
11602 }
11603 },
11604 "PUT" : {
11605 "allowtoken" : 1,
11606 "description" : "Update sdn ipam object configuration.",
11607 "method" : "PUT",
11608 "name" : "update",
11609 "parameters" : {
11610 "additionalProperties" : 0,
11611 "properties" : {
11612 "delete" : {
11613 "description" : "A list of settings you want to delete.",
11614 "format" : "pve-configid-list",
11615 "maxLength" : 4096,
11616 "optional" : 1,
11617 "type" : "string",
11618 "typetext" : "<string>"
11619 },
11620 "digest" : {
82551b2b
TL
11621 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
11622 "maxLength" : 64,
d2656385
TL
11623 "optional" : 1,
11624 "type" : "string",
11625 "typetext" : "<string>"
11626 },
11627 "ipam" : {
11628 "description" : "The SDN ipam object identifier.",
11629 "format" : "pve-sdn-ipam-id",
11630 "type" : "string",
11631 "typetext" : "<string>"
11632 },
11633 "section" : {
11634 "optional" : 1,
11635 "type" : "integer",
11636 "typetext" : "<integer>"
11637 },
11638 "token" : {
11639 "optional" : 1,
11640 "type" : "string",
11641 "typetext" : "<string>"
11642 },
11643 "url" : {
11644 "optional" : 1,
11645 "type" : "string",
11646 "typetext" : "<string>"
11647 }
11648 },
11649 "type" : "object"
11650 },
11651 "permissions" : {
11652 "check" : [
11653 "perm",
11654 "/sdn/ipams",
11655 [
11656 "SDN.Allocate"
11657 ]
11658 ]
11659 },
11660 "protected" : 1,
11661 "returns" : {
11662 "type" : "null"
11663 }
c5aa7e14
TL
11664 }
11665 },
fa22697b 11666 "leaf" : 0,
d2656385
TL
11667 "path" : "/cluster/sdn/ipams/{ipam}",
11668 "text" : "{ipam}"
7aacca6f 11669 }
d2656385
TL
11670 ],
11671 "info" : {
11672 "GET" : {
11673 "allowtoken" : 1,
11674 "description" : "SDN ipams index.",
11675 "method" : "GET",
11676 "name" : "index",
11677 "parameters" : {
11678 "additionalProperties" : 0,
11679 "properties" : {
11680 "type" : {
11681 "description" : "Only list sdn ipams of specific type",
11682 "enum" : [
11683 "netbox",
11684 "phpipam",
11685 "pve"
11686 ],
11687 "optional" : 1,
11688 "type" : "string"
11689 }
11690 }
11691 },
11692 "permissions" : {
11693 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/ipams/<ipam>'",
11694 "user" : "all"
11695 },
11696 "returns" : {
11697 "items" : {
11698 "properties" : {
11699 "ipam" : {
11700 "type" : "string"
11701 },
11702 "type" : {
11703 "type" : "string"
11704 }
11705 },
11706 "type" : "object"
11707 },
11708 "links" : [
11709 {
11710 "href" : "{ipam}",
11711 "rel" : "child"
11712 }
44660702 11713 ],
d2656385
TL
11714 "type" : "array"
11715 }
11716 },
11717 "POST" : {
11718 "allowtoken" : 1,
11719 "description" : "Create a new sdn ipam object.",
11720 "method" : "POST",
11721 "name" : "create",
11722 "parameters" : {
11723 "additionalProperties" : 0,
11724 "properties" : {
11725 "ipam" : {
11726 "description" : "The SDN ipam object identifier.",
11727 "format" : "pve-sdn-ipam-id",
11728 "type" : "string",
11729 "typetext" : "<string>"
11730 },
11731 "section" : {
11732 "optional" : 1,
11733 "type" : "integer",
11734 "typetext" : "<integer>"
11735 },
11736 "token" : {
11737 "optional" : 1,
11738 "type" : "string",
11739 "typetext" : "<string>"
11740 },
11741 "type" : {
11742 "description" : "Plugin type.",
11743 "enum" : [
11744 "netbox",
11745 "phpipam",
11746 "pve"
11747 ],
11748 "format" : "pve-configid",
11749 "type" : "string"
11750 },
11751 "url" : {
11752 "optional" : 1,
11753 "type" : "string",
11754 "typetext" : "<string>"
11755 }
11756 },
11757 "type" : "object"
11758 },
11759 "permissions" : {
11760 "check" : [
11761 "perm",
11762 "/sdn/ipams",
11763 [
11764 "SDN.Allocate"
11765 ]
11766 ]
11767 },
11768 "protected" : 1,
11769 "returns" : {
11770 "type" : "null"
56122987
DM
11771 }
11772 }
11773 },
d2656385
TL
11774 "leaf" : 0,
11775 "path" : "/cluster/sdn/ipams",
11776 "text" : "ipams"
11777 },
11778 {
11779 "children" : [
11780 {
11781 "info" : {
11782 "DELETE" : {
11783 "allowtoken" : 1,
11784 "description" : "Delete sdn dns object configuration.",
11785 "method" : "DELETE",
11786 "name" : "delete",
11787 "parameters" : {
11788 "additionalProperties" : 0,
11789 "properties" : {
11790 "dns" : {
11791 "description" : "The SDN dns object identifier.",
11792 "format" : "pve-sdn-dns-id",
11793 "type" : "string",
11794 "typetext" : "<string>"
11795 }
11796 }
11797 },
11798 "permissions" : {
11799 "check" : [
11800 "perm",
11801 "/sdn/dns",
11802 [
11803 "SDN.Allocate"
11804 ]
11805 ]
11806 },
11807 "protected" : 1,
11808 "returns" : {
11809 "type" : "null"
11810 }
11811 },
11812 "GET" : {
11813 "allowtoken" : 1,
11814 "description" : "Read sdn dns configuration.",
11815 "method" : "GET",
11816 "name" : "read",
11817 "parameters" : {
11818 "additionalProperties" : 0,
11819 "properties" : {
11820 "dns" : {
11821 "description" : "The SDN dns object identifier.",
11822 "format" : "pve-sdn-dns-id",
11823 "type" : "string",
11824 "typetext" : "<string>"
11825 }
11826 }
11827 },
11828 "permissions" : {
11829 "check" : [
11830 "perm",
11831 "/sdn/dns/{dns}",
11832 [
11833 "SDN.Allocate"
11834 ]
11835 ]
11836 },
11837 "returns" : {
11838 "type" : "object"
11839 }
11840 },
11841 "PUT" : {
11842 "allowtoken" : 1,
11843 "description" : "Update sdn dns object configuration.",
11844 "method" : "PUT",
11845 "name" : "update",
11846 "parameters" : {
11847 "additionalProperties" : 0,
11848 "properties" : {
11849 "delete" : {
11850 "description" : "A list of settings you want to delete.",
11851 "format" : "pve-configid-list",
11852 "maxLength" : 4096,
11853 "optional" : 1,
11854 "type" : "string",
11855 "typetext" : "<string>"
11856 },
11857 "digest" : {
82551b2b
TL
11858 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
11859 "maxLength" : 64,
d2656385
TL
11860 "optional" : 1,
11861 "type" : "string",
11862 "typetext" : "<string>"
11863 },
11864 "dns" : {
11865 "description" : "The SDN dns object identifier.",
11866 "format" : "pve-sdn-dns-id",
11867 "type" : "string",
11868 "typetext" : "<string>"
11869 },
11870 "key" : {
11871 "optional" : 1,
11872 "type" : "string",
11873 "typetext" : "<string>"
11874 },
11875 "reversemaskv6" : {
11876 "optional" : 1,
11877 "type" : "integer",
11878 "typetext" : "<integer>"
11879 },
11880 "ttl" : {
11881 "optional" : 1,
11882 "type" : "integer",
11883 "typetext" : "<integer>"
11884 },
11885 "url" : {
11886 "optional" : 1,
11887 "type" : "string",
11888 "typetext" : "<string>"
11889 }
11890 },
11891 "type" : "object"
11892 },
11893 "permissions" : {
11894 "check" : [
11895 "perm",
11896 "/sdn/dns",
11897 [
11898 "SDN.Allocate"
11899 ]
11900 ]
11901 },
11902 "protected" : 1,
11903 "returns" : {
11904 "type" : "null"
11905 }
11906 }
11907 },
11908 "leaf" : 1,
11909 "path" : "/cluster/sdn/dns/{dns}",
11910 "text" : "{dns}"
11911 }
11912 ],
11913 "info" : {
11914 "GET" : {
11915 "allowtoken" : 1,
11916 "description" : "SDN dns index.",
11917 "method" : "GET",
11918 "name" : "index",
11919 "parameters" : {
11920 "additionalProperties" : 0,
11921 "properties" : {
11922 "type" : {
11923 "description" : "Only list sdn dns of specific type",
11924 "enum" : [
11925 "powerdns"
11926 ],
11927 "optional" : 1,
11928 "type" : "string"
11929 }
11930 }
11931 },
11932 "permissions" : {
11933 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/dns/<dns>'",
11934 "user" : "all"
11935 },
11936 "returns" : {
11937 "items" : {
11938 "properties" : {
11939 "dns" : {
11940 "type" : "string"
11941 },
11942 "type" : {
11943 "type" : "string"
11944 }
11945 },
11946 "type" : "object"
11947 },
11948 "links" : [
11949 {
11950 "href" : "{dns}",
11951 "rel" : "child"
11952 }
11953 ],
11954 "type" : "array"
11955 }
11956 },
11957 "POST" : {
11958 "allowtoken" : 1,
11959 "description" : "Create a new sdn dns object.",
11960 "method" : "POST",
11961 "name" : "create",
11962 "parameters" : {
11963 "additionalProperties" : 0,
11964 "properties" : {
11965 "dns" : {
11966 "description" : "The SDN dns object identifier.",
11967 "format" : "pve-sdn-dns-id",
11968 "type" : "string",
11969 "typetext" : "<string>"
11970 },
11971 "key" : {
11972 "optional" : 0,
11973 "type" : "string",
11974 "typetext" : "<string>"
11975 },
11976 "reversemaskv6" : {
11977 "optional" : 1,
11978 "type" : "integer",
11979 "typetext" : "<integer>"
11980 },
11981 "reversev6mask" : {
11982 "optional" : 1,
11983 "type" : "integer",
11984 "typetext" : "<integer>"
11985 },
11986 "ttl" : {
11987 "optional" : 1,
11988 "type" : "integer",
11989 "typetext" : "<integer>"
11990 },
11991 "type" : {
11992 "description" : "Plugin type.",
11993 "enum" : [
11994 "powerdns"
11995 ],
11996 "format" : "pve-configid",
11997 "type" : "string"
11998 },
11999 "url" : {
12000 "optional" : 0,
12001 "type" : "string",
12002 "typetext" : "<string>"
12003 }
12004 },
12005 "type" : "object"
12006 },
12007 "permissions" : {
12008 "check" : [
12009 "perm",
12010 "/sdn/dns",
12011 [
12012 "SDN.Allocate"
12013 ]
12014 ]
12015 },
12016 "protected" : 1,
12017 "returns" : {
12018 "type" : "null"
12019 }
12020 }
12021 },
12022 "leaf" : 0,
12023 "path" : "/cluster/sdn/dns",
12024 "text" : "dns"
12025 }
12026 ],
12027 "info" : {
12028 "GET" : {
12029 "allowtoken" : 1,
12030 "description" : "Directory index.",
12031 "method" : "GET",
12032 "name" : "index",
12033 "parameters" : {
12034 "additionalProperties" : 0
12035 },
12036 "permissions" : {
12037 "check" : [
12038 "perm",
bd92b745 12039 "/sdn",
d2656385
TL
12040 [
12041 "SDN.Audit"
12042 ]
12043 ]
12044 },
12045 "returns" : {
12046 "items" : {
12047 "properties" : {
12048 "id" : {
12049 "type" : "string"
12050 }
12051 },
12052 "type" : "object"
12053 },
12054 "links" : [
12055 {
12056 "href" : "{id}",
12057 "rel" : "child"
12058 }
12059 ],
12060 "type" : "array"
12061 }
12062 },
12063 "PUT" : {
12064 "allowtoken" : 1,
12065 "description" : "Apply sdn controller changes && reload.",
12066 "method" : "PUT",
12067 "name" : "reload",
12068 "parameters" : {
12069 "additionalProperties" : 0
12070 },
12071 "permissions" : {
12072 "check" : [
12073 "perm",
12074 "/sdn",
12075 [
12076 "SDN.Allocate"
12077 ]
12078 ]
12079 },
12080 "protected" : 1,
12081 "returns" : {
12082 "type" : "string"
12083 }
12084 }
12085 },
12086 "leaf" : 0,
12087 "path" : "/cluster/sdn",
12088 "text" : "sdn"
12089 },
12090 {
12091 "info" : {
12092 "GET" : {
12093 "allowtoken" : 1,
12094 "description" : "Read cluster log",
12095 "method" : "GET",
12096 "name" : "log",
12097 "parameters" : {
12098 "additionalProperties" : 0,
12099 "properties" : {
12100 "max" : {
12101 "description" : "Maximum number of entries.",
12102 "minimum" : 1,
12103 "optional" : 1,
12104 "type" : "integer",
12105 "typetext" : "<integer> (1 - N)"
12106 }
12107 }
12108 },
12109 "permissions" : {
12110 "user" : "all"
12111 },
12112 "returns" : {
12113 "items" : {
12114 "properties" : {},
12115 "type" : "object"
12116 },
12117 "type" : "array"
12118 }
12119 }
12120 },
12121 "leaf" : 1,
12122 "path" : "/cluster/log",
12123 "text" : "log"
12124 },
12125 {
12126 "info" : {
12127 "GET" : {
12128 "allowtoken" : 1,
12129 "description" : "Resources index (cluster wide).",
12130 "method" : "GET",
12131 "name" : "resources",
12132 "parameters" : {
12133 "additionalProperties" : 0,
12134 "properties" : {
12135 "type" : {
12136 "enum" : [
12137 "vm",
12138 "storage",
12139 "node",
12140 "sdn"
12141 ],
12142 "optional" : 1,
12143 "type" : "string"
12144 }
12145 }
12146 },
12147 "permissions" : {
12148 "user" : "all"
12149 },
12150 "returns" : {
12151 "items" : {
12152 "properties" : {
81a3384d
TL
12153 "cgroup-mode" : {
12154 "description" : "The cgroup mode the node operates under (when type == node).",
12155 "optional" : 1,
12156 "type" : "integer"
12157 },
d2656385
TL
12158 "content" : {
12159 "description" : "Allowed storage content types (when type == storage).",
12160 "format" : "pve-storage-content-list",
12161 "optional" : 1,
12162 "type" : "string"
12163 },
12164 "cpu" : {
12165 "description" : "CPU utilization (when type in node,qemu,lxc).",
4e7f60c2 12166 "minimum" : 0,
4d47f125
TL
12167 "optional" : 1,
12168 "renderer" : "fraction_as_percentage",
12169 "type" : "number"
12170 },
12171 "disk" : {
12172 "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
4e7f60c2 12173 "minimum" : 0,
4d47f125
TL
12174 "optional" : 1,
12175 "renderer" : "bytes",
4e7f60c2 12176 "type" : "integer"
4d47f125
TL
12177 },
12178 "hastate" : {
12179 "description" : "HA service status (for HA managed VMs).",
12180 "optional" : 1,
12181 "type" : "string"
12182 },
12183 "id" : {
287a95cf 12184 "description" : "Resource id.",
4d47f125
TL
12185 "type" : "string"
12186 },
12187 "level" : {
12188 "description" : "Support level (when type == node).",
12189 "optional" : 1,
12190 "type" : "string"
12191 },
12192 "maxcpu" : {
12193 "description" : "Number of available CPUs (when type in node,qemu,lxc).",
4e7f60c2 12194 "minimum" : 0,
4d47f125
TL
12195 "optional" : 1,
12196 "type" : "number"
12197 },
12198 "maxdisk" : {
12199 "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
4e7f60c2 12200 "minimum" : 0,
4d47f125
TL
12201 "optional" : 1,
12202 "renderer" : "bytes",
12203 "type" : "integer"
12204 },
12205 "maxmem" : {
12206 "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
12207 "optional" : 1,
12208 "renderer" : "bytes",
12209 "type" : "integer"
12210 },
12211 "mem" : {
12212 "description" : "Used memory in bytes (when type in node,qemu,lxc).",
4e7f60c2 12213 "minimum" : 0,
4d47f125
TL
12214 "optional" : 1,
12215 "renderer" : "bytes",
4e7f60c2 12216 "type" : "integer"
4d47f125 12217 },
34f3e481
TL
12218 "name" : {
12219 "description" : "Name of the resource.",
12220 "optional" : 1,
12221 "type" : "string"
12222 },
4d47f125
TL
12223 "node" : {
12224 "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
12225 "format" : "pve-node",
12226 "optional" : 1,
12227 "type" : "string"
12228 },
d2656385
TL
12229 "plugintype" : {
12230 "description" : "More specific type, if available.",
12231 "optional" : 1,
12232 "type" : "string"
12233 },
4d47f125
TL
12234 "pool" : {
12235 "description" : "The pool name (when type in pool,qemu,lxc).",
12236 "optional" : 1,
12237 "type" : "string"
12238 },
12239 "status" : {
12240 "description" : "Resource type dependent status.",
12241 "optional" : 1,
12242 "type" : "string"
12243 },
12244 "storage" : {
12245 "description" : "The storage identifier (when type == storage).",
12246 "format" : "pve-storage-id",
12247 "optional" : 1,
12248 "type" : "string"
12249 },
12250 "type" : {
12251 "description" : "Resource type.",
12252 "enum" : [
12253 "node",
12254 "storage",
12255 "pool",
12256 "qemu",
12257 "lxc",
1c532546
TL
12258 "openvz",
12259 "sdn"
4d47f125
TL
12260 ],
12261 "type" : "string"
12262 },
12263 "uptime" : {
12264 "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
12265 "optional" : 1,
12266 "renderer" : "duration",
12267 "type" : "integer"
4e7f60c2
TL
12268 },
12269 "vmid" : {
12270 "description" : "The numerical vmid (when type in qemu,lxc).",
82551b2b
TL
12271 "format" : "pve-vmid",
12272 "maximum" : 999999999,
12273 "minimum" : 100,
4e7f60c2
TL
12274 "optional" : 1,
12275 "type" : "integer"
4d47f125
TL
12276 }
12277 },
44660702
DM
12278 "type" : "object"
12279 },
12280 "type" : "array"
12281 }
56122987
DM
12282 }
12283 },
7aacca6f 12284 "leaf" : 1,
44660702
DM
12285 "path" : "/cluster/resources",
12286 "text" : "resources"
56122987
DM
12287 },
12288 {
56122987
DM
12289 "info" : {
12290 "GET" : {
e9cd3bd4 12291 "allowtoken" : 1,
7aacca6f 12292 "description" : "List recent tasks (cluster wide).",
44660702 12293 "method" : "GET",
7aacca6f 12294 "name" : "tasks",
56122987
DM
12295 "parameters" : {
12296 "additionalProperties" : 0
12297 },
44660702
DM
12298 "permissions" : {
12299 "user" : "all"
12300 },
56122987
DM
12301 "returns" : {
12302 "items" : {
12303 "properties" : {
12304 "upid" : {
12305 "type" : "string"
12306 }
44660702
DM
12307 },
12308 "type" : "object"
12309 },
12310 "type" : "array"
7aacca6f 12311 }
56122987
DM
12312 }
12313 },
7aacca6f 12314 "leaf" : 1,
44660702
DM
12315 "path" : "/cluster/tasks",
12316 "text" : "tasks"
56122987
DM
12317 },
12318 {
56122987 12319 "info" : {
7aacca6f 12320 "GET" : {
e9cd3bd4 12321 "allowtoken" : 1,
81a3384d 12322 "description" : "Get datacenter options. Without 'Sys.Audit' on '/' not all options are returned.",
44660702
DM
12323 "method" : "GET",
12324 "name" : "get_options",
56122987 12325 "parameters" : {
7aacca6f
DM
12326 "additionalProperties" : 0
12327 },
12328 "permissions" : {
12329 "check" : [
12330 "perm",
12331 "/",
12332 [
12333 "Sys.Audit"
12334 ]
81a3384d
TL
12335 ],
12336 "user" : "all"
7aacca6f 12337 },
7aacca6f 12338 "returns" : {
44660702 12339 "type" : "object"
7aacca6f
DM
12340 }
12341 },
12342 "PUT" : {
e9cd3bd4 12343 "allowtoken" : 1,
44660702
DM
12344 "description" : "Set datacenter options.",
12345 "method" : "PUT",
7aacca6f
DM
12346 "name" : "set_options",
12347 "parameters" : {
12348 "additionalProperties" : 0,
12349 "properties" : {
27a7acb2 12350 "bwlimit" : {
4a407cfd 12351 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
12352 "format" : {
12353 "clone" : {
95895385 12354 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
12355 "format_description" : "LIMIT",
12356 "minimum" : "0",
12357 "optional" : 1,
12358 "type" : "number"
12359 },
12360 "default" : {
95895385 12361 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
12362 "format_description" : "LIMIT",
12363 "minimum" : "0",
12364 "optional" : 1,
12365 "type" : "number"
12366 },
12367 "migration" : {
95895385 12368 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
12369 "format_description" : "LIMIT",
12370 "minimum" : "0",
12371 "optional" : 1,
12372 "type" : "number"
12373 },
12374 "move" : {
95895385 12375 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
12376 "format_description" : "LIMIT",
12377 "minimum" : "0",
12378 "optional" : 1,
12379 "type" : "number"
12380 },
12381 "restore" : {
95895385 12382 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
12383 "format_description" : "LIMIT",
12384 "minimum" : "0",
12385 "optional" : 1,
12386 "type" : "number"
12387 }
12388 },
12389 "optional" : 1,
12390 "type" : "string",
12391 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
12392 },
56122987 12393 "console" : {
a9a8e3d1 12394 "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
12395 "enum" : [
12396 "applet",
12397 "vv",
a9a8e3d1
DM
12398 "html5",
12399 "xtermjs"
44660702
DM
12400 ],
12401 "optional" : 1,
12402 "type" : "string"
56122987 12403 },
81a3384d
TL
12404 "crs" : {
12405 "description" : "Cluster resource scheduling settings.",
12406 "format" : {
12407 "ha" : {
12408 "default" : "basic",
12409 "description" : "Use this resource scheduler mode for HA.",
12410 "enum" : [
12411 "basic",
12412 "static"
12413 ],
9d2e98ed 12414 "optional" : 1,
81a3384d
TL
12415 "type" : "string",
12416 "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
12417 },
12418 "ha-rebalance-on-start" : {
12419 "default" : 0,
12420 "description" : "Set to use CRS for selecting a suited node when a HA services request-state changes from stop to start.",
12421 "optional" : 1,
12422 "type" : "boolean"
81a3384d
TL
12423 }
12424 },
12425 "optional" : 1,
12426 "type" : "string",
9d2e98ed 12427 "typetext" : "[ha=<basic|static>] [,ha-rebalance-on-start=<1|0>]"
81a3384d 12428 },
7aacca6f 12429 "delete" : {
7aacca6f 12430 "description" : "A list of settings you want to delete.",
44660702 12431 "format" : "pve-configid-list",
7aacca6f 12432 "optional" : 1,
013dc89f
DM
12433 "type" : "string",
12434 "typetext" : "<string>"
7aacca6f 12435 },
5370fa8c
TL
12436 "description" : {
12437 "description" : "Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.",
12438 "maxLength" : 65536,
12439 "optional" : 1,
12440 "type" : "string",
12441 "typetext" : "<string>"
12442 },
44660702
DM
12443 "email_from" : {
12444 "description" : "Specify email address to send notification from (default is root@$hostname)",
12445 "format" : "email-opt",
7aacca6f 12446 "optional" : 1,
013dc89f
DM
12447 "type" : "string",
12448 "typetext" : "<string>"
44660702
DM
12449 },
12450 "fencing" : {
12451 "default" : "watchdog",
12452 "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 12453 "enum" : [
44660702
DM
12454 "watchdog",
12455 "hardware",
12456 "both"
7aacca6f 12457 ],
44660702
DM
12458 "optional" : 1,
12459 "type" : "string"
12460 },
5f26e15b
TL
12461 "ha" : {
12462 "description" : "Cluster wide HA settings.",
12463 "format" : {
12464 "shutdown_policy" : {
12465 "default" : "conditional",
5c1699e5 12466 "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
12467 "enum" : [
12468 "freeze",
12469 "failover",
5c1699e5
TL
12470 "conditional",
12471 "migrate"
5f26e15b
TL
12472 ],
12473 "type" : "string",
e9cd3bd4 12474 "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
12475 }
12476 },
12477 "optional" : 1,
12478 "type" : "string",
5c1699e5 12479 "typetext" : "shutdown_policy=<enum>"
5f26e15b 12480 },
44660702
DM
12481 "http_proxy" : {
12482 "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
12483 "optional" : 1,
12484 "pattern" : "http://.*",
12485 "type" : "string"
7aacca6f 12486 },
56122987 12487 "keyboard" : {
44660702 12488 "description" : "Default keybord layout for vnc server.",
56122987 12489 "enum" : [
44660702
DM
12490 "de",
12491 "de-ch",
7aacca6f 12492 "da",
56122987 12493 "en-gb",
44660702
DM
12494 "en-us",
12495 "es",
12496 "fi",
12497 "fr",
12498 "fr-be",
12499 "fr-ca",
12500 "fr-ch",
12501 "hu",
7aacca6f 12502 "is",
44660702
DM
12503 "it",
12504 "ja",
12505 "lt",
56122987 12506 "mk",
7aacca6f 12507 "nl",
56122987 12508 "no",
44660702 12509 "pl",
7aacca6f 12510 "pt",
44660702
DM
12511 "pt-br",
12512 "sv",
12513 "sl",
12514 "tr"
56122987 12515 ],
56122987
DM
12516 "optional" : 1,
12517 "type" : "string"
12518 },
44660702
DM
12519 "language" : {
12520 "description" : "Default GUI language.",
12521 "enum" : [
fa22697b 12522 "ar",
4d47f125 12523 "ca",
1c532546
TL
12524 "da",
12525 "de",
44660702 12526 "en",
1c532546 12527 "es",
4d47f125 12528 "eu",
1c532546 12529 "fa",
4d47f125 12530 "fr",
fa22697b 12531 "hr",
1c532546 12532 "he",
4d47f125 12533 "it",
4d47f125 12534 "ja",
fa22697b
TL
12535 "ka",
12536 "kr",
4d47f125 12537 "nb",
fa22697b 12538 "nl",
4d47f125 12539 "nn",
4d47f125
TL
12540 "pl",
12541 "pt_BR",
12542 "ru",
12543 "sl",
12544 "sv",
1c532546 12545 "tr",
fa22697b 12546 "ukr",
1c532546
TL
12547 "zh_CN",
12548 "zh_TW"
44660702 12549 ],
56122987 12550 "optional" : 1,
44660702 12551 "type" : "string"
56122987 12552 },
4bd7df8b 12553 "mac_prefix" : {
fa22697b
TL
12554 "default" : "BC:24:11",
12555 "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 12556 "format" : "mac-prefix",
4bd7df8b 12557 "optional" : 1,
95895385 12558 "type" : "string",
fa22697b
TL
12559 "typetext" : "<string>",
12560 "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 12561 },
44660702
DM
12562 "max_workers" : {
12563 "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
12564 "minimum" : 1,
56122987 12565 "optional" : 1,
4bd7df8b 12566 "type" : "integer",
013dc89f 12567 "typetext" : "<integer> (1 - N)"
56122987 12568 },
de0983cb
DM
12569 "migration" : {
12570 "description" : "For cluster wide migration settings.",
12571 "format" : {
12572 "network" : {
12573 "description" : "CIDR of the (sub) network that is used for migration.",
12574 "format" : "CIDR",
12575 "format_description" : "CIDR",
12576 "optional" : 1,
12577 "type" : "string"
12578 },
12579 "type" : {
12580 "default" : "secure",
12581 "default_key" : 1,
12582 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
12583 "enum" : [
12584 "secure",
12585 "insecure"
12586 ],
12587 "type" : "string"
12588 }
12589 },
12590 "optional" : 1,
12591 "type" : "string",
12592 "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
12593 },
7aacca6f 12594 "migration_unsecure" : {
de0983cb 12595 "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 12596 "optional" : 1,
013dc89f
DM
12597 "type" : "boolean",
12598 "typetext" : "<boolean>"
95895385 12599 },
7af2edf9
TL
12600 "next-id" : {
12601 "description" : "Control the range for the free VMID auto-selection pool.",
12602 "format" : {
12603 "lower" : {
12604 "default" : 100,
12605 "description" : "Lower, inclusive boundary for free next-id API range.",
12606 "max" : 999999999,
12607 "min" : 100,
12608 "optional" : 1,
12609 "type" : "integer"
12610 },
12611 "upper" : {
12612 "default" : 1000000,
460359c5 12613 "description" : "Upper, exclusive boundary for free next-id API range.",
de786b48 12614 "max" : 1000000000,
7af2edf9
TL
12615 "min" : 100,
12616 "optional" : 1,
12617 "type" : "integer"
12618 }
12619 },
12620 "optional" : 1,
12621 "type" : "string",
12622 "typetext" : "[lower=<integer>] [,upper=<integer>]"
12623 },
9d2e98ed
TL
12624 "notify" : {
12625 "description" : "Cluster-wide notification settings.",
12626 "format" : {
82551b2b
TL
12627 "fencing" : {
12628 "default" : "always",
12629 "description" : "Control if notifications about node fencing should be sent.",
12630 "enum" : [
12631 "always",
12632 "never"
12633 ],
12634 "optional" : 1,
12635 "type" : "string",
12636 "verbose_description" : "Control if notifications about node fencing should be sent.\n* 'always' always send out notifications\n* 'never' never send out notifications.\nFor production systems, turning off node fencing notifications is notrecommended!\n"
12637 },
9d2e98ed
TL
12638 "package-updates" : {
12639 "default" : "auto",
82551b2b 12640 "description" : "Control when the daily update job should send out notifications.",
9d2e98ed
TL
12641 "enum" : [
12642 "auto",
12643 "always",
12644 "never"
12645 ],
82551b2b
TL
12646 "optional" : 1,
12647 "type" : "string",
12648 "verbose_description" : "Control 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"
12649 },
12650 "replication" : {
12651 "default" : "always",
12652 "description" : "Control if notifications for replication failures should be sent.",
12653 "enum" : [
12654 "always",
12655 "never"
12656 ],
12657 "optional" : 1,
9d2e98ed 12658 "type" : "string",
82551b2b
TL
12659 "verbose_description" : "Control if notifications for replication failures should be sent.\n* 'always' always send out notifications\n* 'never' never send out notifications.\nFor production systems, turning off replication notifications is notrecommended!\n"
12660 },
12661 "target-fencing" : {
12662 "description" : "Control where notifications about fenced cluster nodes should be sent to.",
12663 "format_description" : "TARGET",
12664 "optional" : 1,
12665 "type" : "string",
12666 "verbose_description" : "Control where notifications about fenced cluster nodes should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-fencing' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint."
12667 },
12668 "target-package-updates" : {
12669 "description" : "Control where notifications about available updates should be sent to.",
12670 "format_description" : "TARGET",
12671 "optional" : 1,
12672 "type" : "string",
12673 "verbose_description" : "Control where notifications about available updates should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-package-updates' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint."
12674 },
12675 "target-replication" : {
12676 "description" : "Control where notifications for failed storage replication jobs should be sent to.",
12677 "format_description" : "TARGET",
12678 "optional" : 1,
12679 "type" : "string",
12680 "verbose_description" : "Control where notifications for failed storage replication jobs should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-replication' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint."
9d2e98ed
TL
12681 }
12682 },
12683 "optional" : 1,
12684 "type" : "string",
82551b2b 12685 "typetext" : "[fencing=<always|never>] [,package-updates=<auto|always|never>] [,replication=<always|never>] [,target-fencing=<TARGET>] [,target-package-updates=<TARGET>] [,target-replication=<TARGET>]"
9d2e98ed 12686 },
81a3384d
TL
12687 "registered-tags" : {
12688 "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`.",
12689 "optional" : 1,
12690 "pattern" : "(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*);)*(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)",
12691 "type" : "string",
12692 "typetext" : "<tag>[;<tag>...]"
12693 },
12694 "tag-style" : {
12695 "description" : "Tag style options.",
12696 "format" : {
e7e885f9
TL
12697 "case-sensitive" : {
12698 "default" : 0,
12699 "description" : "Controls if filtering for unique tags on update should check case-sensitive.",
12700 "optional" : 1,
12701 "type" : "boolean"
12702 },
81a3384d
TL
12703 "color-map" : {
12704 "description" : "Manual color mapping for tags (semicolon separated).",
12705 "optional" : 1,
12706 "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})?))*",
12707 "type" : "string",
12708 "typetext" : "<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]"
12709 },
12710 "ordering" : {
12711 "default" : "alphabetical",
e7e885f9 12712 "description" : "Controls the sorting of the tags in the web-interface and the API update.",
81a3384d
TL
12713 "enum" : [
12714 "config",
12715 "alphabetical"
12716 ],
12717 "optional" : 1,
12718 "type" : "string"
12719 },
12720 "shape" : {
12721 "default" : "circle",
12722 "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.",
12723 "enum" : [
12724 "full",
12725 "circle",
12726 "dense",
12727 "none"
12728 ],
12729 "optional" : 1,
12730 "type" : "string"
12731 }
12732 },
12733 "optional" : 1,
12734 "type" : "string",
e7e885f9 12735 "typetext" : "[case-sensitive=<1|0>] [,color-map=<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]] [,ordering=<config|alphabetical>] [,shape=<enum>]"
81a3384d 12736 },
95895385
TL
12737 "u2f" : {
12738 "description" : "u2f",
12739 "format" : {
12740 "appid" : {
12741 "description" : "U2F AppId URL override. Defaults to the origin.",
12742 "format_description" : "APPID",
12743 "optional" : 1,
12744 "type" : "string"
12745 },
12746 "origin" : {
12747 "description" : "U2F Origin override. Mostly useful for single nodes with a single URL.",
12748 "format_description" : "URL",
12749 "optional" : 1,
12750 "type" : "string"
12751 }
12752 },
12753 "optional" : 1,
12754 "type" : "string",
12755 "typetext" : "[appid=<APPID>] [,origin=<URL>]"
5370fa8c 12756 },
81a3384d
TL
12757 "user-tag-access" : {
12758 "description" : "Privilege options for user-settable tags",
12759 "format" : {
12760 "user-allow" : {
12761 "default" : "free",
12762 "description" : "Controls tag usage for users without `Sys.Modify` on `/` by either allowing `none`, a `list`, already `existing` or anything (`free`).",
12763 "enum" : [
12764 "none",
12765 "list",
12766 "existing",
12767 "free"
12768 ],
12769 "optional" : 1,
12770 "type" : "string",
fa22697b 12771 "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
12772 },
12773 "user-allow-list" : {
12774 "description" : "List of tags users are allowed to set and delete (semicolon separated) for 'user-allow' values 'list' and 'existing'.",
12775 "optional" : 1,
12776 "pattern" : "(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)(?:;(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*))*",
12777 "type" : "string",
12778 "typetext" : "<tag>[;<tag>...]"
12779 }
12780 },
12781 "optional" : 1,
12782 "type" : "string",
12783 "typetext" : "[user-allow=<enum>] [,user-allow-list=<tag>[;<tag>...]]"
12784 },
5370fa8c
TL
12785 "webauthn" : {
12786 "description" : "webauthn configuration",
12787 "format" : {
81a3384d
TL
12788 "allow-subdomains" : {
12789 "default" : 1,
12790 "description" : "Whether to allow the origin to be a subdomain, rather than the exact URL.",
12791 "optional" : 1,
12792 "type" : "boolean"
12793 },
5370fa8c 12794 "id" : {
81a3384d 12795 "description" : "Relying party ID. Must be the domain name without protocol, port or location. Changing this *will* break existing credentials.",
5370fa8c
TL
12796 "format_description" : "DOMAINNAME",
12797 "optional" : 1,
12798 "type" : "string"
12799 },
12800 "origin" : {
12801 "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.",
12802 "format_description" : "URL",
12803 "optional" : 1,
12804 "type" : "string"
12805 },
12806 "rp" : {
12807 "description" : "Relying party name. Any text identifier. Changing this *may* break existing credentials.",
12808 "format_description" : "RELYING_PARTY",
12809 "optional" : 1,
12810 "type" : "string"
12811 }
12812 },
12813 "optional" : 1,
12814 "type" : "string",
81a3384d 12815 "typetext" : "[allow-subdomains=<1|0>] [,id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>]"
56122987
DM
12816 }
12817 }
12818 },
44660702
DM
12819 "permissions" : {
12820 "check" : [
12821 "perm",
12822 "/",
12823 [
12824 "Sys.Modify"
12825 ]
12826 ]
12827 },
56122987 12828 "protected" : 1,
7aacca6f
DM
12829 "returns" : {
12830 "type" : "null"
44660702 12831 }
7aacca6f
DM
12832 }
12833 },
44660702
DM
12834 "leaf" : 1,
12835 "path" : "/cluster/options",
7aacca6f
DM
12836 "text" : "options"
12837 },
12838 {
7aacca6f 12839 "info" : {
56122987 12840 "GET" : {
e9cd3bd4 12841 "allowtoken" : 1,
1e3f8156 12842 "description" : "Get cluster status information.",
44660702
DM
12843 "method" : "GET",
12844 "name" : "get_status",
56122987
DM
12845 "parameters" : {
12846 "additionalProperties" : 0
12847 },
56122987
DM
12848 "permissions" : {
12849 "check" : [
12850 "perm",
12851 "/",
12852 [
12853 "Sys.Audit"
12854 ]
12855 ]
12856 },
7aacca6f 12857 "protected" : 1,
56122987 12858 "returns" : {
56122987 12859 "items" : {
56122987 12860 "properties" : {
e9cd3bd4
TL
12861 "id" : {
12862 "type" : "string"
12863 },
12864 "ip" : {
12865 "description" : "[node] IP of the resolved nodename.",
12866 "optional" : 1,
12867 "type" : "string"
12868 },
12869 "level" : {
12870 "description" : "[node] Proxmox VE Subscription level, indicates if eligible for enterprise support as well as access to the stable Proxmox VE Enterprise Repository.",
12871 "optional" : 1,
12872 "type" : "string"
12873 },
12874 "local" : {
12875 "description" : "[node] Indicates if this is the responding node.",
12876 "optional" : 1,
12877 "type" : "boolean"
12878 },
12879 "name" : {
12880 "type" : "string"
12881 },
12882 "nodeid" : {
12883 "description" : "[node] ID of the node from the corosync configuration.",
12884 "optional" : 1,
12885 "type" : "integer"
12886 },
12887 "nodes" : {
12888 "description" : "[cluster] Nodes count, including offline nodes.",
12889 "optional" : 1,
12890 "type" : "integer"
12891 },
12892 "online" : {
12893 "description" : "[node] Indicates if the node is online or offline.",
12894 "optional" : 1,
12895 "type" : "boolean"
12896 },
12897 "quorate" : {
12898 "description" : "[cluster] Indicates if there is a majority of nodes online to make decisions",
12899 "optional" : 1,
12900 "type" : "boolean"
12901 },
56122987 12902 "type" : {
e9cd3bd4
TL
12903 "description" : "Indicates the type, either cluster or node. The type defines the object properties e.g. quorate available for type cluster.",
12904 "enum" : [
12905 "cluster",
12906 "node"
12907 ],
56122987 12908 "type" : "string"
e9cd3bd4
TL
12909 },
12910 "version" : {
12911 "description" : "[cluster] Current version of the corosync configuration file.",
12912 "optional" : 1,
12913 "type" : "integer"
56122987 12914 }
44660702
DM
12915 },
12916 "type" : "object"
7aacca6f
DM
12917 },
12918 "type" : "array"
56122987
DM
12919 }
12920 }
12921 },
44660702 12922 "leaf" : 1,
7aacca6f 12923 "path" : "/cluster/status",
44660702 12924 "text" : "status"
56122987
DM
12925 },
12926 {
56122987
DM
12927 "info" : {
12928 "GET" : {
e9cd3bd4 12929 "allowtoken" : 1,
c30bb419 12930 "description" : "Get next free VMID. Pass a VMID to assert that its free (at time of check).",
44660702
DM
12931 "method" : "GET",
12932 "name" : "nextid",
56122987 12933 "parameters" : {
44660702 12934 "additionalProperties" : 0,
56122987
DM
12935 "properties" : {
12936 "vmid" : {
44660702 12937 "description" : "The (unique) ID of the VM.",
56122987 12938 "format" : "pve-vmid",
8dd66e12
TL
12939 "maximum" : 999999999,
12940 "minimum" : 100,
7aacca6f 12941 "optional" : 1,
4bd7df8b 12942 "type" : "integer",
8dd66e12 12943 "typetext" : "<integer> (100 - 999999999)"
56122987 12944 }
44660702 12945 }
56122987 12946 },
7aacca6f
DM
12947 "permissions" : {
12948 "user" : "all"
44660702
DM
12949 },
12950 "returns" : {
12951 "description" : "The next free VMID.",
12952 "type" : "integer"
7aacca6f 12953 }
56122987
DM
12954 }
12955 },
7aacca6f 12956 "leaf" : 1,
44660702
DM
12957 "path" : "/cluster/nextid",
12958 "text" : "nextid"
56122987
DM
12959 }
12960 ],
44660702
DM
12961 "info" : {
12962 "GET" : {
e9cd3bd4 12963 "allowtoken" : 1,
44660702
DM
12964 "description" : "Cluster index.",
12965 "method" : "GET",
12966 "name" : "index",
12967 "parameters" : {
12968 "additionalProperties" : 0
12969 },
12970 "permissions" : {
12971 "user" : "all"
12972 },
12973 "returns" : {
12974 "items" : {
12975 "properties" : {},
12976 "type" : "object"
12977 },
12978 "links" : [
12979 {
12980 "href" : "{name}",
12981 "rel" : "child"
12982 }
12983 ],
12984 "type" : "array"
12985 }
12986 }
12987 },
12988 "leaf" : 0,
12989 "path" : "/cluster",
7aacca6f 12990 "text" : "cluster"
56122987
DM
12991 },
12992 {
56122987
DM
12993 "children" : [
12994 {
7aacca6f
DM
12995 "children" : [
12996 {
12997 "children" : [
12998 {
56122987
DM
12999 "children" : [
13000 {
56122987
DM
13001 "children" : [
13002 {
13003 "children" : [
13004 {
56122987
DM
13005 "info" : {
13006 "DELETE" : {
e9cd3bd4 13007 "allowtoken" : 1,
44660702 13008 "description" : "Delete rule.",
7aacca6f 13009 "method" : "DELETE",
44660702 13010 "name" : "delete_rule",
56122987 13011 "parameters" : {
44660702 13012 "additionalProperties" : 0,
56122987 13013 "properties" : {
44660702 13014 "digest" : {
82551b2b
TL
13015 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13016 "maxLength" : 64,
44660702 13017 "optional" : 1,
013dc89f
DM
13018 "type" : "string",
13019 "typetext" : "<string>"
44660702 13020 },
56122987 13021 "node" : {
7aacca6f 13022 "description" : "The cluster node name.",
44660702 13023 "format" : "pve-node",
013dc89f
DM
13024 "type" : "string",
13025 "typetext" : "<string>"
7aacca6f 13026 },
56122987 13027 "pos" : {
7aacca6f 13028 "description" : "Update rule at position <pos>.",
44660702 13029 "minimum" : 0,
56122987 13030 "optional" : 1,
4bd7df8b 13031 "type" : "integer",
013dc89f 13032 "typetext" : "<integer> (0 - N)"
44660702
DM
13033 },
13034 "vmid" : {
13035 "description" : "The (unique) ID of the VM.",
13036 "format" : "pve-vmid",
8dd66e12
TL
13037 "maximum" : 999999999,
13038 "minimum" : 100,
4bd7df8b 13039 "type" : "integer",
8dd66e12 13040 "typetext" : "<integer> (100 - 999999999)"
56122987 13041 }
44660702 13042 }
7aacca6f 13043 },
56122987
DM
13044 "permissions" : {
13045 "check" : [
13046 "perm",
13047 "/vms/{vmid}",
13048 [
13049 "VM.Config.Network"
13050 ]
13051 ]
13052 },
44660702
DM
13053 "protected" : 1,
13054 "proxyto" : null,
56122987
DM
13055 "returns" : {
13056 "type" : "null"
44660702
DM
13057 }
13058 },
13059 "GET" : {
e9cd3bd4 13060 "allowtoken" : 1,
44660702
DM
13061 "description" : "Get single rule data.",
13062 "method" : "GET",
13063 "name" : "get_rule",
13064 "parameters" : {
13065 "additionalProperties" : 0,
13066 "properties" : {
13067 "node" : {
13068 "description" : "The cluster node name.",
13069 "format" : "pve-node",
013dc89f
DM
13070 "type" : "string",
13071 "typetext" : "<string>"
44660702
DM
13072 },
13073 "pos" : {
13074 "description" : "Update rule at position <pos>.",
13075 "minimum" : 0,
13076 "optional" : 1,
4bd7df8b 13077 "type" : "integer",
013dc89f 13078 "typetext" : "<integer> (0 - N)"
44660702
DM
13079 },
13080 "vmid" : {
13081 "description" : "The (unique) ID of the VM.",
13082 "format" : "pve-vmid",
8dd66e12
TL
13083 "maximum" : 999999999,
13084 "minimum" : 100,
4bd7df8b 13085 "type" : "integer",
8dd66e12 13086 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
13087 }
13088 }
56122987 13089 },
56122987
DM
13090 "permissions" : {
13091 "check" : [
13092 "perm",
13093 "/vms/{vmid}",
13094 [
44660702 13095 "VM.Audit"
56122987
DM
13096 ]
13097 ]
13098 },
56122987 13099 "proxyto" : null,
44660702
DM
13100 "returns" : {
13101 "properties" : {
e2d681b3
TL
13102 "action" : {
13103 "type" : "string"
13104 },
13105 "comment" : {
13106 "optional" : 1,
13107 "type" : "string"
13108 },
13109 "dest" : {
13110 "optional" : 1,
13111 "type" : "string"
13112 },
13113 "dport" : {
13114 "optional" : 1,
13115 "type" : "string"
13116 },
13117 "enable" : {
13118 "optional" : 1,
13119 "type" : "integer"
13120 },
4772952b
TL
13121 "icmp-type" : {
13122 "optional" : 1,
13123 "type" : "string"
13124 },
e2d681b3
TL
13125 "iface" : {
13126 "optional" : 1,
13127 "type" : "string"
13128 },
13129 "ipversion" : {
13130 "optional" : 1,
13131 "type" : "integer"
13132 },
95895385
TL
13133 "log" : {
13134 "description" : "Log level for firewall rule",
13135 "enum" : [
13136 "emerg",
13137 "alert",
13138 "crit",
13139 "err",
13140 "warning",
13141 "notice",
13142 "info",
13143 "debug",
13144 "nolog"
13145 ],
13146 "optional" : 1,
13147 "type" : "string"
13148 },
e2d681b3
TL
13149 "macro" : {
13150 "optional" : 1,
5f26e15b 13151 "type" : "string"
e2d681b3 13152 },
44660702
DM
13153 "pos" : {
13154 "type" : "integer"
e2d681b3
TL
13155 },
13156 "proto" : {
13157 "optional" : 1,
13158 "type" : "string"
13159 },
13160 "source" : {
13161 "optional" : 1,
13162 "type" : "string"
13163 },
13164 "sport" : {
13165 "optional" : 1,
13166 "type" : "string"
13167 },
13168 "type" : {
13169 "type" : "string"
44660702
DM
13170 }
13171 },
13172 "type" : "object"
13173 }
13174 },
13175 "PUT" : {
e9cd3bd4 13176 "allowtoken" : 1,
7aacca6f
DM
13177 "description" : "Modify rule data.",
13178 "method" : "PUT",
44660702 13179 "name" : "update_rule",
56122987 13180 "parameters" : {
44660702 13181 "additionalProperties" : 0,
56122987 13182 "properties" : {
44660702
DM
13183 "action" : {
13184 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
13185 "maxLength" : 20,
13186 "minLength" : 2,
56122987 13187 "optional" : 1,
44660702 13188 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
13189 "type" : "string"
13190 },
7aacca6f 13191 "comment" : {
e94f0d56 13192 "description" : "Descriptive comment.",
7aacca6f 13193 "optional" : 1,
013dc89f
DM
13194 "type" : "string",
13195 "typetext" : "<string>"
7aacca6f
DM
13196 },
13197 "delete" : {
7aacca6f 13198 "description" : "A list of settings you want to delete.",
44660702
DM
13199 "format" : "pve-configid-list",
13200 "optional" : 1,
013dc89f
DM
13201 "type" : "string",
13202 "typetext" : "<string>"
7aacca6f
DM
13203 },
13204 "dest" : {
44660702 13205 "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 13206 "format" : "pve-fw-addr-spec",
0695fdaf 13207 "maxLength" : 512,
56122987 13208 "optional" : 1,
013dc89f
DM
13209 "type" : "string",
13210 "typetext" : "<string>"
56122987 13211 },
7aacca6f 13212 "digest" : {
82551b2b
TL
13213 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13214 "maxLength" : 64,
56122987 13215 "optional" : 1,
013dc89f
DM
13216 "type" : "string",
13217 "typetext" : "<string>"
44660702
DM
13218 },
13219 "dport" : {
13220 "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.",
13221 "format" : "pve-fw-dport-spec",
13222 "optional" : 1,
013dc89f
DM
13223 "type" : "string",
13224 "typetext" : "<string>"
56122987 13225 },
7aacca6f 13226 "enable" : {
e94f0d56 13227 "description" : "Flag to enable/disable a rule.",
44660702 13228 "minimum" : 0,
56122987 13229 "optional" : 1,
4bd7df8b 13230 "type" : "integer",
013dc89f 13231 "typetext" : "<integer> (0 - N)"
7aacca6f 13232 },
4772952b 13233 "icmp-type" : {
287a95cf 13234 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
13235 "format" : "pve-fw-icmp-type-spec",
13236 "optional" : 1,
13237 "type" : "string",
13238 "typetext" : "<string>"
13239 },
44660702
DM
13240 "iface" : {
13241 "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.",
13242 "format" : "pve-iface",
13243 "maxLength" : 20,
7aacca6f 13244 "minLength" : 2,
56122987 13245 "optional" : 1,
013dc89f
DM
13246 "type" : "string",
13247 "typetext" : "<string>"
56122987 13248 },
95895385
TL
13249 "log" : {
13250 "description" : "Log level for firewall rule.",
13251 "enum" : [
13252 "emerg",
13253 "alert",
13254 "crit",
13255 "err",
13256 "warning",
13257 "notice",
13258 "info",
13259 "debug",
13260 "nolog"
13261 ],
13262 "optional" : 1,
13263 "type" : "string"
13264 },
44660702 13265 "macro" : {
e94f0d56 13266 "description" : "Use predefined standard macro.",
44660702 13267 "maxLength" : 128,
56122987 13268 "optional" : 1,
013dc89f
DM
13269 "type" : "string",
13270 "typetext" : "<string>"
56122987 13271 },
44660702
DM
13272 "moveto" : {
13273 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
13274 "minimum" : 0,
56122987 13275 "optional" : 1,
4bd7df8b 13276 "type" : "integer",
013dc89f 13277 "typetext" : "<integer> (0 - N)"
56122987 13278 },
44660702
DM
13279 "node" : {
13280 "description" : "The cluster node name.",
13281 "format" : "pve-node",
013dc89f
DM
13282 "type" : "string",
13283 "typetext" : "<string>"
44660702
DM
13284 },
13285 "pos" : {
13286 "description" : "Update rule at position <pos>.",
13287 "minimum" : 0,
13288 "optional" : 1,
4bd7df8b 13289 "type" : "integer",
013dc89f 13290 "typetext" : "<integer> (0 - N)"
56122987 13291 },
44660702
DM
13292 "proto" : {
13293 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
13294 "format" : "pve-fw-protocol-spec",
13295 "optional" : 1,
013dc89f
DM
13296 "type" : "string",
13297 "typetext" : "<string>"
7aacca6f 13298 },
44660702
DM
13299 "source" : {
13300 "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.",
13301 "format" : "pve-fw-addr-spec",
0695fdaf 13302 "maxLength" : 512,
56122987 13303 "optional" : 1,
013dc89f
DM
13304 "type" : "string",
13305 "typetext" : "<string>"
56122987
DM
13306 },
13307 "sport" : {
13308 "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
13309 "format" : "pve-fw-sport-spec",
13310 "optional" : 1,
013dc89f
DM
13311 "type" : "string",
13312 "typetext" : "<string>"
44660702
DM
13313 },
13314 "type" : {
e94f0d56 13315 "description" : "Rule type.",
44660702
DM
13316 "enum" : [
13317 "in",
13318 "out",
13319 "group"
13320 ],
56122987 13321 "optional" : 1,
56122987 13322 "type" : "string"
44660702
DM
13323 },
13324 "vmid" : {
13325 "description" : "The (unique) ID of the VM.",
13326 "format" : "pve-vmid",
8dd66e12
TL
13327 "maximum" : 999999999,
13328 "minimum" : 100,
4bd7df8b 13329 "type" : "integer",
8dd66e12 13330 "typetext" : "<integer> (100 - 999999999)"
56122987 13331 }
44660702 13332 }
56122987 13333 },
56122987
DM
13334 "permissions" : {
13335 "check" : [
13336 "perm",
13337 "/vms/{vmid}",
13338 [
44660702 13339 "VM.Config.Network"
56122987
DM
13340 ]
13341 ]
7aacca6f 13342 },
44660702 13343 "protected" : 1,
7aacca6f 13344 "proxyto" : null,
7aacca6f 13345 "returns" : {
44660702
DM
13346 "type" : "null"
13347 }
56122987 13348 }
7aacca6f 13349 },
44660702 13350 "leaf" : 1,
7aacca6f 13351 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
44660702 13352 "text" : "{pos}"
56122987
DM
13353 }
13354 ],
56122987 13355 "info" : {
44660702 13356 "GET" : {
e9cd3bd4 13357 "allowtoken" : 1,
44660702
DM
13358 "description" : "List rules.",
13359 "method" : "GET",
13360 "name" : "get_rules",
13361 "parameters" : {
13362 "additionalProperties" : 0,
13363 "properties" : {
13364 "node" : {
13365 "description" : "The cluster node name.",
13366 "format" : "pve-node",
013dc89f
DM
13367 "type" : "string",
13368 "typetext" : "<string>"
44660702
DM
13369 },
13370 "vmid" : {
13371 "description" : "The (unique) ID of the VM.",
13372 "format" : "pve-vmid",
8dd66e12
TL
13373 "maximum" : 999999999,
13374 "minimum" : 100,
4bd7df8b 13375 "type" : "integer",
8dd66e12 13376 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
13377 }
13378 }
56122987 13379 },
56122987
DM
13380 "permissions" : {
13381 "check" : [
13382 "perm",
13383 "/vms/{vmid}",
13384 [
44660702 13385 "VM.Audit"
56122987
DM
13386 ]
13387 ]
7aacca6f 13388 },
44660702
DM
13389 "proxyto" : null,
13390 "returns" : {
13391 "items" : {
13392 "properties" : {
13393 "pos" : {
13394 "type" : "integer"
13395 }
13396 },
13397 "type" : "object"
13398 },
13399 "links" : [
13400 {
13401 "href" : "{pos}",
13402 "rel" : "child"
13403 }
13404 ],
13405 "type" : "array"
13406 }
13407 },
13408 "POST" : {
e9cd3bd4 13409 "allowtoken" : 1,
44660702 13410 "description" : "Create new rule.",
7aacca6f 13411 "method" : "POST",
44660702 13412 "name" : "create_rule",
56122987 13413 "parameters" : {
44660702 13414 "additionalProperties" : 0,
56122987 13415 "properties" : {
44660702
DM
13416 "action" : {
13417 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
13418 "maxLength" : 20,
13419 "minLength" : 2,
13420 "optional" : 0,
13421 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13422 "type" : "string"
56122987 13423 },
44660702 13424 "comment" : {
e94f0d56 13425 "description" : "Descriptive comment.",
56122987 13426 "optional" : 1,
013dc89f
DM
13427 "type" : "string",
13428 "typetext" : "<string>"
56122987 13429 },
44660702
DM
13430 "dest" : {
13431 "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.",
13432 "format" : "pve-fw-addr-spec",
0695fdaf 13433 "maxLength" : 512,
44660702 13434 "optional" : 1,
013dc89f
DM
13435 "type" : "string",
13436 "typetext" : "<string>"
56122987 13437 },
44660702 13438 "digest" : {
82551b2b
TL
13439 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13440 "maxLength" : 64,
56122987 13441 "optional" : 1,
013dc89f
DM
13442 "type" : "string",
13443 "typetext" : "<string>"
56122987 13444 },
7aacca6f
DM
13445 "dport" : {
13446 "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 13447 "format" : "pve-fw-dport-spec",
7aacca6f 13448 "optional" : 1,
013dc89f
DM
13449 "type" : "string",
13450 "typetext" : "<string>"
56122987
DM
13451 },
13452 "enable" : {
e94f0d56 13453 "description" : "Flag to enable/disable a rule.",
56122987 13454 "minimum" : 0,
44660702 13455 "optional" : 1,
4bd7df8b 13456 "type" : "integer",
013dc89f 13457 "typetext" : "<integer> (0 - N)"
56122987 13458 },
4772952b 13459 "icmp-type" : {
287a95cf 13460 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
13461 "format" : "pve-fw-icmp-type-spec",
13462 "optional" : 1,
13463 "type" : "string",
13464 "typetext" : "<string>"
13465 },
44660702
DM
13466 "iface" : {
13467 "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.",
13468 "format" : "pve-iface",
13469 "maxLength" : 20,
7aacca6f 13470 "minLength" : 2,
44660702 13471 "optional" : 1,
013dc89f
DM
13472 "type" : "string",
13473 "typetext" : "<string>"
56122987 13474 },
95895385
TL
13475 "log" : {
13476 "description" : "Log level for firewall rule.",
13477 "enum" : [
13478 "emerg",
13479 "alert",
13480 "crit",
13481 "err",
13482 "warning",
13483 "notice",
13484 "info",
13485 "debug",
13486 "nolog"
13487 ],
13488 "optional" : 1,
13489 "type" : "string"
13490 },
44660702 13491 "macro" : {
e94f0d56 13492 "description" : "Use predefined standard macro.",
44660702 13493 "maxLength" : 128,
56122987 13494 "optional" : 1,
013dc89f
DM
13495 "type" : "string",
13496 "typetext" : "<string>"
7aacca6f 13497 },
44660702
DM
13498 "node" : {
13499 "description" : "The cluster node name.",
13500 "format" : "pve-node",
013dc89f
DM
13501 "type" : "string",
13502 "typetext" : "<string>"
44660702
DM
13503 },
13504 "pos" : {
13505 "description" : "Update rule at position <pos>.",
13506 "minimum" : 0,
13507 "optional" : 1,
4bd7df8b 13508 "type" : "integer",
013dc89f 13509 "typetext" : "<integer> (0 - N)"
44660702
DM
13510 },
13511 "proto" : {
13512 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
13513 "format" : "pve-fw-protocol-spec",
7aacca6f 13514 "optional" : 1,
013dc89f
DM
13515 "type" : "string",
13516 "typetext" : "<string>"
7aacca6f
DM
13517 },
13518 "source" : {
13519 "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 13520 "format" : "pve-fw-addr-spec",
0695fdaf 13521 "maxLength" : 512,
7aacca6f 13522 "optional" : 1,
013dc89f
DM
13523 "type" : "string",
13524 "typetext" : "<string>"
7aacca6f 13525 },
44660702
DM
13526 "sport" : {
13527 "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.",
13528 "format" : "pve-fw-sport-spec",
7aacca6f 13529 "optional" : 1,
013dc89f
DM
13530 "type" : "string",
13531 "typetext" : "<string>"
7aacca6f 13532 },
44660702 13533 "type" : {
e94f0d56 13534 "description" : "Rule type.",
44660702
DM
13535 "enum" : [
13536 "in",
13537 "out",
13538 "group"
13539 ],
13540 "optional" : 0,
13541 "type" : "string"
7aacca6f 13542 },
7aacca6f 13543 "vmid" : {
44660702 13544 "description" : "The (unique) ID of the VM.",
7aacca6f 13545 "format" : "pve-vmid",
8dd66e12
TL
13546 "maximum" : 999999999,
13547 "minimum" : 100,
4bd7df8b 13548 "type" : "integer",
8dd66e12 13549 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
13550 }
13551 }
13552 },
56122987
DM
13553 "permissions" : {
13554 "check" : [
13555 "perm",
13556 "/vms/{vmid}",
13557 [
44660702 13558 "VM.Config.Network"
56122987
DM
13559 ]
13560 ]
13561 },
44660702
DM
13562 "protected" : 1,
13563 "proxyto" : null,
56122987 13564 "returns" : {
44660702
DM
13565 "type" : "null"
13566 }
56122987
DM
13567 }
13568 },
44660702 13569 "leaf" : 0,
7aacca6f 13570 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
44660702 13571 "text" : "rules"
56122987
DM
13572 },
13573 {
13574 "children" : [
13575 {
56122987 13576 "info" : {
44660702 13577 "DELETE" : {
e9cd3bd4 13578 "allowtoken" : 1,
44660702
DM
13579 "description" : "Remove IP or Network alias.",
13580 "method" : "DELETE",
13581 "name" : "remove_alias",
56122987 13582 "parameters" : {
44660702 13583 "additionalProperties" : 0,
56122987 13584 "properties" : {
44660702 13585 "digest" : {
82551b2b
TL
13586 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13587 "maxLength" : 64,
44660702 13588 "optional" : 1,
013dc89f
DM
13589 "type" : "string",
13590 "typetext" : "<string>"
56122987
DM
13591 },
13592 "name" : {
56122987 13593 "description" : "Alias name.",
44660702 13594 "maxLength" : 64,
7aacca6f 13595 "minLength" : 2,
44660702 13596 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987
DM
13597 "type" : "string"
13598 },
7aacca6f 13599 "node" : {
44660702 13600 "description" : "The cluster node name.",
7aacca6f 13601 "format" : "pve-node",
013dc89f
DM
13602 "type" : "string",
13603 "typetext" : "<string>"
44660702
DM
13604 },
13605 "vmid" : {
13606 "description" : "The (unique) ID of the VM.",
13607 "format" : "pve-vmid",
8dd66e12
TL
13608 "maximum" : 999999999,
13609 "minimum" : 100,
4bd7df8b 13610 "type" : "integer",
8dd66e12 13611 "typetext" : "<integer> (100 - 999999999)"
56122987 13612 }
44660702 13613 }
56122987 13614 },
7aacca6f
DM
13615 "permissions" : {
13616 "check" : [
13617 "perm",
13618 "/vms/{vmid}",
13619 [
13620 "VM.Config.Network"
13621 ]
13622 ]
56122987 13623 },
44660702
DM
13624 "protected" : 1,
13625 "returns" : {
13626 "type" : "null"
13627 }
13628 },
13629 "GET" : {
e9cd3bd4 13630 "allowtoken" : 1,
44660702
DM
13631 "description" : "Read alias.",
13632 "method" : "GET",
13633 "name" : "read_alias",
56122987 13634 "parameters" : {
44660702 13635 "additionalProperties" : 0,
56122987 13636 "properties" : {
56122987 13637 "name" : {
7aacca6f 13638 "description" : "Alias name.",
44660702 13639 "maxLength" : 64,
56122987 13640 "minLength" : 2,
44660702 13641 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 13642 "type" : "string"
7aacca6f
DM
13643 },
13644 "node" : {
13645 "description" : "The cluster node name.",
44660702 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 },
44660702
DM
13660 "permissions" : {
13661 "check" : [
13662 "perm",
13663 "/vms/{vmid}",
13664 [
13665 "VM.Audit"
13666 ]
13667 ]
56122987 13668 },
44660702
DM
13669 "returns" : {
13670 "type" : "object"
13671 }
7aacca6f 13672 },
44660702 13673 "PUT" : {
e9cd3bd4 13674 "allowtoken" : 1,
44660702
DM
13675 "description" : "Update IP or Network alias.",
13676 "method" : "PUT",
13677 "name" : "update_alias",
56122987
DM
13678 "parameters" : {
13679 "additionalProperties" : 0,
13680 "properties" : {
44660702
DM
13681 "cidr" : {
13682 "description" : "Network/IP specification in CIDR format.",
13683 "format" : "IPorCIDR",
013dc89f
DM
13684 "type" : "string",
13685 "typetext" : "<string>"
44660702
DM
13686 },
13687 "comment" : {
13688 "optional" : 1,
013dc89f
DM
13689 "type" : "string",
13690 "typetext" : "<string>"
56122987
DM
13691 },
13692 "digest" : {
82551b2b
TL
13693 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13694 "maxLength" : 64,
56122987 13695 "optional" : 1,
013dc89f
DM
13696 "type" : "string",
13697 "typetext" : "<string>"
56122987 13698 },
7aacca6f 13699 "name" : {
44660702 13700 "description" : "Alias name.",
56122987
DM
13701 "maxLength" : 64,
13702 "minLength" : 2,
13703 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 13704 "type" : "string"
7aacca6f
DM
13705 },
13706 "node" : {
7aacca6f 13707 "description" : "The cluster node name.",
44660702 13708 "format" : "pve-node",
013dc89f
DM
13709 "type" : "string",
13710 "typetext" : "<string>"
44660702
DM
13711 },
13712 "rename" : {
13713 "description" : "Rename an existing alias.",
13714 "maxLength" : 64,
13715 "minLength" : 2,
13716 "optional" : 1,
13717 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13718 "type" : "string"
13719 },
13720 "vmid" : {
13721 "description" : "The (unique) ID of the VM.",
13722 "format" : "pve-vmid",
8dd66e12
TL
13723 "maximum" : 999999999,
13724 "minimum" : 100,
4bd7df8b 13725 "type" : "integer",
8dd66e12 13726 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
13727 }
13728 }
13729 },
7aacca6f
DM
13730 "permissions" : {
13731 "check" : [
13732 "perm",
13733 "/vms/{vmid}",
13734 [
13735 "VM.Config.Network"
13736 ]
13737 ]
13738 },
13739 "protected" : 1,
7aacca6f
DM
13740 "returns" : {
13741 "type" : "null"
44660702 13742 }
56122987
DM
13743 }
13744 },
44660702 13745 "leaf" : 1,
7aacca6f 13746 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
44660702 13747 "text" : "{name}"
56122987
DM
13748 }
13749 ],
13750 "info" : {
44660702 13751 "GET" : {
e9cd3bd4 13752 "allowtoken" : 1,
44660702
DM
13753 "description" : "List aliases",
13754 "method" : "GET",
13755 "name" : "get_aliases",
56122987 13756 "parameters" : {
44660702 13757 "additionalProperties" : 0,
56122987 13758 "properties" : {
7aacca6f 13759 "node" : {
7aacca6f 13760 "description" : "The cluster node name.",
44660702 13761 "format" : "pve-node",
013dc89f
DM
13762 "type" : "string",
13763 "typetext" : "<string>"
56122987 13764 },
44660702
DM
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 13772 }
44660702 13773 }
56122987 13774 },
56122987
DM
13775 "permissions" : {
13776 "check" : [
13777 "perm",
13778 "/vms/{vmid}",
13779 [
44660702 13780 "VM.Audit"
56122987
DM
13781 ]
13782 ]
13783 },
56122987
DM
13784 "returns" : {
13785 "items" : {
13786 "properties" : {
44660702 13787 "cidr" : {
56122987
DM
13788 "type" : "string"
13789 },
44660702
DM
13790 "comment" : {
13791 "optional" : 1,
7aacca6f 13792 "type" : "string"
56122987
DM
13793 },
13794 "digest" : {
82551b2b
TL
13795 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13796 "maxLength" : 64,
56122987
DM
13797 "optional" : 0,
13798 "type" : "string"
13799 },
44660702 13800 "name" : {
56122987
DM
13801 "type" : "string"
13802 }
44660702
DM
13803 },
13804 "type" : "object"
56122987 13805 },
56122987
DM
13806 "links" : [
13807 {
13808 "href" : "{name}",
13809 "rel" : "child"
13810 }
44660702
DM
13811 ],
13812 "type" : "array"
13813 }
13814 },
13815 "POST" : {
e9cd3bd4 13816 "allowtoken" : 1,
44660702
DM
13817 "description" : "Create IP or Network Alias.",
13818 "method" : "POST",
13819 "name" : "create_alias",
56122987 13820 "parameters" : {
7aacca6f 13821 "additionalProperties" : 0,
56122987 13822 "properties" : {
44660702
DM
13823 "cidr" : {
13824 "description" : "Network/IP specification in CIDR format.",
13825 "format" : "IPorCIDR",
013dc89f
DM
13826 "type" : "string",
13827 "typetext" : "<string>"
44660702
DM
13828 },
13829 "comment" : {
13830 "optional" : 1,
013dc89f
DM
13831 "type" : "string",
13832 "typetext" : "<string>"
44660702
DM
13833 },
13834 "name" : {
13835 "description" : "Alias name.",
13836 "maxLength" : 64,
13837 "minLength" : 2,
13838 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13839 "type" : "string"
56122987
DM
13840 },
13841 "node" : {
7aacca6f 13842 "description" : "The cluster node name.",
44660702 13843 "format" : "pve-node",
013dc89f
DM
13844 "type" : "string",
13845 "typetext" : "<string>"
44660702
DM
13846 },
13847 "vmid" : {
13848 "description" : "The (unique) ID of the VM.",
13849 "format" : "pve-vmid",
8dd66e12
TL
13850 "maximum" : 999999999,
13851 "minimum" : 100,
4bd7df8b 13852 "type" : "integer",
8dd66e12 13853 "typetext" : "<integer> (100 - 999999999)"
56122987 13854 }
7aacca6f 13855 }
56122987 13856 },
44660702
DM
13857 "permissions" : {
13858 "check" : [
13859 "perm",
13860 "/vms/{vmid}",
13861 [
13862 "VM.Config.Network"
13863 ]
13864 ]
13865 },
13866 "protected" : 1,
13867 "returns" : {
13868 "type" : "null"
13869 }
56122987 13870 }
44660702
DM
13871 },
13872 "leaf" : 0,
13873 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
13874 "text" : "aliases"
56122987
DM
13875 },
13876 {
56122987
DM
13877 "children" : [
13878 {
7aacca6f
DM
13879 "children" : [
13880 {
13881 "info" : {
13882 "DELETE" : {
e9cd3bd4 13883 "allowtoken" : 1,
44660702 13884 "description" : "Remove IP or Network from IPSet.",
7aacca6f 13885 "method" : "DELETE",
44660702 13886 "name" : "remove_ip",
7aacca6f 13887 "parameters" : {
44660702 13888 "additionalProperties" : 0,
7aacca6f 13889 "properties" : {
44660702
DM
13890 "cidr" : {
13891 "description" : "Network/IP specification in CIDR format.",
13892 "format" : "IPorCIDRorAlias",
013dc89f
DM
13893 "type" : "string",
13894 "typetext" : "<string>"
44660702
DM
13895 },
13896 "digest" : {
82551b2b
TL
13897 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13898 "maxLength" : 64,
44660702 13899 "optional" : 1,
013dc89f
DM
13900 "type" : "string",
13901 "typetext" : "<string>"
44660702 13902 },
7aacca6f 13903 "name" : {
7aacca6f 13904 "description" : "IP set name.",
44660702
DM
13905 "maxLength" : 64,
13906 "minLength" : 2,
7aacca6f 13907 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 13908 "type" : "string"
7aacca6f
DM
13909 },
13910 "node" : {
13911 "description" : "The cluster node name.",
44660702 13912 "format" : "pve-node",
013dc89f
DM
13913 "type" : "string",
13914 "typetext" : "<string>"
7aacca6f
DM
13915 },
13916 "vmid" : {
44660702 13917 "description" : "The (unique) ID of the VM.",
7aacca6f 13918 "format" : "pve-vmid",
8dd66e12
TL
13919 "maximum" : 999999999,
13920 "minimum" : 100,
4bd7df8b 13921 "type" : "integer",
8dd66e12 13922 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 13923 }
44660702 13924 }
7aacca6f 13925 },
7aacca6f
DM
13926 "permissions" : {
13927 "check" : [
13928 "perm",
13929 "/vms/{vmid}",
13930 [
13931 "VM.Config.Network"
13932 ]
13933 ]
13934 },
13935 "protected" : 1,
44660702
DM
13936 "returns" : {
13937 "type" : "null"
13938 }
56122987 13939 },
44660702 13940 "GET" : {
e9cd3bd4 13941 "allowtoken" : 1,
44660702
DM
13942 "description" : "Read IP or Network settings from IPSet.",
13943 "method" : "GET",
13944 "name" : "read_ip",
7aacca6f 13945 "parameters" : {
44660702 13946 "additionalProperties" : 0,
7aacca6f 13947 "properties" : {
7aacca6f 13948 "cidr" : {
44660702 13949 "description" : "Network/IP specification in CIDR format.",
7aacca6f 13950 "format" : "IPorCIDRorAlias",
013dc89f
DM
13951 "type" : "string",
13952 "typetext" : "<string>"
7aacca6f
DM
13953 },
13954 "name" : {
7aacca6f 13955 "description" : "IP set name.",
44660702 13956 "maxLength" : 64,
7aacca6f 13957 "minLength" : 2,
44660702
DM
13958 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13959 "type" : "string"
7aacca6f 13960 },
44660702
DM
13961 "node" : {
13962 "description" : "The cluster node name.",
13963 "format" : "pve-node",
013dc89f
DM
13964 "type" : "string",
13965 "typetext" : "<string>"
7aacca6f 13966 },
44660702
DM
13967 "vmid" : {
13968 "description" : "The (unique) ID of the VM.",
13969 "format" : "pve-vmid",
8dd66e12
TL
13970 "maximum" : 999999999,
13971 "minimum" : 100,
4bd7df8b 13972 "type" : "integer",
8dd66e12 13973 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 13974 }
44660702 13975 }
7aacca6f 13976 },
44660702
DM
13977 "permissions" : {
13978 "check" : [
13979 "perm",
13980 "/vms/{vmid}",
13981 [
13982 "VM.Audit"
13983 ]
13984 ]
13985 },
13986 "protected" : 1,
7aacca6f 13987 "returns" : {
44660702 13988 "type" : "object"
7aacca6f 13989 }
56122987 13990 },
44660702 13991 "PUT" : {
e9cd3bd4 13992 "allowtoken" : 1,
44660702
DM
13993 "description" : "Update IP or Network settings",
13994 "method" : "PUT",
13995 "name" : "update_ip",
7aacca6f
DM
13996 "parameters" : {
13997 "additionalProperties" : 0,
13998 "properties" : {
44660702
DM
13999 "cidr" : {
14000 "description" : "Network/IP specification in CIDR format.",
14001 "format" : "IPorCIDRorAlias",
013dc89f
DM
14002 "type" : "string",
14003 "typetext" : "<string>"
44660702
DM
14004 },
14005 "comment" : {
14006 "optional" : 1,
013dc89f
DM
14007 "type" : "string",
14008 "typetext" : "<string>"
44660702
DM
14009 },
14010 "digest" : {
82551b2b
TL
14011 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
14012 "maxLength" : 64,
44660702 14013 "optional" : 1,
013dc89f
DM
14014 "type" : "string",
14015 "typetext" : "<string>"
44660702 14016 },
7aacca6f 14017 "name" : {
7aacca6f 14018 "description" : "IP set name.",
44660702 14019 "maxLength" : 64,
7aacca6f 14020 "minLength" : 2,
44660702
DM
14021 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14022 "type" : "string"
7aacca6f
DM
14023 },
14024 "node" : {
7aacca6f 14025 "description" : "The cluster node name.",
44660702 14026 "format" : "pve-node",
013dc89f
DM
14027 "type" : "string",
14028 "typetext" : "<string>"
7aacca6f 14029 },
44660702
DM
14030 "nomatch" : {
14031 "optional" : 1,
013dc89f
DM
14032 "type" : "boolean",
14033 "typetext" : "<boolean>"
7aacca6f
DM
14034 },
14035 "vmid" : {
14036 "description" : "The (unique) ID of the VM.",
44660702 14037 "format" : "pve-vmid",
8dd66e12
TL
14038 "maximum" : 999999999,
14039 "minimum" : 100,
4bd7df8b 14040 "type" : "integer",
8dd66e12 14041 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
14042 }
14043 }
14044 },
14045 "permissions" : {
14046 "check" : [
14047 "perm",
14048 "/vms/{vmid}",
14049 [
44660702 14050 "VM.Config.Network"
7aacca6f
DM
14051 ]
14052 ]
14053 },
7aacca6f 14054 "protected" : 1,
7aacca6f 14055 "returns" : {
44660702 14056 "type" : "null"
7aacca6f 14057 }
56122987 14058 }
7aacca6f 14059 },
7aacca6f 14060 "leaf" : 1,
44660702
DM
14061 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
14062 "text" : "{cidr}"
7aacca6f 14063 }
44660702
DM
14064 ],
14065 "info" : {
14066 "DELETE" : {
e9cd3bd4 14067 "allowtoken" : 1,
44660702
DM
14068 "description" : "Delete IPSet",
14069 "method" : "DELETE",
14070 "name" : "delete_ipset",
14071 "parameters" : {
14072 "additionalProperties" : 0,
14073 "properties" : {
81a3384d
TL
14074 "force" : {
14075 "description" : "Delete all members of the IPSet, if there are any.",
14076 "optional" : 1,
14077 "type" : "boolean",
14078 "typetext" : "<boolean>"
14079 },
44660702
DM
14080 "name" : {
14081 "description" : "IP set name.",
14082 "maxLength" : 64,
14083 "minLength" : 2,
14084 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14085 "type" : "string"
14086 },
14087 "node" : {
14088 "description" : "The cluster node name.",
14089 "format" : "pve-node",
013dc89f
DM
14090 "type" : "string",
14091 "typetext" : "<string>"
44660702
DM
14092 },
14093 "vmid" : {
14094 "description" : "The (unique) ID of the VM.",
14095 "format" : "pve-vmid",
8dd66e12
TL
14096 "maximum" : 999999999,
14097 "minimum" : 100,
4bd7df8b 14098 "type" : "integer",
8dd66e12 14099 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
14100 }
14101 }
7aacca6f 14102 },
44660702
DM
14103 "permissions" : {
14104 "check" : [
14105 "perm",
14106 "/vms/{vmid}",
14107 [
14108 "VM.Config.Network"
14109 ]
14110 ]
7aacca6f 14111 },
44660702
DM
14112 "protected" : 1,
14113 "returns" : {
14114 "type" : "null"
14115 }
14116 },
14117 "GET" : {
e9cd3bd4 14118 "allowtoken" : 1,
44660702
DM
14119 "description" : "List IPSet content",
14120 "method" : "GET",
14121 "name" : "get_ipset",
14122 "parameters" : {
14123 "additionalProperties" : 0,
14124 "properties" : {
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.Audit"
14154 ]
14155 ]
7aacca6f 14156 },
44660702
DM
14157 "returns" : {
14158 "items" : {
14159 "properties" : {
14160 "cidr" : {
14161 "type" : "string"
14162 },
14163 "comment" : {
14164 "optional" : 1,
14165 "type" : "string"
14166 },
14167 "digest" : {
82551b2b
TL
14168 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
14169 "maxLength" : 64,
44660702
DM
14170 "optional" : 0,
14171 "type" : "string"
14172 },
14173 "nomatch" : {
14174 "optional" : 1,
14175 "type" : "boolean"
14176 }
14177 },
14178 "type" : "object"
14179 },
14180 "links" : [
14181 {
14182 "href" : "{cidr}",
14183 "rel" : "child"
14184 }
14185 ],
14186 "type" : "array"
56122987
DM
14187 }
14188 },
44660702 14189 "POST" : {
e9cd3bd4 14190 "allowtoken" : 1,
44660702
DM
14191 "description" : "Add IP or Network to IPSet.",
14192 "method" : "POST",
14193 "name" : "create_ip",
14194 "parameters" : {
14195 "additionalProperties" : 0,
14196 "properties" : {
14197 "cidr" : {
14198 "description" : "Network/IP specification in CIDR format.",
14199 "format" : "IPorCIDRorAlias",
013dc89f
DM
14200 "type" : "string",
14201 "typetext" : "<string>"
44660702
DM
14202 },
14203 "comment" : {
14204 "optional" : 1,
013dc89f
DM
14205 "type" : "string",
14206 "typetext" : "<string>"
44660702
DM
14207 },
14208 "name" : {
14209 "description" : "IP set name.",
14210 "maxLength" : 64,
14211 "minLength" : 2,
14212 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14213 "type" : "string"
14214 },
14215 "node" : {
14216 "description" : "The cluster node name.",
14217 "format" : "pve-node",
013dc89f
DM
14218 "type" : "string",
14219 "typetext" : "<string>"
44660702
DM
14220 },
14221 "nomatch" : {
14222 "optional" : 1,
013dc89f
DM
14223 "type" : "boolean",
14224 "typetext" : "<boolean>"
44660702
DM
14225 },
14226 "vmid" : {
14227 "description" : "The (unique) ID of the VM.",
14228 "format" : "pve-vmid",
8dd66e12
TL
14229 "maximum" : 999999999,
14230 "minimum" : 100,
4bd7df8b 14231 "type" : "integer",
8dd66e12 14232 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
14233 }
14234 }
14235 },
14236 "permissions" : {
14237 "check" : [
14238 "perm",
14239 "/vms/{vmid}",
14240 [
14241 "VM.Config.Network"
14242 ]
14243 ]
14244 },
14245 "protected" : 1,
14246 "returns" : {
14247 "type" : "null"
14248 }
14249 }
14250 },
14251 "leaf" : 0,
14252 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
14253 "text" : "{name}"
14254 }
14255 ],
14256 "info" : {
14257 "GET" : {
e9cd3bd4 14258 "allowtoken" : 1,
44660702
DM
14259 "description" : "List IPSets",
14260 "method" : "GET",
14261 "name" : "ipset_index",
14262 "parameters" : {
14263 "additionalProperties" : 0,
14264 "properties" : {
14265 "node" : {
14266 "description" : "The cluster node name.",
14267 "format" : "pve-node",
013dc89f
DM
14268 "type" : "string",
14269 "typetext" : "<string>"
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 }
56122987
DM
14280 },
14281 "permissions" : {
14282 "check" : [
14283 "perm",
14284 "/vms/{vmid}",
14285 [
44660702 14286 "VM.Audit"
56122987
DM
14287 ]
14288 ]
14289 },
7aacca6f 14290 "returns" : {
7aacca6f
DM
14291 "items" : {
14292 "properties" : {
7aacca6f
DM
14293 "comment" : {
14294 "optional" : 1,
14295 "type" : "string"
14296 },
14297 "digest" : {
82551b2b
TL
14298 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
14299 "maxLength" : 64,
44660702
DM
14300 "optional" : 0,
14301 "type" : "string"
14302 },
14303 "name" : {
14304 "description" : "IP set name.",
14305 "maxLength" : 64,
14306 "minLength" : 2,
14307 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14308 "type" : "string"
7aacca6f
DM
14309 }
14310 },
14311 "type" : "object"
14312 },
14313 "links" : [
14314 {
44660702
DM
14315 "href" : "{name}",
14316 "rel" : "child"
7aacca6f 14317 }
44660702
DM
14318 ],
14319 "type" : "array"
14320 }
14321 },
14322 "POST" : {
e9cd3bd4 14323 "allowtoken" : 1,
44660702
DM
14324 "description" : "Create new IPSet",
14325 "method" : "POST",
14326 "name" : "create_ipset",
56122987
DM
14327 "parameters" : {
14328 "additionalProperties" : 0,
14329 "properties" : {
44660702
DM
14330 "comment" : {
14331 "optional" : 1,
013dc89f
DM
14332 "type" : "string",
14333 "typetext" : "<string>"
56122987 14334 },
44660702 14335 "digest" : {
82551b2b
TL
14336 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
14337 "maxLength" : 64,
44660702 14338 "optional" : 1,
013dc89f
DM
14339 "type" : "string",
14340 "typetext" : "<string>"
44660702
DM
14341 },
14342 "name" : {
14343 "description" : "IP set name.",
14344 "maxLength" : 64,
14345 "minLength" : 2,
14346 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14347 "type" : "string"
14348 },
14349 "node" : {
14350 "description" : "The cluster node name.",
14351 "format" : "pve-node",
013dc89f
DM
14352 "type" : "string",
14353 "typetext" : "<string>"
44660702
DM
14354 },
14355 "rename" : {
14356 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
14357 "maxLength" : 64,
14358 "minLength" : 2,
14359 "optional" : 1,
14360 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
14361 "type" : "string"
14362 },
14363 "vmid" : {
14364 "description" : "The (unique) ID of the VM.",
14365 "format" : "pve-vmid",
8dd66e12
TL
14366 "maximum" : 999999999,
14367 "minimum" : 100,
4bd7df8b 14368 "type" : "integer",
8dd66e12 14369 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
14370 }
14371 }
14372 },
7aacca6f
DM
14373 "permissions" : {
14374 "check" : [
14375 "perm",
14376 "/vms/{vmid}",
14377 [
14378 "VM.Config.Network"
14379 ]
14380 ]
14381 },
44660702 14382 "protected" : 1,
56122987 14383 "returns" : {
7aacca6f 14384 "type" : "null"
44660702
DM
14385 }
14386 }
14387 },
14388 "leaf" : 0,
14389 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
14390 "text" : "ipset"
14391 },
14392 {
14393 "info" : {
14394 "GET" : {
e9cd3bd4 14395 "allowtoken" : 1,
44660702
DM
14396 "description" : "Get VM firewall options.",
14397 "method" : "GET",
14398 "name" : "get_options",
7aacca6f
DM
14399 "parameters" : {
14400 "additionalProperties" : 0,
56122987 14401 "properties" : {
7aacca6f
DM
14402 "node" : {
14403 "description" : "The cluster node name.",
44660702 14404 "format" : "pve-node",
013dc89f
DM
14405 "type" : "string",
14406 "typetext" : "<string>"
7aacca6f 14407 },
44660702
DM
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 },
14418 "permissions" : {
14419 "check" : [
14420 "perm",
14421 "/vms/{vmid}",
14422 [
14423 "VM.Audit"
14424 ]
14425 ]
14426 },
14427 "proxyto" : "node",
14428 "returns" : {
14429 "properties" : {
14430 "dhcp" : {
5c1699e5 14431 "default" : 0,
44660702 14432 "description" : "Enable DHCP.",
56122987 14433 "optional" : 1,
44660702 14434 "type" : "boolean"
56122987 14435 },
44660702 14436 "enable" : {
5c1699e5 14437 "default" : 0,
44660702 14438 "description" : "Enable/disable firewall rules.",
7aacca6f 14439 "optional" : 1,
44660702 14440 "type" : "boolean"
56122987 14441 },
44660702
DM
14442 "ipfilter" : {
14443 "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 14444 "optional" : 1,
44660702 14445 "type" : "boolean"
7aacca6f 14446 },
56122987 14447 "log_level_in" : {
7aacca6f 14448 "description" : "Log level for incoming traffic.",
56122987
DM
14449 "enum" : [
14450 "emerg",
14451 "alert",
14452 "crit",
14453 "err",
14454 "warning",
14455 "notice",
14456 "info",
14457 "debug",
14458 "nolog"
14459 ],
56122987
DM
14460 "optional" : 1,
14461 "type" : "string"
14462 },
44660702
DM
14463 "log_level_out" : {
14464 "description" : "Log level for outgoing traffic.",
14465 "enum" : [
14466 "emerg",
14467 "alert",
14468 "crit",
14469 "err",
14470 "warning",
14471 "notice",
14472 "info",
14473 "debug",
14474 "nolog"
14475 ],
14476 "optional" : 1,
14477 "type" : "string"
14478 },
14479 "macfilter" : {
de786b48 14480 "default" : 1,
44660702 14481 "description" : "Enable/disable MAC address filter.",
56122987 14482 "optional" : 1,
7aacca6f 14483 "type" : "boolean"
56122987
DM
14484 },
14485 "ndp" : {
5c1699e5
TL
14486 "default" : 0,
14487 "description" : "Enable NDP (Neighbor Discovery Protocol).",
56122987 14488 "optional" : 1,
44660702 14489 "type" : "boolean"
56122987
DM
14490 },
14491 "policy_in" : {
56122987
DM
14492 "description" : "Input policy.",
14493 "enum" : [
14494 "ACCEPT",
14495 "REJECT",
14496 "DROP"
44660702
DM
14497 ],
14498 "optional" : 1,
14499 "type" : "string"
56122987 14500 },
44660702
DM
14501 "policy_out" : {
14502 "description" : "Output policy.",
14503 "enum" : [
14504 "ACCEPT",
14505 "REJECT",
14506 "DROP"
14507 ],
14508 "optional" : 1,
14509 "type" : "string"
14510 },
14511 "radv" : {
14512 "description" : "Allow sending Router Advertisement.",
14513 "optional" : 1,
14514 "type" : "boolean"
14515 }
14516 },
14517 "type" : "object"
14518 }
14519 },
14520 "PUT" : {
e9cd3bd4 14521 "allowtoken" : 1,
44660702
DM
14522 "description" : "Set Firewall options.",
14523 "method" : "PUT",
14524 "name" : "set_options",
14525 "parameters" : {
14526 "additionalProperties" : 0,
14527 "properties" : {
14528 "delete" : {
14529 "description" : "A list of settings you want to delete.",
14530 "format" : "pve-configid-list",
14531 "optional" : 1,
013dc89f
DM
14532 "type" : "string",
14533 "typetext" : "<string>"
44660702
DM
14534 },
14535 "dhcp" : {
5c1699e5 14536 "default" : 0,
44660702 14537 "description" : "Enable DHCP.",
7aacca6f 14538 "optional" : 1,
013dc89f
DM
14539 "type" : "boolean",
14540 "typetext" : "<boolean>"
7aacca6f
DM
14541 },
14542 "digest" : {
82551b2b
TL
14543 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
14544 "maxLength" : 64,
7aacca6f 14545 "optional" : 1,
013dc89f
DM
14546 "type" : "string",
14547 "typetext" : "<string>"
7aacca6f
DM
14548 },
14549 "enable" : {
5c1699e5 14550 "default" : 0,
7aacca6f 14551 "description" : "Enable/disable firewall rules.",
56122987 14552 "optional" : 1,
013dc89f
DM
14553 "type" : "boolean",
14554 "typetext" : "<boolean>"
7aacca6f 14555 },
44660702
DM
14556 "ipfilter" : {
14557 "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.",
14558 "optional" : 1,
013dc89f
DM
14559 "type" : "boolean",
14560 "typetext" : "<boolean>"
44660702
DM
14561 },
14562 "log_level_in" : {
14563 "description" : "Log level for incoming traffic.",
56122987
DM
14564 "enum" : [
14565 "emerg",
14566 "alert",
14567 "crit",
14568 "err",
14569 "warning",
14570 "notice",
14571 "info",
14572 "debug",
14573 "nolog"
7aacca6f 14574 ],
7aacca6f 14575 "optional" : 1,
44660702 14576 "type" : "string"
7aacca6f 14577 },
44660702
DM
14578 "log_level_out" : {
14579 "description" : "Log level for outgoing traffic.",
56122987
DM
14580 "enum" : [
14581 "emerg",
14582 "alert",
14583 "crit",
14584 "err",
14585 "warning",
14586 "notice",
14587 "info",
14588 "debug",
14589 "nolog"
14590 ],
56122987 14591 "optional" : 1,
44660702 14592 "type" : "string"
56122987
DM
14593 },
14594 "macfilter" : {
de786b48 14595 "default" : 1,
56122987 14596 "description" : "Enable/disable MAC address filter.",
7aacca6f 14597 "optional" : 1,
013dc89f
DM
14598 "type" : "boolean",
14599 "typetext" : "<boolean>"
56122987 14600 },
44660702 14601 "ndp" : {
5c1699e5
TL
14602 "default" : 0,
14603 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702 14604 "optional" : 1,
013dc89f
DM
14605 "type" : "boolean",
14606 "typetext" : "<boolean>"
44660702
DM
14607 },
14608 "node" : {
14609 "description" : "The cluster node name.",
14610 "format" : "pve-node",
013dc89f
DM
14611 "type" : "string",
14612 "typetext" : "<string>"
44660702 14613 },
56122987 14614 "policy_in" : {
44660702 14615 "description" : "Input policy.",
56122987
DM
14616 "enum" : [
14617 "ACCEPT",
14618 "REJECT",
14619 "DROP"
7aacca6f 14620 ],
56122987 14621 "optional" : 1,
7aacca6f 14622 "type" : "string"
56122987 14623 },
44660702
DM
14624 "policy_out" : {
14625 "description" : "Output policy.",
14626 "enum" : [
14627 "ACCEPT",
14628 "REJECT",
14629 "DROP"
14630 ],
56122987 14631 "optional" : 1,
44660702 14632 "type" : "string"
56122987 14633 },
44660702
DM
14634 "radv" : {
14635 "description" : "Allow sending Router Advertisement.",
56122987 14636 "optional" : 1,
013dc89f
DM
14637 "type" : "boolean",
14638 "typetext" : "<boolean>"
7aacca6f
DM
14639 },
14640 "vmid" : {
14641 "description" : "The (unique) ID of the VM.",
44660702 14642 "format" : "pve-vmid",
8dd66e12
TL
14643 "maximum" : 999999999,
14644 "minimum" : 100,
4bd7df8b 14645 "type" : "integer",
8dd66e12 14646 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
14647 }
14648 }
14649 },
56122987
DM
14650 "permissions" : {
14651 "check" : [
14652 "perm",
14653 "/vms/{vmid}",
14654 [
44660702 14655 "VM.Config.Network"
56122987
DM
14656 ]
14657 ]
7aacca6f 14658 },
44660702 14659 "protected" : 1,
7aacca6f 14660 "proxyto" : "node",
44660702
DM
14661 "returns" : {
14662 "type" : "null"
14663 }
56122987
DM
14664 }
14665 },
44660702 14666 "leaf" : 1,
7aacca6f 14667 "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
44660702 14668 "text" : "options"
56122987
DM
14669 },
14670 {
56122987
DM
14671 "info" : {
14672 "GET" : {
e9cd3bd4 14673 "allowtoken" : 1,
44660702
DM
14674 "description" : "Read firewall log",
14675 "method" : "GET",
14676 "name" : "log",
14677 "parameters" : {
14678 "additionalProperties" : 0,
14679 "properties" : {
14680 "limit" : {
14681 "minimum" : 0,
14682 "optional" : 1,
4bd7df8b 14683 "type" : "integer",
013dc89f 14684 "typetext" : "<integer> (0 - N)"
56122987 14685 },
44660702
DM
14686 "node" : {
14687 "description" : "The cluster node name.",
14688 "format" : "pve-node",
013dc89f
DM
14689 "type" : "string",
14690 "typetext" : "<string>"
44660702 14691 },
9d2e98ed
TL
14692 "since" : {
14693 "description" : "Display log since this UNIX epoch.",
14694 "minimum" : 0,
14695 "optional" : 1,
14696 "type" : "integer",
14697 "typetext" : "<integer> (0 - N)"
14698 },
44660702
DM
14699 "start" : {
14700 "minimum" : 0,
14701 "optional" : 1,
4bd7df8b 14702 "type" : "integer",
013dc89f 14703 "typetext" : "<integer> (0 - N)"
44660702 14704 },
9d2e98ed
TL
14705 "until" : {
14706 "description" : "Display log until this UNIX epoch.",
14707 "minimum" : 0,
14708 "optional" : 1,
14709 "type" : "integer",
14710 "typetext" : "<integer> (0 - N)"
14711 },
44660702
DM
14712 "vmid" : {
14713 "description" : "The (unique) ID of the VM.",
14714 "format" : "pve-vmid",
8dd66e12
TL
14715 "maximum" : 999999999,
14716 "minimum" : 100,
4bd7df8b 14717 "type" : "integer",
8dd66e12 14718 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
14719 }
14720 }
7aacca6f 14721 },
7aacca6f
DM
14722 "permissions" : {
14723 "check" : [
14724 "perm",
14725 "/vms/{vmid}",
14726 [
14727 "VM.Console"
14728 ]
14729 ]
56122987 14730 },
7aacca6f 14731 "protected" : 1,
44660702
DM
14732 "proxyto" : "node",
14733 "returns" : {
14734 "items" : {
14735 "properties" : {
14736 "n" : {
14737 "description" : "Line number",
14738 "type" : "integer"
14739 },
14740 "t" : {
14741 "description" : "Line text",
14742 "type" : "string"
14743 }
56122987 14744 },
44660702 14745 "type" : "object"
7aacca6f 14746 },
44660702 14747 "type" : "array"
7aacca6f
DM
14748 }
14749 }
14750 },
44660702 14751 "leaf" : 1,
7aacca6f 14752 "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
44660702 14753 "text" : "log"
7aacca6f
DM
14754 },
14755 {
7aacca6f
DM
14756 "info" : {
14757 "GET" : {
e9cd3bd4 14758 "allowtoken" : 1,
7aacca6f 14759 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702
DM
14760 "method" : "GET",
14761 "name" : "refs",
56122987 14762 "parameters" : {
44660702 14763 "additionalProperties" : 0,
56122987
DM
14764 "properties" : {
14765 "node" : {
7aacca6f 14766 "description" : "The cluster node name.",
44660702 14767 "format" : "pve-node",
013dc89f
DM
14768 "type" : "string",
14769 "typetext" : "<string>"
56122987
DM
14770 },
14771 "type" : {
56122987
DM
14772 "description" : "Only list references of specified type.",
14773 "enum" : [
14774 "alias",
14775 "ipset"
7aacca6f 14776 ],
44660702
DM
14777 "optional" : 1,
14778 "type" : "string"
14779 },
14780 "vmid" : {
14781 "description" : "The (unique) ID of the VM.",
14782 "format" : "pve-vmid",
8dd66e12
TL
14783 "maximum" : 999999999,
14784 "minimum" : 100,
4bd7df8b 14785 "type" : "integer",
8dd66e12 14786 "typetext" : "<integer> (100 - 999999999)"
56122987 14787 }
44660702
DM
14788 }
14789 },
14790 "permissions" : {
14791 "check" : [
14792 "perm",
14793 "/vms/{vmid}",
14794 [
14795 "VM.Audit"
14796 ]
14797 ]
56122987
DM
14798 },
14799 "returns" : {
56122987
DM
14800 "items" : {
14801 "properties" : {
44660702
DM
14802 "comment" : {
14803 "optional" : 1,
56122987
DM
14804 "type" : "string"
14805 },
14806 "name" : {
14807 "type" : "string"
14808 },
07b013aa
TL
14809 "ref" : {
14810 "type" : "string"
14811 },
14812 "scope" : {
14813 "type" : "string"
14814 },
44660702
DM
14815 "type" : {
14816 "enum" : [
14817 "alias",
14818 "ipset"
14819 ],
7aacca6f 14820 "type" : "string"
56122987
DM
14821 }
14822 },
14823 "type" : "object"
7aacca6f
DM
14824 },
14825 "type" : "array"
14826 }
56122987 14827 }
44660702
DM
14828 },
14829 "leaf" : 1,
14830 "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
14831 "text" : "refs"
56122987
DM
14832 }
14833 ],
56122987
DM
14834 "info" : {
14835 "GET" : {
e9cd3bd4 14836 "allowtoken" : 1,
44660702 14837 "description" : "Directory index.",
56122987 14838 "method" : "GET",
44660702 14839 "name" : "index",
56122987 14840 "parameters" : {
44660702 14841 "additionalProperties" : 0,
56122987
DM
14842 "properties" : {
14843 "node" : {
14844 "description" : "The cluster node name.",
44660702 14845 "format" : "pve-node",
013dc89f
DM
14846 "type" : "string",
14847 "typetext" : "<string>"
56122987
DM
14848 },
14849 "vmid" : {
44660702 14850 "description" : "The (unique) ID of the VM.",
56122987 14851 "format" : "pve-vmid",
8dd66e12
TL
14852 "maximum" : 999999999,
14853 "minimum" : 100,
4bd7df8b 14854 "type" : "integer",
8dd66e12 14855 "typetext" : "<integer> (100 - 999999999)"
56122987 14856 }
44660702 14857 }
56122987 14858 },
56122987 14859 "permissions" : {
27a7acb2
DM
14860 "user" : "all"
14861 },
14862 "returns" : {
14863 "items" : {
14864 "properties" : {},
14865 "type" : "object"
14866 },
14867 "links" : [
14868 {
14869 "href" : "{name}",
14870 "rel" : "child"
14871 }
14872 ],
14873 "type" : "array"
14874 }
14875 }
14876 },
14877 "leaf" : 0,
14878 "path" : "/nodes/{node}/qemu/{vmid}/firewall",
14879 "text" : "firewall"
14880 },
14881 {
14882 "children" : [
14883 {
14884 "info" : {
14885 "POST" : {
e9cd3bd4 14886 "allowtoken" : 1,
27a7acb2
DM
14887 "description" : "Execute fsfreeze-freeze.",
14888 "method" : "POST",
14889 "name" : "fsfreeze-freeze",
14890 "parameters" : {
14891 "additionalProperties" : 0,
14892 "properties" : {
14893 "node" : {
14894 "description" : "The cluster node name.",
14895 "format" : "pve-node",
14896 "type" : "string",
14897 "typetext" : "<string>"
14898 },
14899 "vmid" : {
14900 "description" : "The (unique) ID of the VM.",
14901 "format" : "pve-vmid",
8dd66e12
TL
14902 "maximum" : 999999999,
14903 "minimum" : 100,
27a7acb2 14904 "type" : "integer",
8dd66e12 14905 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14906 }
14907 }
14908 },
14909 "permissions" : {
14910 "check" : [
14911 "perm",
14912 "/vms/{vmid}",
14913 [
14914 "VM.Monitor"
14915 ]
14916 ]
14917 },
14918 "protected" : 1,
14919 "proxyto" : "node",
14920 "returns" : {
14921 "description" : "Returns an object with a single `result` property.",
14922 "type" : "object"
14923 }
14924 }
14925 },
14926 "leaf" : 1,
14927 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze",
14928 "text" : "fsfreeze-freeze"
14929 },
14930 {
14931 "info" : {
14932 "POST" : {
e9cd3bd4 14933 "allowtoken" : 1,
27a7acb2
DM
14934 "description" : "Execute fsfreeze-status.",
14935 "method" : "POST",
14936 "name" : "fsfreeze-status",
14937 "parameters" : {
14938 "additionalProperties" : 0,
14939 "properties" : {
14940 "node" : {
14941 "description" : "The cluster node name.",
14942 "format" : "pve-node",
14943 "type" : "string",
14944 "typetext" : "<string>"
14945 },
14946 "vmid" : {
14947 "description" : "The (unique) ID of the VM.",
14948 "format" : "pve-vmid",
8dd66e12
TL
14949 "maximum" : 999999999,
14950 "minimum" : 100,
27a7acb2 14951 "type" : "integer",
8dd66e12 14952 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14953 }
14954 }
14955 },
14956 "permissions" : {
14957 "check" : [
14958 "perm",
14959 "/vms/{vmid}",
14960 [
14961 "VM.Monitor"
14962 ]
14963 ]
14964 },
14965 "protected" : 1,
14966 "proxyto" : "node",
14967 "returns" : {
14968 "description" : "Returns an object with a single `result` property.",
14969 "type" : "object"
14970 }
14971 }
14972 },
14973 "leaf" : 1,
14974 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status",
14975 "text" : "fsfreeze-status"
14976 },
14977 {
14978 "info" : {
14979 "POST" : {
e9cd3bd4 14980 "allowtoken" : 1,
27a7acb2
DM
14981 "description" : "Execute fsfreeze-thaw.",
14982 "method" : "POST",
14983 "name" : "fsfreeze-thaw",
14984 "parameters" : {
14985 "additionalProperties" : 0,
14986 "properties" : {
14987 "node" : {
14988 "description" : "The cluster node name.",
14989 "format" : "pve-node",
14990 "type" : "string",
14991 "typetext" : "<string>"
14992 },
14993 "vmid" : {
14994 "description" : "The (unique) ID of the VM.",
14995 "format" : "pve-vmid",
8dd66e12
TL
14996 "maximum" : 999999999,
14997 "minimum" : 100,
27a7acb2 14998 "type" : "integer",
8dd66e12 14999 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15000 }
15001 }
15002 },
15003 "permissions" : {
15004 "check" : [
15005 "perm",
15006 "/vms/{vmid}",
15007 [
15008 "VM.Monitor"
15009 ]
15010 ]
15011 },
15012 "protected" : 1,
15013 "proxyto" : "node",
15014 "returns" : {
15015 "description" : "Returns an object with a single `result` property.",
15016 "type" : "object"
15017 }
15018 }
15019 },
15020 "leaf" : 1,
15021 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw",
15022 "text" : "fsfreeze-thaw"
15023 },
15024 {
15025 "info" : {
15026 "POST" : {
e9cd3bd4 15027 "allowtoken" : 1,
27a7acb2
DM
15028 "description" : "Execute fstrim.",
15029 "method" : "POST",
15030 "name" : "fstrim",
15031 "parameters" : {
15032 "additionalProperties" : 0,
15033 "properties" : {
15034 "node" : {
15035 "description" : "The cluster node name.",
15036 "format" : "pve-node",
15037 "type" : "string",
15038 "typetext" : "<string>"
15039 },
15040 "vmid" : {
15041 "description" : "The (unique) ID of the VM.",
15042 "format" : "pve-vmid",
8dd66e12
TL
15043 "maximum" : 999999999,
15044 "minimum" : 100,
27a7acb2 15045 "type" : "integer",
8dd66e12 15046 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15047 }
15048 }
15049 },
15050 "permissions" : {
15051 "check" : [
15052 "perm",
15053 "/vms/{vmid}",
15054 [
15055 "VM.Monitor"
15056 ]
15057 ]
15058 },
15059 "protected" : 1,
15060 "proxyto" : "node",
15061 "returns" : {
15062 "description" : "Returns an object with a single `result` property.",
15063 "type" : "object"
15064 }
15065 }
15066 },
15067 "leaf" : 1,
15068 "path" : "/nodes/{node}/qemu/{vmid}/agent/fstrim",
15069 "text" : "fstrim"
15070 },
15071 {
15072 "info" : {
15073 "GET" : {
e9cd3bd4 15074 "allowtoken" : 1,
27a7acb2
DM
15075 "description" : "Execute get-fsinfo.",
15076 "method" : "GET",
15077 "name" : "get-fsinfo",
15078 "parameters" : {
15079 "additionalProperties" : 0,
15080 "properties" : {
15081 "node" : {
15082 "description" : "The cluster node name.",
15083 "format" : "pve-node",
15084 "type" : "string",
15085 "typetext" : "<string>"
15086 },
15087 "vmid" : {
15088 "description" : "The (unique) ID of the VM.",
15089 "format" : "pve-vmid",
8dd66e12
TL
15090 "maximum" : 999999999,
15091 "minimum" : 100,
27a7acb2 15092 "type" : "integer",
8dd66e12 15093 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15094 }
15095 }
15096 },
15097 "permissions" : {
15098 "check" : [
15099 "perm",
15100 "/vms/{vmid}",
15101 [
15102 "VM.Monitor"
15103 ]
15104 ]
15105 },
15106 "protected" : 1,
15107 "proxyto" : "node",
15108 "returns" : {
15109 "description" : "Returns an object with a single `result` property.",
15110 "type" : "object"
15111 }
15112 }
15113 },
15114 "leaf" : 1,
15115 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-fsinfo",
15116 "text" : "get-fsinfo"
15117 },
15118 {
15119 "info" : {
15120 "GET" : {
e9cd3bd4 15121 "allowtoken" : 1,
27a7acb2
DM
15122 "description" : "Execute get-host-name.",
15123 "method" : "GET",
15124 "name" : "get-host-name",
15125 "parameters" : {
15126 "additionalProperties" : 0,
15127 "properties" : {
15128 "node" : {
15129 "description" : "The cluster node name.",
15130 "format" : "pve-node",
15131 "type" : "string",
15132 "typetext" : "<string>"
15133 },
15134 "vmid" : {
15135 "description" : "The (unique) ID of the VM.",
15136 "format" : "pve-vmid",
8dd66e12
TL
15137 "maximum" : 999999999,
15138 "minimum" : 100,
27a7acb2 15139 "type" : "integer",
8dd66e12 15140 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15141 }
15142 }
15143 },
15144 "permissions" : {
15145 "check" : [
15146 "perm",
15147 "/vms/{vmid}",
15148 [
15149 "VM.Monitor"
15150 ]
15151 ]
15152 },
15153 "protected" : 1,
15154 "proxyto" : "node",
15155 "returns" : {
15156 "description" : "Returns an object with a single `result` property.",
15157 "type" : "object"
15158 }
15159 }
15160 },
15161 "leaf" : 1,
15162 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-host-name",
15163 "text" : "get-host-name"
15164 },
15165 {
15166 "info" : {
15167 "GET" : {
e9cd3bd4 15168 "allowtoken" : 1,
27a7acb2
DM
15169 "description" : "Execute get-memory-block-info.",
15170 "method" : "GET",
15171 "name" : "get-memory-block-info",
15172 "parameters" : {
15173 "additionalProperties" : 0,
15174 "properties" : {
15175 "node" : {
15176 "description" : "The cluster node name.",
15177 "format" : "pve-node",
15178 "type" : "string",
15179 "typetext" : "<string>"
15180 },
15181 "vmid" : {
15182 "description" : "The (unique) ID of the VM.",
15183 "format" : "pve-vmid",
8dd66e12
TL
15184 "maximum" : 999999999,
15185 "minimum" : 100,
27a7acb2 15186 "type" : "integer",
8dd66e12 15187 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15188 }
15189 }
15190 },
15191 "permissions" : {
15192 "check" : [
15193 "perm",
15194 "/vms/{vmid}",
15195 [
15196 "VM.Monitor"
15197 ]
15198 ]
15199 },
15200 "protected" : 1,
15201 "proxyto" : "node",
15202 "returns" : {
15203 "description" : "Returns an object with a single `result` property.",
15204 "type" : "object"
15205 }
15206 }
15207 },
15208 "leaf" : 1,
15209 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info",
15210 "text" : "get-memory-block-info"
15211 },
15212 {
15213 "info" : {
15214 "GET" : {
e9cd3bd4 15215 "allowtoken" : 1,
27a7acb2
DM
15216 "description" : "Execute get-memory-blocks.",
15217 "method" : "GET",
15218 "name" : "get-memory-blocks",
15219 "parameters" : {
15220 "additionalProperties" : 0,
15221 "properties" : {
15222 "node" : {
15223 "description" : "The cluster node name.",
15224 "format" : "pve-node",
15225 "type" : "string",
15226 "typetext" : "<string>"
15227 },
15228 "vmid" : {
15229 "description" : "The (unique) ID of the VM.",
15230 "format" : "pve-vmid",
8dd66e12
TL
15231 "maximum" : 999999999,
15232 "minimum" : 100,
27a7acb2 15233 "type" : "integer",
8dd66e12 15234 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15235 }
15236 }
15237 },
15238 "permissions" : {
15239 "check" : [
15240 "perm",
15241 "/vms/{vmid}",
15242 [
15243 "VM.Monitor"
15244 ]
15245 ]
15246 },
15247 "protected" : 1,
15248 "proxyto" : "node",
15249 "returns" : {
15250 "description" : "Returns an object with a single `result` property.",
15251 "type" : "object"
15252 }
15253 }
15254 },
15255 "leaf" : 1,
15256 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks",
15257 "text" : "get-memory-blocks"
15258 },
15259 {
15260 "info" : {
15261 "GET" : {
e9cd3bd4 15262 "allowtoken" : 1,
27a7acb2
DM
15263 "description" : "Execute get-osinfo.",
15264 "method" : "GET",
15265 "name" : "get-osinfo",
15266 "parameters" : {
15267 "additionalProperties" : 0,
15268 "properties" : {
15269 "node" : {
15270 "description" : "The cluster node name.",
15271 "format" : "pve-node",
15272 "type" : "string",
15273 "typetext" : "<string>"
15274 },
15275 "vmid" : {
15276 "description" : "The (unique) ID of the VM.",
15277 "format" : "pve-vmid",
8dd66e12
TL
15278 "maximum" : 999999999,
15279 "minimum" : 100,
27a7acb2 15280 "type" : "integer",
8dd66e12 15281 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15282 }
15283 }
15284 },
15285 "permissions" : {
15286 "check" : [
15287 "perm",
15288 "/vms/{vmid}",
15289 [
15290 "VM.Monitor"
15291 ]
15292 ]
15293 },
15294 "protected" : 1,
15295 "proxyto" : "node",
15296 "returns" : {
15297 "description" : "Returns an object with a single `result` property.",
15298 "type" : "object"
15299 }
15300 }
15301 },
15302 "leaf" : 1,
15303 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-osinfo",
15304 "text" : "get-osinfo"
15305 },
15306 {
15307 "info" : {
15308 "GET" : {
e9cd3bd4 15309 "allowtoken" : 1,
27a7acb2
DM
15310 "description" : "Execute get-time.",
15311 "method" : "GET",
15312 "name" : "get-time",
15313 "parameters" : {
15314 "additionalProperties" : 0,
15315 "properties" : {
15316 "node" : {
15317 "description" : "The cluster node name.",
15318 "format" : "pve-node",
15319 "type" : "string",
15320 "typetext" : "<string>"
15321 },
15322 "vmid" : {
15323 "description" : "The (unique) ID of the VM.",
15324 "format" : "pve-vmid",
8dd66e12
TL
15325 "maximum" : 999999999,
15326 "minimum" : 100,
27a7acb2 15327 "type" : "integer",
8dd66e12 15328 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15329 }
15330 }
15331 },
15332 "permissions" : {
15333 "check" : [
15334 "perm",
15335 "/vms/{vmid}",
15336 [
15337 "VM.Monitor"
15338 ]
15339 ]
15340 },
15341 "protected" : 1,
15342 "proxyto" : "node",
15343 "returns" : {
15344 "description" : "Returns an object with a single `result` property.",
15345 "type" : "object"
15346 }
15347 }
15348 },
15349 "leaf" : 1,
15350 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-time",
15351 "text" : "get-time"
15352 },
15353 {
15354 "info" : {
15355 "GET" : {
e9cd3bd4 15356 "allowtoken" : 1,
27a7acb2
DM
15357 "description" : "Execute get-timezone.",
15358 "method" : "GET",
15359 "name" : "get-timezone",
15360 "parameters" : {
15361 "additionalProperties" : 0,
15362 "properties" : {
15363 "node" : {
15364 "description" : "The cluster node name.",
15365 "format" : "pve-node",
15366 "type" : "string",
15367 "typetext" : "<string>"
15368 },
15369 "vmid" : {
15370 "description" : "The (unique) ID of the VM.",
15371 "format" : "pve-vmid",
8dd66e12
TL
15372 "maximum" : 999999999,
15373 "minimum" : 100,
27a7acb2 15374 "type" : "integer",
8dd66e12 15375 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15376 }
15377 }
15378 },
15379 "permissions" : {
15380 "check" : [
15381 "perm",
15382 "/vms/{vmid}",
15383 [
15384 "VM.Monitor"
15385 ]
15386 ]
15387 },
15388 "protected" : 1,
15389 "proxyto" : "node",
15390 "returns" : {
15391 "description" : "Returns an object with a single `result` property.",
15392 "type" : "object"
15393 }
15394 }
15395 },
15396 "leaf" : 1,
15397 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-timezone",
15398 "text" : "get-timezone"
15399 },
15400 {
15401 "info" : {
15402 "GET" : {
e9cd3bd4 15403 "allowtoken" : 1,
27a7acb2
DM
15404 "description" : "Execute get-users.",
15405 "method" : "GET",
15406 "name" : "get-users",
15407 "parameters" : {
15408 "additionalProperties" : 0,
15409 "properties" : {
15410 "node" : {
15411 "description" : "The cluster node name.",
15412 "format" : "pve-node",
15413 "type" : "string",
15414 "typetext" : "<string>"
15415 },
15416 "vmid" : {
15417 "description" : "The (unique) ID of the VM.",
15418 "format" : "pve-vmid",
8dd66e12
TL
15419 "maximum" : 999999999,
15420 "minimum" : 100,
27a7acb2 15421 "type" : "integer",
8dd66e12 15422 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15423 }
15424 }
15425 },
15426 "permissions" : {
15427 "check" : [
15428 "perm",
15429 "/vms/{vmid}",
15430 [
15431 "VM.Monitor"
15432 ]
15433 ]
15434 },
15435 "protected" : 1,
15436 "proxyto" : "node",
15437 "returns" : {
15438 "description" : "Returns an object with a single `result` property.",
15439 "type" : "object"
15440 }
15441 }
15442 },
15443 "leaf" : 1,
15444 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-users",
15445 "text" : "get-users"
15446 },
15447 {
15448 "info" : {
15449 "GET" : {
e9cd3bd4 15450 "allowtoken" : 1,
27a7acb2
DM
15451 "description" : "Execute get-vcpus.",
15452 "method" : "GET",
15453 "name" : "get-vcpus",
15454 "parameters" : {
15455 "additionalProperties" : 0,
15456 "properties" : {
15457 "node" : {
15458 "description" : "The cluster node name.",
15459 "format" : "pve-node",
15460 "type" : "string",
15461 "typetext" : "<string>"
15462 },
15463 "vmid" : {
15464 "description" : "The (unique) ID of the VM.",
15465 "format" : "pve-vmid",
8dd66e12
TL
15466 "maximum" : 999999999,
15467 "minimum" : 100,
27a7acb2 15468 "type" : "integer",
8dd66e12 15469 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15470 }
15471 }
15472 },
15473 "permissions" : {
15474 "check" : [
15475 "perm",
15476 "/vms/{vmid}",
15477 [
15478 "VM.Monitor"
15479 ]
15480 ]
15481 },
15482 "protected" : 1,
15483 "proxyto" : "node",
15484 "returns" : {
15485 "description" : "Returns an object with a single `result` property.",
15486 "type" : "object"
15487 }
15488 }
15489 },
15490 "leaf" : 1,
15491 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-vcpus",
15492 "text" : "get-vcpus"
15493 },
15494 {
15495 "info" : {
15496 "GET" : {
e9cd3bd4 15497 "allowtoken" : 1,
27a7acb2
DM
15498 "description" : "Execute info.",
15499 "method" : "GET",
15500 "name" : "info",
15501 "parameters" : {
15502 "additionalProperties" : 0,
15503 "properties" : {
15504 "node" : {
15505 "description" : "The cluster node name.",
15506 "format" : "pve-node",
15507 "type" : "string",
15508 "typetext" : "<string>"
15509 },
15510 "vmid" : {
15511 "description" : "The (unique) ID of the VM.",
15512 "format" : "pve-vmid",
8dd66e12
TL
15513 "maximum" : 999999999,
15514 "minimum" : 100,
27a7acb2 15515 "type" : "integer",
8dd66e12 15516 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15517 }
15518 }
15519 },
15520 "permissions" : {
15521 "check" : [
15522 "perm",
15523 "/vms/{vmid}",
15524 [
15525 "VM.Monitor"
15526 ]
15527 ]
15528 },
15529 "protected" : 1,
15530 "proxyto" : "node",
15531 "returns" : {
15532 "description" : "Returns an object with a single `result` property.",
15533 "type" : "object"
15534 }
15535 }
15536 },
15537 "leaf" : 1,
15538 "path" : "/nodes/{node}/qemu/{vmid}/agent/info",
15539 "text" : "info"
15540 },
15541 {
15542 "info" : {
15543 "GET" : {
e9cd3bd4 15544 "allowtoken" : 1,
27a7acb2
DM
15545 "description" : "Execute network-get-interfaces.",
15546 "method" : "GET",
15547 "name" : "network-get-interfaces",
15548 "parameters" : {
15549 "additionalProperties" : 0,
15550 "properties" : {
15551 "node" : {
15552 "description" : "The cluster node name.",
15553 "format" : "pve-node",
15554 "type" : "string",
15555 "typetext" : "<string>"
15556 },
15557 "vmid" : {
15558 "description" : "The (unique) ID of the VM.",
15559 "format" : "pve-vmid",
8dd66e12
TL
15560 "maximum" : 999999999,
15561 "minimum" : 100,
27a7acb2 15562 "type" : "integer",
8dd66e12 15563 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15564 }
15565 }
15566 },
15567 "permissions" : {
15568 "check" : [
15569 "perm",
15570 "/vms/{vmid}",
15571 [
15572 "VM.Monitor"
15573 ]
15574 ]
15575 },
15576 "protected" : 1,
15577 "proxyto" : "node",
15578 "returns" : {
15579 "description" : "Returns an object with a single `result` property.",
15580 "type" : "object"
15581 }
15582 }
15583 },
15584 "leaf" : 1,
15585 "path" : "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces",
15586 "text" : "network-get-interfaces"
15587 },
15588 {
15589 "info" : {
15590 "POST" : {
e9cd3bd4 15591 "allowtoken" : 1,
27a7acb2
DM
15592 "description" : "Execute ping.",
15593 "method" : "POST",
15594 "name" : "ping",
15595 "parameters" : {
15596 "additionalProperties" : 0,
15597 "properties" : {
15598 "node" : {
15599 "description" : "The cluster node name.",
15600 "format" : "pve-node",
15601 "type" : "string",
15602 "typetext" : "<string>"
15603 },
15604 "vmid" : {
15605 "description" : "The (unique) ID of the VM.",
15606 "format" : "pve-vmid",
8dd66e12
TL
15607 "maximum" : 999999999,
15608 "minimum" : 100,
27a7acb2 15609 "type" : "integer",
8dd66e12 15610 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15611 }
15612 }
15613 },
15614 "permissions" : {
15615 "check" : [
15616 "perm",
15617 "/vms/{vmid}",
15618 [
15619 "VM.Monitor"
15620 ]
15621 ]
15622 },
15623 "protected" : 1,
15624 "proxyto" : "node",
15625 "returns" : {
15626 "description" : "Returns an object with a single `result` property.",
15627 "type" : "object"
15628 }
15629 }
15630 },
15631 "leaf" : 1,
15632 "path" : "/nodes/{node}/qemu/{vmid}/agent/ping",
15633 "text" : "ping"
15634 },
15635 {
15636 "info" : {
15637 "POST" : {
e9cd3bd4 15638 "allowtoken" : 1,
27a7acb2
DM
15639 "description" : "Execute shutdown.",
15640 "method" : "POST",
15641 "name" : "shutdown",
15642 "parameters" : {
15643 "additionalProperties" : 0,
15644 "properties" : {
15645 "node" : {
15646 "description" : "The cluster node name.",
15647 "format" : "pve-node",
15648 "type" : "string",
15649 "typetext" : "<string>"
15650 },
15651 "vmid" : {
15652 "description" : "The (unique) ID of the VM.",
15653 "format" : "pve-vmid",
8dd66e12
TL
15654 "maximum" : 999999999,
15655 "minimum" : 100,
27a7acb2 15656 "type" : "integer",
8dd66e12 15657 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15658 }
15659 }
15660 },
15661 "permissions" : {
15662 "check" : [
15663 "perm",
15664 "/vms/{vmid}",
15665 [
15666 "VM.Monitor"
15667 ]
15668 ]
15669 },
15670 "protected" : 1,
15671 "proxyto" : "node",
15672 "returns" : {
15673 "description" : "Returns an object with a single `result` property.",
15674 "type" : "object"
15675 }
15676 }
15677 },
15678 "leaf" : 1,
15679 "path" : "/nodes/{node}/qemu/{vmid}/agent/shutdown",
15680 "text" : "shutdown"
15681 },
15682 {
15683 "info" : {
15684 "POST" : {
e9cd3bd4 15685 "allowtoken" : 1,
27a7acb2
DM
15686 "description" : "Execute suspend-disk.",
15687 "method" : "POST",
15688 "name" : "suspend-disk",
15689 "parameters" : {
15690 "additionalProperties" : 0,
15691 "properties" : {
15692 "node" : {
15693 "description" : "The cluster node name.",
15694 "format" : "pve-node",
15695 "type" : "string",
15696 "typetext" : "<string>"
15697 },
15698 "vmid" : {
15699 "description" : "The (unique) ID of the VM.",
15700 "format" : "pve-vmid",
8dd66e12
TL
15701 "maximum" : 999999999,
15702 "minimum" : 100,
27a7acb2 15703 "type" : "integer",
8dd66e12 15704 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15705 }
15706 }
15707 },
15708 "permissions" : {
15709 "check" : [
15710 "perm",
15711 "/vms/{vmid}",
15712 [
15713 "VM.Monitor"
15714 ]
15715 ]
15716 },
15717 "protected" : 1,
15718 "proxyto" : "node",
15719 "returns" : {
15720 "description" : "Returns an object with a single `result` property.",
15721 "type" : "object"
15722 }
15723 }
15724 },
15725 "leaf" : 1,
15726 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-disk",
15727 "text" : "suspend-disk"
15728 },
15729 {
15730 "info" : {
15731 "POST" : {
e9cd3bd4 15732 "allowtoken" : 1,
27a7acb2
DM
15733 "description" : "Execute suspend-hybrid.",
15734 "method" : "POST",
15735 "name" : "suspend-hybrid",
15736 "parameters" : {
15737 "additionalProperties" : 0,
15738 "properties" : {
15739 "node" : {
15740 "description" : "The cluster node name.",
15741 "format" : "pve-node",
15742 "type" : "string",
15743 "typetext" : "<string>"
15744 },
15745 "vmid" : {
15746 "description" : "The (unique) ID of the VM.",
15747 "format" : "pve-vmid",
8dd66e12
TL
15748 "maximum" : 999999999,
15749 "minimum" : 100,
27a7acb2 15750 "type" : "integer",
8dd66e12 15751 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15752 }
15753 }
15754 },
15755 "permissions" : {
15756 "check" : [
15757 "perm",
15758 "/vms/{vmid}",
15759 [
15760 "VM.Monitor"
15761 ]
15762 ]
15763 },
15764 "protected" : 1,
15765 "proxyto" : "node",
15766 "returns" : {
15767 "description" : "Returns an object with a single `result` property.",
15768 "type" : "object"
15769 }
15770 }
15771 },
15772 "leaf" : 1,
15773 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid",
15774 "text" : "suspend-hybrid"
15775 },
15776 {
15777 "info" : {
15778 "POST" : {
e9cd3bd4 15779 "allowtoken" : 1,
27a7acb2
DM
15780 "description" : "Execute suspend-ram.",
15781 "method" : "POST",
15782 "name" : "suspend-ram",
15783 "parameters" : {
15784 "additionalProperties" : 0,
15785 "properties" : {
15786 "node" : {
15787 "description" : "The cluster node name.",
15788 "format" : "pve-node",
15789 "type" : "string",
15790 "typetext" : "<string>"
15791 },
15792 "vmid" : {
15793 "description" : "The (unique) ID of the VM.",
15794 "format" : "pve-vmid",
8dd66e12
TL
15795 "maximum" : 999999999,
15796 "minimum" : 100,
27a7acb2 15797 "type" : "integer",
8dd66e12 15798 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
15799 }
15800 }
15801 },
15802 "permissions" : {
15803 "check" : [
15804 "perm",
15805 "/vms/{vmid}",
15806 [
15807 "VM.Monitor"
15808 ]
15809 ]
15810 },
15811 "protected" : 1,
15812 "proxyto" : "node",
15813 "returns" : {
15814 "description" : "Returns an object with a single `result` property.",
15815 "type" : "object"
15816 }
15817 }
15818 },
15819 "leaf" : 1,
15820 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram",
15821 "text" : "suspend-ram"
4d47f125
TL
15822 },
15823 {
15824 "info" : {
15825 "POST" : {
e9cd3bd4 15826 "allowtoken" : 1,
4d47f125
TL
15827 "description" : "Sets the password for the given user to the given password",
15828 "method" : "POST",
15829 "name" : "set-user-password",
15830 "parameters" : {
15831 "additionalProperties" : 0,
15832 "properties" : {
15833 "crypted" : {
15834 "default" : 0,
15835 "description" : "set to 1 if the password has already been passed through crypt()",
15836 "optional" : 1,
15837 "type" : "boolean",
15838 "typetext" : "<boolean>"
15839 },
15840 "node" : {
15841 "description" : "The cluster node name.",
15842 "format" : "pve-node",
15843 "type" : "string",
15844 "typetext" : "<string>"
15845 },
15846 "password" : {
15847 "description" : "The new password.",
1c532546 15848 "maxLength" : 1024,
4d47f125
TL
15849 "minLength" : 5,
15850 "type" : "string",
15851 "typetext" : "<string>"
15852 },
15853 "username" : {
15854 "description" : "The user to set the password for.",
15855 "type" : "string",
15856 "typetext" : "<string>"
15857 },
15858 "vmid" : {
15859 "description" : "The (unique) ID of the VM.",
15860 "format" : "pve-vmid",
8dd66e12
TL
15861 "maximum" : 999999999,
15862 "minimum" : 100,
4d47f125 15863 "type" : "integer",
8dd66e12 15864 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
15865 }
15866 }
27a7acb2 15867 },
4d47f125
TL
15868 "permissions" : {
15869 "check" : [
15870 "perm",
15871 "/vms/{vmid}",
15872 [
15873 "VM.Monitor"
15874 ]
15875 ]
15876 },
15877 "protected" : 1,
15878 "proxyto" : "node",
15879 "returns" : {
15880 "description" : "Returns an object with a single `result` property.",
15881 "type" : "object"
27a7acb2
DM
15882 }
15883 }
15884 },
4d47f125
TL
15885 "leaf" : 1,
15886 "path" : "/nodes/{node}/qemu/{vmid}/agent/set-user-password",
15887 "text" : "set-user-password"
27a7acb2 15888 },
4d47f125
TL
15889 {
15890 "info" : {
15891 "POST" : {
e9cd3bd4 15892 "allowtoken" : 1,
4d47f125
TL
15893 "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.",
15894 "method" : "POST",
15895 "name" : "exec",
15896 "parameters" : {
15897 "additionalProperties" : 0,
15898 "properties" : {
15899 "command" : {
4a407cfd
TL
15900 "description" : "The command as a list of program + arguments.",
15901 "items" : {
15902 "description" : "A single part of the program + arguments.",
15903 "format" : "string"
15904 },
15905 "type" : "array",
15906 "typetext" : "<array>"
c5aa7e14
TL
15907 },
15908 "input-data" : {
15909 "description" : "Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'.",
15910 "maxLength" : 65536,
15911 "optional" : 1,
4d47f125
TL
15912 "type" : "string",
15913 "typetext" : "<string>"
15914 },
15915 "node" : {
15916 "description" : "The cluster node name.",
15917 "format" : "pve-node",
15918 "type" : "string",
15919 "typetext" : "<string>"
15920 },
15921 "vmid" : {
15922 "description" : "The (unique) ID of the VM.",
15923 "format" : "pve-vmid",
8dd66e12
TL
15924 "maximum" : 999999999,
15925 "minimum" : 100,
4d47f125 15926 "type" : "integer",
8dd66e12 15927 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
15928 }
15929 }
27a7acb2 15930 },
4d47f125
TL
15931 "permissions" : {
15932 "check" : [
15933 "perm",
15934 "/vms/{vmid}",
15935 [
15936 "VM.Monitor"
15937 ]
15938 ]
27a7acb2 15939 },
4d47f125
TL
15940 "protected" : 1,
15941 "proxyto" : "node",
15942 "returns" : {
15943 "properties" : {
15944 "pid" : {
15945 "description" : "The PID of the process started by the guest-agent.",
15946 "type" : "integer"
15947 }
15948 },
15949 "type" : "object"
27a7acb2
DM
15950 }
15951 }
15952 },
4d47f125
TL
15953 "leaf" : 1,
15954 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec",
15955 "text" : "exec"
15956 },
15957 {
15958 "info" : {
15959 "GET" : {
e9cd3bd4 15960 "allowtoken" : 1,
4d47f125
TL
15961 "description" : "Gets the status of the given pid started by the guest-agent",
15962 "method" : "GET",
15963 "name" : "exec-status",
15964 "parameters" : {
15965 "additionalProperties" : 0,
15966 "properties" : {
15967 "node" : {
15968 "description" : "The cluster node name.",
15969 "format" : "pve-node",
15970 "type" : "string",
15971 "typetext" : "<string>"
15972 },
15973 "pid" : {
15974 "description" : "The PID to query",
15975 "type" : "integer",
15976 "typetext" : "<integer>"
15977 },
15978 "vmid" : {
15979 "description" : "The (unique) ID of the VM.",
15980 "format" : "pve-vmid",
8dd66e12
TL
15981 "maximum" : 999999999,
15982 "minimum" : 100,
4d47f125 15983 "type" : "integer",
8dd66e12 15984 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
15985 }
15986 }
56122987 15987 },
4d47f125
TL
15988 "permissions" : {
15989 "check" : [
15990 "perm",
15991 "/vms/{vmid}",
15992 [
15993 "VM.Monitor"
15994 ]
15995 ]
56122987 15996 },
4d47f125
TL
15997 "protected" : 1,
15998 "proxyto" : "node",
15999 "returns" : {
16000 "properties" : {
16001 "err-data" : {
16002 "description" : "stderr of the process",
16003 "optional" : 1,
16004 "type" : "string"
16005 },
16006 "err-truncated" : {
16007 "description" : "true if stderr was not fully captured",
16008 "optional" : 1,
16009 "type" : "boolean"
16010 },
16011 "exitcode" : {
16012 "description" : "process exit code if it was normally terminated.",
16013 "optional" : 1,
16014 "type" : "integer"
16015 },
16016 "exited" : {
16017 "description" : "Tells if the given command has exited yet.",
16018 "type" : "boolean"
16019 },
16020 "out-data" : {
16021 "description" : "stdout of the process",
16022 "optional" : 1,
16023 "type" : "string"
16024 },
16025 "out-truncated" : {
16026 "description" : "true if stdout was not fully captured",
16027 "optional" : 1,
16028 "type" : "boolean"
16029 },
16030 "signal" : {
16031 "description" : "signal number or exception code if the process was abnormally terminated.",
16032 "optional" : 1,
16033 "type" : "integer"
16034 }
16035 },
16036 "type" : "object"
56122987
DM
16037 }
16038 }
16039 },
4d47f125
TL
16040 "leaf" : 1,
16041 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status",
16042 "text" : "exec-status"
16043 },
16044 {
16045 "info" : {
16046 "GET" : {
e9cd3bd4 16047 "allowtoken" : 1,
4d47f125
TL
16048 "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
16049 "method" : "GET",
16050 "name" : "file-read",
16051 "parameters" : {
16052 "additionalProperties" : 0,
16053 "properties" : {
16054 "file" : {
16055 "description" : "The path to the file",
16056 "type" : "string",
16057 "typetext" : "<string>"
16058 },
16059 "node" : {
16060 "description" : "The cluster node name.",
16061 "format" : "pve-node",
16062 "type" : "string",
16063 "typetext" : "<string>"
16064 },
16065 "vmid" : {
16066 "description" : "The (unique) ID of the VM.",
16067 "format" : "pve-vmid",
8dd66e12
TL
16068 "maximum" : 999999999,
16069 "minimum" : 100,
4d47f125 16070 "type" : "integer",
8dd66e12 16071 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
16072 }
16073 }
16074 },
16075 "permissions" : {
16076 "check" : [
16077 "perm",
16078 "/vms/{vmid}",
16079 [
16080 "VM.Monitor"
16081 ]
16082 ]
16083 },
16084 "protected" : 1,
16085 "proxyto" : "node",
16086 "returns" : {
16087 "description" : "Returns an object with a `content` property.",
16088 "properties" : {
16089 "content" : {
16090 "description" : "The content of the file, maximum 16777216",
16091 "type" : "string"
16092 },
16093 "truncated" : {
16094 "description" : "If set to 1, the output is truncated and not complete",
16095 "optional" : 1,
16096 "type" : "boolean"
16097 }
16098 },
16099 "type" : "object"
16100 }
16101 }
56122987 16102 },
4d47f125
TL
16103 "leaf" : 1,
16104 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-read",
16105 "text" : "file-read"
16106 },
16107 {
16108 "info" : {
16109 "POST" : {
e9cd3bd4 16110 "allowtoken" : 1,
4d47f125
TL
16111 "description" : "Writes the given file via guest agent.",
16112 "method" : "POST",
16113 "name" : "file-write",
16114 "parameters" : {
16115 "additionalProperties" : 0,
16116 "properties" : {
16117 "content" : {
16118 "description" : "The content to write into the file.",
16119 "maxLength" : 61440,
16120 "type" : "string",
16121 "typetext" : "<string>"
16122 },
7af2edf9
TL
16123 "encode" : {
16124 "default" : 1,
16125 "description" : "If set, the content will be encoded as base64 (required by QEMU).Otherwise the content needs to be encoded beforehand - defaults to true.",
16126 "optional" : 1,
16127 "type" : "boolean",
16128 "typetext" : "<boolean>"
16129 },
4d47f125
TL
16130 "file" : {
16131 "description" : "The path to the file.",
16132 "type" : "string",
16133 "typetext" : "<string>"
16134 },
16135 "node" : {
16136 "description" : "The cluster node name.",
16137 "format" : "pve-node",
16138 "type" : "string",
16139 "typetext" : "<string>"
16140 },
16141 "vmid" : {
16142 "description" : "The (unique) ID of the VM.",
16143 "format" : "pve-vmid",
8dd66e12
TL
16144 "maximum" : 999999999,
16145 "minimum" : 100,
4d47f125 16146 "type" : "integer",
8dd66e12 16147 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
16148 }
16149 }
16150 },
16151 "permissions" : {
16152 "check" : [
16153 "perm",
16154 "/vms/{vmid}",
16155 [
16156 "VM.Monitor"
16157 ]
16158 ]
16159 },
16160 "protected" : 1,
16161 "proxyto" : "node",
16162 "returns" : {
16163 "type" : "null"
7aacca6f 16164 }
4d47f125
TL
16165 }
16166 },
16167 "leaf" : 1,
16168 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write",
16169 "text" : "file-write"
56122987 16170 }
4d47f125 16171 ],
7aacca6f 16172 "info" : {
56122987 16173 "GET" : {
e9cd3bd4 16174 "allowtoken" : 1,
9d2e98ed 16175 "description" : "QEMU Guest Agent command index.",
44660702 16176 "method" : "GET",
4d47f125 16177 "name" : "index",
56122987 16178 "parameters" : {
4d47f125 16179 "additionalProperties" : 1,
56122987
DM
16180 "properties" : {
16181 "node" : {
44660702 16182 "description" : "The cluster node name.",
56122987 16183 "format" : "pve-node",
013dc89f
DM
16184 "type" : "string",
16185 "typetext" : "<string>"
56122987 16186 },
7aacca6f 16187 "vmid" : {
7aacca6f
DM
16188 "description" : "The (unique) ID of the VM.",
16189 "format" : "pve-vmid",
8dd66e12
TL
16190 "maximum" : 999999999,
16191 "minimum" : 100,
4bd7df8b 16192 "type" : "integer",
8dd66e12 16193 "typetext" : "<integer> (100 - 999999999)"
56122987 16194 }
44660702 16195 }
56122987 16196 },
56122987 16197 "permissions" : {
4d47f125 16198 "user" : "all"
56122987 16199 },
4d47f125 16200 "proxyto" : "node",
7aacca6f 16201 "returns" : {
9d2e98ed 16202 "description" : "Returns the list of QEMU Guest Agent commands",
7aacca6f 16203 "items" : {
44660702
DM
16204 "properties" : {},
16205 "type" : "object"
16206 },
4d47f125
TL
16207 "links" : [
16208 {
16209 "href" : "{name}",
16210 "rel" : "child"
16211 }
16212 ],
44660702 16213 "type" : "array"
7aacca6f 16214 }
4d47f125
TL
16215 },
16216 "POST" : {
e9cd3bd4 16217 "allowtoken" : 1,
9d2e98ed 16218 "description" : "Execute QEMU Guest Agent commands.",
4d47f125
TL
16219 "method" : "POST",
16220 "name" : "agent",
44660702
DM
16221 "parameters" : {
16222 "additionalProperties" : 0,
16223 "properties" : {
4d47f125
TL
16224 "command" : {
16225 "description" : "The QGA command.",
16226 "enum" : [
16227 "fsfreeze-freeze",
16228 "fsfreeze-status",
16229 "fsfreeze-thaw",
16230 "fstrim",
16231 "get-fsinfo",
16232 "get-host-name",
16233 "get-memory-block-info",
16234 "get-memory-blocks",
16235 "get-osinfo",
16236 "get-time",
16237 "get-timezone",
16238 "get-users",
16239 "get-vcpus",
16240 "info",
16241 "network-get-interfaces",
16242 "ping",
16243 "shutdown",
16244 "suspend-disk",
16245 "suspend-hybrid",
16246 "suspend-ram"
16247 ],
16248 "type" : "string"
16249 },
16250 "node" : {
16251 "description" : "The cluster node name.",
16252 "format" : "pve-node",
16253 "type" : "string",
16254 "typetext" : "<string>"
16255 },
16256 "vmid" : {
16257 "description" : "The (unique) ID of the VM.",
16258 "format" : "pve-vmid",
8dd66e12
TL
16259 "maximum" : 999999999,
16260 "minimum" : 100,
4d47f125 16261 "type" : "integer",
8dd66e12 16262 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
16263 }
16264 }
16265 },
16266 "permissions" : {
16267 "check" : [
16268 "perm",
16269 "/vms/{vmid}",
16270 [
16271 "VM.Monitor"
16272 ]
16273 ]
16274 },
16275 "protected" : 1,
16276 "proxyto" : "node",
16277 "returns" : {
16278 "description" : "Returns an object with a single `result` property.",
16279 "type" : "object"
16280 }
16281 }
16282 },
16283 "leaf" : 0,
16284 "path" : "/nodes/{node}/qemu/{vmid}/agent",
16285 "text" : "agent"
16286 },
16287 {
16288 "info" : {
16289 "GET" : {
e9cd3bd4 16290 "allowtoken" : 1,
4d47f125
TL
16291 "description" : "Read VM RRD statistics (returns PNG)",
16292 "method" : "GET",
16293 "name" : "rrd",
16294 "parameters" : {
16295 "additionalProperties" : 0,
16296 "properties" : {
16297 "cf" : {
16298 "description" : "The RRD consolidation function",
16299 "enum" : [
16300 "AVERAGE",
16301 "MAX"
16302 ],
44660702 16303 "optional" : 1,
4d47f125
TL
16304 "type" : "string"
16305 },
16306 "ds" : {
16307 "description" : "The list of datasources you want to display.",
16308 "format" : "pve-configid-list",
16309 "type" : "string",
16310 "typetext" : "<string>"
44660702
DM
16311 },
16312 "node" : {
16313 "description" : "The cluster node name.",
16314 "format" : "pve-node",
013dc89f
DM
16315 "type" : "string",
16316 "typetext" : "<string>"
44660702 16317 },
4d47f125
TL
16318 "timeframe" : {
16319 "description" : "Specify the time frame you are interested in.",
16320 "enum" : [
16321 "hour",
16322 "day",
16323 "week",
16324 "month",
16325 "year"
16326 ],
16327 "type" : "string"
16328 },
44660702
DM
16329 "vmid" : {
16330 "description" : "The (unique) ID of the VM.",
16331 "format" : "pve-vmid",
8dd66e12
TL
16332 "maximum" : 999999999,
16333 "minimum" : 100,
4bd7df8b 16334 "type" : "integer",
8dd66e12 16335 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
16336 }
16337 }
7aacca6f 16338 },
56122987
DM
16339 "permissions" : {
16340 "check" : [
16341 "perm",
16342 "/vms/{vmid}",
16343 [
44660702
DM
16344 "VM.Audit"
16345 ]
56122987
DM
16346 ]
16347 },
4d47f125 16348 "protected" : 1,
44660702
DM
16349 "returns" : {
16350 "properties" : {
4d47f125 16351 "filename" : {
44660702
DM
16352 "type" : "string"
16353 }
16354 },
16355 "type" : "object"
16356 }
4d47f125
TL
16357 }
16358 },
16359 "leaf" : 1,
16360 "path" : "/nodes/{node}/qemu/{vmid}/rrd",
16361 "text" : "rrd"
16362 },
16363 {
16364 "info" : {
16365 "GET" : {
e9cd3bd4 16366 "allowtoken" : 1,
4d47f125
TL
16367 "description" : "Read VM RRD statistics",
16368 "method" : "GET",
16369 "name" : "rrddata",
16370 "parameters" : {
16371 "additionalProperties" : 0,
16372 "properties" : {
16373 "cf" : {
16374 "description" : "The RRD consolidation function",
16375 "enum" : [
16376 "AVERAGE",
16377 "MAX"
16378 ],
16379 "optional" : 1,
16380 "type" : "string"
16381 },
16382 "node" : {
16383 "description" : "The cluster node name.",
16384 "format" : "pve-node",
16385 "type" : "string",
16386 "typetext" : "<string>"
16387 },
16388 "timeframe" : {
16389 "description" : "Specify the time frame you are interested in.",
16390 "enum" : [
16391 "hour",
16392 "day",
16393 "week",
16394 "month",
16395 "year"
16396 ],
16397 "type" : "string"
16398 },
16399 "vmid" : {
16400 "description" : "The (unique) ID of the VM.",
16401 "format" : "pve-vmid",
8dd66e12
TL
16402 "maximum" : 999999999,
16403 "minimum" : 100,
4d47f125 16404 "type" : "integer",
8dd66e12 16405 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
16406 }
16407 }
16408 },
16409 "permissions" : {
16410 "check" : [
16411 "perm",
16412 "/vms/{vmid}",
16413 [
16414 "VM.Audit"
16415 ]
16416 ]
16417 },
16418 "protected" : 1,
16419 "returns" : {
16420 "items" : {
16421 "properties" : {},
16422 "type" : "object"
16423 },
16424 "type" : "array"
16425 }
16426 }
16427 },
16428 "leaf" : 1,
16429 "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
16430 "text" : "rrddata"
16431 },
16432 {
16433 "info" : {
16434 "GET" : {
e9cd3bd4
TL
16435 "allowtoken" : 1,
16436 "description" : "Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead.",
4d47f125
TL
16437 "method" : "GET",
16438 "name" : "vm_config",
56122987 16439 "parameters" : {
44660702 16440 "additionalProperties" : 0,
4d47f125
TL
16441 "properties" : {
16442 "current" : {
16443 "default" : 0,
16444 "description" : "Get current values (instead of pending values).",
16445 "optional" : 1,
16446 "type" : "boolean",
16447 "typetext" : "<boolean>"
16448 },
16449 "node" : {
16450 "description" : "The cluster node name.",
16451 "format" : "pve-node",
16452 "type" : "string",
16453 "typetext" : "<string>"
16454 },
5f26e15b
TL
16455 "snapshot" : {
16456 "description" : "Fetch config values from given snapshot.",
16457 "format" : "pve-configid",
16458 "maxLength" : 40,
16459 "optional" : 1,
16460 "type" : "string",
16461 "typetext" : "<string>"
16462 },
4d47f125
TL
16463 "vmid" : {
16464 "description" : "The (unique) ID of the VM.",
16465 "format" : "pve-vmid",
8dd66e12
TL
16466 "maximum" : 999999999,
16467 "minimum" : 100,
4d47f125 16468 "type" : "integer",
8dd66e12 16469 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
16470 }
16471 }
16472 },
16473 "permissions" : {
16474 "check" : [
16475 "perm",
16476 "/vms/{vmid}",
16477 [
16478 "VM.Audit"
16479 ]
16480 ]
16481 },
16482 "proxyto" : "node",
16483 "returns" : {
e9cd3bd4 16484 "description" : "The VM configuration.",
56122987 16485 "properties" : {
44660702
DM
16486 "acpi" : {
16487 "default" : 1,
16488 "description" : "Enable/disable ACPI.",
16489 "optional" : 1,
4d47f125 16490 "type" : "boolean"
44660702 16491 },
4e7f60c2 16492 "affinity" : {
81a3384d 16493 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
16494 "format" : "pve-cpuset",
16495 "optional" : 1,
16496 "type" : "string"
16497 },
44660702 16498 "agent" : {
9d2e98ed 16499 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
16500 "format" : {
16501 "enabled" : {
16502 "default" : 0,
16503 "default_key" : 1,
9d2e98ed
TL
16504 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
16505 "type" : "boolean"
16506 },
16507 "freeze-fs-on-backup" : {
16508 "default" : 1,
16509 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
16510 "optional" : 1,
4d47f125
TL
16511 "type" : "boolean"
16512 },
16513 "fstrim_cloned_disks" : {
16514 "default" : 0,
d2656385 16515 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
16516 "optional" : 1,
16517 "type" : "boolean"
5c1699e5
TL
16518 },
16519 "type" : {
16520 "default" : "virtio",
16521 "description" : "Select the agent type",
16522 "enum" : [
16523 "virtio",
16524 "isa"
16525 ],
16526 "optional" : 1,
16527 "type" : "string"
4d47f125
TL
16528 }
16529 },
7aacca6f 16530 "optional" : 1,
4d47f125 16531 "type" : "string"
7aacca6f 16532 },
e2d681b3
TL
16533 "arch" : {
16534 "description" : "Virtual processor architecture. Defaults to the host.",
16535 "enum" : [
16536 "x86_64",
16537 "aarch64"
16538 ],
16539 "optional" : 1,
16540 "type" : "string"
16541 },
44660702 16542 "args" : {
c2993fe5 16543 "description" : "Arbitrary arguments passed to kvm.",
44660702 16544 "optional" : 1,
c2993fe5 16545 "type" : "string",
159464a9 16546 "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 16547 },
1c532546
TL
16548 "audio0" : {
16549 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
16550 "format" : {
16551 "device" : {
16552 "description" : "Configure an audio device.",
16553 "enum" : [
16554 "ich9-intel-hda",
16555 "intel-hda",
16556 "AC97"
16557 ],
16558 "type" : "string"
16559 },
16560 "driver" : {
16561 "default" : "spice",
16562 "description" : "Driver backend for the audio device.",
16563 "enum" : [
d2656385
TL
16564 "spice",
16565 "none"
1c532546
TL
16566 ],
16567 "optional" : 1,
16568 "type" : "string"
16569 }
16570 },
16571 "optional" : 1,
16572 "type" : "string"
16573 },
44660702
DM
16574 "autostart" : {
16575 "default" : 0,
16576 "description" : "Automatic restart after crash (currently ignored).",
56122987 16577 "optional" : 1,
4d47f125 16578 "type" : "boolean"
56122987 16579 },
4d47f125 16580 "balloon" : {
9d2e98ed 16581 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
4d47f125 16582 "minimum" : 0,
7aacca6f 16583 "optional" : 1,
4d47f125 16584 "type" : "integer"
7aacca6f 16585 },
44660702
DM
16586 "bios" : {
16587 "default" : "seabios",
16588 "description" : "Select BIOS implementation.",
16589 "enum" : [
16590 "seabios",
16591 "ovmf"
16592 ],
56122987 16593 "optional" : 1,
44660702 16594 "type" : "string"
7aacca6f 16595 },
44660702 16596 "boot" : {
5370fa8c 16597 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 16598 "format" : "pve-qm-boot",
44660702 16599 "optional" : 1,
44660702
DM
16600 "type" : "string"
16601 },
16602 "bootdisk" : {
4772952b 16603 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
16604 "format" : "pve-qm-bootdisk",
16605 "optional" : 1,
16606 "pattern" : "(ide|sata|scsi|virtio)\\d+",
16607 "type" : "string"
16608 },
16609 "cdrom" : {
16610 "description" : "This is an alias for option -ide2",
de0983cb 16611 "format" : "pve-qm-ide",
44660702 16612 "optional" : 1,
7aacca6f 16613 "type" : "string",
013dc89f 16614 "typetext" : "<volume>"
44660702 16615 },
95895385
TL
16616 "cicustom" : {
16617 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
16618 "format" : "pve-qm-cicustom",
16619 "optional" : 1,
16620 "type" : "string"
16621 },
27a7acb2
DM
16622 "cipassword" : {
16623 "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.",
16624 "optional" : 1,
4d47f125 16625 "type" : "string"
27a7acb2
DM
16626 },
16627 "citype" : {
16628 "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.",
16629 "enum" : [
16630 "configdrive2",
d2656385
TL
16631 "nocloud",
16632 "opennebula"
27a7acb2
DM
16633 ],
16634 "optional" : 1,
16635 "type" : "string"
16636 },
159464a9 16637 "ciupgrade" : {
c8eee6ff 16638 "default" : 1,
159464a9
TL
16639 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
16640 "optional" : 1,
16641 "type" : "boolean"
16642 },
27a7acb2
DM
16643 "ciuser" : {
16644 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
16645 "optional" : 1,
4d47f125 16646 "type" : "string"
27a7acb2 16647 },
44660702
DM
16648 "cores" : {
16649 "default" : 1,
16650 "description" : "The number of cores per socket.",
16651 "minimum" : 1,
7aacca6f 16652 "optional" : 1,
4d47f125 16653 "type" : "integer"
7aacca6f 16654 },
44660702
DM
16655 "cpu" : {
16656 "description" : "Emulated CPU type.",
c5aa7e14 16657 "format" : "pve-vm-cpu-conf",
44660702 16658 "optional" : 1,
4d47f125 16659 "type" : "string"
44660702
DM
16660 },
16661 "cpulimit" : {
16662 "default" : 0,
c2993fe5 16663 "description" : "Limit of CPU usage.",
44660702
DM
16664 "maximum" : 128,
16665 "minimum" : 0,
16666 "optional" : 1,
c2993fe5
DM
16667 "type" : "number",
16668 "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
16669 },
16670 "cpuunits" : {
5370fa8c
TL
16671 "default" : "cgroup v1: 1024, cgroup v2: 100",
16672 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 16673 "maximum" : 262144,
7af2edf9 16674 "minimum" : 1,
44660702 16675 "optional" : 1,
c2993fe5 16676 "type" : "integer",
2489d6df 16677 "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 16678 },
44660702 16679 "description" : {
8f4d9c87
TL
16680 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
16681 "maxLength" : 8192,
44660702 16682 "optional" : 1,
4d47f125 16683 "type" : "string"
44660702
DM
16684 },
16685 "digest" : {
4d47f125
TL
16686 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
16687 "type" : "string"
44660702 16688 },
4d47f125 16689 "efidisk0" : {
9d2e98ed 16690 "description" : "Configure a disk for storing EFI vars.",
4d47f125 16691 "format" : {
5370fa8c
TL
16692 "efitype" : {
16693 "default" : "2m",
bd92b745 16694 "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
16695 "enum" : [
16696 "2m",
16697 "4m"
16698 ],
16699 "optional" : 1,
16700 "type" : "string"
16701 },
4d47f125
TL
16702 "file" : {
16703 "default_key" : 1,
16704 "description" : "The drive's backing volume.",
16705 "format" : "pve-volume-id-or-qm-path",
16706 "format_description" : "volume",
16707 "type" : "string"
16708 },
16709 "format" : {
16710 "description" : "The drive's backing file's data format.",
16711 "enum" : [
16712 "raw",
16713 "cow",
16714 "qcow",
16715 "qed",
16716 "qcow2",
16717 "vmdk",
16718 "cloop"
16719 ],
16720 "optional" : 1,
16721 "type" : "string"
16722 },
5370fa8c
TL
16723 "pre-enrolled-keys" : {
16724 "default" : 0,
16725 "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.",
16726 "optional" : 1,
16727 "type" : "boolean"
16728 },
4d47f125
TL
16729 "size" : {
16730 "description" : "Disk size. This is purely informational and has no effect.",
16731 "format" : "disk-size",
16732 "format_description" : "DiskSize",
16733 "optional" : 1,
16734 "type" : "string"
16735 },
16736 "volume" : {
16737 "alias" : "file"
16738 }
16739 },
44660702 16740 "optional" : 1,
4d47f125 16741 "type" : "string"
44660702
DM
16742 },
16743 "freeze" : {
16744 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
16745 "optional" : 1,
4d47f125 16746 "type" : "boolean"
44660702 16747 },
5f26e15b
TL
16748 "hookscript" : {
16749 "description" : "Script that will be executed during various steps in the vms lifetime.",
16750 "format" : "pve-volume-id",
16751 "optional" : 1,
16752 "type" : "string"
16753 },
44660702 16754 "hostpci[n]" : {
c2993fe5 16755 "description" : "Map host PCI devices into guest.",
44660702
DM
16756 "format" : "pve-qm-hostpci",
16757 "optional" : 1,
57b78691 16758 "type" : "string",
bb4c8cf8 16759 "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
16760 },
16761 "hotplug" : {
16762 "default" : "network,disk,usb",
4e7f60c2 16763 "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
16764 "format" : "pve-hotplug-features",
16765 "optional" : 1,
4d47f125 16766 "type" : "string"
44660702 16767 },
4bd7df8b
DM
16768 "hugepages" : {
16769 "description" : "Enable/disable hugepages memory.",
16770 "enum" : [
16771 "any",
16772 "2",
16773 "1024"
16774 ],
16775 "optional" : 1,
16776 "type" : "string"
16777 },
44660702 16778 "ide[n]" : {
7af2edf9 16779 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
44660702
DM
16780 "format" : {
16781 "aio" : {
16782 "description" : "AIO type to use.",
16783 "enum" : [
16784 "native",
8f4d9c87
TL
16785 "threads",
16786 "io_uring"
56122987 16787 ],
56122987 16788 "optional" : 1,
44660702 16789 "type" : "string"
56122987 16790 },
44660702
DM
16791 "backup" : {
16792 "description" : "Whether the drive should be included when making backups.",
56122987 16793 "optional" : 1,
44660702 16794 "type" : "boolean"
56122987 16795 },
7aacca6f 16796 "bps" : {
de0983cb 16797 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
16798 "format_description" : "bps",
16799 "optional" : 1,
16800 "type" : "integer"
16801 },
de0983cb
DM
16802 "bps_max_length" : {
16803 "description" : "Maximum length of I/O bursts in seconds.",
16804 "format_description" : "seconds",
16805 "minimum" : 1,
16806 "optional" : 1,
16807 "type" : "integer"
16808 },
44660702 16809 "bps_rd" : {
de0983cb 16810 "description" : "Maximum read speed in bytes per second.",
44660702 16811 "format_description" : "bps",
56122987 16812 "optional" : 1,
44660702 16813 "type" : "integer"
56122987 16814 },
de0983cb 16815 "bps_rd_length" : {
5d9c884c
DM
16816 "alias" : "bps_rd_max_length"
16817 },
16818 "bps_rd_max_length" : {
de0983cb
DM
16819 "description" : "Maximum length of read I/O bursts in seconds.",
16820 "format_description" : "seconds",
16821 "minimum" : 1,
16822 "optional" : 1,
16823 "type" : "integer"
16824 },
44660702 16825 "bps_wr" : {
de0983cb 16826 "description" : "Maximum write speed in bytes per second.",
44660702
DM
16827 "format_description" : "bps",
16828 "optional" : 1,
16829 "type" : "integer"
16830 },
de0983cb 16831 "bps_wr_length" : {
5d9c884c
DM
16832 "alias" : "bps_wr_max_length"
16833 },
16834 "bps_wr_max_length" : {
de0983cb
DM
16835 "description" : "Maximum length of write I/O bursts in seconds.",
16836 "format_description" : "seconds",
16837 "minimum" : 1,
16838 "optional" : 1,
16839 "type" : "integer"
16840 },
44660702
DM
16841 "cache" : {
16842 "description" : "The drive's cache mode",
16843 "enum" : [
16844 "none",
16845 "writethrough",
16846 "writeback",
16847 "unsafe",
16848 "directsync"
16849 ],
44660702
DM
16850 "optional" : 1,
16851 "type" : "string"
16852 },
16853 "cyls" : {
16854 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16855 "optional" : 1,
16856 "type" : "integer"
16857 },
16858 "detect_zeroes" : {
16859 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16860 "optional" : 1,
16861 "type" : "boolean"
16862 },
16863 "discard" : {
16864 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
16865 "enum" : [
16866 "ignore",
16867 "on"
16868 ],
56122987 16869 "optional" : 1,
44660702
DM
16870 "type" : "string"
16871 },
16872 "file" : {
16873 "default_key" : 1,
16874 "description" : "The drive's backing volume.",
16875 "format" : "pve-volume-id-or-qm-path",
16876 "format_description" : "volume",
16877 "type" : "string"
56122987 16878 },
7aacca6f 16879 "format" : {
7aacca6f 16880 "description" : "The drive's backing file's data format.",
56122987 16881 "enum" : [
7aacca6f
DM
16882 "raw",
16883 "cow",
16884 "qcow",
16885 "qed",
16886 "qcow2",
16887 "vmdk",
16888 "cloop"
56122987
DM
16889 ],
16890 "optional" : 1,
56122987
DM
16891 "type" : "string"
16892 },
44660702
DM
16893 "heads" : {
16894 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
16895 "optional" : 1,
16896 "type" : "integer"
7aacca6f 16897 },
44660702 16898 "iops" : {
de0983cb 16899 "description" : "Maximum r/w I/O in operations per second.",
44660702 16900 "format_description" : "iops",
56122987 16901 "optional" : 1,
44660702 16902 "type" : "integer"
56122987 16903 },
44660702 16904 "iops_max" : {
de0983cb 16905 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 16906 "format_description" : "iops",
56122987 16907 "optional" : 1,
44660702 16908 "type" : "integer"
56122987 16909 },
de0983cb
DM
16910 "iops_max_length" : {
16911 "description" : "Maximum length of I/O bursts in seconds.",
16912 "format_description" : "seconds",
16913 "minimum" : 1,
16914 "optional" : 1,
16915 "type" : "integer"
16916 },
44660702 16917 "iops_rd" : {
de0983cb 16918 "description" : "Maximum read I/O in operations per second.",
44660702
DM
16919 "format_description" : "iops",
16920 "optional" : 1,
16921 "type" : "integer"
16922 },
de0983cb 16923 "iops_rd_length" : {
5d9c884c 16924 "alias" : "iops_rd_max_length"
de0983cb 16925 },
44660702 16926 "iops_rd_max" : {
de0983cb 16927 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 16928 "format_description" : "iops",
44660702
DM
16929 "optional" : 1,
16930 "type" : "integer"
16931 },
5d9c884c
DM
16932 "iops_rd_max_length" : {
16933 "description" : "Maximum length of read I/O bursts in seconds.",
16934 "format_description" : "seconds",
16935 "minimum" : 1,
16936 "optional" : 1,
16937 "type" : "integer"
16938 },
44660702 16939 "iops_wr" : {
de0983cb 16940 "description" : "Maximum write I/O in operations per second.",
44660702 16941 "format_description" : "iops",
56122987 16942 "optional" : 1,
7aacca6f 16943 "type" : "integer"
56122987 16944 },
de0983cb 16945 "iops_wr_length" : {
5d9c884c 16946 "alias" : "iops_wr_max_length"
de0983cb 16947 },
44660702 16948 "iops_wr_max" : {
de0983cb 16949 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 16950 "format_description" : "iops",
7aacca6f 16951 "optional" : 1,
44660702 16952 "type" : "integer"
56122987 16953 },
5d9c884c
DM
16954 "iops_wr_max_length" : {
16955 "description" : "Maximum length of write I/O bursts in seconds.",
16956 "format_description" : "seconds",
16957 "minimum" : 1,
16958 "optional" : 1,
16959 "type" : "integer"
16960 },
44660702 16961 "mbps" : {
de0983cb 16962 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
16963 "format_description" : "mbps",
16964 "optional" : 1,
16965 "type" : "number"
16966 },
16967 "mbps_max" : {
de0983cb 16968 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
16969 "format_description" : "mbps",
16970 "optional" : 1,
16971 "type" : "number"
16972 },
16973 "mbps_rd" : {
de0983cb 16974 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
16975 "format_description" : "mbps",
16976 "optional" : 1,
16977 "type" : "number"
16978 },
16979 "mbps_rd_max" : {
de0983cb 16980 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
16981 "format_description" : "mbps",
16982 "optional" : 1,
16983 "type" : "number"
16984 },
16985 "mbps_wr" : {
de0983cb 16986 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
16987 "format_description" : "mbps",
16988 "optional" : 1,
16989 "type" : "number"
16990 },
16991 "mbps_wr_max" : {
de0983cb 16992 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 16993 "format_description" : "mbps",
56122987 16994 "optional" : 1,
44660702 16995 "type" : "number"
56122987 16996 },
7aacca6f 16997 "media" : {
7aacca6f 16998 "default" : "disk",
7aacca6f
DM
16999 "description" : "The drive's media type.",
17000 "enum" : [
17001 "cdrom",
17002 "disk"
44660702 17003 ],
44660702
DM
17004 "optional" : 1,
17005 "type" : "string"
56122987 17006 },
44660702
DM
17007 "model" : {
17008 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
17009 "format" : "urlencoded",
17010 "format_description" : "model",
17011 "maxLength" : 120,
56122987 17012 "optional" : 1,
44660702 17013 "type" : "string"
56122987 17014 },
5d9c884c
DM
17015 "replicate" : {
17016 "default" : 1,
17017 "description" : "Whether the drive should considered for replication jobs.",
17018 "optional" : 1,
17019 "type" : "boolean"
17020 },
44660702
DM
17021 "rerror" : {
17022 "description" : "Read error action.",
17023 "enum" : [
17024 "ignore",
17025 "report",
17026 "stop"
17027 ],
56122987 17028 "optional" : 1,
44660702
DM
17029 "type" : "string"
17030 },
17031 "secs" : {
17032 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
17033 "optional" : 1,
17034 "type" : "integer"
17035 },
17036 "serial" : {
17037 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
17038 "format" : "urlencoded",
17039 "format_description" : "serial",
17040 "maxLength" : 60,
17041 "optional" : 1,
17042 "type" : "string"
17043 },
27a7acb2
DM
17044 "shared" : {
17045 "default" : 0,
17046 "description" : "Mark this locally-managed volume as available on all nodes",
17047 "optional" : 1,
17048 "type" : "boolean",
17049 "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!"
17050 },
44660702
DM
17051 "size" : {
17052 "description" : "Disk size. This is purely informational and has no effect.",
17053 "format" : "disk-size",
f004f5b9 17054 "format_description" : "DiskSize",
44660702
DM
17055 "optional" : 1,
17056 "type" : "string"
17057 },
17058 "snapshot" : {
27a7acb2 17059 "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
17060 "optional" : 1,
17061 "type" : "boolean"
17062 },
25203dc1
NC
17063 "ssd" : {
17064 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17065 "optional" : 1,
17066 "type" : "boolean"
17067 },
44660702
DM
17068 "trans" : {
17069 "description" : "Force disk geometry bios translation mode.",
17070 "enum" : [
17071 "none",
17072 "lba",
17073 "auto"
17074 ],
44660702
DM
17075 "optional" : 1,
17076 "type" : "string"
17077 },
17078 "volume" : {
17079 "alias" : "file"
17080 },
17081 "werror" : {
17082 "description" : "Write error action.",
17083 "enum" : [
17084 "enospc",
17085 "ignore",
17086 "report",
17087 "stop"
17088 ],
44660702
DM
17089 "optional" : 1,
17090 "type" : "string"
95895385
TL
17091 },
17092 "wwn" : {
17093 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17094 "format_description" : "wwn",
17095 "optional" : 1,
17096 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17097 "type" : "string"
56122987
DM
17098 }
17099 },
44660702 17100 "optional" : 1,
4d47f125 17101 "type" : "string"
27a7acb2
DM
17102 },
17103 "ipconfig[n]" : {
d2656385 17104 "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
17105 "format" : "pve-qm-ipconfig",
17106 "optional" : 1,
4d47f125 17107 "type" : "string"
56122987 17108 },
95895385
TL
17109 "ivshmem" : {
17110 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
17111 "format" : {
17112 "name" : {
17113 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
17114 "format_description" : "string",
17115 "optional" : 1,
17116 "pattern" : "[a-zA-Z0-9\\-]+",
17117 "type" : "string"
17118 },
17119 "size" : {
17120 "description" : "The size of the file in MB.",
17121 "minimum" : 1,
17122 "type" : "integer"
17123 }
17124 },
17125 "optional" : 1,
17126 "type" : "string"
17127 },
4772952b
TL
17128 "keephugepages" : {
17129 "default" : 0,
17130 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
17131 "optional" : 1,
17132 "type" : "boolean"
17133 },
44660702 17134 "keyboard" : {
35a75dd3 17135 "default" : null,
7af2edf9 17136 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
17137 "enum" : [
17138 "de",
17139 "de-ch",
17140 "da",
17141 "en-gb",
17142 "en-us",
17143 "es",
17144 "fi",
17145 "fr",
17146 "fr-be",
17147 "fr-ca",
17148 "fr-ch",
17149 "hu",
17150 "is",
17151 "it",
17152 "ja",
17153 "lt",
17154 "mk",
17155 "nl",
17156 "no",
17157 "pl",
17158 "pt",
17159 "pt-br",
17160 "sv",
17161 "sl",
17162 "tr"
17163 ],
56122987 17164 "optional" : 1,
44660702
DM
17165 "type" : "string"
17166 },
17167 "kvm" : {
7aacca6f 17168 "default" : 1,
44660702
DM
17169 "description" : "Enable/disable KVM hardware virtualization.",
17170 "optional" : 1,
4d47f125 17171 "type" : "boolean"
56122987 17172 },
44660702 17173 "localtime" : {
5370fa8c 17174 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 17175 "optional" : 1,
4d47f125 17176 "type" : "boolean"
56122987 17177 },
44660702
DM
17178 "lock" : {
17179 "description" : "Lock/unlock the VM.",
17180 "enum" : [
44660702 17181 "backup",
5f26e15b
TL
17182 "clone",
17183 "create",
17184 "migrate",
17185 "rollback",
44660702 17186 "snapshot",
95895385
TL
17187 "snapshot-delete",
17188 "suspending",
17189 "suspended"
44660702 17190 ],
7aacca6f 17191 "optional" : 1,
44660702
DM
17192 "type" : "string"
17193 },
17194 "machine" : {
9d2e98ed 17195 "description" : "Specifies the QEMU machine type.",
44660702
DM
17196 "maxLength" : 40,
17197 "optional" : 1,
5c1699e5 17198 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
17199 "type" : "string"
17200 },
17201 "memory" : {
bd92b745
TL
17202 "description" : "Memory properties.",
17203 "format" : {
17204 "current" : {
17205 "default" : 512,
17206 "default_key" : 1,
17207 "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
17208 "minimum" : 16,
17209 "type" : "integer"
17210 }
17211 },
44660702 17212 "optional" : 1,
bd92b745 17213 "type" : "string"
44660702
DM
17214 },
17215 "migrate_downtime" : {
17216 "default" : 0.1,
17217 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
17218 "minimum" : 0,
17219 "optional" : 1,
4d47f125 17220 "type" : "number"
44660702
DM
17221 },
17222 "migrate_speed" : {
17223 "default" : 0,
17224 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
17225 "minimum" : 0,
17226 "optional" : 1,
4d47f125 17227 "type" : "integer"
44660702
DM
17228 },
17229 "name" : {
17230 "description" : "Set a name for the VM. Only used on the configuration web interface.",
17231 "format" : "dns-name",
17232 "optional" : 1,
4d47f125 17233 "type" : "string"
44660702 17234 },
27a7acb2 17235 "nameserver" : {
de786b48 17236 "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
17237 "format" : "address-list",
17238 "optional" : 1,
4d47f125 17239 "type" : "string"
27a7acb2 17240 },
44660702 17241 "net[n]" : {
c2993fe5 17242 "description" : "Specify network devices.",
f004f5b9
DM
17243 "format" : {
17244 "bridge" : {
c2993fe5 17245 "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 17246 "format" : "pve-bridge-id",
f004f5b9
DM
17247 "format_description" : "bridge",
17248 "optional" : 1,
17249 "type" : "string"
17250 },
17251 "e1000" : {
17252 "alias" : "macaddr",
17253 "keyAlias" : "model"
17254 },
17255 "e1000-82540em" : {
17256 "alias" : "macaddr",
17257 "keyAlias" : "model"
17258 },
17259 "e1000-82544gc" : {
17260 "alias" : "macaddr",
17261 "keyAlias" : "model"
17262 },
17263 "e1000-82545em" : {
17264 "alias" : "macaddr",
17265 "keyAlias" : "model"
17266 },
5370fa8c
TL
17267 "e1000e" : {
17268 "alias" : "macaddr",
17269 "keyAlias" : "model"
17270 },
f004f5b9
DM
17271 "firewall" : {
17272 "description" : "Whether this interface should be protected by the firewall.",
17273 "optional" : 1,
17274 "type" : "boolean"
17275 },
17276 "i82551" : {
17277 "alias" : "macaddr",
17278 "keyAlias" : "model"
17279 },
17280 "i82557b" : {
17281 "alias" : "macaddr",
17282 "keyAlias" : "model"
17283 },
17284 "i82559er" : {
17285 "alias" : "macaddr",
17286 "keyAlias" : "model"
17287 },
17288 "link_down" : {
c2993fe5 17289 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
17290 "optional" : 1,
17291 "type" : "boolean"
17292 },
17293 "macaddr" : {
c2993fe5 17294 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 17295 "format" : "mac-addr",
f004f5b9 17296 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 17297 "optional" : 1,
95895385
TL
17298 "type" : "string",
17299 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
17300 },
17301 "model" : {
17302 "default_key" : 1,
c2993fe5 17303 "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 17304 "enum" : [
f004f5b9 17305 "e1000",
5370fa8c
TL
17306 "e1000-82540em",
17307 "e1000-82544gc",
17308 "e1000-82545em",
17309 "e1000e",
f004f5b9
DM
17310 "i82551",
17311 "i82557b",
17312 "i82559er",
5370fa8c
TL
17313 "ne2k_isa",
17314 "ne2k_pci",
17315 "pcnet",
17316 "rtl8139",
17317 "virtio",
17318 "vmxnet3"
f004f5b9 17319 ],
f004f5b9
DM
17320 "type" : "string"
17321 },
ac70d7d1
TL
17322 "mtu" : {
17323 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
17324 "maximum" : 65520,
17325 "minimum" : 1,
17326 "optional" : 1,
17327 "type" : "integer"
17328 },
f004f5b9
DM
17329 "ne2k_isa" : {
17330 "alias" : "macaddr",
17331 "keyAlias" : "model"
17332 },
17333 "ne2k_pci" : {
17334 "alias" : "macaddr",
17335 "keyAlias" : "model"
17336 },
17337 "pcnet" : {
17338 "alias" : "macaddr",
17339 "keyAlias" : "model"
17340 },
17341 "queues" : {
17342 "description" : "Number of packet queues to be used on the device.",
81a3384d 17343 "maximum" : 64,
f004f5b9
DM
17344 "minimum" : 0,
17345 "optional" : 1,
17346 "type" : "integer"
17347 },
17348 "rate" : {
c2993fe5 17349 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
17350 "minimum" : 0,
17351 "optional" : 1,
17352 "type" : "number"
17353 },
17354 "rtl8139" : {
17355 "alias" : "macaddr",
17356 "keyAlias" : "model"
17357 },
17358 "tag" : {
17359 "description" : "VLAN tag to apply to packets on this interface.",
17360 "maximum" : 4094,
c2993fe5 17361 "minimum" : 1,
f004f5b9
DM
17362 "optional" : 1,
17363 "type" : "integer"
17364 },
17365 "trunks" : {
17366 "description" : "VLAN trunks to pass through this interface.",
17367 "format_description" : "vlanid[;vlanid...]",
17368 "optional" : 1,
17369 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
17370 "type" : "string"
17371 },
17372 "virtio" : {
17373 "alias" : "macaddr",
17374 "keyAlias" : "model"
17375 },
17376 "vmxnet3" : {
17377 "alias" : "macaddr",
17378 "keyAlias" : "model"
17379 }
17380 },
44660702 17381 "optional" : 1,
4d47f125 17382 "type" : "string"
44660702
DM
17383 },
17384 "numa" : {
17385 "default" : 0,
17386 "description" : "Enable/disable NUMA.",
17387 "optional" : 1,
4d47f125 17388 "type" : "boolean"
44660702
DM
17389 },
17390 "numa[n]" : {
c2993fe5 17391 "description" : "NUMA topology.",
56122987 17392 "format" : {
7aacca6f 17393 "cpus" : {
c2993fe5 17394 "description" : "CPUs accessing this NUMA node.",
44660702
DM
17395 "format_description" : "id[-id];...",
17396 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
17397 "type" : "string"
7aacca6f
DM
17398 },
17399 "hostnodes" : {
c2993fe5 17400 "description" : "Host NUMA nodes to use.",
44660702 17401 "format_description" : "id[-id];...",
7aacca6f 17402 "optional" : 1,
7aacca6f 17403 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
44660702 17404 "type" : "string"
7aacca6f 17405 },
44660702 17406 "memory" : {
c2993fe5 17407 "description" : "Amount of memory this NUMA node provides.",
7aacca6f 17408 "optional" : 1,
44660702
DM
17409 "type" : "number"
17410 },
17411 "policy" : {
c2993fe5 17412 "description" : "NUMA allocation policy.",
7aacca6f
DM
17413 "enum" : [
17414 "preferred",
17415 "bind",
17416 "interleave"
17417 ],
44660702
DM
17418 "optional" : 1,
17419 "type" : "string"
56122987 17420 }
44660702 17421 },
56122987 17422 "optional" : 1,
4d47f125 17423 "type" : "string"
56122987 17424 },
44660702 17425 "onboot" : {
7aacca6f 17426 "default" : 0,
44660702
DM
17427 "description" : "Specifies whether a VM will be started during system bootup.",
17428 "optional" : 1,
4d47f125 17429 "type" : "boolean"
7aacca6f
DM
17430 },
17431 "ostype" : {
c2993fe5 17432 "description" : "Specify guest operating system.",
7aacca6f
DM
17433 "enum" : [
17434 "other",
17435 "wxp",
17436 "w2k",
17437 "w2k3",
17438 "w2k8",
17439 "wvista",
17440 "win7",
17441 "win8",
32d876b5 17442 "win10",
5370fa8c 17443 "win11",
7aacca6f
DM
17444 "l24",
17445 "l26",
17446 "solaris"
17447 ],
7aacca6f 17448 "optional" : 1,
c2993fe5 17449 "type" : "string",
9d2e98ed 17450 "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\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
56122987 17451 },
44660702 17452 "parallel[n]" : {
c2993fe5 17453 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 17454 "optional" : 1,
44660702 17455 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 17456 "type" : "string",
4772952b 17457 "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
17458 },
17459 "protection" : {
17460 "default" : 0,
c2993fe5 17461 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 17462 "optional" : 1,
4d47f125 17463 "type" : "boolean"
7aacca6f 17464 },
44660702
DM
17465 "reboot" : {
17466 "default" : 1,
17467 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 17468 "optional" : 1,
4d47f125 17469 "type" : "boolean"
44660702 17470 },
c5aa7e14
TL
17471 "rng0" : {
17472 "description" : "Configure a VirtIO-based Random Number Generator.",
17473 "format" : {
17474 "max_bytes" : {
17475 "default" : 1024,
5370fa8c 17476 "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
17477 "optional" : 1,
17478 "type" : "integer"
17479 },
17480 "period" : {
17481 "default" : 1000,
17482 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
17483 "optional" : 1,
17484 "type" : "integer"
17485 },
17486 "source" : {
17487 "default_key" : 1,
5370fa8c 17488 "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
17489 "enum" : [
17490 "/dev/urandom",
17491 "/dev/random",
17492 "/dev/hwrng"
17493 ],
17494 "type" : "string"
17495 }
17496 },
17497 "optional" : 1,
17498 "type" : "string"
17499 },
44660702 17500 "sata[n]" : {
7af2edf9 17501 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
56122987 17502 "format" : {
44660702
DM
17503 "aio" : {
17504 "description" : "AIO type to use.",
7aacca6f 17505 "enum" : [
44660702 17506 "native",
8f4d9c87
TL
17507 "threads",
17508 "io_uring"
7aacca6f 17509 ],
44660702
DM
17510 "optional" : 1,
17511 "type" : "string"
7aacca6f 17512 },
44660702
DM
17513 "backup" : {
17514 "description" : "Whether the drive should be included when making backups.",
56122987 17515 "optional" : 1,
7aacca6f 17516 "type" : "boolean"
44660702
DM
17517 },
17518 "bps" : {
de0983cb 17519 "description" : "Maximum r/w speed in bytes per second.",
44660702 17520 "format_description" : "bps",
7aacca6f 17521 "optional" : 1,
44660702 17522 "type" : "integer"
56122987 17523 },
de0983cb
DM
17524 "bps_max_length" : {
17525 "description" : "Maximum length of I/O bursts in seconds.",
17526 "format_description" : "seconds",
17527 "minimum" : 1,
17528 "optional" : 1,
17529 "type" : "integer"
17530 },
44660702 17531 "bps_rd" : {
de0983cb 17532 "description" : "Maximum read speed in bytes per second.",
44660702 17533 "format_description" : "bps",
56122987 17534 "optional" : 1,
44660702 17535 "type" : "integer"
56122987 17536 },
de0983cb 17537 "bps_rd_length" : {
5d9c884c
DM
17538 "alias" : "bps_rd_max_length"
17539 },
17540 "bps_rd_max_length" : {
de0983cb
DM
17541 "description" : "Maximum length of read I/O bursts in seconds.",
17542 "format_description" : "seconds",
17543 "minimum" : 1,
17544 "optional" : 1,
17545 "type" : "integer"
17546 },
44660702 17547 "bps_wr" : {
de0983cb 17548 "description" : "Maximum write speed in bytes per second.",
44660702 17549 "format_description" : "bps",
56122987 17550 "optional" : 1,
44660702 17551 "type" : "integer"
56122987 17552 },
de0983cb 17553 "bps_wr_length" : {
5d9c884c
DM
17554 "alias" : "bps_wr_max_length"
17555 },
17556 "bps_wr_max_length" : {
de0983cb
DM
17557 "description" : "Maximum length of write I/O bursts in seconds.",
17558 "format_description" : "seconds",
17559 "minimum" : 1,
17560 "optional" : 1,
17561 "type" : "integer"
17562 },
56122987 17563 "cache" : {
44660702 17564 "description" : "The drive's cache mode",
56122987
DM
17565 "enum" : [
17566 "none",
17567 "writethrough",
17568 "writeback",
17569 "unsafe",
17570 "directsync"
17571 ],
56122987 17572 "optional" : 1,
44660702 17573 "type" : "string"
56122987 17574 },
44660702
DM
17575 "cyls" : {
17576 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 17577 "optional" : 1,
44660702 17578 "type" : "integer"
7aacca6f
DM
17579 },
17580 "detect_zeroes" : {
17581 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 17582 "optional" : 1,
44660702 17583 "type" : "boolean"
56122987 17584 },
44660702
DM
17585 "discard" : {
17586 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17587 "enum" : [
17588 "ignore",
17589 "on"
17590 ],
56122987 17591 "optional" : 1,
44660702 17592 "type" : "string"
7aacca6f 17593 },
44660702
DM
17594 "file" : {
17595 "default_key" : 1,
17596 "description" : "The drive's backing volume.",
17597 "format" : "pve-volume-id-or-qm-path",
17598 "format_description" : "volume",
17599 "type" : "string"
56122987 17600 },
7aacca6f 17601 "format" : {
44660702 17602 "description" : "The drive's backing file's data format.",
7aacca6f
DM
17603 "enum" : [
17604 "raw",
17605 "cow",
17606 "qcow",
17607 "qed",
17608 "qcow2",
17609 "vmdk",
17610 "cloop"
17611 ],
7aacca6f 17612 "optional" : 1,
44660702 17613 "type" : "string"
56122987 17614 },
7aacca6f 17615 "heads" : {
7aacca6f 17616 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 17617 "optional" : 1,
7aacca6f 17618 "type" : "integer"
56122987 17619 },
44660702 17620 "iops" : {
de0983cb 17621 "description" : "Maximum r/w I/O in operations per second.",
44660702 17622 "format_description" : "iops",
56122987 17623 "optional" : 1,
44660702 17624 "type" : "integer"
56122987 17625 },
44660702 17626 "iops_max" : {
de0983cb 17627 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 17628 "format_description" : "iops",
56122987 17629 "optional" : 1,
44660702 17630 "type" : "integer"
56122987 17631 },
de0983cb
DM
17632 "iops_max_length" : {
17633 "description" : "Maximum length of I/O bursts in seconds.",
17634 "format_description" : "seconds",
17635 "minimum" : 1,
17636 "optional" : 1,
17637 "type" : "integer"
17638 },
44660702 17639 "iops_rd" : {
de0983cb 17640 "description" : "Maximum read I/O in operations per second.",
44660702 17641 "format_description" : "iops",
7aacca6f 17642 "optional" : 1,
44660702 17643 "type" : "integer"
56122987 17644 },
de0983cb 17645 "iops_rd_length" : {
5d9c884c 17646 "alias" : "iops_rd_max_length"
de0983cb 17647 },
44660702 17648 "iops_rd_max" : {
de0983cb 17649 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 17650 "format_description" : "iops",
56122987 17651 "optional" : 1,
44660702 17652 "type" : "integer"
7aacca6f 17653 },
5d9c884c
DM
17654 "iops_rd_max_length" : {
17655 "description" : "Maximum length of read I/O bursts in seconds.",
17656 "format_description" : "seconds",
17657 "minimum" : 1,
17658 "optional" : 1,
17659 "type" : "integer"
17660 },
44660702 17661 "iops_wr" : {
de0983cb 17662 "description" : "Maximum write I/O in operations per second.",
44660702 17663 "format_description" : "iops",
56122987 17664 "optional" : 1,
44660702 17665 "type" : "integer"
56122987 17666 },
de0983cb 17667 "iops_wr_length" : {
5d9c884c 17668 "alias" : "iops_wr_max_length"
de0983cb 17669 },
56122987 17670 "iops_wr_max" : {
de0983cb 17671 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 17672 "format_description" : "iops",
56122987 17673 "optional" : 1,
44660702 17674 "type" : "integer"
56122987 17675 },
5d9c884c
DM
17676 "iops_wr_max_length" : {
17677 "description" : "Maximum length of write I/O bursts in seconds.",
17678 "format_description" : "seconds",
17679 "minimum" : 1,
17680 "optional" : 1,
17681 "type" : "integer"
17682 },
44660702 17683 "mbps" : {
de0983cb 17684 "description" : "Maximum r/w speed in megabytes per second.",
44660702 17685 "format_description" : "mbps",
56122987 17686 "optional" : 1,
44660702 17687 "type" : "number"
56122987 17688 },
44660702 17689 "mbps_max" : {
de0983cb 17690 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
17691 "format_description" : "mbps",
17692 "optional" : 1,
17693 "type" : "number"
56122987 17694 },
44660702 17695 "mbps_rd" : {
de0983cb 17696 "description" : "Maximum read speed in megabytes per second.",
44660702 17697 "format_description" : "mbps",
56122987 17698 "optional" : 1,
44660702 17699 "type" : "number"
56122987 17700 },
44660702 17701 "mbps_rd_max" : {
de0983cb 17702 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 17703 "format_description" : "mbps",
56122987 17704 "optional" : 1,
44660702 17705 "type" : "number"
56122987 17706 },
44660702 17707 "mbps_wr" : {
de0983cb 17708 "description" : "Maximum write speed in megabytes per second.",
56122987 17709 "format_description" : "mbps",
44660702
DM
17710 "optional" : 1,
17711 "type" : "number"
56122987 17712 },
44660702 17713 "mbps_wr_max" : {
de0983cb 17714 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
17715 "format_description" : "mbps",
17716 "optional" : 1,
17717 "type" : "number"
7aacca6f 17718 },
44660702
DM
17719 "media" : {
17720 "default" : "disk",
17721 "description" : "The drive's media type.",
17722 "enum" : [
17723 "cdrom",
17724 "disk"
17725 ],
56122987 17726 "optional" : 1,
44660702
DM
17727 "type" : "string"
17728 },
5d9c884c
DM
17729 "replicate" : {
17730 "default" : 1,
17731 "description" : "Whether the drive should considered for replication jobs.",
17732 "optional" : 1,
17733 "type" : "boolean"
17734 },
44660702
DM
17735 "rerror" : {
17736 "description" : "Read error action.",
7aacca6f 17737 "enum" : [
44660702
DM
17738 "ignore",
17739 "report",
17740 "stop"
17741 ],
7aacca6f 17742 "optional" : 1,
44660702 17743 "type" : "string"
56122987 17744 },
44660702
DM
17745 "secs" : {
17746 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 17747 "optional" : 1,
44660702 17748 "type" : "integer"
56122987 17749 },
44660702
DM
17750 "serial" : {
17751 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
17752 "format" : "urlencoded",
17753 "format_description" : "serial",
17754 "maxLength" : 60,
56122987 17755 "optional" : 1,
44660702 17756 "type" : "string"
56122987 17757 },
27a7acb2
DM
17758 "shared" : {
17759 "default" : 0,
17760 "description" : "Mark this locally-managed volume as available on all nodes",
17761 "optional" : 1,
17762 "type" : "boolean",
17763 "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!"
17764 },
44660702
DM
17765 "size" : {
17766 "description" : "Disk size. This is purely informational and has no effect.",
17767 "format" : "disk-size",
f004f5b9 17768 "format_description" : "DiskSize",
44660702
DM
17769 "optional" : 1,
17770 "type" : "string"
17771 },
17772 "snapshot" : {
27a7acb2 17773 "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 17774 "optional" : 1,
44660702
DM
17775 "type" : "boolean"
17776 },
25203dc1
NC
17777 "ssd" : {
17778 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17779 "optional" : 1,
17780 "type" : "boolean"
17781 },
44660702
DM
17782 "trans" : {
17783 "description" : "Force disk geometry bios translation mode.",
56122987 17784 "enum" : [
7aacca6f
DM
17785 "none",
17786 "lba",
17787 "auto"
56122987 17788 ],
44660702
DM
17789 "optional" : 1,
17790 "type" : "string"
56122987 17791 },
7aacca6f
DM
17792 "volume" : {
17793 "alias" : "file"
56122987 17794 },
44660702
DM
17795 "werror" : {
17796 "description" : "Write error action.",
17797 "enum" : [
17798 "enospc",
17799 "ignore",
17800 "report",
17801 "stop"
17802 ],
7aacca6f 17803 "optional" : 1,
44660702 17804 "type" : "string"
95895385
TL
17805 },
17806 "wwn" : {
17807 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17808 "format_description" : "wwn",
17809 "optional" : 1,
17810 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17811 "type" : "string"
44660702
DM
17812 }
17813 },
17814 "optional" : 1,
4d47f125 17815 "type" : "string"
44660702
DM
17816 },
17817 "scsi[n]" : {
7af2edf9 17818 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).",
44660702 17819 "format" : {
56122987 17820 "aio" : {
56122987
DM
17821 "description" : "AIO type to use.",
17822 "enum" : [
17823 "native",
8f4d9c87
TL
17824 "threads",
17825 "io_uring"
56122987 17826 ],
7aacca6f 17827 "optional" : 1,
44660702 17828 "type" : "string"
56122987 17829 },
44660702
DM
17830 "backup" : {
17831 "description" : "Whether the drive should be included when making backups.",
56122987 17832 "optional" : 1,
44660702 17833 "type" : "boolean"
56122987 17834 },
44660702 17835 "bps" : {
de0983cb 17836 "description" : "Maximum r/w speed in bytes per second.",
44660702 17837 "format_description" : "bps",
56122987 17838 "optional" : 1,
44660702 17839 "type" : "integer"
56122987 17840 },
de0983cb
DM
17841 "bps_max_length" : {
17842 "description" : "Maximum length of I/O bursts in seconds.",
17843 "format_description" : "seconds",
17844 "minimum" : 1,
17845 "optional" : 1,
17846 "type" : "integer"
17847 },
44660702 17848 "bps_rd" : {
de0983cb 17849 "description" : "Maximum read speed in bytes per second.",
44660702 17850 "format_description" : "bps",
56122987 17851 "optional" : 1,
44660702 17852 "type" : "integer"
56122987 17853 },
de0983cb 17854 "bps_rd_length" : {
5d9c884c
DM
17855 "alias" : "bps_rd_max_length"
17856 },
17857 "bps_rd_max_length" : {
de0983cb
DM
17858 "description" : "Maximum length of read I/O bursts in seconds.",
17859 "format_description" : "seconds",
17860 "minimum" : 1,
17861 "optional" : 1,
17862 "type" : "integer"
17863 },
7aacca6f 17864 "bps_wr" : {
de0983cb 17865 "description" : "Maximum write speed in bytes per second.",
7aacca6f 17866 "format_description" : "bps",
56122987 17867 "optional" : 1,
44660702 17868 "type" : "integer"
56122987 17869 },
de0983cb 17870 "bps_wr_length" : {
5d9c884c
DM
17871 "alias" : "bps_wr_max_length"
17872 },
17873 "bps_wr_max_length" : {
de0983cb
DM
17874 "description" : "Maximum length of write I/O bursts in seconds.",
17875 "format_description" : "seconds",
17876 "minimum" : 1,
17877 "optional" : 1,
17878 "type" : "integer"
17879 },
44660702
DM
17880 "cache" : {
17881 "description" : "The drive's cache mode",
7aacca6f 17882 "enum" : [
44660702
DM
17883 "none",
17884 "writethrough",
17885 "writeback",
17886 "unsafe",
17887 "directsync"
7aacca6f 17888 ],
56122987 17889 "optional" : 1,
44660702 17890 "type" : "string"
56122987 17891 },
44660702
DM
17892 "cyls" : {
17893 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 17894 "optional" : 1,
44660702 17895 "type" : "integer"
56122987 17896 },
44660702
DM
17897 "detect_zeroes" : {
17898 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 17899 "optional" : 1,
44660702 17900 "type" : "boolean"
56122987 17901 },
44660702
DM
17902 "discard" : {
17903 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17904 "enum" : [
17905 "ignore",
17906 "on"
17907 ],
7aacca6f 17908 "optional" : 1,
44660702 17909 "type" : "string"
56122987 17910 },
44660702
DM
17911 "file" : {
17912 "default_key" : 1,
17913 "description" : "The drive's backing volume.",
17914 "format" : "pve-volume-id-or-qm-path",
17915 "format_description" : "volume",
17916 "type" : "string"
56122987 17917 },
7aacca6f 17918 "format" : {
44660702 17919 "description" : "The drive's backing file's data format.",
56122987 17920 "enum" : [
7aacca6f
DM
17921 "raw",
17922 "cow",
17923 "qcow",
17924 "qed",
17925 "qcow2",
17926 "vmdk",
17927 "cloop"
17928 ],
44660702
DM
17929 "optional" : 1,
17930 "type" : "string"
56122987 17931 },
44660702
DM
17932 "heads" : {
17933 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 17934 "optional" : 1,
7aacca6f 17935 "type" : "integer"
56122987 17936 },
44660702 17937 "iops" : {
de0983cb 17938 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 17939 "format_description" : "iops",
44660702
DM
17940 "optional" : 1,
17941 "type" : "integer"
7aacca6f 17942 },
44660702 17943 "iops_max" : {
de0983cb 17944 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 17945 "format_description" : "iops",
56122987 17946 "optional" : 1,
44660702 17947 "type" : "integer"
7aacca6f 17948 },
de0983cb
DM
17949 "iops_max_length" : {
17950 "description" : "Maximum length of I/O bursts in seconds.",
17951 "format_description" : "seconds",
17952 "minimum" : 1,
17953 "optional" : 1,
17954 "type" : "integer"
17955 },
44660702 17956 "iops_rd" : {
de0983cb 17957 "description" : "Maximum read I/O in operations per second.",
44660702 17958 "format_description" : "iops",
7aacca6f 17959 "optional" : 1,
44660702 17960 "type" : "integer"
56122987 17961 },
de0983cb 17962 "iops_rd_length" : {
5d9c884c 17963 "alias" : "iops_rd_max_length"
de0983cb 17964 },
44660702 17965 "iops_rd_max" : {
de0983cb 17966 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
17967 "format_description" : "iops",
17968 "optional" : 1,
17969 "type" : "integer"
17970 },
5d9c884c
DM
17971 "iops_rd_max_length" : {
17972 "description" : "Maximum length of read I/O bursts in seconds.",
17973 "format_description" : "seconds",
17974 "minimum" : 1,
17975 "optional" : 1,
17976 "type" : "integer"
17977 },
44660702 17978 "iops_wr" : {
de0983cb 17979 "description" : "Maximum write I/O in operations per second.",
44660702 17980 "format_description" : "iops",
56122987 17981 "optional" : 1,
44660702
DM
17982 "type" : "integer"
17983 },
de0983cb 17984 "iops_wr_length" : {
5d9c884c 17985 "alias" : "iops_wr_max_length"
de0983cb 17986 },
44660702 17987 "iops_wr_max" : {
de0983cb 17988 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
17989 "format_description" : "iops",
17990 "optional" : 1,
17991 "type" : "integer"
56122987 17992 },
5d9c884c
DM
17993 "iops_wr_max_length" : {
17994 "description" : "Maximum length of write I/O bursts in seconds.",
17995 "format_description" : "seconds",
17996 "minimum" : 1,
17997 "optional" : 1,
17998 "type" : "integer"
17999 },
7aacca6f 18000 "iothread" : {
7aacca6f 18001 "description" : "Whether to use iothreads for this drive",
56122987 18002 "optional" : 1,
56122987
DM
18003 "type" : "boolean"
18004 },
44660702 18005 "mbps" : {
de0983cb 18006 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
18007 "format_description" : "mbps",
18008 "optional" : 1,
18009 "type" : "number"
18010 },
18011 "mbps_max" : {
de0983cb 18012 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
18013 "format_description" : "mbps",
18014 "optional" : 1,
18015 "type" : "number"
18016 },
18017 "mbps_rd" : {
de0983cb 18018 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
18019 "format_description" : "mbps",
18020 "optional" : 1,
18021 "type" : "number"
18022 },
18023 "mbps_rd_max" : {
de0983cb 18024 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
18025 "format_description" : "mbps",
18026 "optional" : 1,
18027 "type" : "number"
18028 },
18029 "mbps_wr" : {
de0983cb 18030 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
18031 "format_description" : "mbps",
18032 "optional" : 1,
18033 "type" : "number"
18034 },
18035 "mbps_wr_max" : {
de0983cb 18036 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
18037 "format_description" : "mbps",
18038 "optional" : 1,
18039 "type" : "number"
18040 },
7aacca6f 18041 "media" : {
44660702
DM
18042 "default" : "disk",
18043 "description" : "The drive's media type.",
7aacca6f
DM
18044 "enum" : [
18045 "cdrom",
18046 "disk"
18047 ],
56122987 18048 "optional" : 1,
44660702
DM
18049 "type" : "string"
18050 },
18051 "queues" : {
18052 "description" : "Number of queues.",
44660702
DM
18053 "minimum" : 2,
18054 "optional" : 1,
18055 "type" : "integer"
18056 },
5d9c884c
DM
18057 "replicate" : {
18058 "default" : 1,
18059 "description" : "Whether the drive should considered for replication jobs.",
18060 "optional" : 1,
18061 "type" : "boolean"
18062 },
18063 "rerror" : {
18064 "description" : "Read error action.",
18065 "enum" : [
18066 "ignore",
18067 "report",
18068 "stop"
18069 ],
18070 "optional" : 1,
18071 "type" : "string"
18072 },
5370fa8c
TL
18073 "ro" : {
18074 "description" : "Whether the drive is read-only.",
18075 "optional" : 1,
18076 "type" : "boolean"
18077 },
52e44c50
FG
18078 "scsiblock" : {
18079 "default" : 0,
18080 "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",
18081 "optional" : 1,
18082 "type" : "boolean"
18083 },
44660702
DM
18084 "secs" : {
18085 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
18086 "optional" : 1,
18087 "type" : "integer"
18088 },
18089 "serial" : {
18090 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18091 "format" : "urlencoded",
18092 "format_description" : "serial",
18093 "maxLength" : 60,
18094 "optional" : 1,
18095 "type" : "string"
18096 },
27a7acb2
DM
18097 "shared" : {
18098 "default" : 0,
18099 "description" : "Mark this locally-managed volume as available on all nodes",
18100 "optional" : 1,
18101 "type" : "boolean",
18102 "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!"
18103 },
44660702
DM
18104 "size" : {
18105 "description" : "Disk size. This is purely informational and has no effect.",
18106 "format" : "disk-size",
f004f5b9 18107 "format_description" : "DiskSize",
44660702
DM
18108 "optional" : 1,
18109 "type" : "string"
56122987 18110 },
7aacca6f 18111 "snapshot" : {
27a7acb2 18112 "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 18113 "optional" : 1,
44660702 18114 "type" : "boolean"
7aacca6f 18115 },
25203dc1
NC
18116 "ssd" : {
18117 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18118 "optional" : 1,
18119 "type" : "boolean"
18120 },
44660702
DM
18121 "trans" : {
18122 "description" : "Force disk geometry bios translation mode.",
18123 "enum" : [
18124 "none",
18125 "lba",
18126 "auto"
18127 ],
44660702
DM
18128 "optional" : 1,
18129 "type" : "string"
18130 },
18131 "volume" : {
18132 "alias" : "file"
18133 },
18134 "werror" : {
18135 "description" : "Write error action.",
18136 "enum" : [
18137 "enospc",
18138 "ignore",
18139 "report",
18140 "stop"
18141 ],
56122987 18142 "optional" : 1,
44660702 18143 "type" : "string"
95895385
TL
18144 },
18145 "wwn" : {
18146 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
18147 "format_description" : "wwn",
18148 "optional" : 1,
18149 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
18150 "type" : "string"
56122987 18151 }
44660702 18152 },
7aacca6f 18153 "optional" : 1,
4d47f125 18154 "type" : "string"
44660702
DM
18155 },
18156 "scsihw" : {
18157 "default" : "lsi",
c2993fe5 18158 "description" : "SCSI controller model",
7aacca6f 18159 "enum" : [
44660702
DM
18160 "lsi",
18161 "lsi53c810",
18162 "virtio-scsi-pci",
18163 "virtio-scsi-single",
18164 "megasas",
18165 "pvscsi"
7aacca6f 18166 ],
44660702
DM
18167 "optional" : 1,
18168 "type" : "string"
56122987 18169 },
27a7acb2 18170 "searchdomain" : {
de786b48 18171 "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 18172 "optional" : 1,
4d47f125 18173 "type" : "string"
27a7acb2 18174 },
44660702 18175 "serial[n]" : {
c2993fe5 18176 "description" : "Create a serial device inside the VM (n is 0 to 3)",
7aacca6f 18177 "optional" : 1,
44660702 18178 "pattern" : "(/dev/.+|socket)",
c2993fe5 18179 "type" : "string",
4772952b 18180 "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 18181 },
44660702
DM
18182 "shares" : {
18183 "default" : 1000,
5da3d723 18184 "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
18185 "maximum" : 50000,
18186 "minimum" : 0,
56122987 18187 "optional" : 1,
4d47f125 18188 "type" : "integer"
56122987 18189 },
44660702
DM
18190 "smbios1" : {
18191 "description" : "Specify SMBIOS type 1 fields.",
18192 "format" : "pve-qm-smbios1",
1e3f8156 18193 "maxLength" : 512,
56122987 18194 "optional" : 1,
4d47f125 18195 "type" : "string"
56122987 18196 },
44660702
DM
18197 "smp" : {
18198 "default" : 1,
18199 "description" : "The number of CPUs. Please use option -sockets instead.",
7aacca6f 18200 "minimum" : 1,
7aacca6f 18201 "optional" : 1,
4d47f125 18202 "type" : "integer"
7aacca6f 18203 },
44660702
DM
18204 "sockets" : {
18205 "default" : 1,
18206 "description" : "The number of CPU sockets.",
18207 "minimum" : 1,
7aacca6f 18208 "optional" : 1,
4d47f125 18209 "type" : "integer"
56122987 18210 },
1c532546
TL
18211 "spice_enhancements" : {
18212 "description" : "Configure additional enhancements for SPICE.",
18213 "format" : {
18214 "foldersharing" : {
18215 "default" : "0",
18216 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
18217 "optional" : 1,
18218 "type" : "boolean"
18219 },
18220 "videostreaming" : {
18221 "default" : "off",
18222 "description" : "Enable video streaming. Uses compression for detected video streams.",
18223 "enum" : [
18224 "off",
18225 "all",
18226 "filter"
18227 ],
18228 "optional" : 1,
18229 "type" : "string"
18230 }
18231 },
18232 "optional" : 1,
18233 "type" : "string"
18234 },
27a7acb2
DM
18235 "sshkeys" : {
18236 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
18237 "format" : "urlencoded",
18238 "optional" : 1,
4d47f125 18239 "type" : "string"
27a7acb2 18240 },
44660702
DM
18241 "startdate" : {
18242 "default" : "now",
4772952b 18243 "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 18244 "optional" : 1,
44660702 18245 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 18246 "type" : "string",
44660702 18247 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
56122987 18248 },
7aacca6f 18249 "startup" : {
7aacca6f 18250 "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 18251 "format" : "pve-startup-order",
56122987 18252 "optional" : 1,
44660702
DM
18253 "type" : "string",
18254 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
56122987 18255 },
44660702 18256 "tablet" : {
7aacca6f 18257 "default" : 1,
c2993fe5 18258 "description" : "Enable/disable the USB tablet device.",
7aacca6f 18259 "optional" : 1,
c2993fe5 18260 "type" : "boolean",
4772952b 18261 "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 18262 },
5c1699e5
TL
18263 "tags" : {
18264 "description" : "Tags of the VM. This is only meta information.",
18265 "format" : "pve-tag-list",
18266 "optional" : 1,
18267 "type" : "string"
18268 },
44660702
DM
18269 "tdf" : {
18270 "default" : 0,
18271 "description" : "Enable/disable time drift fix.",
7aacca6f 18272 "optional" : 1,
4d47f125 18273 "type" : "boolean"
7aacca6f 18274 },
44660702
DM
18275 "template" : {
18276 "default" : 0,
18277 "description" : "Enable/disable Template.",
7aacca6f 18278 "optional" : 1,
4d47f125 18279 "type" : "boolean"
7aacca6f 18280 },
5370fa8c 18281 "tpmstate0" : {
7af2edf9 18282 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'.",
5370fa8c
TL
18283 "format" : {
18284 "file" : {
18285 "default_key" : 1,
18286 "description" : "The drive's backing volume.",
18287 "format" : "pve-volume-id-or-qm-path",
18288 "format_description" : "volume",
18289 "type" : "string"
18290 },
18291 "size" : {
18292 "description" : "Disk size. This is purely informational and has no effect.",
18293 "format" : "disk-size",
18294 "format_description" : "DiskSize",
18295 "optional" : 1,
18296 "type" : "string"
18297 },
18298 "version" : {
18299 "default" : "v2.0",
18300 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
18301 "enum" : [
18302 "v1.2",
18303 "v2.0"
18304 ],
18305 "optional" : 1,
18306 "type" : "string"
18307 },
18308 "volume" : {
18309 "alias" : "file"
18310 }
18311 },
18312 "optional" : 1,
18313 "type" : "string"
18314 },
44660702 18315 "unused[n]" : {
c2993fe5 18316 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
18317 "format" : {
18318 "file" : {
18319 "default_key" : 1,
18320 "description" : "The drive's backing volume.",
18321 "format" : "pve-volume-id",
18322 "format_description" : "volume",
18323 "type" : "string"
18324 },
18325 "volume" : {
18326 "alias" : "file"
18327 }
18328 },
7aacca6f 18329 "optional" : 1,
4d47f125 18330 "type" : "string"
7aacca6f 18331 },
44660702 18332 "usb[n]" : {
4e7f60c2 18333 "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
18334 "format" : {
18335 "host" : {
18336 "default_key" : 1,
499c9b7f 18337 "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 18338 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
18339 "optional" : 1,
18340 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
18341 "type" : "string"
18342 },
18343 "mapping" : {
18344 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
18345 "format" : "pve-configid",
18346 "format_description" : "mapping-id",
18347 "optional" : 1,
44660702
DM
18348 "type" : "string"
18349 },
18350 "usb3" : {
c2993fe5 18351 "default" : 0,
4e7f60c2 18352 "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
18353 "optional" : 1,
18354 "type" : "boolean"
18355 }
18356 },
7aacca6f 18357 "optional" : 1,
4d47f125 18358 "type" : "string"
56122987 18359 },
44660702
DM
18360 "vcpus" : {
18361 "default" : 0,
18362 "description" : "Number of hotplugged vcpus.",
18363 "minimum" : 1,
56122987 18364 "optional" : 1,
4d47f125 18365 "type" : "integer"
56122987 18366 },
44660702 18367 "vga" : {
e2d681b3
TL
18368 "description" : "Configure the VGA hardware.",
18369 "format" : {
fa22697b
TL
18370 "clipboard" : {
18371 "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added.",
18372 "enum" : [
18373 "vnc"
18374 ],
18375 "optional" : 1,
18376 "type" : "string"
18377 },
e2d681b3
TL
18378 "memory" : {
18379 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
18380 "maximum" : 512,
18381 "minimum" : 4,
18382 "optional" : 1,
18383 "type" : "integer"
18384 },
18385 "type" : {
18386 "default" : "std",
18387 "default_key" : 1,
18388 "description" : "Select the VGA type.",
18389 "enum" : [
18390 "cirrus",
18391 "qxl",
18392 "qxl2",
18393 "qxl3",
18394 "qxl4",
5f26e15b 18395 "none",
e2d681b3
TL
18396 "serial0",
18397 "serial1",
18398 "serial2",
18399 "serial3",
18400 "std",
18401 "virtio",
7af2edf9 18402 "virtio-gl",
e2d681b3
TL
18403 "vmware"
18404 ],
18405 "optional" : 1,
18406 "type" : "string"
18407 }
18408 },
56122987 18409 "optional" : 1,
c2993fe5 18410 "type" : "string",
e2d681b3 18411 "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 18412 },
44660702 18413 "virtio[n]" : {
7af2edf9 18414 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
56122987 18415 "format" : {
44660702
DM
18416 "aio" : {
18417 "description" : "AIO type to use.",
56122987 18418 "enum" : [
44660702 18419 "native",
8f4d9c87
TL
18420 "threads",
18421 "io_uring"
56122987 18422 ],
56122987
DM
18423 "optional" : 1,
18424 "type" : "string"
18425 },
44660702
DM
18426 "backup" : {
18427 "description" : "Whether the drive should be included when making backups.",
44660702
DM
18428 "optional" : 1,
18429 "type" : "boolean"
7aacca6f 18430 },
44660702 18431 "bps" : {
de0983cb 18432 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
18433 "format_description" : "bps",
18434 "optional" : 1,
18435 "type" : "integer"
56122987 18436 },
de0983cb
DM
18437 "bps_max_length" : {
18438 "description" : "Maximum length of I/O bursts in seconds.",
18439 "format_description" : "seconds",
18440 "minimum" : 1,
18441 "optional" : 1,
18442 "type" : "integer"
18443 },
44660702 18444 "bps_rd" : {
de0983cb 18445 "description" : "Maximum read speed in bytes per second.",
44660702 18446 "format_description" : "bps",
56122987 18447 "optional" : 1,
44660702 18448 "type" : "integer"
56122987 18449 },
de0983cb 18450 "bps_rd_length" : {
5d9c884c
DM
18451 "alias" : "bps_rd_max_length"
18452 },
18453 "bps_rd_max_length" : {
de0983cb
DM
18454 "description" : "Maximum length of read I/O bursts in seconds.",
18455 "format_description" : "seconds",
18456 "minimum" : 1,
18457 "optional" : 1,
18458 "type" : "integer"
18459 },
44660702 18460 "bps_wr" : {
de0983cb 18461 "description" : "Maximum write speed in bytes per second.",
44660702 18462 "format_description" : "bps",
56122987 18463 "optional" : 1,
44660702
DM
18464 "type" : "integer"
18465 },
de0983cb 18466 "bps_wr_length" : {
5d9c884c
DM
18467 "alias" : "bps_wr_max_length"
18468 },
18469 "bps_wr_max_length" : {
de0983cb
DM
18470 "description" : "Maximum length of write I/O bursts in seconds.",
18471 "format_description" : "seconds",
18472 "minimum" : 1,
18473 "optional" : 1,
18474 "type" : "integer"
18475 },
44660702
DM
18476 "cache" : {
18477 "description" : "The drive's cache mode",
56122987 18478 "enum" : [
44660702
DM
18479 "none",
18480 "writethrough",
18481 "writeback",
18482 "unsafe",
18483 "directsync"
56122987 18484 ],
56122987 18485 "optional" : 1,
44660702 18486 "type" : "string"
56122987 18487 },
44660702
DM
18488 "cyls" : {
18489 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 18490 "optional" : 1,
44660702 18491 "type" : "integer"
7aacca6f 18492 },
44660702
DM
18493 "detect_zeroes" : {
18494 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
18495 "optional" : 1,
18496 "type" : "boolean"
7aacca6f 18497 },
44660702
DM
18498 "discard" : {
18499 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
18500 "enum" : [
18501 "ignore",
18502 "on"
18503 ],
56122987 18504 "optional" : 1,
44660702 18505 "type" : "string"
56122987
DM
18506 },
18507 "file" : {
7aacca6f 18508 "default_key" : 1,
44660702 18509 "description" : "The drive's backing volume.",
7aacca6f 18510 "format" : "pve-volume-id-or-qm-path",
44660702
DM
18511 "format_description" : "volume",
18512 "type" : "string"
7aacca6f
DM
18513 },
18514 "format" : {
7aacca6f
DM
18515 "description" : "The drive's backing file's data format.",
18516 "enum" : [
18517 "raw",
18518 "cow",
18519 "qcow",
18520 "qed",
18521 "qcow2",
18522 "vmdk",
18523 "cloop"
56122987
DM
18524 ],
18525 "optional" : 1,
56122987
DM
18526 "type" : "string"
18527 },
44660702
DM
18528 "heads" : {
18529 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 18530 "optional" : 1,
44660702 18531 "type" : "integer"
56122987 18532 },
44660702 18533 "iops" : {
de0983cb 18534 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 18535 "format_description" : "iops",
56122987 18536 "optional" : 1,
44660702 18537 "type" : "integer"
56122987 18538 },
44660702 18539 "iops_max" : {
de0983cb 18540 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 18541 "format_description" : "iops",
56122987 18542 "optional" : 1,
56122987
DM
18543 "type" : "integer"
18544 },
de0983cb
DM
18545 "iops_max_length" : {
18546 "description" : "Maximum length of I/O bursts in seconds.",
18547 "format_description" : "seconds",
18548 "minimum" : 1,
18549 "optional" : 1,
18550 "type" : "integer"
18551 },
44660702 18552 "iops_rd" : {
de0983cb 18553 "description" : "Maximum read I/O in operations per second.",
44660702 18554 "format_description" : "iops",
56122987 18555 "optional" : 1,
44660702 18556 "type" : "integer"
56122987 18557 },
de0983cb 18558 "iops_rd_length" : {
5d9c884c 18559 "alias" : "iops_rd_max_length"
de0983cb 18560 },
44660702 18561 "iops_rd_max" : {
de0983cb 18562 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 18563 "format_description" : "iops",
7aacca6f 18564 "optional" : 1,
44660702 18565 "type" : "integer"
56122987 18566 },
5d9c884c
DM
18567 "iops_rd_max_length" : {
18568 "description" : "Maximum length of read I/O bursts in seconds.",
18569 "format_description" : "seconds",
18570 "minimum" : 1,
18571 "optional" : 1,
18572 "type" : "integer"
18573 },
44660702 18574 "iops_wr" : {
de0983cb 18575 "description" : "Maximum write I/O in operations per second.",
44660702 18576 "format_description" : "iops",
7aacca6f 18577 "optional" : 1,
44660702 18578 "type" : "integer"
56122987 18579 },
de0983cb 18580 "iops_wr_length" : {
5d9c884c 18581 "alias" : "iops_wr_max_length"
de0983cb 18582 },
44660702 18583 "iops_wr_max" : {
de0983cb 18584 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 18585 "format_description" : "iops",
56122987
DM
18586 "optional" : 1,
18587 "type" : "integer"
18588 },
5d9c884c
DM
18589 "iops_wr_max_length" : {
18590 "description" : "Maximum length of write I/O bursts in seconds.",
18591 "format_description" : "seconds",
18592 "minimum" : 1,
18593 "optional" : 1,
18594 "type" : "integer"
18595 },
44660702
DM
18596 "iothread" : {
18597 "description" : "Whether to use iothreads for this drive",
44660702
DM
18598 "optional" : 1,
18599 "type" : "boolean"
18600 },
18601 "mbps" : {
de0983cb 18602 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 18603 "format_description" : "mbps",
44660702
DM
18604 "optional" : 1,
18605 "type" : "number"
18606 },
18607 "mbps_max" : {
de0983cb 18608 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
18609 "format_description" : "mbps",
18610 "optional" : 1,
18611 "type" : "number"
7aacca6f 18612 },
44660702 18613 "mbps_rd" : {
de0983cb 18614 "description" : "Maximum read speed in megabytes per second.",
44660702 18615 "format_description" : "mbps",
56122987 18616 "optional" : 1,
44660702 18617 "type" : "number"
56122987 18618 },
44660702 18619 "mbps_rd_max" : {
de0983cb 18620 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 18621 "format_description" : "mbps",
7aacca6f 18622 "optional" : 1,
44660702 18623 "type" : "number"
56122987 18624 },
44660702 18625 "mbps_wr" : {
de0983cb 18626 "description" : "Maximum write speed in megabytes per second.",
44660702 18627 "format_description" : "mbps",
56122987 18628 "optional" : 1,
44660702 18629 "type" : "number"
56122987 18630 },
44660702 18631 "mbps_wr_max" : {
de0983cb 18632 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 18633 "format_description" : "mbps",
56122987 18634 "optional" : 1,
44660702 18635 "type" : "number"
56122987
DM
18636 },
18637 "media" : {
7aacca6f 18638 "default" : "disk",
44660702 18639 "description" : "The drive's media type.",
56122987
DM
18640 "enum" : [
18641 "cdrom",
18642 "disk"
18643 ],
44660702
DM
18644 "optional" : 1,
18645 "type" : "string"
56122987 18646 },
5d9c884c
DM
18647 "replicate" : {
18648 "default" : 1,
18649 "description" : "Whether the drive should considered for replication jobs.",
18650 "optional" : 1,
18651 "type" : "boolean"
18652 },
7aacca6f 18653 "rerror" : {
44660702 18654 "description" : "Read error action.",
56122987 18655 "enum" : [
7aacca6f
DM
18656 "ignore",
18657 "report",
18658 "stop"
56122987 18659 ],
56122987 18660 "optional" : 1,
44660702 18661 "type" : "string"
56122987 18662 },
5370fa8c
TL
18663 "ro" : {
18664 "description" : "Whether the drive is read-only.",
18665 "optional" : 1,
18666 "type" : "boolean"
18667 },
44660702
DM
18668 "secs" : {
18669 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
18670 "optional" : 1,
18671 "type" : "integer"
18672 },
18673 "serial" : {
18674 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18675 "format" : "urlencoded",
18676 "format_description" : "serial",
18677 "maxLength" : 60,
56122987 18678 "optional" : 1,
7aacca6f 18679 "type" : "string"
56122987 18680 },
27a7acb2
DM
18681 "shared" : {
18682 "default" : 0,
18683 "description" : "Mark this locally-managed volume as available on all nodes",
18684 "optional" : 1,
18685 "type" : "boolean",
18686 "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!"
18687 },
44660702
DM
18688 "size" : {
18689 "description" : "Disk size. This is purely informational and has no effect.",
18690 "format" : "disk-size",
f004f5b9 18691 "format_description" : "DiskSize",
56122987 18692 "optional" : 1,
44660702 18693 "type" : "string"
56122987 18694 },
44660702 18695 "snapshot" : {
27a7acb2 18696 "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 18697 "optional" : 1,
44660702 18698 "type" : "boolean"
56122987 18699 },
44660702
DM
18700 "trans" : {
18701 "description" : "Force disk geometry bios translation mode.",
18702 "enum" : [
18703 "none",
18704 "lba",
18705 "auto"
18706 ],
44660702
DM
18707 "optional" : 1,
18708 "type" : "string"
18709 },
18710 "volume" : {
18711 "alias" : "file"
18712 },
18713 "werror" : {
18714 "description" : "Write error action.",
18715 "enum" : [
18716 "enospc",
18717 "ignore",
18718 "report",
18719 "stop"
18720 ],
56122987 18721 "optional" : 1,
44660702 18722 "type" : "string"
56122987 18723 }
44660702 18724 },
56122987 18725 "optional" : 1,
4d47f125 18726 "type" : "string"
56122987 18727 },
4d47f125
TL
18728 "vmgenid" : {
18729 "default" : "1 (autogenerated)",
18730 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
18731 "format_description" : "UUID",
18732 "optional" : 1,
18733 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
18734 "type" : "string",
4772952b 18735 "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 18736 },
2489d6df
WB
18737 "vmstatestorage" : {
18738 "description" : "Default storage for VM state volumes/files.",
18739 "format" : "pve-storage-id",
18740 "optional" : 1,
4d47f125 18741 "type" : "string"
2489d6df 18742 },
44660702 18743 "watchdog" : {
c2993fe5 18744 "description" : "Create a virtual hardware watchdog device.",
44660702 18745 "format" : "pve-qm-watchdog",
56122987 18746 "optional" : 1,
c2993fe5
DM
18747 "type" : "string",
18748 "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 18749 }
4d47f125
TL
18750 },
18751 "type" : "object"
44660702 18752 }
56122987 18753 },
4d47f125 18754 "POST" : {
e9cd3bd4 18755 "allowtoken" : 1,
4d47f125
TL
18756 "description" : "Set virtual machine options (asynchrounous API).",
18757 "method" : "POST",
18758 "name" : "update_vm_async",
56122987 18759 "parameters" : {
7aacca6f 18760 "additionalProperties" : 0,
56122987 18761 "properties" : {
44660702
DM
18762 "acpi" : {
18763 "default" : 1,
18764 "description" : "Enable/disable ACPI.",
7aacca6f 18765 "optional" : 1,
013dc89f
DM
18766 "type" : "boolean",
18767 "typetext" : "<boolean>"
7aacca6f 18768 },
4e7f60c2 18769 "affinity" : {
81a3384d 18770 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
18771 "format" : "pve-cpuset",
18772 "optional" : 1,
18773 "type" : "string",
18774 "typetext" : "<string>"
18775 },
44660702 18776 "agent" : {
9d2e98ed 18777 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
18778 "format" : {
18779 "enabled" : {
18780 "default" : 0,
18781 "default_key" : 1,
9d2e98ed
TL
18782 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
18783 "type" : "boolean"
18784 },
18785 "freeze-fs-on-backup" : {
18786 "default" : 1,
18787 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
18788 "optional" : 1,
4d47f125
TL
18789 "type" : "boolean"
18790 },
18791 "fstrim_cloned_disks" : {
18792 "default" : 0,
d2656385 18793 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
18794 "optional" : 1,
18795 "type" : "boolean"
5c1699e5
TL
18796 },
18797 "type" : {
18798 "default" : "virtio",
18799 "description" : "Select the agent type",
18800 "enum" : [
18801 "virtio",
18802 "isa"
18803 ],
18804 "optional" : 1,
18805 "type" : "string"
4d47f125
TL
18806 }
18807 },
7aacca6f 18808 "optional" : 1,
4d47f125 18809 "type" : "string",
9d2e98ed 18810 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 18811 },
e2d681b3
TL
18812 "arch" : {
18813 "description" : "Virtual processor architecture. Defaults to the host.",
18814 "enum" : [
18815 "x86_64",
18816 "aarch64"
18817 ],
18818 "optional" : 1,
18819 "type" : "string"
18820 },
44660702 18821 "args" : {
c2993fe5 18822 "description" : "Arbitrary arguments passed to kvm.",
7aacca6f 18823 "optional" : 1,
c2993fe5 18824 "type" : "string",
013dc89f 18825 "typetext" : "<string>",
159464a9 18826 "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 18827 },
1c532546
TL
18828 "audio0" : {
18829 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
18830 "format" : {
18831 "device" : {
18832 "description" : "Configure an audio device.",
18833 "enum" : [
18834 "ich9-intel-hda",
18835 "intel-hda",
18836 "AC97"
18837 ],
18838 "type" : "string"
18839 },
18840 "driver" : {
18841 "default" : "spice",
18842 "description" : "Driver backend for the audio device.",
18843 "enum" : [
d2656385
TL
18844 "spice",
18845 "none"
1c532546
TL
18846 ],
18847 "optional" : 1,
18848 "type" : "string"
18849 }
18850 },
18851 "optional" : 1,
18852 "type" : "string",
d2656385 18853 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 18854 },
44660702
DM
18855 "autostart" : {
18856 "default" : 0,
18857 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 18858 "optional" : 1,
013dc89f
DM
18859 "type" : "boolean",
18860 "typetext" : "<boolean>"
7aacca6f 18861 },
4d47f125
TL
18862 "background_delay" : {
18863 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
18864 "maximum" : 30,
18865 "minimum" : 1,
18866 "optional" : 1,
18867 "type" : "integer",
18868 "typetext" : "<integer> (1 - 30)"
18869 },
44660702 18870 "balloon" : {
9d2e98ed 18871 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
44660702
DM
18872 "minimum" : 0,
18873 "optional" : 1,
4bd7df8b 18874 "type" : "integer",
013dc89f 18875 "typetext" : "<integer> (0 - N)"
44660702
DM
18876 },
18877 "bios" : {
18878 "default" : "seabios",
18879 "description" : "Select BIOS implementation.",
7aacca6f 18880 "enum" : [
44660702
DM
18881 "seabios",
18882 "ovmf"
7aacca6f 18883 ],
56122987 18884 "optional" : 1,
7aacca6f
DM
18885 "type" : "string"
18886 },
44660702 18887 "boot" : {
5370fa8c 18888 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 18889 "format" : "pve-qm-boot",
7aacca6f 18890 "optional" : 1,
4772952b
TL
18891 "type" : "string",
18892 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 18893 },
44660702 18894 "bootdisk" : {
4772952b 18895 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
18896 "format" : "pve-qm-bootdisk",
18897 "optional" : 1,
18898 "pattern" : "(ide|sata|scsi|virtio)\\d+",
18899 "type" : "string"
18900 },
18901 "cdrom" : {
18902 "description" : "This is an alias for option -ide2",
de0983cb 18903 "format" : "pve-qm-ide",
56122987 18904 "optional" : 1,
7aacca6f 18905 "type" : "string",
013dc89f 18906 "typetext" : "<volume>"
44660702 18907 },
95895385
TL
18908 "cicustom" : {
18909 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
18910 "format" : "pve-qm-cicustom",
18911 "optional" : 1,
18912 "type" : "string",
5370fa8c 18913 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 18914 },
27a7acb2
DM
18915 "cipassword" : {
18916 "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.",
18917 "optional" : 1,
18918 "type" : "string",
18919 "typetext" : "<string>"
18920 },
18921 "citype" : {
18922 "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.",
18923 "enum" : [
18924 "configdrive2",
d2656385
TL
18925 "nocloud",
18926 "opennebula"
27a7acb2
DM
18927 ],
18928 "optional" : 1,
18929 "type" : "string"
18930 },
159464a9 18931 "ciupgrade" : {
c8eee6ff 18932 "default" : 1,
159464a9
TL
18933 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
18934 "optional" : 1,
18935 "type" : "boolean",
18936 "typetext" : "<boolean>"
18937 },
27a7acb2
DM
18938 "ciuser" : {
18939 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
18940 "optional" : 1,
18941 "type" : "string",
18942 "typetext" : "<string>"
18943 },
44660702
DM
18944 "cores" : {
18945 "default" : 1,
18946 "description" : "The number of cores per socket.",
18947 "minimum" : 1,
18948 "optional" : 1,
4bd7df8b 18949 "type" : "integer",
013dc89f 18950 "typetext" : "<integer> (1 - N)"
44660702
DM
18951 },
18952 "cpu" : {
18953 "description" : "Emulated CPU type.",
c5aa7e14 18954 "format" : "pve-vm-cpu-conf",
44660702 18955 "optional" : 1,
4bd7df8b 18956 "type" : "string",
04d22a9f 18957 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702
DM
18958 },
18959 "cpulimit" : {
18960 "default" : 0,
c2993fe5 18961 "description" : "Limit of CPU usage.",
44660702
DM
18962 "maximum" : 128,
18963 "minimum" : 0,
18964 "optional" : 1,
c2993fe5 18965 "type" : "number",
013dc89f 18966 "typetext" : "<number> (0 - 128)",
c2993fe5 18967 "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
18968 },
18969 "cpuunits" : {
5370fa8c
TL
18970 "default" : "cgroup v1: 1024, cgroup v2: 100",
18971 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 18972 "maximum" : 262144,
7af2edf9 18973 "minimum" : 1,
44660702 18974 "optional" : 1,
c2993fe5 18975 "type" : "integer",
7af2edf9 18976 "typetext" : "<integer> (1 - 262144)",
2489d6df 18977 "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
18978 },
18979 "delete" : {
18980 "description" : "A list of settings you want to delete.",
18981 "format" : "pve-configid-list",
18982 "optional" : 1,
013dc89f
DM
18983 "type" : "string",
18984 "typetext" : "<string>"
44660702
DM
18985 },
18986 "description" : {
8f4d9c87
TL
18987 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
18988 "maxLength" : 8192,
44660702 18989 "optional" : 1,
013dc89f
DM
18990 "type" : "string",
18991 "typetext" : "<string>"
44660702
DM
18992 },
18993 "digest" : {
18994 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
18995 "maxLength" : 40,
18996 "optional" : 1,
013dc89f
DM
18997 "type" : "string",
18998 "typetext" : "<string>"
44660702 18999 },
4d47f125 19000 "efidisk0" : {
9d2e98ed 19001 "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 19002 "format" : {
5370fa8c
TL
19003 "efitype" : {
19004 "default" : "2m",
bd92b745 19005 "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
19006 "enum" : [
19007 "2m",
19008 "4m"
19009 ],
19010 "optional" : 1,
19011 "type" : "string"
19012 },
4d47f125
TL
19013 "file" : {
19014 "default_key" : 1,
19015 "description" : "The drive's backing volume.",
19016 "format" : "pve-volume-id-or-qm-path",
19017 "format_description" : "volume",
19018 "type" : "string"
19019 },
19020 "format" : {
19021 "description" : "The drive's backing file's data format.",
19022 "enum" : [
19023 "raw",
19024 "cow",
19025 "qcow",
19026 "qed",
19027 "qcow2",
19028 "vmdk",
19029 "cloop"
19030 ],
19031 "optional" : 1,
19032 "type" : "string"
19033 },
7af2edf9
TL
19034 "import-from" : {
19035 "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!",
19036 "format" : "pve-volume-id-or-absolute-path",
19037 "format_description" : "source volume",
19038 "optional" : 1,
19039 "type" : "string"
19040 },
5370fa8c
TL
19041 "pre-enrolled-keys" : {
19042 "default" : 0,
19043 "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.",
19044 "optional" : 1,
19045 "type" : "boolean"
19046 },
4d47f125
TL
19047 "size" : {
19048 "description" : "Disk size. This is purely informational and has no effect.",
19049 "format" : "disk-size",
19050 "format_description" : "DiskSize",
19051 "optional" : 1,
19052 "type" : "string"
19053 },
19054 "volume" : {
19055 "alias" : "file"
19056 }
19057 },
19058 "optional" : 1,
19059 "type" : "string",
7af2edf9 19060 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 19061 },
44660702
DM
19062 "force" : {
19063 "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.",
19064 "optional" : 1,
19065 "requires" : "delete",
013dc89f
DM
19066 "type" : "boolean",
19067 "typetext" : "<boolean>"
44660702
DM
19068 },
19069 "freeze" : {
19070 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
19071 "optional" : 1,
013dc89f
DM
19072 "type" : "boolean",
19073 "typetext" : "<boolean>"
44660702 19074 },
5f26e15b
TL
19075 "hookscript" : {
19076 "description" : "Script that will be executed during various steps in the vms lifetime.",
19077 "format" : "pve-volume-id",
19078 "optional" : 1,
19079 "type" : "string",
19080 "typetext" : "<string>"
19081 },
44660702 19082 "hostpci[n]" : {
c2993fe5 19083 "description" : "Map host PCI devices into guest.",
44660702
DM
19084 "format" : "pve-qm-hostpci",
19085 "optional" : 1,
57b78691 19086 "type" : "string",
499c9b7f 19087 "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 19088 "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 19089 },
7aacca6f 19090 "hotplug" : {
7aacca6f 19091 "default" : "network,disk,usb",
4e7f60c2 19092 "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 19093 "format" : "pve-hotplug-features",
56122987 19094 "optional" : 1,
013dc89f
DM
19095 "type" : "string",
19096 "typetext" : "<string>"
56122987 19097 },
4bd7df8b
DM
19098 "hugepages" : {
19099 "description" : "Enable/disable hugepages memory.",
19100 "enum" : [
19101 "any",
19102 "2",
19103 "1024"
19104 ],
19105 "optional" : 1,
19106 "type" : "string"
19107 },
56122987 19108 "ide[n]" : {
7af2edf9 19109 "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 19110 "format" : {
44660702
DM
19111 "aio" : {
19112 "description" : "AIO type to use.",
19113 "enum" : [
19114 "native",
8f4d9c87
TL
19115 "threads",
19116 "io_uring"
44660702 19117 ],
56122987 19118 "optional" : 1,
44660702 19119 "type" : "string"
56122987 19120 },
44660702
DM
19121 "backup" : {
19122 "description" : "Whether the drive should be included when making backups.",
44660702
DM
19123 "optional" : 1,
19124 "type" : "boolean"
19125 },
19126 "bps" : {
de0983cb 19127 "description" : "Maximum r/w speed in bytes per second.",
44660702 19128 "format_description" : "bps",
56122987 19129 "optional" : 1,
44660702 19130 "type" : "integer"
56122987 19131 },
de0983cb
DM
19132 "bps_max_length" : {
19133 "description" : "Maximum length of I/O bursts in seconds.",
19134 "format_description" : "seconds",
19135 "minimum" : 1,
19136 "optional" : 1,
19137 "type" : "integer"
19138 },
44660702 19139 "bps_rd" : {
de0983cb 19140 "description" : "Maximum read speed in bytes per second.",
44660702 19141 "format_description" : "bps",
56122987 19142 "optional" : 1,
44660702 19143 "type" : "integer"
56122987 19144 },
de0983cb 19145 "bps_rd_length" : {
5d9c884c
DM
19146 "alias" : "bps_rd_max_length"
19147 },
19148 "bps_rd_max_length" : {
de0983cb
DM
19149 "description" : "Maximum length of read I/O bursts in seconds.",
19150 "format_description" : "seconds",
19151 "minimum" : 1,
19152 "optional" : 1,
19153 "type" : "integer"
19154 },
7aacca6f 19155 "bps_wr" : {
de0983cb 19156 "description" : "Maximum write speed in bytes per second.",
44660702
DM
19157 "format_description" : "bps",
19158 "optional" : 1,
19159 "type" : "integer"
7aacca6f 19160 },
de0983cb 19161 "bps_wr_length" : {
5d9c884c
DM
19162 "alias" : "bps_wr_max_length"
19163 },
19164 "bps_wr_max_length" : {
de0983cb
DM
19165 "description" : "Maximum length of write I/O bursts in seconds.",
19166 "format_description" : "seconds",
19167 "minimum" : 1,
19168 "optional" : 1,
19169 "type" : "integer"
19170 },
44660702
DM
19171 "cache" : {
19172 "description" : "The drive's cache mode",
19173 "enum" : [
19174 "none",
19175 "writethrough",
19176 "writeback",
19177 "unsafe",
19178 "directsync"
19179 ],
56122987 19180 "optional" : 1,
44660702
DM
19181 "type" : "string"
19182 },
19183 "cyls" : {
19184 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
19185 "optional" : 1,
19186 "type" : "integer"
19187 },
19188 "detect_zeroes" : {
19189 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
19190 "optional" : 1,
19191 "type" : "boolean"
56122987 19192 },
7aacca6f 19193 "discard" : {
7aacca6f 19194 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 19195 "enum" : [
7aacca6f
DM
19196 "ignore",
19197 "on"
56122987
DM
19198 ],
19199 "optional" : 1,
44660702 19200 "type" : "string"
7aacca6f 19201 },
44660702
DM
19202 "file" : {
19203 "default_key" : 1,
19204 "description" : "The drive's backing volume.",
19205 "format" : "pve-volume-id-or-qm-path",
19206 "format_description" : "volume",
19207 "type" : "string"
7aacca6f
DM
19208 },
19209 "format" : {
44660702 19210 "description" : "The drive's backing file's data format.",
7aacca6f
DM
19211 "enum" : [
19212 "raw",
19213 "cow",
19214 "qcow",
19215 "qed",
19216 "qcow2",
19217 "vmdk",
19218 "cloop"
19219 ],
7aacca6f 19220 "optional" : 1,
44660702 19221 "type" : "string"
56122987 19222 },
7aacca6f 19223 "heads" : {
44660702 19224 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 19225 "optional" : 1,
44660702 19226 "type" : "integer"
7aacca6f 19227 },
7af2edf9
TL
19228 "import-from" : {
19229 "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!",
19230 "format" : "pve-volume-id-or-absolute-path",
19231 "format_description" : "source volume",
19232 "optional" : 1,
19233 "type" : "string"
19234 },
44660702 19235 "iops" : {
de0983cb 19236 "description" : "Maximum r/w I/O in operations per second.",
44660702 19237 "format_description" : "iops",
7aacca6f 19238 "optional" : 1,
44660702 19239 "type" : "integer"
56122987 19240 },
44660702 19241 "iops_max" : {
de0983cb 19242 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 19243 "format_description" : "iops",
56122987 19244 "optional" : 1,
44660702 19245 "type" : "integer"
56122987 19246 },
de0983cb
DM
19247 "iops_max_length" : {
19248 "description" : "Maximum length of I/O bursts in seconds.",
19249 "format_description" : "seconds",
19250 "minimum" : 1,
19251 "optional" : 1,
19252 "type" : "integer"
19253 },
44660702 19254 "iops_rd" : {
de0983cb 19255 "description" : "Maximum read I/O in operations per second.",
44660702 19256 "format_description" : "iops",
56122987 19257 "optional" : 1,
44660702 19258 "type" : "integer"
7aacca6f 19259 },
de0983cb 19260 "iops_rd_length" : {
5d9c884c 19261 "alias" : "iops_rd_max_length"
de0983cb 19262 },
44660702 19263 "iops_rd_max" : {
de0983cb 19264 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 19265 "format_description" : "iops",
7aacca6f 19266 "optional" : 1,
44660702 19267 "type" : "integer"
7aacca6f 19268 },
5d9c884c
DM
19269 "iops_rd_max_length" : {
19270 "description" : "Maximum length of read I/O bursts in seconds.",
19271 "format_description" : "seconds",
19272 "minimum" : 1,
19273 "optional" : 1,
19274 "type" : "integer"
19275 },
44660702 19276 "iops_wr" : {
de0983cb 19277 "description" : "Maximum write I/O in operations per second.",
44660702 19278 "format_description" : "iops",
7aacca6f 19279 "optional" : 1,
44660702 19280 "type" : "integer"
56122987 19281 },
de0983cb 19282 "iops_wr_length" : {
5d9c884c 19283 "alias" : "iops_wr_max_length"
de0983cb 19284 },
44660702 19285 "iops_wr_max" : {
de0983cb 19286 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 19287 "format_description" : "iops",
7aacca6f 19288 "optional" : 1,
44660702 19289 "type" : "integer"
7aacca6f 19290 },
5d9c884c
DM
19291 "iops_wr_max_length" : {
19292 "description" : "Maximum length of write I/O bursts in seconds.",
19293 "format_description" : "seconds",
19294 "minimum" : 1,
19295 "optional" : 1,
19296 "type" : "integer"
19297 },
7aacca6f 19298 "mbps" : {
de0983cb 19299 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 19300 "format_description" : "mbps",
7aacca6f 19301 "optional" : 1,
44660702 19302 "type" : "number"
7aacca6f 19303 },
44660702 19304 "mbps_max" : {
de0983cb 19305 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 19306 "format_description" : "mbps",
7aacca6f 19307 "optional" : 1,
44660702 19308 "type" : "number"
7aacca6f 19309 },
44660702 19310 "mbps_rd" : {
de0983cb 19311 "description" : "Maximum read speed in megabytes per second.",
44660702 19312 "format_description" : "mbps",
7aacca6f 19313 "optional" : 1,
44660702 19314 "type" : "number"
7aacca6f 19315 },
44660702 19316 "mbps_rd_max" : {
de0983cb 19317 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
19318 "format_description" : "mbps",
19319 "optional" : 1,
19320 "type" : "number"
7aacca6f 19321 },
44660702 19322 "mbps_wr" : {
de0983cb 19323 "description" : "Maximum write speed in megabytes per second.",
44660702 19324 "format_description" : "mbps",
7aacca6f 19325 "optional" : 1,
44660702
DM
19326 "type" : "number"
19327 },
19328 "mbps_wr_max" : {
de0983cb 19329 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
19330 "format_description" : "mbps",
19331 "optional" : 1,
19332 "type" : "number"
19333 },
19334 "media" : {
19335 "default" : "disk",
19336 "description" : "The drive's media type.",
56122987 19337 "enum" : [
44660702
DM
19338 "cdrom",
19339 "disk"
56122987 19340 ],
44660702
DM
19341 "optional" : 1,
19342 "type" : "string"
56122987 19343 },
7aacca6f 19344 "model" : {
44660702 19345 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
56122987 19346 "format" : "urlencoded",
7aacca6f 19347 "format_description" : "model",
44660702 19348 "maxLength" : 120,
56122987 19349 "optional" : 1,
44660702 19350 "type" : "string"
56122987 19351 },
5d9c884c
DM
19352 "replicate" : {
19353 "default" : 1,
19354 "description" : "Whether the drive should considered for replication jobs.",
19355 "optional" : 1,
19356 "type" : "boolean"
19357 },
44660702
DM
19358 "rerror" : {
19359 "description" : "Read error action.",
19360 "enum" : [
19361 "ignore",
19362 "report",
19363 "stop"
19364 ],
56122987 19365 "optional" : 1,
44660702 19366 "type" : "string"
56122987 19367 },
44660702
DM
19368 "secs" : {
19369 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
19370 "optional" : 1,
19371 "type" : "integer"
56122987 19372 },
44660702
DM
19373 "serial" : {
19374 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
19375 "format" : "urlencoded",
19376 "format_description" : "serial",
19377 "maxLength" : 60,
56122987 19378 "optional" : 1,
44660702 19379 "type" : "string"
56122987 19380 },
27a7acb2
DM
19381 "shared" : {
19382 "default" : 0,
19383 "description" : "Mark this locally-managed volume as available on all nodes",
19384 "optional" : 1,
19385 "type" : "boolean",
19386 "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!"
19387 },
44660702
DM
19388 "size" : {
19389 "description" : "Disk size. This is purely informational and has no effect.",
19390 "format" : "disk-size",
f004f5b9 19391 "format_description" : "DiskSize",
56122987 19392 "optional" : 1,
44660702 19393 "type" : "string"
56122987 19394 },
44660702 19395 "snapshot" : {
27a7acb2 19396 "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 19397 "optional" : 1,
44660702 19398 "type" : "boolean"
56122987 19399 },
25203dc1
NC
19400 "ssd" : {
19401 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
19402 "optional" : 1,
19403 "type" : "boolean"
19404 },
44660702
DM
19405 "trans" : {
19406 "description" : "Force disk geometry bios translation mode.",
19407 "enum" : [
19408 "none",
19409 "lba",
19410 "auto"
19411 ],
56122987 19412 "optional" : 1,
44660702
DM
19413 "type" : "string"
19414 },
19415 "volume" : {
19416 "alias" : "file"
56122987 19417 },
7aacca6f 19418 "werror" : {
44660702 19419 "description" : "Write error action.",
7aacca6f
DM
19420 "enum" : [
19421 "enospc",
19422 "ignore",
19423 "report",
19424 "stop"
19425 ],
56122987 19426 "optional" : 1,
44660702 19427 "type" : "string"
95895385
TL
19428 },
19429 "wwn" : {
19430 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
19431 "format_description" : "wwn",
19432 "optional" : 1,
19433 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
19434 "type" : "string"
7aacca6f 19435 }
44660702
DM
19436 },
19437 "optional" : 1,
4bd7df8b 19438 "type" : "string",
7af2edf9 19439 "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
19440 },
19441 "ipconfig[n]" : {
d2656385 19442 "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
19443 "format" : "pve-qm-ipconfig",
19444 "optional" : 1,
19445 "type" : "string",
19446 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
7aacca6f 19447 },
95895385
TL
19448 "ivshmem" : {
19449 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
19450 "format" : {
19451 "name" : {
19452 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
19453 "format_description" : "string",
19454 "optional" : 1,
19455 "pattern" : "[a-zA-Z0-9\\-]+",
19456 "type" : "string"
19457 },
19458 "size" : {
19459 "description" : "The size of the file in MB.",
19460 "minimum" : 1,
19461 "type" : "integer"
19462 }
19463 },
19464 "optional" : 1,
19465 "type" : "string",
19466 "typetext" : "size=<integer> [,name=<string>]"
19467 },
4772952b
TL
19468 "keephugepages" : {
19469 "default" : 0,
19470 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
19471 "optional" : 1,
19472 "type" : "boolean",
19473 "typetext" : "<boolean>"
19474 },
44660702 19475 "keyboard" : {
35a75dd3 19476 "default" : null,
7af2edf9 19477 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
19478 "enum" : [
19479 "de",
19480 "de-ch",
19481 "da",
19482 "en-gb",
19483 "en-us",
19484 "es",
19485 "fi",
19486 "fr",
19487 "fr-be",
19488 "fr-ca",
19489 "fr-ch",
19490 "hu",
19491 "is",
19492 "it",
19493 "ja",
19494 "lt",
19495 "mk",
19496 "nl",
19497 "no",
19498 "pl",
19499 "pt",
19500 "pt-br",
19501 "sv",
19502 "sl",
19503 "tr"
19504 ],
7aacca6f 19505 "optional" : 1,
44660702 19506 "type" : "string"
7aacca6f 19507 },
44660702 19508 "kvm" : {
7aacca6f 19509 "default" : 1,
44660702 19510 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 19511 "optional" : 1,
013dc89f
DM
19512 "type" : "boolean",
19513 "typetext" : "<boolean>"
7aacca6f 19514 },
44660702 19515 "localtime" : {
5370fa8c 19516 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
7aacca6f 19517 "optional" : 1,
013dc89f
DM
19518 "type" : "boolean",
19519 "typetext" : "<boolean>"
7aacca6f 19520 },
44660702
DM
19521 "lock" : {
19522 "description" : "Lock/unlock the VM.",
19523 "enum" : [
44660702 19524 "backup",
5f26e15b
TL
19525 "clone",
19526 "create",
19527 "migrate",
19528 "rollback",
44660702 19529 "snapshot",
95895385
TL
19530 "snapshot-delete",
19531 "suspending",
19532 "suspended"
44660702 19533 ],
7aacca6f 19534 "optional" : 1,
44660702 19535 "type" : "string"
7aacca6f 19536 },
44660702 19537 "machine" : {
9d2e98ed 19538 "description" : "Specifies the QEMU machine type.",
44660702 19539 "maxLength" : 40,
7aacca6f 19540 "optional" : 1,
5c1699e5 19541 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702 19542 "type" : "string"
7aacca6f 19543 },
44660702 19544 "memory" : {
bd92b745
TL
19545 "description" : "Memory properties.",
19546 "format" : {
19547 "current" : {
19548 "default" : 512,
19549 "default_key" : 1,
19550 "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
19551 "minimum" : 16,
19552 "type" : "integer"
19553 }
19554 },
7aacca6f 19555 "optional" : 1,
bd92b745
TL
19556 "type" : "string",
19557 "typetext" : "[current=]<integer>"
7aacca6f 19558 },
44660702
DM
19559 "migrate_downtime" : {
19560 "default" : 0.1,
19561 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
19562 "minimum" : 0,
7aacca6f 19563 "optional" : 1,
4bd7df8b 19564 "type" : "number",
013dc89f 19565 "typetext" : "<number> (0 - N)"
7aacca6f 19566 },
44660702 19567 "migrate_speed" : {
7aacca6f 19568 "default" : 0,
44660702
DM
19569 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
19570 "minimum" : 0,
19571 "optional" : 1,
4bd7df8b 19572 "type" : "integer",
013dc89f 19573 "typetext" : "<integer> (0 - N)"
7aacca6f 19574 },
44660702
DM
19575 "name" : {
19576 "description" : "Set a name for the VM. Only used on the configuration web interface.",
19577 "format" : "dns-name",
7aacca6f 19578 "optional" : 1,
013dc89f
DM
19579 "type" : "string",
19580 "typetext" : "<string>"
7aacca6f 19581 },
27a7acb2 19582 "nameserver" : {
de786b48 19583 "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
19584 "format" : "address-list",
19585 "optional" : 1,
19586 "type" : "string",
19587 "typetext" : "<string>"
19588 },
44660702 19589 "net[n]" : {
c2993fe5 19590 "description" : "Specify network devices.",
f004f5b9
DM
19591 "format" : {
19592 "bridge" : {
c2993fe5 19593 "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 19594 "format" : "pve-bridge-id",
f004f5b9
DM
19595 "format_description" : "bridge",
19596 "optional" : 1,
19597 "type" : "string"
19598 },
19599 "e1000" : {
19600 "alias" : "macaddr",
19601 "keyAlias" : "model"
19602 },
19603 "e1000-82540em" : {
19604 "alias" : "macaddr",
19605 "keyAlias" : "model"
19606 },
19607 "e1000-82544gc" : {
19608 "alias" : "macaddr",
19609 "keyAlias" : "model"
19610 },
19611 "e1000-82545em" : {
19612 "alias" : "macaddr",
19613 "keyAlias" : "model"
19614 },
5370fa8c
TL
19615 "e1000e" : {
19616 "alias" : "macaddr",
19617 "keyAlias" : "model"
19618 },
f004f5b9
DM
19619 "firewall" : {
19620 "description" : "Whether this interface should be protected by the firewall.",
19621 "optional" : 1,
19622 "type" : "boolean"
19623 },
19624 "i82551" : {
19625 "alias" : "macaddr",
19626 "keyAlias" : "model"
19627 },
19628 "i82557b" : {
19629 "alias" : "macaddr",
19630 "keyAlias" : "model"
19631 },
19632 "i82559er" : {
19633 "alias" : "macaddr",
19634 "keyAlias" : "model"
19635 },
19636 "link_down" : {
c2993fe5 19637 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
19638 "optional" : 1,
19639 "type" : "boolean"
19640 },
19641 "macaddr" : {
c2993fe5 19642 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 19643 "format" : "mac-addr",
f004f5b9 19644 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 19645 "optional" : 1,
95895385
TL
19646 "type" : "string",
19647 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
19648 },
19649 "model" : {
19650 "default_key" : 1,
c2993fe5 19651 "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 19652 "enum" : [
f004f5b9 19653 "e1000",
5370fa8c
TL
19654 "e1000-82540em",
19655 "e1000-82544gc",
19656 "e1000-82545em",
19657 "e1000e",
f004f5b9
DM
19658 "i82551",
19659 "i82557b",
19660 "i82559er",
5370fa8c
TL
19661 "ne2k_isa",
19662 "ne2k_pci",
19663 "pcnet",
19664 "rtl8139",
19665 "virtio",
19666 "vmxnet3"
f004f5b9 19667 ],
f004f5b9
DM
19668 "type" : "string"
19669 },
ac70d7d1
TL
19670 "mtu" : {
19671 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
19672 "maximum" : 65520,
19673 "minimum" : 1,
19674 "optional" : 1,
19675 "type" : "integer"
19676 },
f004f5b9
DM
19677 "ne2k_isa" : {
19678 "alias" : "macaddr",
19679 "keyAlias" : "model"
19680 },
19681 "ne2k_pci" : {
19682 "alias" : "macaddr",
19683 "keyAlias" : "model"
19684 },
19685 "pcnet" : {
19686 "alias" : "macaddr",
19687 "keyAlias" : "model"
19688 },
19689 "queues" : {
19690 "description" : "Number of packet queues to be used on the device.",
81a3384d 19691 "maximum" : 64,
f004f5b9
DM
19692 "minimum" : 0,
19693 "optional" : 1,
19694 "type" : "integer"
19695 },
19696 "rate" : {
c2993fe5 19697 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
19698 "minimum" : 0,
19699 "optional" : 1,
19700 "type" : "number"
19701 },
19702 "rtl8139" : {
19703 "alias" : "macaddr",
19704 "keyAlias" : "model"
19705 },
19706 "tag" : {
19707 "description" : "VLAN tag to apply to packets on this interface.",
19708 "maximum" : 4094,
c2993fe5 19709 "minimum" : 1,
f004f5b9
DM
19710 "optional" : 1,
19711 "type" : "integer"
19712 },
19713 "trunks" : {
19714 "description" : "VLAN trunks to pass through this interface.",
19715 "format_description" : "vlanid[;vlanid...]",
19716 "optional" : 1,
19717 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19718 "type" : "string"
19719 },
19720 "virtio" : {
19721 "alias" : "macaddr",
19722 "keyAlias" : "model"
19723 },
19724 "vmxnet3" : {
19725 "alias" : "macaddr",
19726 "keyAlias" : "model"
19727 }
19728 },
7aacca6f 19729 "optional" : 1,
4bd7df8b 19730 "type" : "string",
ac70d7d1 19731 "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 19732 },
44660702
DM
19733 "node" : {
19734 "description" : "The cluster node name.",
19735 "format" : "pve-node",
013dc89f
DM
19736 "type" : "string",
19737 "typetext" : "<string>"
44660702
DM
19738 },
19739 "numa" : {
19740 "default" : 0,
19741 "description" : "Enable/disable NUMA.",
7aacca6f 19742 "optional" : 1,
013dc89f
DM
19743 "type" : "boolean",
19744 "typetext" : "<boolean>"
7aacca6f 19745 },
44660702 19746 "numa[n]" : {
c2993fe5 19747 "description" : "NUMA topology.",
44660702
DM
19748 "format" : {
19749 "cpus" : {
c2993fe5 19750 "description" : "CPUs accessing this NUMA node.",
44660702
DM
19751 "format_description" : "id[-id];...",
19752 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19753 "type" : "string"
19754 },
19755 "hostnodes" : {
c2993fe5 19756 "description" : "Host NUMA nodes to use.",
44660702
DM
19757 "format_description" : "id[-id];...",
19758 "optional" : 1,
19759 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
19760 "type" : "string"
19761 },
19762 "memory" : {
c2993fe5 19763 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
19764 "optional" : 1,
19765 "type" : "number"
19766 },
19767 "policy" : {
c2993fe5 19768 "description" : "NUMA allocation policy.",
44660702
DM
19769 "enum" : [
19770 "preferred",
19771 "bind",
19772 "interleave"
19773 ],
44660702
DM
19774 "optional" : 1,
19775 "type" : "string"
19776 }
19777 },
7aacca6f 19778 "optional" : 1,
4bd7df8b
DM
19779 "type" : "string",
19780 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
7aacca6f 19781 },
44660702
DM
19782 "onboot" : {
19783 "default" : 0,
19784 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 19785 "optional" : 1,
013dc89f
DM
19786 "type" : "boolean",
19787 "typetext" : "<boolean>"
7aacca6f 19788 },
44660702 19789 "ostype" : {
c2993fe5 19790 "description" : "Specify guest operating system.",
44660702
DM
19791 "enum" : [
19792 "other",
19793 "wxp",
19794 "w2k",
19795 "w2k3",
19796 "w2k8",
19797 "wvista",
19798 "win7",
19799 "win8",
32d876b5 19800 "win10",
5370fa8c 19801 "win11",
44660702
DM
19802 "l24",
19803 "l26",
19804 "solaris"
19805 ],
7aacca6f 19806 "optional" : 1,
c2993fe5 19807 "type" : "string",
9d2e98ed 19808 "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\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
7aacca6f 19809 },
44660702 19810 "parallel[n]" : {
c2993fe5 19811 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 19812 "optional" : 1,
44660702 19813 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 19814 "type" : "string",
4772952b 19815 "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 19816 },
44660702
DM
19817 "protection" : {
19818 "default" : 0,
c2993fe5 19819 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 19820 "optional" : 1,
013dc89f
DM
19821 "type" : "boolean",
19822 "typetext" : "<boolean>"
7aacca6f 19823 },
44660702
DM
19824 "reboot" : {
19825 "default" : 1,
19826 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 19827 "optional" : 1,
013dc89f
DM
19828 "type" : "boolean",
19829 "typetext" : "<boolean>"
7aacca6f 19830 },
44660702
DM
19831 "revert" : {
19832 "description" : "Revert a pending change.",
19833 "format" : "pve-configid-list",
7aacca6f 19834 "optional" : 1,
013dc89f
DM
19835 "type" : "string",
19836 "typetext" : "<string>"
7aacca6f 19837 },
c5aa7e14
TL
19838 "rng0" : {
19839 "description" : "Configure a VirtIO-based Random Number Generator.",
19840 "format" : {
19841 "max_bytes" : {
19842 "default" : 1024,
5370fa8c 19843 "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
19844 "optional" : 1,
19845 "type" : "integer"
19846 },
19847 "period" : {
19848 "default" : 1000,
19849 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
19850 "optional" : 1,
19851 "type" : "integer"
19852 },
19853 "source" : {
19854 "default_key" : 1,
5370fa8c 19855 "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
19856 "enum" : [
19857 "/dev/urandom",
19858 "/dev/random",
19859 "/dev/hwrng"
19860 ],
19861 "type" : "string"
19862 }
19863 },
19864 "optional" : 1,
19865 "type" : "string",
19866 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
19867 },
44660702 19868 "sata[n]" : {
7af2edf9 19869 "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 19870 "format" : {
44660702
DM
19871 "aio" : {
19872 "description" : "AIO type to use.",
19873 "enum" : [
19874 "native",
8f4d9c87
TL
19875 "threads",
19876 "io_uring"
44660702 19877 ],
44660702
DM
19878 "optional" : 1,
19879 "type" : "string"
19880 },
19881 "backup" : {
19882 "description" : "Whether the drive should be included when making backups.",
44660702
DM
19883 "optional" : 1,
19884 "type" : "boolean"
19885 },
19886 "bps" : {
de0983cb 19887 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 19888 "format_description" : "bps",
7aacca6f
DM
19889 "optional" : 1,
19890 "type" : "integer"
56122987 19891 },
de0983cb
DM
19892 "bps_max_length" : {
19893 "description" : "Maximum length of I/O bursts in seconds.",
19894 "format_description" : "seconds",
19895 "minimum" : 1,
19896 "optional" : 1,
19897 "type" : "integer"
19898 },
44660702 19899 "bps_rd" : {
de0983cb 19900 "description" : "Maximum read speed in bytes per second.",
44660702 19901 "format_description" : "bps",
7aacca6f 19902 "optional" : 1,
44660702 19903 "type" : "integer"
7aacca6f 19904 },
de0983cb 19905 "bps_rd_length" : {
5d9c884c
DM
19906 "alias" : "bps_rd_max_length"
19907 },
19908 "bps_rd_max_length" : {
de0983cb
DM
19909 "description" : "Maximum length of read I/O bursts in seconds.",
19910 "format_description" : "seconds",
19911 "minimum" : 1,
19912 "optional" : 1,
19913 "type" : "integer"
19914 },
44660702 19915 "bps_wr" : {
de0983cb 19916 "description" : "Maximum write speed in bytes per second.",
44660702 19917 "format_description" : "bps",
7aacca6f 19918 "optional" : 1,
44660702 19919 "type" : "integer"
7aacca6f 19920 },
de0983cb 19921 "bps_wr_length" : {
5d9c884c
DM
19922 "alias" : "bps_wr_max_length"
19923 },
19924 "bps_wr_max_length" : {
de0983cb
DM
19925 "description" : "Maximum length of write I/O bursts in seconds.",
19926 "format_description" : "seconds",
19927 "minimum" : 1,
19928 "optional" : 1,
19929 "type" : "integer"
19930 },
44660702
DM
19931 "cache" : {
19932 "description" : "The drive's cache mode",
19933 "enum" : [
19934 "none",
19935 "writethrough",
19936 "writeback",
19937 "unsafe",
19938 "directsync"
19939 ],
7aacca6f 19940 "optional" : 1,
44660702 19941 "type" : "string"
7aacca6f 19942 },
44660702
DM
19943 "cyls" : {
19944 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 19945 "optional" : 1,
44660702 19946 "type" : "integer"
7aacca6f 19947 },
44660702
DM
19948 "detect_zeroes" : {
19949 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
7aacca6f 19950 "optional" : 1,
44660702 19951 "type" : "boolean"
7aacca6f 19952 },
44660702
DM
19953 "discard" : {
19954 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
19955 "enum" : [
19956 "ignore",
19957 "on"
19958 ],
7aacca6f 19959 "optional" : 1,
44660702
DM
19960 "type" : "string"
19961 },
19962 "file" : {
19963 "default_key" : 1,
19964 "description" : "The drive's backing volume.",
19965 "format" : "pve-volume-id-or-qm-path",
19966 "format_description" : "volume",
19967 "type" : "string"
7aacca6f
DM
19968 },
19969 "format" : {
7aacca6f 19970 "description" : "The drive's backing file's data format.",
56122987
DM
19971 "enum" : [
19972 "raw",
19973 "cow",
19974 "qcow",
19975 "qed",
19976 "qcow2",
19977 "vmdk",
19978 "cloop"
19979 ],
19980 "optional" : 1,
7aacca6f 19981 "type" : "string"
56122987 19982 },
7aacca6f 19983 "heads" : {
7aacca6f 19984 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
19985 "optional" : 1,
19986 "type" : "integer"
56122987 19987 },
7af2edf9
TL
19988 "import-from" : {
19989 "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!",
19990 "format" : "pve-volume-id-or-absolute-path",
19991 "format_description" : "source volume",
19992 "optional" : 1,
19993 "type" : "string"
19994 },
44660702 19995 "iops" : {
de0983cb 19996 "description" : "Maximum r/w I/O in operations per second.",
44660702 19997 "format_description" : "iops",
56122987 19998 "optional" : 1,
44660702 19999 "type" : "integer"
7aacca6f 20000 },
44660702 20001 "iops_max" : {
de0983cb 20002 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 20003 "format_description" : "iops",
7aacca6f 20004 "optional" : 1,
44660702 20005 "type" : "integer"
56122987 20006 },
de0983cb
DM
20007 "iops_max_length" : {
20008 "description" : "Maximum length of I/O bursts in seconds.",
20009 "format_description" : "seconds",
20010 "minimum" : 1,
20011 "optional" : 1,
20012 "type" : "integer"
20013 },
44660702 20014 "iops_rd" : {
de0983cb 20015 "description" : "Maximum read I/O in operations per second.",
44660702 20016 "format_description" : "iops",
56122987 20017 "optional" : 1,
44660702 20018 "type" : "integer"
7aacca6f 20019 },
de0983cb 20020 "iops_rd_length" : {
5d9c884c 20021 "alias" : "iops_rd_max_length"
de0983cb 20022 },
44660702 20023 "iops_rd_max" : {
de0983cb 20024 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 20025 "format_description" : "iops",
56122987 20026 "optional" : 1,
44660702 20027 "type" : "integer"
56122987 20028 },
5d9c884c
DM
20029 "iops_rd_max_length" : {
20030 "description" : "Maximum length of read I/O bursts in seconds.",
20031 "format_description" : "seconds",
20032 "minimum" : 1,
20033 "optional" : 1,
20034 "type" : "integer"
20035 },
44660702 20036 "iops_wr" : {
de0983cb 20037 "description" : "Maximum write I/O in operations per second.",
44660702
DM
20038 "format_description" : "iops",
20039 "optional" : 1,
20040 "type" : "integer"
56122987 20041 },
de0983cb 20042 "iops_wr_length" : {
5d9c884c 20043 "alias" : "iops_wr_max_length"
de0983cb 20044 },
44660702 20045 "iops_wr_max" : {
de0983cb 20046 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
20047 "format_description" : "iops",
20048 "optional" : 1,
20049 "type" : "integer"
20050 },
5d9c884c
DM
20051 "iops_wr_max_length" : {
20052 "description" : "Maximum length of write I/O bursts in seconds.",
20053 "format_description" : "seconds",
20054 "minimum" : 1,
20055 "optional" : 1,
20056 "type" : "integer"
20057 },
44660702 20058 "mbps" : {
de0983cb 20059 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
20060 "format_description" : "mbps",
20061 "optional" : 1,
20062 "type" : "number"
20063 },
20064 "mbps_max" : {
de0983cb 20065 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
20066 "format_description" : "mbps",
20067 "optional" : 1,
20068 "type" : "number"
20069 },
20070 "mbps_rd" : {
de0983cb 20071 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
20072 "format_description" : "mbps",
20073 "optional" : 1,
20074 "type" : "number"
20075 },
20076 "mbps_rd_max" : {
de0983cb 20077 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
20078 "format_description" : "mbps",
20079 "optional" : 1,
20080 "type" : "number"
20081 },
20082 "mbps_wr" : {
de0983cb 20083 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
20084 "format_description" : "mbps",
20085 "optional" : 1,
20086 "type" : "number"
20087 },
20088 "mbps_wr_max" : {
de0983cb 20089 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
20090 "format_description" : "mbps",
20091 "optional" : 1,
20092 "type" : "number"
20093 },
20094 "media" : {
20095 "default" : "disk",
20096 "description" : "The drive's media type.",
20097 "enum" : [
20098 "cdrom",
20099 "disk"
20100 ],
56122987 20101 "optional" : 1,
44660702
DM
20102 "type" : "string"
20103 },
5d9c884c
DM
20104 "replicate" : {
20105 "default" : 1,
20106 "description" : "Whether the drive should considered for replication jobs.",
20107 "optional" : 1,
20108 "type" : "boolean"
20109 },
44660702 20110 "rerror" : {
7aacca6f
DM
20111 "description" : "Read error action.",
20112 "enum" : [
20113 "ignore",
20114 "report",
20115 "stop"
44660702 20116 ],
56122987 20117 "optional" : 1,
44660702 20118 "type" : "string"
56122987 20119 },
7aacca6f 20120 "secs" : {
44660702 20121 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 20122 "optional" : 1,
44660702 20123 "type" : "integer"
56122987 20124 },
44660702
DM
20125 "serial" : {
20126 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
20127 "format" : "urlencoded",
20128 "format_description" : "serial",
20129 "maxLength" : 60,
56122987 20130 "optional" : 1,
44660702 20131 "type" : "string"
56122987 20132 },
27a7acb2
DM
20133 "shared" : {
20134 "default" : 0,
20135 "description" : "Mark this locally-managed volume as available on all nodes",
20136 "optional" : 1,
20137 "type" : "boolean",
20138 "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!"
20139 },
44660702
DM
20140 "size" : {
20141 "description" : "Disk size. This is purely informational and has no effect.",
20142 "format" : "disk-size",
f004f5b9 20143 "format_description" : "DiskSize",
56122987 20144 "optional" : 1,
44660702 20145 "type" : "string"
56122987
DM
20146 },
20147 "snapshot" : {
27a7acb2 20148 "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 20149 "optional" : 1,
44660702 20150 "type" : "boolean"
56122987 20151 },
25203dc1
NC
20152 "ssd" : {
20153 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
20154 "optional" : 1,
20155 "type" : "boolean"
20156 },
56122987 20157 "trans" : {
7aacca6f 20158 "description" : "Force disk geometry bios translation mode.",
56122987
DM
20159 "enum" : [
20160 "none",
20161 "lba",
20162 "auto"
20163 ],
20164 "optional" : 1,
44660702 20165 "type" : "string"
56122987 20166 },
44660702
DM
20167 "volume" : {
20168 "alias" : "file"
56122987 20169 },
7aacca6f 20170 "werror" : {
44660702 20171 "description" : "Write error action.",
56122987 20172 "enum" : [
7aacca6f 20173 "enospc",
56122987 20174 "ignore",
7aacca6f
DM
20175 "report",
20176 "stop"
20177 ],
7aacca6f 20178 "optional" : 1,
44660702 20179 "type" : "string"
95895385
TL
20180 },
20181 "wwn" : {
20182 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
20183 "format_description" : "wwn",
20184 "optional" : 1,
20185 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
20186 "type" : "string"
44660702
DM
20187 }
20188 },
20189 "optional" : 1,
4bd7df8b 20190 "type" : "string",
7af2edf9 20191 "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
20192 },
20193 "scsi[n]" : {
7af2edf9 20194 "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
20195 "format" : {
20196 "aio" : {
7aacca6f 20197 "description" : "AIO type to use.",
56122987
DM
20198 "enum" : [
20199 "native",
8f4d9c87
TL
20200 "threads",
20201 "io_uring"
44660702 20202 ],
56122987 20203 "optional" : 1,
44660702 20204 "type" : "string"
56122987 20205 },
7aacca6f 20206 "backup" : {
7aacca6f 20207 "description" : "Whether the drive should be included when making backups.",
7aacca6f 20208 "optional" : 1,
44660702 20209 "type" : "boolean"
56122987 20210 },
44660702 20211 "bps" : {
de0983cb 20212 "description" : "Maximum r/w speed in bytes per second.",
44660702 20213 "format_description" : "bps",
7aacca6f 20214 "optional" : 1,
44660702 20215 "type" : "integer"
7aacca6f 20216 },
de0983cb
DM
20217 "bps_max_length" : {
20218 "description" : "Maximum length of I/O bursts in seconds.",
20219 "format_description" : "seconds",
20220 "minimum" : 1,
20221 "optional" : 1,
20222 "type" : "integer"
20223 },
44660702 20224 "bps_rd" : {
de0983cb 20225 "description" : "Maximum read speed in bytes per second.",
44660702 20226 "format_description" : "bps",
56122987 20227 "optional" : 1,
44660702 20228 "type" : "integer"
56122987 20229 },
de0983cb 20230 "bps_rd_length" : {
5d9c884c
DM
20231 "alias" : "bps_rd_max_length"
20232 },
20233 "bps_rd_max_length" : {
de0983cb
DM
20234 "description" : "Maximum length of read I/O bursts in seconds.",
20235 "format_description" : "seconds",
20236 "minimum" : 1,
20237 "optional" : 1,
20238 "type" : "integer"
20239 },
44660702 20240 "bps_wr" : {
de0983cb 20241 "description" : "Maximum write speed in bytes per second.",
44660702 20242 "format_description" : "bps",
56122987 20243 "optional" : 1,
44660702 20244 "type" : "integer"
56122987 20245 },
de0983cb 20246 "bps_wr_length" : {
5d9c884c
DM
20247 "alias" : "bps_wr_max_length"
20248 },
20249 "bps_wr_max_length" : {
de0983cb
DM
20250 "description" : "Maximum length of write I/O bursts in seconds.",
20251 "format_description" : "seconds",
20252 "minimum" : 1,
20253 "optional" : 1,
20254 "type" : "integer"
20255 },
44660702
DM
20256 "cache" : {
20257 "description" : "The drive's cache mode",
20258 "enum" : [
20259 "none",
20260 "writethrough",
20261 "writeback",
20262 "unsafe",
20263 "directsync"
20264 ],
56122987 20265 "optional" : 1,
44660702
DM
20266 "type" : "string"
20267 },
20268 "cyls" : {
20269 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
20270 "optional" : 1,
20271 "type" : "integer"
20272 },
20273 "detect_zeroes" : {
20274 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
20275 "optional" : 1,
20276 "type" : "boolean"
20277 },
20278 "discard" : {
20279 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
20280 "enum" : [
20281 "ignore",
20282 "on"
20283 ],
44660702
DM
20284 "optional" : 1,
20285 "type" : "string"
20286 },
20287 "file" : {
20288 "default_key" : 1,
20289 "description" : "The drive's backing volume.",
20290 "format" : "pve-volume-id-or-qm-path",
20291 "format_description" : "volume",
20292 "type" : "string"
56122987 20293 },
7aacca6f 20294 "format" : {
44660702 20295 "description" : "The drive's backing file's data format.",
7aacca6f
DM
20296 "enum" : [
20297 "raw",
20298 "cow",
20299 "qcow",
20300 "qed",
20301 "qcow2",
20302 "vmdk",
20303 "cloop"
20304 ],
56122987 20305 "optional" : 1,
44660702 20306 "type" : "string"
56122987 20307 },
44660702
DM
20308 "heads" : {
20309 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 20310 "optional" : 1,
44660702 20311 "type" : "integer"
56122987 20312 },
7af2edf9
TL
20313 "import-from" : {
20314 "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!",
20315 "format" : "pve-volume-id-or-absolute-path",
20316 "format_description" : "source volume",
20317 "optional" : 1,
20318 "type" : "string"
20319 },
44660702 20320 "iops" : {
de0983cb 20321 "description" : "Maximum r/w I/O in operations per second.",
44660702 20322 "format_description" : "iops",
7aacca6f 20323 "optional" : 1,
44660702 20324 "type" : "integer"
56122987 20325 },
44660702 20326 "iops_max" : {
de0983cb 20327 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
7aacca6f 20328 "format_description" : "iops",
7aacca6f 20329 "optional" : 1,
44660702 20330 "type" : "integer"
56122987 20331 },
de0983cb
DM
20332 "iops_max_length" : {
20333 "description" : "Maximum length of I/O bursts in seconds.",
20334 "format_description" : "seconds",
20335 "minimum" : 1,
20336 "optional" : 1,
20337 "type" : "integer"
20338 },
44660702 20339 "iops_rd" : {
de0983cb 20340 "description" : "Maximum read I/O in operations per second.",
44660702 20341 "format_description" : "iops",
56122987 20342 "optional" : 1,
44660702 20343 "type" : "integer"
56122987 20344 },
de0983cb 20345 "iops_rd_length" : {
5d9c884c 20346 "alias" : "iops_rd_max_length"
de0983cb 20347 },
44660702 20348 "iops_rd_max" : {
de0983cb 20349 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 20350 "format_description" : "iops",
56122987 20351 "optional" : 1,
44660702 20352 "type" : "integer"
56122987 20353 },
5d9c884c
DM
20354 "iops_rd_max_length" : {
20355 "description" : "Maximum length of read I/O bursts in seconds.",
20356 "format_description" : "seconds",
20357 "minimum" : 1,
20358 "optional" : 1,
20359 "type" : "integer"
20360 },
44660702 20361 "iops_wr" : {
de0983cb 20362 "description" : "Maximum write I/O in operations per second.",
44660702 20363 "format_description" : "iops",
56122987 20364 "optional" : 1,
44660702 20365 "type" : "integer"
56122987 20366 },
de0983cb 20367 "iops_wr_length" : {
5d9c884c 20368 "alias" : "iops_wr_max_length"
de0983cb 20369 },
44660702 20370 "iops_wr_max" : {
de0983cb 20371 "description" : "Maximum unthrottled write I/O pool in operations per second.",
7aacca6f 20372 "format_description" : "iops",
44660702
DM
20373 "optional" : 1,
20374 "type" : "integer"
7aacca6f 20375 },
5d9c884c
DM
20376 "iops_wr_max_length" : {
20377 "description" : "Maximum length of write I/O bursts in seconds.",
20378 "format_description" : "seconds",
20379 "minimum" : 1,
20380 "optional" : 1,
20381 "type" : "integer"
20382 },
7aacca6f 20383 "iothread" : {
44660702 20384 "description" : "Whether to use iothreads for this drive",
56122987 20385 "optional" : 1,
44660702 20386 "type" : "boolean"
56122987 20387 },
44660702 20388 "mbps" : {
de0983cb 20389 "description" : "Maximum r/w speed in megabytes per second.",
44660702 20390 "format_description" : "mbps",
56122987 20391 "optional" : 1,
44660702 20392 "type" : "number"
56122987 20393 },
44660702 20394 "mbps_max" : {
de0983cb 20395 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 20396 "format_description" : "mbps",
56122987 20397 "optional" : 1,
44660702 20398 "type" : "number"
56122987 20399 },
44660702 20400 "mbps_rd" : {
de0983cb 20401 "description" : "Maximum read speed in megabytes per second.",
44660702 20402 "format_description" : "mbps",
7aacca6f 20403 "optional" : 1,
44660702 20404 "type" : "number"
56122987 20405 },
44660702 20406 "mbps_rd_max" : {
de0983cb 20407 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 20408 "format_description" : "mbps",
7aacca6f 20409 "optional" : 1,
44660702 20410 "type" : "number"
7aacca6f 20411 },
44660702 20412 "mbps_wr" : {
de0983cb 20413 "description" : "Maximum write speed in megabytes per second.",
44660702 20414 "format_description" : "mbps",
56122987 20415 "optional" : 1,
44660702 20416 "type" : "number"
56122987 20417 },
44660702 20418 "mbps_wr_max" : {
de0983cb 20419 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 20420 "format_description" : "mbps",
56122987 20421 "optional" : 1,
44660702
DM
20422 "type" : "number"
20423 },
20424 "media" : {
20425 "default" : "disk",
20426 "description" : "The drive's media type.",
7aacca6f 20427 "enum" : [
44660702
DM
20428 "cdrom",
20429 "disk"
7aacca6f 20430 ],
56122987 20431 "optional" : 1,
44660702 20432 "type" : "string"
56122987 20433 },
7aacca6f 20434 "queues" : {
44660702 20435 "description" : "Number of queues.",
7aacca6f 20436 "minimum" : 2,
7aacca6f
DM
20437 "optional" : 1,
20438 "type" : "integer"
56122987 20439 },
5d9c884c
DM
20440 "replicate" : {
20441 "default" : 1,
20442 "description" : "Whether the drive should considered for replication jobs.",
20443 "optional" : 1,
20444 "type" : "boolean"
20445 },
20446 "rerror" : {
20447 "description" : "Read error action.",
20448 "enum" : [
20449 "ignore",
20450 "report",
20451 "stop"
20452 ],
20453 "optional" : 1,
20454 "type" : "string"
20455 },
5370fa8c
TL
20456 "ro" : {
20457 "description" : "Whether the drive is read-only.",
20458 "optional" : 1,
20459 "type" : "boolean"
20460 },
52e44c50
FG
20461 "scsiblock" : {
20462 "default" : 0,
20463 "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",
20464 "optional" : 1,
20465 "type" : "boolean"
20466 },
44660702
DM
20467 "secs" : {
20468 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 20469 "optional" : 1,
44660702 20470 "type" : "integer"
56122987 20471 },
44660702
DM
20472 "serial" : {
20473 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
20474 "format" : "urlencoded",
20475 "format_description" : "serial",
20476 "maxLength" : 60,
56122987 20477 "optional" : 1,
44660702 20478 "type" : "string"
56122987 20479 },
27a7acb2
DM
20480 "shared" : {
20481 "default" : 0,
20482 "description" : "Mark this locally-managed volume as available on all nodes",
20483 "optional" : 1,
20484 "type" : "boolean",
20485 "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!"
20486 },
44660702
DM
20487 "size" : {
20488 "description" : "Disk size. This is purely informational and has no effect.",
20489 "format" : "disk-size",
f004f5b9 20490 "format_description" : "DiskSize",
44660702
DM
20491 "optional" : 1,
20492 "type" : "string"
20493 },
20494 "snapshot" : {
27a7acb2 20495 "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 20496 "optional" : 1,
44660702
DM
20497 "type" : "boolean"
20498 },
25203dc1
NC
20499 "ssd" : {
20500 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
20501 "optional" : 1,
20502 "type" : "boolean"
20503 },
44660702
DM
20504 "trans" : {
20505 "description" : "Force disk geometry bios translation mode.",
56122987 20506 "enum" : [
44660702
DM
20507 "none",
20508 "lba",
20509 "auto"
56122987 20510 ],
44660702
DM
20511 "optional" : 1,
20512 "type" : "string"
20513 },
20514 "volume" : {
20515 "alias" : "file"
56122987 20516 },
7aacca6f 20517 "werror" : {
7aacca6f
DM
20518 "description" : "Write error action.",
20519 "enum" : [
20520 "enospc",
20521 "ignore",
20522 "report",
20523 "stop"
44660702 20524 ],
56122987 20525 "optional" : 1,
7aacca6f 20526 "type" : "string"
95895385
TL
20527 },
20528 "wwn" : {
20529 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
20530 "format_description" : "wwn",
20531 "optional" : 1,
20532 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
20533 "type" : "string"
56122987 20534 }
44660702 20535 },
56122987 20536 "optional" : 1,
4bd7df8b 20537 "type" : "string",
7af2edf9 20538 "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>] [,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>] [,werror=<enum>] [,wwn=<wwn>]"
56122987
DM
20539 },
20540 "scsihw" : {
44660702 20541 "default" : "lsi",
c2993fe5 20542 "description" : "SCSI controller model",
56122987
DM
20543 "enum" : [
20544 "lsi",
20545 "lsi53c810",
20546 "virtio-scsi-pci",
20547 "virtio-scsi-single",
20548 "megasas",
20549 "pvscsi"
20550 ],
20551 "optional" : 1,
56122987
DM
20552 "type" : "string"
20553 },
27a7acb2 20554 "searchdomain" : {
de786b48 20555 "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
20556 "optional" : 1,
20557 "type" : "string",
20558 "typetext" : "<string>"
20559 },
44660702 20560 "serial[n]" : {
c2993fe5 20561 "description" : "Create a serial device inside the VM (n is 0 to 3)",
56122987 20562 "optional" : 1,
44660702 20563 "pattern" : "(/dev/.+|socket)",
c2993fe5 20564 "type" : "string",
4772952b 20565 "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 20566 },
44660702
DM
20567 "shares" : {
20568 "default" : 1000,
5da3d723 20569 "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
20570 "maximum" : 50000,
20571 "minimum" : 0,
7aacca6f 20572 "optional" : 1,
4bd7df8b 20573 "type" : "integer",
013dc89f 20574 "typetext" : "<integer> (0 - 50000)"
56122987 20575 },
7aacca6f
DM
20576 "skiplock" : {
20577 "description" : "Ignore locks - only root is allowed to use this option.",
44660702 20578 "optional" : 1,
013dc89f
DM
20579 "type" : "boolean",
20580 "typetext" : "<boolean>"
56122987 20581 },
44660702
DM
20582 "smbios1" : {
20583 "description" : "Specify SMBIOS type 1 fields.",
20584 "format" : "pve-qm-smbios1",
1e3f8156 20585 "maxLength" : 512,
56122987 20586 "optional" : 1,
4bd7df8b 20587 "type" : "string",
1e3f8156 20588 "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 20589 },
44660702
DM
20590 "smp" : {
20591 "default" : 1,
20592 "description" : "The number of CPUs. Please use option -sockets instead.",
20593 "minimum" : 1,
56122987 20594 "optional" : 1,
4bd7df8b 20595 "type" : "integer",
013dc89f 20596 "typetext" : "<integer> (1 - N)"
56122987 20597 },
44660702
DM
20598 "sockets" : {
20599 "default" : 1,
20600 "description" : "The number of CPU sockets.",
20601 "minimum" : 1,
56122987 20602 "optional" : 1,
4bd7df8b 20603 "type" : "integer",
013dc89f 20604 "typetext" : "<integer> (1 - N)"
56122987 20605 },
1c532546
TL
20606 "spice_enhancements" : {
20607 "description" : "Configure additional enhancements for SPICE.",
20608 "format" : {
20609 "foldersharing" : {
20610 "default" : "0",
20611 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
20612 "optional" : 1,
20613 "type" : "boolean"
20614 },
20615 "videostreaming" : {
20616 "default" : "off",
20617 "description" : "Enable video streaming. Uses compression for detected video streams.",
20618 "enum" : [
20619 "off",
20620 "all",
20621 "filter"
20622 ],
20623 "optional" : 1,
20624 "type" : "string"
20625 }
20626 },
20627 "optional" : 1,
20628 "type" : "string",
20629 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
20630 },
27a7acb2
DM
20631 "sshkeys" : {
20632 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
20633 "format" : "urlencoded",
20634 "optional" : 1,
20635 "type" : "string",
20636 "typetext" : "<string>"
20637 },
44660702
DM
20638 "startdate" : {
20639 "default" : "now",
4772952b 20640 "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
20641 "optional" : 1,
20642 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 20643 "type" : "string",
44660702
DM
20644 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
20645 },
20646 "startup" : {
20647 "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.",
20648 "format" : "pve-startup-order",
7aacca6f 20649 "optional" : 1,
44660702
DM
20650 "type" : "string",
20651 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
7aacca6f 20652 },
44660702
DM
20653 "tablet" : {
20654 "default" : 1,
c2993fe5 20655 "description" : "Enable/disable the USB tablet device.",
7aacca6f 20656 "optional" : 1,
c2993fe5 20657 "type" : "boolean",
013dc89f 20658 "typetext" : "<boolean>",
4772952b 20659 "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 20660 },
5c1699e5
TL
20661 "tags" : {
20662 "description" : "Tags of the VM. This is only meta information.",
20663 "format" : "pve-tag-list",
20664 "optional" : 1,
20665 "type" : "string",
20666 "typetext" : "<string>"
20667 },
44660702
DM
20668 "tdf" : {
20669 "default" : 0,
20670 "description" : "Enable/disable time drift fix.",
7aacca6f 20671 "optional" : 1,
013dc89f
DM
20672 "type" : "boolean",
20673 "typetext" : "<boolean>"
7aacca6f 20674 },
44660702
DM
20675 "template" : {
20676 "default" : 0,
20677 "description" : "Enable/disable Template.",
7aacca6f 20678 "optional" : 1,
013dc89f
DM
20679 "type" : "boolean",
20680 "typetext" : "<boolean>"
7aacca6f 20681 },
5370fa8c 20682 "tpmstate0" : {
7af2edf9 20683 "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
20684 "format" : {
20685 "file" : {
20686 "default_key" : 1,
20687 "description" : "The drive's backing volume.",
20688 "format" : "pve-volume-id-or-qm-path",
20689 "format_description" : "volume",
20690 "type" : "string"
20691 },
7af2edf9
TL
20692 "import-from" : {
20693 "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!",
20694 "format" : "pve-volume-id-or-absolute-path",
20695 "format_description" : "source volume",
20696 "optional" : 1,
20697 "type" : "string"
20698 },
5370fa8c
TL
20699 "size" : {
20700 "description" : "Disk size. This is purely informational and has no effect.",
20701 "format" : "disk-size",
20702 "format_description" : "DiskSize",
20703 "optional" : 1,
20704 "type" : "string"
20705 },
20706 "version" : {
20707 "default" : "v2.0",
20708 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
20709 "enum" : [
20710 "v1.2",
20711 "v2.0"
20712 ],
20713 "optional" : 1,
20714 "type" : "string"
20715 },
20716 "volume" : {
20717 "alias" : "file"
20718 }
20719 },
20720 "optional" : 1,
20721 "type" : "string",
7af2edf9 20722 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 20723 },
44660702 20724 "unused[n]" : {
c2993fe5 20725 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
20726 "format" : {
20727 "file" : {
20728 "default_key" : 1,
20729 "description" : "The drive's backing volume.",
20730 "format" : "pve-volume-id",
20731 "format_description" : "volume",
20732 "type" : "string"
20733 },
20734 "volume" : {
20735 "alias" : "file"
20736 }
20737 },
7aacca6f 20738 "optional" : 1,
013dc89f 20739 "type" : "string",
c5aa7e14 20740 "typetext" : "[file=]<volume>"
7aacca6f 20741 },
44660702 20742 "usb[n]" : {
4e7f60c2 20743 "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 20744 "format" : {
44660702
DM
20745 "host" : {
20746 "default_key" : 1,
499c9b7f 20747 "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 20748 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
20749 "optional" : 1,
20750 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
20751 "type" : "string"
20752 },
20753 "mapping" : {
20754 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
20755 "format" : "pve-configid",
20756 "format_description" : "mapping-id",
20757 "optional" : 1,
44660702 20758 "type" : "string"
7aacca6f 20759 },
44660702 20760 "usb3" : {
c2993fe5 20761 "default" : 0,
4e7f60c2 20762 "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 20763 "optional" : 1,
44660702 20764 "type" : "boolean"
7aacca6f 20765 }
44660702 20766 },
7aacca6f 20767 "optional" : 1,
4bd7df8b 20768 "type" : "string",
499c9b7f 20769 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
7aacca6f 20770 },
44660702 20771 "vcpus" : {
7aacca6f 20772 "default" : 0,
44660702
DM
20773 "description" : "Number of hotplugged vcpus.",
20774 "minimum" : 1,
7aacca6f 20775 "optional" : 1,
4bd7df8b 20776 "type" : "integer",
013dc89f 20777 "typetext" : "<integer> (1 - N)"
7aacca6f 20778 },
44660702 20779 "vga" : {
e2d681b3
TL
20780 "description" : "Configure the VGA hardware.",
20781 "format" : {
fa22697b
TL
20782 "clipboard" : {
20783 "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added.",
20784 "enum" : [
20785 "vnc"
20786 ],
20787 "optional" : 1,
20788 "type" : "string"
20789 },
e2d681b3
TL
20790 "memory" : {
20791 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
20792 "maximum" : 512,
20793 "minimum" : 4,
20794 "optional" : 1,
20795 "type" : "integer"
20796 },
20797 "type" : {
20798 "default" : "std",
20799 "default_key" : 1,
20800 "description" : "Select the VGA type.",
20801 "enum" : [
20802 "cirrus",
20803 "qxl",
20804 "qxl2",
20805 "qxl3",
20806 "qxl4",
5f26e15b 20807 "none",
e2d681b3
TL
20808 "serial0",
20809 "serial1",
20810 "serial2",
20811 "serial3",
20812 "std",
20813 "virtio",
7af2edf9 20814 "virtio-gl",
e2d681b3
TL
20815 "vmware"
20816 ],
20817 "optional" : 1,
20818 "type" : "string"
20819 }
20820 },
7aacca6f 20821 "optional" : 1,
c2993fe5 20822 "type" : "string",
fa22697b 20823 "typetext" : "[[type=]<enum>] [,clipboard=<vnc>] [,memory=<integer>]",
e2d681b3 20824 "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 20825 },
44660702 20826 "virtio[n]" : {
7af2edf9 20827 "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 20828 "format" : {
7aacca6f 20829 "aio" : {
7aacca6f 20830 "description" : "AIO type to use.",
56122987 20831 "enum" : [
7aacca6f 20832 "native",
8f4d9c87
TL
20833 "threads",
20834 "io_uring"
7aacca6f 20835 ],
44660702
DM
20836 "optional" : 1,
20837 "type" : "string"
56122987 20838 },
44660702
DM
20839 "backup" : {
20840 "description" : "Whether the drive should be included when making backups.",
56122987 20841 "optional" : 1,
44660702 20842 "type" : "boolean"
7aacca6f 20843 },
44660702 20844 "bps" : {
de0983cb 20845 "description" : "Maximum r/w speed in bytes per second.",
44660702 20846 "format_description" : "bps",
7aacca6f 20847 "optional" : 1,
44660702 20848 "type" : "integer"
56122987 20849 },
de0983cb
DM
20850 "bps_max_length" : {
20851 "description" : "Maximum length of I/O bursts in seconds.",
20852 "format_description" : "seconds",
20853 "minimum" : 1,
20854 "optional" : 1,
20855 "type" : "integer"
20856 },
56122987 20857 "bps_rd" : {
de0983cb 20858 "description" : "Maximum read speed in bytes per second.",
44660702 20859 "format_description" : "bps",
56122987 20860 "optional" : 1,
7aacca6f 20861 "type" : "integer"
56122987 20862 },
de0983cb 20863 "bps_rd_length" : {
5d9c884c
DM
20864 "alias" : "bps_rd_max_length"
20865 },
20866 "bps_rd_max_length" : {
de0983cb
DM
20867 "description" : "Maximum length of read I/O bursts in seconds.",
20868 "format_description" : "seconds",
20869 "minimum" : 1,
20870 "optional" : 1,
20871 "type" : "integer"
20872 },
44660702 20873 "bps_wr" : {
de0983cb 20874 "description" : "Maximum write speed in bytes per second.",
44660702 20875 "format_description" : "bps",
56122987 20876 "optional" : 1,
7aacca6f 20877 "type" : "integer"
56122987 20878 },
de0983cb 20879 "bps_wr_length" : {
5d9c884c
DM
20880 "alias" : "bps_wr_max_length"
20881 },
20882 "bps_wr_max_length" : {
de0983cb
DM
20883 "description" : "Maximum length of write I/O bursts in seconds.",
20884 "format_description" : "seconds",
20885 "minimum" : 1,
20886 "optional" : 1,
20887 "type" : "integer"
20888 },
7aacca6f 20889 "cache" : {
44660702 20890 "description" : "The drive's cache mode",
7aacca6f
DM
20891 "enum" : [
20892 "none",
20893 "writethrough",
20894 "writeback",
20895 "unsafe",
20896 "directsync"
20897 ],
56122987 20898 "optional" : 1,
44660702 20899 "type" : "string"
7aacca6f 20900 },
44660702
DM
20901 "cyls" : {
20902 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
20903 "optional" : 1,
20904 "type" : "integer"
20905 },
20906 "detect_zeroes" : {
20907 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
20908 "optional" : 1,
20909 "type" : "boolean"
20910 },
20911 "discard" : {
20912 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 20913 "enum" : [
44660702
DM
20914 "ignore",
20915 "on"
56122987
DM
20916 ],
20917 "optional" : 1,
44660702 20918 "type" : "string"
56122987 20919 },
44660702
DM
20920 "file" : {
20921 "default_key" : 1,
20922 "description" : "The drive's backing volume.",
20923 "format" : "pve-volume-id-or-qm-path",
20924 "format_description" : "volume",
20925 "type" : "string"
20926 },
20927 "format" : {
20928 "description" : "The drive's backing file's data format.",
20929 "enum" : [
20930 "raw",
20931 "cow",
20932 "qcow",
20933 "qed",
20934 "qcow2",
20935 "vmdk",
20936 "cloop"
20937 ],
56122987 20938 "optional" : 1,
44660702 20939 "type" : "string"
56122987 20940 },
44660702
DM
20941 "heads" : {
20942 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
20943 "optional" : 1,
20944 "type" : "integer"
20945 },
7af2edf9
TL
20946 "import-from" : {
20947 "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!",
20948 "format" : "pve-volume-id-or-absolute-path",
20949 "format_description" : "source volume",
20950 "optional" : 1,
20951 "type" : "string"
20952 },
44660702 20953 "iops" : {
de0983cb 20954 "description" : "Maximum r/w I/O in operations per second.",
44660702 20955 "format_description" : "iops",
56122987 20956 "optional" : 1,
44660702
DM
20957 "type" : "integer"
20958 },
20959 "iops_max" : {
de0983cb 20960 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
20961 "format_description" : "iops",
20962 "optional" : 1,
20963 "type" : "integer"
56122987 20964 },
de0983cb
DM
20965 "iops_max_length" : {
20966 "description" : "Maximum length of I/O bursts in seconds.",
20967 "format_description" : "seconds",
20968 "minimum" : 1,
20969 "optional" : 1,
20970 "type" : "integer"
20971 },
7aacca6f 20972 "iops_rd" : {
de0983cb 20973 "description" : "Maximum read I/O in operations per second.",
7aacca6f 20974 "format_description" : "iops",
7aacca6f 20975 "optional" : 1,
44660702 20976 "type" : "integer"
56122987 20977 },
de0983cb 20978 "iops_rd_length" : {
5d9c884c 20979 "alias" : "iops_rd_max_length"
de0983cb 20980 },
44660702 20981 "iops_rd_max" : {
de0983cb 20982 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
20983 "format_description" : "iops",
20984 "optional" : 1,
20985 "type" : "integer"
20986 },
5d9c884c
DM
20987 "iops_rd_max_length" : {
20988 "description" : "Maximum length of read I/O bursts in seconds.",
20989 "format_description" : "seconds",
20990 "minimum" : 1,
20991 "optional" : 1,
20992 "type" : "integer"
20993 },
44660702 20994 "iops_wr" : {
de0983cb 20995 "description" : "Maximum write I/O in operations per second.",
44660702
DM
20996 "format_description" : "iops",
20997 "optional" : 1,
20998 "type" : "integer"
20999 },
de0983cb 21000 "iops_wr_length" : {
5d9c884c 21001 "alias" : "iops_wr_max_length"
de0983cb 21002 },
44660702 21003 "iops_wr_max" : {
de0983cb 21004 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
21005 "format_description" : "iops",
21006 "optional" : 1,
21007 "type" : "integer"
21008 },
5d9c884c
DM
21009 "iops_wr_max_length" : {
21010 "description" : "Maximum length of write I/O bursts in seconds.",
21011 "format_description" : "seconds",
21012 "minimum" : 1,
21013 "optional" : 1,
21014 "type" : "integer"
21015 },
44660702
DM
21016 "iothread" : {
21017 "description" : "Whether to use iothreads for this drive",
44660702
DM
21018 "optional" : 1,
21019 "type" : "boolean"
21020 },
21021 "mbps" : {
de0983cb 21022 "description" : "Maximum r/w speed in megabytes per second.",
44660702 21023 "format_description" : "mbps",
7aacca6f 21024 "optional" : 1,
44660702 21025 "type" : "number"
7aacca6f
DM
21026 },
21027 "mbps_max" : {
de0983cb 21028 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 21029 "format_description" : "mbps",
56122987 21030 "optional" : 1,
44660702 21031 "type" : "number"
56122987 21032 },
44660702 21033 "mbps_rd" : {
de0983cb 21034 "description" : "Maximum read speed in megabytes per second.",
44660702 21035 "format_description" : "mbps",
56122987 21036 "optional" : 1,
44660702 21037 "type" : "number"
56122987 21038 },
44660702 21039 "mbps_rd_max" : {
de0983cb 21040 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
21041 "format_description" : "mbps",
21042 "optional" : 1,
21043 "type" : "number"
21044 },
21045 "mbps_wr" : {
de0983cb 21046 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
21047 "format_description" : "mbps",
21048 "optional" : 1,
21049 "type" : "number"
21050 },
21051 "mbps_wr_max" : {
de0983cb 21052 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
21053 "format_description" : "mbps",
21054 "optional" : 1,
21055 "type" : "number"
21056 },
21057 "media" : {
21058 "default" : "disk",
21059 "description" : "The drive's media type.",
56122987 21060 "enum" : [
44660702
DM
21061 "cdrom",
21062 "disk"
56122987
DM
21063 ],
21064 "optional" : 1,
44660702 21065 "type" : "string"
56122987 21066 },
5d9c884c
DM
21067 "replicate" : {
21068 "default" : 1,
21069 "description" : "Whether the drive should considered for replication jobs.",
21070 "optional" : 1,
21071 "type" : "boolean"
21072 },
44660702
DM
21073 "rerror" : {
21074 "description" : "Read error action.",
21075 "enum" : [
21076 "ignore",
21077 "report",
21078 "stop"
21079 ],
56122987 21080 "optional" : 1,
44660702 21081 "type" : "string"
56122987 21082 },
5370fa8c
TL
21083 "ro" : {
21084 "description" : "Whether the drive is read-only.",
21085 "optional" : 1,
21086 "type" : "boolean"
21087 },
44660702
DM
21088 "secs" : {
21089 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 21090 "optional" : 1,
44660702 21091 "type" : "integer"
56122987 21092 },
7aacca6f
DM
21093 "serial" : {
21094 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
7aacca6f 21095 "format" : "urlencoded",
44660702 21096 "format_description" : "serial",
7aacca6f 21097 "maxLength" : 60,
44660702
DM
21098 "optional" : 1,
21099 "type" : "string"
56122987 21100 },
27a7acb2
DM
21101 "shared" : {
21102 "default" : 0,
21103 "description" : "Mark this locally-managed volume as available on all nodes",
21104 "optional" : 1,
21105 "type" : "boolean",
21106 "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!"
21107 },
44660702
DM
21108 "size" : {
21109 "description" : "Disk size. This is purely informational and has no effect.",
21110 "format" : "disk-size",
f004f5b9 21111 "format_description" : "DiskSize",
44660702
DM
21112 "optional" : 1,
21113 "type" : "string"
56122987 21114 },
44660702 21115 "snapshot" : {
27a7acb2 21116 "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 21117 "optional" : 1,
44660702 21118 "type" : "boolean"
56122987 21119 },
44660702
DM
21120 "trans" : {
21121 "description" : "Force disk geometry bios translation mode.",
21122 "enum" : [
21123 "none",
21124 "lba",
21125 "auto"
21126 ],
7aacca6f 21127 "optional" : 1,
44660702 21128 "type" : "string"
7aacca6f 21129 },
44660702
DM
21130 "volume" : {
21131 "alias" : "file"
21132 },
21133 "werror" : {
21134 "description" : "Write error action.",
21135 "enum" : [
21136 "enospc",
21137 "ignore",
21138 "report",
21139 "stop"
21140 ],
7aacca6f 21141 "optional" : 1,
44660702 21142 "type" : "string"
56122987
DM
21143 }
21144 },
7aacca6f 21145 "optional" : 1,
4bd7df8b 21146 "type" : "string",
7af2edf9 21147 "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 21148 },
4d47f125
TL
21149 "vmgenid" : {
21150 "default" : "1 (autogenerated)",
21151 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
21152 "format_description" : "UUID",
21153 "optional" : 1,
21154 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
21155 "type" : "string",
4772952b 21156 "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 21157 },
44660702
DM
21158 "vmid" : {
21159 "description" : "The (unique) ID of the VM.",
21160 "format" : "pve-vmid",
8dd66e12
TL
21161 "maximum" : 999999999,
21162 "minimum" : 100,
4bd7df8b 21163 "type" : "integer",
8dd66e12 21164 "typetext" : "<integer> (100 - 999999999)"
56122987 21165 },
2489d6df
WB
21166 "vmstatestorage" : {
21167 "description" : "Default storage for VM state volumes/files.",
21168 "format" : "pve-storage-id",
21169 "optional" : 1,
21170 "type" : "string",
21171 "typetext" : "<string>"
21172 },
44660702 21173 "watchdog" : {
c2993fe5 21174 "description" : "Create a virtual hardware watchdog device.",
44660702 21175 "format" : "pve-qm-watchdog",
56122987 21176 "optional" : 1,
c2993fe5 21177 "type" : "string",
013dc89f 21178 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 21179 "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 21180 }
7aacca6f 21181 }
56122987 21182 },
56122987
DM
21183 "permissions" : {
21184 "check" : [
21185 "perm",
21186 "/vms/{vmid}",
21187 [
21188 "VM.Config.Disk",
21189 "VM.Config.CDROM",
21190 "VM.Config.CPU",
21191 "VM.Config.Memory",
21192 "VM.Config.Network",
21193 "VM.Config.HWType",
ac70d7d1
TL
21194 "VM.Config.Options",
21195 "VM.Config.Cloudinit"
56122987
DM
21196 ],
21197 "any",
21198 1
21199 ]
21200 },
44660702 21201 "protected" : 1,
7aacca6f 21202 "proxyto" : "node",
56122987 21203 "returns" : {
4d47f125
TL
21204 "optional" : 1,
21205 "type" : "string"
7aacca6f 21206 }
4d47f125
TL
21207 },
21208 "PUT" : {
e9cd3bd4 21209 "allowtoken" : 1,
4d47f125
TL
21210 "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
21211 "method" : "PUT",
21212 "name" : "update_vm",
7aacca6f 21213 "parameters" : {
44660702 21214 "additionalProperties" : 0,
7aacca6f 21215 "properties" : {
4d47f125
TL
21216 "acpi" : {
21217 "default" : 1,
21218 "description" : "Enable/disable ACPI.",
21219 "optional" : 1,
21220 "type" : "boolean",
21221 "typetext" : "<boolean>"
7aacca6f 21222 },
4e7f60c2 21223 "affinity" : {
81a3384d 21224 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
21225 "format" : "pve-cpuset",
21226 "optional" : 1,
21227 "type" : "string",
21228 "typetext" : "<string>"
21229 },
4d47f125 21230 "agent" : {
9d2e98ed 21231 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
21232 "format" : {
21233 "enabled" : {
21234 "default" : 0,
21235 "default_key" : 1,
9d2e98ed
TL
21236 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
21237 "type" : "boolean"
21238 },
21239 "freeze-fs-on-backup" : {
21240 "default" : 1,
21241 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
21242 "optional" : 1,
4d47f125
TL
21243 "type" : "boolean"
21244 },
21245 "fstrim_cloned_disks" : {
21246 "default" : 0,
d2656385 21247 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
21248 "optional" : 1,
21249 "type" : "boolean"
5c1699e5
TL
21250 },
21251 "type" : {
21252 "default" : "virtio",
21253 "description" : "Select the agent type",
21254 "enum" : [
21255 "virtio",
21256 "isa"
21257 ],
21258 "optional" : 1,
21259 "type" : "string"
4d47f125 21260 }
44660702 21261 },
4d47f125
TL
21262 "optional" : 1,
21263 "type" : "string",
9d2e98ed 21264 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
44660702 21265 },
e2d681b3
TL
21266 "arch" : {
21267 "description" : "Virtual processor architecture. Defaults to the host.",
21268 "enum" : [
21269 "x86_64",
21270 "aarch64"
21271 ],
21272 "optional" : 1,
21273 "type" : "string"
21274 },
4d47f125
TL
21275 "args" : {
21276 "description" : "Arbitrary arguments passed to kvm.",
21277 "optional" : 1,
21278 "type" : "string",
21279 "typetext" : "<string>",
159464a9 21280 "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 21281 },
1c532546
TL
21282 "audio0" : {
21283 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
21284 "format" : {
21285 "device" : {
21286 "description" : "Configure an audio device.",
21287 "enum" : [
21288 "ich9-intel-hda",
21289 "intel-hda",
21290 "AC97"
21291 ],
21292 "type" : "string"
21293 },
21294 "driver" : {
21295 "default" : "spice",
21296 "description" : "Driver backend for the audio device.",
21297 "enum" : [
d2656385
TL
21298 "spice",
21299 "none"
1c532546
TL
21300 ],
21301 "optional" : 1,
21302 "type" : "string"
21303 }
21304 },
21305 "optional" : 1,
21306 "type" : "string",
d2656385 21307 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 21308 },
4d47f125
TL
21309 "autostart" : {
21310 "default" : 0,
21311 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 21312 "optional" : 1,
013dc89f
DM
21313 "type" : "boolean",
21314 "typetext" : "<boolean>"
7aacca6f 21315 },
4d47f125 21316 "balloon" : {
9d2e98ed 21317 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
4d47f125
TL
21318 "minimum" : 0,
21319 "optional" : 1,
21320 "type" : "integer",
21321 "typetext" : "<integer> (0 - N)"
21322 },
21323 "bios" : {
21324 "default" : "seabios",
21325 "description" : "Select BIOS implementation.",
21326 "enum" : [
21327 "seabios",
21328 "ovmf"
21329 ],
21330 "optional" : 1,
21331 "type" : "string"
21332 },
21333 "boot" : {
5370fa8c 21334 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 21335 "format" : "pve-qm-boot",
4d47f125 21336 "optional" : 1,
4772952b
TL
21337 "type" : "string",
21338 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
4d47f125
TL
21339 },
21340 "bootdisk" : {
4772952b 21341 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
4d47f125
TL
21342 "format" : "pve-qm-bootdisk",
21343 "optional" : 1,
21344 "pattern" : "(ide|sata|scsi|virtio)\\d+",
21345 "type" : "string"
21346 },
21347 "cdrom" : {
21348 "description" : "This is an alias for option -ide2",
21349 "format" : "pve-qm-ide",
21350 "optional" : 1,
21351 "type" : "string",
21352 "typetext" : "<volume>"
21353 },
95895385
TL
21354 "cicustom" : {
21355 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
21356 "format" : "pve-qm-cicustom",
21357 "optional" : 1,
21358 "type" : "string",
5370fa8c 21359 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 21360 },
4d47f125
TL
21361 "cipassword" : {
21362 "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.",
21363 "optional" : 1,
013dc89f
DM
21364 "type" : "string",
21365 "typetext" : "<string>"
44660702 21366 },
4d47f125
TL
21367 "citype" : {
21368 "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.",
21369 "enum" : [
21370 "configdrive2",
d2656385
TL
21371 "nocloud",
21372 "opennebula"
4d47f125
TL
21373 ],
21374 "optional" : 1,
21375 "type" : "string"
21376 },
159464a9 21377 "ciupgrade" : {
c8eee6ff 21378 "default" : 1,
159464a9
TL
21379 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
21380 "optional" : 1,
21381 "type" : "boolean",
21382 "typetext" : "<boolean>"
21383 },
4d47f125
TL
21384 "ciuser" : {
21385 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
21386 "optional" : 1,
013dc89f
DM
21387 "type" : "string",
21388 "typetext" : "<string>"
56122987 21389 },
4d47f125
TL
21390 "cores" : {
21391 "default" : 1,
21392 "description" : "The number of cores per socket.",
7aacca6f 21393 "minimum" : 1,
4d47f125 21394 "optional" : 1,
4bd7df8b 21395 "type" : "integer",
013dc89f 21396 "typetext" : "<integer> (1 - N)"
4d47f125
TL
21397 },
21398 "cpu" : {
21399 "description" : "Emulated CPU type.",
c5aa7e14 21400 "format" : "pve-vm-cpu-conf",
4d47f125 21401 "optional" : 1,
013dc89f 21402 "type" : "string",
04d22a9f 21403 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702 21404 },
4d47f125
TL
21405 "cpulimit" : {
21406 "default" : 0,
21407 "description" : "Limit of CPU usage.",
21408 "maximum" : 128,
21409 "minimum" : 0,
21410 "optional" : 1,
21411 "type" : "number",
21412 "typetext" : "<number> (0 - 128)",
21413 "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."
21414 },
21415 "cpuunits" : {
5370fa8c
TL
21416 "default" : "cgroup v1: 1024, cgroup v2: 100",
21417 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
4d47f125 21418 "maximum" : 262144,
7af2edf9 21419 "minimum" : 1,
4d47f125 21420 "optional" : 1,
4bd7df8b 21421 "type" : "integer",
7af2edf9 21422 "typetext" : "<integer> (1 - 262144)",
4d47f125 21423 "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 21424 },
4d47f125
TL
21425 "delete" : {
21426 "description" : "A list of settings you want to delete.",
21427 "format" : "pve-configid-list",
21428 "optional" : 1,
21429 "type" : "string",
21430 "typetext" : "<string>"
21431 },
21432 "description" : {
8f4d9c87
TL
21433 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
21434 "maxLength" : 8192,
4d47f125
TL
21435 "optional" : 1,
21436 "type" : "string",
21437 "typetext" : "<string>"
21438 },
21439 "digest" : {
21440 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
21441 "maxLength" : 40,
44660702 21442 "optional" : 1,
4d47f125
TL
21443 "type" : "string",
21444 "typetext" : "<string>"
21445 },
21446 "efidisk0" : {
9d2e98ed 21447 "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 21448 "format" : {
5370fa8c
TL
21449 "efitype" : {
21450 "default" : "2m",
bd92b745 21451 "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
21452 "enum" : [
21453 "2m",
21454 "4m"
21455 ],
21456 "optional" : 1,
21457 "type" : "string"
21458 },
4d47f125
TL
21459 "file" : {
21460 "default_key" : 1,
21461 "description" : "The drive's backing volume.",
21462 "format" : "pve-volume-id-or-qm-path",
21463 "format_description" : "volume",
21464 "type" : "string"
21465 },
21466 "format" : {
21467 "description" : "The drive's backing file's data format.",
21468 "enum" : [
21469 "raw",
21470 "cow",
21471 "qcow",
21472 "qed",
21473 "qcow2",
21474 "vmdk",
21475 "cloop"
21476 ],
21477 "optional" : 1,
21478 "type" : "string"
21479 },
7af2edf9
TL
21480 "import-from" : {
21481 "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!",
21482 "format" : "pve-volume-id-or-absolute-path",
21483 "format_description" : "source volume",
21484 "optional" : 1,
21485 "type" : "string"
21486 },
5370fa8c
TL
21487 "pre-enrolled-keys" : {
21488 "default" : 0,
21489 "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.",
21490 "optional" : 1,
21491 "type" : "boolean"
21492 },
4d47f125
TL
21493 "size" : {
21494 "description" : "Disk size. This is purely informational and has no effect.",
21495 "format" : "disk-size",
21496 "format_description" : "DiskSize",
21497 "optional" : 1,
21498 "type" : "string"
21499 },
21500 "volume" : {
21501 "alias" : "file"
21502 }
21503 },
21504 "optional" : 1,
21505 "type" : "string",
7af2edf9 21506 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125
TL
21507 },
21508 "force" : {
21509 "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.",
21510 "optional" : 1,
21511 "requires" : "delete",
013dc89f
DM
21512 "type" : "boolean",
21513 "typetext" : "<boolean>"
56122987 21514 },
4d47f125
TL
21515 "freeze" : {
21516 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
21517 "optional" : 1,
21518 "type" : "boolean",
21519 "typetext" : "<boolean>"
7aacca6f 21520 },
5f26e15b
TL
21521 "hookscript" : {
21522 "description" : "Script that will be executed during various steps in the vms lifetime.",
21523 "format" : "pve-volume-id",
21524 "optional" : 1,
21525 "type" : "string",
21526 "typetext" : "<string>"
21527 },
4d47f125
TL
21528 "hostpci[n]" : {
21529 "description" : "Map host PCI devices into guest.",
21530 "format" : "pve-qm-hostpci",
21531 "optional" : 1,
21532 "type" : "string",
499c9b7f 21533 "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 21534 "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 21535 },
4d47f125
TL
21536 "hotplug" : {
21537 "default" : "network,disk,usb",
4e7f60c2 21538 "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
21539 "format" : "pve-hotplug-features",
21540 "optional" : 1,
35a75dd3
DM
21541 "type" : "string",
21542 "typetext" : "<string>"
21543 },
4d47f125
TL
21544 "hugepages" : {
21545 "description" : "Enable/disable hugepages memory.",
35a75dd3 21546 "enum" : [
4d47f125
TL
21547 "any",
21548 "2",
21549 "1024"
35a75dd3
DM
21550 ],
21551 "optional" : 1,
21552 "type" : "string"
21553 },
4d47f125 21554 "ide[n]" : {
7af2edf9 21555 "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
21556 "format" : {
21557 "aio" : {
21558 "description" : "AIO type to use.",
21559 "enum" : [
21560 "native",
8f4d9c87
TL
21561 "threads",
21562 "io_uring"
4d47f125 21563 ],
44660702 21564 "optional" : 1,
44660702
DM
21565 "type" : "string"
21566 },
4d47f125
TL
21567 "backup" : {
21568 "description" : "Whether the drive should be included when making backups.",
56122987 21569 "optional" : 1,
4d47f125 21570 "type" : "boolean"
56122987 21571 },
4d47f125
TL
21572 "bps" : {
21573 "description" : "Maximum r/w speed in bytes per second.",
21574 "format_description" : "bps",
de0983cb 21575 "optional" : 1,
4d47f125 21576 "type" : "integer"
de0983cb 21577 },
4d47f125
TL
21578 "bps_max_length" : {
21579 "description" : "Maximum length of I/O bursts in seconds.",
21580 "format_description" : "seconds",
21581 "minimum" : 1,
de0983cb 21582 "optional" : 1,
4d47f125 21583 "type" : "integer"
7aacca6f 21584 },
4d47f125
TL
21585 "bps_rd" : {
21586 "description" : "Maximum read speed in bytes per second.",
21587 "format_description" : "bps",
7aacca6f 21588 "optional" : 1,
4d47f125 21589 "type" : "integer"
56122987 21590 },
4d47f125
TL
21591 "bps_rd_length" : {
21592 "alias" : "bps_rd_max_length"
21593 },
21594 "bps_rd_max_length" : {
21595 "description" : "Maximum length of read I/O bursts in seconds.",
21596 "format_description" : "seconds",
21597 "minimum" : 1,
56122987 21598 "optional" : 1,
4d47f125 21599 "type" : "integer"
56122987 21600 },
4d47f125
TL
21601 "bps_wr" : {
21602 "description" : "Maximum write speed in bytes per second.",
21603 "format_description" : "bps",
52e44c50 21604 "optional" : 1,
4d47f125 21605 "type" : "integer"
52e44c50 21606 },
4d47f125
TL
21607 "bps_wr_length" : {
21608 "alias" : "bps_wr_max_length"
21609 },
21610 "bps_wr_max_length" : {
21611 "description" : "Maximum length of write I/O bursts in seconds.",
21612 "format_description" : "seconds",
44660702 21613 "minimum" : 1,
56122987 21614 "optional" : 1,
4d47f125 21615 "type" : "integer"
56122987 21616 },
4d47f125
TL
21617 "cache" : {
21618 "description" : "The drive's cache mode",
21619 "enum" : [
21620 "none",
21621 "writethrough",
21622 "writeback",
21623 "unsafe",
21624 "directsync"
21625 ],
7aacca6f 21626 "optional" : 1,
4d47f125 21627 "type" : "string"
7aacca6f 21628 },
4d47f125
TL
21629 "cyls" : {
21630 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
21631 "optional" : 1,
21632 "type" : "integer"
56122987 21633 },
4d47f125
TL
21634 "detect_zeroes" : {
21635 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 21636 "optional" : 1,
4d47f125 21637 "type" : "boolean"
56122987 21638 },
4d47f125
TL
21639 "discard" : {
21640 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
21641 "enum" : [
21642 "ignore",
21643 "on"
21644 ],
56122987 21645 "optional" : 1,
4d47f125 21646 "type" : "string"
7aacca6f 21647 },
4d47f125
TL
21648 "file" : {
21649 "default_key" : 1,
21650 "description" : "The drive's backing volume.",
21651 "format" : "pve-volume-id-or-qm-path",
21652 "format_description" : "volume",
21653 "type" : "string"
56122987 21654 },
4d47f125
TL
21655 "format" : {
21656 "description" : "The drive's backing file's data format.",
21657 "enum" : [
21658 "raw",
21659 "cow",
21660 "qcow",
21661 "qed",
21662 "qcow2",
21663 "vmdk",
21664 "cloop"
21665 ],
7aacca6f 21666 "optional" : 1,
4d47f125 21667 "type" : "string"
7aacca6f 21668 },
4d47f125
TL
21669 "heads" : {
21670 "description" : "Force the drive's physical geometry to have a specific head count.",
7aacca6f 21671 "optional" : 1,
4d47f125 21672 "type" : "integer"
56122987 21673 },
7af2edf9
TL
21674 "import-from" : {
21675 "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!",
21676 "format" : "pve-volume-id-or-absolute-path",
21677 "format_description" : "source volume",
21678 "optional" : 1,
21679 "type" : "string"
21680 },
4d47f125
TL
21681 "iops" : {
21682 "description" : "Maximum r/w I/O in operations per second.",
21683 "format_description" : "iops",
44660702 21684 "optional" : 1,
4d47f125 21685 "type" : "integer"
44660702 21686 },
4d47f125
TL
21687 "iops_max" : {
21688 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
21689 "format_description" : "iops",
44660702 21690 "optional" : 1,
4d47f125 21691 "type" : "integer"
56122987 21692 },
4d47f125
TL
21693 "iops_max_length" : {
21694 "description" : "Maximum length of I/O bursts in seconds.",
21695 "format_description" : "seconds",
21696 "minimum" : 1,
7aacca6f 21697 "optional" : 1,
4d47f125 21698 "type" : "integer"
7aacca6f 21699 },
4d47f125
TL
21700 "iops_rd" : {
21701 "description" : "Maximum read I/O in operations per second.",
21702 "format_description" : "iops",
21703 "optional" : 1,
21704 "type" : "integer"
21705 },
21706 "iops_rd_length" : {
21707 "alias" : "iops_rd_max_length"
21708 },
21709 "iops_rd_max" : {
21710 "description" : "Maximum unthrottled read I/O pool in operations per second.",
21711 "format_description" : "iops",
21712 "optional" : 1,
21713 "type" : "integer"
21714 },
21715 "iops_rd_max_length" : {
21716 "description" : "Maximum length of read I/O bursts in seconds.",
21717 "format_description" : "seconds",
44660702 21718 "minimum" : 1,
4d47f125
TL
21719 "optional" : 1,
21720 "type" : "integer"
7aacca6f 21721 },
4d47f125
TL
21722 "iops_wr" : {
21723 "description" : "Maximum write I/O in operations per second.",
21724 "format_description" : "iops",
44660702 21725 "optional" : 1,
4d47f125 21726 "type" : "integer"
44660702 21727 },
4d47f125
TL
21728 "iops_wr_length" : {
21729 "alias" : "iops_wr_max_length"
21730 },
21731 "iops_wr_max" : {
21732 "description" : "Maximum unthrottled write I/O pool in operations per second.",
21733 "format_description" : "iops",
21734 "optional" : 1,
21735 "type" : "integer"
21736 },
21737 "iops_wr_max_length" : {
21738 "description" : "Maximum length of write I/O bursts in seconds.",
21739 "format_description" : "seconds",
44660702 21740 "minimum" : 1,
44660702 21741 "optional" : 1,
4d47f125 21742 "type" : "integer"
44660702 21743 },
4d47f125
TL
21744 "mbps" : {
21745 "description" : "Maximum r/w speed in megabytes per second.",
21746 "format_description" : "mbps",
21747 "optional" : 1,
21748 "type" : "number"
56122987 21749 },
4d47f125
TL
21750 "mbps_max" : {
21751 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
21752 "format_description" : "mbps",
21753 "optional" : 1,
21754 "type" : "number"
21755 },
21756 "mbps_rd" : {
21757 "description" : "Maximum read speed in megabytes per second.",
21758 "format_description" : "mbps",
21759 "optional" : 1,
21760 "type" : "number"
21761 },
21762 "mbps_rd_max" : {
21763 "description" : "Maximum unthrottled read pool in megabytes per second.",
21764 "format_description" : "mbps",
21765 "optional" : 1,
21766 "type" : "number"
21767 },
21768 "mbps_wr" : {
21769 "description" : "Maximum write speed in megabytes per second.",
21770 "format_description" : "mbps",
21771 "optional" : 1,
21772 "type" : "number"
21773 },
21774 "mbps_wr_max" : {
21775 "description" : "Maximum unthrottled write pool in megabytes per second.",
21776 "format_description" : "mbps",
21777 "optional" : 1,
21778 "type" : "number"
21779 },
21780 "media" : {
21781 "default" : "disk",
21782 "description" : "The drive's media type.",
21783 "enum" : [
21784 "cdrom",
21785 "disk"
21786 ],
21787 "optional" : 1,
21788 "type" : "string"
21789 },
21790 "model" : {
21791 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
21792 "format" : "urlencoded",
21793 "format_description" : "model",
21794 "maxLength" : 120,
21795 "optional" : 1,
21796 "type" : "string"
21797 },
21798 "replicate" : {
21799 "default" : 1,
21800 "description" : "Whether the drive should considered for replication jobs.",
21801 "optional" : 1,
21802 "type" : "boolean"
21803 },
21804 "rerror" : {
21805 "description" : "Read error action.",
21806 "enum" : [
21807 "ignore",
21808 "report",
21809 "stop"
21810 ],
21811 "optional" : 1,
21812 "type" : "string"
21813 },
21814 "secs" : {
21815 "description" : "Force the drive's physical geometry to have a specific sector count.",
21816 "optional" : 1,
21817 "type" : "integer"
21818 },
21819 "serial" : {
21820 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
21821 "format" : "urlencoded",
21822 "format_description" : "serial",
21823 "maxLength" : 60,
21824 "optional" : 1,
21825 "type" : "string"
21826 },
21827 "shared" : {
21828 "default" : 0,
21829 "description" : "Mark this locally-managed volume as available on all nodes",
44660702 21830 "optional" : 1,
013dc89f 21831 "type" : "boolean",
4d47f125 21832 "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 21833 },
4d47f125
TL
21834 "size" : {
21835 "description" : "Disk size. This is purely informational and has no effect.",
21836 "format" : "disk-size",
21837 "format_description" : "DiskSize",
21838 "optional" : 1,
21839 "type" : "string"
21840 },
21841 "snapshot" : {
21842 "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.",
21843 "optional" : 1,
21844 "type" : "boolean"
21845 },
25203dc1
NC
21846 "ssd" : {
21847 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
21848 "optional" : 1,
21849 "type" : "boolean"
21850 },
4d47f125
TL
21851 "trans" : {
21852 "description" : "Force disk geometry bios translation mode.",
21853 "enum" : [
21854 "none",
21855 "lba",
21856 "auto"
21857 ],
21858 "optional" : 1,
21859 "type" : "string"
21860 },
21861 "volume" : {
21862 "alias" : "file"
21863 },
21864 "werror" : {
21865 "description" : "Write error action.",
21866 "enum" : [
21867 "enospc",
21868 "ignore",
21869 "report",
21870 "stop"
21871 ],
21872 "optional" : 1,
21873 "type" : "string"
95895385
TL
21874 },
21875 "wwn" : {
21876 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
21877 "format_description" : "wwn",
21878 "optional" : 1,
21879 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
21880 "type" : "string"
4d47f125
TL
21881 }
21882 },
21883 "optional" : 1,
013dc89f 21884 "type" : "string",
7af2edf9 21885 "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 21886 },
4d47f125 21887 "ipconfig[n]" : {
d2656385 21888 "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
21889 "format" : "pve-qm-ipconfig",
21890 "optional" : 1,
013dc89f 21891 "type" : "string",
4d47f125 21892 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
44660702 21893 },
95895385
TL
21894 "ivshmem" : {
21895 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
21896 "format" : {
21897 "name" : {
21898 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
21899 "format_description" : "string",
21900 "optional" : 1,
21901 "pattern" : "[a-zA-Z0-9\\-]+",
21902 "type" : "string"
21903 },
21904 "size" : {
21905 "description" : "The size of the file in MB.",
21906 "minimum" : 1,
21907 "type" : "integer"
21908 }
21909 },
21910 "optional" : 1,
21911 "type" : "string",
21912 "typetext" : "size=<integer> [,name=<string>]"
21913 },
4772952b
TL
21914 "keephugepages" : {
21915 "default" : 0,
21916 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
21917 "optional" : 1,
21918 "type" : "boolean",
21919 "typetext" : "<boolean>"
21920 },
4d47f125
TL
21921 "keyboard" : {
21922 "default" : null,
7af2edf9 21923 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
4d47f125
TL
21924 "enum" : [
21925 "de",
21926 "de-ch",
21927 "da",
21928 "en-gb",
21929 "en-us",
21930 "es",
21931 "fi",
21932 "fr",
21933 "fr-be",
21934 "fr-ca",
21935 "fr-ch",
21936 "hu",
21937 "is",
21938 "it",
21939 "ja",
21940 "lt",
21941 "mk",
21942 "nl",
21943 "no",
21944 "pl",
21945 "pt",
21946 "pt-br",
21947 "sv",
21948 "sl",
21949 "tr"
21950 ],
21951 "optional" : 1,
21952 "type" : "string"
44660702 21953 },
4d47f125
TL
21954 "kvm" : {
21955 "default" : 1,
21956 "description" : "Enable/disable KVM hardware virtualization.",
44660702 21957 "optional" : 1,
013dc89f
DM
21958 "type" : "boolean",
21959 "typetext" : "<boolean>"
7aacca6f 21960 },
4d47f125 21961 "localtime" : {
5370fa8c 21962 "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
21963 "optional" : 1,
21964 "type" : "boolean",
21965 "typetext" : "<boolean>"
21966 },
21967 "lock" : {
21968 "description" : "Lock/unlock the VM.",
56122987 21969 "enum" : [
4d47f125 21970 "backup",
5f26e15b
TL
21971 "clone",
21972 "create",
21973 "migrate",
21974 "rollback",
56122987 21975 "snapshot",
95895385
TL
21976 "snapshot-delete",
21977 "suspending",
21978 "suspended"
56122987 21979 ],
4d47f125 21980 "optional" : 1,
44660702
DM
21981 "type" : "string"
21982 },
4d47f125 21983 "machine" : {
9d2e98ed 21984 "description" : "Specifies the QEMU machine type.",
4d47f125
TL
21985 "maxLength" : 40,
21986 "optional" : 1,
5c1699e5 21987 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
21988 "type" : "string"
21989 },
21990 "memory" : {
bd92b745
TL
21991 "description" : "Memory properties.",
21992 "format" : {
21993 "current" : {
21994 "default" : 512,
21995 "default_key" : 1,
21996 "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
21997 "minimum" : 16,
21998 "type" : "integer"
21999 }
22000 },
4d47f125 22001 "optional" : 1,
bd92b745
TL
22002 "type" : "string",
22003 "typetext" : "[current=]<integer>"
4d47f125
TL
22004 },
22005 "migrate_downtime" : {
22006 "default" : 0.1,
22007 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
22008 "minimum" : 0,
22009 "optional" : 1,
22010 "type" : "number",
22011 "typetext" : "<number> (0 - N)"
22012 },
22013 "migrate_speed" : {
22014 "default" : 0,
22015 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
22016 "minimum" : 0,
22017 "optional" : 1,
22018 "type" : "integer",
22019 "typetext" : "<integer> (0 - N)"
22020 },
22021 "name" : {
22022 "description" : "Set a name for the VM. Only used on the configuration web interface.",
22023 "format" : "dns-name",
22024 "optional" : 1,
013dc89f
DM
22025 "type" : "string",
22026 "typetext" : "<string>"
56122987 22027 },
4d47f125 22028 "nameserver" : {
de786b48 22029 "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 22030 "format" : "address-list",
7aacca6f 22031 "optional" : 1,
013dc89f
DM
22032 "type" : "string",
22033 "typetext" : "<string>"
7aacca6f 22034 },
4d47f125
TL
22035 "net[n]" : {
22036 "description" : "Specify network devices.",
22037 "format" : {
22038 "bridge" : {
22039 "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 22040 "format" : "pve-bridge-id",
4d47f125
TL
22041 "format_description" : "bridge",
22042 "optional" : 1,
22043 "type" : "string"
22044 },
22045 "e1000" : {
22046 "alias" : "macaddr",
22047 "keyAlias" : "model"
22048 },
22049 "e1000-82540em" : {
22050 "alias" : "macaddr",
22051 "keyAlias" : "model"
22052 },
22053 "e1000-82544gc" : {
22054 "alias" : "macaddr",
22055 "keyAlias" : "model"
22056 },
22057 "e1000-82545em" : {
22058 "alias" : "macaddr",
22059 "keyAlias" : "model"
22060 },
5370fa8c
TL
22061 "e1000e" : {
22062 "alias" : "macaddr",
22063 "keyAlias" : "model"
22064 },
4d47f125
TL
22065 "firewall" : {
22066 "description" : "Whether this interface should be protected by the firewall.",
22067 "optional" : 1,
22068 "type" : "boolean"
22069 },
22070 "i82551" : {
22071 "alias" : "macaddr",
22072 "keyAlias" : "model"
22073 },
22074 "i82557b" : {
22075 "alias" : "macaddr",
22076 "keyAlias" : "model"
22077 },
22078 "i82559er" : {
22079 "alias" : "macaddr",
22080 "keyAlias" : "model"
22081 },
22082 "link_down" : {
22083 "description" : "Whether this interface should be disconnected (like pulling the plug).",
22084 "optional" : 1,
22085 "type" : "boolean"
22086 },
22087 "macaddr" : {
22088 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 22089 "format" : "mac-addr",
4d47f125
TL
22090 "format_description" : "XX:XX:XX:XX:XX:XX",
22091 "optional" : 1,
95895385
TL
22092 "type" : "string",
22093 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
22094 },
22095 "model" : {
22096 "default_key" : 1,
22097 "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'.",
22098 "enum" : [
4d47f125 22099 "e1000",
5370fa8c
TL
22100 "e1000-82540em",
22101 "e1000-82544gc",
22102 "e1000-82545em",
22103 "e1000e",
4d47f125
TL
22104 "i82551",
22105 "i82557b",
22106 "i82559er",
5370fa8c
TL
22107 "ne2k_isa",
22108 "ne2k_pci",
22109 "pcnet",
22110 "rtl8139",
22111 "virtio",
22112 "vmxnet3"
4d47f125
TL
22113 ],
22114 "type" : "string"
22115 },
ac70d7d1
TL
22116 "mtu" : {
22117 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
22118 "maximum" : 65520,
22119 "minimum" : 1,
22120 "optional" : 1,
22121 "type" : "integer"
22122 },
4d47f125
TL
22123 "ne2k_isa" : {
22124 "alias" : "macaddr",
22125 "keyAlias" : "model"
22126 },
22127 "ne2k_pci" : {
22128 "alias" : "macaddr",
22129 "keyAlias" : "model"
22130 },
22131 "pcnet" : {
22132 "alias" : "macaddr",
22133 "keyAlias" : "model"
22134 },
22135 "queues" : {
22136 "description" : "Number of packet queues to be used on the device.",
81a3384d 22137 "maximum" : 64,
4d47f125
TL
22138 "minimum" : 0,
22139 "optional" : 1,
22140 "type" : "integer"
22141 },
22142 "rate" : {
22143 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
22144 "minimum" : 0,
22145 "optional" : 1,
22146 "type" : "number"
22147 },
22148 "rtl8139" : {
22149 "alias" : "macaddr",
22150 "keyAlias" : "model"
22151 },
22152 "tag" : {
22153 "description" : "VLAN tag to apply to packets on this interface.",
22154 "maximum" : 4094,
22155 "minimum" : 1,
22156 "optional" : 1,
22157 "type" : "integer"
22158 },
22159 "trunks" : {
22160 "description" : "VLAN trunks to pass through this interface.",
22161 "format_description" : "vlanid[;vlanid...]",
22162 "optional" : 1,
22163 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
22164 "type" : "string"
22165 },
22166 "virtio" : {
22167 "alias" : "macaddr",
22168 "keyAlias" : "model"
22169 },
22170 "vmxnet3" : {
22171 "alias" : "macaddr",
22172 "keyAlias" : "model"
22173 }
44660702 22174 },
44660702 22175 "optional" : 1,
013dc89f 22176 "type" : "string",
ac70d7d1 22177 "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
22178 },
22179 "node" : {
22180 "description" : "The cluster node name.",
22181 "format" : "pve-node",
013dc89f
DM
22182 "type" : "string",
22183 "typetext" : "<string>"
7aacca6f 22184 },
4d47f125
TL
22185 "numa" : {
22186 "default" : 0,
22187 "description" : "Enable/disable NUMA.",
56122987 22188 "optional" : 1,
4d47f125
TL
22189 "type" : "boolean",
22190 "typetext" : "<boolean>"
56122987 22191 },
4d47f125
TL
22192 "numa[n]" : {
22193 "description" : "NUMA topology.",
22194 "format" : {
22195 "cpus" : {
22196 "description" : "CPUs accessing this NUMA node.",
22197 "format_description" : "id[-id];...",
22198 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
22199 "type" : "string"
22200 },
22201 "hostnodes" : {
22202 "description" : "Host NUMA nodes to use.",
22203 "format_description" : "id[-id];...",
22204 "optional" : 1,
22205 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
22206 "type" : "string"
22207 },
22208 "memory" : {
22209 "description" : "Amount of memory this NUMA node provides.",
22210 "optional" : 1,
22211 "type" : "number"
22212 },
22213 "policy" : {
22214 "description" : "NUMA allocation policy.",
22215 "enum" : [
22216 "preferred",
22217 "bind",
22218 "interleave"
22219 ],
22220 "optional" : 1,
22221 "type" : "string"
22222 }
22223 },
7aacca6f 22224 "optional" : 1,
013dc89f 22225 "type" : "string",
4d47f125 22226 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 22227 },
4d47f125 22228 "onboot" : {
44660702 22229 "default" : 0,
4d47f125 22230 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 22231 "optional" : 1,
013dc89f
DM
22232 "type" : "boolean",
22233 "typetext" : "<boolean>"
56122987 22234 },
4d47f125
TL
22235 "ostype" : {
22236 "description" : "Specify guest operating system.",
7aacca6f 22237 "enum" : [
4d47f125
TL
22238 "other",
22239 "wxp",
22240 "w2k",
22241 "w2k3",
22242 "w2k8",
22243 "wvista",
22244 "win7",
22245 "win8",
22246 "win10",
5370fa8c 22247 "win11",
4d47f125
TL
22248 "l24",
22249 "l26",
22250 "solaris"
7aacca6f
DM
22251 ],
22252 "optional" : 1,
013dc89f 22253 "type" : "string",
9d2e98ed 22254 "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\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
44660702 22255 },
4d47f125
TL
22256 "parallel[n]" : {
22257 "description" : "Map host parallel devices (n is 0 to 2).",
22258 "optional" : 1,
22259 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
013dc89f 22260 "type" : "string",
4772952b 22261 "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 22262 },
4d47f125
TL
22263 "protection" : {
22264 "default" : 0,
22265 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
44660702 22266 "optional" : 1,
013dc89f
DM
22267 "type" : "boolean",
22268 "typetext" : "<boolean>"
44660702 22269 },
4d47f125
TL
22270 "reboot" : {
22271 "default" : 1,
22272 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
56122987 22273 "optional" : 1,
013dc89f
DM
22274 "type" : "boolean",
22275 "typetext" : "<boolean>"
56122987 22276 },
4d47f125
TL
22277 "revert" : {
22278 "description" : "Revert a pending change.",
22279 "format" : "pve-configid-list",
22280 "optional" : 1,
013dc89f
DM
22281 "type" : "string",
22282 "typetext" : "<string>"
56122987 22283 },
c5aa7e14
TL
22284 "rng0" : {
22285 "description" : "Configure a VirtIO-based Random Number Generator.",
22286 "format" : {
22287 "max_bytes" : {
22288 "default" : 1024,
5370fa8c 22289 "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
22290 "optional" : 1,
22291 "type" : "integer"
22292 },
22293 "period" : {
22294 "default" : 1000,
22295 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
22296 "optional" : 1,
22297 "type" : "integer"
22298 },
22299 "source" : {
22300 "default_key" : 1,
5370fa8c 22301 "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
22302 "enum" : [
22303 "/dev/urandom",
22304 "/dev/random",
22305 "/dev/hwrng"
22306 ],
22307 "type" : "string"
22308 }
22309 },
22310 "optional" : 1,
22311 "type" : "string",
22312 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
22313 },
4d47f125 22314 "sata[n]" : {
7af2edf9 22315 "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
22316 "format" : {
22317 "aio" : {
22318 "description" : "AIO type to use.",
22319 "enum" : [
22320 "native",
8f4d9c87
TL
22321 "threads",
22322 "io_uring"
4d47f125
TL
22323 ],
22324 "optional" : 1,
22325 "type" : "string"
22326 },
22327 "backup" : {
22328 "description" : "Whether the drive should be included when making backups.",
22329 "optional" : 1,
22330 "type" : "boolean"
22331 },
22332 "bps" : {
22333 "description" : "Maximum r/w speed in bytes per second.",
22334 "format_description" : "bps",
22335 "optional" : 1,
22336 "type" : "integer"
22337 },
22338 "bps_max_length" : {
22339 "description" : "Maximum length of I/O bursts in seconds.",
22340 "format_description" : "seconds",
22341 "minimum" : 1,
22342 "optional" : 1,
22343 "type" : "integer"
22344 },
22345 "bps_rd" : {
22346 "description" : "Maximum read speed in bytes per second.",
22347 "format_description" : "bps",
22348 "optional" : 1,
22349 "type" : "integer"
22350 },
22351 "bps_rd_length" : {
22352 "alias" : "bps_rd_max_length"
22353 },
22354 "bps_rd_max_length" : {
22355 "description" : "Maximum length of read I/O bursts in seconds.",
22356 "format_description" : "seconds",
22357 "minimum" : 1,
22358 "optional" : 1,
22359 "type" : "integer"
22360 },
22361 "bps_wr" : {
22362 "description" : "Maximum write speed in bytes per second.",
22363 "format_description" : "bps",
22364 "optional" : 1,
22365 "type" : "integer"
22366 },
22367 "bps_wr_length" : {
22368 "alias" : "bps_wr_max_length"
22369 },
22370 "bps_wr_max_length" : {
22371 "description" : "Maximum length of write I/O bursts in seconds.",
22372 "format_description" : "seconds",
22373 "minimum" : 1,
22374 "optional" : 1,
22375 "type" : "integer"
22376 },
22377 "cache" : {
22378 "description" : "The drive's cache mode",
22379 "enum" : [
22380 "none",
22381 "writethrough",
22382 "writeback",
22383 "unsafe",
22384 "directsync"
22385 ],
22386 "optional" : 1,
22387 "type" : "string"
22388 },
22389 "cyls" : {
22390 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
22391 "optional" : 1,
22392 "type" : "integer"
22393 },
22394 "detect_zeroes" : {
22395 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
22396 "optional" : 1,
22397 "type" : "boolean"
22398 },
22399 "discard" : {
22400 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
22401 "enum" : [
22402 "ignore",
22403 "on"
22404 ],
22405 "optional" : 1,
22406 "type" : "string"
22407 },
22408 "file" : {
22409 "default_key" : 1,
22410 "description" : "The drive's backing volume.",
22411 "format" : "pve-volume-id-or-qm-path",
22412 "format_description" : "volume",
22413 "type" : "string"
22414 },
22415 "format" : {
22416 "description" : "The drive's backing file's data format.",
22417 "enum" : [
22418 "raw",
22419 "cow",
22420 "qcow",
22421 "qed",
22422 "qcow2",
22423 "vmdk",
22424 "cloop"
22425 ],
22426 "optional" : 1,
22427 "type" : "string"
22428 },
22429 "heads" : {
22430 "description" : "Force the drive's physical geometry to have a specific head count.",
22431 "optional" : 1,
22432 "type" : "integer"
22433 },
7af2edf9
TL
22434 "import-from" : {
22435 "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!",
22436 "format" : "pve-volume-id-or-absolute-path",
22437 "format_description" : "source volume",
22438 "optional" : 1,
22439 "type" : "string"
22440 },
4d47f125
TL
22441 "iops" : {
22442 "description" : "Maximum r/w I/O in operations per second.",
22443 "format_description" : "iops",
22444 "optional" : 1,
22445 "type" : "integer"
22446 },
22447 "iops_max" : {
22448 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
22449 "format_description" : "iops",
22450 "optional" : 1,
22451 "type" : "integer"
22452 },
22453 "iops_max_length" : {
22454 "description" : "Maximum length of I/O bursts in seconds.",
22455 "format_description" : "seconds",
22456 "minimum" : 1,
22457 "optional" : 1,
22458 "type" : "integer"
22459 },
22460 "iops_rd" : {
22461 "description" : "Maximum read I/O in operations per second.",
22462 "format_description" : "iops",
22463 "optional" : 1,
22464 "type" : "integer"
22465 },
22466 "iops_rd_length" : {
22467 "alias" : "iops_rd_max_length"
22468 },
22469 "iops_rd_max" : {
22470 "description" : "Maximum unthrottled read I/O pool in operations per second.",
22471 "format_description" : "iops",
22472 "optional" : 1,
22473 "type" : "integer"
22474 },
22475 "iops_rd_max_length" : {
22476 "description" : "Maximum length of read I/O bursts in seconds.",
22477 "format_description" : "seconds",
22478 "minimum" : 1,
22479 "optional" : 1,
22480 "type" : "integer"
22481 },
22482 "iops_wr" : {
22483 "description" : "Maximum write I/O in operations per second.",
22484 "format_description" : "iops",
22485 "optional" : 1,
22486 "type" : "integer"
22487 },
22488 "iops_wr_length" : {
22489 "alias" : "iops_wr_max_length"
22490 },
22491 "iops_wr_max" : {
22492 "description" : "Maximum unthrottled write I/O pool in operations per second.",
22493 "format_description" : "iops",
22494 "optional" : 1,
22495 "type" : "integer"
22496 },
22497 "iops_wr_max_length" : {
22498 "description" : "Maximum length of write I/O bursts in seconds.",
22499 "format_description" : "seconds",
22500 "minimum" : 1,
22501 "optional" : 1,
22502 "type" : "integer"
22503 },
22504 "mbps" : {
22505 "description" : "Maximum r/w speed in megabytes per second.",
22506 "format_description" : "mbps",
22507 "optional" : 1,
22508 "type" : "number"
22509 },
22510 "mbps_max" : {
22511 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
22512 "format_description" : "mbps",
22513 "optional" : 1,
22514 "type" : "number"
22515 },
22516 "mbps_rd" : {
22517 "description" : "Maximum read speed in megabytes per second.",
22518 "format_description" : "mbps",
22519 "optional" : 1,
22520 "type" : "number"
22521 },
22522 "mbps_rd_max" : {
22523 "description" : "Maximum unthrottled read pool in megabytes per second.",
22524 "format_description" : "mbps",
22525 "optional" : 1,
22526 "type" : "number"
22527 },
22528 "mbps_wr" : {
22529 "description" : "Maximum write speed in megabytes per second.",
22530 "format_description" : "mbps",
22531 "optional" : 1,
22532 "type" : "number"
22533 },
22534 "mbps_wr_max" : {
22535 "description" : "Maximum unthrottled write pool in megabytes per second.",
22536 "format_description" : "mbps",
22537 "optional" : 1,
22538 "type" : "number"
22539 },
22540 "media" : {
22541 "default" : "disk",
22542 "description" : "The drive's media type.",
22543 "enum" : [
22544 "cdrom",
22545 "disk"
22546 ],
22547 "optional" : 1,
22548 "type" : "string"
22549 },
22550 "replicate" : {
22551 "default" : 1,
22552 "description" : "Whether the drive should considered for replication jobs.",
22553 "optional" : 1,
22554 "type" : "boolean"
22555 },
22556 "rerror" : {
22557 "description" : "Read error action.",
22558 "enum" : [
22559 "ignore",
22560 "report",
22561 "stop"
22562 ],
22563 "optional" : 1,
22564 "type" : "string"
22565 },
22566 "secs" : {
22567 "description" : "Force the drive's physical geometry to have a specific sector count.",
22568 "optional" : 1,
22569 "type" : "integer"
22570 },
22571 "serial" : {
22572 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
22573 "format" : "urlencoded",
22574 "format_description" : "serial",
22575 "maxLength" : 60,
22576 "optional" : 1,
22577 "type" : "string"
22578 },
22579 "shared" : {
22580 "default" : 0,
22581 "description" : "Mark this locally-managed volume as available on all nodes",
22582 "optional" : 1,
22583 "type" : "boolean",
22584 "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!"
22585 },
22586 "size" : {
22587 "description" : "Disk size. This is purely informational and has no effect.",
22588 "format" : "disk-size",
22589 "format_description" : "DiskSize",
22590 "optional" : 1,
22591 "type" : "string"
22592 },
22593 "snapshot" : {
22594 "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.",
22595 "optional" : 1,
22596 "type" : "boolean"
22597 },
25203dc1
NC
22598 "ssd" : {
22599 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
22600 "optional" : 1,
22601 "type" : "boolean"
22602 },
4d47f125
TL
22603 "trans" : {
22604 "description" : "Force disk geometry bios translation mode.",
22605 "enum" : [
22606 "none",
22607 "lba",
22608 "auto"
22609 ],
22610 "optional" : 1,
22611 "type" : "string"
22612 },
22613 "volume" : {
22614 "alias" : "file"
22615 },
22616 "werror" : {
22617 "description" : "Write error action.",
22618 "enum" : [
22619 "enospc",
22620 "ignore",
22621 "report",
22622 "stop"
22623 ],
22624 "optional" : 1,
22625 "type" : "string"
95895385
TL
22626 },
22627 "wwn" : {
22628 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
22629 "format_description" : "wwn",
22630 "optional" : 1,
22631 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
22632 "type" : "string"
4d47f125
TL
22633 }
22634 },
22635 "optional" : 1,
22636 "type" : "string",
7af2edf9 22637 "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
22638 },
22639 "scsi[n]" : {
7af2edf9 22640 "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
22641 "format" : {
22642 "aio" : {
22643 "description" : "AIO type to use.",
22644 "enum" : [
22645 "native",
8f4d9c87
TL
22646 "threads",
22647 "io_uring"
4d47f125
TL
22648 ],
22649 "optional" : 1,
22650 "type" : "string"
22651 },
22652 "backup" : {
22653 "description" : "Whether the drive should be included when making backups.",
22654 "optional" : 1,
22655 "type" : "boolean"
22656 },
22657 "bps" : {
22658 "description" : "Maximum r/w speed in bytes per second.",
22659 "format_description" : "bps",
22660 "optional" : 1,
22661 "type" : "integer"
22662 },
22663 "bps_max_length" : {
22664 "description" : "Maximum length of I/O bursts in seconds.",
22665 "format_description" : "seconds",
22666 "minimum" : 1,
22667 "optional" : 1,
22668 "type" : "integer"
22669 },
22670 "bps_rd" : {
22671 "description" : "Maximum read speed in bytes per second.",
22672 "format_description" : "bps",
22673 "optional" : 1,
22674 "type" : "integer"
22675 },
22676 "bps_rd_length" : {
22677 "alias" : "bps_rd_max_length"
22678 },
22679 "bps_rd_max_length" : {
22680 "description" : "Maximum length of read I/O bursts in seconds.",
22681 "format_description" : "seconds",
22682 "minimum" : 1,
22683 "optional" : 1,
22684 "type" : "integer"
22685 },
22686 "bps_wr" : {
22687 "description" : "Maximum write speed in bytes per second.",
22688 "format_description" : "bps",
22689 "optional" : 1,
22690 "type" : "integer"
22691 },
22692 "bps_wr_length" : {
22693 "alias" : "bps_wr_max_length"
22694 },
22695 "bps_wr_max_length" : {
22696 "description" : "Maximum length of write I/O bursts in seconds.",
22697 "format_description" : "seconds",
22698 "minimum" : 1,
22699 "optional" : 1,
22700 "type" : "integer"
22701 },
22702 "cache" : {
22703 "description" : "The drive's cache mode",
22704 "enum" : [
22705 "none",
22706 "writethrough",
22707 "writeback",
22708 "unsafe",
22709 "directsync"
22710 ],
22711 "optional" : 1,
22712 "type" : "string"
22713 },
22714 "cyls" : {
22715 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
22716 "optional" : 1,
22717 "type" : "integer"
22718 },
22719 "detect_zeroes" : {
22720 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
22721 "optional" : 1,
22722 "type" : "boolean"
22723 },
22724 "discard" : {
22725 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
22726 "enum" : [
22727 "ignore",
22728 "on"
22729 ],
22730 "optional" : 1,
22731 "type" : "string"
22732 },
22733 "file" : {
22734 "default_key" : 1,
22735 "description" : "The drive's backing volume.",
22736 "format" : "pve-volume-id-or-qm-path",
22737 "format_description" : "volume",
22738 "type" : "string"
22739 },
22740 "format" : {
22741 "description" : "The drive's backing file's data format.",
22742 "enum" : [
22743 "raw",
22744 "cow",
22745 "qcow",
22746 "qed",
22747 "qcow2",
22748 "vmdk",
22749 "cloop"
22750 ],
22751 "optional" : 1,
22752 "type" : "string"
22753 },
22754 "heads" : {
22755 "description" : "Force the drive's physical geometry to have a specific head count.",
22756 "optional" : 1,
22757 "type" : "integer"
22758 },
7af2edf9
TL
22759 "import-from" : {
22760 "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!",
22761 "format" : "pve-volume-id-or-absolute-path",
22762 "format_description" : "source volume",
22763 "optional" : 1,
22764 "type" : "string"
22765 },
4d47f125
TL
22766 "iops" : {
22767 "description" : "Maximum r/w I/O in operations per second.",
22768 "format_description" : "iops",
22769 "optional" : 1,
22770 "type" : "integer"
22771 },
22772 "iops_max" : {
22773 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
22774 "format_description" : "iops",
22775 "optional" : 1,
22776 "type" : "integer"
22777 },
22778 "iops_max_length" : {
22779 "description" : "Maximum length of I/O bursts in seconds.",
22780 "format_description" : "seconds",
22781 "minimum" : 1,
22782 "optional" : 1,
22783 "type" : "integer"
22784 },
22785 "iops_rd" : {
22786 "description" : "Maximum read I/O in operations per second.",
22787 "format_description" : "iops",
22788 "optional" : 1,
22789 "type" : "integer"
22790 },
22791 "iops_rd_length" : {
22792 "alias" : "iops_rd_max_length"
22793 },
22794 "iops_rd_max" : {
22795 "description" : "Maximum unthrottled read I/O pool in operations per second.",
22796 "format_description" : "iops",
22797 "optional" : 1,
22798 "type" : "integer"
22799 },
22800 "iops_rd_max_length" : {
22801 "description" : "Maximum length of read I/O bursts in seconds.",
22802 "format_description" : "seconds",
22803 "minimum" : 1,
22804 "optional" : 1,
22805 "type" : "integer"
22806 },
22807 "iops_wr" : {
22808 "description" : "Maximum write I/O in operations per second.",
22809 "format_description" : "iops",
22810 "optional" : 1,
22811 "type" : "integer"
22812 },
22813 "iops_wr_length" : {
22814 "alias" : "iops_wr_max_length"
22815 },
22816 "iops_wr_max" : {
22817 "description" : "Maximum unthrottled write I/O pool in operations per second.",
22818 "format_description" : "iops",
22819 "optional" : 1,
22820 "type" : "integer"
22821 },
22822 "iops_wr_max_length" : {
22823 "description" : "Maximum length of write I/O bursts in seconds.",
22824 "format_description" : "seconds",
22825 "minimum" : 1,
22826 "optional" : 1,
22827 "type" : "integer"
22828 },
22829 "iothread" : {
22830 "description" : "Whether to use iothreads for this drive",
22831 "optional" : 1,
22832 "type" : "boolean"
22833 },
22834 "mbps" : {
22835 "description" : "Maximum r/w speed in megabytes per second.",
22836 "format_description" : "mbps",
22837 "optional" : 1,
22838 "type" : "number"
22839 },
22840 "mbps_max" : {
22841 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
22842 "format_description" : "mbps",
22843 "optional" : 1,
22844 "type" : "number"
22845 },
22846 "mbps_rd" : {
22847 "description" : "Maximum read speed in megabytes per second.",
22848 "format_description" : "mbps",
22849 "optional" : 1,
22850 "type" : "number"
22851 },
22852 "mbps_rd_max" : {
22853 "description" : "Maximum unthrottled read pool in megabytes per second.",
22854 "format_description" : "mbps",
22855 "optional" : 1,
22856 "type" : "number"
22857 },
22858 "mbps_wr" : {
22859 "description" : "Maximum write speed in megabytes per second.",
22860 "format_description" : "mbps",
22861 "optional" : 1,
22862 "type" : "number"
22863 },
22864 "mbps_wr_max" : {
22865 "description" : "Maximum unthrottled write pool in megabytes per second.",
22866 "format_description" : "mbps",
22867 "optional" : 1,
22868 "type" : "number"
22869 },
22870 "media" : {
22871 "default" : "disk",
22872 "description" : "The drive's media type.",
22873 "enum" : [
22874 "cdrom",
22875 "disk"
22876 ],
22877 "optional" : 1,
22878 "type" : "string"
22879 },
22880 "queues" : {
22881 "description" : "Number of queues.",
22882 "minimum" : 2,
22883 "optional" : 1,
22884 "type" : "integer"
22885 },
22886 "replicate" : {
22887 "default" : 1,
22888 "description" : "Whether the drive should considered for replication jobs.",
22889 "optional" : 1,
22890 "type" : "boolean"
22891 },
22892 "rerror" : {
22893 "description" : "Read error action.",
22894 "enum" : [
22895 "ignore",
22896 "report",
22897 "stop"
22898 ],
22899 "optional" : 1,
22900 "type" : "string"
22901 },
5370fa8c
TL
22902 "ro" : {
22903 "description" : "Whether the drive is read-only.",
22904 "optional" : 1,
22905 "type" : "boolean"
22906 },
4d47f125
TL
22907 "scsiblock" : {
22908 "default" : 0,
22909 "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",
22910 "optional" : 1,
22911 "type" : "boolean"
22912 },
22913 "secs" : {
22914 "description" : "Force the drive's physical geometry to have a specific sector count.",
22915 "optional" : 1,
22916 "type" : "integer"
22917 },
22918 "serial" : {
22919 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
22920 "format" : "urlencoded",
22921 "format_description" : "serial",
22922 "maxLength" : 60,
22923 "optional" : 1,
22924 "type" : "string"
22925 },
22926 "shared" : {
22927 "default" : 0,
22928 "description" : "Mark this locally-managed volume as available on all nodes",
22929 "optional" : 1,
22930 "type" : "boolean",
22931 "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!"
22932 },
22933 "size" : {
22934 "description" : "Disk size. This is purely informational and has no effect.",
22935 "format" : "disk-size",
22936 "format_description" : "DiskSize",
22937 "optional" : 1,
22938 "type" : "string"
22939 },
22940 "snapshot" : {
22941 "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.",
22942 "optional" : 1,
22943 "type" : "boolean"
22944 },
25203dc1
NC
22945 "ssd" : {
22946 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
22947 "optional" : 1,
22948 "type" : "boolean"
22949 },
4d47f125
TL
22950 "trans" : {
22951 "description" : "Force disk geometry bios translation mode.",
22952 "enum" : [
22953 "none",
22954 "lba",
22955 "auto"
22956 ],
22957 "optional" : 1,
22958 "type" : "string"
22959 },
22960 "volume" : {
22961 "alias" : "file"
22962 },
22963 "werror" : {
22964 "description" : "Write error action.",
22965 "enum" : [
22966 "enospc",
22967 "ignore",
22968 "report",
22969 "stop"
22970 ],
22971 "optional" : 1,
22972 "type" : "string"
95895385
TL
22973 },
22974 "wwn" : {
22975 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
22976 "format_description" : "wwn",
22977 "optional" : 1,
22978 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
22979 "type" : "string"
4d47f125
TL
22980 }
22981 },
22982 "optional" : 1,
22983 "type" : "string",
7af2edf9 22984 "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>] [,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>] [,werror=<enum>] [,wwn=<wwn>]"
4d47f125
TL
22985 },
22986 "scsihw" : {
22987 "default" : "lsi",
22988 "description" : "SCSI controller model",
22989 "enum" : [
22990 "lsi",
22991 "lsi53c810",
22992 "virtio-scsi-pci",
22993 "virtio-scsi-single",
22994 "megasas",
22995 "pvscsi"
22996 ],
22997 "optional" : 1,
22998 "type" : "string"
22999 },
23000 "searchdomain" : {
de786b48 23001 "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
23002 "optional" : 1,
23003 "type" : "string",
23004 "typetext" : "<string>"
23005 },
23006 "serial[n]" : {
23007 "description" : "Create a serial device inside the VM (n is 0 to 3)",
23008 "optional" : 1,
23009 "pattern" : "(/dev/.+|socket)",
23010 "type" : "string",
4772952b 23011 "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
23012 },
23013 "shares" : {
23014 "default" : 1000,
23015 "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.",
23016 "maximum" : 50000,
23017 "minimum" : 0,
23018 "optional" : 1,
23019 "type" : "integer",
23020 "typetext" : "<integer> (0 - 50000)"
23021 },
23022 "skiplock" : {
23023 "description" : "Ignore locks - only root is allowed to use this option.",
23024 "optional" : 1,
23025 "type" : "boolean",
23026 "typetext" : "<boolean>"
23027 },
23028 "smbios1" : {
23029 "description" : "Specify SMBIOS type 1 fields.",
23030 "format" : "pve-qm-smbios1",
1e3f8156 23031 "maxLength" : 512,
4d47f125
TL
23032 "optional" : 1,
23033 "type" : "string",
1e3f8156 23034 "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
23035 },
23036 "smp" : {
23037 "default" : 1,
23038 "description" : "The number of CPUs. Please use option -sockets instead.",
23039 "minimum" : 1,
23040 "optional" : 1,
23041 "type" : "integer",
23042 "typetext" : "<integer> (1 - N)"
23043 },
23044 "sockets" : {
23045 "default" : 1,
23046 "description" : "The number of CPU sockets.",
23047 "minimum" : 1,
23048 "optional" : 1,
23049 "type" : "integer",
23050 "typetext" : "<integer> (1 - N)"
23051 },
1c532546
TL
23052 "spice_enhancements" : {
23053 "description" : "Configure additional enhancements for SPICE.",
23054 "format" : {
23055 "foldersharing" : {
23056 "default" : "0",
23057 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
23058 "optional" : 1,
23059 "type" : "boolean"
23060 },
23061 "videostreaming" : {
23062 "default" : "off",
23063 "description" : "Enable video streaming. Uses compression for detected video streams.",
23064 "enum" : [
23065 "off",
23066 "all",
23067 "filter"
23068 ],
23069 "optional" : 1,
23070 "type" : "string"
23071 }
23072 },
23073 "optional" : 1,
23074 "type" : "string",
23075 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
23076 },
4d47f125
TL
23077 "sshkeys" : {
23078 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
23079 "format" : "urlencoded",
23080 "optional" : 1,
23081 "type" : "string",
23082 "typetext" : "<string>"
23083 },
23084 "startdate" : {
23085 "default" : "now",
4772952b 23086 "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
23087 "optional" : 1,
23088 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
23089 "type" : "string",
23090 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
23091 },
23092 "startup" : {
23093 "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.",
23094 "format" : "pve-startup-order",
23095 "optional" : 1,
23096 "type" : "string",
23097 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
23098 },
23099 "tablet" : {
23100 "default" : 1,
23101 "description" : "Enable/disable the USB tablet device.",
23102 "optional" : 1,
23103 "type" : "boolean",
23104 "typetext" : "<boolean>",
4772952b 23105 "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 23106 },
5c1699e5
TL
23107 "tags" : {
23108 "description" : "Tags of the VM. This is only meta information.",
23109 "format" : "pve-tag-list",
23110 "optional" : 1,
23111 "type" : "string",
23112 "typetext" : "<string>"
23113 },
4d47f125
TL
23114 "tdf" : {
23115 "default" : 0,
23116 "description" : "Enable/disable time drift fix.",
23117 "optional" : 1,
23118 "type" : "boolean",
23119 "typetext" : "<boolean>"
23120 },
23121 "template" : {
23122 "default" : 0,
23123 "description" : "Enable/disable Template.",
23124 "optional" : 1,
23125 "type" : "boolean",
23126 "typetext" : "<boolean>"
23127 },
5370fa8c 23128 "tpmstate0" : {
7af2edf9 23129 "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
23130 "format" : {
23131 "file" : {
23132 "default_key" : 1,
23133 "description" : "The drive's backing volume.",
23134 "format" : "pve-volume-id-or-qm-path",
23135 "format_description" : "volume",
23136 "type" : "string"
23137 },
7af2edf9
TL
23138 "import-from" : {
23139 "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!",
23140 "format" : "pve-volume-id-or-absolute-path",
23141 "format_description" : "source volume",
23142 "optional" : 1,
23143 "type" : "string"
23144 },
5370fa8c
TL
23145 "size" : {
23146 "description" : "Disk size. This is purely informational and has no effect.",
23147 "format" : "disk-size",
23148 "format_description" : "DiskSize",
23149 "optional" : 1,
23150 "type" : "string"
23151 },
23152 "version" : {
23153 "default" : "v2.0",
23154 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
23155 "enum" : [
23156 "v1.2",
23157 "v2.0"
23158 ],
23159 "optional" : 1,
23160 "type" : "string"
23161 },
23162 "volume" : {
23163 "alias" : "file"
23164 }
23165 },
23166 "optional" : 1,
23167 "type" : "string",
7af2edf9 23168 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 23169 },
4d47f125
TL
23170 "unused[n]" : {
23171 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
23172 "format" : {
23173 "file" : {
23174 "default_key" : 1,
23175 "description" : "The drive's backing volume.",
23176 "format" : "pve-volume-id",
23177 "format_description" : "volume",
23178 "type" : "string"
23179 },
23180 "volume" : {
23181 "alias" : "file"
23182 }
23183 },
4d47f125
TL
23184 "optional" : 1,
23185 "type" : "string",
c5aa7e14 23186 "typetext" : "[file=]<volume>"
4d47f125
TL
23187 },
23188 "usb[n]" : {
4e7f60c2 23189 "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
23190 "format" : {
23191 "host" : {
23192 "default_key" : 1,
499c9b7f 23193 "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 23194 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
23195 "optional" : 1,
23196 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
23197 "type" : "string"
23198 },
23199 "mapping" : {
23200 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
23201 "format" : "pve-configid",
23202 "format_description" : "mapping-id",
23203 "optional" : 1,
4d47f125
TL
23204 "type" : "string"
23205 },
23206 "usb3" : {
23207 "default" : 0,
4e7f60c2 23208 "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
23209 "optional" : 1,
23210 "type" : "boolean"
23211 }
23212 },
23213 "optional" : 1,
23214 "type" : "string",
499c9b7f 23215 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
4d47f125
TL
23216 },
23217 "vcpus" : {
23218 "default" : 0,
23219 "description" : "Number of hotplugged vcpus.",
23220 "minimum" : 1,
23221 "optional" : 1,
23222 "type" : "integer",
23223 "typetext" : "<integer> (1 - N)"
23224 },
23225 "vga" : {
e2d681b3
TL
23226 "description" : "Configure the VGA hardware.",
23227 "format" : {
fa22697b
TL
23228 "clipboard" : {
23229 "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added.",
23230 "enum" : [
23231 "vnc"
23232 ],
23233 "optional" : 1,
23234 "type" : "string"
23235 },
e2d681b3
TL
23236 "memory" : {
23237 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
23238 "maximum" : 512,
23239 "minimum" : 4,
23240 "optional" : 1,
23241 "type" : "integer"
23242 },
23243 "type" : {
23244 "default" : "std",
23245 "default_key" : 1,
23246 "description" : "Select the VGA type.",
23247 "enum" : [
23248 "cirrus",
23249 "qxl",
23250 "qxl2",
23251 "qxl3",
23252 "qxl4",
5f26e15b 23253 "none",
e2d681b3
TL
23254 "serial0",
23255 "serial1",
23256 "serial2",
23257 "serial3",
23258 "std",
23259 "virtio",
7af2edf9 23260 "virtio-gl",
e2d681b3
TL
23261 "vmware"
23262 ],
23263 "optional" : 1,
23264 "type" : "string"
23265 }
23266 },
4d47f125
TL
23267 "optional" : 1,
23268 "type" : "string",
fa22697b 23269 "typetext" : "[[type=]<enum>] [,clipboard=<vnc>] [,memory=<integer>]",
e2d681b3 23270 "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
23271 },
23272 "virtio[n]" : {
7af2edf9 23273 "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
23274 "format" : {
23275 "aio" : {
23276 "description" : "AIO type to use.",
23277 "enum" : [
23278 "native",
8f4d9c87
TL
23279 "threads",
23280 "io_uring"
4d47f125
TL
23281 ],
23282 "optional" : 1,
23283 "type" : "string"
23284 },
23285 "backup" : {
23286 "description" : "Whether the drive should be included when making backups.",
23287 "optional" : 1,
23288 "type" : "boolean"
23289 },
23290 "bps" : {
23291 "description" : "Maximum r/w speed in bytes per second.",
23292 "format_description" : "bps",
23293 "optional" : 1,
23294 "type" : "integer"
23295 },
23296 "bps_max_length" : {
23297 "description" : "Maximum length of I/O bursts in seconds.",
23298 "format_description" : "seconds",
23299 "minimum" : 1,
23300 "optional" : 1,
23301 "type" : "integer"
23302 },
23303 "bps_rd" : {
23304 "description" : "Maximum read speed in bytes per second.",
23305 "format_description" : "bps",
23306 "optional" : 1,
23307 "type" : "integer"
23308 },
23309 "bps_rd_length" : {
23310 "alias" : "bps_rd_max_length"
23311 },
23312 "bps_rd_max_length" : {
23313 "description" : "Maximum length of read I/O bursts in seconds.",
23314 "format_description" : "seconds",
23315 "minimum" : 1,
23316 "optional" : 1,
23317 "type" : "integer"
23318 },
23319 "bps_wr" : {
23320 "description" : "Maximum write speed in bytes per second.",
23321 "format_description" : "bps",
23322 "optional" : 1,
23323 "type" : "integer"
23324 },
23325 "bps_wr_length" : {
23326 "alias" : "bps_wr_max_length"
23327 },
23328 "bps_wr_max_length" : {
23329 "description" : "Maximum length of write I/O bursts in seconds.",
23330 "format_description" : "seconds",
23331 "minimum" : 1,
23332 "optional" : 1,
23333 "type" : "integer"
23334 },
23335 "cache" : {
23336 "description" : "The drive's cache mode",
23337 "enum" : [
23338 "none",
23339 "writethrough",
23340 "writeback",
23341 "unsafe",
23342 "directsync"
23343 ],
23344 "optional" : 1,
23345 "type" : "string"
23346 },
23347 "cyls" : {
23348 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
23349 "optional" : 1,
23350 "type" : "integer"
23351 },
23352 "detect_zeroes" : {
23353 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
23354 "optional" : 1,
23355 "type" : "boolean"
23356 },
23357 "discard" : {
23358 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
23359 "enum" : [
23360 "ignore",
23361 "on"
23362 ],
23363 "optional" : 1,
23364 "type" : "string"
23365 },
23366 "file" : {
23367 "default_key" : 1,
23368 "description" : "The drive's backing volume.",
23369 "format" : "pve-volume-id-or-qm-path",
23370 "format_description" : "volume",
23371 "type" : "string"
23372 },
23373 "format" : {
23374 "description" : "The drive's backing file's data format.",
23375 "enum" : [
23376 "raw",
23377 "cow",
23378 "qcow",
23379 "qed",
23380 "qcow2",
23381 "vmdk",
23382 "cloop"
23383 ],
23384 "optional" : 1,
23385 "type" : "string"
23386 },
23387 "heads" : {
23388 "description" : "Force the drive's physical geometry to have a specific head count.",
23389 "optional" : 1,
23390 "type" : "integer"
23391 },
7af2edf9
TL
23392 "import-from" : {
23393 "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!",
23394 "format" : "pve-volume-id-or-absolute-path",
23395 "format_description" : "source volume",
23396 "optional" : 1,
23397 "type" : "string"
23398 },
4d47f125
TL
23399 "iops" : {
23400 "description" : "Maximum r/w I/O in operations per second.",
23401 "format_description" : "iops",
23402 "optional" : 1,
23403 "type" : "integer"
23404 },
23405 "iops_max" : {
23406 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
23407 "format_description" : "iops",
23408 "optional" : 1,
23409 "type" : "integer"
23410 },
23411 "iops_max_length" : {
23412 "description" : "Maximum length of I/O bursts in seconds.",
23413 "format_description" : "seconds",
23414 "minimum" : 1,
23415 "optional" : 1,
23416 "type" : "integer"
23417 },
23418 "iops_rd" : {
23419 "description" : "Maximum read I/O in operations per second.",
23420 "format_description" : "iops",
23421 "optional" : 1,
23422 "type" : "integer"
23423 },
23424 "iops_rd_length" : {
23425 "alias" : "iops_rd_max_length"
23426 },
23427 "iops_rd_max" : {
23428 "description" : "Maximum unthrottled read I/O pool in operations per second.",
23429 "format_description" : "iops",
23430 "optional" : 1,
23431 "type" : "integer"
23432 },
23433 "iops_rd_max_length" : {
23434 "description" : "Maximum length of read I/O bursts in seconds.",
23435 "format_description" : "seconds",
23436 "minimum" : 1,
23437 "optional" : 1,
23438 "type" : "integer"
23439 },
23440 "iops_wr" : {
23441 "description" : "Maximum write I/O in operations per second.",
23442 "format_description" : "iops",
23443 "optional" : 1,
23444 "type" : "integer"
23445 },
23446 "iops_wr_length" : {
23447 "alias" : "iops_wr_max_length"
23448 },
23449 "iops_wr_max" : {
23450 "description" : "Maximum unthrottled write I/O pool in operations per second.",
23451 "format_description" : "iops",
23452 "optional" : 1,
23453 "type" : "integer"
23454 },
23455 "iops_wr_max_length" : {
23456 "description" : "Maximum length of write I/O bursts in seconds.",
23457 "format_description" : "seconds",
23458 "minimum" : 1,
23459 "optional" : 1,
23460 "type" : "integer"
23461 },
23462 "iothread" : {
23463 "description" : "Whether to use iothreads for this drive",
23464 "optional" : 1,
23465 "type" : "boolean"
23466 },
23467 "mbps" : {
23468 "description" : "Maximum r/w speed in megabytes per second.",
23469 "format_description" : "mbps",
23470 "optional" : 1,
23471 "type" : "number"
23472 },
23473 "mbps_max" : {
23474 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
23475 "format_description" : "mbps",
23476 "optional" : 1,
23477 "type" : "number"
23478 },
23479 "mbps_rd" : {
23480 "description" : "Maximum read speed in megabytes per second.",
23481 "format_description" : "mbps",
23482 "optional" : 1,
23483 "type" : "number"
23484 },
23485 "mbps_rd_max" : {
23486 "description" : "Maximum unthrottled read pool in megabytes per second.",
23487 "format_description" : "mbps",
23488 "optional" : 1,
23489 "type" : "number"
23490 },
23491 "mbps_wr" : {
23492 "description" : "Maximum write speed in megabytes per second.",
23493 "format_description" : "mbps",
23494 "optional" : 1,
23495 "type" : "number"
23496 },
23497 "mbps_wr_max" : {
23498 "description" : "Maximum unthrottled write pool in megabytes per second.",
23499 "format_description" : "mbps",
23500 "optional" : 1,
23501 "type" : "number"
23502 },
23503 "media" : {
23504 "default" : "disk",
23505 "description" : "The drive's media type.",
23506 "enum" : [
23507 "cdrom",
23508 "disk"
23509 ],
23510 "optional" : 1,
23511 "type" : "string"
23512 },
23513 "replicate" : {
23514 "default" : 1,
23515 "description" : "Whether the drive should considered for replication jobs.",
23516 "optional" : 1,
23517 "type" : "boolean"
23518 },
23519 "rerror" : {
23520 "description" : "Read error action.",
23521 "enum" : [
23522 "ignore",
23523 "report",
23524 "stop"
23525 ],
23526 "optional" : 1,
23527 "type" : "string"
23528 },
5370fa8c
TL
23529 "ro" : {
23530 "description" : "Whether the drive is read-only.",
23531 "optional" : 1,
23532 "type" : "boolean"
23533 },
4d47f125
TL
23534 "secs" : {
23535 "description" : "Force the drive's physical geometry to have a specific sector count.",
23536 "optional" : 1,
23537 "type" : "integer"
23538 },
23539 "serial" : {
23540 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
23541 "format" : "urlencoded",
23542 "format_description" : "serial",
23543 "maxLength" : 60,
23544 "optional" : 1,
23545 "type" : "string"
23546 },
23547 "shared" : {
23548 "default" : 0,
23549 "description" : "Mark this locally-managed volume as available on all nodes",
23550 "optional" : 1,
23551 "type" : "boolean",
23552 "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!"
23553 },
23554 "size" : {
23555 "description" : "Disk size. This is purely informational and has no effect.",
23556 "format" : "disk-size",
23557 "format_description" : "DiskSize",
23558 "optional" : 1,
23559 "type" : "string"
23560 },
23561 "snapshot" : {
23562 "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.",
23563 "optional" : 1,
23564 "type" : "boolean"
23565 },
23566 "trans" : {
23567 "description" : "Force disk geometry bios translation mode.",
23568 "enum" : [
23569 "none",
23570 "lba",
23571 "auto"
23572 ],
23573 "optional" : 1,
23574 "type" : "string"
23575 },
23576 "volume" : {
23577 "alias" : "file"
23578 },
23579 "werror" : {
23580 "description" : "Write error action.",
23581 "enum" : [
23582 "enospc",
23583 "ignore",
23584 "report",
23585 "stop"
23586 ],
23587 "optional" : 1,
23588 "type" : "string"
23589 }
23590 },
23591 "optional" : 1,
23592 "type" : "string",
7af2edf9 23593 "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
23594 },
23595 "vmgenid" : {
23596 "default" : "1 (autogenerated)",
23597 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
23598 "format_description" : "UUID",
23599 "optional" : 1,
23600 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
23601 "type" : "string",
4772952b 23602 "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
23603 },
23604 "vmid" : {
23605 "description" : "The (unique) ID of the VM.",
23606 "format" : "pve-vmid",
8dd66e12
TL
23607 "maximum" : 999999999,
23608 "minimum" : 100,
4d47f125 23609 "type" : "integer",
8dd66e12 23610 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23611 },
23612 "vmstatestorage" : {
23613 "description" : "Default storage for VM state volumes/files.",
23614 "format" : "pve-storage-id",
23615 "optional" : 1,
23616 "type" : "string",
23617 "typetext" : "<string>"
23618 },
23619 "watchdog" : {
23620 "description" : "Create a virtual hardware watchdog device.",
23621 "format" : "pve-qm-watchdog",
23622 "optional" : 1,
23623 "type" : "string",
23624 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
23625 "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)"
23626 }
23627 }
23628 },
23629 "permissions" : {
23630 "check" : [
23631 "perm",
23632 "/vms/{vmid}",
23633 [
23634 "VM.Config.Disk",
23635 "VM.Config.CDROM",
23636 "VM.Config.CPU",
23637 "VM.Config.Memory",
23638 "VM.Config.Network",
23639 "VM.Config.HWType",
ac70d7d1
TL
23640 "VM.Config.Options",
23641 "VM.Config.Cloudinit"
4d47f125
TL
23642 ],
23643 "any",
23644 1
23645 ]
23646 },
23647 "protected" : 1,
23648 "proxyto" : "node",
23649 "returns" : {
23650 "type" : "null"
23651 }
23652 }
23653 },
23654 "leaf" : 1,
23655 "path" : "/nodes/{node}/qemu/{vmid}/config",
23656 "text" : "config"
23657 },
23658 {
23659 "info" : {
23660 "GET" : {
e9cd3bd4
TL
23661 "allowtoken" : 1,
23662 "description" : "Get the virtual machine configuration with both current and pending values.",
4d47f125
TL
23663 "method" : "GET",
23664 "name" : "vm_pending",
23665 "parameters" : {
23666 "additionalProperties" : 0,
23667 "properties" : {
23668 "node" : {
23669 "description" : "The cluster node name.",
23670 "format" : "pve-node",
23671 "type" : "string",
23672 "typetext" : "<string>"
23673 },
23674 "vmid" : {
23675 "description" : "The (unique) ID of the VM.",
23676 "format" : "pve-vmid",
8dd66e12
TL
23677 "maximum" : 999999999,
23678 "minimum" : 100,
4d47f125 23679 "type" : "integer",
8dd66e12 23680 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23681 }
23682 }
23683 },
23684 "permissions" : {
23685 "check" : [
23686 "perm",
23687 "/vms/{vmid}",
23688 [
23689 "VM.Audit"
23690 ]
23691 ]
23692 },
23693 "proxyto" : "node",
23694 "returns" : {
23695 "items" : {
23696 "properties" : {
23697 "delete" : {
23698 "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
23699 "maximum" : 2,
23700 "minimum" : 0,
23701 "optional" : 1,
23702 "type" : "integer"
23703 },
23704 "key" : {
23705 "description" : "Configuration option name.",
23706 "type" : "string"
23707 },
23708 "pending" : {
23709 "description" : "Pending value.",
23710 "optional" : 1,
23711 "type" : "string"
23712 },
23713 "value" : {
23714 "description" : "Current value.",
23715 "optional" : 1,
23716 "type" : "string"
23717 }
23718 },
23719 "type" : "object"
23720 },
23721 "type" : "array"
23722 }
23723 }
23724 },
23725 "leaf" : 1,
23726 "path" : "/nodes/{node}/qemu/{vmid}/pending",
23727 "text" : "pending"
23728 },
4e7f60c2
TL
23729 {
23730 "children" : [
23731 {
23732 "info" : {
23733 "GET" : {
23734 "allowtoken" : 1,
23735 "description" : "Get automatically generated cloudinit config.",
23736 "method" : "GET",
23737 "name" : "cloudinit_generated_config_dump",
23738 "parameters" : {
23739 "additionalProperties" : 0,
23740 "properties" : {
23741 "node" : {
23742 "description" : "The cluster node name.",
23743 "format" : "pve-node",
23744 "type" : "string",
23745 "typetext" : "<string>"
23746 },
23747 "type" : {
23748 "description" : "Config type.",
23749 "enum" : [
23750 "user",
23751 "network",
23752 "meta"
23753 ],
23754 "type" : "string"
23755 },
23756 "vmid" : {
23757 "description" : "The (unique) ID of the VM.",
23758 "format" : "pve-vmid",
8dd66e12
TL
23759 "maximum" : 999999999,
23760 "minimum" : 100,
4e7f60c2 23761 "type" : "integer",
8dd66e12 23762 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
23763 }
23764 }
23765 },
23766 "permissions" : {
23767 "check" : [
23768 "perm",
23769 "/vms/{vmid}",
23770 [
23771 "VM.Audit"
23772 ]
23773 ]
23774 },
23775 "proxyto" : "node",
23776 "returns" : {
23777 "type" : "string"
23778 }
23779 }
23780 },
23781 "leaf" : 1,
23782 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit/dump",
23783 "text" : "dump"
23784 }
23785 ],
23786 "info" : {
23787 "GET" : {
23788 "allowtoken" : 1,
23789 "description" : "Get the cloudinit configuration with both current and pending values.",
23790 "method" : "GET",
23791 "name" : "cloudinit_pending",
23792 "parameters" : {
23793 "additionalProperties" : 0,
23794 "properties" : {
23795 "node" : {
23796 "description" : "The cluster node name.",
23797 "format" : "pve-node",
23798 "type" : "string",
23799 "typetext" : "<string>"
23800 },
23801 "vmid" : {
23802 "description" : "The (unique) ID of the VM.",
23803 "format" : "pve-vmid",
8dd66e12
TL
23804 "maximum" : 999999999,
23805 "minimum" : 100,
4e7f60c2 23806 "type" : "integer",
8dd66e12 23807 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
23808 }
23809 }
23810 },
23811 "permissions" : {
23812 "check" : [
23813 "perm",
23814 "/vms/{vmid}",
23815 [
23816 "VM.Audit"
23817 ]
23818 ]
23819 },
23820 "proxyto" : "node",
23821 "returns" : {
23822 "items" : {
23823 "properties" : {
159464a9
TL
23824 "delete" : {
23825 "description" : "Indicates a pending delete request if present and not 0. ",
23826 "maximum" : 1,
23827 "minimum" : 0,
23828 "optional" : 1,
23829 "type" : "integer"
23830 },
4e7f60c2
TL
23831 "key" : {
23832 "description" : "Configuration option name.",
23833 "type" : "string"
23834 },
159464a9 23835 "pending" : {
81a3384d 23836 "description" : "The new pending value.",
4e7f60c2
TL
23837 "optional" : 1,
23838 "type" : "string"
23839 },
159464a9 23840 "value" : {
81a3384d 23841 "description" : "Value as it was used to generate the current cloudinit image.",
4e7f60c2
TL
23842 "optional" : 1,
23843 "type" : "string"
23844 }
23845 },
23846 "type" : "object"
23847 },
23848 "type" : "array"
23849 }
23850 },
23851 "PUT" : {
23852 "allowtoken" : 1,
23853 "description" : "Regenerate and change cloudinit config drive.",
23854 "method" : "PUT",
23855 "name" : "cloudinit_update",
23856 "parameters" : {
23857 "additionalProperties" : 0,
23858 "properties" : {
23859 "node" : {
23860 "description" : "The cluster node name.",
23861 "format" : "pve-node",
23862 "type" : "string",
23863 "typetext" : "<string>"
23864 },
23865 "vmid" : {
23866 "description" : "The (unique) ID of the VM.",
23867 "format" : "pve-vmid",
8dd66e12
TL
23868 "maximum" : 999999999,
23869 "minimum" : 100,
4e7f60c2 23870 "type" : "integer",
8dd66e12 23871 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
23872 }
23873 }
23874 },
23875 "permissions" : {
23876 "check" : [
23877 "perm",
23878 "/vms/{vmid}",
82551b2b
TL
23879 [
23880 "VM.Config.Cloudinit"
23881 ]
4e7f60c2
TL
23882 ]
23883 },
23884 "protected" : 1,
23885 "proxyto" : "node",
23886 "returns" : {
23887 "type" : "null"
23888 }
23889 }
23890 },
23891 "leaf" : 0,
23892 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit",
23893 "text" : "cloudinit"
23894 },
4d47f125
TL
23895 {
23896 "info" : {
23897 "PUT" : {
e9cd3bd4 23898 "allowtoken" : 1,
4d47f125
TL
23899 "description" : "Unlink/delete disk images.",
23900 "method" : "PUT",
23901 "name" : "unlink",
23902 "parameters" : {
23903 "additionalProperties" : 0,
23904 "properties" : {
23905 "force" : {
23906 "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.",
23907 "optional" : 1,
23908 "type" : "boolean",
23909 "typetext" : "<boolean>"
23910 },
23911 "idlist" : {
23912 "description" : "A list of disk IDs you want to delete.",
23913 "format" : "pve-configid-list",
23914 "type" : "string",
23915 "typetext" : "<string>"
23916 },
23917 "node" : {
23918 "description" : "The cluster node name.",
23919 "format" : "pve-node",
23920 "type" : "string",
23921 "typetext" : "<string>"
23922 },
23923 "vmid" : {
23924 "description" : "The (unique) ID of the VM.",
23925 "format" : "pve-vmid",
8dd66e12
TL
23926 "maximum" : 999999999,
23927 "minimum" : 100,
4d47f125 23928 "type" : "integer",
8dd66e12 23929 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23930 }
23931 }
23932 },
23933 "permissions" : {
23934 "check" : [
23935 "perm",
23936 "/vms/{vmid}",
23937 [
23938 "VM.Config.Disk"
23939 ]
23940 ]
23941 },
23942 "protected" : 1,
23943 "proxyto" : "node",
23944 "returns" : {
23945 "type" : "null"
23946 }
23947 }
23948 },
23949 "leaf" : 1,
23950 "path" : "/nodes/{node}/qemu/{vmid}/unlink",
23951 "text" : "unlink"
23952 },
23953 {
23954 "info" : {
23955 "POST" : {
e9cd3bd4 23956 "allowtoken" : 1,
4d47f125
TL
23957 "description" : "Creates a TCP VNC proxy connections.",
23958 "method" : "POST",
23959 "name" : "vncproxy",
23960 "parameters" : {
23961 "additionalProperties" : 0,
23962 "properties" : {
ac70d7d1
TL
23963 "generate-password" : {
23964 "default" : 0,
23965 "description" : "Generates a random password to be used as ticket instead of the API ticket.",
23966 "optional" : 1,
23967 "type" : "boolean",
23968 "typetext" : "<boolean>"
23969 },
4d47f125
TL
23970 "node" : {
23971 "description" : "The cluster node name.",
23972 "format" : "pve-node",
23973 "type" : "string",
23974 "typetext" : "<string>"
23975 },
23976 "vmid" : {
23977 "description" : "The (unique) ID of the VM.",
23978 "format" : "pve-vmid",
8dd66e12
TL
23979 "maximum" : 999999999,
23980 "minimum" : 100,
4d47f125 23981 "type" : "integer",
8dd66e12 23982 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23983 },
23984 "websocket" : {
bd92b745 23985 "description" : "Prepare for websocket upgrade (only required when using serial terminal, otherwise upgrade is always possible).",
4d47f125
TL
23986 "optional" : 1,
23987 "type" : "boolean",
23988 "typetext" : "<boolean>"
23989 }
23990 }
23991 },
23992 "permissions" : {
23993 "check" : [
23994 "perm",
23995 "/vms/{vmid}",
23996 [
23997 "VM.Console"
23998 ]
23999 ]
24000 },
24001 "protected" : 1,
24002 "returns" : {
24003 "additionalProperties" : 0,
24004 "properties" : {
24005 "cert" : {
24006 "type" : "string"
24007 },
ac70d7d1
TL
24008 "password" : {
24009 "description" : "Returned if requested with 'generate-password' param. Consists of printable ASCII characters ('!' .. '~').",
24010 "optional" : 1,
24011 "type" : "string"
24012 },
4d47f125
TL
24013 "port" : {
24014 "type" : "integer"
24015 },
24016 "ticket" : {
24017 "type" : "string"
24018 },
24019 "upid" : {
24020 "type" : "string"
24021 },
24022 "user" : {
24023 "type" : "string"
24024 }
24025 }
24026 }
24027 }
24028 },
24029 "leaf" : 1,
24030 "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
24031 "text" : "vncproxy"
24032 },
24033 {
24034 "info" : {
24035 "POST" : {
e9cd3bd4 24036 "allowtoken" : 1,
4d47f125
TL
24037 "description" : "Creates a TCP proxy connections.",
24038 "method" : "POST",
24039 "name" : "termproxy",
24040 "parameters" : {
24041 "additionalProperties" : 0,
24042 "properties" : {
24043 "node" : {
24044 "description" : "The cluster node name.",
24045 "format" : "pve-node",
24046 "type" : "string",
24047 "typetext" : "<string>"
24048 },
24049 "serial" : {
24050 "description" : "opens a serial terminal (defaults to display)",
24051 "enum" : [
24052 "serial0",
24053 "serial1",
24054 "serial2",
24055 "serial3"
24056 ],
24057 "optional" : 1,
24058 "type" : "string"
24059 },
24060 "vmid" : {
24061 "description" : "The (unique) ID of the VM.",
24062 "format" : "pve-vmid",
8dd66e12
TL
24063 "maximum" : 999999999,
24064 "minimum" : 100,
4d47f125 24065 "type" : "integer",
8dd66e12 24066 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24067 }
24068 }
24069 },
24070 "permissions" : {
24071 "check" : [
24072 "perm",
24073 "/vms/{vmid}",
24074 [
24075 "VM.Console"
24076 ]
24077 ]
24078 },
24079 "protected" : 1,
24080 "returns" : {
24081 "additionalProperties" : 0,
24082 "properties" : {
24083 "port" : {
24084 "type" : "integer"
24085 },
24086 "ticket" : {
24087 "type" : "string"
24088 },
24089 "upid" : {
24090 "type" : "string"
24091 },
24092 "user" : {
24093 "type" : "string"
24094 }
24095 }
24096 }
24097 }
24098 },
24099 "leaf" : 1,
24100 "path" : "/nodes/{node}/qemu/{vmid}/termproxy",
24101 "text" : "termproxy"
24102 },
24103 {
24104 "info" : {
24105 "GET" : {
e9cd3bd4 24106 "allowtoken" : 1,
4d47f125
TL
24107 "description" : "Opens a weksocket for VNC traffic.",
24108 "method" : "GET",
24109 "name" : "vncwebsocket",
24110 "parameters" : {
24111 "additionalProperties" : 0,
24112 "properties" : {
24113 "node" : {
24114 "description" : "The cluster node name.",
24115 "format" : "pve-node",
24116 "type" : "string",
24117 "typetext" : "<string>"
24118 },
24119 "port" : {
24120 "description" : "Port number returned by previous vncproxy call.",
24121 "maximum" : 5999,
24122 "minimum" : 5900,
24123 "type" : "integer",
24124 "typetext" : "<integer> (5900 - 5999)"
24125 },
24126 "vmid" : {
24127 "description" : "The (unique) ID of the VM.",
24128 "format" : "pve-vmid",
8dd66e12
TL
24129 "maximum" : 999999999,
24130 "minimum" : 100,
4d47f125 24131 "type" : "integer",
8dd66e12 24132 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24133 },
24134 "vncticket" : {
24135 "description" : "Ticket from previous call to vncproxy.",
24136 "maxLength" : 512,
24137 "type" : "string",
24138 "typetext" : "<string>"
24139 }
24140 }
24141 },
24142 "permissions" : {
24143 "check" : [
24144 "perm",
24145 "/vms/{vmid}",
24146 [
24147 "VM.Console"
24148 ]
24149 ],
24150 "description" : "You also need to pass a valid ticket (vncticket)."
24151 },
24152 "returns" : {
24153 "properties" : {
24154 "port" : {
24155 "type" : "string"
24156 }
24157 },
24158 "type" : "object"
24159 }
24160 }
24161 },
24162 "leaf" : 1,
24163 "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
24164 "text" : "vncwebsocket"
24165 },
24166 {
24167 "info" : {
24168 "POST" : {
e9cd3bd4 24169 "allowtoken" : 1,
4d47f125
TL
24170 "description" : "Returns a SPICE configuration to connect to the VM.",
24171 "method" : "POST",
24172 "name" : "spiceproxy",
24173 "parameters" : {
24174 "additionalProperties" : 0,
24175 "properties" : {
24176 "node" : {
24177 "description" : "The cluster node name.",
24178 "format" : "pve-node",
24179 "type" : "string",
24180 "typetext" : "<string>"
24181 },
24182 "proxy" : {
24183 "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).",
24184 "format" : "address",
24185 "optional" : 1,
24186 "type" : "string",
24187 "typetext" : "<string>"
24188 },
24189 "vmid" : {
24190 "description" : "The (unique) ID of the VM.",
24191 "format" : "pve-vmid",
8dd66e12
TL
24192 "maximum" : 999999999,
24193 "minimum" : 100,
4d47f125 24194 "type" : "integer",
8dd66e12 24195 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24196 }
24197 }
24198 },
24199 "permissions" : {
24200 "check" : [
24201 "perm",
24202 "/vms/{vmid}",
24203 [
24204 "VM.Console"
24205 ]
24206 ]
24207 },
24208 "protected" : 1,
24209 "proxyto" : "node",
24210 "returns" : {
24211 "additionalProperties" : 1,
24212 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
24213 "properties" : {
24214 "host" : {
24215 "type" : "string"
24216 },
24217 "password" : {
24218 "type" : "string"
24219 },
24220 "proxy" : {
24221 "type" : "string"
24222 },
24223 "tls-port" : {
24224 "type" : "integer"
24225 },
24226 "type" : {
24227 "type" : "string"
24228 }
24229 }
24230 }
24231 }
24232 },
24233 "leaf" : 1,
24234 "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
24235 "text" : "spiceproxy"
24236 },
24237 {
24238 "children" : [
24239 {
24240 "info" : {
24241 "GET" : {
e9cd3bd4 24242 "allowtoken" : 1,
4d47f125
TL
24243 "description" : "Get virtual machine status.",
24244 "method" : "GET",
24245 "name" : "vm_status",
24246 "parameters" : {
24247 "additionalProperties" : 0,
24248 "properties" : {
24249 "node" : {
24250 "description" : "The cluster node name.",
24251 "format" : "pve-node",
24252 "type" : "string",
24253 "typetext" : "<string>"
24254 },
24255 "vmid" : {
24256 "description" : "The (unique) ID of the VM.",
24257 "format" : "pve-vmid",
8dd66e12
TL
24258 "maximum" : 999999999,
24259 "minimum" : 100,
4d47f125 24260 "type" : "integer",
8dd66e12 24261 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24262 }
24263 }
24264 },
24265 "permissions" : {
24266 "check" : [
24267 "perm",
24268 "/vms/{vmid}",
24269 [
24270 "VM.Audit"
24271 ]
24272 ]
24273 },
24274 "protected" : 1,
24275 "proxyto" : "node",
24276 "returns" : {
24277 "properties" : {
24278 "agent" : {
9d2e98ed 24279 "description" : "QEMU Guest Agent is enabled in config.",
4d47f125
TL
24280 "optional" : 1,
24281 "type" : "boolean"
24282 },
fa22697b
TL
24283 "clipboard" : {
24284 "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added.",
24285 "enum" : [
24286 "vnc"
24287 ],
24288 "optional" : 1,
24289 "type" : "string"
24290 },
4d47f125
TL
24291 "cpus" : {
24292 "description" : "Maximum usable CPUs.",
24293 "optional" : 1,
24294 "type" : "number"
24295 },
24296 "ha" : {
24297 "description" : "HA manager service status.",
24298 "type" : "object"
24299 },
95895385
TL
24300 "lock" : {
24301 "description" : "The current config lock, if any.",
24302 "optional" : 1,
24303 "type" : "string"
24304 },
4d47f125
TL
24305 "maxdisk" : {
24306 "description" : "Root disk size in bytes.",
24307 "optional" : 1,
24308 "renderer" : "bytes",
24309 "type" : "integer"
24310 },
24311 "maxmem" : {
24312 "description" : "Maximum memory in bytes.",
24313 "optional" : 1,
24314 "renderer" : "bytes",
24315 "type" : "integer"
24316 },
24317 "name" : {
24318 "description" : "VM name.",
24319 "optional" : 1,
24320 "type" : "string"
24321 },
24322 "pid" : {
24323 "description" : "PID of running qemu process.",
24324 "optional" : 1,
24325 "type" : "integer"
24326 },
24327 "qmpstatus" : {
499c9b7f 24328 "description" : "VM run state from the 'query-status' QMP monitor command.",
4d47f125
TL
24329 "optional" : 1,
24330 "type" : "string"
24331 },
d2656385
TL
24332 "running-machine" : {
24333 "description" : "The currently running machine type (if running).",
24334 "optional" : 1,
24335 "type" : "string"
24336 },
24337 "running-qemu" : {
24338 "description" : "The currently running QEMU version (if running).",
24339 "optional" : 1,
24340 "type" : "string"
24341 },
4d47f125 24342 "spice" : {
9d2e98ed 24343 "description" : "QEMU VGA configuration supports spice.",
4d47f125
TL
24344 "optional" : 1,
24345 "type" : "boolean"
24346 },
24347 "status" : {
9d2e98ed 24348 "description" : "QEMU process status.",
4d47f125
TL
24349 "enum" : [
24350 "stopped",
24351 "running"
24352 ],
24353 "type" : "string"
24354 },
5c1699e5
TL
24355 "tags" : {
24356 "description" : "The current configured tags, if any",
24357 "optional" : 1,
24358 "type" : "string"
24359 },
4d47f125
TL
24360 "uptime" : {
24361 "description" : "Uptime.",
24362 "optional" : 1,
24363 "renderer" : "duration",
24364 "type" : "integer"
24365 },
24366 "vmid" : {
24367 "description" : "The (unique) ID of the VM.",
24368 "format" : "pve-vmid",
8dd66e12
TL
24369 "maximum" : 999999999,
24370 "minimum" : 100,
4d47f125
TL
24371 "type" : "integer"
24372 }
24373 },
24374 "type" : "object"
24375 }
24376 }
24377 },
24378 "leaf" : 1,
24379 "path" : "/nodes/{node}/qemu/{vmid}/status/current",
24380 "text" : "current"
24381 },
24382 {
24383 "info" : {
24384 "POST" : {
e9cd3bd4 24385 "allowtoken" : 1,
4d47f125
TL
24386 "description" : "Start virtual machine.",
24387 "method" : "POST",
24388 "name" : "vm_start",
24389 "parameters" : {
24390 "additionalProperties" : 0,
24391 "properties" : {
c5aa7e14
TL
24392 "force-cpu" : {
24393 "description" : "Override QEMU's -cpu argument with the given string.",
24394 "optional" : 1,
24395 "type" : "string",
24396 "typetext" : "<string>"
24397 },
4d47f125 24398 "machine" : {
9d2e98ed 24399 "description" : "Specifies the QEMU machine type.",
4d47f125
TL
24400 "maxLength" : 40,
24401 "optional" : 1,
5c1699e5 24402 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
24403 "type" : "string"
24404 },
24405 "migratedfrom" : {
24406 "description" : "The cluster node name.",
24407 "format" : "pve-node",
24408 "optional" : 1,
24409 "type" : "string",
24410 "typetext" : "<string>"
24411 },
24412 "migration_network" : {
24413 "description" : "CIDR of the (sub) network that is used for migration.",
24414 "format" : "CIDR",
24415 "optional" : 1,
24416 "type" : "string",
24417 "typetext" : "<string>"
24418 },
24419 "migration_type" : {
24420 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
24421 "enum" : [
24422 "secure",
24423 "insecure"
24424 ],
24425 "optional" : 1,
24426 "type" : "string"
24427 },
24428 "node" : {
24429 "description" : "The cluster node name.",
24430 "format" : "pve-node",
24431 "type" : "string",
24432 "typetext" : "<string>"
24433 },
24434 "skiplock" : {
24435 "description" : "Ignore locks - only root is allowed to use this option.",
24436 "optional" : 1,
24437 "type" : "boolean",
24438 "typetext" : "<boolean>"
24439 },
24440 "stateuri" : {
24441 "description" : "Some command save/restore state from this location.",
24442 "maxLength" : 128,
24443 "optional" : 1,
24444 "type" : "string",
24445 "typetext" : "<string>"
24446 },
24447 "targetstorage" : {
c5aa7e14 24448 "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 24449 "format" : "storage-pair-list",
4d47f125
TL
24450 "optional" : 1,
24451 "type" : "string",
24452 "typetext" : "<string>"
24453 },
e9cd3bd4
TL
24454 "timeout" : {
24455 "default" : "max(30, vm memory in GiB)",
24456 "description" : "Wait maximal timeout seconds.",
24457 "minimum" : 0,
24458 "optional" : 1,
24459 "type" : "integer",
24460 "typetext" : "<integer> (0 - N)"
24461 },
4d47f125
TL
24462 "vmid" : {
24463 "description" : "The (unique) ID of the VM.",
24464 "format" : "pve-vmid",
8dd66e12
TL
24465 "maximum" : 999999999,
24466 "minimum" : 100,
4d47f125 24467 "type" : "integer",
8dd66e12 24468 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24469 }
24470 }
24471 },
24472 "permissions" : {
24473 "check" : [
24474 "perm",
24475 "/vms/{vmid}",
24476 [
24477 "VM.PowerMgmt"
24478 ]
24479 ]
24480 },
24481 "protected" : 1,
24482 "proxyto" : "node",
24483 "returns" : {
24484 "type" : "string"
24485 }
24486 }
24487 },
24488 "leaf" : 1,
24489 "path" : "/nodes/{node}/qemu/{vmid}/status/start",
24490 "text" : "start"
24491 },
24492 {
24493 "info" : {
24494 "POST" : {
e9cd3bd4 24495 "allowtoken" : 1,
4d47f125
TL
24496 "description" : "Stop virtual machine. The qemu process will exit immediately. Thisis akin to pulling the power plug of a running computer and may damage the VM data",
24497 "method" : "POST",
24498 "name" : "vm_stop",
24499 "parameters" : {
24500 "additionalProperties" : 0,
24501 "properties" : {
24502 "keepActive" : {
24503 "default" : 0,
24504 "description" : "Do not deactivate storage volumes.",
24505 "optional" : 1,
24506 "type" : "boolean",
24507 "typetext" : "<boolean>"
24508 },
24509 "migratedfrom" : {
24510 "description" : "The cluster node name.",
24511 "format" : "pve-node",
24512 "optional" : 1,
24513 "type" : "string",
24514 "typetext" : "<string>"
24515 },
24516 "node" : {
24517 "description" : "The cluster node name.",
24518 "format" : "pve-node",
24519 "type" : "string",
24520 "typetext" : "<string>"
24521 },
24522 "skiplock" : {
24523 "description" : "Ignore locks - only root is allowed to use this option.",
24524 "optional" : 1,
24525 "type" : "boolean",
24526 "typetext" : "<boolean>"
24527 },
24528 "timeout" : {
24529 "description" : "Wait maximal timeout seconds.",
24530 "minimum" : 0,
24531 "optional" : 1,
24532 "type" : "integer",
24533 "typetext" : "<integer> (0 - N)"
24534 },
24535 "vmid" : {
24536 "description" : "The (unique) ID of the VM.",
24537 "format" : "pve-vmid",
8dd66e12
TL
24538 "maximum" : 999999999,
24539 "minimum" : 100,
4d47f125 24540 "type" : "integer",
8dd66e12 24541 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24542 }
24543 }
24544 },
24545 "permissions" : {
24546 "check" : [
24547 "perm",
24548 "/vms/{vmid}",
24549 [
24550 "VM.PowerMgmt"
24551 ]
24552 ]
24553 },
24554 "protected" : 1,
24555 "proxyto" : "node",
24556 "returns" : {
24557 "type" : "string"
24558 }
24559 }
24560 },
24561 "leaf" : 1,
24562 "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
24563 "text" : "stop"
24564 },
24565 {
24566 "info" : {
24567 "POST" : {
e9cd3bd4 24568 "allowtoken" : 1,
4d47f125
TL
24569 "description" : "Reset virtual machine.",
24570 "method" : "POST",
24571 "name" : "vm_reset",
24572 "parameters" : {
24573 "additionalProperties" : 0,
24574 "properties" : {
24575 "node" : {
24576 "description" : "The cluster node name.",
24577 "format" : "pve-node",
24578 "type" : "string",
24579 "typetext" : "<string>"
24580 },
24581 "skiplock" : {
24582 "description" : "Ignore locks - only root is allowed to use this option.",
24583 "optional" : 1,
24584 "type" : "boolean",
24585 "typetext" : "<boolean>"
24586 },
24587 "vmid" : {
24588 "description" : "The (unique) ID of the VM.",
24589 "format" : "pve-vmid",
8dd66e12
TL
24590 "maximum" : 999999999,
24591 "minimum" : 100,
4d47f125 24592 "type" : "integer",
8dd66e12 24593 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24594 }
24595 }
24596 },
24597 "permissions" : {
24598 "check" : [
24599 "perm",
24600 "/vms/{vmid}",
24601 [
24602 "VM.PowerMgmt"
24603 ]
24604 ]
24605 },
24606 "protected" : 1,
24607 "proxyto" : "node",
24608 "returns" : {
24609 "type" : "string"
24610 }
24611 }
24612 },
24613 "leaf" : 1,
24614 "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
24615 "text" : "reset"
24616 },
24617 {
24618 "info" : {
24619 "POST" : {
e9cd3bd4 24620 "allowtoken" : 1,
4d47f125
TL
24621 "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.",
24622 "method" : "POST",
24623 "name" : "vm_shutdown",
24624 "parameters" : {
24625 "additionalProperties" : 0,
24626 "properties" : {
24627 "forceStop" : {
24628 "default" : 0,
24629 "description" : "Make sure the VM stops.",
24630 "optional" : 1,
24631 "type" : "boolean",
24632 "typetext" : "<boolean>"
24633 },
24634 "keepActive" : {
24635 "default" : 0,
24636 "description" : "Do not deactivate storage volumes.",
24637 "optional" : 1,
24638 "type" : "boolean",
24639 "typetext" : "<boolean>"
24640 },
24641 "node" : {
24642 "description" : "The cluster node name.",
24643 "format" : "pve-node",
24644 "type" : "string",
24645 "typetext" : "<string>"
24646 },
24647 "skiplock" : {
24648 "description" : "Ignore locks - only root is allowed to use this option.",
24649 "optional" : 1,
24650 "type" : "boolean",
24651 "typetext" : "<boolean>"
24652 },
24653 "timeout" : {
24654 "description" : "Wait maximal timeout seconds.",
24655 "minimum" : 0,
24656 "optional" : 1,
24657 "type" : "integer",
24658 "typetext" : "<integer> (0 - N)"
24659 },
24660 "vmid" : {
24661 "description" : "The (unique) ID of the VM.",
24662 "format" : "pve-vmid",
8dd66e12
TL
24663 "maximum" : 999999999,
24664 "minimum" : 100,
4d47f125 24665 "type" : "integer",
8dd66e12 24666 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24667 }
24668 }
24669 },
24670 "permissions" : {
24671 "check" : [
24672 "perm",
24673 "/vms/{vmid}",
24674 [
24675 "VM.PowerMgmt"
24676 ]
24677 ]
24678 },
24679 "protected" : 1,
24680 "proxyto" : "node",
24681 "returns" : {
24682 "type" : "string"
24683 }
24684 }
24685 },
24686 "leaf" : 1,
24687 "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
24688 "text" : "shutdown"
24689 },
1c532546
TL
24690 {
24691 "info" : {
24692 "POST" : {
e9cd3bd4 24693 "allowtoken" : 1,
1c532546
TL
24694 "description" : "Reboot the VM by shutting it down, and starting it again. Applies pending changes.",
24695 "method" : "POST",
24696 "name" : "vm_reboot",
24697 "parameters" : {
24698 "additionalProperties" : 0,
24699 "properties" : {
24700 "node" : {
24701 "description" : "The cluster node name.",
24702 "format" : "pve-node",
24703 "type" : "string",
24704 "typetext" : "<string>"
24705 },
24706 "timeout" : {
24707 "description" : "Wait maximal timeout seconds for the shutdown.",
24708 "minimum" : 0,
24709 "optional" : 1,
24710 "type" : "integer",
24711 "typetext" : "<integer> (0 - N)"
24712 },
24713 "vmid" : {
24714 "description" : "The (unique) ID of the VM.",
24715 "format" : "pve-vmid",
8dd66e12
TL
24716 "maximum" : 999999999,
24717 "minimum" : 100,
1c532546 24718 "type" : "integer",
8dd66e12 24719 "typetext" : "<integer> (100 - 999999999)"
1c532546
TL
24720 }
24721 }
24722 },
24723 "permissions" : {
24724 "check" : [
24725 "perm",
24726 "/vms/{vmid}",
24727 [
24728 "VM.PowerMgmt"
24729 ]
24730 ]
24731 },
24732 "protected" : 1,
24733 "proxyto" : "node",
24734 "returns" : {
24735 "type" : "string"
24736 }
24737 }
24738 },
24739 "leaf" : 1,
24740 "path" : "/nodes/{node}/qemu/{vmid}/status/reboot",
24741 "text" : "reboot"
24742 },
4d47f125
TL
24743 {
24744 "info" : {
24745 "POST" : {
e9cd3bd4 24746 "allowtoken" : 1,
4d47f125
TL
24747 "description" : "Suspend virtual machine.",
24748 "method" : "POST",
24749 "name" : "vm_suspend",
24750 "parameters" : {
24751 "additionalProperties" : 0,
24752 "properties" : {
24753 "node" : {
24754 "description" : "The cluster node name.",
24755 "format" : "pve-node",
24756 "type" : "string",
24757 "typetext" : "<string>"
24758 },
24759 "skiplock" : {
24760 "description" : "Ignore locks - only root is allowed to use this option.",
24761 "optional" : 1,
24762 "type" : "boolean",
24763 "typetext" : "<boolean>"
24764 },
95895385
TL
24765 "statestorage" : {
24766 "description" : "The storage for the VM state",
24767 "format" : "pve-storage-id",
24768 "optional" : 1,
24769 "requires" : "todisk",
24770 "type" : "string",
24771 "typetext" : "<string>"
24772 },
24773 "todisk" : {
24774 "default" : 0,
24775 "description" : "If set, suspends the VM to disk. Will be resumed on next VM start.",
24776 "optional" : 1,
24777 "type" : "boolean",
24778 "typetext" : "<boolean>"
24779 },
4d47f125
TL
24780 "vmid" : {
24781 "description" : "The (unique) ID of the VM.",
24782 "format" : "pve-vmid",
8dd66e12
TL
24783 "maximum" : 999999999,
24784 "minimum" : 100,
4d47f125 24785 "type" : "integer",
8dd66e12 24786 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24787 }
24788 }
24789 },
24790 "permissions" : {
24791 "check" : [
24792 "perm",
24793 "/vms/{vmid}",
24794 [
24795 "VM.PowerMgmt"
24796 ]
e9cd3bd4
TL
24797 ],
24798 "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
24799 },
24800 "protected" : 1,
24801 "proxyto" : "node",
24802 "returns" : {
24803 "type" : "string"
24804 }
24805 }
24806 },
24807 "leaf" : 1,
24808 "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
24809 "text" : "suspend"
24810 },
24811 {
24812 "info" : {
24813 "POST" : {
e9cd3bd4 24814 "allowtoken" : 1,
4d47f125
TL
24815 "description" : "Resume virtual machine.",
24816 "method" : "POST",
24817 "name" : "vm_resume",
24818 "parameters" : {
24819 "additionalProperties" : 0,
24820 "properties" : {
24821 "nocheck" : {
24822 "optional" : 1,
24823 "type" : "boolean",
24824 "typetext" : "<boolean>"
24825 },
24826 "node" : {
24827 "description" : "The cluster node name.",
24828 "format" : "pve-node",
24829 "type" : "string",
24830 "typetext" : "<string>"
24831 },
24832 "skiplock" : {
24833 "description" : "Ignore locks - only root is allowed to use this option.",
24834 "optional" : 1,
24835 "type" : "boolean",
24836 "typetext" : "<boolean>"
24837 },
24838 "vmid" : {
24839 "description" : "The (unique) ID of the VM.",
24840 "format" : "pve-vmid",
8dd66e12
TL
24841 "maximum" : 999999999,
24842 "minimum" : 100,
4d47f125 24843 "type" : "integer",
8dd66e12 24844 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24845 }
24846 }
24847 },
24848 "permissions" : {
24849 "check" : [
24850 "perm",
24851 "/vms/{vmid}",
24852 [
24853 "VM.PowerMgmt"
24854 ]
24855 ]
24856 },
24857 "protected" : 1,
24858 "proxyto" : "node",
24859 "returns" : {
24860 "type" : "string"
24861 }
24862 }
24863 },
24864 "leaf" : 1,
24865 "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
24866 "text" : "resume"
24867 }
24868 ],
24869 "info" : {
24870 "GET" : {
e9cd3bd4 24871 "allowtoken" : 1,
4d47f125
TL
24872 "description" : "Directory index",
24873 "method" : "GET",
24874 "name" : "vmcmdidx",
24875 "parameters" : {
24876 "additionalProperties" : 0,
24877 "properties" : {
24878 "node" : {
24879 "description" : "The cluster node name.",
24880 "format" : "pve-node",
24881 "type" : "string",
24882 "typetext" : "<string>"
24883 },
24884 "vmid" : {
24885 "description" : "The (unique) ID of the VM.",
24886 "format" : "pve-vmid",
8dd66e12
TL
24887 "maximum" : 999999999,
24888 "minimum" : 100,
4d47f125 24889 "type" : "integer",
8dd66e12 24890 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24891 }
24892 }
24893 },
24894 "permissions" : {
24895 "user" : "all"
24896 },
24897 "proxyto" : "node",
24898 "returns" : {
24899 "items" : {
24900 "properties" : {
24901 "subdir" : {
24902 "type" : "string"
24903 }
24904 },
24905 "type" : "object"
24906 },
24907 "links" : [
24908 {
24909 "href" : "{subdir}",
24910 "rel" : "child"
24911 }
24912 ],
24913 "type" : "array"
24914 }
24915 }
24916 },
24917 "leaf" : 0,
24918 "path" : "/nodes/{node}/qemu/{vmid}/status",
24919 "text" : "status"
24920 },
24921 {
24922 "info" : {
24923 "PUT" : {
e9cd3bd4 24924 "allowtoken" : 1,
4d47f125
TL
24925 "description" : "Send key event to virtual machine.",
24926 "method" : "PUT",
24927 "name" : "vm_sendkey",
24928 "parameters" : {
24929 "additionalProperties" : 0,
24930 "properties" : {
24931 "key" : {
24932 "description" : "The key (qemu monitor encoding).",
24933 "type" : "string",
24934 "typetext" : "<string>"
24935 },
24936 "node" : {
24937 "description" : "The cluster node name.",
24938 "format" : "pve-node",
24939 "type" : "string",
24940 "typetext" : "<string>"
24941 },
24942 "skiplock" : {
24943 "description" : "Ignore locks - only root is allowed to use this option.",
24944 "optional" : 1,
24945 "type" : "boolean",
24946 "typetext" : "<boolean>"
24947 },
24948 "vmid" : {
24949 "description" : "The (unique) ID of the VM.",
24950 "format" : "pve-vmid",
8dd66e12
TL
24951 "maximum" : 999999999,
24952 "minimum" : 100,
4d47f125 24953 "type" : "integer",
8dd66e12 24954 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24955 }
24956 }
24957 },
24958 "permissions" : {
24959 "check" : [
24960 "perm",
24961 "/vms/{vmid}",
24962 [
24963 "VM.Console"
24964 ]
24965 ]
24966 },
24967 "protected" : 1,
24968 "proxyto" : "node",
24969 "returns" : {
24970 "type" : "null"
24971 }
24972 }
24973 },
24974 "leaf" : 1,
24975 "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
24976 "text" : "sendkey"
24977 },
24978 {
24979 "info" : {
24980 "GET" : {
e9cd3bd4 24981 "allowtoken" : 1,
4d47f125
TL
24982 "description" : "Check if feature for virtual machine is available.",
24983 "method" : "GET",
24984 "name" : "vm_feature",
24985 "parameters" : {
24986 "additionalProperties" : 0,
24987 "properties" : {
24988 "feature" : {
24989 "description" : "Feature to check.",
24990 "enum" : [
24991 "snapshot",
24992 "clone",
24993 "copy"
24994 ],
24995 "type" : "string"
24996 },
24997 "node" : {
24998 "description" : "The cluster node name.",
24999 "format" : "pve-node",
25000 "type" : "string",
25001 "typetext" : "<string>"
25002 },
25003 "snapname" : {
25004 "description" : "The name of the snapshot.",
25005 "format" : "pve-configid",
25006 "maxLength" : 40,
25007 "optional" : 1,
25008 "type" : "string",
25009 "typetext" : "<string>"
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.Audit"
25027 ]
25028 ]
25029 },
25030 "protected" : 1,
25031 "proxyto" : "node",
25032 "returns" : {
25033 "properties" : {
25034 "hasFeature" : {
25035 "type" : "boolean"
25036 },
25037 "nodes" : {
25038 "items" : {
25039 "type" : "string"
25040 },
25041 "type" : "array"
25042 }
25043 },
25044 "type" : "object"
25045 }
25046 }
25047 },
25048 "leaf" : 1,
25049 "path" : "/nodes/{node}/qemu/{vmid}/feature",
25050 "text" : "feature"
25051 },
25052 {
25053 "info" : {
25054 "POST" : {
e9cd3bd4 25055 "allowtoken" : 1,
4d47f125
TL
25056 "description" : "Create a copy of virtual machine/template.",
25057 "method" : "POST",
25058 "name" : "clone_vm",
25059 "parameters" : {
25060 "additionalProperties" : 0,
25061 "properties" : {
95895385
TL
25062 "bwlimit" : {
25063 "default" : "clone limit from datacenter or storage config",
25064 "description" : "Override I/O bandwidth limit (in KiB/s).",
25065 "minimum" : "0",
25066 "optional" : 1,
25067 "type" : "integer",
25068 "typetext" : "<integer> (0 - N)"
25069 },
4d47f125
TL
25070 "description" : {
25071 "description" : "Description for the new VM.",
25072 "optional" : 1,
25073 "type" : "string",
25074 "typetext" : "<string>"
25075 },
25076 "format" : {
25077 "description" : "Target format for file storage. Only valid for full clone.",
25078 "enum" : [
25079 "raw",
25080 "qcow2",
25081 "vmdk"
25082 ],
25083 "optional" : 1,
25084 "type" : "string"
25085 },
25086 "full" : {
25087 "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.",
25088 "optional" : 1,
25089 "type" : "boolean",
25090 "typetext" : "<boolean>"
25091 },
25092 "name" : {
25093 "description" : "Set a name for the new VM.",
25094 "format" : "dns-name",
25095 "optional" : 1,
25096 "type" : "string",
25097 "typetext" : "<string>"
25098 },
25099 "newid" : {
25100 "description" : "VMID for the clone.",
25101 "format" : "pve-vmid",
8dd66e12
TL
25102 "maximum" : 999999999,
25103 "minimum" : 100,
4d47f125 25104 "type" : "integer",
8dd66e12 25105 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
25106 },
25107 "node" : {
25108 "description" : "The cluster node name.",
25109 "format" : "pve-node",
25110 "type" : "string",
25111 "typetext" : "<string>"
25112 },
25113 "pool" : {
25114 "description" : "Add the new VM to the specified pool.",
25115 "format" : "pve-poolid",
25116 "optional" : 1,
25117 "type" : "string",
25118 "typetext" : "<string>"
25119 },
25120 "snapname" : {
25121 "description" : "The name of the snapshot.",
25122 "format" : "pve-configid",
25123 "maxLength" : 40,
25124 "optional" : 1,
25125 "type" : "string",
25126 "typetext" : "<string>"
25127 },
25128 "storage" : {
25129 "description" : "Target storage for full clone.",
25130 "format" : "pve-storage-id",
25131 "optional" : 1,
25132 "type" : "string",
25133 "typetext" : "<string>"
25134 },
25135 "target" : {
25136 "description" : "Target node. Only allowed if the original VM is on shared storage.",
25137 "format" : "pve-node",
25138 "optional" : 1,
25139 "type" : "string",
25140 "typetext" : "<string>"
25141 },
25142 "vmid" : {
25143 "description" : "The (unique) ID of the VM.",
25144 "format" : "pve-vmid",
8dd66e12
TL
25145 "maximum" : 999999999,
25146 "minimum" : 100,
4d47f125 25147 "type" : "integer",
8dd66e12 25148 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
25149 }
25150 }
25151 },
25152 "permissions" : {
25153 "check" : [
25154 "and",
25155 [
25156 "perm",
25157 "/vms/{vmid}",
25158 [
25159 "VM.Clone"
25160 ]
25161 ],
25162 [
25163 "or",
25164 [
25165 "perm",
25166 "/vms/{newid}",
25167 [
25168 "VM.Allocate"
25169 ]
25170 ],
25171 [
25172 "perm",
25173 "/pool/{pool}",
25174 [
25175 "VM.Allocate"
25176 ],
25177 "require_param",
25178 "pool"
25179 ]
25180 ]
25181 ],
159464a9 25182 "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
25183 },
25184 "protected" : 1,
25185 "proxyto" : "node",
25186 "returns" : {
25187 "type" : "string"
25188 }
25189 }
25190 },
25191 "leaf" : 1,
25192 "path" : "/nodes/{node}/qemu/{vmid}/clone",
25193 "text" : "clone"
25194 },
25195 {
25196 "info" : {
25197 "POST" : {
e9cd3bd4 25198 "allowtoken" : 1,
5370fa8c 25199 "description" : "Move volume to different storage or to a different VM.",
4d47f125
TL
25200 "method" : "POST",
25201 "name" : "move_vm_disk",
25202 "parameters" : {
25203 "additionalProperties" : 0,
25204 "properties" : {
95895385
TL
25205 "bwlimit" : {
25206 "default" : "move limit from datacenter or storage config",
25207 "description" : "Override I/O bandwidth limit (in KiB/s).",
25208 "minimum" : "0",
25209 "optional" : 1,
25210 "type" : "integer",
25211 "typetext" : "<integer> (0 - N)"
25212 },
4d47f125
TL
25213 "delete" : {
25214 "default" : 0,
25215 "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
25216 "optional" : 1,
25217 "type" : "boolean",
25218 "typetext" : "<boolean>"
25219 },
25220 "digest" : {
5370fa8c 25221 "description" : "Prevent changes if current configuration file has different SHA1\"\n\t\t .\" digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
25222 "maxLength" : 40,
25223 "optional" : 1,
25224 "type" : "string",
25225 "typetext" : "<string>"
25226 },
25227 "disk" : {
25228 "description" : "The disk you want to move.",
25229 "enum" : [
25230 "ide0",
25231 "ide1",
25232 "ide2",
25233 "ide3",
25234 "scsi0",
25235 "scsi1",
25236 "scsi2",
25237 "scsi3",
25238 "scsi4",
25239 "scsi5",
25240 "scsi6",
25241 "scsi7",
25242 "scsi8",
25243 "scsi9",
25244 "scsi10",
25245 "scsi11",
25246 "scsi12",
25247 "scsi13",
e9cd3bd4
TL
25248 "scsi14",
25249 "scsi15",
25250 "scsi16",
25251 "scsi17",
25252 "scsi18",
25253 "scsi19",
25254 "scsi20",
25255 "scsi21",
25256 "scsi22",
25257 "scsi23",
25258 "scsi24",
25259 "scsi25",
25260 "scsi26",
25261 "scsi27",
25262 "scsi28",
25263 "scsi29",
25264 "scsi30",
4d47f125
TL
25265 "virtio0",
25266 "virtio1",
25267 "virtio2",
25268 "virtio3",
25269 "virtio4",
25270 "virtio5",
25271 "virtio6",
25272 "virtio7",
25273 "virtio8",
25274 "virtio9",
25275 "virtio10",
25276 "virtio11",
25277 "virtio12",
25278 "virtio13",
25279 "virtio14",
25280 "virtio15",
25281 "sata0",
25282 "sata1",
25283 "sata2",
25284 "sata3",
25285 "sata4",
25286 "sata5",
5370fa8c
TL
25287 "efidisk0",
25288 "tpmstate0",
25289 "unused0",
25290 "unused1",
25291 "unused2",
25292 "unused3",
25293 "unused4",
25294 "unused5",
25295 "unused6",
25296 "unused7",
25297 "unused8",
25298 "unused9",
25299 "unused10",
25300 "unused11",
25301 "unused12",
25302 "unused13",
25303 "unused14",
25304 "unused15",
25305 "unused16",
25306 "unused17",
25307 "unused18",
25308 "unused19",
25309 "unused20",
25310 "unused21",
25311 "unused22",
25312 "unused23",
25313 "unused24",
25314 "unused25",
25315 "unused26",
25316 "unused27",
25317 "unused28",
25318 "unused29",
25319 "unused30",
25320 "unused31",
25321 "unused32",
25322 "unused33",
25323 "unused34",
25324 "unused35",
25325 "unused36",
25326 "unused37",
25327 "unused38",
25328 "unused39",
25329 "unused40",
25330 "unused41",
25331 "unused42",
25332 "unused43",
25333 "unused44",
25334 "unused45",
25335 "unused46",
25336 "unused47",
25337 "unused48",
25338 "unused49",
25339 "unused50",
25340 "unused51",
25341 "unused52",
25342 "unused53",
25343 "unused54",
25344 "unused55",
25345 "unused56",
25346 "unused57",
25347 "unused58",
25348 "unused59",
25349 "unused60",
25350 "unused61",
25351 "unused62",
25352 "unused63",
25353 "unused64",
25354 "unused65",
25355 "unused66",
25356 "unused67",
25357 "unused68",
25358 "unused69",
25359 "unused70",
25360 "unused71",
25361 "unused72",
25362 "unused73",
25363 "unused74",
25364 "unused75",
25365 "unused76",
25366 "unused77",
25367 "unused78",
25368 "unused79",
25369 "unused80",
25370 "unused81",
25371 "unused82",
25372 "unused83",
25373 "unused84",
25374 "unused85",
25375 "unused86",
25376 "unused87",
25377 "unused88",
25378 "unused89",
25379 "unused90",
25380 "unused91",
25381 "unused92",
25382 "unused93",
25383 "unused94",
25384 "unused95",
25385 "unused96",
25386 "unused97",
25387 "unused98",
25388 "unused99",
25389 "unused100",
25390 "unused101",
25391 "unused102",
25392 "unused103",
25393 "unused104",
25394 "unused105",
25395 "unused106",
25396 "unused107",
25397 "unused108",
25398 "unused109",
25399 "unused110",
25400 "unused111",
25401 "unused112",
25402 "unused113",
25403 "unused114",
25404 "unused115",
25405 "unused116",
25406 "unused117",
25407 "unused118",
25408 "unused119",
25409 "unused120",
25410 "unused121",
25411 "unused122",
25412 "unused123",
25413 "unused124",
25414 "unused125",
25415 "unused126",
25416 "unused127",
25417 "unused128",
25418 "unused129",
25419 "unused130",
25420 "unused131",
25421 "unused132",
25422 "unused133",
25423 "unused134",
25424 "unused135",
25425 "unused136",
25426 "unused137",
25427 "unused138",
25428 "unused139",
25429 "unused140",
25430 "unused141",
25431 "unused142",
25432 "unused143",
25433 "unused144",
25434 "unused145",
25435 "unused146",
25436 "unused147",
25437 "unused148",
25438 "unused149",
25439 "unused150",
25440 "unused151",
25441 "unused152",
25442 "unused153",
25443 "unused154",
25444 "unused155",
25445 "unused156",
25446 "unused157",
25447 "unused158",
25448 "unused159",
25449 "unused160",
25450 "unused161",
25451 "unused162",
25452 "unused163",
25453 "unused164",
25454 "unused165",
25455 "unused166",
25456 "unused167",
25457 "unused168",
25458 "unused169",
25459 "unused170",
25460 "unused171",
25461 "unused172",
25462 "unused173",
25463 "unused174",
25464 "unused175",
25465 "unused176",
25466 "unused177",
25467 "unused178",
25468 "unused179",
25469 "unused180",
25470 "unused181",
25471 "unused182",
25472 "unused183",
25473 "unused184",
25474 "unused185",
25475 "unused186",
25476 "unused187",
25477 "unused188",
25478 "unused189",
25479 "unused190",
25480 "unused191",
25481 "unused192",
25482 "unused193",
25483 "unused194",
25484 "unused195",
25485 "unused196",
25486 "unused197",
25487 "unused198",
25488 "unused199",
25489 "unused200",
25490 "unused201",
25491 "unused202",
25492 "unused203",
25493 "unused204",
25494 "unused205",
25495 "unused206",
25496 "unused207",
25497 "unused208",
25498 "unused209",
25499 "unused210",
25500 "unused211",
25501 "unused212",
25502 "unused213",
25503 "unused214",
25504 "unused215",
25505 "unused216",
25506 "unused217",
25507 "unused218",
25508 "unused219",
25509 "unused220",
25510 "unused221",
25511 "unused222",
25512 "unused223",
25513 "unused224",
25514 "unused225",
25515 "unused226",
25516 "unused227",
25517 "unused228",
25518 "unused229",
25519 "unused230",
25520 "unused231",
25521 "unused232",
25522 "unused233",
25523 "unused234",
25524 "unused235",
25525 "unused236",
25526 "unused237",
25527 "unused238",
25528 "unused239",
25529 "unused240",
25530 "unused241",
25531 "unused242",
25532 "unused243",
25533 "unused244",
25534 "unused245",
25535 "unused246",
25536 "unused247",
25537 "unused248",
25538 "unused249",
25539 "unused250",
25540 "unused251",
25541 "unused252",
25542 "unused253",
25543 "unused254",
25544 "unused255"
4d47f125
TL
25545 ],
25546 "type" : "string"
25547 },
25548 "format" : {
25549 "description" : "Target Format.",
25550 "enum" : [
25551 "raw",
25552 "qcow2",
25553 "vmdk"
25554 ],
25555 "optional" : 1,
25556 "type" : "string"
25557 },
25558 "node" : {
25559 "description" : "The cluster node name.",
25560 "format" : "pve-node",
25561 "type" : "string",
25562 "typetext" : "<string>"
25563 },
25564 "storage" : {
25565 "description" : "Target storage.",
25566 "format" : "pve-storage-id",
5370fa8c 25567 "optional" : 1,
4d47f125
TL
25568 "type" : "string",
25569 "typetext" : "<string>"
25570 },
5370fa8c
TL
25571 "target-digest" : {
25572 "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.",
25573 "maxLength" : 40,
25574 "optional" : 1,
25575 "type" : "string",
25576 "typetext" : "<string>"
25577 },
25578 "target-disk" : {
25579 "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.",
25580 "enum" : [
25581 "ide0",
25582 "ide1",
25583 "ide2",
25584 "ide3",
25585 "scsi0",
25586 "scsi1",
25587 "scsi2",
25588 "scsi3",
25589 "scsi4",
25590 "scsi5",
25591 "scsi6",
25592 "scsi7",
25593 "scsi8",
25594 "scsi9",
25595 "scsi10",
25596 "scsi11",
25597 "scsi12",
25598 "scsi13",
25599 "scsi14",
25600 "scsi15",
25601 "scsi16",
25602 "scsi17",
25603 "scsi18",
25604 "scsi19",
25605 "scsi20",
25606 "scsi21",
25607 "scsi22",
25608 "scsi23",
25609 "scsi24",
25610 "scsi25",
25611 "scsi26",
25612 "scsi27",
25613 "scsi28",
25614 "scsi29",
25615 "scsi30",
25616 "virtio0",
25617 "virtio1",
25618 "virtio2",
25619 "virtio3",
25620 "virtio4",
25621 "virtio5",
25622 "virtio6",
25623 "virtio7",
25624 "virtio8",
25625 "virtio9",
25626 "virtio10",
25627 "virtio11",
25628 "virtio12",
25629 "virtio13",
25630 "virtio14",
25631 "virtio15",
25632 "sata0",
25633 "sata1",
25634 "sata2",
25635 "sata3",
25636 "sata4",
25637 "sata5",
25638 "efidisk0",
25639 "tpmstate0",
25640 "unused0",
25641 "unused1",
25642 "unused2",
25643 "unused3",
25644 "unused4",
25645 "unused5",
25646 "unused6",
25647 "unused7",
25648 "unused8",
25649 "unused9",
25650 "unused10",
25651 "unused11",
25652 "unused12",
25653 "unused13",
25654 "unused14",
25655 "unused15",
25656 "unused16",
25657 "unused17",
25658 "unused18",
25659 "unused19",
25660 "unused20",
25661 "unused21",
25662 "unused22",
25663 "unused23",
25664 "unused24",
25665 "unused25",
25666 "unused26",
25667 "unused27",
25668 "unused28",
25669 "unused29",
25670 "unused30",
25671 "unused31",
25672 "unused32",
25673 "unused33",
25674 "unused34",
25675 "unused35",
25676 "unused36",
25677 "unused37",
25678 "unused38",
25679 "unused39",
25680 "unused40",
25681 "unused41",
25682 "unused42",
25683 "unused43",
25684 "unused44",
25685 "unused45",
25686 "unused46",
25687 "unused47",
25688 "unused48",
25689 "unused49",
25690 "unused50",
25691 "unused51",
25692 "unused52",
25693 "unused53",
25694 "unused54",
25695 "unused55",
25696 "unused56",
25697 "unused57",
25698 "unused58",
25699 "unused59",
25700 "unused60",
25701 "unused61",
25702 "unused62",
25703 "unused63",
25704 "unused64",
25705 "unused65",
25706 "unused66",
25707 "unused67",
25708 "unused68",
25709 "unused69",
25710 "unused70",
25711 "unused71",
25712 "unused72",
25713 "unused73",
25714 "unused74",
25715 "unused75",
25716 "unused76",
25717 "unused77",
25718 "unused78",
25719 "unused79",
25720 "unused80",
25721 "unused81",
25722 "unused82",
25723 "unused83",
25724 "unused84",
25725 "unused85",
25726 "unused86",
25727 "unused87",
25728 "unused88",
25729 "unused89",
25730 "unused90",
25731 "unused91",
25732 "unused92",
25733 "unused93",
25734 "unused94",
25735 "unused95",
25736 "unused96",
25737 "unused97",
25738 "unused98",
25739 "unused99",
25740 "unused100",
25741 "unused101",
25742 "unused102",
25743 "unused103",
25744 "unused104",
25745 "unused105",
25746 "unused106",
25747 "unused107",
25748 "unused108",
25749 "unused109",
25750 "unused110",
25751 "unused111",
25752 "unused112",
25753 "unused113",
25754 "unused114",
25755 "unused115",
25756 "unused116",
25757 "unused117",
25758 "unused118",
25759 "unused119",
25760 "unused120",
25761 "unused121",
25762 "unused122",
25763 "unused123",
25764 "unused124",
25765 "unused125",
25766 "unused126",
25767 "unused127",
25768 "unused128",
25769 "unused129",
25770 "unused130",
25771 "unused131",
25772 "unused132",
25773 "unused133",
25774 "unused134",
25775 "unused135",
25776 "unused136",
25777 "unused137",
25778 "unused138",
25779 "unused139",
25780 "unused140",
25781 "unused141",
25782 "unused142",
25783 "unused143",
25784 "unused144",
25785 "unused145",
25786 "unused146",
25787 "unused147",
25788 "unused148",
25789 "unused149",
25790 "unused150",
25791 "unused151",
25792 "unused152",
25793 "unused153",
25794 "unused154",
25795 "unused155",
25796 "unused156",
25797 "unused157",
25798 "unused158",
25799 "unused159",
25800 "unused160",
25801 "unused161",
25802 "unused162",
25803 "unused163",
25804 "unused164",
25805 "unused165",
25806 "unused166",
25807 "unused167",
25808 "unused168",
25809 "unused169",
25810 "unused170",
25811 "unused171",
25812 "unused172",
25813 "unused173",
25814 "unused174",
25815 "unused175",
25816 "unused176",
25817 "unused177",
25818 "unused178",
25819 "unused179",
25820 "unused180",
25821 "unused181",
25822 "unused182",
25823 "unused183",
25824 "unused184",
25825 "unused185",
25826 "unused186",
25827 "unused187",
25828 "unused188",
25829 "unused189",
25830 "unused190",
25831 "unused191",
25832 "unused192",
25833 "unused193",
25834 "unused194",
25835 "unused195",
25836 "unused196",
25837 "unused197",
25838 "unused198",
25839 "unused199",
25840 "unused200",
25841 "unused201",
25842 "unused202",
25843 "unused203",
25844 "unused204",
25845 "unused205",
25846 "unused206",
25847 "unused207",
25848 "unused208",
25849 "unused209",
25850 "unused210",
25851 "unused211",
25852 "unused212",
25853 "unused213",
25854 "unused214",
25855 "unused215",
25856 "unused216",
25857 "unused217",
25858 "unused218",
25859 "unused219",
25860 "unused220",
25861 "unused221",
25862 "unused222",
25863 "unused223",
25864 "unused224",
25865 "unused225",
25866 "unused226",
25867 "unused227",
25868 "unused228",
25869 "unused229",
25870 "unused230",
25871 "unused231",
25872 "unused232",
25873 "unused233",
25874 "unused234",
25875 "unused235",
25876 "unused236",
25877 "unused237",
25878 "unused238",
25879 "unused239",
25880 "unused240",
25881 "unused241",
25882 "unused242",
25883 "unused243",
25884 "unused244",
25885 "unused245",
25886 "unused246",
25887 "unused247",
25888 "unused248",
25889 "unused249",
25890 "unused250",
25891 "unused251",
25892 "unused252",
25893 "unused253",
25894 "unused254",
25895 "unused255"
25896 ],
25897 "optional" : 1,
25898 "type" : "string"
25899 },
25900 "target-vmid" : {
25901 "description" : "The (unique) ID of the VM.",
25902 "format" : "pve-vmid",
8dd66e12
TL
25903 "maximum" : 999999999,
25904 "minimum" : 100,
5370fa8c
TL
25905 "optional" : 1,
25906 "type" : "integer",
8dd66e12 25907 "typetext" : "<integer> (100 - 999999999)"
5370fa8c 25908 },
4d47f125
TL
25909 "vmid" : {
25910 "description" : "The (unique) ID of the VM.",
25911 "format" : "pve-vmid",
8dd66e12
TL
25912 "maximum" : 999999999,
25913 "minimum" : 100,
4d47f125 25914 "type" : "integer",
8dd66e12 25915 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
25916 }
25917 }
25918 },
25919 "permissions" : {
25920 "check" : [
5370fa8c
TL
25921 "perm",
25922 "/vms/{vmid}",
4d47f125 25923 [
5370fa8c 25924 "VM.Config.Disk"
4d47f125
TL
25925 ]
25926 ],
5370fa8c 25927 "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
25928 },
25929 "protected" : 1,
25930 "proxyto" : "node",
25931 "returns" : {
25932 "description" : "the task ID.",
25933 "type" : "string"
25934 }
25935 }
25936 },
25937 "leaf" : 1,
25938 "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
25939 "text" : "move_disk"
25940 },
25941 {
25942 "info" : {
1e3f8156 25943 "GET" : {
e9cd3bd4 25944 "allowtoken" : 1,
1e3f8156
TL
25945 "description" : "Get preconditions for migration.",
25946 "method" : "GET",
25947 "name" : "migrate_vm_precondition",
25948 "parameters" : {
25949 "additionalProperties" : 0,
25950 "properties" : {
25951 "node" : {
25952 "description" : "The cluster node name.",
25953 "format" : "pve-node",
25954 "type" : "string",
25955 "typetext" : "<string>"
25956 },
25957 "target" : {
25958 "description" : "Target node.",
25959 "format" : "pve-node",
25960 "optional" : 1,
25961 "type" : "string",
25962 "typetext" : "<string>"
25963 },
25964 "vmid" : {
25965 "description" : "The (unique) ID of the VM.",
25966 "format" : "pve-vmid",
8dd66e12
TL
25967 "maximum" : 999999999,
25968 "minimum" : 100,
1e3f8156 25969 "type" : "integer",
8dd66e12 25970 "typetext" : "<integer> (100 - 999999999)"
1e3f8156
TL
25971 }
25972 }
25973 },
25974 "permissions" : {
25975 "check" : [
25976 "perm",
25977 "/vms/{vmid}",
25978 [
25979 "VM.Migrate"
25980 ]
25981 ]
25982 },
25983 "protected" : 1,
25984 "proxyto" : "node",
25985 "returns" : {
25986 "properties" : {
25987 "allowed_nodes" : {
9226ccbc 25988 "description" : "List nodes allowed for offline migration, only passed if VM is offline",
1e3f8156
TL
25989 "optional" : 1,
25990 "type" : "array"
25991 },
25992 "local_disks" : {
25993 "description" : "List local disks including CD-Rom, unsused and not referenced disks",
25994 "type" : "array"
25995 },
25996 "local_resources" : {
25997 "description" : "List local resources e.g. pci, usb",
25998 "type" : "array"
25999 },
499c9b7f
TL
26000 "mapped-resources" : {
26001 "description" : "List of mapped resources e.g. pci, usb",
26002 "type" : "array"
26003 },
9226ccbc
TL
26004 "not_allowed_nodes" : {
26005 "description" : "List not allowed nodes with additional informations, only passed if VM is offline",
26006 "optional" : 1,
26007 "type" : "object"
26008 },
1e3f8156
TL
26009 "running" : {
26010 "type" : "boolean"
26011 }
26012 },
26013 "type" : "object"
26014 }
26015 },
4d47f125 26016 "POST" : {
e9cd3bd4 26017 "allowtoken" : 1,
4d47f125
TL
26018 "description" : "Migrate virtual machine. Creates a new migration task.",
26019 "method" : "POST",
26020 "name" : "migrate_vm",
26021 "parameters" : {
26022 "additionalProperties" : 0,
26023 "properties" : {
95895385
TL
26024 "bwlimit" : {
26025 "default" : "migrate limit from datacenter or storage config",
26026 "description" : "Override I/O bandwidth limit (in KiB/s).",
26027 "minimum" : "0",
26028 "optional" : 1,
26029 "type" : "integer",
26030 "typetext" : "<integer> (0 - N)"
26031 },
4d47f125
TL
26032 "force" : {
26033 "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
26034 "optional" : 1,
26035 "type" : "boolean",
26036 "typetext" : "<boolean>"
26037 },
26038 "migration_network" : {
26039 "description" : "CIDR of the (sub) network that is used for migration.",
26040 "format" : "CIDR",
26041 "optional" : 1,
26042 "type" : "string",
26043 "typetext" : "<string>"
26044 },
26045 "migration_type" : {
26046 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
26047 "enum" : [
26048 "secure",
26049 "insecure"
26050 ],
26051 "optional" : 1,
26052 "type" : "string"
26053 },
26054 "node" : {
26055 "description" : "The cluster node name.",
26056 "format" : "pve-node",
26057 "type" : "string",
26058 "typetext" : "<string>"
26059 },
26060 "online" : {
1c532546 26061 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
4d47f125
TL
26062 "optional" : 1,
26063 "type" : "boolean",
26064 "typetext" : "<boolean>"
26065 },
26066 "target" : {
26067 "description" : "Target node.",
26068 "format" : "pve-node",
26069 "type" : "string",
26070 "typetext" : "<string>"
26071 },
26072 "targetstorage" : {
c5aa7e14 26073 "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 26074 "format" : "storage-pair-list",
4d47f125 26075 "optional" : 1,
52e44c50
FG
26076 "type" : "string",
26077 "typetext" : "<string>"
26078 },
7aacca6f 26079 "vmid" : {
7aacca6f 26080 "description" : "The (unique) ID of the VM.",
44660702 26081 "format" : "pve-vmid",
8dd66e12
TL
26082 "maximum" : 999999999,
26083 "minimum" : 100,
4bd7df8b 26084 "type" : "integer",
8dd66e12 26085 "typetext" : "<integer> (100 - 999999999)"
52e44c50
FG
26086 },
26087 "with-local-disks" : {
26088 "description" : "Enable live storage migration for local disk",
26089 "optional" : 1,
26090 "type" : "boolean",
26091 "typetext" : "<boolean>"
56122987 26092 }
44660702
DM
26093 }
26094 },
26095 "permissions" : {
26096 "check" : [
26097 "perm",
26098 "/vms/{vmid}",
26099 [
26100 "VM.Migrate"
26101 ]
26102 ]
56122987
DM
26103 },
26104 "protected" : 1,
44660702
DM
26105 "proxyto" : "node",
26106 "returns" : {
26107 "description" : "the task ID.",
26108 "type" : "string"
26109 }
56122987 26110 }
7aacca6f 26111 },
44660702
DM
26112 "leaf" : 1,
26113 "path" : "/nodes/{node}/qemu/{vmid}/migrate",
7aacca6f 26114 "text" : "migrate"
56122987 26115 },
81a3384d
TL
26116 {
26117 "info" : {
26118 "POST" : {
26119 "allowtoken" : 1,
26120 "description" : "Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!",
26121 "method" : "POST",
26122 "name" : "remote_migrate_vm",
26123 "parameters" : {
26124 "additionalProperties" : 0,
26125 "properties" : {
26126 "bwlimit" : {
26127 "default" : "migrate limit from datacenter or storage config",
26128 "description" : "Override I/O bandwidth limit (in KiB/s).",
26129 "minimum" : "0",
26130 "optional" : 1,
26131 "type" : "integer",
26132 "typetext" : "<integer> (0 - N)"
26133 },
26134 "delete" : {
26135 "default" : 0,
26136 "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.",
26137 "optional" : 1,
26138 "type" : "boolean",
26139 "typetext" : "<boolean>"
26140 },
26141 "node" : {
26142 "description" : "The cluster node name.",
26143 "format" : "pve-node",
26144 "type" : "string",
26145 "typetext" : "<string>"
26146 },
26147 "online" : {
26148 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
26149 "optional" : 1,
26150 "type" : "boolean",
26151 "typetext" : "<boolean>"
26152 },
26153 "target-bridge" : {
26154 "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.",
26155 "format" : "bridge-pair-list",
26156 "type" : "string",
26157 "typetext" : "<string>"
26158 },
26159 "target-endpoint" : {
26160 "description" : "Remote target endpoint",
26161 "format" : "proxmox-remote",
26162 "type" : "string",
26163 "typetext" : "apitoken=<A full Proxmox API token including the secret value.> ,host=<Remote Proxmox hostname or IP> [,fingerprint=<Remote host's certificate fingerprint, if not trusted by system store.>] [,port=<integer>]"
26164 },
26165 "target-storage" : {
26166 "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.",
26167 "format" : "storage-pair-list",
26168 "optional" : 0,
26169 "type" : "string",
26170 "typetext" : "<string>"
26171 },
26172 "target-vmid" : {
26173 "description" : "The (unique) ID of the VM.",
26174 "format" : "pve-vmid",
8dd66e12
TL
26175 "maximum" : 999999999,
26176 "minimum" : 100,
81a3384d
TL
26177 "optional" : 1,
26178 "type" : "integer",
8dd66e12 26179 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
26180 },
26181 "vmid" : {
26182 "description" : "The (unique) ID of the VM.",
26183 "format" : "pve-vmid",
8dd66e12
TL
26184 "maximum" : 999999999,
26185 "minimum" : 100,
81a3384d 26186 "type" : "integer",
8dd66e12 26187 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
26188 }
26189 }
26190 },
26191 "permissions" : {
26192 "check" : [
26193 "perm",
26194 "/vms/{vmid}",
26195 [
26196 "VM.Migrate"
26197 ]
26198 ]
26199 },
26200 "protected" : 1,
26201 "proxyto" : "node",
26202 "returns" : {
26203 "description" : "the task ID.",
26204 "type" : "string"
26205 }
26206 }
26207 },
26208 "leaf" : 1,
26209 "path" : "/nodes/{node}/qemu/{vmid}/remote_migrate",
26210 "text" : "remote_migrate"
26211 },
56122987
DM
26212 {
26213 "info" : {
26214 "POST" : {
e9cd3bd4 26215 "allowtoken" : 1,
9d2e98ed 26216 "description" : "Execute QEMU monitor commands.",
56122987 26217 "method" : "POST",
44660702 26218 "name" : "monitor",
56122987 26219 "parameters" : {
7aacca6f 26220 "additionalProperties" : 0,
56122987 26221 "properties" : {
44660702
DM
26222 "command" : {
26223 "description" : "The monitor command.",
013dc89f
DM
26224 "type" : "string",
26225 "typetext" : "<string>"
44660702 26226 },
56122987 26227 "node" : {
44660702 26228 "description" : "The cluster node name.",
7aacca6f 26229 "format" : "pve-node",
013dc89f
DM
26230 "type" : "string",
26231 "typetext" : "<string>"
56122987
DM
26232 },
26233 "vmid" : {
44660702 26234 "description" : "The (unique) ID of the VM.",
56122987 26235 "format" : "pve-vmid",
8dd66e12
TL
26236 "maximum" : 999999999,
26237 "minimum" : 100,
4bd7df8b 26238 "type" : "integer",
8dd66e12 26239 "typetext" : "<integer> (100 - 999999999)"
56122987 26240 }
7aacca6f 26241 }
56122987 26242 },
56122987
DM
26243 "permissions" : {
26244 "check" : [
26245 "perm",
26246 "/vms/{vmid}",
26247 [
26248 "VM.Monitor"
26249 ]
32d876b5
DM
26250 ],
26251 "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
7aacca6f 26252 },
44660702
DM
26253 "protected" : 1,
26254 "proxyto" : "node",
26255 "returns" : {
26256 "type" : "string"
26257 }
56122987 26258 }
44660702
DM
26259 },
26260 "leaf" : 1,
26261 "path" : "/nodes/{node}/qemu/{vmid}/monitor",
26262 "text" : "monitor"
56122987
DM
26263 },
26264 {
56122987
DM
26265 "info" : {
26266 "PUT" : {
e9cd3bd4 26267 "allowtoken" : 1,
44660702
DM
26268 "description" : "Extend volume size.",
26269 "method" : "PUT",
26270 "name" : "resize_vm",
56122987 26271 "parameters" : {
44660702 26272 "additionalProperties" : 0,
56122987 26273 "properties" : {
44660702
DM
26274 "digest" : {
26275 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
26276 "maxLength" : 40,
26277 "optional" : 1,
013dc89f
DM
26278 "type" : "string",
26279 "typetext" : "<string>"
56122987 26280 },
56122987
DM
26281 "disk" : {
26282 "description" : "The disk you want to resize.",
26283 "enum" : [
26284 "ide0",
26285 "ide1",
26286 "ide2",
26287 "ide3",
26288 "scsi0",
26289 "scsi1",
26290 "scsi2",
26291 "scsi3",
26292 "scsi4",
26293 "scsi5",
26294 "scsi6",
26295 "scsi7",
26296 "scsi8",
26297 "scsi9",
26298 "scsi10",
26299 "scsi11",
26300 "scsi12",
26301 "scsi13",
e9cd3bd4
TL
26302 "scsi14",
26303 "scsi15",
26304 "scsi16",
26305 "scsi17",
26306 "scsi18",
26307 "scsi19",
26308 "scsi20",
26309 "scsi21",
26310 "scsi22",
26311 "scsi23",
26312 "scsi24",
26313 "scsi25",
26314 "scsi26",
26315 "scsi27",
26316 "scsi28",
26317 "scsi29",
26318 "scsi30",
56122987
DM
26319 "virtio0",
26320 "virtio1",
26321 "virtio2",
26322 "virtio3",
26323 "virtio4",
26324 "virtio5",
26325 "virtio6",
26326 "virtio7",
26327 "virtio8",
26328 "virtio9",
26329 "virtio10",
26330 "virtio11",
26331 "virtio12",
26332 "virtio13",
26333 "virtio14",
26334 "virtio15",
26335 "sata0",
26336 "sata1",
26337 "sata2",
26338 "sata3",
26339 "sata4",
2c0dde61 26340 "sata5",
5370fa8c
TL
26341 "efidisk0",
26342 "tpmstate0"
44660702
DM
26343 ],
26344 "type" : "string"
56122987 26345 },
44660702
DM
26346 "node" : {
26347 "description" : "The cluster node name.",
26348 "format" : "pve-node",
013dc89f
DM
26349 "type" : "string",
26350 "typetext" : "<string>"
7aacca6f 26351 },
44660702 26352 "size" : {
5d9c884c 26353 "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
26354 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
26355 "type" : "string"
56122987
DM
26356 },
26357 "skiplock" : {
26358 "description" : "Ignore locks - only root is allowed to use this option.",
26359 "optional" : 1,
013dc89f
DM
26360 "type" : "boolean",
26361 "typetext" : "<boolean>"
56122987
DM
26362 },
26363 "vmid" : {
7aacca6f 26364 "description" : "The (unique) ID of the VM.",
56122987 26365 "format" : "pve-vmid",
8dd66e12
TL
26366 "maximum" : 999999999,
26367 "minimum" : 100,
4bd7df8b 26368 "type" : "integer",
8dd66e12 26369 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
26370 }
26371 }
26372 },
26373 "permissions" : {
26374 "check" : [
26375 "perm",
26376 "/vms/{vmid}",
26377 [
44660702 26378 "VM.Config.Disk"
56122987
DM
26379 ]
26380 ]
26381 },
7aacca6f 26382 "protected" : 1,
7aacca6f 26383 "proxyto" : "node",
44660702 26384 "returns" : {
159464a9
TL
26385 "description" : "the task ID.",
26386 "type" : "string"
44660702 26387 }
7aacca6f
DM
26388 }
26389 },
44660702
DM
26390 "leaf" : 1,
26391 "path" : "/nodes/{node}/qemu/{vmid}/resize",
26392 "text" : "resize"
26393 },
26394 {
56122987
DM
26395 "children" : [
26396 {
26397 "children" : [
26398 {
56122987 26399 "info" : {
44660702 26400 "GET" : {
e9cd3bd4 26401 "allowtoken" : 1,
44660702
DM
26402 "description" : "Get snapshot configuration",
26403 "method" : "GET",
26404 "name" : "get_snapshot_config",
56122987 26405 "parameters" : {
44660702 26406 "additionalProperties" : 0,
56122987 26407 "properties" : {
56122987 26408 "node" : {
44660702 26409 "description" : "The cluster node name.",
56122987 26410 "format" : "pve-node",
013dc89f
DM
26411 "type" : "string",
26412 "typetext" : "<string>"
7aacca6f
DM
26413 },
26414 "snapname" : {
44660702 26415 "description" : "The name of the snapshot.",
7aacca6f 26416 "format" : "pve-configid",
44660702 26417 "maxLength" : 40,
013dc89f
DM
26418 "type" : "string",
26419 "typetext" : "<string>"
7aacca6f
DM
26420 },
26421 "vmid" : {
44660702 26422 "description" : "The (unique) ID of the VM.",
7aacca6f 26423 "format" : "pve-vmid",
8dd66e12
TL
26424 "maximum" : 999999999,
26425 "minimum" : 100,
4bd7df8b 26426 "type" : "integer",
8dd66e12 26427 "typetext" : "<integer> (100 - 999999999)"
56122987 26428 }
44660702 26429 }
56122987
DM
26430 },
26431 "permissions" : {
26432 "check" : [
26433 "perm",
26434 "/vms/{vmid}",
26435 [
2489d6df 26436 "VM.Snapshot",
e9cd3bd4
TL
26437 "VM.Snapshot.Rollback",
26438 "VM.Audit"
2489d6df
WB
26439 ],
26440 "any",
26441 1
56122987
DM
26442 ]
26443 },
44660702 26444 "proxyto" : "node",
56122987 26445 "returns" : {
44660702 26446 "type" : "object"
7aacca6f
DM
26447 }
26448 },
44660702 26449 "PUT" : {
e9cd3bd4 26450 "allowtoken" : 1,
44660702
DM
26451 "description" : "Update snapshot metadata.",
26452 "method" : "PUT",
26453 "name" : "update_snapshot_config",
56122987 26454 "parameters" : {
44660702 26455 "additionalProperties" : 0,
56122987 26456 "properties" : {
44660702
DM
26457 "description" : {
26458 "description" : "A textual description or comment.",
26459 "optional" : 1,
013dc89f
DM
26460 "type" : "string",
26461 "typetext" : "<string>"
44660702 26462 },
56122987 26463 "node" : {
7aacca6f 26464 "description" : "The cluster node name.",
44660702 26465 "format" : "pve-node",
013dc89f
DM
26466 "type" : "string",
26467 "typetext" : "<string>"
56122987 26468 },
56122987
DM
26469 "snapname" : {
26470 "description" : "The name of the snapshot.",
44660702 26471 "format" : "pve-configid",
7aacca6f 26472 "maxLength" : 40,
013dc89f
DM
26473 "type" : "string",
26474 "typetext" : "<string>"
7aacca6f
DM
26475 },
26476 "vmid" : {
26477 "description" : "The (unique) ID of the VM.",
44660702 26478 "format" : "pve-vmid",
8dd66e12
TL
26479 "maximum" : 999999999,
26480 "minimum" : 100,
4bd7df8b 26481 "type" : "integer",
8dd66e12 26482 "typetext" : "<integer> (100 - 999999999)"
56122987 26483 }
44660702 26484 }
56122987 26485 },
7aacca6f
DM
26486 "permissions" : {
26487 "check" : [
26488 "perm",
26489 "/vms/{vmid}",
26490 [
26491 "VM.Snapshot"
26492 ]
26493 ]
44660702
DM
26494 },
26495 "protected" : 1,
26496 "proxyto" : "node",
26497 "returns" : {
26498 "type" : "null"
7aacca6f 26499 }
56122987
DM
26500 }
26501 },
44660702 26502 "leaf" : 1,
7aacca6f 26503 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
44660702 26504 "text" : "config"
56122987
DM
26505 },
26506 {
56122987
DM
26507 "info" : {
26508 "POST" : {
e9cd3bd4 26509 "allowtoken" : 1,
44660702 26510 "description" : "Rollback VM state to specified snapshot.",
7aacca6f 26511 "method" : "POST",
44660702 26512 "name" : "rollback",
56122987
DM
26513 "parameters" : {
26514 "additionalProperties" : 0,
26515 "properties" : {
44660702
DM
26516 "node" : {
26517 "description" : "The cluster node name.",
26518 "format" : "pve-node",
013dc89f
DM
26519 "type" : "string",
26520 "typetext" : "<string>"
44660702 26521 },
56122987 26522 "snapname" : {
44660702 26523 "description" : "The name of the snapshot.",
56122987
DM
26524 "format" : "pve-configid",
26525 "maxLength" : 40,
013dc89f
DM
26526 "type" : "string",
26527 "typetext" : "<string>"
7aacca6f 26528 },
4e7f60c2
TL
26529 "start" : {
26530 "default" : 0,
9d2e98ed 26531 "description" : "Whether the VM should get started after rolling back successfully. (Note: VMs will be automatically started if the snapshot includes RAM.)",
4e7f60c2
TL
26532 "optional" : 1,
26533 "type" : "boolean",
26534 "typetext" : "<boolean>"
26535 },
56122987 26536 "vmid" : {
7aacca6f 26537 "description" : "The (unique) ID of the VM.",
44660702 26538 "format" : "pve-vmid",
8dd66e12
TL
26539 "maximum" : 999999999,
26540 "minimum" : 100,
4bd7df8b 26541 "type" : "integer",
8dd66e12 26542 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
26543 }
26544 }
26545 },
7aacca6f 26546 "permissions" : {
56122987
DM
26547 "check" : [
26548 "perm",
26549 "/vms/{vmid}",
26550 [
2489d6df
WB
26551 "VM.Snapshot",
26552 "VM.Snapshot.Rollback"
26553 ],
26554 "any",
26555 1
56122987
DM
26556 ]
26557 },
44660702 26558 "protected" : 1,
7aacca6f 26559 "proxyto" : "node",
44660702
DM
26560 "returns" : {
26561 "description" : "the task ID.",
26562 "type" : "string"
26563 }
56122987
DM
26564 }
26565 },
44660702
DM
26566 "leaf" : 1,
26567 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
7aacca6f 26568 "text" : "rollback"
56122987 26569 }
44660702
DM
26570 ],
26571 "info" : {
26572 "DELETE" : {
e9cd3bd4 26573 "allowtoken" : 1,
44660702
DM
26574 "description" : "Delete a VM snapshot.",
26575 "method" : "DELETE",
26576 "name" : "delsnapshot",
26577 "parameters" : {
26578 "additionalProperties" : 0,
26579 "properties" : {
26580 "force" : {
26581 "description" : "For removal from config file, even if removing disk snapshots fails.",
26582 "optional" : 1,
013dc89f
DM
26583 "type" : "boolean",
26584 "typetext" : "<boolean>"
44660702
DM
26585 },
26586 "node" : {
26587 "description" : "The cluster node name.",
26588 "format" : "pve-node",
013dc89f
DM
26589 "type" : "string",
26590 "typetext" : "<string>"
44660702
DM
26591 },
26592 "snapname" : {
26593 "description" : "The name of the snapshot.",
26594 "format" : "pve-configid",
26595 "maxLength" : 40,
013dc89f
DM
26596 "type" : "string",
26597 "typetext" : "<string>"
44660702
DM
26598 },
26599 "vmid" : {
26600 "description" : "The (unique) ID of the VM.",
26601 "format" : "pve-vmid",
8dd66e12
TL
26602 "maximum" : 999999999,
26603 "minimum" : 100,
4bd7df8b 26604 "type" : "integer",
8dd66e12 26605 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
26606 }
26607 }
26608 },
26609 "permissions" : {
26610 "check" : [
26611 "perm",
26612 "/vms/{vmid}",
26613 [
26614 "VM.Snapshot"
26615 ]
26616 ]
26617 },
26618 "protected" : 1,
26619 "proxyto" : "node",
26620 "returns" : {
26621 "description" : "the task ID.",
26622 "type" : "string"
26623 }
26624 },
26625 "GET" : {
e9cd3bd4 26626 "allowtoken" : 1,
44660702
DM
26627 "description" : "",
26628 "method" : "GET",
26629 "name" : "snapshot_cmd_idx",
26630 "parameters" : {
26631 "additionalProperties" : 0,
26632 "properties" : {
26633 "node" : {
26634 "description" : "The cluster node name.",
26635 "format" : "pve-node",
013dc89f
DM
26636 "type" : "string",
26637 "typetext" : "<string>"
44660702
DM
26638 },
26639 "snapname" : {
26640 "description" : "The name of the snapshot.",
26641 "format" : "pve-configid",
26642 "maxLength" : 40,
013dc89f
DM
26643 "type" : "string",
26644 "typetext" : "<string>"
44660702
DM
26645 },
26646 "vmid" : {
26647 "description" : "The (unique) ID of the VM.",
26648 "format" : "pve-vmid",
8dd66e12
TL
26649 "maximum" : 999999999,
26650 "minimum" : 100,
4bd7df8b 26651 "type" : "integer",
8dd66e12 26652 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
26653 }
26654 }
26655 },
26656 "permissions" : {
26657 "user" : "all"
26658 },
26659 "returns" : {
26660 "items" : {
26661 "properties" : {},
26662 "type" : "object"
26663 },
26664 "links" : [
26665 {
26666 "href" : "{cmd}",
26667 "rel" : "child"
26668 }
26669 ],
26670 "type" : "array"
26671 }
26672 }
26673 },
26674 "leaf" : 0,
26675 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
26676 "text" : "{snapname}"
56122987
DM
26677 }
26678 ],
44660702
DM
26679 "info" : {
26680 "GET" : {
e9cd3bd4 26681 "allowtoken" : 1,
44660702
DM
26682 "description" : "List all snapshots.",
26683 "method" : "GET",
26684 "name" : "snapshot_list",
26685 "parameters" : {
26686 "additionalProperties" : 0,
26687 "properties" : {
26688 "node" : {
26689 "description" : "The cluster node name.",
26690 "format" : "pve-node",
013dc89f
DM
26691 "type" : "string",
26692 "typetext" : "<string>"
44660702
DM
26693 },
26694 "vmid" : {
26695 "description" : "The (unique) ID of the VM.",
26696 "format" : "pve-vmid",
8dd66e12
TL
26697 "maximum" : 999999999,
26698 "minimum" : 100,
4bd7df8b 26699 "type" : "integer",
8dd66e12 26700 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
26701 }
26702 }
26703 },
26704 "permissions" : {
26705 "check" : [
26706 "perm",
26707 "/vms/{vmid}",
26708 [
26709 "VM.Audit"
26710 ]
26711 ]
26712 },
26713 "protected" : 1,
26714 "proxyto" : "node",
26715 "returns" : {
26716 "items" : {
4d47f125
TL
26717 "properties" : {
26718 "description" : {
26719 "description" : "Snapshot description.",
26720 "type" : "string"
26721 },
26722 "name" : {
26723 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
26724 "type" : "string"
26725 },
26726 "parent" : {
26727 "description" : "Parent snapshot identifier.",
26728 "optional" : 1,
26729 "type" : "string"
26730 },
26731 "snaptime" : {
26732 "description" : "Snapshot creation time",
26733 "optional" : 1,
26734 "renderer" : "timestamp",
26735 "type" : "integer"
26736 },
26737 "vmstate" : {
26738 "description" : "Snapshot includes RAM.",
26739 "optional" : 1,
26740 "type" : "boolean"
26741 }
26742 },
44660702
DM
26743 "type" : "object"
26744 },
26745 "links" : [
26746 {
26747 "href" : "{name}",
26748 "rel" : "child"
26749 }
26750 ],
26751 "type" : "array"
26752 }
26753 },
26754 "POST" : {
e9cd3bd4 26755 "allowtoken" : 1,
44660702
DM
26756 "description" : "Snapshot a VM.",
26757 "method" : "POST",
26758 "name" : "snapshot",
26759 "parameters" : {
26760 "additionalProperties" : 0,
26761 "properties" : {
26762 "description" : {
26763 "description" : "A textual description or comment.",
26764 "optional" : 1,
013dc89f
DM
26765 "type" : "string",
26766 "typetext" : "<string>"
44660702
DM
26767 },
26768 "node" : {
26769 "description" : "The cluster node name.",
26770 "format" : "pve-node",
013dc89f
DM
26771 "type" : "string",
26772 "typetext" : "<string>"
44660702
DM
26773 },
26774 "snapname" : {
26775 "description" : "The name of the snapshot.",
26776 "format" : "pve-configid",
26777 "maxLength" : 40,
013dc89f
DM
26778 "type" : "string",
26779 "typetext" : "<string>"
44660702
DM
26780 },
26781 "vmid" : {
26782 "description" : "The (unique) ID of the VM.",
26783 "format" : "pve-vmid",
8dd66e12
TL
26784 "maximum" : 999999999,
26785 "minimum" : 100,
4bd7df8b 26786 "type" : "integer",
8dd66e12 26787 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
26788 },
26789 "vmstate" : {
26790 "description" : "Save the vmstate",
26791 "optional" : 1,
013dc89f
DM
26792 "type" : "boolean",
26793 "typetext" : "<boolean>"
44660702
DM
26794 }
26795 }
26796 },
26797 "permissions" : {
26798 "check" : [
26799 "perm",
26800 "/vms/{vmid}",
26801 [
26802 "VM.Snapshot"
26803 ]
26804 ]
26805 },
26806 "protected" : 1,
26807 "proxyto" : "node",
26808 "returns" : {
26809 "description" : "the task ID.",
26810 "type" : "string"
26811 }
26812 }
26813 },
26814 "leaf" : 0,
26815 "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
7aacca6f 26816 "text" : "snapshot"
56122987
DM
26817 },
26818 {
56122987
DM
26819 "info" : {
26820 "POST" : {
e9cd3bd4 26821 "allowtoken" : 1,
44660702
DM
26822 "description" : "Create a Template.",
26823 "method" : "POST",
56122987 26824 "name" : "template",
56122987 26825 "parameters" : {
7aacca6f 26826 "additionalProperties" : 0,
56122987 26827 "properties" : {
56122987 26828 "disk" : {
56122987
DM
26829 "description" : "If you want to convert only 1 disk to base image.",
26830 "enum" : [
26831 "ide0",
26832 "ide1",
26833 "ide2",
26834 "ide3",
26835 "scsi0",
26836 "scsi1",
26837 "scsi2",
26838 "scsi3",
26839 "scsi4",
26840 "scsi5",
26841 "scsi6",
26842 "scsi7",
26843 "scsi8",
26844 "scsi9",
26845 "scsi10",
26846 "scsi11",
26847 "scsi12",
26848 "scsi13",
e9cd3bd4
TL
26849 "scsi14",
26850 "scsi15",
26851 "scsi16",
26852 "scsi17",
26853 "scsi18",
26854 "scsi19",
26855 "scsi20",
26856 "scsi21",
26857 "scsi22",
26858 "scsi23",
26859 "scsi24",
26860 "scsi25",
26861 "scsi26",
26862 "scsi27",
26863 "scsi28",
26864 "scsi29",
26865 "scsi30",
56122987
DM
26866 "virtio0",
26867 "virtio1",
26868 "virtio2",
26869 "virtio3",
26870 "virtio4",
26871 "virtio5",
26872 "virtio6",
26873 "virtio7",
26874 "virtio8",
26875 "virtio9",
26876 "virtio10",
26877 "virtio11",
26878 "virtio12",
26879 "virtio13",
26880 "virtio14",
26881 "virtio15",
26882 "sata0",
26883 "sata1",
26884 "sata2",
26885 "sata3",
26886 "sata4",
2c0dde61 26887 "sata5",
5370fa8c
TL
26888 "efidisk0",
26889 "tpmstate0"
56122987 26890 ],
7aacca6f 26891 "optional" : 1,
56122987
DM
26892 "type" : "string"
26893 },
44660702
DM
26894 "node" : {
26895 "description" : "The cluster node name.",
26896 "format" : "pve-node",
013dc89f
DM
26897 "type" : "string",
26898 "typetext" : "<string>"
44660702
DM
26899 },
26900 "vmid" : {
26901 "description" : "The (unique) ID of the VM.",
7aacca6f 26902 "format" : "pve-vmid",
8dd66e12
TL
26903 "maximum" : 999999999,
26904 "minimum" : 100,
4bd7df8b 26905 "type" : "integer",
8dd66e12 26906 "typetext" : "<integer> (100 - 999999999)"
56122987 26907 }
7aacca6f 26908 }
56122987 26909 },
7aacca6f
DM
26910 "permissions" : {
26911 "check" : [
26912 "perm",
26913 "/vms/{vmid}",
26914 [
26915 "VM.Allocate"
26916 ]
26917 ],
26918 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
26919 },
44660702 26920 "protected" : 1,
7aacca6f 26921 "proxyto" : "node",
7aacca6f 26922 "returns" : {
5370fa8c
TL
26923 "description" : "the task ID.",
26924 "type" : "string"
7aacca6f 26925 }
56122987
DM
26926 }
26927 },
44660702 26928 "leaf" : 1,
7aacca6f 26929 "path" : "/nodes/{node}/qemu/{vmid}/template",
44660702 26930 "text" : "template"
81a3384d
TL
26931 },
26932 {
26933 "info" : {
26934 "POST" : {
26935 "allowtoken" : 1,
26936 "description" : "Migration tunnel endpoint - only for internal use by VM migration.",
26937 "method" : "POST",
26938 "name" : "mtunnel",
26939 "parameters" : {
26940 "additionalProperties" : 0,
26941 "properties" : {
26942 "bridges" : {
26943 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
26944 "format" : "pve-bridge-id-list",
26945 "optional" : 1,
26946 "type" : "string",
26947 "typetext" : "<string>"
26948 },
26949 "node" : {
26950 "description" : "The cluster node name.",
26951 "format" : "pve-node",
26952 "type" : "string",
26953 "typetext" : "<string>"
26954 },
26955 "storages" : {
26956 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
26957 "format" : "pve-storage-id-list",
26958 "optional" : 1,
26959 "type" : "string",
26960 "typetext" : "<string>"
26961 },
26962 "vmid" : {
26963 "description" : "The (unique) ID of the VM.",
26964 "format" : "pve-vmid",
8dd66e12
TL
26965 "maximum" : 999999999,
26966 "minimum" : 100,
81a3384d 26967 "type" : "integer",
8dd66e12 26968 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
26969 }
26970 }
26971 },
26972 "permissions" : {
26973 "check" : [
26974 "and",
26975 [
26976 "perm",
26977 "/vms/{vmid}",
26978 [
26979 "VM.Allocate"
26980 ]
26981 ],
26982 [
26983 "perm",
26984 "/",
26985 [
26986 "Sys.Incoming"
26987 ]
26988 ]
26989 ],
26990 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
26991 },
26992 "protected" : 1,
26993 "returns" : {
26994 "additionalProperties" : 0,
26995 "properties" : {
26996 "socket" : {
26997 "type" : "string"
26998 },
26999 "ticket" : {
27000 "type" : "string"
27001 },
27002 "upid" : {
27003 "type" : "string"
27004 }
27005 }
27006 }
27007 }
27008 },
27009 "leaf" : 1,
27010 "path" : "/nodes/{node}/qemu/{vmid}/mtunnel",
27011 "text" : "mtunnel"
27012 },
27013 {
27014 "info" : {
27015 "GET" : {
27016 "allowtoken" : 1,
27017 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
27018 "method" : "GET",
27019 "name" : "mtunnelwebsocket",
27020 "parameters" : {
27021 "additionalProperties" : 0,
27022 "properties" : {
27023 "node" : {
27024 "description" : "The cluster node name.",
27025 "format" : "pve-node",
27026 "type" : "string",
27027 "typetext" : "<string>"
27028 },
27029 "socket" : {
27030 "description" : "unix socket to forward to",
27031 "type" : "string",
27032 "typetext" : "<string>"
27033 },
27034 "ticket" : {
27035 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
27036 "type" : "string",
27037 "typetext" : "<string>"
27038 },
27039 "vmid" : {
27040 "description" : "The (unique) ID of the VM.",
27041 "format" : "pve-vmid",
8dd66e12
TL
27042 "maximum" : 999999999,
27043 "minimum" : 100,
81a3384d 27044 "type" : "integer",
8dd66e12 27045 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
27046 }
27047 }
27048 },
27049 "permissions" : {
27050 "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.",
27051 "user" : "all"
27052 },
27053 "returns" : {
27054 "properties" : {
27055 "port" : {
27056 "optional" : 1,
27057 "type" : "string"
27058 },
27059 "socket" : {
27060 "optional" : 1,
27061 "type" : "string"
27062 }
27063 },
27064 "type" : "object"
27065 }
27066 }
27067 },
27068 "leaf" : 1,
27069 "path" : "/nodes/{node}/qemu/{vmid}/mtunnelwebsocket",
27070 "text" : "mtunnelwebsocket"
56122987
DM
27071 }
27072 ],
7aacca6f 27073 "info" : {
44660702 27074 "DELETE" : {
e9cd3bd4 27075 "allowtoken" : 1,
d2656385 27076 "description" : "Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules",
44660702
DM
27077 "method" : "DELETE",
27078 "name" : "destroy_vm",
7aacca6f 27079 "parameters" : {
44660702 27080 "additionalProperties" : 0,
7aacca6f 27081 "properties" : {
d2656385 27082 "destroy-unreferenced-disks" : {
8f4d9c87 27083 "default" : 0,
d2656385
TL
27084 "description" : "If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages.",
27085 "optional" : 1,
27086 "type" : "boolean",
27087 "typetext" : "<boolean>"
27088 },
7aacca6f 27089 "node" : {
44660702 27090 "description" : "The cluster node name.",
7aacca6f 27091 "format" : "pve-node",
013dc89f
DM
27092 "type" : "string",
27093 "typetext" : "<string>"
44660702 27094 },
1c532546 27095 "purge" : {
d2656385 27096 "description" : "Remove VMID from configurations, like backup & replication jobs and HA.",
1c532546
TL
27097 "optional" : 1,
27098 "type" : "boolean",
27099 "typetext" : "<boolean>"
27100 },
44660702
DM
27101 "skiplock" : {
27102 "description" : "Ignore locks - only root is allowed to use this option.",
27103 "optional" : 1,
013dc89f
DM
27104 "type" : "boolean",
27105 "typetext" : "<boolean>"
7aacca6f
DM
27106 },
27107 "vmid" : {
44660702 27108 "description" : "The (unique) ID of the VM.",
7aacca6f 27109 "format" : "pve-vmid",
8dd66e12
TL
27110 "maximum" : 999999999,
27111 "minimum" : 100,
4bd7df8b 27112 "type" : "integer",
8dd66e12 27113 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 27114 }
44660702 27115 }
7aacca6f 27116 },
7aacca6f
DM
27117 "permissions" : {
27118 "check" : [
27119 "perm",
27120 "/vms/{vmid}",
27121 [
27122 "VM.Allocate"
27123 ]
27124 ]
27125 },
44660702
DM
27126 "protected" : 1,
27127 "proxyto" : "node",
7aacca6f
DM
27128 "returns" : {
27129 "type" : "string"
44660702
DM
27130 }
27131 },
27132 "GET" : {
e9cd3bd4 27133 "allowtoken" : 1,
44660702
DM
27134 "description" : "Directory index",
27135 "method" : "GET",
27136 "name" : "vmdiridx",
7aacca6f 27137 "parameters" : {
44660702 27138 "additionalProperties" : 0,
7aacca6f 27139 "properties" : {
7aacca6f 27140 "node" : {
7aacca6f 27141 "description" : "The cluster node name.",
44660702 27142 "format" : "pve-node",
013dc89f
DM
27143 "type" : "string",
27144 "typetext" : "<string>"
44660702
DM
27145 },
27146 "vmid" : {
27147 "description" : "The (unique) ID of the VM.",
27148 "format" : "pve-vmid",
8dd66e12
TL
27149 "maximum" : 999999999,
27150 "minimum" : 100,
4bd7df8b 27151 "type" : "integer",
8dd66e12 27152 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 27153 }
44660702 27154 }
7aacca6f 27155 },
44660702
DM
27156 "permissions" : {
27157 "user" : "all"
27158 },
27159 "proxyto" : "node",
27160 "returns" : {
27161 "items" : {
27162 "properties" : {
27163 "subdir" : {
27164 "type" : "string"
27165 }
27166 },
27167 "type" : "object"
27168 },
27169 "links" : [
27170 {
27171 "href" : "{subdir}",
27172 "rel" : "child"
27173 }
27174 ],
27175 "type" : "array"
27176 }
7aacca6f 27177 }
44660702
DM
27178 },
27179 "leaf" : 0,
27180 "path" : "/nodes/{node}/qemu/{vmid}",
27181 "text" : "{vmid}"
56122987
DM
27182 }
27183 ],
27184 "info" : {
44660702 27185 "GET" : {
e9cd3bd4 27186 "allowtoken" : 1,
44660702
DM
27187 "description" : "Virtual machine index (per node).",
27188 "method" : "GET",
27189 "name" : "vmlist",
56122987 27190 "parameters" : {
44660702 27191 "additionalProperties" : 0,
56122987 27192 "properties" : {
44660702
DM
27193 "full" : {
27194 "description" : "Determine the full status of active VMs.",
56122987 27195 "optional" : 1,
013dc89f
DM
27196 "type" : "boolean",
27197 "typetext" : "<boolean>"
56122987 27198 },
44660702
DM
27199 "node" : {
27200 "description" : "The cluster node name.",
27201 "format" : "pve-node",
013dc89f
DM
27202 "type" : "string",
27203 "typetext" : "<string>"
44660702
DM
27204 }
27205 }
27206 },
27207 "permissions" : {
27208 "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
27209 "user" : "all"
27210 },
27211 "protected" : 1,
27212 "proxyto" : "node",
27213 "returns" : {
27214 "items" : {
4d47f125
TL
27215 "properties" : {
27216 "cpus" : {
27217 "description" : "Maximum usable CPUs.",
27218 "optional" : 1,
27219 "type" : "number"
27220 },
95895385
TL
27221 "lock" : {
27222 "description" : "The current config lock, if any.",
27223 "optional" : 1,
27224 "type" : "string"
27225 },
4d47f125
TL
27226 "maxdisk" : {
27227 "description" : "Root disk size in bytes.",
27228 "optional" : 1,
27229 "renderer" : "bytes",
27230 "type" : "integer"
27231 },
27232 "maxmem" : {
27233 "description" : "Maximum memory in bytes.",
27234 "optional" : 1,
27235 "renderer" : "bytes",
27236 "type" : "integer"
27237 },
27238 "name" : {
27239 "description" : "VM name.",
27240 "optional" : 1,
27241 "type" : "string"
27242 },
27243 "pid" : {
27244 "description" : "PID of running qemu process.",
27245 "optional" : 1,
27246 "type" : "integer"
27247 },
27248 "qmpstatus" : {
499c9b7f 27249 "description" : "VM run state from the 'query-status' QMP monitor command.",
4d47f125
TL
27250 "optional" : 1,
27251 "type" : "string"
27252 },
d2656385
TL
27253 "running-machine" : {
27254 "description" : "The currently running machine type (if running).",
27255 "optional" : 1,
27256 "type" : "string"
27257 },
27258 "running-qemu" : {
27259 "description" : "The currently running QEMU version (if running).",
27260 "optional" : 1,
27261 "type" : "string"
27262 },
4d47f125 27263 "status" : {
9d2e98ed 27264 "description" : "QEMU process status.",
4d47f125
TL
27265 "enum" : [
27266 "stopped",
27267 "running"
27268 ],
27269 "type" : "string"
27270 },
5c1699e5
TL
27271 "tags" : {
27272 "description" : "The current configured tags, if any",
27273 "optional" : 1,
27274 "type" : "string"
27275 },
4d47f125
TL
27276 "uptime" : {
27277 "description" : "Uptime.",
27278 "optional" : 1,
27279 "renderer" : "duration",
27280 "type" : "integer"
27281 },
27282 "vmid" : {
27283 "description" : "The (unique) ID of the VM.",
27284 "format" : "pve-vmid",
8dd66e12
TL
27285 "maximum" : 999999999,
27286 "minimum" : 100,
4d47f125
TL
27287 "type" : "integer"
27288 }
27289 },
44660702
DM
27290 "type" : "object"
27291 },
27292 "links" : [
27293 {
27294 "href" : "{vmid}",
27295 "rel" : "child"
27296 }
27297 ],
27298 "type" : "array"
27299 }
27300 },
27301 "POST" : {
e9cd3bd4 27302 "allowtoken" : 1,
44660702
DM
27303 "description" : "Create or restore a virtual machine.",
27304 "method" : "POST",
27305 "name" : "create_vm",
27306 "parameters" : {
27307 "additionalProperties" : 0,
27308 "properties" : {
7aacca6f 27309 "acpi" : {
7aacca6f 27310 "default" : 1,
44660702 27311 "description" : "Enable/disable ACPI.",
56122987 27312 "optional" : 1,
013dc89f
DM
27313 "type" : "boolean",
27314 "typetext" : "<boolean>"
56122987 27315 },
4e7f60c2 27316 "affinity" : {
81a3384d 27317 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
27318 "format" : "pve-cpuset",
27319 "optional" : 1,
27320 "type" : "string",
27321 "typetext" : "<string>"
27322 },
44660702 27323 "agent" : {
9d2e98ed 27324 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
27325 "format" : {
27326 "enabled" : {
27327 "default" : 0,
27328 "default_key" : 1,
9d2e98ed
TL
27329 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
27330 "type" : "boolean"
27331 },
27332 "freeze-fs-on-backup" : {
27333 "default" : 1,
27334 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
27335 "optional" : 1,
4d47f125
TL
27336 "type" : "boolean"
27337 },
27338 "fstrim_cloned_disks" : {
27339 "default" : 0,
d2656385 27340 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
27341 "optional" : 1,
27342 "type" : "boolean"
5c1699e5
TL
27343 },
27344 "type" : {
27345 "default" : "virtio",
27346 "description" : "Select the agent type",
27347 "enum" : [
27348 "virtio",
27349 "isa"
27350 ],
27351 "optional" : 1,
27352 "type" : "string"
4d47f125
TL
27353 }
27354 },
7aacca6f 27355 "optional" : 1,
4d47f125 27356 "type" : "string",
9d2e98ed 27357 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 27358 },
e2d681b3
TL
27359 "arch" : {
27360 "description" : "Virtual processor architecture. Defaults to the host.",
27361 "enum" : [
27362 "x86_64",
27363 "aarch64"
27364 ],
27365 "optional" : 1,
27366 "type" : "string"
27367 },
44660702 27368 "archive" : {
c5aa7e14 27369 "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 27370 "maxLength" : 255,
56122987 27371 "optional" : 1,
013dc89f
DM
27372 "type" : "string",
27373 "typetext" : "<string>"
56122987 27374 },
44660702 27375 "args" : {
c2993fe5 27376 "description" : "Arbitrary arguments passed to kvm.",
56122987 27377 "optional" : 1,
c2993fe5 27378 "type" : "string",
013dc89f 27379 "typetext" : "<string>",
159464a9 27380 "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 27381 },
1c532546
TL
27382 "audio0" : {
27383 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
27384 "format" : {
27385 "device" : {
27386 "description" : "Configure an audio device.",
27387 "enum" : [
27388 "ich9-intel-hda",
27389 "intel-hda",
27390 "AC97"
27391 ],
27392 "type" : "string"
27393 },
27394 "driver" : {
27395 "default" : "spice",
27396 "description" : "Driver backend for the audio device.",
27397 "enum" : [
d2656385
TL
27398 "spice",
27399 "none"
1c532546
TL
27400 ],
27401 "optional" : 1,
27402 "type" : "string"
27403 }
27404 },
27405 "optional" : 1,
27406 "type" : "string",
d2656385 27407 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 27408 },
44660702 27409 "autostart" : {
7aacca6f 27410 "default" : 0,
44660702
DM
27411 "description" : "Automatic restart after crash (currently ignored).",
27412 "optional" : 1,
013dc89f
DM
27413 "type" : "boolean",
27414 "typetext" : "<boolean>"
7aacca6f 27415 },
44660702 27416 "balloon" : {
9d2e98ed 27417 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
44660702 27418 "minimum" : 0,
56122987 27419 "optional" : 1,
4bd7df8b 27420 "type" : "integer",
013dc89f 27421 "typetext" : "<integer> (0 - N)"
56122987 27422 },
44660702
DM
27423 "bios" : {
27424 "default" : "seabios",
27425 "description" : "Select BIOS implementation.",
27426 "enum" : [
27427 "seabios",
27428 "ovmf"
27429 ],
56122987 27430 "optional" : 1,
44660702 27431 "type" : "string"
56122987 27432 },
44660702 27433 "boot" : {
5370fa8c 27434 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 27435 "format" : "pve-qm-boot",
56122987 27436 "optional" : 1,
4772952b
TL
27437 "type" : "string",
27438 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 27439 },
7aacca6f 27440 "bootdisk" : {
4772952b 27441 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
27442 "format" : "pve-qm-bootdisk",
27443 "optional" : 1,
7aacca6f 27444 "pattern" : "(ide|sata|scsi|virtio)\\d+",
44660702
DM
27445 "type" : "string"
27446 },
27a7acb2 27447 "bwlimit" : {
95895385
TL
27448 "default" : "restore limit from datacenter or storage config",
27449 "description" : "Override I/O bandwidth limit (in KiB/s).",
27a7acb2
DM
27450 "minimum" : "0",
27451 "optional" : 1,
27452 "type" : "integer",
27453 "typetext" : "<integer> (0 - N)"
27454 },
44660702
DM
27455 "cdrom" : {
27456 "description" : "This is an alias for option -ide2",
de0983cb 27457 "format" : "pve-qm-ide",
56122987 27458 "optional" : 1,
44660702 27459 "type" : "string",
013dc89f 27460 "typetext" : "<volume>"
56122987 27461 },
95895385
TL
27462 "cicustom" : {
27463 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
27464 "format" : "pve-qm-cicustom",
27465 "optional" : 1,
27466 "type" : "string",
5370fa8c 27467 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 27468 },
27a7acb2
DM
27469 "cipassword" : {
27470 "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.",
27471 "optional" : 1,
27472 "type" : "string",
27473 "typetext" : "<string>"
27474 },
27475 "citype" : {
27476 "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.",
27477 "enum" : [
27478 "configdrive2",
d2656385
TL
27479 "nocloud",
27480 "opennebula"
27a7acb2
DM
27481 ],
27482 "optional" : 1,
27483 "type" : "string"
27484 },
159464a9 27485 "ciupgrade" : {
c8eee6ff 27486 "default" : 1,
159464a9
TL
27487 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
27488 "optional" : 1,
27489 "type" : "boolean",
27490 "typetext" : "<boolean>"
27491 },
27a7acb2
DM
27492 "ciuser" : {
27493 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
27494 "optional" : 1,
27495 "type" : "string",
27496 "typetext" : "<string>"
27497 },
44660702
DM
27498 "cores" : {
27499 "default" : 1,
27500 "description" : "The number of cores per socket.",
7aacca6f 27501 "minimum" : 1,
44660702 27502 "optional" : 1,
4bd7df8b 27503 "type" : "integer",
013dc89f 27504 "typetext" : "<integer> (1 - N)"
7aacca6f 27505 },
44660702
DM
27506 "cpu" : {
27507 "description" : "Emulated CPU type.",
c5aa7e14 27508 "format" : "pve-vm-cpu-conf",
56122987 27509 "optional" : 1,
4bd7df8b 27510 "type" : "string",
04d22a9f 27511 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
56122987 27512 },
44660702 27513 "cpulimit" : {
7aacca6f 27514 "default" : 0,
c2993fe5 27515 "description" : "Limit of CPU usage.",
44660702
DM
27516 "maximum" : 128,
27517 "minimum" : 0,
7aacca6f 27518 "optional" : 1,
c2993fe5 27519 "type" : "number",
013dc89f 27520 "typetext" : "<number> (0 - 128)",
c2993fe5 27521 "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
27522 },
27523 "cpuunits" : {
5370fa8c
TL
27524 "default" : "cgroup v1: 1024, cgroup v2: 100",
27525 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 27526 "maximum" : 262144,
7af2edf9 27527 "minimum" : 1,
44660702 27528 "optional" : 1,
c2993fe5 27529 "type" : "integer",
7af2edf9 27530 "typetext" : "<integer> (1 - 262144)",
2489d6df 27531 "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
27532 },
27533 "description" : {
8f4d9c87
TL
27534 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
27535 "maxLength" : 8192,
56122987 27536 "optional" : 1,
013dc89f
DM
27537 "type" : "string",
27538 "typetext" : "<string>"
44660702 27539 },
4d47f125 27540 "efidisk0" : {
9d2e98ed 27541 "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 27542 "format" : {
5370fa8c
TL
27543 "efitype" : {
27544 "default" : "2m",
bd92b745 27545 "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
27546 "enum" : [
27547 "2m",
27548 "4m"
27549 ],
27550 "optional" : 1,
27551 "type" : "string"
27552 },
4d47f125
TL
27553 "file" : {
27554 "default_key" : 1,
27555 "description" : "The drive's backing volume.",
27556 "format" : "pve-volume-id-or-qm-path",
27557 "format_description" : "volume",
27558 "type" : "string"
27559 },
27560 "format" : {
27561 "description" : "The drive's backing file's data format.",
27562 "enum" : [
27563 "raw",
27564 "cow",
27565 "qcow",
27566 "qed",
27567 "qcow2",
27568 "vmdk",
27569 "cloop"
27570 ],
27571 "optional" : 1,
27572 "type" : "string"
27573 },
7af2edf9
TL
27574 "import-from" : {
27575 "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!",
27576 "format" : "pve-volume-id-or-absolute-path",
27577 "format_description" : "source volume",
27578 "optional" : 1,
27579 "type" : "string"
27580 },
5370fa8c
TL
27581 "pre-enrolled-keys" : {
27582 "default" : 0,
27583 "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.",
27584 "optional" : 1,
27585 "type" : "boolean"
27586 },
4d47f125
TL
27587 "size" : {
27588 "description" : "Disk size. This is purely informational and has no effect.",
27589 "format" : "disk-size",
27590 "format_description" : "DiskSize",
27591 "optional" : 1,
27592 "type" : "string"
27593 },
27594 "volume" : {
27595 "alias" : "file"
27596 }
27597 },
27598 "optional" : 1,
27599 "type" : "string",
7af2edf9 27600 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 27601 },
44660702
DM
27602 "force" : {
27603 "description" : "Allow to overwrite existing VM.",
27604 "optional" : 1,
27605 "requires" : "archive",
013dc89f
DM
27606 "type" : "boolean",
27607 "typetext" : "<boolean>"
44660702
DM
27608 },
27609 "freeze" : {
27610 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
27611 "optional" : 1,
013dc89f
DM
27612 "type" : "boolean",
27613 "typetext" : "<boolean>"
44660702 27614 },
5f26e15b
TL
27615 "hookscript" : {
27616 "description" : "Script that will be executed during various steps in the vms lifetime.",
27617 "format" : "pve-volume-id",
27618 "optional" : 1,
27619 "type" : "string",
27620 "typetext" : "<string>"
27621 },
44660702 27622 "hostpci[n]" : {
c2993fe5 27623 "description" : "Map host PCI devices into guest.",
44660702
DM
27624 "format" : "pve-qm-hostpci",
27625 "optional" : 1,
57b78691 27626 "type" : "string",
499c9b7f 27627 "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 27628 "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
27629 },
27630 "hotplug" : {
27631 "default" : "network,disk,usb",
4e7f60c2 27632 "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
27633 "format" : "pve-hotplug-features",
27634 "optional" : 1,
013dc89f
DM
27635 "type" : "string",
27636 "typetext" : "<string>"
7aacca6f 27637 },
4bd7df8b
DM
27638 "hugepages" : {
27639 "description" : "Enable/disable hugepages memory.",
27640 "enum" : [
27641 "any",
27642 "2",
27643 "1024"
27644 ],
27645 "optional" : 1,
27646 "type" : "string"
27647 },
7aacca6f 27648 "ide[n]" : {
7af2edf9 27649 "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 27650 "format" : {
44660702
DM
27651 "aio" : {
27652 "description" : "AIO type to use.",
27653 "enum" : [
27654 "native",
8f4d9c87
TL
27655 "threads",
27656 "io_uring"
44660702 27657 ],
44660702
DM
27658 "optional" : 1,
27659 "type" : "string"
27660 },
27661 "backup" : {
27662 "description" : "Whether the drive should be included when making backups.",
44660702
DM
27663 "optional" : 1,
27664 "type" : "boolean"
27665 },
27666 "bps" : {
de0983cb 27667 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 27668 "format_description" : "bps",
56122987 27669 "optional" : 1,
44660702 27670 "type" : "integer"
56122987 27671 },
de0983cb
DM
27672 "bps_max_length" : {
27673 "description" : "Maximum length of I/O bursts in seconds.",
27674 "format_description" : "seconds",
27675 "minimum" : 1,
27676 "optional" : 1,
27677 "type" : "integer"
27678 },
44660702 27679 "bps_rd" : {
de0983cb 27680 "description" : "Maximum read speed in bytes per second.",
44660702 27681 "format_description" : "bps",
56122987 27682 "optional" : 1,
44660702 27683 "type" : "integer"
56122987 27684 },
de0983cb 27685 "bps_rd_length" : {
5d9c884c
DM
27686 "alias" : "bps_rd_max_length"
27687 },
27688 "bps_rd_max_length" : {
de0983cb
DM
27689 "description" : "Maximum length of read I/O bursts in seconds.",
27690 "format_description" : "seconds",
27691 "minimum" : 1,
27692 "optional" : 1,
27693 "type" : "integer"
27694 },
44660702 27695 "bps_wr" : {
de0983cb 27696 "description" : "Maximum write speed in bytes per second.",
44660702 27697 "format_description" : "bps",
56122987 27698 "optional" : 1,
44660702 27699 "type" : "integer"
56122987 27700 },
de0983cb 27701 "bps_wr_length" : {
5d9c884c
DM
27702 "alias" : "bps_wr_max_length"
27703 },
27704 "bps_wr_max_length" : {
de0983cb
DM
27705 "description" : "Maximum length of write I/O bursts in seconds.",
27706 "format_description" : "seconds",
27707 "minimum" : 1,
27708 "optional" : 1,
27709 "type" : "integer"
27710 },
44660702
DM
27711 "cache" : {
27712 "description" : "The drive's cache mode",
56122987 27713 "enum" : [
7aacca6f 27714 "none",
44660702
DM
27715 "writethrough",
27716 "writeback",
27717 "unsafe",
27718 "directsync"
56122987 27719 ],
56122987 27720 "optional" : 1,
44660702 27721 "type" : "string"
56122987 27722 },
44660702
DM
27723 "cyls" : {
27724 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
27725 "optional" : 1,
27726 "type" : "integer"
7aacca6f 27727 },
44660702
DM
27728 "detect_zeroes" : {
27729 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 27730 "optional" : 1,
44660702 27731 "type" : "boolean"
56122987 27732 },
44660702
DM
27733 "discard" : {
27734 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
27735 "enum" : [
27736 "ignore",
27737 "on"
27738 ],
56122987 27739 "optional" : 1,
44660702 27740 "type" : "string"
56122987 27741 },
7aacca6f 27742 "file" : {
44660702 27743 "default_key" : 1,
7aacca6f 27744 "description" : "The drive's backing volume.",
7aacca6f
DM
27745 "format" : "pve-volume-id-or-qm-path",
27746 "format_description" : "volume",
7aacca6f 27747 "type" : "string"
56122987 27748 },
44660702
DM
27749 "format" : {
27750 "description" : "The drive's backing file's data format.",
56122987 27751 "enum" : [
44660702
DM
27752 "raw",
27753 "cow",
27754 "qcow",
27755 "qed",
27756 "qcow2",
27757 "vmdk",
27758 "cloop"
7aacca6f 27759 ],
7aacca6f
DM
27760 "optional" : 1,
27761 "type" : "string"
56122987 27762 },
44660702
DM
27763 "heads" : {
27764 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 27765 "optional" : 1,
44660702 27766 "type" : "integer"
56122987 27767 },
7af2edf9
TL
27768 "import-from" : {
27769 "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!",
27770 "format" : "pve-volume-id-or-absolute-path",
27771 "format_description" : "source volume",
27772 "optional" : 1,
27773 "type" : "string"
27774 },
44660702 27775 "iops" : {
de0983cb 27776 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 27777 "format_description" : "iops",
56122987 27778 "optional" : 1,
44660702 27779 "type" : "integer"
56122987 27780 },
44660702 27781 "iops_max" : {
de0983cb 27782 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 27783 "format_description" : "iops",
56122987 27784 "optional" : 1,
44660702 27785 "type" : "integer"
56122987 27786 },
de0983cb
DM
27787 "iops_max_length" : {
27788 "description" : "Maximum length of I/O bursts in seconds.",
27789 "format_description" : "seconds",
27790 "minimum" : 1,
27791 "optional" : 1,
27792 "type" : "integer"
27793 },
7aacca6f 27794 "iops_rd" : {
de0983cb 27795 "description" : "Maximum read I/O in operations per second.",
44660702
DM
27796 "format_description" : "iops",
27797 "optional" : 1,
27798 "type" : "integer"
7aacca6f 27799 },
de0983cb 27800 "iops_rd_length" : {
5d9c884c 27801 "alias" : "iops_rd_max_length"
de0983cb 27802 },
44660702 27803 "iops_rd_max" : {
de0983cb 27804 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 27805 "format_description" : "iops",
56122987 27806 "optional" : 1,
44660702 27807 "type" : "integer"
56122987 27808 },
5d9c884c
DM
27809 "iops_rd_max_length" : {
27810 "description" : "Maximum length of read I/O bursts in seconds.",
27811 "format_description" : "seconds",
27812 "minimum" : 1,
27813 "optional" : 1,
27814 "type" : "integer"
27815 },
44660702 27816 "iops_wr" : {
de0983cb 27817 "description" : "Maximum write I/O in operations per second.",
44660702 27818 "format_description" : "iops",
56122987 27819 "optional" : 1,
44660702 27820 "type" : "integer"
7aacca6f 27821 },
de0983cb 27822 "iops_wr_length" : {
5d9c884c 27823 "alias" : "iops_wr_max_length"
de0983cb 27824 },
44660702 27825 "iops_wr_max" : {
de0983cb 27826 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 27827 "format_description" : "iops",
7aacca6f 27828 "optional" : 1,
44660702 27829 "type" : "integer"
56122987 27830 },
5d9c884c
DM
27831 "iops_wr_max_length" : {
27832 "description" : "Maximum length of write I/O bursts in seconds.",
27833 "format_description" : "seconds",
27834 "minimum" : 1,
27835 "optional" : 1,
27836 "type" : "integer"
27837 },
44660702 27838 "mbps" : {
de0983cb 27839 "description" : "Maximum r/w speed in megabytes per second.",
44660702 27840 "format_description" : "mbps",
7aacca6f 27841 "optional" : 1,
44660702 27842 "type" : "number"
56122987 27843 },
44660702 27844 "mbps_max" : {
de0983cb 27845 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
7aacca6f 27846 "format_description" : "mbps",
56122987 27847 "optional" : 1,
44660702 27848 "type" : "number"
56122987 27849 },
44660702 27850 "mbps_rd" : {
de0983cb 27851 "description" : "Maximum read speed in megabytes per second.",
44660702 27852 "format_description" : "mbps",
7aacca6f 27853 "optional" : 1,
44660702 27854 "type" : "number"
7aacca6f 27855 },
44660702 27856 "mbps_rd_max" : {
de0983cb 27857 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 27858 "format_description" : "mbps",
56122987 27859 "optional" : 1,
44660702 27860 "type" : "number"
56122987 27861 },
44660702 27862 "mbps_wr" : {
de0983cb 27863 "description" : "Maximum write speed in megabytes per second.",
44660702 27864 "format_description" : "mbps",
7aacca6f 27865 "optional" : 1,
44660702 27866 "type" : "number"
56122987 27867 },
44660702 27868 "mbps_wr_max" : {
de0983cb 27869 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 27870 "format_description" : "mbps",
56122987 27871 "optional" : 1,
44660702 27872 "type" : "number"
7aacca6f
DM
27873 },
27874 "media" : {
44660702
DM
27875 "default" : "disk",
27876 "description" : "The drive's media type.",
56122987 27877 "enum" : [
7aacca6f
DM
27878 "cdrom",
27879 "disk"
56122987 27880 ],
56122987 27881 "optional" : 1,
44660702 27882 "type" : "string"
56122987 27883 },
44660702
DM
27884 "model" : {
27885 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
27886 "format" : "urlencoded",
27887 "format_description" : "model",
27888 "maxLength" : 120,
56122987 27889 "optional" : 1,
44660702 27890 "type" : "string"
56122987 27891 },
5d9c884c
DM
27892 "replicate" : {
27893 "default" : 1,
27894 "description" : "Whether the drive should considered for replication jobs.",
27895 "optional" : 1,
27896 "type" : "boolean"
27897 },
7aacca6f 27898 "rerror" : {
7aacca6f
DM
27899 "description" : "Read error action.",
27900 "enum" : [
27901 "ignore",
27902 "report",
27903 "stop"
44660702 27904 ],
44660702
DM
27905 "optional" : 1,
27906 "type" : "string"
56122987 27907 },
44660702
DM
27908 "secs" : {
27909 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 27910 "optional" : 1,
44660702
DM
27911 "type" : "integer"
27912 },
27913 "serial" : {
27914 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
27915 "format" : "urlencoded",
27916 "format_description" : "serial",
27917 "maxLength" : 60,
27918 "optional" : 1,
27919 "type" : "string"
27920 },
27a7acb2
DM
27921 "shared" : {
27922 "default" : 0,
27923 "description" : "Mark this locally-managed volume as available on all nodes",
27924 "optional" : 1,
27925 "type" : "boolean",
27926 "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!"
27927 },
44660702
DM
27928 "size" : {
27929 "description" : "Disk size. This is purely informational and has no effect.",
27930 "format" : "disk-size",
f004f5b9 27931 "format_description" : "DiskSize",
44660702
DM
27932 "optional" : 1,
27933 "type" : "string"
7aacca6f
DM
27934 },
27935 "snapshot" : {
27a7acb2 27936 "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 27937 "optional" : 1,
44660702 27938 "type" : "boolean"
7aacca6f 27939 },
25203dc1
NC
27940 "ssd" : {
27941 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
27942 "optional" : 1,
27943 "type" : "boolean"
27944 },
44660702
DM
27945 "trans" : {
27946 "description" : "Force disk geometry bios translation mode.",
27947 "enum" : [
27948 "none",
27949 "lba",
27950 "auto"
27951 ],
7aacca6f 27952 "optional" : 1,
44660702
DM
27953 "type" : "string"
27954 },
27955 "volume" : {
27956 "alias" : "file"
27957 },
27958 "werror" : {
27959 "description" : "Write error action.",
27960 "enum" : [
27961 "enospc",
27962 "ignore",
27963 "report",
27964 "stop"
27965 ],
44660702
DM
27966 "optional" : 1,
27967 "type" : "string"
95895385
TL
27968 },
27969 "wwn" : {
27970 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
27971 "format_description" : "wwn",
27972 "optional" : 1,
27973 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
27974 "type" : "string"
56122987
DM
27975 }
27976 },
56122987 27977 "optional" : 1,
4bd7df8b 27978 "type" : "string",
7af2edf9 27979 "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
27980 },
27981 "ipconfig[n]" : {
d2656385 27982 "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
27983 "format" : "pve-qm-ipconfig",
27984 "optional" : 1,
27985 "type" : "string",
27986 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
56122987 27987 },
95895385
TL
27988 "ivshmem" : {
27989 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
27990 "format" : {
27991 "name" : {
27992 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
27993 "format_description" : "string",
27994 "optional" : 1,
27995 "pattern" : "[a-zA-Z0-9\\-]+",
27996 "type" : "string"
27997 },
27998 "size" : {
27999 "description" : "The size of the file in MB.",
28000 "minimum" : 1,
28001 "type" : "integer"
28002 }
28003 },
28004 "optional" : 1,
28005 "type" : "string",
28006 "typetext" : "size=<integer> [,name=<string>]"
28007 },
4772952b
TL
28008 "keephugepages" : {
28009 "default" : 0,
28010 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
28011 "optional" : 1,
28012 "type" : "boolean",
28013 "typetext" : "<boolean>"
28014 },
56122987 28015 "keyboard" : {
35a75dd3 28016 "default" : null,
7af2edf9 28017 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
56122987 28018 "enum" : [
44660702
DM
28019 "de",
28020 "de-ch",
7aacca6f 28021 "da",
56122987 28022 "en-gb",
44660702
DM
28023 "en-us",
28024 "es",
28025 "fi",
28026 "fr",
28027 "fr-be",
28028 "fr-ca",
28029 "fr-ch",
28030 "hu",
7aacca6f 28031 "is",
44660702
DM
28032 "it",
28033 "ja",
28034 "lt",
56122987 28035 "mk",
7aacca6f 28036 "nl",
56122987 28037 "no",
44660702 28038 "pl",
7aacca6f 28039 "pt",
44660702
DM
28040 "pt-br",
28041 "sv",
28042 "sl",
28043 "tr"
56122987 28044 ],
44660702
DM
28045 "optional" : 1,
28046 "type" : "string"
56122987 28047 },
44660702
DM
28048 "kvm" : {
28049 "default" : 1,
28050 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 28051 "optional" : 1,
013dc89f
DM
28052 "type" : "boolean",
28053 "typetext" : "<boolean>"
7aacca6f 28054 },
d2656385
TL
28055 "live-restore" : {
28056 "description" : "Start the VM immediately from the backup and restore in background. PBS only.",
28057 "optional" : 1,
28058 "requires" : "archive",
28059 "type" : "boolean",
28060 "typetext" : "<boolean>"
28061 },
44660702 28062 "localtime" : {
5370fa8c 28063 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 28064 "optional" : 1,
013dc89f
DM
28065 "type" : "boolean",
28066 "typetext" : "<boolean>"
44660702
DM
28067 },
28068 "lock" : {
28069 "description" : "Lock/unlock the VM.",
7aacca6f 28070 "enum" : [
7aacca6f 28071 "backup",
5f26e15b
TL
28072 "clone",
28073 "create",
28074 "migrate",
28075 "rollback",
7aacca6f 28076 "snapshot",
95895385
TL
28077 "snapshot-delete",
28078 "suspending",
28079 "suspended"
7aacca6f 28080 ],
44660702
DM
28081 "optional" : 1,
28082 "type" : "string"
56122987 28083 },
44660702 28084 "machine" : {
9d2e98ed 28085 "description" : "Specifies the QEMU machine type.",
44660702
DM
28086 "maxLength" : 40,
28087 "optional" : 1,
5c1699e5 28088 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
28089 "type" : "string"
28090 },
28091 "memory" : {
bd92b745
TL
28092 "description" : "Memory properties.",
28093 "format" : {
28094 "current" : {
28095 "default" : 512,
28096 "default_key" : 1,
28097 "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
28098 "minimum" : 16,
28099 "type" : "integer"
28100 }
28101 },
44660702 28102 "optional" : 1,
bd92b745
TL
28103 "type" : "string",
28104 "typetext" : "[current=]<integer>"
44660702
DM
28105 },
28106 "migrate_downtime" : {
28107 "default" : 0.1,
28108 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
28109 "minimum" : 0,
28110 "optional" : 1,
4bd7df8b 28111 "type" : "number",
013dc89f 28112 "typetext" : "<number> (0 - N)"
44660702
DM
28113 },
28114 "migrate_speed" : {
56122987 28115 "default" : 0,
44660702
DM
28116 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
28117 "minimum" : 0,
56122987 28118 "optional" : 1,
4bd7df8b 28119 "type" : "integer",
013dc89f 28120 "typetext" : "<integer> (0 - N)"
56122987 28121 },
27a7acb2
DM
28122 "name" : {
28123 "description" : "Set a name for the VM. Only used on the configuration web interface.",
28124 "format" : "dns-name",
28125 "optional" : 1,
28126 "type" : "string",
28127 "typetext" : "<string>"
28128 },
28129 "nameserver" : {
de786b48 28130 "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 28131 "format" : "address-list",
44660702 28132 "optional" : 1,
013dc89f
DM
28133 "type" : "string",
28134 "typetext" : "<string>"
44660702
DM
28135 },
28136 "net[n]" : {
c2993fe5 28137 "description" : "Specify network devices.",
f004f5b9
DM
28138 "format" : {
28139 "bridge" : {
c2993fe5 28140 "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 28141 "format" : "pve-bridge-id",
f004f5b9
DM
28142 "format_description" : "bridge",
28143 "optional" : 1,
28144 "type" : "string"
28145 },
28146 "e1000" : {
28147 "alias" : "macaddr",
28148 "keyAlias" : "model"
28149 },
28150 "e1000-82540em" : {
28151 "alias" : "macaddr",
28152 "keyAlias" : "model"
28153 },
28154 "e1000-82544gc" : {
28155 "alias" : "macaddr",
28156 "keyAlias" : "model"
28157 },
28158 "e1000-82545em" : {
28159 "alias" : "macaddr",
28160 "keyAlias" : "model"
28161 },
5370fa8c
TL
28162 "e1000e" : {
28163 "alias" : "macaddr",
28164 "keyAlias" : "model"
28165 },
f004f5b9
DM
28166 "firewall" : {
28167 "description" : "Whether this interface should be protected by the firewall.",
28168 "optional" : 1,
28169 "type" : "boolean"
28170 },
28171 "i82551" : {
28172 "alias" : "macaddr",
28173 "keyAlias" : "model"
28174 },
28175 "i82557b" : {
28176 "alias" : "macaddr",
28177 "keyAlias" : "model"
28178 },
28179 "i82559er" : {
28180 "alias" : "macaddr",
28181 "keyAlias" : "model"
28182 },
28183 "link_down" : {
c2993fe5 28184 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
28185 "optional" : 1,
28186 "type" : "boolean"
28187 },
28188 "macaddr" : {
c2993fe5 28189 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 28190 "format" : "mac-addr",
f004f5b9 28191 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 28192 "optional" : 1,
95895385
TL
28193 "type" : "string",
28194 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
28195 },
28196 "model" : {
28197 "default_key" : 1,
c2993fe5 28198 "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 28199 "enum" : [
f004f5b9 28200 "e1000",
5370fa8c
TL
28201 "e1000-82540em",
28202 "e1000-82544gc",
28203 "e1000-82545em",
28204 "e1000e",
f004f5b9
DM
28205 "i82551",
28206 "i82557b",
28207 "i82559er",
5370fa8c
TL
28208 "ne2k_isa",
28209 "ne2k_pci",
28210 "pcnet",
28211 "rtl8139",
28212 "virtio",
28213 "vmxnet3"
f004f5b9 28214 ],
f004f5b9
DM
28215 "type" : "string"
28216 },
ac70d7d1
TL
28217 "mtu" : {
28218 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
28219 "maximum" : 65520,
28220 "minimum" : 1,
28221 "optional" : 1,
28222 "type" : "integer"
28223 },
f004f5b9
DM
28224 "ne2k_isa" : {
28225 "alias" : "macaddr",
28226 "keyAlias" : "model"
28227 },
28228 "ne2k_pci" : {
28229 "alias" : "macaddr",
28230 "keyAlias" : "model"
28231 },
28232 "pcnet" : {
28233 "alias" : "macaddr",
28234 "keyAlias" : "model"
28235 },
28236 "queues" : {
28237 "description" : "Number of packet queues to be used on the device.",
81a3384d 28238 "maximum" : 64,
f004f5b9
DM
28239 "minimum" : 0,
28240 "optional" : 1,
28241 "type" : "integer"
28242 },
28243 "rate" : {
c2993fe5 28244 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
28245 "minimum" : 0,
28246 "optional" : 1,
28247 "type" : "number"
28248 },
28249 "rtl8139" : {
28250 "alias" : "macaddr",
28251 "keyAlias" : "model"
28252 },
28253 "tag" : {
28254 "description" : "VLAN tag to apply to packets on this interface.",
28255 "maximum" : 4094,
c2993fe5 28256 "minimum" : 1,
f004f5b9
DM
28257 "optional" : 1,
28258 "type" : "integer"
28259 },
28260 "trunks" : {
28261 "description" : "VLAN trunks to pass through this interface.",
28262 "format_description" : "vlanid[;vlanid...]",
28263 "optional" : 1,
28264 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
28265 "type" : "string"
28266 },
28267 "virtio" : {
28268 "alias" : "macaddr",
28269 "keyAlias" : "model"
28270 },
28271 "vmxnet3" : {
28272 "alias" : "macaddr",
28273 "keyAlias" : "model"
28274 }
28275 },
44660702 28276 "optional" : 1,
4bd7df8b 28277 "type" : "string",
ac70d7d1 28278 "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
28279 },
28280 "node" : {
28281 "description" : "The cluster node name.",
28282 "format" : "pve-node",
013dc89f
DM
28283 "type" : "string",
28284 "typetext" : "<string>"
44660702
DM
28285 },
28286 "numa" : {
7aacca6f 28287 "default" : 0,
44660702
DM
28288 "description" : "Enable/disable NUMA.",
28289 "optional" : 1,
013dc89f
DM
28290 "type" : "boolean",
28291 "typetext" : "<boolean>"
56122987 28292 },
7aacca6f 28293 "numa[n]" : {
c2993fe5 28294 "description" : "NUMA topology.",
7aacca6f 28295 "format" : {
44660702 28296 "cpus" : {
c2993fe5 28297 "description" : "CPUs accessing this NUMA node.",
44660702
DM
28298 "format_description" : "id[-id];...",
28299 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
28300 "type" : "string"
28301 },
7aacca6f 28302 "hostnodes" : {
c2993fe5 28303 "description" : "Host NUMA nodes to use.",
44660702 28304 "format_description" : "id[-id];...",
7aacca6f 28305 "optional" : 1,
44660702
DM
28306 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
28307 "type" : "string"
7aacca6f 28308 },
44660702 28309 "memory" : {
c2993fe5 28310 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
28311 "optional" : 1,
28312 "type" : "number"
7aacca6f
DM
28313 },
28314 "policy" : {
c2993fe5 28315 "description" : "NUMA allocation policy.",
7aacca6f
DM
28316 "enum" : [
28317 "preferred",
28318 "bind",
28319 "interleave"
28320 ],
7aacca6f 28321 "optional" : 1,
44660702 28322 "type" : "string"
7aacca6f
DM
28323 }
28324 },
56122987 28325 "optional" : 1,
4bd7df8b
DM
28326 "type" : "string",
28327 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 28328 },
44660702
DM
28329 "onboot" : {
28330 "default" : 0,
28331 "description" : "Specifies whether a VM will be started during system bootup.",
56122987 28332 "optional" : 1,
013dc89f
DM
28333 "type" : "boolean",
28334 "typetext" : "<boolean>"
56122987
DM
28335 },
28336 "ostype" : {
c2993fe5 28337 "description" : "Specify guest operating system.",
56122987
DM
28338 "enum" : [
28339 "other",
28340 "wxp",
28341 "w2k",
28342 "w2k3",
28343 "w2k8",
28344 "wvista",
28345 "win7",
28346 "win8",
32d876b5 28347 "win10",
5370fa8c 28348 "win11",
56122987
DM
28349 "l24",
28350 "l26",
28351 "solaris"
44660702 28352 ],
56122987 28353 "optional" : 1,
c2993fe5 28354 "type" : "string",
9d2e98ed 28355 "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\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
56122987 28356 },
44660702 28357 "parallel[n]" : {
c2993fe5 28358 "description" : "Map host parallel devices (n is 0 to 2).",
56122987 28359 "optional" : 1,
44660702 28360 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 28361 "type" : "string",
4772952b 28362 "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 28363 },
44660702
DM
28364 "pool" : {
28365 "description" : "Add the VM to the specified pool.",
28366 "format" : "pve-poolid",
56122987 28367 "optional" : 1,
013dc89f
DM
28368 "type" : "string",
28369 "typetext" : "<string>"
56122987 28370 },
44660702
DM
28371 "protection" : {
28372 "default" : 0,
c2993fe5 28373 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
56122987 28374 "optional" : 1,
013dc89f
DM
28375 "type" : "boolean",
28376 "typetext" : "<boolean>"
56122987 28377 },
44660702 28378 "reboot" : {
7aacca6f 28379 "default" : 1,
44660702
DM
28380 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
28381 "optional" : 1,
013dc89f
DM
28382 "type" : "boolean",
28383 "typetext" : "<boolean>"
56122987 28384 },
c5aa7e14
TL
28385 "rng0" : {
28386 "description" : "Configure a VirtIO-based Random Number Generator.",
28387 "format" : {
28388 "max_bytes" : {
28389 "default" : 1024,
5370fa8c 28390 "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
28391 "optional" : 1,
28392 "type" : "integer"
28393 },
28394 "period" : {
28395 "default" : 1000,
28396 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
28397 "optional" : 1,
28398 "type" : "integer"
28399 },
28400 "source" : {
28401 "default_key" : 1,
5370fa8c 28402 "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
28403 "enum" : [
28404 "/dev/urandom",
28405 "/dev/random",
28406 "/dev/hwrng"
28407 ],
28408 "type" : "string"
28409 }
28410 },
28411 "optional" : 1,
28412 "type" : "string",
28413 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
28414 },
56122987 28415 "sata[n]" : {
7af2edf9 28416 "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 28417 "format" : {
7aacca6f 28418 "aio" : {
44660702 28419 "description" : "AIO type to use.",
56122987 28420 "enum" : [
7aacca6f 28421 "native",
8f4d9c87
TL
28422 "threads",
28423 "io_uring"
56122987 28424 ],
7aacca6f 28425 "optional" : 1,
44660702 28426 "type" : "string"
7aacca6f
DM
28427 },
28428 "backup" : {
7aacca6f 28429 "description" : "Whether the drive should be included when making backups.",
7aacca6f 28430 "optional" : 1,
44660702 28431 "type" : "boolean"
56122987 28432 },
44660702 28433 "bps" : {
de0983cb 28434 "description" : "Maximum r/w speed in bytes per second.",
44660702 28435 "format_description" : "bps",
7aacca6f 28436 "optional" : 1,
44660702 28437 "type" : "integer"
56122987 28438 },
de0983cb
DM
28439 "bps_max_length" : {
28440 "description" : "Maximum length of I/O bursts in seconds.",
28441 "format_description" : "seconds",
28442 "minimum" : 1,
28443 "optional" : 1,
28444 "type" : "integer"
28445 },
44660702 28446 "bps_rd" : {
de0983cb 28447 "description" : "Maximum read speed in bytes per second.",
44660702 28448 "format_description" : "bps",
56122987 28449 "optional" : 1,
44660702 28450 "type" : "integer"
7aacca6f 28451 },
de0983cb 28452 "bps_rd_length" : {
5d9c884c
DM
28453 "alias" : "bps_rd_max_length"
28454 },
28455 "bps_rd_max_length" : {
de0983cb
DM
28456 "description" : "Maximum length of read I/O bursts in seconds.",
28457 "format_description" : "seconds",
28458 "minimum" : 1,
28459 "optional" : 1,
28460 "type" : "integer"
28461 },
44660702 28462 "bps_wr" : {
de0983cb 28463 "description" : "Maximum write speed in bytes per second.",
44660702 28464 "format_description" : "bps",
56122987 28465 "optional" : 1,
44660702 28466 "type" : "integer"
56122987 28467 },
de0983cb 28468 "bps_wr_length" : {
5d9c884c
DM
28469 "alias" : "bps_wr_max_length"
28470 },
28471 "bps_wr_max_length" : {
de0983cb
DM
28472 "description" : "Maximum length of write I/O bursts in seconds.",
28473 "format_description" : "seconds",
28474 "minimum" : 1,
28475 "optional" : 1,
28476 "type" : "integer"
28477 },
7aacca6f 28478 "cache" : {
7aacca6f
DM
28479 "description" : "The drive's cache mode",
28480 "enum" : [
28481 "none",
28482 "writethrough",
28483 "writeback",
28484 "unsafe",
28485 "directsync"
28486 ],
44660702
DM
28487 "optional" : 1,
28488 "type" : "string"
56122987 28489 },
44660702
DM
28490 "cyls" : {
28491 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 28492 "optional" : 1,
7aacca6f 28493 "type" : "integer"
56122987 28494 },
7aacca6f
DM
28495 "detect_zeroes" : {
28496 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 28497 "optional" : 1,
7aacca6f 28498 "type" : "boolean"
56122987 28499 },
44660702
DM
28500 "discard" : {
28501 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
28502 "enum" : [
28503 "ignore",
28504 "on"
28505 ],
56122987 28506 "optional" : 1,
44660702 28507 "type" : "string"
56122987 28508 },
44660702
DM
28509 "file" : {
28510 "default_key" : 1,
28511 "description" : "The drive's backing volume.",
28512 "format" : "pve-volume-id-or-qm-path",
28513 "format_description" : "volume",
28514 "type" : "string"
56122987
DM
28515 },
28516 "format" : {
44660702 28517 "description" : "The drive's backing file's data format.",
56122987
DM
28518 "enum" : [
28519 "raw",
28520 "cow",
28521 "qcow",
28522 "qed",
28523 "qcow2",
28524 "vmdk",
28525 "cloop"
28526 ],
56122987 28527 "optional" : 1,
44660702 28528 "type" : "string"
56122987 28529 },
7aacca6f 28530 "heads" : {
7aacca6f 28531 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
28532 "optional" : 1,
28533 "type" : "integer"
56122987 28534 },
7af2edf9
TL
28535 "import-from" : {
28536 "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!",
28537 "format" : "pve-volume-id-or-absolute-path",
28538 "format_description" : "source volume",
28539 "optional" : 1,
28540 "type" : "string"
28541 },
44660702 28542 "iops" : {
de0983cb 28543 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
28544 "format_description" : "iops",
28545 "optional" : 1,
28546 "type" : "integer"
56122987 28547 },
44660702 28548 "iops_max" : {
de0983cb 28549 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 28550 "format_description" : "iops",
56122987 28551 "optional" : 1,
44660702 28552 "type" : "integer"
56122987 28553 },
de0983cb
DM
28554 "iops_max_length" : {
28555 "description" : "Maximum length of I/O bursts in seconds.",
28556 "format_description" : "seconds",
28557 "minimum" : 1,
28558 "optional" : 1,
28559 "type" : "integer"
28560 },
44660702 28561 "iops_rd" : {
de0983cb 28562 "description" : "Maximum read I/O in operations per second.",
44660702 28563 "format_description" : "iops",
56122987 28564 "optional" : 1,
44660702 28565 "type" : "integer"
56122987 28566 },
de0983cb 28567 "iops_rd_length" : {
5d9c884c 28568 "alias" : "iops_rd_max_length"
de0983cb 28569 },
44660702 28570 "iops_rd_max" : {
de0983cb 28571 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 28572 "format_description" : "iops",
56122987 28573 "optional" : 1,
44660702 28574 "type" : "integer"
56122987 28575 },
5d9c884c
DM
28576 "iops_rd_max_length" : {
28577 "description" : "Maximum length of read I/O bursts in seconds.",
28578 "format_description" : "seconds",
28579 "minimum" : 1,
28580 "optional" : 1,
28581 "type" : "integer"
28582 },
44660702 28583 "iops_wr" : {
de0983cb 28584 "description" : "Maximum write I/O in operations per second.",
44660702 28585 "format_description" : "iops",
7aacca6f 28586 "optional" : 1,
44660702 28587 "type" : "integer"
7aacca6f 28588 },
de0983cb 28589 "iops_wr_length" : {
5d9c884c 28590 "alias" : "iops_wr_max_length"
de0983cb 28591 },
44660702 28592 "iops_wr_max" : {
de0983cb 28593 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 28594 "format_description" : "iops",
56122987 28595 "optional" : 1,
7aacca6f 28596 "type" : "integer"
56122987 28597 },
5d9c884c
DM
28598 "iops_wr_max_length" : {
28599 "description" : "Maximum length of write I/O bursts in seconds.",
28600 "format_description" : "seconds",
28601 "minimum" : 1,
28602 "optional" : 1,
28603 "type" : "integer"
28604 },
44660702 28605 "mbps" : {
de0983cb 28606 "description" : "Maximum r/w speed in megabytes per second.",
44660702 28607 "format_description" : "mbps",
56122987 28608 "optional" : 1,
44660702 28609 "type" : "number"
56122987 28610 },
44660702 28611 "mbps_max" : {
de0983cb 28612 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 28613 "format_description" : "mbps",
7aacca6f 28614 "optional" : 1,
44660702 28615 "type" : "number"
7aacca6f 28616 },
44660702 28617 "mbps_rd" : {
de0983cb 28618 "description" : "Maximum read speed in megabytes per second.",
44660702 28619 "format_description" : "mbps",
7aacca6f 28620 "optional" : 1,
44660702 28621 "type" : "number"
7aacca6f 28622 },
44660702 28623 "mbps_rd_max" : {
de0983cb 28624 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 28625 "format_description" : "mbps",
7aacca6f 28626 "optional" : 1,
44660702 28627 "type" : "number"
7aacca6f 28628 },
44660702 28629 "mbps_wr" : {
de0983cb 28630 "description" : "Maximum write speed in megabytes per second.",
44660702 28631 "format_description" : "mbps",
7aacca6f 28632 "optional" : 1,
44660702 28633 "type" : "number"
7aacca6f
DM
28634 },
28635 "mbps_wr_max" : {
de0983cb 28636 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 28637 "format_description" : "mbps",
7aacca6f 28638 "optional" : 1,
44660702 28639 "type" : "number"
7aacca6f 28640 },
44660702
DM
28641 "media" : {
28642 "default" : "disk",
28643 "description" : "The drive's media type.",
56122987 28644 "enum" : [
44660702
DM
28645 "cdrom",
28646 "disk"
56122987 28647 ],
56122987 28648 "optional" : 1,
44660702 28649 "type" : "string"
56122987 28650 },
5d9c884c
DM
28651 "replicate" : {
28652 "default" : 1,
28653 "description" : "Whether the drive should considered for replication jobs.",
28654 "optional" : 1,
28655 "type" : "boolean"
28656 },
44660702
DM
28657 "rerror" : {
28658 "description" : "Read error action.",
7aacca6f
DM
28659 "enum" : [
28660 "ignore",
44660702
DM
28661 "report",
28662 "stop"
7aacca6f 28663 ],
56122987 28664 "optional" : 1,
44660702 28665 "type" : "string"
56122987 28666 },
44660702
DM
28667 "secs" : {
28668 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 28669 "optional" : 1,
44660702 28670 "type" : "integer"
56122987 28671 },
44660702
DM
28672 "serial" : {
28673 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
28674 "format" : "urlencoded",
28675 "format_description" : "serial",
28676 "maxLength" : 60,
28677 "optional" : 1,
28678 "type" : "string"
7aacca6f 28679 },
27a7acb2
DM
28680 "shared" : {
28681 "default" : 0,
28682 "description" : "Mark this locally-managed volume as available on all nodes",
28683 "optional" : 1,
28684 "type" : "boolean",
28685 "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!"
28686 },
7aacca6f
DM
28687 "size" : {
28688 "description" : "Disk size. This is purely informational and has no effect.",
44660702 28689 "format" : "disk-size",
f004f5b9 28690 "format_description" : "DiskSize",
56122987 28691 "optional" : 1,
44660702 28692 "type" : "string"
56122987 28693 },
44660702 28694 "snapshot" : {
27a7acb2 28695 "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 28696 "optional" : 1,
44660702 28697 "type" : "boolean"
56122987 28698 },
25203dc1
NC
28699 "ssd" : {
28700 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
28701 "optional" : 1,
28702 "type" : "boolean"
28703 },
44660702
DM
28704 "trans" : {
28705 "description" : "Force disk geometry bios translation mode.",
56122987 28706 "enum" : [
44660702
DM
28707 "none",
28708 "lba",
28709 "auto"
7aacca6f 28710 ],
44660702
DM
28711 "optional" : 1,
28712 "type" : "string"
28713 },
28714 "volume" : {
28715 "alias" : "file"
56122987
DM
28716 },
28717 "werror" : {
56122987
DM
28718 "description" : "Write error action.",
28719 "enum" : [
28720 "enospc",
28721 "ignore",
28722 "report",
28723 "stop"
28724 ],
56122987 28725 "optional" : 1,
44660702 28726 "type" : "string"
95895385
TL
28727 },
28728 "wwn" : {
28729 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
28730 "format_description" : "wwn",
28731 "optional" : 1,
28732 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
28733 "type" : "string"
44660702
DM
28734 }
28735 },
28736 "optional" : 1,
4bd7df8b 28737 "type" : "string",
7af2edf9 28738 "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
28739 },
28740 "scsi[n]" : {
7af2edf9 28741 "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
28742 "format" : {
28743 "aio" : {
28744 "description" : "AIO type to use.",
28745 "enum" : [
28746 "native",
8f4d9c87
TL
28747 "threads",
28748 "io_uring"
44660702 28749 ],
44660702
DM
28750 "optional" : 1,
28751 "type" : "string"
56122987 28752 },
7aacca6f 28753 "backup" : {
44660702 28754 "description" : "Whether the drive should be included when making backups.",
7aacca6f 28755 "optional" : 1,
44660702 28756 "type" : "boolean"
7aacca6f 28757 },
44660702 28758 "bps" : {
de0983cb 28759 "description" : "Maximum r/w speed in bytes per second.",
44660702 28760 "format_description" : "bps",
7aacca6f 28761 "optional" : 1,
44660702 28762 "type" : "integer"
7aacca6f 28763 },
de0983cb
DM
28764 "bps_max_length" : {
28765 "description" : "Maximum length of I/O bursts in seconds.",
28766 "format_description" : "seconds",
28767 "minimum" : 1,
28768 "optional" : 1,
28769 "type" : "integer"
28770 },
44660702 28771 "bps_rd" : {
de0983cb 28772 "description" : "Maximum read speed in bytes per second.",
44660702 28773 "format_description" : "bps",
56122987 28774 "optional" : 1,
44660702 28775 "type" : "integer"
56122987 28776 },
de0983cb 28777 "bps_rd_length" : {
5d9c884c
DM
28778 "alias" : "bps_rd_max_length"
28779 },
28780 "bps_rd_max_length" : {
de0983cb
DM
28781 "description" : "Maximum length of read I/O bursts in seconds.",
28782 "format_description" : "seconds",
28783 "minimum" : 1,
28784 "optional" : 1,
28785 "type" : "integer"
28786 },
44660702 28787 "bps_wr" : {
de0983cb 28788 "description" : "Maximum write speed in bytes per second.",
44660702 28789 "format_description" : "bps",
7aacca6f 28790 "optional" : 1,
44660702 28791 "type" : "integer"
56122987 28792 },
de0983cb 28793 "bps_wr_length" : {
5d9c884c
DM
28794 "alias" : "bps_wr_max_length"
28795 },
28796 "bps_wr_max_length" : {
de0983cb
DM
28797 "description" : "Maximum length of write I/O bursts in seconds.",
28798 "format_description" : "seconds",
28799 "minimum" : 1,
28800 "optional" : 1,
28801 "type" : "integer"
28802 },
44660702
DM
28803 "cache" : {
28804 "description" : "The drive's cache mode",
7aacca6f
DM
28805 "enum" : [
28806 "none",
44660702
DM
28807 "writethrough",
28808 "writeback",
28809 "unsafe",
28810 "directsync"
7aacca6f 28811 ],
56122987 28812 "optional" : 1,
44660702 28813 "type" : "string"
56122987 28814 },
7aacca6f
DM
28815 "cyls" : {
28816 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
28817 "optional" : 1,
44660702 28818 "type" : "integer"
7aacca6f 28819 },
44660702
DM
28820 "detect_zeroes" : {
28821 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 28822 "optional" : 1,
44660702 28823 "type" : "boolean"
56122987 28824 },
44660702
DM
28825 "discard" : {
28826 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
7aacca6f 28827 "enum" : [
44660702
DM
28828 "ignore",
28829 "on"
7aacca6f 28830 ],
7aacca6f 28831 "optional" : 1,
44660702 28832 "type" : "string"
56122987
DM
28833 },
28834 "file" : {
7aacca6f
DM
28835 "default_key" : 1,
28836 "description" : "The drive's backing volume.",
44660702
DM
28837 "format" : "pve-volume-id-or-qm-path",
28838 "format_description" : "volume",
7aacca6f 28839 "type" : "string"
56122987 28840 },
7aacca6f 28841 "format" : {
44660702 28842 "description" : "The drive's backing file's data format.",
56122987 28843 "enum" : [
7aacca6f
DM
28844 "raw",
28845 "cow",
28846 "qcow",
28847 "qed",
28848 "qcow2",
28849 "vmdk",
28850 "cloop"
56122987 28851 ],
44660702
DM
28852 "optional" : 1,
28853 "type" : "string"
56122987 28854 },
44660702
DM
28855 "heads" : {
28856 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
28857 "optional" : 1,
28858 "type" : "integer"
28859 },
7af2edf9
TL
28860 "import-from" : {
28861 "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!",
28862 "format" : "pve-volume-id-or-absolute-path",
28863 "format_description" : "source volume",
28864 "optional" : 1,
28865 "type" : "string"
28866 },
44660702 28867 "iops" : {
de0983cb 28868 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 28869 "format_description" : "iops",
56122987 28870 "optional" : 1,
44660702 28871 "type" : "integer"
56122987 28872 },
44660702 28873 "iops_max" : {
de0983cb 28874 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 28875 "format_description" : "iops",
7aacca6f 28876 "optional" : 1,
44660702 28877 "type" : "integer"
56122987 28878 },
de0983cb
DM
28879 "iops_max_length" : {
28880 "description" : "Maximum length of I/O bursts in seconds.",
28881 "format_description" : "seconds",
28882 "minimum" : 1,
28883 "optional" : 1,
28884 "type" : "integer"
28885 },
44660702 28886 "iops_rd" : {
de0983cb 28887 "description" : "Maximum read I/O in operations per second.",
44660702 28888 "format_description" : "iops",
56122987 28889 "optional" : 1,
44660702 28890 "type" : "integer"
56122987 28891 },
de0983cb 28892 "iops_rd_length" : {
5d9c884c 28893 "alias" : "iops_rd_max_length"
de0983cb 28894 },
44660702 28895 "iops_rd_max" : {
de0983cb 28896 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
28897 "format_description" : "iops",
28898 "optional" : 1,
28899 "type" : "integer"
56122987 28900 },
5d9c884c
DM
28901 "iops_rd_max_length" : {
28902 "description" : "Maximum length of read I/O bursts in seconds.",
28903 "format_description" : "seconds",
28904 "minimum" : 1,
28905 "optional" : 1,
28906 "type" : "integer"
28907 },
44660702 28908 "iops_wr" : {
de0983cb 28909 "description" : "Maximum write I/O in operations per second.",
44660702 28910 "format_description" : "iops",
56122987 28911 "optional" : 1,
44660702 28912 "type" : "integer"
56122987 28913 },
de0983cb 28914 "iops_wr_length" : {
5d9c884c 28915 "alias" : "iops_wr_max_length"
de0983cb 28916 },
44660702 28917 "iops_wr_max" : {
de0983cb 28918 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 28919 "format_description" : "iops",
56122987 28920 "optional" : 1,
56122987
DM
28921 "type" : "integer"
28922 },
5d9c884c
DM
28923 "iops_wr_max_length" : {
28924 "description" : "Maximum length of write I/O bursts in seconds.",
28925 "format_description" : "seconds",
28926 "minimum" : 1,
28927 "optional" : 1,
28928 "type" : "integer"
28929 },
44660702
DM
28930 "iothread" : {
28931 "description" : "Whether to use iothreads for this drive",
44660702
DM
28932 "optional" : 1,
28933 "type" : "boolean"
28934 },
28935 "mbps" : {
de0983cb 28936 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
28937 "format_description" : "mbps",
28938 "optional" : 1,
28939 "type" : "number"
28940 },
7aacca6f 28941 "mbps_max" : {
de0983cb 28942 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 28943 "format_description" : "mbps",
56122987 28944 "optional" : 1,
44660702 28945 "type" : "number"
56122987 28946 },
44660702 28947 "mbps_rd" : {
de0983cb 28948 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
28949 "format_description" : "mbps",
28950 "optional" : 1,
28951 "type" : "number"
56122987 28952 },
44660702 28953 "mbps_rd_max" : {
de0983cb 28954 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 28955 "format_description" : "mbps",
56122987 28956 "optional" : 1,
44660702 28957 "type" : "number"
56122987 28958 },
44660702 28959 "mbps_wr" : {
de0983cb 28960 "description" : "Maximum write speed in megabytes per second.",
44660702 28961 "format_description" : "mbps",
56122987 28962 "optional" : 1,
44660702 28963 "type" : "number"
56122987 28964 },
44660702 28965 "mbps_wr_max" : {
de0983cb 28966 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 28967 "format_description" : "mbps",
7aacca6f 28968 "optional" : 1,
44660702 28969 "type" : "number"
56122987 28970 },
7aacca6f 28971 "media" : {
44660702 28972 "default" : "disk",
7aacca6f
DM
28973 "description" : "The drive's media type.",
28974 "enum" : [
28975 "cdrom",
28976 "disk"
28977 ],
56122987 28978 "optional" : 1,
44660702 28979 "type" : "string"
56122987 28980 },
44660702
DM
28981 "queues" : {
28982 "description" : "Number of queues.",
44660702
DM
28983 "minimum" : 2,
28984 "optional" : 1,
28985 "type" : "integer"
56122987 28986 },
5d9c884c
DM
28987 "replicate" : {
28988 "default" : 1,
28989 "description" : "Whether the drive should considered for replication jobs.",
28990 "optional" : 1,
28991 "type" : "boolean"
28992 },
28993 "rerror" : {
28994 "description" : "Read error action.",
28995 "enum" : [
28996 "ignore",
28997 "report",
28998 "stop"
28999 ],
29000 "optional" : 1,
29001 "type" : "string"
29002 },
5370fa8c
TL
29003 "ro" : {
29004 "description" : "Whether the drive is read-only.",
29005 "optional" : 1,
29006 "type" : "boolean"
29007 },
52e44c50
FG
29008 "scsiblock" : {
29009 "default" : 0,
29010 "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",
29011 "optional" : 1,
29012 "type" : "boolean"
29013 },
7aacca6f 29014 "secs" : {
7aacca6f 29015 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
29016 "optional" : 1,
29017 "type" : "integer"
29018 },
29019 "serial" : {
29020 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
29021 "format" : "urlencoded",
29022 "format_description" : "serial",
29023 "maxLength" : 60,
29024 "optional" : 1,
29025 "type" : "string"
29026 },
27a7acb2
DM
29027 "shared" : {
29028 "default" : 0,
29029 "description" : "Mark this locally-managed volume as available on all nodes",
29030 "optional" : 1,
29031 "type" : "boolean",
29032 "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!"
29033 },
44660702
DM
29034 "size" : {
29035 "description" : "Disk size. This is purely informational and has no effect.",
29036 "format" : "disk-size",
f004f5b9 29037 "format_description" : "DiskSize",
44660702
DM
29038 "optional" : 1,
29039 "type" : "string"
29040 },
29041 "snapshot" : {
27a7acb2 29042 "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
29043 "optional" : 1,
29044 "type" : "boolean"
29045 },
25203dc1
NC
29046 "ssd" : {
29047 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
29048 "optional" : 1,
29049 "type" : "boolean"
29050 },
44660702
DM
29051 "trans" : {
29052 "description" : "Force disk geometry bios translation mode.",
29053 "enum" : [
29054 "none",
29055 "lba",
29056 "auto"
29057 ],
44660702
DM
29058 "optional" : 1,
29059 "type" : "string"
29060 },
29061 "volume" : {
29062 "alias" : "file"
29063 },
29064 "werror" : {
29065 "description" : "Write error action.",
29066 "enum" : [
29067 "enospc",
29068 "ignore",
29069 "report",
29070 "stop"
29071 ],
44660702
DM
29072 "optional" : 1,
29073 "type" : "string"
95895385
TL
29074 },
29075 "wwn" : {
29076 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
29077 "format_description" : "wwn",
29078 "optional" : 1,
29079 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
29080 "type" : "string"
56122987
DM
29081 }
29082 },
7aacca6f 29083 "optional" : 1,
4bd7df8b 29084 "type" : "string",
7af2edf9 29085 "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>] [,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>] [,werror=<enum>] [,wwn=<wwn>]"
56122987 29086 },
44660702
DM
29087 "scsihw" : {
29088 "default" : "lsi",
c2993fe5 29089 "description" : "SCSI controller model",
44660702
DM
29090 "enum" : [
29091 "lsi",
29092 "lsi53c810",
29093 "virtio-scsi-pci",
29094 "virtio-scsi-single",
29095 "megasas",
29096 "pvscsi"
29097 ],
7aacca6f 29098 "optional" : 1,
44660702 29099 "type" : "string"
7aacca6f 29100 },
27a7acb2 29101 "searchdomain" : {
de786b48 29102 "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
29103 "optional" : 1,
29104 "type" : "string",
29105 "typetext" : "<string>"
29106 },
44660702 29107 "serial[n]" : {
c2993fe5 29108 "description" : "Create a serial device inside the VM (n is 0 to 3)",
44660702
DM
29109 "optional" : 1,
29110 "pattern" : "(/dev/.+|socket)",
c2993fe5 29111 "type" : "string",
4772952b 29112 "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
29113 },
29114 "shares" : {
29115 "default" : 1000,
5da3d723 29116 "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
29117 "maximum" : 50000,
29118 "minimum" : 0,
29119 "optional" : 1,
4bd7df8b 29120 "type" : "integer",
013dc89f 29121 "typetext" : "<integer> (0 - 50000)"
44660702
DM
29122 },
29123 "smbios1" : {
29124 "description" : "Specify SMBIOS type 1 fields.",
29125 "format" : "pve-qm-smbios1",
1e3f8156 29126 "maxLength" : 512,
7aacca6f 29127 "optional" : 1,
4bd7df8b 29128 "type" : "string",
1e3f8156 29129 "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
29130 },
29131 "smp" : {
44660702 29132 "default" : 1,
7aacca6f 29133 "description" : "The number of CPUs. Please use option -sockets instead.",
44660702 29134 "minimum" : 1,
56122987 29135 "optional" : 1,
4bd7df8b 29136 "type" : "integer",
013dc89f 29137 "typetext" : "<integer> (1 - N)"
44660702
DM
29138 },
29139 "sockets" : {
7aacca6f 29140 "default" : 1,
44660702
DM
29141 "description" : "The number of CPU sockets.",
29142 "minimum" : 1,
29143 "optional" : 1,
4bd7df8b 29144 "type" : "integer",
013dc89f 29145 "typetext" : "<integer> (1 - N)"
7aacca6f 29146 },
1c532546
TL
29147 "spice_enhancements" : {
29148 "description" : "Configure additional enhancements for SPICE.",
29149 "format" : {
29150 "foldersharing" : {
29151 "default" : "0",
29152 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
29153 "optional" : 1,
29154 "type" : "boolean"
29155 },
29156 "videostreaming" : {
29157 "default" : "off",
29158 "description" : "Enable video streaming. Uses compression for detected video streams.",
29159 "enum" : [
29160 "off",
29161 "all",
29162 "filter"
29163 ],
29164 "optional" : 1,
29165 "type" : "string"
29166 }
29167 },
29168 "optional" : 1,
29169 "type" : "string",
29170 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
29171 },
27a7acb2
DM
29172 "sshkeys" : {
29173 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
29174 "format" : "urlencoded",
29175 "optional" : 1,
29176 "type" : "string",
29177 "typetext" : "<string>"
29178 },
5da3d723
TL
29179 "start" : {
29180 "default" : 0,
29181 "description" : "Start VM after it was created successfully.",
29182 "optional" : 1,
29183 "type" : "boolean",
29184 "typetext" : "<boolean>"
29185 },
44660702
DM
29186 "startdate" : {
29187 "default" : "now",
4772952b 29188 "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
29189 "optional" : 1,
29190 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
29191 "type" : "string",
29192 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
29193 },
29194 "startup" : {
29195 "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.",
29196 "format" : "pve-startup-order",
29197 "optional" : 1,
29198 "type" : "string",
29199 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
29200 },
29201 "storage" : {
29202 "description" : "Default storage.",
29203 "format" : "pve-storage-id",
7aacca6f 29204 "optional" : 1,
013dc89f
DM
29205 "type" : "string",
29206 "typetext" : "<string>"
56122987 29207 },
44660702
DM
29208 "tablet" : {
29209 "default" : 1,
c2993fe5 29210 "description" : "Enable/disable the USB tablet device.",
56122987 29211 "optional" : 1,
c2993fe5 29212 "type" : "boolean",
013dc89f 29213 "typetext" : "<boolean>",
4772952b 29214 "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 29215 },
5c1699e5
TL
29216 "tags" : {
29217 "description" : "Tags of the VM. This is only meta information.",
29218 "format" : "pve-tag-list",
29219 "optional" : 1,
29220 "type" : "string",
29221 "typetext" : "<string>"
29222 },
44660702
DM
29223 "tdf" : {
29224 "default" : 0,
29225 "description" : "Enable/disable time drift fix.",
29226 "optional" : 1,
013dc89f
DM
29227 "type" : "boolean",
29228 "typetext" : "<boolean>"
7aacca6f
DM
29229 },
29230 "template" : {
7aacca6f 29231 "default" : 0,
44660702 29232 "description" : "Enable/disable Template.",
7aacca6f 29233 "optional" : 1,
013dc89f
DM
29234 "type" : "boolean",
29235 "typetext" : "<boolean>"
7aacca6f 29236 },
5370fa8c 29237 "tpmstate0" : {
7af2edf9 29238 "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
29239 "format" : {
29240 "file" : {
29241 "default_key" : 1,
29242 "description" : "The drive's backing volume.",
29243 "format" : "pve-volume-id-or-qm-path",
29244 "format_description" : "volume",
29245 "type" : "string"
29246 },
7af2edf9
TL
29247 "import-from" : {
29248 "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!",
29249 "format" : "pve-volume-id-or-absolute-path",
29250 "format_description" : "source volume",
29251 "optional" : 1,
29252 "type" : "string"
29253 },
5370fa8c
TL
29254 "size" : {
29255 "description" : "Disk size. This is purely informational and has no effect.",
29256 "format" : "disk-size",
29257 "format_description" : "DiskSize",
29258 "optional" : 1,
29259 "type" : "string"
29260 },
29261 "version" : {
29262 "default" : "v2.0",
29263 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
29264 "enum" : [
29265 "v1.2",
29266 "v2.0"
29267 ],
29268 "optional" : 1,
29269 "type" : "string"
29270 },
29271 "volume" : {
29272 "alias" : "file"
29273 }
29274 },
29275 "optional" : 1,
29276 "type" : "string",
7af2edf9 29277 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 29278 },
44660702
DM
29279 "unique" : {
29280 "description" : "Assign a unique random ethernet address.",
7aacca6f 29281 "optional" : 1,
44660702 29282 "requires" : "archive",
013dc89f
DM
29283 "type" : "boolean",
29284 "typetext" : "<boolean>"
56122987 29285 },
44660702 29286 "unused[n]" : {
c2993fe5 29287 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
29288 "format" : {
29289 "file" : {
29290 "default_key" : 1,
29291 "description" : "The drive's backing volume.",
29292 "format" : "pve-volume-id",
29293 "format_description" : "volume",
29294 "type" : "string"
29295 },
29296 "volume" : {
29297 "alias" : "file"
29298 }
29299 },
7aacca6f 29300 "optional" : 1,
013dc89f 29301 "type" : "string",
c5aa7e14 29302 "typetext" : "[file=]<volume>"
44660702
DM
29303 },
29304 "usb[n]" : {
4e7f60c2 29305 "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 29306 "format" : {
7aacca6f
DM
29307 "host" : {
29308 "default_key" : 1,
499c9b7f 29309 "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 29310 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
29311 "optional" : 1,
29312 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
29313 "type" : "string"
29314 },
29315 "mapping" : {
29316 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
29317 "format" : "pve-configid",
29318 "format_description" : "mapping-id",
29319 "optional" : 1,
44660702 29320 "type" : "string"
7aacca6f 29321 },
56122987 29322 "usb3" : {
c2993fe5 29323 "default" : 0,
4e7f60c2 29324 "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 29325 "optional" : 1,
56122987 29326 "type" : "boolean"
7aacca6f 29327 }
56122987 29328 },
56122987 29329 "optional" : 1,
4bd7df8b 29330 "type" : "string",
499c9b7f 29331 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
56122987 29332 },
44660702
DM
29333 "vcpus" : {
29334 "default" : 0,
29335 "description" : "Number of hotplugged vcpus.",
29336 "minimum" : 1,
56122987 29337 "optional" : 1,
4bd7df8b 29338 "type" : "integer",
013dc89f 29339 "typetext" : "<integer> (1 - N)"
7aacca6f 29340 },
44660702 29341 "vga" : {
e2d681b3
TL
29342 "description" : "Configure the VGA hardware.",
29343 "format" : {
fa22697b
TL
29344 "clipboard" : {
29345 "description" : "Enable a specific clipboard. If not set, depending on the display type the SPICE one will be added.",
29346 "enum" : [
29347 "vnc"
29348 ],
29349 "optional" : 1,
29350 "type" : "string"
29351 },
e2d681b3
TL
29352 "memory" : {
29353 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
29354 "maximum" : 512,
29355 "minimum" : 4,
29356 "optional" : 1,
29357 "type" : "integer"
29358 },
29359 "type" : {
29360 "default" : "std",
29361 "default_key" : 1,
29362 "description" : "Select the VGA type.",
29363 "enum" : [
29364 "cirrus",
29365 "qxl",
29366 "qxl2",
29367 "qxl3",
29368 "qxl4",
5f26e15b 29369 "none",
e2d681b3
TL
29370 "serial0",
29371 "serial1",
29372 "serial2",
29373 "serial3",
29374 "std",
29375 "virtio",
7af2edf9 29376 "virtio-gl",
e2d681b3
TL
29377 "vmware"
29378 ],
29379 "optional" : 1,
29380 "type" : "string"
29381 }
29382 },
44660702 29383 "optional" : 1,
c2993fe5 29384 "type" : "string",
fa22697b 29385 "typetext" : "[[type=]<enum>] [,clipboard=<vnc>] [,memory=<integer>]",
e2d681b3 29386 "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 29387 },
44660702 29388 "virtio[n]" : {
7af2edf9 29389 "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
29390 "format" : {
29391 "aio" : {
29392 "description" : "AIO type to use.",
29393 "enum" : [
29394 "native",
8f4d9c87
TL
29395 "threads",
29396 "io_uring"
44660702 29397 ],
44660702
DM
29398 "optional" : 1,
29399 "type" : "string"
29400 },
29401 "backup" : {
29402 "description" : "Whether the drive should be included when making backups.",
44660702
DM
29403 "optional" : 1,
29404 "type" : "boolean"
29405 },
29406 "bps" : {
de0983cb 29407 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
29408 "format_description" : "bps",
29409 "optional" : 1,
29410 "type" : "integer"
29411 },
de0983cb
DM
29412 "bps_max_length" : {
29413 "description" : "Maximum length of I/O bursts in seconds.",
29414 "format_description" : "seconds",
29415 "minimum" : 1,
29416 "optional" : 1,
29417 "type" : "integer"
29418 },
44660702 29419 "bps_rd" : {
de0983cb 29420 "description" : "Maximum read speed in bytes per second.",
44660702
DM
29421 "format_description" : "bps",
29422 "optional" : 1,
29423 "type" : "integer"
29424 },
de0983cb 29425 "bps_rd_length" : {
5d9c884c
DM
29426 "alias" : "bps_rd_max_length"
29427 },
29428 "bps_rd_max_length" : {
de0983cb
DM
29429 "description" : "Maximum length of read I/O bursts in seconds.",
29430 "format_description" : "seconds",
29431 "minimum" : 1,
29432 "optional" : 1,
29433 "type" : "integer"
29434 },
44660702 29435 "bps_wr" : {
de0983cb 29436 "description" : "Maximum write speed in bytes per second.",
44660702
DM
29437 "format_description" : "bps",
29438 "optional" : 1,
29439 "type" : "integer"
29440 },
de0983cb 29441 "bps_wr_length" : {
5d9c884c
DM
29442 "alias" : "bps_wr_max_length"
29443 },
29444 "bps_wr_max_length" : {
de0983cb
DM
29445 "description" : "Maximum length of write I/O bursts in seconds.",
29446 "format_description" : "seconds",
29447 "minimum" : 1,
29448 "optional" : 1,
29449 "type" : "integer"
29450 },
44660702
DM
29451 "cache" : {
29452 "description" : "The drive's cache mode",
29453 "enum" : [
29454 "none",
29455 "writethrough",
29456 "writeback",
29457 "unsafe",
29458 "directsync"
29459 ],
44660702
DM
29460 "optional" : 1,
29461 "type" : "string"
29462 },
29463 "cyls" : {
29464 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
29465 "optional" : 1,
29466 "type" : "integer"
29467 },
29468 "detect_zeroes" : {
29469 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
29470 "optional" : 1,
29471 "type" : "boolean"
29472 },
29473 "discard" : {
29474 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
29475 "enum" : [
29476 "ignore",
29477 "on"
29478 ],
44660702
DM
29479 "optional" : 1,
29480 "type" : "string"
29481 },
29482 "file" : {
29483 "default_key" : 1,
29484 "description" : "The drive's backing volume.",
29485 "format" : "pve-volume-id-or-qm-path",
29486 "format_description" : "volume",
29487 "type" : "string"
29488 },
29489 "format" : {
29490 "description" : "The drive's backing file's data format.",
29491 "enum" : [
29492 "raw",
29493 "cow",
29494 "qcow",
29495 "qed",
29496 "qcow2",
29497 "vmdk",
29498 "cloop"
29499 ],
44660702
DM
29500 "optional" : 1,
29501 "type" : "string"
29502 },
29503 "heads" : {
29504 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
29505 "optional" : 1,
29506 "type" : "integer"
29507 },
7af2edf9
TL
29508 "import-from" : {
29509 "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!",
29510 "format" : "pve-volume-id-or-absolute-path",
29511 "format_description" : "source volume",
29512 "optional" : 1,
29513 "type" : "string"
29514 },
44660702 29515 "iops" : {
de0983cb 29516 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
29517 "format_description" : "iops",
29518 "optional" : 1,
29519 "type" : "integer"
29520 },
29521 "iops_max" : {
de0983cb 29522 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
29523 "format_description" : "iops",
29524 "optional" : 1,
29525 "type" : "integer"
29526 },
de0983cb
DM
29527 "iops_max_length" : {
29528 "description" : "Maximum length of I/O bursts in seconds.",
29529 "format_description" : "seconds",
29530 "minimum" : 1,
29531 "optional" : 1,
29532 "type" : "integer"
29533 },
44660702 29534 "iops_rd" : {
de0983cb 29535 "description" : "Maximum read I/O in operations per second.",
44660702
DM
29536 "format_description" : "iops",
29537 "optional" : 1,
29538 "type" : "integer"
29539 },
de0983cb 29540 "iops_rd_length" : {
5d9c884c 29541 "alias" : "iops_rd_max_length"
de0983cb 29542 },
44660702 29543 "iops_rd_max" : {
de0983cb 29544 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
29545 "format_description" : "iops",
29546 "optional" : 1,
29547 "type" : "integer"
29548 },
5d9c884c
DM
29549 "iops_rd_max_length" : {
29550 "description" : "Maximum length of read I/O bursts in seconds.",
29551 "format_description" : "seconds",
29552 "minimum" : 1,
29553 "optional" : 1,
29554 "type" : "integer"
29555 },
44660702 29556 "iops_wr" : {
de0983cb 29557 "description" : "Maximum write I/O in operations per second.",
44660702
DM
29558 "format_description" : "iops",
29559 "optional" : 1,
29560 "type" : "integer"
29561 },
de0983cb 29562 "iops_wr_length" : {
5d9c884c 29563 "alias" : "iops_wr_max_length"
de0983cb 29564 },
44660702 29565 "iops_wr_max" : {
de0983cb 29566 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
29567 "format_description" : "iops",
29568 "optional" : 1,
29569 "type" : "integer"
29570 },
5d9c884c
DM
29571 "iops_wr_max_length" : {
29572 "description" : "Maximum length of write I/O bursts in seconds.",
29573 "format_description" : "seconds",
29574 "minimum" : 1,
29575 "optional" : 1,
29576 "type" : "integer"
29577 },
44660702
DM
29578 "iothread" : {
29579 "description" : "Whether to use iothreads for this drive",
44660702
DM
29580 "optional" : 1,
29581 "type" : "boolean"
29582 },
29583 "mbps" : {
de0983cb 29584 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
29585 "format_description" : "mbps",
29586 "optional" : 1,
29587 "type" : "number"
29588 },
29589 "mbps_max" : {
de0983cb 29590 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
29591 "format_description" : "mbps",
29592 "optional" : 1,
29593 "type" : "number"
29594 },
29595 "mbps_rd" : {
de0983cb 29596 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
29597 "format_description" : "mbps",
29598 "optional" : 1,
29599 "type" : "number"
29600 },
29601 "mbps_rd_max" : {
de0983cb 29602 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
29603 "format_description" : "mbps",
29604 "optional" : 1,
29605 "type" : "number"
29606 },
29607 "mbps_wr" : {
de0983cb 29608 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
29609 "format_description" : "mbps",
29610 "optional" : 1,
29611 "type" : "number"
29612 },
29613 "mbps_wr_max" : {
de0983cb 29614 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
29615 "format_description" : "mbps",
29616 "optional" : 1,
29617 "type" : "number"
29618 },
29619 "media" : {
29620 "default" : "disk",
29621 "description" : "The drive's media type.",
29622 "enum" : [
29623 "cdrom",
29624 "disk"
29625 ],
44660702
DM
29626 "optional" : 1,
29627 "type" : "string"
29628 },
5d9c884c
DM
29629 "replicate" : {
29630 "default" : 1,
29631 "description" : "Whether the drive should considered for replication jobs.",
29632 "optional" : 1,
29633 "type" : "boolean"
29634 },
44660702
DM
29635 "rerror" : {
29636 "description" : "Read error action.",
29637 "enum" : [
29638 "ignore",
29639 "report",
29640 "stop"
29641 ],
44660702
DM
29642 "optional" : 1,
29643 "type" : "string"
29644 },
5370fa8c
TL
29645 "ro" : {
29646 "description" : "Whether the drive is read-only.",
29647 "optional" : 1,
29648 "type" : "boolean"
29649 },
44660702
DM
29650 "secs" : {
29651 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
29652 "optional" : 1,
29653 "type" : "integer"
29654 },
29655 "serial" : {
29656 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
29657 "format" : "urlencoded",
29658 "format_description" : "serial",
29659 "maxLength" : 60,
29660 "optional" : 1,
29661 "type" : "string"
29662 },
27a7acb2
DM
29663 "shared" : {
29664 "default" : 0,
29665 "description" : "Mark this locally-managed volume as available on all nodes",
29666 "optional" : 1,
29667 "type" : "boolean",
29668 "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!"
29669 },
44660702
DM
29670 "size" : {
29671 "description" : "Disk size. This is purely informational and has no effect.",
29672 "format" : "disk-size",
f004f5b9 29673 "format_description" : "DiskSize",
44660702
DM
29674 "optional" : 1,
29675 "type" : "string"
29676 },
29677 "snapshot" : {
27a7acb2 29678 "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
29679 "optional" : 1,
29680 "type" : "boolean"
29681 },
29682 "trans" : {
29683 "description" : "Force disk geometry bios translation mode.",
29684 "enum" : [
29685 "none",
29686 "lba",
29687 "auto"
29688 ],
44660702
DM
29689 "optional" : 1,
29690 "type" : "string"
29691 },
29692 "volume" : {
29693 "alias" : "file"
29694 },
29695 "werror" : {
29696 "description" : "Write error action.",
29697 "enum" : [
29698 "enospc",
29699 "ignore",
29700 "report",
29701 "stop"
29702 ],
44660702
DM
29703 "optional" : 1,
29704 "type" : "string"
29705 }
29706 },
29707 "optional" : 1,
4bd7df8b 29708 "type" : "string",
7af2edf9 29709 "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 29710 },
4d47f125
TL
29711 "vmgenid" : {
29712 "default" : "1 (autogenerated)",
29713 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
29714 "format_description" : "UUID",
29715 "optional" : 1,
29716 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
29717 "type" : "string",
4772952b 29718 "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 29719 },
44660702
DM
29720 "vmid" : {
29721 "description" : "The (unique) ID of the VM.",
29722 "format" : "pve-vmid",
8dd66e12
TL
29723 "maximum" : 999999999,
29724 "minimum" : 100,
4bd7df8b 29725 "type" : "integer",
8dd66e12 29726 "typetext" : "<integer> (100 - 999999999)"
44660702 29727 },
2489d6df
WB
29728 "vmstatestorage" : {
29729 "description" : "Default storage for VM state volumes/files.",
29730 "format" : "pve-storage-id",
29731 "optional" : 1,
29732 "type" : "string",
29733 "typetext" : "<string>"
29734 },
44660702 29735 "watchdog" : {
c2993fe5 29736 "description" : "Create a virtual hardware watchdog device.",
44660702 29737 "format" : "pve-qm-watchdog",
7aacca6f 29738 "optional" : 1,
c2993fe5 29739 "type" : "string",
013dc89f 29740 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 29741 "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 29742 }
44660702 29743 }
56122987 29744 },
56122987 29745 "permissions" : {
159464a9 29746 "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 29747 "user" : "all"
56122987 29748 },
44660702
DM
29749 "protected" : 1,
29750 "proxyto" : "node",
56122987 29751 "returns" : {
44660702 29752 "type" : "string"
7aacca6f 29753 }
56122987 29754 }
7aacca6f 29755 },
44660702 29756 "leaf" : 0,
7aacca6f 29757 "path" : "/nodes/{node}/qemu",
44660702 29758 "text" : "qemu"
56122987
DM
29759 },
29760 {
29761 "children" : [
29762 {
56122987
DM
29763 "children" : [
29764 {
56122987 29765 "info" : {
44660702 29766 "GET" : {
e9cd3bd4 29767 "allowtoken" : 1,
44660702
DM
29768 "description" : "Get container configuration.",
29769 "method" : "GET",
29770 "name" : "vm_config",
29771 "parameters" : {
29772 "additionalProperties" : 0,
29773 "properties" : {
1c532546
TL
29774 "current" : {
29775 "default" : 0,
29776 "description" : "Get current values (instead of pending values).",
29777 "optional" : 1,
29778 "type" : "boolean",
29779 "typetext" : "<boolean>"
29780 },
44660702
DM
29781 "node" : {
29782 "description" : "The cluster node name.",
29783 "format" : "pve-node",
013dc89f 29784 "type" : "string",
4d47f125
TL
29785 "typetext" : "<string>"
29786 },
5f26e15b
TL
29787 "snapshot" : {
29788 "description" : "Fetch config values from given snapshot.",
29789 "format" : "pve-configid",
29790 "maxLength" : 40,
29791 "optional" : 1,
29792 "type" : "string",
29793 "typetext" : "<string>"
29794 },
4d47f125
TL
29795 "vmid" : {
29796 "description" : "The (unique) ID of the VM.",
29797 "format" : "pve-vmid",
8dd66e12
TL
29798 "maximum" : 999999999,
29799 "minimum" : 100,
4d47f125 29800 "type" : "integer",
8dd66e12 29801 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
29802 }
29803 }
29804 },
29805 "permissions" : {
29806 "check" : [
29807 "perm",
29808 "/vms/{vmid}",
29809 [
29810 "VM.Audit"
29811 ]
29812 ]
29813 },
29814 "proxyto" : "node",
29815 "returns" : {
29816 "properties" : {
29817 "arch" : {
29818 "default" : "amd64",
29819 "description" : "OS architecture type.",
29820 "enum" : [
29821 "amd64",
29822 "i386",
29823 "arm64",
9d2e98ed
TL
29824 "armhf",
29825 "riscv32",
29826 "riscv64"
4d47f125
TL
29827 ],
29828 "optional" : 1,
29829 "type" : "string"
29830 },
29831 "cmode" : {
29832 "default" : "tty",
29833 "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).",
29834 "enum" : [
29835 "shell",
29836 "console",
29837 "tty"
29838 ],
29839 "optional" : 1,
29840 "type" : "string"
29841 },
29842 "console" : {
29843 "default" : 1,
29844 "description" : "Attach a console device (/dev/console) to the container.",
29845 "optional" : 1,
29846 "type" : "boolean"
29847 },
29848 "cores" : {
29849 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 29850 "maximum" : 8192,
4d47f125
TL
29851 "minimum" : 1,
29852 "optional" : 1,
29853 "type" : "integer"
29854 },
29855 "cpulimit" : {
29856 "default" : 0,
29857 "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 29858 "maximum" : 8192,
4d47f125
TL
29859 "minimum" : 0,
29860 "optional" : 1,
29861 "type" : "number"
29862 },
29863 "cpuunits" : {
4e7f60c2
TL
29864 "default" : "cgroup v1: 1024, cgroup v2: 100",
29865 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
29866 "maximum" : 500000,
29867 "minimum" : 0,
29868 "optional" : 1,
4e7f60c2
TL
29869 "type" : "integer",
29870 "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 29871 },
739d4d64
TL
29872 "debug" : {
29873 "default" : 0,
29874 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
29875 "optional" : 1,
29876 "type" : "boolean"
29877 },
4d47f125 29878 "description" : {
8f4d9c87
TL
29879 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
29880 "maxLength" : 8192,
4d47f125
TL
29881 "optional" : 1,
29882 "type" : "string"
29883 },
fa22697b
TL
29884 "dev[n]" : {
29885 "description" : "Device to pass through to the container",
29886 "format" : {
29887 "gid" : {
29888 "description" : "Group ID to be assigned to the device node",
29889 "minimum" : 0,
29890 "optional" : 1,
29891 "type" : "integer"
29892 },
29893 "mode" : {
29894 "description" : "Access mode to be set on the device node",
29895 "format_description" : "Octal access mode",
29896 "optional" : 1,
29897 "pattern" : "0[0-7]{3}",
29898 "type" : "string"
29899 },
29900 "path" : {
29901 "default_key" : 1,
29902 "description" : "Device to pass through to the container",
29903 "format" : "pve-lxc-dev-string",
29904 "format_description" : "Path",
29905 "optional" : 1,
29906 "type" : "string",
29907 "verbose_description" : "Path to the device to pass through to the container"
29908 },
29909 "uid" : {
29910 "description" : "User ID to be assigned to the device node",
29911 "minimum" : 0,
29912 "optional" : 1,
29913 "type" : "integer"
29914 }
29915 },
29916 "optional" : 1,
29917 "type" : "string"
29918 },
4d47f125
TL
29919 "digest" : {
29920 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
29921 "type" : "string"
29922 },
29923 "features" : {
29924 "description" : "Allow containers access to advanced features.",
29925 "format" : {
c5aa7e14
TL
29926 "force_rw_sys" : {
29927 "default" : 0,
29928 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
29929 "optional" : 1,
29930 "type" : "boolean"
29931 },
e2d681b3
TL
29932 "fuse" : {
29933 "default" : 0,
29934 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
29935 "optional" : 1,
29936 "type" : "boolean"
29937 },
4d47f125
TL
29938 "keyctl" : {
29939 "default" : 0,
29940 "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.",
29941 "optional" : 1,
29942 "type" : "boolean"
29943 },
c5aa7e14
TL
29944 "mknod" : {
29945 "default" : 0,
29946 "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.",
29947 "optional" : 1,
29948 "type" : "boolean"
29949 },
4d47f125
TL
29950 "mount" : {
29951 "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.",
29952 "format_description" : "fstype;fstype;...",
29953 "optional" : 1,
95895385 29954 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
29955 "type" : "string"
29956 },
29957 "nesting" : {
29958 "default" : 0,
29959 "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.",
29960 "optional" : 1,
29961 "type" : "boolean"
29962 }
29963 },
29964 "optional" : 1,
29965 "type" : "string"
29966 },
5f26e15b
TL
29967 "hookscript" : {
29968 "description" : "Script that will be exectued during various steps in the containers lifetime.",
29969 "format" : "pve-volume-id",
29970 "optional" : 1,
29971 "type" : "string"
29972 },
4d47f125
TL
29973 "hostname" : {
29974 "description" : "Set a host name for the container.",
29975 "format" : "dns-name",
29976 "maxLength" : 255,
29977 "optional" : 1,
29978 "type" : "string"
29979 },
29980 "lock" : {
4e7f60c2 29981 "description" : "Lock/unlock the container.",
4d47f125
TL
29982 "enum" : [
29983 "backup",
bb4c8cf8 29984 "create",
1c532546 29985 "destroyed",
4d47f125 29986 "disk",
bb4c8cf8 29987 "fstrim",
4d47f125
TL
29988 "migrate",
29989 "mounted",
29990 "rollback",
29991 "snapshot",
29992 "snapshot-delete"
29993 ],
29994 "optional" : 1,
29995 "type" : "string"
29996 },
29997 "lxc" : {
29998 "description" : "Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).",
29999 "items" : {
30000 "items" : {
30001 "type" : "string"
30002 },
30003 "type" : "array"
30004 },
30005 "optional" : 1,
30006 "type" : "array"
30007 },
30008 "memory" : {
30009 "default" : 512,
4e7f60c2 30010 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
30011 "minimum" : 16,
30012 "optional" : 1,
30013 "type" : "integer"
30014 },
30015 "mp[n]" : {
d2656385 30016 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
30017 "format" : {
30018 "acl" : {
30019 "description" : "Explicitly enable or disable ACL support.",
30020 "optional" : 1,
30021 "type" : "boolean"
30022 },
30023 "backup" : {
30024 "description" : "Whether to include the mount point in backups.",
30025 "optional" : 1,
30026 "type" : "boolean",
30027 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
30028 },
7cbed89a
TL
30029 "mountoptions" : {
30030 "description" : "Extra mount options for rootfs/mps.",
30031 "format_description" : "opt[;opt...]",
30032 "optional" : 1,
c30bb419 30033 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
30034 "type" : "string"
30035 },
4d47f125
TL
30036 "mp" : {
30037 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
30038 "format" : "pve-lxc-mp-string",
30039 "format_description" : "Path",
30040 "type" : "string",
30041 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
30042 },
30043 "quota" : {
30044 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
30045 "optional" : 1,
30046 "type" : "boolean"
30047 },
30048 "replicate" : {
30049 "default" : 1,
30050 "description" : "Will include this volume to a storage replica job.",
30051 "optional" : 1,
30052 "type" : "boolean"
30053 },
30054 "ro" : {
30055 "description" : "Read-only mount point",
30056 "optional" : 1,
30057 "type" : "boolean"
30058 },
30059 "shared" : {
30060 "default" : 0,
30061 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
30062 "optional" : 1,
30063 "type" : "boolean",
30064 "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!"
30065 },
30066 "size" : {
30067 "description" : "Volume size (read only value).",
30068 "format" : "disk-size",
30069 "format_description" : "DiskSize",
30070 "optional" : 1,
30071 "type" : "string"
30072 },
30073 "volume" : {
30074 "default_key" : 1,
30075 "description" : "Volume, device or directory to mount into the container.",
30076 "format" : "pve-lxc-mp-string",
30077 "format_description" : "volume",
30078 "type" : "string"
30079 }
30080 },
30081 "optional" : 1,
30082 "type" : "string"
30083 },
30084 "nameserver" : {
30085 "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 30086 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
30087 "optional" : 1,
30088 "type" : "string"
30089 },
30090 "net[n]" : {
30091 "description" : "Specifies network interfaces for the container.",
30092 "format" : {
30093 "bridge" : {
30094 "description" : "Bridge to attach the network device to.",
30095 "format_description" : "bridge",
30096 "optional" : 1,
30097 "pattern" : "[-_.\\w\\d]+",
30098 "type" : "string"
30099 },
30100 "firewall" : {
30101 "description" : "Controls whether this interface's firewall rules should be used.",
30102 "optional" : 1,
30103 "type" : "boolean"
30104 },
30105 "gw" : {
30106 "description" : "Default gateway for IPv4 traffic.",
30107 "format" : "ipv4",
30108 "format_description" : "GatewayIPv4",
30109 "optional" : 1,
30110 "type" : "string"
30111 },
30112 "gw6" : {
30113 "description" : "Default gateway for IPv6 traffic.",
30114 "format" : "ipv6",
30115 "format_description" : "GatewayIPv6",
30116 "optional" : 1,
30117 "type" : "string"
30118 },
30119 "hwaddr" : {
30120 "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 30121 "format" : "mac-addr",
4d47f125
TL
30122 "format_description" : "XX:XX:XX:XX:XX:XX",
30123 "optional" : 1,
95895385
TL
30124 "type" : "string",
30125 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
30126 },
30127 "ip" : {
30128 "description" : "IPv4 address in CIDR format.",
30129 "format" : "pve-ipv4-config",
30130 "format_description" : "(IPv4/CIDR|dhcp|manual)",
30131 "optional" : 1,
30132 "type" : "string"
30133 },
30134 "ip6" : {
30135 "description" : "IPv6 address in CIDR format.",
30136 "format" : "pve-ipv6-config",
30137 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
30138 "optional" : 1,
30139 "type" : "string"
30140 },
9d2e98ed
TL
30141 "link_down" : {
30142 "description" : "Whether this interface should be disconnected (like pulling the plug).",
30143 "optional" : 1,
30144 "type" : "boolean"
30145 },
4d47f125
TL
30146 "mtu" : {
30147 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 30148 "maximum" : 65535,
4d47f125
TL
30149 "minimum" : 64,
30150 "optional" : 1,
30151 "type" : "integer"
30152 },
30153 "name" : {
30154 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
30155 "format_description" : "string",
30156 "pattern" : "[-_.\\w\\d]+",
30157 "type" : "string"
30158 },
30159 "rate" : {
30160 "description" : "Apply rate limiting to the interface",
30161 "format_description" : "mbps",
30162 "optional" : 1,
30163 "type" : "number"
30164 },
30165 "tag" : {
30166 "description" : "VLAN tag for this interface.",
30167 "maximum" : 4094,
30168 "minimum" : 1,
30169 "optional" : 1,
30170 "type" : "integer"
30171 },
30172 "trunks" : {
30173 "description" : "VLAN ids to pass through the interface",
30174 "format_description" : "vlanid[;vlanid...]",
30175 "optional" : 1,
30176 "pattern" : "(?^:\\d+(?:;\\d+)*)",
30177 "type" : "string"
30178 },
30179 "type" : {
30180 "description" : "Network interface type.",
30181 "enum" : [
30182 "veth"
30183 ],
30184 "optional" : 1,
30185 "type" : "string"
30186 }
30187 },
30188 "optional" : 1,
30189 "type" : "string"
30190 },
30191 "onboot" : {
30192 "default" : 0,
4e7f60c2 30193 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
30194 "optional" : 1,
30195 "type" : "boolean"
30196 },
30197 "ostype" : {
30198 "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.",
30199 "enum" : [
30200 "debian",
d2656385 30201 "devuan",
4d47f125
TL
30202 "ubuntu",
30203 "centos",
30204 "fedora",
30205 "opensuse",
30206 "archlinux",
30207 "alpine",
30208 "gentoo",
7af2edf9 30209 "nixos",
4d47f125
TL
30210 "unmanaged"
30211 ],
30212 "optional" : 1,
30213 "type" : "string"
30214 },
30215 "protection" : {
30216 "default" : 0,
30217 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
30218 "optional" : 1,
30219 "type" : "boolean"
30220 },
30221 "rootfs" : {
30222 "description" : "Use volume as container root.",
30223 "format" : {
30224 "acl" : {
30225 "description" : "Explicitly enable or disable ACL support.",
30226 "optional" : 1,
30227 "type" : "boolean"
30228 },
7cbed89a
TL
30229 "mountoptions" : {
30230 "description" : "Extra mount options for rootfs/mps.",
30231 "format_description" : "opt[;opt...]",
30232 "optional" : 1,
c30bb419 30233 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
30234 "type" : "string"
30235 },
4d47f125
TL
30236 "quota" : {
30237 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
30238 "optional" : 1,
30239 "type" : "boolean"
30240 },
30241 "replicate" : {
30242 "default" : 1,
30243 "description" : "Will include this volume to a storage replica job.",
30244 "optional" : 1,
30245 "type" : "boolean"
30246 },
30247 "ro" : {
30248 "description" : "Read-only mount point",
30249 "optional" : 1,
30250 "type" : "boolean"
30251 },
30252 "shared" : {
30253 "default" : 0,
30254 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
30255 "optional" : 1,
30256 "type" : "boolean",
30257 "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!"
30258 },
30259 "size" : {
30260 "description" : "Volume size (read only value).",
30261 "format" : "disk-size",
30262 "format_description" : "DiskSize",
30263 "optional" : 1,
30264 "type" : "string"
30265 },
30266 "volume" : {
30267 "default_key" : 1,
30268 "description" : "Volume, device or directory to mount into the container.",
30269 "format" : "pve-lxc-mp-string",
30270 "format_description" : "volume",
30271 "type" : "string"
30272 }
30273 },
30274 "optional" : 1,
30275 "type" : "string"
30276 },
30277 "searchdomain" : {
30278 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
30279 "format" : "dns-name-list",
30280 "optional" : 1,
30281 "type" : "string"
30282 },
30283 "startup" : {
30284 "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.",
30285 "format" : "pve-startup-order",
30286 "optional" : 1,
30287 "type" : "string",
30288 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
30289 },
30290 "swap" : {
30291 "default" : 512,
4e7f60c2 30292 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
30293 "minimum" : 0,
30294 "optional" : 1,
30295 "type" : "integer"
30296 },
5c1699e5
TL
30297 "tags" : {
30298 "description" : "Tags of the Container. This is only meta information.",
30299 "format" : "pve-tag-list",
30300 "optional" : 1,
30301 "type" : "string"
30302 },
4d47f125
TL
30303 "template" : {
30304 "default" : 0,
30305 "description" : "Enable/disable Template.",
30306 "optional" : 1,
30307 "type" : "boolean"
44660702 30308 },
04d22a9f
TL
30309 "timezone" : {
30310 "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",
30311 "format" : "pve-ct-timezone",
30312 "optional" : 1,
30313 "type" : "string"
30314 },
4d47f125
TL
30315 "tty" : {
30316 "default" : 2,
30317 "description" : "Specify the number of tty available to the container",
30318 "maximum" : 6,
30319 "minimum" : 0,
30320 "optional" : 1,
30321 "type" : "integer"
30322 },
30323 "unprivileged" : {
30324 "default" : 0,
30325 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
30326 "optional" : 1,
30327 "type" : "boolean"
30328 },
30329 "unused[n]" : {
30330 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
30331 "format" : {
30332 "volume" : {
30333 "default_key" : 1,
30334 "description" : "The volume that is not used currently.",
30335 "format" : "pve-volume-id",
30336 "format_description" : "volume",
30337 "type" : "string"
30338 }
30339 },
4d47f125 30340 "optional" : 1,
44660702
DM
30341 "type" : "string"
30342 }
30343 },
30344 "type" : "object"
30345 }
30346 },
56122987 30347 "PUT" : {
e9cd3bd4 30348 "allowtoken" : 1,
44660702
DM
30349 "description" : "Set container options.",
30350 "method" : "PUT",
30351 "name" : "update_vm",
56122987 30352 "parameters" : {
44660702 30353 "additionalProperties" : 0,
56122987 30354 "properties" : {
44660702
DM
30355 "arch" : {
30356 "default" : "amd64",
30357 "description" : "OS architecture type.",
30358 "enum" : [
30359 "amd64",
4d47f125
TL
30360 "i386",
30361 "arm64",
9d2e98ed
TL
30362 "armhf",
30363 "riscv32",
30364 "riscv64"
44660702 30365 ],
7aacca6f 30366 "optional" : 1,
44660702
DM
30367 "type" : "string"
30368 },
30369 "cmode" : {
7aacca6f 30370 "default" : "tty",
44660702 30371 "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
30372 "enum" : [
30373 "shell",
30374 "console",
30375 "tty"
30376 ],
44660702
DM
30377 "optional" : 1,
30378 "type" : "string"
7aacca6f 30379 },
44660702
DM
30380 "console" : {
30381 "default" : 1,
30382 "description" : "Attach a console device (/dev/console) to the container.",
7aacca6f 30383 "optional" : 1,
013dc89f
DM
30384 "type" : "boolean",
30385 "typetext" : "<boolean>"
7aacca6f 30386 },
de0983cb
DM
30387 "cores" : {
30388 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 30389 "maximum" : 8192,
de0983cb
DM
30390 "minimum" : 1,
30391 "optional" : 1,
30392 "type" : "integer",
4772952b 30393 "typetext" : "<integer> (1 - 8192)"
de0983cb 30394 },
44660702
DM
30395 "cpulimit" : {
30396 "default" : 0,
30397 "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 30398 "maximum" : 8192,
7aacca6f 30399 "minimum" : 0,
7aacca6f 30400 "optional" : 1,
4bd7df8b 30401 "type" : "number",
4772952b 30402 "typetext" : "<number> (0 - 8192)"
7aacca6f 30403 },
44660702 30404 "cpuunits" : {
4e7f60c2
TL
30405 "default" : "cgroup v1: 1024, cgroup v2: 100",
30406 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
44660702
DM
30407 "maximum" : 500000,
30408 "minimum" : 0,
30409 "optional" : 1,
4bd7df8b 30410 "type" : "integer",
4e7f60c2
TL
30411 "typetext" : "<integer> (0 - 500000)",
30412 "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 30413 },
739d4d64
TL
30414 "debug" : {
30415 "default" : 0,
30416 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
30417 "optional" : 1,
30418 "type" : "boolean",
30419 "typetext" : "<boolean>"
30420 },
44660702
DM
30421 "delete" : {
30422 "description" : "A list of settings you want to delete.",
30423 "format" : "pve-configid-list",
7aacca6f 30424 "optional" : 1,
013dc89f
DM
30425 "type" : "string",
30426 "typetext" : "<string>"
7aacca6f 30427 },
44660702 30428 "description" : {
8f4d9c87
TL
30429 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
30430 "maxLength" : 8192,
7aacca6f 30431 "optional" : 1,
013dc89f
DM
30432 "type" : "string",
30433 "typetext" : "<string>"
7aacca6f 30434 },
fa22697b
TL
30435 "dev[n]" : {
30436 "description" : "Device to pass through to the container",
30437 "format" : {
30438 "gid" : {
30439 "description" : "Group ID to be assigned to the device node",
30440 "minimum" : 0,
30441 "optional" : 1,
30442 "type" : "integer"
30443 },
30444 "mode" : {
30445 "description" : "Access mode to be set on the device node",
30446 "format_description" : "Octal access mode",
30447 "optional" : 1,
30448 "pattern" : "0[0-7]{3}",
30449 "type" : "string"
30450 },
30451 "path" : {
30452 "default_key" : 1,
30453 "description" : "Device to pass through to the container",
30454 "format" : "pve-lxc-dev-string",
30455 "format_description" : "Path",
30456 "optional" : 1,
30457 "type" : "string",
30458 "verbose_description" : "Path to the device to pass through to the container"
30459 },
30460 "uid" : {
30461 "description" : "User ID to be assigned to the device node",
30462 "minimum" : 0,
30463 "optional" : 1,
30464 "type" : "integer"
30465 }
30466 },
30467 "optional" : 1,
30468 "type" : "string",
30469 "typetext" : "[[path=]<Path>] [,gid=<integer>] [,mode=<Octal access mode>] [,uid=<integer>]"
30470 },
44660702
DM
30471 "digest" : {
30472 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30473 "maxLength" : 40,
7aacca6f 30474 "optional" : 1,
013dc89f
DM
30475 "type" : "string",
30476 "typetext" : "<string>"
7aacca6f 30477 },
4d47f125
TL
30478 "features" : {
30479 "description" : "Allow containers access to advanced features.",
30480 "format" : {
c5aa7e14
TL
30481 "force_rw_sys" : {
30482 "default" : 0,
30483 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
30484 "optional" : 1,
30485 "type" : "boolean"
30486 },
e2d681b3
TL
30487 "fuse" : {
30488 "default" : 0,
30489 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
30490 "optional" : 1,
30491 "type" : "boolean"
30492 },
4d47f125
TL
30493 "keyctl" : {
30494 "default" : 0,
30495 "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.",
30496 "optional" : 1,
30497 "type" : "boolean"
30498 },
c5aa7e14
TL
30499 "mknod" : {
30500 "default" : 0,
30501 "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.",
30502 "optional" : 1,
30503 "type" : "boolean"
30504 },
4d47f125
TL
30505 "mount" : {
30506 "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.",
30507 "format_description" : "fstype;fstype;...",
30508 "optional" : 1,
95895385 30509 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
30510 "type" : "string"
30511 },
30512 "nesting" : {
30513 "default" : 0,
30514 "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.",
30515 "optional" : 1,
30516 "type" : "boolean"
30517 }
30518 },
30519 "optional" : 1,
30520 "type" : "string",
c5aa7e14 30521 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
4d47f125 30522 },
5f26e15b
TL
30523 "hookscript" : {
30524 "description" : "Script that will be exectued during various steps in the containers lifetime.",
30525 "format" : "pve-volume-id",
30526 "optional" : 1,
30527 "type" : "string",
30528 "typetext" : "<string>"
30529 },
44660702
DM
30530 "hostname" : {
30531 "description" : "Set a host name for the container.",
30532 "format" : "dns-name",
30533 "maxLength" : 255,
56122987 30534 "optional" : 1,
013dc89f
DM
30535 "type" : "string",
30536 "typetext" : "<string>"
44660702
DM
30537 },
30538 "lock" : {
4e7f60c2 30539 "description" : "Lock/unlock the container.",
44660702 30540 "enum" : [
44660702 30541 "backup",
bb4c8cf8 30542 "create",
1c532546 30543 "destroyed",
4d47f125 30544 "disk",
bb4c8cf8 30545 "fstrim",
4d47f125
TL
30546 "migrate",
30547 "mounted",
30548 "rollback",
44660702 30549 "snapshot",
4d47f125 30550 "snapshot-delete"
44660702
DM
30551 ],
30552 "optional" : 1,
30553 "type" : "string"
30554 },
30555 "memory" : {
30556 "default" : 512,
4e7f60c2 30557 "description" : "Amount of RAM for the container in MB.",
44660702
DM
30558 "minimum" : 16,
30559 "optional" : 1,
4bd7df8b 30560 "type" : "integer",
013dc89f 30561 "typetext" : "<integer> (16 - N)"
7aacca6f
DM
30562 },
30563 "mp[n]" : {
d2656385 30564 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
7aacca6f 30565 "format" : {
7aacca6f
DM
30566 "acl" : {
30567 "description" : "Explicitly enable or disable ACL support.",
7aacca6f 30568 "optional" : 1,
44660702 30569 "type" : "boolean"
7aacca6f
DM
30570 },
30571 "backup" : {
de0983cb 30572 "description" : "Whether to include the mount point in backups.",
7aacca6f 30573 "optional" : 1,
4bd7df8b 30574 "type" : "boolean",
de0983cb 30575 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
7aacca6f 30576 },
7cbed89a
TL
30577 "mountoptions" : {
30578 "description" : "Extra mount options for rootfs/mps.",
30579 "format_description" : "opt[;opt...]",
30580 "optional" : 1,
c30bb419 30581 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
30582 "type" : "string"
30583 },
7aacca6f 30584 "mp" : {
de0983cb 30585 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
7aacca6f 30586 "format" : "pve-lxc-mp-string",
44660702 30587 "format_description" : "Path",
4bd7df8b 30588 "type" : "string",
de0983cb 30589 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
44660702 30590 },
5d9c884c
DM
30591 "quota" : {
30592 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
30593 "optional" : 1,
30594 "type" : "boolean"
30595 },
30596 "replicate" : {
30597 "default" : 1,
30598 "description" : "Will include this volume to a storage replica job.",
44660702
DM
30599 "optional" : 1,
30600 "type" : "boolean"
30601 },
30602 "ro" : {
de0983cb 30603 "description" : "Read-only mount point",
44660702
DM
30604 "optional" : 1,
30605 "type" : "boolean"
30606 },
de0983cb
DM
30607 "shared" : {
30608 "default" : 0,
30609 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
30610 "optional" : 1,
30611 "type" : "boolean",
30612 "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!"
30613 },
44660702
DM
30614 "size" : {
30615 "description" : "Volume size (read only value).",
30616 "format" : "disk-size",
30617 "format_description" : "DiskSize",
30618 "optional" : 1,
30619 "type" : "string"
30620 },
30621 "volume" : {
30622 "default_key" : 1,
30623 "description" : "Volume, device or directory to mount into the container.",
30624 "format" : "pve-lxc-mp-string",
30625 "format_description" : "volume",
30626 "type" : "string"
30627 }
30628 },
7aacca6f 30629 "optional" : 1,
4bd7df8b 30630 "type" : "string",
7cbed89a 30631 "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 30632 },
44660702
DM
30633 "nameserver" : {
30634 "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 30635 "format" : "lxc-ip-with-ll-iface-list",
56122987 30636 "optional" : 1,
013dc89f
DM
30637 "type" : "string",
30638 "typetext" : "<string>"
56122987
DM
30639 },
30640 "net[n]" : {
44660702 30641 "description" : "Specifies network interfaces for the container.",
56122987 30642 "format" : {
44660702
DM
30643 "bridge" : {
30644 "description" : "Bridge to attach the network device to.",
f004f5b9 30645 "format_description" : "bridge",
56122987 30646 "optional" : 1,
44660702
DM
30647 "pattern" : "[-_.\\w\\d]+",
30648 "type" : "string"
56122987 30649 },
44660702
DM
30650 "firewall" : {
30651 "description" : "Controls whether this interface's firewall rules should be used.",
56122987 30652 "optional" : 1,
44660702 30653 "type" : "boolean"
56122987 30654 },
44660702
DM
30655 "gw" : {
30656 "description" : "Default gateway for IPv4 traffic.",
30657 "format" : "ipv4",
30658 "format_description" : "GatewayIPv4",
56122987 30659 "optional" : 1,
44660702 30660 "type" : "string"
56122987
DM
30661 },
30662 "gw6" : {
7aacca6f 30663 "description" : "Default gateway for IPv6 traffic.",
44660702
DM
30664 "format" : "ipv6",
30665 "format_description" : "GatewayIPv6",
7aacca6f 30666 "optional" : 1,
56122987
DM
30667 "type" : "string"
30668 },
44660702 30669 "hwaddr" : {
f004f5b9 30670 "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 30671 "format" : "mac-addr",
f004f5b9 30672 "format_description" : "XX:XX:XX:XX:XX:XX",
44660702 30673 "optional" : 1,
95895385
TL
30674 "type" : "string",
30675 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
44660702
DM
30676 },
30677 "ip" : {
30678 "description" : "IPv4 address in CIDR format.",
30679 "format" : "pve-ipv4-config",
2489d6df 30680 "format_description" : "(IPv4/CIDR|dhcp|manual)",
56122987 30681 "optional" : 1,
44660702 30682 "type" : "string"
56122987 30683 },
7aacca6f 30684 "ip6" : {
7aacca6f
DM
30685 "description" : "IPv6 address in CIDR format.",
30686 "format" : "pve-ipv6-config",
2489d6df 30687 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
7aacca6f 30688 "optional" : 1,
44660702 30689 "type" : "string"
56122987 30690 },
9d2e98ed
TL
30691 "link_down" : {
30692 "description" : "Whether this interface should be disconnected (like pulling the plug).",
30693 "optional" : 1,
30694 "type" : "boolean"
30695 },
44660702
DM
30696 "mtu" : {
30697 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 30698 "maximum" : 65535,
44660702 30699 "minimum" : 64,
56122987 30700 "optional" : 1,
44660702 30701 "type" : "integer"
56122987
DM
30702 },
30703 "name" : {
44660702 30704 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
f004f5b9 30705 "format_description" : "string",
56122987 30706 "pattern" : "[-_.\\w\\d]+",
44660702 30707 "type" : "string"
56122987 30708 },
44660702
DM
30709 "rate" : {
30710 "description" : "Apply rate limiting to the interface",
30711 "format_description" : "mbps",
56122987 30712 "optional" : 1,
44660702 30713 "type" : "number"
7aacca6f 30714 },
44660702
DM
30715 "tag" : {
30716 "description" : "VLAN tag for this interface.",
4bd7df8b
DM
30717 "maximum" : 4094,
30718 "minimum" : 1,
56122987 30719 "optional" : 1,
7aacca6f 30720 "type" : "integer"
56122987 30721 },
44660702
DM
30722 "trunks" : {
30723 "description" : "VLAN ids to pass through the interface",
30724 "format_description" : "vlanid[;vlanid...]",
30725 "optional" : 1,
30726 "pattern" : "(?^:\\d+(?:;\\d+)*)",
30727 "type" : "string"
30728 },
30729 "type" : {
30730 "description" : "Network interface type.",
30731 "enum" : [
30732 "veth"
30733 ],
56122987 30734 "optional" : 1,
44660702 30735 "type" : "string"
56122987
DM
30736 }
30737 },
7aacca6f 30738 "optional" : 1,
4bd7df8b 30739 "type" : "string",
9d2e98ed 30740 "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 30741 },
44660702
DM
30742 "node" : {
30743 "description" : "The cluster node name.",
30744 "format" : "pve-node",
013dc89f
DM
30745 "type" : "string",
30746 "typetext" : "<string>"
56122987 30747 },
44660702
DM
30748 "onboot" : {
30749 "default" : 0,
4e7f60c2 30750 "description" : "Specifies whether a container will be started during system bootup.",
56122987 30751 "optional" : 1,
013dc89f
DM
30752 "type" : "boolean",
30753 "typetext" : "<boolean>"
56122987 30754 },
44660702
DM
30755 "ostype" : {
30756 "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.",
30757 "enum" : [
30758 "debian",
d2656385 30759 "devuan",
44660702
DM
30760 "ubuntu",
30761 "centos",
30762 "fedora",
30763 "opensuse",
30764 "archlinux",
30765 "alpine",
57b78691 30766 "gentoo",
7af2edf9 30767 "nixos",
44660702
DM
30768 "unmanaged"
30769 ],
56122987 30770 "optional" : 1,
44660702 30771 "type" : "string"
56122987 30772 },
44660702
DM
30773 "protection" : {
30774 "default" : 0,
30775 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
56122987 30776 "optional" : 1,
013dc89f
DM
30777 "type" : "boolean",
30778 "typetext" : "<boolean>"
56122987 30779 },
1c532546
TL
30780 "revert" : {
30781 "description" : "Revert a pending change.",
30782 "format" : "pve-configid-list",
30783 "optional" : 1,
30784 "type" : "string",
30785 "typetext" : "<string>"
30786 },
7aacca6f
DM
30787 "rootfs" : {
30788 "description" : "Use volume as container root.",
56122987
DM
30789 "format" : {
30790 "acl" : {
44660702 30791 "description" : "Explicitly enable or disable ACL support.",
7aacca6f
DM
30792 "optional" : 1,
30793 "type" : "boolean"
56122987 30794 },
7cbed89a
TL
30795 "mountoptions" : {
30796 "description" : "Extra mount options for rootfs/mps.",
30797 "format_description" : "opt[;opt...]",
30798 "optional" : 1,
c30bb419 30799 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
30800 "type" : "string"
30801 },
44660702
DM
30802 "quota" : {
30803 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
44660702
DM
30804 "optional" : 1,
30805 "type" : "boolean"
30806 },
5d9c884c
DM
30807 "replicate" : {
30808 "default" : 1,
30809 "description" : "Will include this volume to a storage replica job.",
30810 "optional" : 1,
30811 "type" : "boolean"
30812 },
44660702 30813 "ro" : {
de0983cb 30814 "description" : "Read-only mount point",
56122987 30815 "optional" : 1,
44660702
DM
30816 "type" : "boolean"
30817 },
de0983cb
DM
30818 "shared" : {
30819 "default" : 0,
30820 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
30821 "optional" : 1,
30822 "type" : "boolean",
30823 "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!"
30824 },
44660702 30825 "size" : {
7aacca6f 30826 "description" : "Volume size (read only value).",
44660702 30827 "format" : "disk-size",
56122987 30828 "format_description" : "DiskSize",
56122987 30829 "optional" : 1,
44660702 30830 "type" : "string"
7aacca6f
DM
30831 },
30832 "volume" : {
7aacca6f
DM
30833 "default_key" : 1,
30834 "description" : "Volume, device or directory to mount into the container.",
44660702
DM
30835 "format" : "pve-lxc-mp-string",
30836 "format_description" : "volume",
7aacca6f 30837 "type" : "string"
56122987 30838 }
44660702
DM
30839 },
30840 "optional" : 1,
4bd7df8b 30841 "type" : "string",
7cbed89a 30842 "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
30843 },
30844 "searchdomain" : {
30845 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
30846 "format" : "dns-name-list",
30847 "optional" : 1,
013dc89f
DM
30848 "type" : "string",
30849 "typetext" : "<string>"
44660702
DM
30850 },
30851 "startup" : {
30852 "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.",
30853 "format" : "pve-startup-order",
30854 "optional" : 1,
30855 "type" : "string",
30856 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
30857 },
30858 "swap" : {
30859 "default" : 512,
4e7f60c2 30860 "description" : "Amount of SWAP for the container in MB.",
44660702
DM
30861 "minimum" : 0,
30862 "optional" : 1,
4bd7df8b 30863 "type" : "integer",
013dc89f 30864 "typetext" : "<integer> (0 - N)"
56122987 30865 },
5c1699e5
TL
30866 "tags" : {
30867 "description" : "Tags of the Container. This is only meta information.",
30868 "format" : "pve-tag-list",
30869 "optional" : 1,
30870 "type" : "string",
30871 "typetext" : "<string>"
30872 },
56122987 30873 "template" : {
44660702 30874 "default" : 0,
7aacca6f 30875 "description" : "Enable/disable Template.",
56122987 30876 "optional" : 1,
013dc89f
DM
30877 "type" : "boolean",
30878 "typetext" : "<boolean>"
56122987 30879 },
04d22a9f
TL
30880 "timezone" : {
30881 "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",
30882 "format" : "pve-ct-timezone",
30883 "optional" : 1,
30884 "type" : "string",
30885 "typetext" : "<string>"
30886 },
44660702
DM
30887 "tty" : {
30888 "default" : 2,
30889 "description" : "Specify the number of tty available to the container",
30890 "maximum" : 6,
30891 "minimum" : 0,
30892 "optional" : 1,
4bd7df8b 30893 "type" : "integer",
013dc89f 30894 "typetext" : "<integer> (0 - 6)"
56122987 30895 },
44660702
DM
30896 "unprivileged" : {
30897 "default" : 0,
30898 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
56122987 30899 "optional" : 1,
013dc89f
DM
30900 "type" : "boolean",
30901 "typetext" : "<boolean>"
56122987 30902 },
44660702 30903 "unused[n]" : {
c2993fe5 30904 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
30905 "format" : {
30906 "volume" : {
30907 "default_key" : 1,
30908 "description" : "The volume that is not used currently.",
30909 "format" : "pve-volume-id",
30910 "format_description" : "volume",
30911 "type" : "string"
30912 }
30913 },
56122987 30914 "optional" : 1,
013dc89f 30915 "type" : "string",
c5aa7e14 30916 "typetext" : "[volume=]<volume>"
44660702
DM
30917 },
30918 "vmid" : {
30919 "description" : "The (unique) ID of the VM.",
30920 "format" : "pve-vmid",
8dd66e12
TL
30921 "maximum" : 999999999,
30922 "minimum" : 100,
4bd7df8b 30923 "type" : "integer",
8dd66e12 30924 "typetext" : "<integer> (100 - 999999999)"
56122987 30925 }
44660702 30926 }
56122987 30927 },
56122987
DM
30928 "permissions" : {
30929 "check" : [
30930 "perm",
30931 "/vms/{vmid}",
30932 [
30933 "VM.Config.Disk",
30934 "VM.Config.CPU",
30935 "VM.Config.Memory",
30936 "VM.Config.Network",
30937 "VM.Config.Options"
30938 ],
30939 "any",
30940 1
52e44c50
FG
30941 ],
30942 "description" : "non-volume mount points in rootfs and mp[n] are restricted to root@pam"
56122987 30943 },
44660702
DM
30944 "protected" : 1,
30945 "proxyto" : "node",
56122987
DM
30946 "returns" : {
30947 "type" : "null"
7aacca6f 30948 }
56122987 30949 }
7aacca6f 30950 },
44660702 30951 "leaf" : 1,
7aacca6f 30952 "path" : "/nodes/{node}/lxc/{vmid}/config",
44660702 30953 "text" : "config"
56122987
DM
30954 },
30955 {
56122987
DM
30956 "children" : [
30957 {
30958 "info" : {
30959 "GET" : {
e9cd3bd4 30960 "allowtoken" : 1,
44660702 30961 "description" : "Get virtual machine status.",
7aacca6f 30962 "method" : "GET",
44660702 30963 "name" : "vm_status",
56122987 30964 "parameters" : {
44660702 30965 "additionalProperties" : 0,
56122987 30966 "properties" : {
56122987 30967 "node" : {
44660702 30968 "description" : "The cluster node name.",
56122987 30969 "format" : "pve-node",
013dc89f
DM
30970 "type" : "string",
30971 "typetext" : "<string>"
7aacca6f
DM
30972 },
30973 "vmid" : {
30974 "description" : "The (unique) ID of the VM.",
44660702 30975 "format" : "pve-vmid",
8dd66e12
TL
30976 "maximum" : 999999999,
30977 "minimum" : 100,
4bd7df8b 30978 "type" : "integer",
8dd66e12 30979 "typetext" : "<integer> (100 - 999999999)"
56122987 30980 }
44660702 30981 }
7aacca6f
DM
30982 },
30983 "permissions" : {
30984 "check" : [
30985 "perm",
30986 "/vms/{vmid}",
30987 [
4d47f125
TL
30988 "VM.Audit"
30989 ]
30990 ]
30991 },
30992 "protected" : 1,
30993 "proxyto" : "node",
30994 "returns" : {
30995 "properties" : {
30996 "cpus" : {
30997 "description" : "Maximum usable CPUs.",
30998 "optional" : 1,
30999 "type" : "number"
31000 },
31001 "ha" : {
31002 "description" : "HA manager service status.",
31003 "type" : "object"
31004 },
95895385
TL
31005 "lock" : {
31006 "description" : "The current config lock, if any.",
31007 "optional" : 1,
31008 "type" : "string"
31009 },
4d47f125
TL
31010 "maxdisk" : {
31011 "description" : "Root disk size in bytes.",
31012 "optional" : 1,
31013 "renderer" : "bytes",
31014 "type" : "integer"
31015 },
31016 "maxmem" : {
31017 "description" : "Maximum memory in bytes.",
31018 "optional" : 1,
31019 "renderer" : "bytes",
31020 "type" : "integer"
31021 },
31022 "maxswap" : {
31023 "description" : "Maximum SWAP memory in bytes.",
31024 "optional" : 1,
31025 "renderer" : "bytes",
31026 "type" : "integer"
31027 },
31028 "name" : {
31029 "description" : "Container name.",
31030 "optional" : 1,
31031 "type" : "string"
31032 },
31033 "status" : {
31034 "description" : "LXC Container status.",
31035 "enum" : [
31036 "stopped",
31037 "running"
31038 ],
31039 "type" : "string"
31040 },
5c1699e5
TL
31041 "tags" : {
31042 "description" : "The current configured tags, if any.",
31043 "optional" : 1,
31044 "type" : "string"
31045 },
4d47f125
TL
31046 "uptime" : {
31047 "description" : "Uptime.",
31048 "optional" : 1,
31049 "renderer" : "duration",
31050 "type" : "integer"
31051 },
31052 "vmid" : {
31053 "description" : "The (unique) ID of the VM.",
31054 "format" : "pve-vmid",
8dd66e12
TL
31055 "maximum" : 999999999,
31056 "minimum" : 100,
4d47f125
TL
31057 "type" : "integer"
31058 }
31059 },
31060 "type" : "object"
31061 }
31062 }
31063 },
31064 "leaf" : 1,
31065 "path" : "/nodes/{node}/lxc/{vmid}/status/current",
31066 "text" : "current"
31067 },
31068 {
31069 "info" : {
31070 "POST" : {
e9cd3bd4 31071 "allowtoken" : 1,
4d47f125
TL
31072 "description" : "Start the container.",
31073 "method" : "POST",
31074 "name" : "vm_start",
31075 "parameters" : {
31076 "additionalProperties" : 0,
31077 "properties" : {
739d4d64
TL
31078 "debug" : {
31079 "default" : 0,
31080 "description" : "If set, enables very verbose debug log-level on start.",
31081 "optional" : 1,
31082 "type" : "boolean",
31083 "typetext" : "<boolean>"
31084 },
4d47f125
TL
31085 "node" : {
31086 "description" : "The cluster node name.",
31087 "format" : "pve-node",
31088 "type" : "string",
31089 "typetext" : "<string>"
31090 },
31091 "skiplock" : {
31092 "description" : "Ignore locks - only root is allowed to use this option.",
31093 "optional" : 1,
31094 "type" : "boolean",
31095 "typetext" : "<boolean>"
31096 },
31097 "vmid" : {
31098 "description" : "The (unique) ID of the VM.",
31099 "format" : "pve-vmid",
8dd66e12
TL
31100 "maximum" : 999999999,
31101 "minimum" : 100,
4d47f125 31102 "type" : "integer",
8dd66e12 31103 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31104 }
31105 }
31106 },
31107 "permissions" : {
31108 "check" : [
31109 "perm",
31110 "/vms/{vmid}",
31111 [
31112 "VM.PowerMgmt"
31113 ]
31114 ]
31115 },
31116 "protected" : 1,
31117 "proxyto" : "node",
31118 "returns" : {
31119 "type" : "string"
31120 }
31121 }
31122 },
31123 "leaf" : 1,
31124 "path" : "/nodes/{node}/lxc/{vmid}/status/start",
31125 "text" : "start"
31126 },
31127 {
31128 "info" : {
31129 "POST" : {
e9cd3bd4 31130 "allowtoken" : 1,
4d47f125
TL
31131 "description" : "Stop the container. This will abruptly stop all processes running in the container.",
31132 "method" : "POST",
31133 "name" : "vm_stop",
31134 "parameters" : {
31135 "additionalProperties" : 0,
31136 "properties" : {
31137 "node" : {
31138 "description" : "The cluster node name.",
31139 "format" : "pve-node",
31140 "type" : "string",
31141 "typetext" : "<string>"
31142 },
31143 "skiplock" : {
31144 "description" : "Ignore locks - only root is allowed to use this option.",
31145 "optional" : 1,
31146 "type" : "boolean",
31147 "typetext" : "<boolean>"
31148 },
31149 "vmid" : {
31150 "description" : "The (unique) ID of the VM.",
31151 "format" : "pve-vmid",
8dd66e12
TL
31152 "maximum" : 999999999,
31153 "minimum" : 100,
4d47f125 31154 "type" : "integer",
8dd66e12 31155 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31156 }
31157 }
31158 },
31159 "permissions" : {
31160 "check" : [
31161 "perm",
31162 "/vms/{vmid}",
31163 [
31164 "VM.PowerMgmt"
31165 ]
31166 ]
31167 },
31168 "protected" : 1,
31169 "proxyto" : "node",
31170 "returns" : {
31171 "type" : "string"
31172 }
31173 }
31174 },
31175 "leaf" : 1,
31176 "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
31177 "text" : "stop"
31178 },
31179 {
31180 "info" : {
31181 "POST" : {
e9cd3bd4 31182 "allowtoken" : 1,
4d47f125
TL
31183 "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
31184 "method" : "POST",
31185 "name" : "vm_shutdown",
31186 "parameters" : {
31187 "additionalProperties" : 0,
31188 "properties" : {
31189 "forceStop" : {
31190 "default" : 0,
31191 "description" : "Make sure the Container stops.",
31192 "optional" : 1,
31193 "type" : "boolean",
31194 "typetext" : "<boolean>"
31195 },
31196 "node" : {
31197 "description" : "The cluster node name.",
31198 "format" : "pve-node",
31199 "type" : "string",
31200 "typetext" : "<string>"
31201 },
31202 "timeout" : {
31203 "default" : 60,
31204 "description" : "Wait maximal timeout seconds.",
31205 "minimum" : 0,
31206 "optional" : 1,
31207 "type" : "integer",
31208 "typetext" : "<integer> (0 - N)"
31209 },
31210 "vmid" : {
31211 "description" : "The (unique) ID of the VM.",
31212 "format" : "pve-vmid",
8dd66e12
TL
31213 "maximum" : 999999999,
31214 "minimum" : 100,
4d47f125 31215 "type" : "integer",
8dd66e12 31216 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31217 }
31218 }
31219 },
31220 "permissions" : {
31221 "check" : [
31222 "perm",
31223 "/vms/{vmid}",
31224 [
31225 "VM.PowerMgmt"
7aacca6f
DM
31226 ]
31227 ]
31228 },
44660702 31229 "protected" : 1,
7aacca6f 31230 "proxyto" : "node",
44660702 31231 "returns" : {
4d47f125 31232 "type" : "string"
44660702 31233 }
56122987
DM
31234 }
31235 },
44660702 31236 "leaf" : 1,
4d47f125
TL
31237 "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
31238 "text" : "shutdown"
56122987
DM
31239 },
31240 {
56122987
DM
31241 "info" : {
31242 "POST" : {
e9cd3bd4 31243 "allowtoken" : 1,
5370fa8c 31244 "description" : "Suspend the container. This is experimental.",
44660702 31245 "method" : "POST",
4d47f125 31246 "name" : "vm_suspend",
56122987
DM
31247 "parameters" : {
31248 "additionalProperties" : 0,
31249 "properties" : {
56122987 31250 "node" : {
7aacca6f 31251 "description" : "The cluster node name.",
44660702 31252 "format" : "pve-node",
013dc89f
DM
31253 "type" : "string",
31254 "typetext" : "<string>"
56122987
DM
31255 },
31256 "vmid" : {
7aacca6f 31257 "description" : "The (unique) ID of the VM.",
44660702 31258 "format" : "pve-vmid",
8dd66e12
TL
31259 "maximum" : 999999999,
31260 "minimum" : 100,
4bd7df8b 31261 "type" : "integer",
8dd66e12 31262 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
31263 }
31264 }
31265 },
31266 "permissions" : {
31267 "check" : [
31268 "perm",
31269 "/vms/{vmid}",
31270 [
31271 "VM.PowerMgmt"
31272 ]
31273 ]
31274 },
44660702 31275 "protected" : 1,
7aacca6f 31276 "proxyto" : "node",
44660702
DM
31277 "returns" : {
31278 "type" : "string"
31279 }
31280 }
31281 },
31282 "leaf" : 1,
4d47f125
TL
31283 "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
31284 "text" : "suspend"
44660702
DM
31285 },
31286 {
31287 "info" : {
31288 "POST" : {
e9cd3bd4 31289 "allowtoken" : 1,
4d47f125 31290 "description" : "Resume the container.",
7aacca6f 31291 "method" : "POST",
4d47f125 31292 "name" : "vm_resume",
7aacca6f 31293 "parameters" : {
44660702 31294 "additionalProperties" : 0,
7aacca6f 31295 "properties" : {
44660702
DM
31296 "node" : {
31297 "description" : "The cluster node name.",
31298 "format" : "pve-node",
013dc89f
DM
31299 "type" : "string",
31300 "typetext" : "<string>"
44660702 31301 },
7aacca6f 31302 "vmid" : {
44660702 31303 "description" : "The (unique) ID of the VM.",
7aacca6f 31304 "format" : "pve-vmid",
8dd66e12
TL
31305 "maximum" : 999999999,
31306 "minimum" : 100,
4bd7df8b 31307 "type" : "integer",
8dd66e12 31308 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 31309 }
44660702
DM
31310 }
31311 },
31312 "permissions" : {
31313 "check" : [
31314 "perm",
31315 "/vms/{vmid}",
31316 [
31317 "VM.PowerMgmt"
31318 ]
31319 ]
7aacca6f 31320 },
44660702
DM
31321 "protected" : 1,
31322 "proxyto" : "node",
31323 "returns" : {
31324 "type" : "string"
31325 }
56122987 31326 }
7aacca6f 31327 },
7aacca6f 31328 "leaf" : 1,
4d47f125
TL
31329 "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
31330 "text" : "resume"
5c1699e5
TL
31331 },
31332 {
31333 "info" : {
31334 "POST" : {
e9cd3bd4 31335 "allowtoken" : 1,
5c1699e5
TL
31336 "description" : "Reboot the container by shutting it down, and starting it again. Applies pending changes.",
31337 "method" : "POST",
31338 "name" : "vm_reboot",
31339 "parameters" : {
31340 "additionalProperties" : 0,
31341 "properties" : {
31342 "node" : {
31343 "description" : "The cluster node name.",
31344 "format" : "pve-node",
31345 "type" : "string",
31346 "typetext" : "<string>"
31347 },
31348 "timeout" : {
31349 "description" : "Wait maximal timeout seconds for the shutdown.",
31350 "minimum" : 0,
31351 "optional" : 1,
31352 "type" : "integer",
31353 "typetext" : "<integer> (0 - N)"
31354 },
31355 "vmid" : {
31356 "description" : "The (unique) ID of the VM.",
31357 "format" : "pve-vmid",
8dd66e12
TL
31358 "maximum" : 999999999,
31359 "minimum" : 100,
5c1699e5 31360 "type" : "integer",
8dd66e12 31361 "typetext" : "<integer> (100 - 999999999)"
5c1699e5
TL
31362 }
31363 }
31364 },
31365 "permissions" : {
31366 "check" : [
31367 "perm",
31368 "/vms/{vmid}",
31369 [
31370 "VM.PowerMgmt"
31371 ]
31372 ]
31373 },
31374 "protected" : 1,
31375 "proxyto" : "node",
31376 "returns" : {
31377 "type" : "string"
31378 }
31379 }
31380 },
31381 "leaf" : 1,
31382 "path" : "/nodes/{node}/lxc/{vmid}/status/reboot",
31383 "text" : "reboot"
4d47f125
TL
31384 }
31385 ],
31386 "info" : {
31387 "GET" : {
e9cd3bd4 31388 "allowtoken" : 1,
4d47f125
TL
31389 "description" : "Directory index",
31390 "method" : "GET",
31391 "name" : "vmcmdidx",
31392 "parameters" : {
31393 "additionalProperties" : 0,
31394 "properties" : {
31395 "node" : {
31396 "description" : "The cluster node name.",
31397 "format" : "pve-node",
31398 "type" : "string",
31399 "typetext" : "<string>"
31400 },
31401 "vmid" : {
31402 "description" : "The (unique) ID of the VM.",
31403 "format" : "pve-vmid",
8dd66e12
TL
31404 "maximum" : 999999999,
31405 "minimum" : 100,
4d47f125 31406 "type" : "integer",
8dd66e12 31407 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31408 }
31409 }
31410 },
31411 "permissions" : {
31412 "user" : "all"
31413 },
31414 "proxyto" : "node",
31415 "returns" : {
31416 "items" : {
31417 "properties" : {
31418 "subdir" : {
31419 "type" : "string"
31420 }
31421 },
31422 "type" : "object"
31423 },
31424 "links" : [
31425 {
31426 "href" : "{subdir}",
31427 "rel" : "child"
31428 }
31429 ],
31430 "type" : "array"
31431 }
31432 }
31433 },
31434 "leaf" : 0,
31435 "path" : "/nodes/{node}/lxc/{vmid}/status",
31436 "text" : "status"
31437 },
31438 {
31439 "children" : [
56122987 31440 {
4d47f125
TL
31441 "children" : [
31442 {
31443 "info" : {
31444 "POST" : {
e9cd3bd4 31445 "allowtoken" : 1,
4d47f125
TL
31446 "description" : "Rollback LXC state to specified snapshot.",
31447 "method" : "POST",
31448 "name" : "rollback",
31449 "parameters" : {
31450 "additionalProperties" : 0,
31451 "properties" : {
31452 "node" : {
31453 "description" : "The cluster node name.",
31454 "format" : "pve-node",
31455 "type" : "string",
31456 "typetext" : "<string>"
31457 },
31458 "snapname" : {
31459 "description" : "The name of the snapshot.",
31460 "format" : "pve-configid",
31461 "maxLength" : 40,
31462 "type" : "string",
31463 "typetext" : "<string>"
31464 },
4e7f60c2
TL
31465 "start" : {
31466 "default" : 0,
31467 "description" : "Whether the container should get started after rolling back successfully",
31468 "optional" : 1,
31469 "type" : "boolean",
31470 "typetext" : "<boolean>"
31471 },
4d47f125
TL
31472 "vmid" : {
31473 "description" : "The (unique) ID of the VM.",
31474 "format" : "pve-vmid",
8dd66e12
TL
31475 "maximum" : 999999999,
31476 "minimum" : 100,
4d47f125 31477 "type" : "integer",
8dd66e12 31478 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31479 }
31480 }
31481 },
31482 "permissions" : {
31483 "check" : [
31484 "perm",
31485 "/vms/{vmid}",
31486 [
31487 "VM.Snapshot",
31488 "VM.Snapshot.Rollback"
31489 ],
31490 "any",
31491 1
31492 ]
31493 },
31494 "protected" : 1,
31495 "proxyto" : "node",
31496 "returns" : {
31497 "description" : "the task ID.",
31498 "type" : "string"
31499 }
31500 }
31501 },
31502 "leaf" : 1,
31503 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
31504 "text" : "rollback"
31505 },
31506 {
31507 "info" : {
31508 "GET" : {
e9cd3bd4 31509 "allowtoken" : 1,
4d47f125
TL
31510 "description" : "Get snapshot configuration",
31511 "method" : "GET",
31512 "name" : "get_snapshot_config",
31513 "parameters" : {
31514 "additionalProperties" : 0,
31515 "properties" : {
31516 "node" : {
31517 "description" : "The cluster node name.",
31518 "format" : "pve-node",
31519 "type" : "string",
31520 "typetext" : "<string>"
31521 },
31522 "snapname" : {
31523 "description" : "The name of the snapshot.",
31524 "format" : "pve-configid",
31525 "maxLength" : 40,
31526 "type" : "string",
31527 "typetext" : "<string>"
31528 },
31529 "vmid" : {
31530 "description" : "The (unique) ID of the VM.",
31531 "format" : "pve-vmid",
8dd66e12
TL
31532 "maximum" : 999999999,
31533 "minimum" : 100,
4d47f125 31534 "type" : "integer",
8dd66e12 31535 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31536 }
31537 }
31538 },
31539 "permissions" : {
31540 "check" : [
31541 "perm",
31542 "/vms/{vmid}",
31543 [
31544 "VM.Snapshot",
c5aa7e14
TL
31545 "VM.Snapshot.Rollback",
31546 "VM.Audit"
4d47f125
TL
31547 ],
31548 "any",
31549 1
31550 ]
31551 },
31552 "proxyto" : "node",
31553 "returns" : {
31554 "type" : "object"
31555 }
31556 },
31557 "PUT" : {
e9cd3bd4 31558 "allowtoken" : 1,
4d47f125
TL
31559 "description" : "Update snapshot metadata.",
31560 "method" : "PUT",
31561 "name" : "update_snapshot_config",
31562 "parameters" : {
31563 "additionalProperties" : 0,
31564 "properties" : {
31565 "description" : {
31566 "description" : "A textual description or comment.",
31567 "optional" : 1,
31568 "type" : "string",
31569 "typetext" : "<string>"
31570 },
31571 "node" : {
31572 "description" : "The cluster node name.",
31573 "format" : "pve-node",
31574 "type" : "string",
31575 "typetext" : "<string>"
31576 },
31577 "snapname" : {
31578 "description" : "The name of the snapshot.",
31579 "format" : "pve-configid",
31580 "maxLength" : 40,
31581 "type" : "string",
31582 "typetext" : "<string>"
31583 },
31584 "vmid" : {
31585 "description" : "The (unique) ID of the VM.",
31586 "format" : "pve-vmid",
8dd66e12
TL
31587 "maximum" : 999999999,
31588 "minimum" : 100,
4d47f125 31589 "type" : "integer",
8dd66e12 31590 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31591 }
31592 }
31593 },
31594 "permissions" : {
31595 "check" : [
31596 "perm",
31597 "/vms/{vmid}",
31598 [
31599 "VM.Snapshot"
31600 ]
31601 ]
31602 },
31603 "protected" : 1,
31604 "proxyto" : "node",
31605 "returns" : {
31606 "type" : "null"
31607 }
31608 }
31609 },
31610 "leaf" : 1,
31611 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
31612 "text" : "config"
31613 }
31614 ],
56122987 31615 "info" : {
4d47f125 31616 "DELETE" : {
e9cd3bd4 31617 "allowtoken" : 1,
4d47f125
TL
31618 "description" : "Delete a LXC snapshot.",
31619 "method" : "DELETE",
31620 "name" : "delsnapshot",
56122987 31621 "parameters" : {
44660702 31622 "additionalProperties" : 0,
56122987 31623 "properties" : {
4d47f125
TL
31624 "force" : {
31625 "description" : "For removal from config file, even if removing disk snapshots fails.",
7aacca6f 31626 "optional" : 1,
013dc89f
DM
31627 "type" : "boolean",
31628 "typetext" : "<boolean>"
44660702
DM
31629 },
31630 "node" : {
31631 "description" : "The cluster node name.",
31632 "format" : "pve-node",
013dc89f
DM
31633 "type" : "string",
31634 "typetext" : "<string>"
7aacca6f 31635 },
4d47f125
TL
31636 "snapname" : {
31637 "description" : "The name of the snapshot.",
31638 "format" : "pve-configid",
31639 "maxLength" : 40,
31640 "type" : "string",
31641 "typetext" : "<string>"
56122987
DM
31642 },
31643 "vmid" : {
7aacca6f 31644 "description" : "The (unique) ID of the VM.",
44660702 31645 "format" : "pve-vmid",
8dd66e12
TL
31646 "maximum" : 999999999,
31647 "minimum" : 100,
4bd7df8b 31648 "type" : "integer",
8dd66e12 31649 "typetext" : "<integer> (100 - 999999999)"
56122987 31650 }
44660702 31651 }
56122987
DM
31652 },
31653 "permissions" : {
31654 "check" : [
31655 "perm",
31656 "/vms/{vmid}",
31657 [
4d47f125 31658 "VM.Snapshot"
56122987
DM
31659 ]
31660 ]
31661 },
44660702
DM
31662 "protected" : 1,
31663 "proxyto" : "node",
7aacca6f 31664 "returns" : {
4d47f125 31665 "description" : "the task ID.",
7aacca6f
DM
31666 "type" : "string"
31667 }
4d47f125
TL
31668 },
31669 "GET" : {
e9cd3bd4 31670 "allowtoken" : 1,
4d47f125
TL
31671 "description" : "",
31672 "method" : "GET",
31673 "name" : "snapshot_cmd_idx",
56122987
DM
31674 "parameters" : {
31675 "additionalProperties" : 0,
31676 "properties" : {
44660702
DM
31677 "node" : {
31678 "description" : "The cluster node name.",
31679 "format" : "pve-node",
013dc89f
DM
31680 "type" : "string",
31681 "typetext" : "<string>"
44660702 31682 },
4d47f125
TL
31683 "snapname" : {
31684 "description" : "The name of the snapshot.",
31685 "format" : "pve-configid",
31686 "maxLength" : 40,
013dc89f
DM
31687 "type" : "string",
31688 "typetext" : "<string>"
56122987
DM
31689 },
31690 "vmid" : {
7aacca6f 31691 "description" : "The (unique) ID of the VM.",
56122987 31692 "format" : "pve-vmid",
8dd66e12
TL
31693 "maximum" : 999999999,
31694 "minimum" : 100,
4bd7df8b 31695 "type" : "integer",
8dd66e12 31696 "typetext" : "<integer> (100 - 999999999)"
56122987 31697 }
44660702
DM
31698 }
31699 },
31700 "permissions" : {
4d47f125 31701 "user" : "all"
56122987 31702 },
44660702 31703 "returns" : {
4d47f125
TL
31704 "items" : {
31705 "properties" : {},
31706 "type" : "object"
31707 },
31708 "links" : [
31709 {
31710 "href" : "{cmd}",
31711 "rel" : "child"
31712 }
31713 ],
31714 "type" : "array"
44660702 31715 }
7aacca6f
DM
31716 }
31717 },
4d47f125
TL
31718 "leaf" : 0,
31719 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
31720 "text" : "{snapname}"
7aacca6f
DM
31721 }
31722 ],
31723 "info" : {
31724 "GET" : {
e9cd3bd4 31725 "allowtoken" : 1,
4d47f125 31726 "description" : "List all snapshots.",
44660702 31727 "method" : "GET",
4d47f125 31728 "name" : "list",
7aacca6f
DM
31729 "parameters" : {
31730 "additionalProperties" : 0,
31731 "properties" : {
31732 "node" : {
31733 "description" : "The cluster node name.",
44660702 31734 "format" : "pve-node",
013dc89f
DM
31735 "type" : "string",
31736 "typetext" : "<string>"
56122987 31737 },
7aacca6f 31738 "vmid" : {
44660702 31739 "description" : "The (unique) ID of the VM.",
7aacca6f 31740 "format" : "pve-vmid",
8dd66e12
TL
31741 "maximum" : 999999999,
31742 "minimum" : 100,
4bd7df8b 31743 "type" : "integer",
8dd66e12 31744 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 31745 }
56122987
DM
31746 }
31747 },
44660702 31748 "permissions" : {
4d47f125
TL
31749 "check" : [
31750 "perm",
31751 "/vms/{vmid}",
31752 [
31753 "VM.Audit"
31754 ]
31755 ]
44660702 31756 },
4d47f125 31757 "protected" : 1,
44660702 31758 "proxyto" : "node",
7aacca6f 31759 "returns" : {
7aacca6f
DM
31760 "items" : {
31761 "properties" : {
4d47f125
TL
31762 "description" : {
31763 "description" : "Snapshot description.",
7aacca6f 31764 "type" : "string"
4d47f125
TL
31765 },
31766 "name" : {
31767 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
31768 "type" : "string"
31769 },
31770 "parent" : {
31771 "description" : "Parent snapshot identifier.",
31772 "optional" : 1,
31773 "type" : "string"
31774 },
31775 "snaptime" : {
31776 "description" : "Snapshot creation time",
31777 "optional" : 1,
31778 "renderer" : "timestamp",
31779 "type" : "integer"
7aacca6f
DM
31780 }
31781 },
31782 "type" : "object"
31783 },
31784 "links" : [
31785 {
4d47f125 31786 "href" : "{name}",
44660702 31787 "rel" : "child"
7aacca6f 31788 }
44660702
DM
31789 ],
31790 "type" : "array"
7aacca6f 31791 }
4d47f125
TL
31792 },
31793 "POST" : {
e9cd3bd4 31794 "allowtoken" : 1,
4d47f125
TL
31795 "description" : "Snapshot a container.",
31796 "method" : "POST",
31797 "name" : "snapshot",
31798 "parameters" : {
31799 "additionalProperties" : 0,
31800 "properties" : {
31801 "description" : {
31802 "description" : "A textual description or comment.",
31803 "optional" : 1,
31804 "type" : "string",
31805 "typetext" : "<string>"
31806 },
31807 "node" : {
31808 "description" : "The cluster node name.",
31809 "format" : "pve-node",
31810 "type" : "string",
31811 "typetext" : "<string>"
31812 },
31813 "snapname" : {
31814 "description" : "The name of the snapshot.",
31815 "format" : "pve-configid",
31816 "maxLength" : 40,
31817 "type" : "string",
31818 "typetext" : "<string>"
31819 },
31820 "vmid" : {
31821 "description" : "The (unique) ID of the VM.",
31822 "format" : "pve-vmid",
8dd66e12
TL
31823 "maximum" : 999999999,
31824 "minimum" : 100,
4d47f125 31825 "type" : "integer",
8dd66e12 31826 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31827 }
31828 }
31829 },
31830 "permissions" : {
31831 "check" : [
31832 "perm",
31833 "/vms/{vmid}",
31834 [
31835 "VM.Snapshot"
31836 ]
31837 ]
31838 },
31839 "protected" : 1,
31840 "proxyto" : "node",
31841 "returns" : {
31842 "description" : "the task ID.",
31843 "type" : "string"
31844 }
7aacca6f 31845 }
44660702
DM
31846 },
31847 "leaf" : 0,
4d47f125
TL
31848 "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
31849 "text" : "snapshot"
7aacca6f
DM
31850 },
31851 {
7aacca6f 31852 "children" : [
56122987 31853 {
7aacca6f
DM
31854 "children" : [
31855 {
31856 "info" : {
4d47f125 31857 "DELETE" : {
e9cd3bd4 31858 "allowtoken" : 1,
4d47f125
TL
31859 "description" : "Delete rule.",
31860 "method" : "DELETE",
31861 "name" : "delete_rule",
7aacca6f 31862 "parameters" : {
44660702 31863 "additionalProperties" : 0,
7aacca6f 31864 "properties" : {
4d47f125 31865 "digest" : {
82551b2b
TL
31866 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
31867 "maxLength" : 64,
4d47f125
TL
31868 "optional" : 1,
31869 "type" : "string",
31870 "typetext" : "<string>"
31871 },
44660702
DM
31872 "node" : {
31873 "description" : "The cluster node name.",
31874 "format" : "pve-node",
013dc89f
DM
31875 "type" : "string",
31876 "typetext" : "<string>"
44660702 31877 },
4d47f125
TL
31878 "pos" : {
31879 "description" : "Update rule at position <pos>.",
31880 "minimum" : 0,
31881 "optional" : 1,
31882 "type" : "integer",
31883 "typetext" : "<integer> (0 - N)"
7aacca6f 31884 },
7aacca6f 31885 "vmid" : {
44660702 31886 "description" : "The (unique) ID of the VM.",
7aacca6f 31887 "format" : "pve-vmid",
8dd66e12
TL
31888 "maximum" : 999999999,
31889 "minimum" : 100,
4bd7df8b 31890 "type" : "integer",
8dd66e12 31891 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 31892 }
44660702
DM
31893 }
31894 },
31895 "permissions" : {
31896 "check" : [
31897 "perm",
31898 "/vms/{vmid}",
31899 [
4d47f125
TL
31900 "VM.Config.Network"
31901 ]
44660702 31902 ]
7aacca6f 31903 },
44660702 31904 "protected" : 1,
4d47f125 31905 "proxyto" : null,
44660702 31906 "returns" : {
4d47f125 31907 "type" : "null"
44660702 31908 }
4d47f125 31909 },
7aacca6f 31910 "GET" : {
e9cd3bd4 31911 "allowtoken" : 1,
4d47f125 31912 "description" : "Get single rule data.",
44660702 31913 "method" : "GET",
4d47f125 31914 "name" : "get_rule",
7aacca6f
DM
31915 "parameters" : {
31916 "additionalProperties" : 0,
4d47f125
TL
31917 "properties" : {
31918 "node" : {
31919 "description" : "The cluster node name.",
31920 "format" : "pve-node",
013dc89f
DM
31921 "type" : "string",
31922 "typetext" : "<string>"
44660702 31923 },
4d47f125
TL
31924 "pos" : {
31925 "description" : "Update rule at position <pos>.",
31926 "minimum" : 0,
31927 "optional" : 1,
31928 "type" : "integer",
31929 "typetext" : "<integer> (0 - N)"
31930 },
44660702
DM
31931 "vmid" : {
31932 "description" : "The (unique) ID of the VM.",
31933 "format" : "pve-vmid",
8dd66e12
TL
31934 "maximum" : 999999999,
31935 "minimum" : 100,
4bd7df8b 31936 "type" : "integer",
8dd66e12 31937 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
31938 }
31939 }
31940 },
31941 "permissions" : {
31942 "check" : [
31943 "perm",
31944 "/vms/{vmid}",
31945 [
4d47f125
TL
31946 "VM.Audit"
31947 ]
7aacca6f
DM
31948 ]
31949 },
4d47f125 31950 "proxyto" : null,
44660702 31951 "returns" : {
4d47f125 31952 "properties" : {
e2d681b3
TL
31953 "action" : {
31954 "type" : "string"
31955 },
31956 "comment" : {
31957 "optional" : 1,
31958 "type" : "string"
31959 },
31960 "dest" : {
31961 "optional" : 1,
31962 "type" : "string"
31963 },
31964 "dport" : {
31965 "optional" : 1,
31966 "type" : "string"
31967 },
31968 "enable" : {
31969 "optional" : 1,
31970 "type" : "integer"
31971 },
4772952b
TL
31972 "icmp-type" : {
31973 "optional" : 1,
31974 "type" : "string"
31975 },
e2d681b3
TL
31976 "iface" : {
31977 "optional" : 1,
31978 "type" : "string"
31979 },
31980 "ipversion" : {
31981 "optional" : 1,
31982 "type" : "integer"
31983 },
95895385
TL
31984 "log" : {
31985 "description" : "Log level for firewall rule",
31986 "enum" : [
31987 "emerg",
31988 "alert",
31989 "crit",
31990 "err",
31991 "warning",
31992 "notice",
31993 "info",
31994 "debug",
31995 "nolog"
31996 ],
31997 "optional" : 1,
31998 "type" : "string"
31999 },
e2d681b3
TL
32000 "macro" : {
32001 "optional" : 1,
5f26e15b 32002 "type" : "string"
e2d681b3 32003 },
4d47f125
TL
32004 "pos" : {
32005 "type" : "integer"
e2d681b3
TL
32006 },
32007 "proto" : {
32008 "optional" : 1,
32009 "type" : "string"
32010 },
32011 "source" : {
32012 "optional" : 1,
32013 "type" : "string"
32014 },
32015 "sport" : {
32016 "optional" : 1,
32017 "type" : "string"
32018 },
32019 "type" : {
32020 "type" : "string"
4d47f125
TL
32021 }
32022 },
44660702
DM
32023 "type" : "object"
32024 }
7aacca6f
DM
32025 },
32026 "PUT" : {
e9cd3bd4 32027 "allowtoken" : 1,
4d47f125 32028 "description" : "Modify rule data.",
44660702 32029 "method" : "PUT",
4d47f125 32030 "name" : "update_rule",
7aacca6f
DM
32031 "parameters" : {
32032 "additionalProperties" : 0,
32033 "properties" : {
4d47f125
TL
32034 "action" : {
32035 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
32036 "maxLength" : 20,
32037 "minLength" : 2,
32038 "optional" : 1,
32039 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32040 "type" : "string"
32041 },
32042 "comment" : {
32043 "description" : "Descriptive comment.",
32044 "optional" : 1,
32045 "type" : "string",
32046 "typetext" : "<string>"
32047 },
32048 "delete" : {
32049 "description" : "A list of settings you want to delete.",
32050 "format" : "pve-configid-list",
32051 "optional" : 1,
32052 "type" : "string",
32053 "typetext" : "<string>"
32054 },
32055 "dest" : {
32056 "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.",
32057 "format" : "pve-fw-addr-spec",
0695fdaf 32058 "maxLength" : 512,
4d47f125
TL
32059 "optional" : 1,
32060 "type" : "string",
32061 "typetext" : "<string>"
32062 },
32063 "digest" : {
82551b2b
TL
32064 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32065 "maxLength" : 64,
4d47f125
TL
32066 "optional" : 1,
32067 "type" : "string",
32068 "typetext" : "<string>"
32069 },
32070 "dport" : {
32071 "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.",
32072 "format" : "pve-fw-dport-spec",
32073 "optional" : 1,
32074 "type" : "string",
32075 "typetext" : "<string>"
32076 },
32077 "enable" : {
32078 "description" : "Flag to enable/disable a rule.",
32079 "minimum" : 0,
32080 "optional" : 1,
32081 "type" : "integer",
32082 "typetext" : "<integer> (0 - N)"
32083 },
4772952b 32084 "icmp-type" : {
287a95cf 32085 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
32086 "format" : "pve-fw-icmp-type-spec",
32087 "optional" : 1,
32088 "type" : "string",
32089 "typetext" : "<string>"
32090 },
4d47f125
TL
32091 "iface" : {
32092 "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.",
32093 "format" : "pve-iface",
32094 "maxLength" : 20,
32095 "minLength" : 2,
32096 "optional" : 1,
32097 "type" : "string",
32098 "typetext" : "<string>"
32099 },
95895385
TL
32100 "log" : {
32101 "description" : "Log level for firewall rule.",
32102 "enum" : [
32103 "emerg",
32104 "alert",
32105 "crit",
32106 "err",
32107 "warning",
32108 "notice",
32109 "info",
32110 "debug",
32111 "nolog"
32112 ],
32113 "optional" : 1,
32114 "type" : "string"
32115 },
4d47f125
TL
32116 "macro" : {
32117 "description" : "Use predefined standard macro.",
32118 "maxLength" : 128,
44660702 32119 "optional" : 1,
013dc89f
DM
32120 "type" : "string",
32121 "typetext" : "<string>"
44660702 32122 },
4d47f125
TL
32123 "moveto" : {
32124 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
32125 "minimum" : 0,
32126 "optional" : 1,
32127 "type" : "integer",
32128 "typetext" : "<integer> (0 - N)"
32129 },
7aacca6f 32130 "node" : {
7aacca6f 32131 "description" : "The cluster node name.",
44660702 32132 "format" : "pve-node",
013dc89f
DM
32133 "type" : "string",
32134 "typetext" : "<string>"
7aacca6f 32135 },
4d47f125
TL
32136 "pos" : {
32137 "description" : "Update rule at position <pos>.",
32138 "minimum" : 0,
32139 "optional" : 1,
32140 "type" : "integer",
32141 "typetext" : "<integer> (0 - N)"
32142 },
32143 "proto" : {
32144 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
32145 "format" : "pve-fw-protocol-spec",
32146 "optional" : 1,
32147 "type" : "string",
32148 "typetext" : "<string>"
32149 },
32150 "source" : {
32151 "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.",
32152 "format" : "pve-fw-addr-spec",
0695fdaf 32153 "maxLength" : 512,
4d47f125
TL
32154 "optional" : 1,
32155 "type" : "string",
32156 "typetext" : "<string>"
32157 },
32158 "sport" : {
32159 "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.",
32160 "format" : "pve-fw-sport-spec",
32161 "optional" : 1,
013dc89f
DM
32162 "type" : "string",
32163 "typetext" : "<string>"
7aacca6f 32164 },
4d47f125
TL
32165 "type" : {
32166 "description" : "Rule type.",
32167 "enum" : [
32168 "in",
32169 "out",
32170 "group"
32171 ],
32172 "optional" : 1,
32173 "type" : "string"
32174 },
7aacca6f 32175 "vmid" : {
44660702 32176 "description" : "The (unique) ID of the VM.",
7aacca6f 32177 "format" : "pve-vmid",
8dd66e12
TL
32178 "maximum" : 999999999,
32179 "minimum" : 100,
4bd7df8b 32180 "type" : "integer",
8dd66e12 32181 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
32182 }
32183 }
32184 },
7aacca6f
DM
32185 "permissions" : {
32186 "check" : [
32187 "perm",
32188 "/vms/{vmid}",
32189 [
4d47f125 32190 "VM.Config.Network"
7aacca6f
DM
32191 ]
32192 ]
32193 },
4d47f125
TL
32194 "protected" : 1,
32195 "proxyto" : null,
32196 "returns" : {
32197 "type" : "null"
32198 }
32199 }
32200 },
32201 "leaf" : 1,
32202 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
32203 "text" : "{pos}"
32204 }
32205 ],
32206 "info" : {
32207 "GET" : {
e9cd3bd4 32208 "allowtoken" : 1,
4d47f125
TL
32209 "description" : "List rules.",
32210 "method" : "GET",
32211 "name" : "get_rules",
32212 "parameters" : {
32213 "additionalProperties" : 0,
32214 "properties" : {
32215 "node" : {
32216 "description" : "The cluster node name.",
32217 "format" : "pve-node",
32218 "type" : "string",
32219 "typetext" : "<string>"
32220 },
32221 "vmid" : {
32222 "description" : "The (unique) ID of the VM.",
32223 "format" : "pve-vmid",
8dd66e12
TL
32224 "maximum" : 999999999,
32225 "minimum" : 100,
4d47f125 32226 "type" : "integer",
8dd66e12 32227 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
32228 }
32229 }
32230 },
32231 "permissions" : {
32232 "check" : [
32233 "perm",
32234 "/vms/{vmid}",
32235 [
32236 "VM.Audit"
32237 ]
32238 ]
32239 },
32240 "proxyto" : null,
32241 "returns" : {
32242 "items" : {
32243 "properties" : {
32244 "pos" : {
32245 "type" : "integer"
32246 }
32247 },
32248 "type" : "object"
32249 },
32250 "links" : [
32251 {
32252 "href" : "{pos}",
32253 "rel" : "child"
32254 }
32255 ],
32256 "type" : "array"
32257 }
32258 },
32259 "POST" : {
e9cd3bd4 32260 "allowtoken" : 1,
4d47f125
TL
32261 "description" : "Create new rule.",
32262 "method" : "POST",
32263 "name" : "create_rule",
32264 "parameters" : {
32265 "additionalProperties" : 0,
32266 "properties" : {
32267 "action" : {
32268 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
32269 "maxLength" : 20,
32270 "minLength" : 2,
32271 "optional" : 0,
32272 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32273 "type" : "string"
32274 },
32275 "comment" : {
32276 "description" : "Descriptive comment.",
32277 "optional" : 1,
32278 "type" : "string",
32279 "typetext" : "<string>"
32280 },
32281 "dest" : {
32282 "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.",
32283 "format" : "pve-fw-addr-spec",
0695fdaf 32284 "maxLength" : 512,
4d47f125
TL
32285 "optional" : 1,
32286 "type" : "string",
32287 "typetext" : "<string>"
32288 },
32289 "digest" : {
82551b2b
TL
32290 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32291 "maxLength" : 64,
4d47f125
TL
32292 "optional" : 1,
32293 "type" : "string",
32294 "typetext" : "<string>"
32295 },
32296 "dport" : {
32297 "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.",
32298 "format" : "pve-fw-dport-spec",
32299 "optional" : 1,
32300 "type" : "string",
32301 "typetext" : "<string>"
32302 },
32303 "enable" : {
32304 "description" : "Flag to enable/disable a rule.",
32305 "minimum" : 0,
32306 "optional" : 1,
32307 "type" : "integer",
32308 "typetext" : "<integer> (0 - N)"
32309 },
4772952b 32310 "icmp-type" : {
287a95cf 32311 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
32312 "format" : "pve-fw-icmp-type-spec",
32313 "optional" : 1,
32314 "type" : "string",
32315 "typetext" : "<string>"
32316 },
4d47f125
TL
32317 "iface" : {
32318 "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.",
32319 "format" : "pve-iface",
32320 "maxLength" : 20,
32321 "minLength" : 2,
32322 "optional" : 1,
32323 "type" : "string",
32324 "typetext" : "<string>"
32325 },
95895385
TL
32326 "log" : {
32327 "description" : "Log level for firewall rule.",
32328 "enum" : [
32329 "emerg",
32330 "alert",
32331 "crit",
32332 "err",
32333 "warning",
32334 "notice",
32335 "info",
32336 "debug",
32337 "nolog"
32338 ],
32339 "optional" : 1,
32340 "type" : "string"
32341 },
4d47f125
TL
32342 "macro" : {
32343 "description" : "Use predefined standard macro.",
32344 "maxLength" : 128,
44660702 32345 "optional" : 1,
4d47f125
TL
32346 "type" : "string",
32347 "typetext" : "<string>"
44660702
DM
32348 },
32349 "node" : {
32350 "description" : "The cluster node name.",
32351 "format" : "pve-node",
013dc89f
DM
32352 "type" : "string",
32353 "typetext" : "<string>"
7aacca6f 32354 },
4d47f125
TL
32355 "pos" : {
32356 "description" : "Update rule at position <pos>.",
32357 "minimum" : 0,
32358 "optional" : 1,
32359 "type" : "integer",
32360 "typetext" : "<integer> (0 - N)"
32361 },
32362 "proto" : {
32363 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
32364 "format" : "pve-fw-protocol-spec",
32365 "optional" : 1,
32366 "type" : "string",
32367 "typetext" : "<string>"
32368 },
32369 "source" : {
32370 "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.",
32371 "format" : "pve-fw-addr-spec",
0695fdaf 32372 "maxLength" : 512,
4d47f125 32373 "optional" : 1,
013dc89f
DM
32374 "type" : "string",
32375 "typetext" : "<string>"
44660702 32376 },
4d47f125
TL
32377 "sport" : {
32378 "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.",
32379 "format" : "pve-fw-sport-spec",
32380 "optional" : 1,
32381 "type" : "string",
32382 "typetext" : "<string>"
32383 },
32384 "type" : {
32385 "description" : "Rule type.",
32386 "enum" : [
32387 "in",
32388 "out",
32389 "group"
32390 ],
32391 "optional" : 0,
32392 "type" : "string"
32393 },
44660702
DM
32394 "vmid" : {
32395 "description" : "The (unique) ID of the VM.",
32396 "format" : "pve-vmid",
8dd66e12
TL
32397 "maximum" : 999999999,
32398 "minimum" : 100,
4bd7df8b 32399 "type" : "integer",
8dd66e12 32400 "typetext" : "<integer> (100 - 999999999)"
56122987 32401 }
44660702 32402 }
7aacca6f 32403 },
56122987
DM
32404 "permissions" : {
32405 "check" : [
32406 "perm",
32407 "/vms/{vmid}",
32408 [
4d47f125 32409 "VM.Config.Network"
56122987
DM
32410 ]
32411 ]
32412 },
44660702 32413 "protected" : 1,
4d47f125 32414 "proxyto" : null,
44660702 32415 "returns" : {
4d47f125 32416 "type" : "null"
44660702
DM
32417 }
32418 }
32419 },
32420 "leaf" : 0,
4d47f125
TL
32421 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
32422 "text" : "rules"
7aacca6f 32423 },
56122987 32424 {
56122987
DM
32425 "children" : [
32426 {
56122987 32427 "info" : {
44660702 32428 "DELETE" : {
e9cd3bd4 32429 "allowtoken" : 1,
4d47f125 32430 "description" : "Remove IP or Network alias.",
44660702 32431 "method" : "DELETE",
4d47f125 32432 "name" : "remove_alias",
56122987 32433 "parameters" : {
44660702 32434 "additionalProperties" : 0,
56122987 32435 "properties" : {
44660702 32436 "digest" : {
82551b2b
TL
32437 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32438 "maxLength" : 64,
7aacca6f 32439 "optional" : 1,
013dc89f
DM
32440 "type" : "string",
32441 "typetext" : "<string>"
7aacca6f 32442 },
4d47f125
TL
32443 "name" : {
32444 "description" : "Alias name.",
32445 "maxLength" : 64,
32446 "minLength" : 2,
32447 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32448 "type" : "string"
32449 },
7aacca6f 32450 "node" : {
44660702 32451 "description" : "The cluster node name.",
7aacca6f 32452 "format" : "pve-node",
013dc89f
DM
32453 "type" : "string",
32454 "typetext" : "<string>"
44660702 32455 },
44660702
DM
32456 "vmid" : {
32457 "description" : "The (unique) ID of the VM.",
32458 "format" : "pve-vmid",
8dd66e12
TL
32459 "maximum" : 999999999,
32460 "minimum" : 100,
4bd7df8b 32461 "type" : "integer",
8dd66e12 32462 "typetext" : "<integer> (100 - 999999999)"
56122987 32463 }
44660702 32464 }
56122987 32465 },
56122987
DM
32466 "permissions" : {
32467 "check" : [
32468 "perm",
32469 "/vms/{vmid}",
32470 [
44660702 32471 "VM.Config.Network"
56122987
DM
32472 ]
32473 ]
32474 },
44660702 32475 "protected" : 1,
44660702
DM
32476 "returns" : {
32477 "type" : "null"
32478 }
7aacca6f 32479 },
44660702 32480 "GET" : {
e9cd3bd4 32481 "allowtoken" : 1,
4d47f125 32482 "description" : "Read alias.",
44660702 32483 "method" : "GET",
4d47f125 32484 "name" : "read_alias",
56122987 32485 "parameters" : {
44660702 32486 "additionalProperties" : 0,
56122987 32487 "properties" : {
4d47f125
TL
32488 "name" : {
32489 "description" : "Alias name.",
32490 "maxLength" : 64,
32491 "minLength" : 2,
32492 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32493 "type" : "string"
32494 },
7aacca6f 32495 "node" : {
7aacca6f 32496 "description" : "The cluster node name.",
44660702 32497 "format" : "pve-node",
013dc89f
DM
32498 "type" : "string",
32499 "typetext" : "<string>"
56122987 32500 },
7aacca6f 32501 "vmid" : {
44660702 32502 "description" : "The (unique) ID of the VM.",
7aacca6f 32503 "format" : "pve-vmid",
8dd66e12
TL
32504 "maximum" : 999999999,
32505 "minimum" : 100,
4bd7df8b 32506 "type" : "integer",
8dd66e12 32507 "typetext" : "<integer> (100 - 999999999)"
56122987 32508 }
44660702 32509 }
56122987 32510 },
7aacca6f
DM
32511 "permissions" : {
32512 "check" : [
32513 "perm",
32514 "/vms/{vmid}",
32515 [
44660702 32516 "VM.Audit"
7aacca6f
DM
32517 ]
32518 ]
32519 },
7aacca6f 32520 "returns" : {
44660702 32521 "type" : "object"
7aacca6f 32522 }
56122987 32523 },
44660702 32524 "PUT" : {
e9cd3bd4 32525 "allowtoken" : 1,
4d47f125 32526 "description" : "Update IP or Network alias.",
44660702 32527 "method" : "PUT",
4d47f125 32528 "name" : "update_alias",
56122987
DM
32529 "parameters" : {
32530 "additionalProperties" : 0,
32531 "properties" : {
4d47f125
TL
32532 "cidr" : {
32533 "description" : "Network/IP specification in CIDR format.",
32534 "format" : "IPorCIDR",
013dc89f
DM
32535 "type" : "string",
32536 "typetext" : "<string>"
44660702 32537 },
4d47f125 32538 "comment" : {
44660702 32539 "optional" : 1,
013dc89f
DM
32540 "type" : "string",
32541 "typetext" : "<string>"
44660702
DM
32542 },
32543 "digest" : {
82551b2b
TL
32544 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32545 "maxLength" : 64,
44660702 32546 "optional" : 1,
013dc89f
DM
32547 "type" : "string",
32548 "typetext" : "<string>"
44660702 32549 },
4d47f125
TL
32550 "name" : {
32551 "description" : "Alias name.",
32552 "maxLength" : 64,
44660702 32553 "minLength" : 2,
4d47f125
TL
32554 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32555 "type" : "string"
44660702 32556 },
7aacca6f
DM
32557 "node" : {
32558 "description" : "The cluster node name.",
44660702 32559 "format" : "pve-node",
013dc89f
DM
32560 "type" : "string",
32561 "typetext" : "<string>"
56122987 32562 },
4d47f125
TL
32563 "rename" : {
32564 "description" : "Rename an existing alias.",
32565 "maxLength" : 64,
32566 "minLength" : 2,
7aacca6f 32567 "optional" : 1,
4d47f125 32568 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
32569 "type" : "string"
32570 },
32571 "vmid" : {
32572 "description" : "The (unique) ID of the VM.",
32573 "format" : "pve-vmid",
8dd66e12
TL
32574 "maximum" : 999999999,
32575 "minimum" : 100,
4bd7df8b 32576 "type" : "integer",
8dd66e12 32577 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
32578 }
32579 }
32580 },
56122987
DM
32581 "permissions" : {
32582 "check" : [
32583 "perm",
32584 "/vms/{vmid}",
32585 [
7aacca6f 32586 "VM.Config.Network"
56122987
DM
32587 ]
32588 ]
32589 },
44660702 32590 "protected" : 1,
56122987 32591 "returns" : {
7aacca6f
DM
32592 "type" : "null"
32593 }
56122987 32594 }
44660702
DM
32595 },
32596 "leaf" : 1,
4d47f125
TL
32597 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
32598 "text" : "{name}"
56122987
DM
32599 }
32600 ],
32601 "info" : {
7aacca6f 32602 "GET" : {
e9cd3bd4 32603 "allowtoken" : 1,
4d47f125 32604 "description" : "List aliases",
44660702 32605 "method" : "GET",
4d47f125 32606 "name" : "get_aliases",
7aacca6f 32607 "parameters" : {
44660702 32608 "additionalProperties" : 0,
7aacca6f
DM
32609 "properties" : {
32610 "node" : {
7aacca6f 32611 "description" : "The cluster node name.",
44660702 32612 "format" : "pve-node",
013dc89f
DM
32613 "type" : "string",
32614 "typetext" : "<string>"
7aacca6f
DM
32615 },
32616 "vmid" : {
32617 "description" : "The (unique) ID of the VM.",
44660702 32618 "format" : "pve-vmid",
8dd66e12
TL
32619 "maximum" : 999999999,
32620 "minimum" : 100,
4bd7df8b 32621 "type" : "integer",
8dd66e12 32622 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 32623 }
44660702 32624 }
56122987 32625 },
56122987
DM
32626 "permissions" : {
32627 "check" : [
32628 "perm",
32629 "/vms/{vmid}",
32630 [
7aacca6f 32631 "VM.Audit"
56122987
DM
32632 ]
32633 ]
32634 },
7aacca6f 32635 "returns" : {
7aacca6f
DM
32636 "items" : {
32637 "properties" : {
4d47f125
TL
32638 "cidr" : {
32639 "type" : "string"
32640 },
32641 "comment" : {
32642 "optional" : 1,
32643 "type" : "string"
32644 },
32645 "digest" : {
82551b2b
TL
32646 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32647 "maxLength" : 64,
4d47f125
TL
32648 "optional" : 0,
32649 "type" : "string"
32650 },
32651 "name" : {
32652 "type" : "string"
7aacca6f
DM
32653 }
32654 },
32655 "type" : "object"
32656 },
32657 "links" : [
32658 {
4d47f125 32659 "href" : "{name}",
44660702 32660 "rel" : "child"
7aacca6f 32661 }
44660702
DM
32662 ],
32663 "type" : "array"
32664 }
7aacca6f
DM
32665 },
32666 "POST" : {
e9cd3bd4 32667 "allowtoken" : 1,
4d47f125 32668 "description" : "Create IP or Network Alias.",
44660702 32669 "method" : "POST",
4d47f125 32670 "name" : "create_alias",
56122987 32671 "parameters" : {
44660702 32672 "additionalProperties" : 0,
56122987 32673 "properties" : {
4d47f125
TL
32674 "cidr" : {
32675 "description" : "Network/IP specification in CIDR format.",
32676 "format" : "IPorCIDR",
013dc89f 32677 "type" : "string",
4d47f125
TL
32678 "typetext" : "<string>"
32679 },
32680 "comment" : {
44660702 32681 "optional" : 1,
013dc89f
DM
32682 "type" : "string",
32683 "typetext" : "<string>"
7aacca6f 32684 },
4d47f125
TL
32685 "name" : {
32686 "description" : "Alias name.",
32687 "maxLength" : 64,
32688 "minLength" : 2,
32689 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
32690 "type" : "string"
32691 },
4d47f125
TL
32692 "node" : {
32693 "description" : "The cluster node name.",
32694 "format" : "pve-node",
32695 "type" : "string",
32696 "typetext" : "<string>"
32697 },
44660702
DM
32698 "vmid" : {
32699 "description" : "The (unique) ID of the VM.",
32700 "format" : "pve-vmid",
8dd66e12
TL
32701 "maximum" : 999999999,
32702 "minimum" : 100,
4bd7df8b 32703 "type" : "integer",
8dd66e12 32704 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
32705 }
32706 }
32707 },
32708 "permissions" : {
32709 "check" : [
32710 "perm",
32711 "/vms/{vmid}",
32712 [
32713 "VM.Config.Network"
32714 ]
32715 ]
32716 },
32717 "protected" : 1,
44660702
DM
32718 "returns" : {
32719 "type" : "null"
32720 }
32721 }
32722 },
32723 "leaf" : 0,
4d47f125
TL
32724 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
32725 "text" : "aliases"
44660702
DM
32726 },
32727 {
32728 "children" : [
32729 {
4d47f125
TL
32730 "children" : [
32731 {
32732 "info" : {
32733 "DELETE" : {
e9cd3bd4 32734 "allowtoken" : 1,
4d47f125
TL
32735 "description" : "Remove IP or Network from IPSet.",
32736 "method" : "DELETE",
32737 "name" : "remove_ip",
32738 "parameters" : {
32739 "additionalProperties" : 0,
32740 "properties" : {
32741 "cidr" : {
32742 "description" : "Network/IP specification in CIDR format.",
32743 "format" : "IPorCIDRorAlias",
32744 "type" : "string",
32745 "typetext" : "<string>"
32746 },
32747 "digest" : {
82551b2b
TL
32748 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32749 "maxLength" : 64,
4d47f125
TL
32750 "optional" : 1,
32751 "type" : "string",
32752 "typetext" : "<string>"
32753 },
32754 "name" : {
32755 "description" : "IP set name.",
32756 "maxLength" : 64,
32757 "minLength" : 2,
32758 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32759 "type" : "string"
32760 },
32761 "node" : {
32762 "description" : "The cluster node name.",
32763 "format" : "pve-node",
32764 "type" : "string",
32765 "typetext" : "<string>"
32766 },
32767 "vmid" : {
32768 "description" : "The (unique) ID of the VM.",
32769 "format" : "pve-vmid",
8dd66e12
TL
32770 "maximum" : 999999999,
32771 "minimum" : 100,
4d47f125 32772 "type" : "integer",
8dd66e12 32773 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
32774 }
32775 }
32776 },
32777 "permissions" : {
32778 "check" : [
32779 "perm",
32780 "/vms/{vmid}",
32781 [
32782 "VM.Config.Network"
32783 ]
32784 ]
32785 },
32786 "protected" : 1,
32787 "returns" : {
32788 "type" : "null"
32789 }
32790 },
32791 "GET" : {
e9cd3bd4 32792 "allowtoken" : 1,
4d47f125
TL
32793 "description" : "Read IP or Network settings from IPSet.",
32794 "method" : "GET",
32795 "name" : "read_ip",
32796 "parameters" : {
32797 "additionalProperties" : 0,
32798 "properties" : {
32799 "cidr" : {
32800 "description" : "Network/IP specification in CIDR format.",
32801 "format" : "IPorCIDRorAlias",
32802 "type" : "string",
32803 "typetext" : "<string>"
32804 },
32805 "name" : {
32806 "description" : "IP set name.",
32807 "maxLength" : 64,
32808 "minLength" : 2,
32809 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32810 "type" : "string"
32811 },
32812 "node" : {
32813 "description" : "The cluster node name.",
32814 "format" : "pve-node",
32815 "type" : "string",
32816 "typetext" : "<string>"
32817 },
32818 "vmid" : {
32819 "description" : "The (unique) ID of the VM.",
32820 "format" : "pve-vmid",
8dd66e12
TL
32821 "maximum" : 999999999,
32822 "minimum" : 100,
4d47f125 32823 "type" : "integer",
8dd66e12 32824 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
32825 }
32826 }
32827 },
32828 "permissions" : {
32829 "check" : [
32830 "perm",
32831 "/vms/{vmid}",
32832 [
32833 "VM.Audit"
32834 ]
32835 ]
32836 },
32837 "protected" : 1,
32838 "returns" : {
32839 "type" : "object"
32840 }
32841 },
32842 "PUT" : {
e9cd3bd4 32843 "allowtoken" : 1,
4d47f125
TL
32844 "description" : "Update IP or Network settings",
32845 "method" : "PUT",
32846 "name" : "update_ip",
32847 "parameters" : {
32848 "additionalProperties" : 0,
32849 "properties" : {
32850 "cidr" : {
32851 "description" : "Network/IP specification in CIDR format.",
32852 "format" : "IPorCIDRorAlias",
32853 "type" : "string",
32854 "typetext" : "<string>"
32855 },
32856 "comment" : {
32857 "optional" : 1,
32858 "type" : "string",
32859 "typetext" : "<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" : 1,
32865 "type" : "string",
32866 "typetext" : "<string>"
32867 },
32868 "name" : {
32869 "description" : "IP set name.",
32870 "maxLength" : 64,
32871 "minLength" : 2,
32872 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32873 "type" : "string"
32874 },
32875 "node" : {
32876 "description" : "The cluster node name.",
32877 "format" : "pve-node",
32878 "type" : "string",
32879 "typetext" : "<string>"
32880 },
32881 "nomatch" : {
32882 "optional" : 1,
32883 "type" : "boolean",
32884 "typetext" : "<boolean>"
32885 },
32886 "vmid" : {
32887 "description" : "The (unique) ID of the VM.",
32888 "format" : "pve-vmid",
8dd66e12
TL
32889 "maximum" : 999999999,
32890 "minimum" : 100,
4d47f125 32891 "type" : "integer",
8dd66e12 32892 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
32893 }
32894 }
32895 },
32896 "permissions" : {
32897 "check" : [
32898 "perm",
32899 "/vms/{vmid}",
32900 [
32901 "VM.Config.Network"
32902 ]
32903 ]
32904 },
32905 "protected" : 1,
32906 "returns" : {
32907 "type" : "null"
32908 }
32909 }
32910 },
32911 "leaf" : 1,
32912 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
32913 "text" : "{cidr}"
32914 }
32915 ],
44660702
DM
32916 "info" : {
32917 "DELETE" : {
e9cd3bd4 32918 "allowtoken" : 1,
4d47f125 32919 "description" : "Delete IPSet",
44660702 32920 "method" : "DELETE",
4d47f125 32921 "name" : "delete_ipset",
56122987 32922 "parameters" : {
44660702 32923 "additionalProperties" : 0,
56122987 32924 "properties" : {
81a3384d
TL
32925 "force" : {
32926 "description" : "Delete all members of the IPSet, if there are any.",
32927 "optional" : 1,
32928 "type" : "boolean",
32929 "typetext" : "<boolean>"
32930 },
7aacca6f 32931 "name" : {
4d47f125 32932 "description" : "IP set name.",
7aacca6f 32933 "maxLength" : 64,
7aacca6f
DM
32934 "minLength" : 2,
32935 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 32936 "type" : "string"
7aacca6f
DM
32937 },
32938 "node" : {
44660702 32939 "description" : "The cluster node name.",
56122987 32940 "format" : "pve-node",
013dc89f
DM
32941 "type" : "string",
32942 "typetext" : "<string>"
7aacca6f 32943 },
56122987 32944 "vmid" : {
44660702 32945 "description" : "The (unique) ID of the VM.",
56122987 32946 "format" : "pve-vmid",
8dd66e12
TL
32947 "maximum" : 999999999,
32948 "minimum" : 100,
4bd7df8b 32949 "type" : "integer",
8dd66e12 32950 "typetext" : "<integer> (100 - 999999999)"
56122987 32951 }
44660702 32952 }
56122987 32953 },
56122987
DM
32954 "permissions" : {
32955 "check" : [
32956 "perm",
32957 "/vms/{vmid}",
32958 [
7aacca6f 32959 "VM.Config.Network"
56122987
DM
32960 ]
32961 ]
32962 },
44660702 32963 "protected" : 1,
56122987 32964 "returns" : {
7aacca6f 32965 "type" : "null"
44660702 32966 }
56122987 32967 },
44660702 32968 "GET" : {
e9cd3bd4 32969 "allowtoken" : 1,
4d47f125 32970 "description" : "List IPSet content",
44660702 32971 "method" : "GET",
4d47f125 32972 "name" : "get_ipset",
44660702
DM
32973 "parameters" : {
32974 "additionalProperties" : 0,
32975 "properties" : {
32976 "name" : {
4d47f125 32977 "description" : "IP set name.",
44660702
DM
32978 "maxLength" : 64,
32979 "minLength" : 2,
32980 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32981 "type" : "string"
32982 },
32983 "node" : {
32984 "description" : "The cluster node name.",
32985 "format" : "pve-node",
013dc89f
DM
32986 "type" : "string",
32987 "typetext" : "<string>"
44660702
DM
32988 },
32989 "vmid" : {
32990 "description" : "The (unique) ID of the VM.",
32991 "format" : "pve-vmid",
8dd66e12
TL
32992 "maximum" : 999999999,
32993 "minimum" : 100,
4bd7df8b 32994 "type" : "integer",
8dd66e12 32995 "typetext" : "<integer> (100 - 999999999)"
44660702 32996 }
4d47f125
TL
32997 }
32998 },
32999 "permissions" : {
33000 "check" : [
33001 "perm",
33002 "/vms/{vmid}",
33003 [
33004 "VM.Audit"
33005 ]
33006 ]
33007 },
33008 "returns" : {
33009 "items" : {
33010 "properties" : {
33011 "cidr" : {
33012 "type" : "string"
33013 },
33014 "comment" : {
33015 "optional" : 1,
33016 "type" : "string"
33017 },
33018 "digest" : {
82551b2b
TL
33019 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
33020 "maxLength" : 64,
4d47f125
TL
33021 "optional" : 0,
33022 "type" : "string"
33023 },
33024 "nomatch" : {
33025 "optional" : 1,
33026 "type" : "boolean"
33027 }
33028 },
33029 "type" : "object"
33030 },
33031 "links" : [
33032 {
33033 "href" : "{cidr}",
33034 "rel" : "child"
33035 }
33036 ],
33037 "type" : "array"
44660702
DM
33038 }
33039 },
4d47f125 33040 "POST" : {
e9cd3bd4 33041 "allowtoken" : 1,
4d47f125
TL
33042 "description" : "Add IP or Network to IPSet.",
33043 "method" : "POST",
33044 "name" : "create_ip",
56122987
DM
33045 "parameters" : {
33046 "additionalProperties" : 0,
33047 "properties" : {
44660702
DM
33048 "cidr" : {
33049 "description" : "Network/IP specification in CIDR format.",
4d47f125 33050 "format" : "IPorCIDRorAlias",
013dc89f
DM
33051 "type" : "string",
33052 "typetext" : "<string>"
44660702
DM
33053 },
33054 "comment" : {
33055 "optional" : 1,
013dc89f
DM
33056 "type" : "string",
33057 "typetext" : "<string>"
44660702 33058 },
56122987 33059 "name" : {
4d47f125 33060 "description" : "IP set name.",
44660702
DM
33061 "maxLength" : 64,
33062 "minLength" : 2,
7aacca6f 33063 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 33064 "type" : "string"
56122987
DM
33065 },
33066 "node" : {
33067 "description" : "The cluster node name.",
44660702 33068 "format" : "pve-node",
013dc89f
DM
33069 "type" : "string",
33070 "typetext" : "<string>"
44660702 33071 },
4d47f125 33072 "nomatch" : {
44660702 33073 "optional" : 1,
4d47f125
TL
33074 "type" : "boolean",
33075 "typetext" : "<boolean>"
56122987 33076 },
7aacca6f 33077 "vmid" : {
7aacca6f 33078 "description" : "The (unique) ID of the VM.",
44660702 33079 "format" : "pve-vmid",
8dd66e12
TL
33080 "maximum" : 999999999,
33081 "minimum" : 100,
4bd7df8b 33082 "type" : "integer",
8dd66e12 33083 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
33084 }
33085 }
33086 },
44660702
DM
33087 "permissions" : {
33088 "check" : [
33089 "perm",
33090 "/vms/{vmid}",
33091 [
33092 "VM.Config.Network"
33093 ]
33094 ]
7aacca6f 33095 },
44660702
DM
33096 "protected" : 1,
33097 "returns" : {
33098 "type" : "null"
7aacca6f
DM
33099 }
33100 }
33101 },
4d47f125
TL
33102 "leaf" : 0,
33103 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
44660702
DM
33104 "text" : "{name}"
33105 }
33106 ],
33107 "info" : {
33108 "GET" : {
e9cd3bd4 33109 "allowtoken" : 1,
4d47f125 33110 "description" : "List IPSets",
44660702 33111 "method" : "GET",
4d47f125 33112 "name" : "ipset_index",
56122987
DM
33113 "parameters" : {
33114 "additionalProperties" : 0,
33115 "properties" : {
33116 "node" : {
44660702 33117 "description" : "The cluster node name.",
56122987 33118 "format" : "pve-node",
013dc89f
DM
33119 "type" : "string",
33120 "typetext" : "<string>"
56122987
DM
33121 },
33122 "vmid" : {
7aacca6f 33123 "description" : "The (unique) ID of the VM.",
44660702 33124 "format" : "pve-vmid",
8dd66e12
TL
33125 "maximum" : 999999999,
33126 "minimum" : 100,
4bd7df8b 33127 "type" : "integer",
8dd66e12 33128 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
33129 }
33130 }
33131 },
44660702
DM
33132 "permissions" : {
33133 "check" : [
33134 "perm",
33135 "/vms/{vmid}",
33136 [
33137 "VM.Audit"
33138 ]
33139 ]
33140 },
56122987
DM
33141 "returns" : {
33142 "items" : {
56122987 33143 "properties" : {
44660702
DM
33144 "comment" : {
33145 "optional" : 1,
56122987
DM
33146 "type" : "string"
33147 },
56122987 33148 "digest" : {
82551b2b
TL
33149 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
33150 "maxLength" : 64,
44660702
DM
33151 "optional" : 0,
33152 "type" : "string"
33153 },
33154 "name" : {
4d47f125
TL
33155 "description" : "IP set name.",
33156 "maxLength" : 64,
33157 "minLength" : 2,
33158 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 33159 "type" : "string"
56122987 33160 }
44660702
DM
33161 },
33162 "type" : "object"
33163 },
33164 "links" : [
33165 {
33166 "href" : "{name}",
33167 "rel" : "child"
56122987 33168 }
4d47f125
TL
33169 ],
33170 "type" : "array"
33171 }
33172 },
33173 "POST" : {
e9cd3bd4 33174 "allowtoken" : 1,
4d47f125
TL
33175 "description" : "Create new IPSet",
33176 "method" : "POST",
33177 "name" : "create_ipset",
33178 "parameters" : {
33179 "additionalProperties" : 0,
33180 "properties" : {
33181 "comment" : {
33182 "optional" : 1,
33183 "type" : "string",
33184 "typetext" : "<string>"
33185 },
33186 "digest" : {
82551b2b
TL
33187 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
33188 "maxLength" : 64,
4d47f125
TL
33189 "optional" : 1,
33190 "type" : "string",
33191 "typetext" : "<string>"
33192 },
33193 "name" : {
33194 "description" : "IP set name.",
33195 "maxLength" : 64,
33196 "minLength" : 2,
33197 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
33198 "type" : "string"
33199 },
33200 "node" : {
33201 "description" : "The cluster node name.",
33202 "format" : "pve-node",
33203 "type" : "string",
33204 "typetext" : "<string>"
33205 },
33206 "rename" : {
33207 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
33208 "maxLength" : 64,
33209 "minLength" : 2,
33210 "optional" : 1,
33211 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
33212 "type" : "string"
33213 },
33214 "vmid" : {
33215 "description" : "The (unique) ID of the VM.",
33216 "format" : "pve-vmid",
8dd66e12
TL
33217 "maximum" : 999999999,
33218 "minimum" : 100,
4d47f125 33219 "type" : "integer",
8dd66e12 33220 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33221 }
33222 }
33223 },
33224 "permissions" : {
33225 "check" : [
33226 "perm",
33227 "/vms/{vmid}",
33228 [
33229 "VM.Config.Network"
33230 ]
33231 ]
33232 },
33233 "protected" : 1,
33234 "returns" : {
33235 "type" : "null"
33236 }
33237 }
33238 },
33239 "leaf" : 0,
33240 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
33241 "text" : "ipset"
33242 },
33243 {
33244 "info" : {
33245 "GET" : {
e9cd3bd4 33246 "allowtoken" : 1,
4d47f125
TL
33247 "description" : "Get VM firewall options.",
33248 "method" : "GET",
33249 "name" : "get_options",
33250 "parameters" : {
33251 "additionalProperties" : 0,
33252 "properties" : {
33253 "node" : {
33254 "description" : "The cluster node name.",
33255 "format" : "pve-node",
33256 "type" : "string",
33257 "typetext" : "<string>"
33258 },
33259 "vmid" : {
33260 "description" : "The (unique) ID of the VM.",
33261 "format" : "pve-vmid",
8dd66e12
TL
33262 "maximum" : 999999999,
33263 "minimum" : 100,
4d47f125 33264 "type" : "integer",
8dd66e12 33265 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33266 }
33267 }
33268 },
33269 "permissions" : {
33270 "check" : [
33271 "perm",
33272 "/vms/{vmid}",
33273 [
33274 "VM.Audit"
33275 ]
33276 ]
33277 },
33278 "proxyto" : "node",
33279 "returns" : {
33280 "properties" : {
33281 "dhcp" : {
5c1699e5 33282 "default" : 0,
4d47f125
TL
33283 "description" : "Enable DHCP.",
33284 "optional" : 1,
33285 "type" : "boolean"
33286 },
33287 "enable" : {
5c1699e5 33288 "default" : 0,
4d47f125
TL
33289 "description" : "Enable/disable firewall rules.",
33290 "optional" : 1,
33291 "type" : "boolean"
33292 },
33293 "ipfilter" : {
33294 "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.",
33295 "optional" : 1,
33296 "type" : "boolean"
33297 },
33298 "log_level_in" : {
33299 "description" : "Log level for incoming traffic.",
33300 "enum" : [
33301 "emerg",
33302 "alert",
33303 "crit",
33304 "err",
33305 "warning",
33306 "notice",
33307 "info",
33308 "debug",
33309 "nolog"
33310 ],
33311 "optional" : 1,
33312 "type" : "string"
33313 },
33314 "log_level_out" : {
33315 "description" : "Log level for outgoing traffic.",
33316 "enum" : [
33317 "emerg",
33318 "alert",
33319 "crit",
33320 "err",
33321 "warning",
33322 "notice",
33323 "info",
33324 "debug",
33325 "nolog"
33326 ],
33327 "optional" : 1,
33328 "type" : "string"
33329 },
33330 "macfilter" : {
de786b48 33331 "default" : 1,
4d47f125
TL
33332 "description" : "Enable/disable MAC address filter.",
33333 "optional" : 1,
33334 "type" : "boolean"
33335 },
33336 "ndp" : {
5c1699e5
TL
33337 "default" : 0,
33338 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
33339 "optional" : 1,
33340 "type" : "boolean"
33341 },
33342 "policy_in" : {
33343 "description" : "Input policy.",
33344 "enum" : [
33345 "ACCEPT",
33346 "REJECT",
33347 "DROP"
33348 ],
33349 "optional" : 1,
33350 "type" : "string"
33351 },
33352 "policy_out" : {
33353 "description" : "Output policy.",
33354 "enum" : [
33355 "ACCEPT",
33356 "REJECT",
33357 "DROP"
33358 ],
33359 "optional" : 1,
33360 "type" : "string"
33361 },
33362 "radv" : {
33363 "description" : "Allow sending Router Advertisement.",
33364 "optional" : 1,
33365 "type" : "boolean"
33366 }
33367 },
33368 "type" : "object"
7aacca6f
DM
33369 }
33370 },
4d47f125 33371 "PUT" : {
e9cd3bd4 33372 "allowtoken" : 1,
4d47f125
TL
33373 "description" : "Set Firewall options.",
33374 "method" : "PUT",
33375 "name" : "set_options",
7aacca6f
DM
33376 "parameters" : {
33377 "additionalProperties" : 0,
33378 "properties" : {
4d47f125
TL
33379 "delete" : {
33380 "description" : "A list of settings you want to delete.",
33381 "format" : "pve-configid-list",
7aacca6f 33382 "optional" : 1,
013dc89f
DM
33383 "type" : "string",
33384 "typetext" : "<string>"
7aacca6f 33385 },
4d47f125 33386 "dhcp" : {
5c1699e5 33387 "default" : 0,
4d47f125
TL
33388 "description" : "Enable DHCP.",
33389 "optional" : 1,
33390 "type" : "boolean",
33391 "typetext" : "<boolean>"
7aacca6f 33392 },
4d47f125 33393 "digest" : {
82551b2b
TL
33394 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
33395 "maxLength" : 64,
4d47f125 33396 "optional" : 1,
013dc89f
DM
33397 "type" : "string",
33398 "typetext" : "<string>"
7aacca6f 33399 },
4d47f125 33400 "enable" : {
5c1699e5 33401 "default" : 0,
4d47f125
TL
33402 "description" : "Enable/disable firewall rules.",
33403 "optional" : 1,
33404 "type" : "boolean",
33405 "typetext" : "<boolean>"
33406 },
33407 "ipfilter" : {
33408 "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.",
33409 "optional" : 1,
33410 "type" : "boolean",
33411 "typetext" : "<boolean>"
56122987 33412 },
4d47f125
TL
33413 "log_level_in" : {
33414 "description" : "Log level for incoming traffic.",
33415 "enum" : [
33416 "emerg",
33417 "alert",
33418 "crit",
33419 "err",
33420 "warning",
33421 "notice",
33422 "info",
33423 "debug",
33424 "nolog"
33425 ],
33426 "optional" : 1,
33427 "type" : "string"
44660702 33428 },
4d47f125
TL
33429 "log_level_out" : {
33430 "description" : "Log level for outgoing traffic.",
33431 "enum" : [
33432 "emerg",
33433 "alert",
33434 "crit",
33435 "err",
33436 "warning",
33437 "notice",
33438 "info",
33439 "debug",
33440 "nolog"
33441 ],
33442 "optional" : 1,
33443 "type" : "string"
44660702 33444 },
4d47f125 33445 "macfilter" : {
de786b48 33446 "default" : 1,
4d47f125
TL
33447 "description" : "Enable/disable MAC address filter.",
33448 "optional" : 1,
33449 "type" : "boolean",
33450 "typetext" : "<boolean>"
7aacca6f 33451 },
4d47f125 33452 "ndp" : {
5c1699e5
TL
33453 "default" : 0,
33454 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
33455 "optional" : 1,
33456 "type" : "boolean",
33457 "typetext" : "<boolean>"
7aacca6f 33458 },
4d47f125
TL
33459 "node" : {
33460 "description" : "The cluster node name.",
33461 "format" : "pve-node",
33462 "type" : "string",
33463 "typetext" : "<string>"
33464 },
33465 "policy_in" : {
33466 "description" : "Input policy.",
33467 "enum" : [
33468 "ACCEPT",
33469 "REJECT",
33470 "DROP"
44660702 33471 ],
4d47f125
TL
33472 "optional" : 1,
33473 "type" : "string"
33474 },
33475 "policy_out" : {
33476 "description" : "Output policy.",
33477 "enum" : [
33478 "ACCEPT",
33479 "REJECT",
33480 "DROP"
33481 ],
33482 "optional" : 1,
33483 "type" : "string"
33484 },
33485 "radv" : {
33486 "description" : "Allow sending Router Advertisement.",
33487 "optional" : 1,
33488 "type" : "boolean",
33489 "typetext" : "<boolean>"
33490 },
33491 "vmid" : {
33492 "description" : "The (unique) ID of the VM.",
33493 "format" : "pve-vmid",
8dd66e12
TL
33494 "maximum" : 999999999,
33495 "minimum" : 100,
4d47f125 33496 "type" : "integer",
8dd66e12 33497 "typetext" : "<integer> (100 - 999999999)"
44660702 33498 }
4d47f125
TL
33499 }
33500 },
33501 "permissions" : {
33502 "check" : [
33503 "perm",
33504 "/vms/{vmid}",
33505 [
33506 "VM.Config.Network"
33507 ]
33508 ]
33509 },
33510 "protected" : 1,
33511 "proxyto" : "node",
33512 "returns" : {
33513 "type" : "null"
33514 }
33515 }
33516 },
33517 "leaf" : 1,
33518 "path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
33519 "text" : "options"
33520 },
33521 {
33522 "info" : {
33523 "GET" : {
e9cd3bd4 33524 "allowtoken" : 1,
4d47f125
TL
33525 "description" : "Read firewall log",
33526 "method" : "GET",
33527 "name" : "log",
33528 "parameters" : {
33529 "additionalProperties" : 0,
33530 "properties" : {
33531 "limit" : {
33532 "minimum" : 0,
33533 "optional" : 1,
33534 "type" : "integer",
33535 "typetext" : "<integer> (0 - N)"
44660702 33536 },
4d47f125
TL
33537 "node" : {
33538 "description" : "The cluster node name.",
33539 "format" : "pve-node",
33540 "type" : "string",
33541 "typetext" : "<string>"
44660702 33542 },
9d2e98ed
TL
33543 "since" : {
33544 "description" : "Display log since this UNIX epoch.",
33545 "minimum" : 0,
33546 "optional" : 1,
33547 "type" : "integer",
33548 "typetext" : "<integer> (0 - N)"
33549 },
4d47f125
TL
33550 "start" : {
33551 "minimum" : 0,
33552 "optional" : 1,
33553 "type" : "integer",
33554 "typetext" : "<integer> (0 - N)"
33555 },
9d2e98ed
TL
33556 "until" : {
33557 "description" : "Display log until this UNIX epoch.",
33558 "minimum" : 0,
33559 "optional" : 1,
33560 "type" : "integer",
33561 "typetext" : "<integer> (0 - N)"
33562 },
4d47f125
TL
33563 "vmid" : {
33564 "description" : "The (unique) ID of the VM.",
33565 "format" : "pve-vmid",
8dd66e12
TL
33566 "maximum" : 999999999,
33567 "minimum" : 100,
4d47f125 33568 "type" : "integer",
8dd66e12 33569 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
33570 }
33571 }
33572 },
4d47f125
TL
33573 "permissions" : {
33574 "check" : [
33575 "perm",
33576 "/vms/{vmid}",
33577 [
33578 "VM.Console"
33579 ]
33580 ]
33581 },
33582 "protected" : 1,
33583 "proxyto" : "node",
33584 "returns" : {
33585 "items" : {
33586 "properties" : {
33587 "n" : {
33588 "description" : "Line number",
33589 "type" : "integer"
33590 },
33591 "t" : {
33592 "description" : "Line text",
33593 "type" : "string"
33594 }
33595 },
33596 "type" : "object"
33597 },
33598 "type" : "array"
33599 }
44660702 33600 }
4d47f125
TL
33601 },
33602 "leaf" : 1,
33603 "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
33604 "text" : "log"
33605 },
33606 {
44660702
DM
33607 "info" : {
33608 "GET" : {
e9cd3bd4 33609 "allowtoken" : 1,
4d47f125 33610 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702 33611 "method" : "GET",
4d47f125 33612 "name" : "refs",
44660702
DM
33613 "parameters" : {
33614 "additionalProperties" : 0,
33615 "properties" : {
33616 "node" : {
33617 "description" : "The cluster node name.",
33618 "format" : "pve-node",
013dc89f
DM
33619 "type" : "string",
33620 "typetext" : "<string>"
44660702 33621 },
4d47f125
TL
33622 "type" : {
33623 "description" : "Only list references of specified type.",
33624 "enum" : [
33625 "alias",
33626 "ipset"
33627 ],
33628 "optional" : 1,
33629 "type" : "string"
33630 },
44660702
DM
33631 "vmid" : {
33632 "description" : "The (unique) ID of the VM.",
33633 "format" : "pve-vmid",
8dd66e12
TL
33634 "maximum" : 999999999,
33635 "minimum" : 100,
4bd7df8b 33636 "type" : "integer",
8dd66e12 33637 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
33638 }
33639 }
33640 },
4d47f125
TL
33641 "permissions" : {
33642 "check" : [
33643 "perm",
33644 "/vms/{vmid}",
33645 [
33646 "VM.Audit"
33647 ]
33648 ]
33649 },
33650 "returns" : {
33651 "items" : {
33652 "properties" : {
33653 "comment" : {
33654 "optional" : 1,
33655 "type" : "string"
33656 },
33657 "name" : {
33658 "type" : "string"
33659 },
07b013aa
TL
33660 "ref" : {
33661 "type" : "string"
33662 },
33663 "scope" : {
33664 "type" : "string"
33665 },
4d47f125
TL
33666 "type" : {
33667 "enum" : [
33668 "alias",
33669 "ipset"
33670 ],
33671 "type" : "string"
33672 }
33673 },
33674 "type" : "object"
33675 },
33676 "type" : "array"
33677 }
33678 }
33679 },
33680 "leaf" : 1,
33681 "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
33682 "text" : "refs"
33683 }
33684 ],
33685 "info" : {
33686 "GET" : {
e9cd3bd4 33687 "allowtoken" : 1,
4d47f125
TL
33688 "description" : "Directory index.",
33689 "method" : "GET",
33690 "name" : "index",
33691 "parameters" : {
33692 "additionalProperties" : 0,
33693 "properties" : {
33694 "node" : {
33695 "description" : "The cluster node name.",
33696 "format" : "pve-node",
33697 "type" : "string",
33698 "typetext" : "<string>"
33699 },
33700 "vmid" : {
33701 "description" : "The (unique) ID of the VM.",
33702 "format" : "pve-vmid",
8dd66e12
TL
33703 "maximum" : 999999999,
33704 "minimum" : 100,
4d47f125 33705 "type" : "integer",
8dd66e12 33706 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33707 }
33708 }
33709 },
33710 "permissions" : {
33711 "user" : "all"
33712 },
33713 "returns" : {
33714 "items" : {
33715 "properties" : {},
33716 "type" : "object"
33717 },
33718 "links" : [
33719 {
33720 "href" : "{name}",
33721 "rel" : "child"
33722 }
33723 ],
33724 "type" : "array"
33725 }
33726 }
33727 },
33728 "leaf" : 0,
33729 "path" : "/nodes/{node}/lxc/{vmid}/firewall",
33730 "text" : "firewall"
33731 },
33732 {
33733 "info" : {
33734 "GET" : {
e9cd3bd4 33735 "allowtoken" : 1,
4d47f125
TL
33736 "description" : "Read VM RRD statistics (returns PNG)",
33737 "method" : "GET",
33738 "name" : "rrd",
33739 "parameters" : {
33740 "additionalProperties" : 0,
33741 "properties" : {
33742 "cf" : {
33743 "description" : "The RRD consolidation function",
33744 "enum" : [
33745 "AVERAGE",
33746 "MAX"
33747 ],
33748 "optional" : 1,
33749 "type" : "string"
33750 },
33751 "ds" : {
33752 "description" : "The list of datasources you want to display.",
33753 "format" : "pve-configid-list",
33754 "type" : "string",
33755 "typetext" : "<string>"
33756 },
33757 "node" : {
33758 "description" : "The cluster node name.",
33759 "format" : "pve-node",
33760 "type" : "string",
33761 "typetext" : "<string>"
33762 },
33763 "timeframe" : {
33764 "description" : "Specify the time frame you are interested in.",
33765 "enum" : [
33766 "hour",
33767 "day",
33768 "week",
33769 "month",
33770 "year"
33771 ],
33772 "type" : "string"
33773 },
33774 "vmid" : {
33775 "description" : "The (unique) ID of the VM.",
33776 "format" : "pve-vmid",
8dd66e12
TL
33777 "maximum" : 999999999,
33778 "minimum" : 100,
4d47f125 33779 "type" : "integer",
8dd66e12 33780 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33781 }
33782 }
33783 },
33784 "permissions" : {
33785 "check" : [
33786 "perm",
33787 "/vms/{vmid}",
33788 [
33789 "VM.Audit"
33790 ]
33791 ]
33792 },
33793 "protected" : 1,
33794 "returns" : {
33795 "properties" : {
33796 "filename" : {
33797 "type" : "string"
33798 }
33799 },
33800 "type" : "object"
33801 }
33802 }
33803 },
33804 "leaf" : 1,
33805 "path" : "/nodes/{node}/lxc/{vmid}/rrd",
33806 "text" : "rrd"
33807 },
33808 {
33809 "info" : {
33810 "GET" : {
e9cd3bd4 33811 "allowtoken" : 1,
4d47f125
TL
33812 "description" : "Read VM RRD statistics",
33813 "method" : "GET",
33814 "name" : "rrddata",
33815 "parameters" : {
33816 "additionalProperties" : 0,
33817 "properties" : {
33818 "cf" : {
33819 "description" : "The RRD consolidation function",
33820 "enum" : [
33821 "AVERAGE",
33822 "MAX"
33823 ],
33824 "optional" : 1,
33825 "type" : "string"
33826 },
33827 "node" : {
33828 "description" : "The cluster node name.",
33829 "format" : "pve-node",
33830 "type" : "string",
33831 "typetext" : "<string>"
44660702 33832 },
4d47f125
TL
33833 "timeframe" : {
33834 "description" : "Specify the time frame you are interested in.",
33835 "enum" : [
33836 "hour",
33837 "day",
33838 "week",
33839 "month",
33840 "year"
44660702 33841 ],
4d47f125
TL
33842 "type" : "string"
33843 },
33844 "vmid" : {
33845 "description" : "The (unique) ID of the VM.",
33846 "format" : "pve-vmid",
8dd66e12
TL
33847 "maximum" : 999999999,
33848 "minimum" : 100,
4d47f125 33849 "type" : "integer",
8dd66e12 33850 "typetext" : "<integer> (100 - 999999999)"
44660702 33851 }
4d47f125
TL
33852 }
33853 },
33854 "permissions" : {
33855 "check" : [
33856 "perm",
33857 "/vms/{vmid}",
33858 [
33859 "VM.Audit"
33860 ]
33861 ]
33862 },
33863 "protected" : 1,
33864 "returns" : {
33865 "items" : {
33866 "properties" : {},
33867 "type" : "object"
44660702 33868 },
4d47f125
TL
33869 "type" : "array"
33870 }
33871 }
33872 },
33873 "leaf" : 1,
33874 "path" : "/nodes/{node}/lxc/{vmid}/rrddata",
33875 "text" : "rrddata"
33876 },
33877 {
33878 "info" : {
33879 "POST" : {
e9cd3bd4 33880 "allowtoken" : 1,
4d47f125
TL
33881 "description" : "Creates a TCP VNC proxy connections.",
33882 "method" : "POST",
33883 "name" : "vncproxy",
33884 "parameters" : {
33885 "additionalProperties" : 0,
33886 "properties" : {
33887 "height" : {
33888 "description" : "sets the height of the console in pixels.",
33889 "maximum" : 2160,
33890 "minimum" : 16,
33891 "optional" : 1,
33892 "type" : "integer",
33893 "typetext" : "<integer> (16 - 2160)"
44660702 33894 },
4d47f125
TL
33895 "node" : {
33896 "description" : "The cluster node name.",
33897 "format" : "pve-node",
33898 "type" : "string",
33899 "typetext" : "<string>"
44660702 33900 },
4d47f125
TL
33901 "vmid" : {
33902 "description" : "The (unique) ID of the VM.",
33903 "format" : "pve-vmid",
8dd66e12
TL
33904 "maximum" : 999999999,
33905 "minimum" : 100,
4d47f125 33906 "type" : "integer",
8dd66e12 33907 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33908 },
33909 "websocket" : {
33910 "description" : "use websocket instead of standard VNC.",
33911 "optional" : 1,
33912 "type" : "boolean",
33913 "typetext" : "<boolean>"
33914 },
33915 "width" : {
33916 "description" : "sets the width of the console in pixels.",
33917 "maximum" : 4096,
33918 "minimum" : 16,
33919 "optional" : 1,
33920 "type" : "integer",
33921 "typetext" : "<integer> (16 - 4096)"
56122987
DM
33922 }
33923 }
44660702 33924 },
4d47f125
TL
33925 "permissions" : {
33926 "check" : [
33927 "perm",
33928 "/vms/{vmid}",
33929 [
33930 "VM.Console"
33931 ]
33932 ]
33933 },
33934 "protected" : 1,
33935 "returns" : {
33936 "additionalProperties" : 0,
33937 "properties" : {
33938 "cert" : {
33939 "type" : "string"
44660702 33940 },
4d47f125
TL
33941 "port" : {
33942 "type" : "integer"
33943 },
33944 "ticket" : {
33945 "type" : "string"
33946 },
33947 "upid" : {
33948 "type" : "string"
33949 },
33950 "user" : {
33951 "type" : "string"
33952 }
33953 }
33954 }
33955 }
33956 },
33957 "leaf" : 1,
33958 "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
33959 "text" : "vncproxy"
33960 },
33961 {
33962 "info" : {
33963 "POST" : {
e9cd3bd4 33964 "allowtoken" : 1,
4d47f125
TL
33965 "description" : "Creates a TCP proxy connection.",
33966 "method" : "POST",
33967 "name" : "termproxy",
33968 "parameters" : {
33969 "additionalProperties" : 0,
33970 "properties" : {
33971 "node" : {
33972 "description" : "The cluster node name.",
33973 "format" : "pve-node",
33974 "type" : "string",
33975 "typetext" : "<string>"
44660702 33976 },
4d47f125
TL
33977 "vmid" : {
33978 "description" : "The (unique) ID of the VM.",
33979 "format" : "pve-vmid",
8dd66e12
TL
33980 "maximum" : 999999999,
33981 "minimum" : 100,
4d47f125 33982 "type" : "integer",
8dd66e12 33983 "typetext" : "<integer> (100 - 999999999)"
44660702 33984 }
4d47f125
TL
33985 }
33986 },
33987 "permissions" : {
33988 "check" : [
33989 "perm",
33990 "/vms/{vmid}",
33991 [
33992 "VM.Console"
33993 ]
33994 ]
33995 },
33996 "protected" : 1,
33997 "returns" : {
33998 "additionalProperties" : 0,
33999 "properties" : {
34000 "port" : {
34001 "type" : "integer"
56122987 34002 },
4d47f125
TL
34003 "ticket" : {
34004 "type" : "string"
7aacca6f 34005 },
4d47f125
TL
34006 "upid" : {
34007 "type" : "string"
34008 },
34009 "user" : {
34010 "type" : "string"
34011 }
34012 }
34013 }
34014 }
34015 },
34016 "leaf" : 1,
34017 "path" : "/nodes/{node}/lxc/{vmid}/termproxy",
34018 "text" : "termproxy"
34019 },
34020 {
34021 "info" : {
34022 "GET" : {
e9cd3bd4 34023 "allowtoken" : 1,
4d47f125
TL
34024 "description" : "Opens a weksocket for VNC traffic.",
34025 "method" : "GET",
34026 "name" : "vncwebsocket",
34027 "parameters" : {
34028 "additionalProperties" : 0,
34029 "properties" : {
34030 "node" : {
34031 "description" : "The cluster node name.",
34032 "format" : "pve-node",
34033 "type" : "string",
34034 "typetext" : "<string>"
34035 },
34036 "port" : {
34037 "description" : "Port number returned by previous vncproxy call.",
34038 "maximum" : 5999,
34039 "minimum" : 5900,
34040 "type" : "integer",
34041 "typetext" : "<integer> (5900 - 5999)"
34042 },
34043 "vmid" : {
34044 "description" : "The (unique) ID of the VM.",
34045 "format" : "pve-vmid",
8dd66e12
TL
34046 "maximum" : 999999999,
34047 "minimum" : 100,
4d47f125 34048 "type" : "integer",
8dd66e12 34049 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
34050 },
34051 "vncticket" : {
34052 "description" : "Ticket from previous call to vncproxy.",
34053 "maxLength" : 512,
34054 "type" : "string",
34055 "typetext" : "<string>"
56122987
DM
34056 }
34057 }
34058 },
4d47f125
TL
34059 "permissions" : {
34060 "check" : [
34061 "perm",
34062 "/vms/{vmid}",
34063 [
34064 "VM.Console"
34065 ]
34066 ],
34067 "description" : "You also need to pass a valid ticket (vncticket)."
34068 },
34069 "returns" : {
34070 "properties" : {
34071 "port" : {
34072 "type" : "string"
34073 }
34074 },
34075 "type" : "object"
34076 }
34077 }
34078 },
34079 "leaf" : 1,
34080 "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
34081 "text" : "vncwebsocket"
34082 },
34083 {
34084 "info" : {
34085 "POST" : {
e9cd3bd4 34086 "allowtoken" : 1,
4d47f125
TL
34087 "description" : "Returns a SPICE configuration to connect to the CT.",
34088 "method" : "POST",
34089 "name" : "spiceproxy",
34090 "parameters" : {
34091 "additionalProperties" : 0,
34092 "properties" : {
34093 "node" : {
34094 "description" : "The cluster node name.",
34095 "format" : "pve-node",
34096 "type" : "string",
34097 "typetext" : "<string>"
56122987 34098 },
4d47f125
TL
34099 "proxy" : {
34100 "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).",
34101 "format" : "address",
34102 "optional" : 1,
34103 "type" : "string",
34104 "typetext" : "<string>"
44660702 34105 },
4d47f125
TL
34106 "vmid" : {
34107 "description" : "The (unique) ID of the VM.",
34108 "format" : "pve-vmid",
8dd66e12
TL
34109 "maximum" : 999999999,
34110 "minimum" : 100,
4d47f125 34111 "type" : "integer",
8dd66e12 34112 "typetext" : "<integer> (100 - 999999999)"
44660702 34113 }
56122987
DM
34114 }
34115 },
4d47f125
TL
34116 "permissions" : {
34117 "check" : [
34118 "perm",
34119 "/vms/{vmid}",
34120 [
34121 "VM.Console"
34122 ]
34123 ]
34124 },
34125 "protected" : 1,
34126 "proxyto" : "node",
34127 "returns" : {
34128 "additionalProperties" : 1,
34129 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
34130 "properties" : {
34131 "host" : {
34132 "type" : "string"
34133 },
34134 "password" : {
34135 "type" : "string"
34136 },
34137 "proxy" : {
34138 "type" : "string"
34139 },
34140 "tls-port" : {
34141 "type" : "integer"
34142 },
34143 "type" : {
34144 "type" : "string"
34145 }
34146 }
34147 }
34148 }
34149 },
34150 "leaf" : 1,
34151 "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
34152 "text" : "spiceproxy"
34153 },
81a3384d
TL
34154 {
34155 "info" : {
34156 "POST" : {
34157 "allowtoken" : 1,
34158 "description" : "Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!",
34159 "method" : "POST",
34160 "name" : "remote_migrate_vm",
34161 "parameters" : {
34162 "additionalProperties" : 0,
34163 "properties" : {
34164 "bwlimit" : {
34165 "default" : "migrate limit from datacenter or storage config",
34166 "description" : "Override I/O bandwidth limit (in KiB/s).",
34167 "minimum" : "0",
34168 "optional" : 1,
34169 "type" : "number",
34170 "typetext" : "<number> (0 - N)"
34171 },
34172 "delete" : {
34173 "default" : 0,
34174 "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.",
34175 "optional" : 1,
34176 "type" : "boolean",
34177 "typetext" : "<boolean>"
34178 },
34179 "node" : {
34180 "description" : "The cluster node name.",
34181 "format" : "pve-node",
34182 "type" : "string",
34183 "typetext" : "<string>"
34184 },
34185 "online" : {
34186 "description" : "Use online/live migration.",
34187 "optional" : 1,
34188 "type" : "boolean",
34189 "typetext" : "<boolean>"
34190 },
34191 "restart" : {
34192 "description" : "Use restart migration",
34193 "optional" : 1,
34194 "type" : "boolean",
34195 "typetext" : "<boolean>"
34196 },
34197 "target-bridge" : {
34198 "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.",
34199 "format" : "bridge-pair-list",
34200 "type" : "string",
34201 "typetext" : "<string>"
34202 },
34203 "target-endpoint" : {
34204 "description" : "Remote target endpoint",
34205 "format" : "proxmox-remote",
34206 "type" : "string",
34207 "typetext" : "apitoken=<A full Proxmox API token including the secret value.> ,host=<Remote Proxmox hostname or IP> [,fingerprint=<Remote host's certificate fingerprint, if not trusted by system store.>] [,port=<integer>]"
34208 },
34209 "target-storage" : {
34210 "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.",
34211 "format" : "storage-pair-list",
34212 "optional" : 0,
34213 "type" : "string",
34214 "typetext" : "<string>"
34215 },
34216 "target-vmid" : {
34217 "description" : "The (unique) ID of the VM.",
34218 "format" : "pve-vmid",
8dd66e12
TL
34219 "maximum" : 999999999,
34220 "minimum" : 100,
81a3384d
TL
34221 "optional" : 1,
34222 "type" : "integer",
8dd66e12 34223 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
34224 },
34225 "timeout" : {
34226 "default" : 180,
34227 "description" : "Timeout in seconds for shutdown for restart migration",
34228 "optional" : 1,
34229 "type" : "integer",
34230 "typetext" : "<integer>"
34231 },
34232 "vmid" : {
34233 "description" : "The (unique) ID of the VM.",
34234 "format" : "pve-vmid",
8dd66e12
TL
34235 "maximum" : 999999999,
34236 "minimum" : 100,
81a3384d 34237 "type" : "integer",
8dd66e12 34238 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
34239 }
34240 }
34241 },
34242 "permissions" : {
34243 "check" : [
34244 "perm",
34245 "/vms/{vmid}",
34246 [
34247 "VM.Migrate"
34248 ]
34249 ]
34250 },
34251 "protected" : 1,
34252 "proxyto" : "node",
34253 "returns" : {
34254 "description" : "the task ID.",
34255 "type" : "string"
34256 }
34257 }
34258 },
34259 "leaf" : 1,
34260 "path" : "/nodes/{node}/lxc/{vmid}/remote_migrate",
34261 "text" : "remote_migrate"
34262 },
4d47f125
TL
34263 {
34264 "info" : {
34265 "POST" : {
e9cd3bd4 34266 "allowtoken" : 1,
4d47f125
TL
34267 "description" : "Migrate the container to another node. Creates a new migration task.",
34268 "method" : "POST",
34269 "name" : "migrate_vm",
34270 "parameters" : {
34271 "additionalProperties" : 0,
34272 "properties" : {
95895385
TL
34273 "bwlimit" : {
34274 "default" : "migrate limit from datacenter or storage config",
34275 "description" : "Override I/O bandwidth limit (in KiB/s).",
34276 "minimum" : "0",
34277 "optional" : 1,
34278 "type" : "number",
34279 "typetext" : "<number> (0 - N)"
34280 },
4d47f125
TL
34281 "node" : {
34282 "description" : "The cluster node name.",
34283 "format" : "pve-node",
34284 "type" : "string",
34285 "typetext" : "<string>"
44660702 34286 },
4d47f125
TL
34287 "online" : {
34288 "description" : "Use online/live migration.",
34289 "optional" : 1,
34290 "type" : "boolean",
34291 "typetext" : "<boolean>"
34292 },
34293 "restart" : {
34294 "description" : "Use restart migration",
34295 "optional" : 1,
34296 "type" : "boolean",
34297 "typetext" : "<boolean>"
34298 },
34299 "target" : {
34300 "description" : "Target node.",
34301 "format" : "pve-node",
34302 "type" : "string",
34303 "typetext" : "<string>"
34304 },
c30bb419
TL
34305 "target-storage" : {
34306 "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.",
34307 "format" : "storage-pair-list",
34308 "optional" : 1,
34309 "type" : "string",
34310 "typetext" : "<string>"
34311 },
4d47f125
TL
34312 "timeout" : {
34313 "default" : 180,
34314 "description" : "Timeout in seconds for shutdown for restart migration",
34315 "optional" : 1,
34316 "type" : "integer",
34317 "typetext" : "<integer>"
34318 },
34319 "vmid" : {
34320 "description" : "The (unique) ID of the VM.",
34321 "format" : "pve-vmid",
8dd66e12
TL
34322 "maximum" : 999999999,
34323 "minimum" : 100,
4d47f125 34324 "type" : "integer",
8dd66e12 34325 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
34326 }
34327 }
34328 },
4d47f125
TL
34329 "permissions" : {
34330 "check" : [
34331 "perm",
34332 "/vms/{vmid}",
34333 [
34334 "VM.Migrate"
34335 ]
34336 ]
34337 },
34338 "protected" : 1,
34339 "proxyto" : "node",
34340 "returns" : {
34341 "description" : "the task ID.",
34342 "type" : "string"
34343 }
56122987 34344 }
4d47f125
TL
34345 },
34346 "leaf" : 1,
34347 "path" : "/nodes/{node}/lxc/{vmid}/migrate",
34348 "text" : "migrate"
34349 },
34350 {
56122987
DM
34351 "info" : {
34352 "GET" : {
e9cd3bd4 34353 "allowtoken" : 1,
4d47f125 34354 "description" : "Check if feature for virtual machine is available.",
44660702 34355 "method" : "GET",
4d47f125 34356 "name" : "vm_feature",
56122987 34357 "parameters" : {
44660702 34358 "additionalProperties" : 0,
56122987 34359 "properties" : {
4d47f125
TL
34360 "feature" : {
34361 "description" : "Feature to check.",
34362 "enum" : [
34363 "snapshot",
34364 "clone",
34365 "copy"
34366 ],
34367 "type" : "string"
34368 },
56122987 34369 "node" : {
44660702 34370 "description" : "The cluster node name.",
56122987 34371 "format" : "pve-node",
013dc89f
DM
34372 "type" : "string",
34373 "typetext" : "<string>"
44660702 34374 },
4d47f125
TL
34375 "snapname" : {
34376 "description" : "The name of the snapshot.",
34377 "format" : "pve-configid",
34378 "maxLength" : 40,
34379 "optional" : 1,
34380 "type" : "string",
34381 "typetext" : "<string>"
34382 },
44660702
DM
34383 "vmid" : {
34384 "description" : "The (unique) ID of the VM.",
34385 "format" : "pve-vmid",
8dd66e12
TL
34386 "maximum" : 999999999,
34387 "minimum" : 100,
4bd7df8b 34388 "type" : "integer",
8dd66e12 34389 "typetext" : "<integer> (100 - 999999999)"
56122987 34390 }
44660702
DM
34391 }
34392 },
34393 "permissions" : {
4d47f125
TL
34394 "check" : [
34395 "perm",
34396 "/vms/{vmid}",
34397 [
34398 "VM.Audit"
34399 ]
34400 ]
56122987 34401 },
4d47f125
TL
34402 "protected" : 1,
34403 "proxyto" : "node",
56122987 34404 "returns" : {
4d47f125
TL
34405 "properties" : {
34406 "hasFeature" : {
34407 "type" : "boolean"
34408 }
7aacca6f 34409 },
4d47f125
TL
34410 "type" : "object"
34411 }
34412 }
34413 },
34414 "leaf" : 1,
34415 "path" : "/nodes/{node}/lxc/{vmid}/feature",
34416 "text" : "feature"
34417 },
34418 {
34419 "info" : {
34420 "POST" : {
e9cd3bd4 34421 "allowtoken" : 1,
4d47f125
TL
34422 "description" : "Create a Template.",
34423 "method" : "POST",
34424 "name" : "template",
34425 "parameters" : {
34426 "additionalProperties" : 0,
34427 "properties" : {
34428 "node" : {
34429 "description" : "The cluster node name.",
34430 "format" : "pve-node",
34431 "type" : "string",
34432 "typetext" : "<string>"
34433 },
34434 "vmid" : {
34435 "description" : "The (unique) ID of the VM.",
34436 "format" : "pve-vmid",
8dd66e12
TL
34437 "maximum" : 999999999,
34438 "minimum" : 100,
4d47f125 34439 "type" : "integer",
8dd66e12 34440 "typetext" : "<integer> (100 - 999999999)"
56122987 34441 }
4d47f125
TL
34442 }
34443 },
34444 "permissions" : {
34445 "check" : [
34446 "perm",
34447 "/vms/{vmid}",
34448 [
34449 "VM.Allocate"
34450 ]
44660702 34451 ],
4d47f125
TL
34452 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
34453 },
34454 "protected" : 1,
34455 "proxyto" : "node",
34456 "returns" : {
34457 "type" : "null"
56122987
DM
34458 }
34459 }
34460 },
4d47f125
TL
34461 "leaf" : 1,
34462 "path" : "/nodes/{node}/lxc/{vmid}/template",
34463 "text" : "template"
56122987
DM
34464 },
34465 {
56122987 34466 "info" : {
4d47f125 34467 "POST" : {
e9cd3bd4 34468 "allowtoken" : 1,
4d47f125
TL
34469 "description" : "Create a container clone/copy",
34470 "method" : "POST",
34471 "name" : "clone_vm",
56122987 34472 "parameters" : {
7aacca6f 34473 "additionalProperties" : 0,
56122987 34474 "properties" : {
95895385
TL
34475 "bwlimit" : {
34476 "default" : "clone limit from datacenter or storage config",
34477 "description" : "Override I/O bandwidth limit (in KiB/s).",
34478 "minimum" : "0",
34479 "optional" : 1,
34480 "type" : "number",
34481 "typetext" : "<number> (0 - N)"
34482 },
4d47f125
TL
34483 "description" : {
34484 "description" : "Description for the new CT.",
44660702 34485 "optional" : 1,
4d47f125
TL
34486 "type" : "string",
34487 "typetext" : "<string>"
44660702 34488 },
4d47f125
TL
34489 "full" : {
34490 "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.",
34491 "optional" : 1,
34492 "type" : "boolean",
34493 "typetext" : "<boolean>"
34494 },
34495 "hostname" : {
34496 "description" : "Set a hostname for the new CT.",
34497 "format" : "dns-name",
34498 "optional" : 1,
013dc89f
DM
34499 "type" : "string",
34500 "typetext" : "<string>"
44660702 34501 },
4d47f125
TL
34502 "newid" : {
34503 "description" : "VMID for the clone.",
34504 "format" : "pve-vmid",
8dd66e12
TL
34505 "maximum" : 999999999,
34506 "minimum" : 100,
4d47f125 34507 "type" : "integer",
8dd66e12 34508 "typetext" : "<integer> (100 - 999999999)"
4d47f125 34509 },
7aacca6f
DM
34510 "node" : {
34511 "description" : "The cluster node name.",
44660702 34512 "format" : "pve-node",
013dc89f
DM
34513 "type" : "string",
34514 "typetext" : "<string>"
56122987 34515 },
4d47f125
TL
34516 "pool" : {
34517 "description" : "Add the new CT to the specified pool.",
34518 "format" : "pve-poolid",
34519 "optional" : 1,
34520 "type" : "string",
34521 "typetext" : "<string>"
34522 },
34523 "snapname" : {
34524 "description" : "The name of the snapshot.",
34525 "format" : "pve-configid",
34526 "maxLength" : 40,
34527 "optional" : 1,
34528 "type" : "string",
34529 "typetext" : "<string>"
34530 },
34531 "storage" : {
34532 "description" : "Target storage for full clone.",
34533 "format" : "pve-storage-id",
34534 "optional" : 1,
34535 "type" : "string",
34536 "typetext" : "<string>"
34537 },
34538 "target" : {
34539 "description" : "Target node. Only allowed if the original VM is on shared storage.",
34540 "format" : "pve-node",
34541 "optional" : 1,
34542 "type" : "string",
34543 "typetext" : "<string>"
34544 },
7aacca6f 34545 "vmid" : {
44660702 34546 "description" : "The (unique) ID of the VM.",
7aacca6f 34547 "format" : "pve-vmid",
8dd66e12
TL
34548 "maximum" : 999999999,
34549 "minimum" : 100,
4bd7df8b 34550 "type" : "integer",
8dd66e12 34551 "typetext" : "<integer> (100 - 999999999)"
56122987 34552 }
7aacca6f
DM
34553 }
34554 },
34555 "permissions" : {
34556 "check" : [
4d47f125 34557 "and",
7aacca6f 34558 [
4d47f125
TL
34559 "perm",
34560 "/vms/{vmid}",
34561 [
34562 "VM.Clone"
34563 ]
34564 ],
34565 [
34566 "or",
34567 [
34568 "perm",
34569 "/vms/{newid}",
34570 [
34571 "VM.Allocate"
34572 ]
34573 ],
34574 [
34575 "perm",
34576 "/pool/{pool}",
34577 [
34578 "VM.Allocate"
34579 ],
34580 "require_param",
34581 "pool"
34582 ]
7aacca6f 34583 ]
4d47f125 34584 ],
159464a9 34585 "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 34586 },
44660702 34587 "protected" : 1,
4d47f125 34588 "proxyto" : "node",
7aacca6f 34589 "returns" : {
4d47f125 34590 "type" : "string"
7aacca6f 34591 }
56122987 34592 }
7aacca6f 34593 },
44660702 34594 "leaf" : 1,
4d47f125
TL
34595 "path" : "/nodes/{node}/lxc/{vmid}/clone",
34596 "text" : "clone"
56122987
DM
34597 },
34598 {
56122987 34599 "info" : {
4d47f125 34600 "PUT" : {
e9cd3bd4 34601 "allowtoken" : 1,
4d47f125
TL
34602 "description" : "Resize a container mount point.",
34603 "method" : "PUT",
34604 "name" : "resize_vm",
56122987 34605 "parameters" : {
7aacca6f 34606 "additionalProperties" : 0,
56122987 34607 "properties" : {
4d47f125
TL
34608 "digest" : {
34609 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
34610 "maxLength" : 40,
34611 "optional" : 1,
34612 "type" : "string",
34613 "typetext" : "<string>"
34614 },
34615 "disk" : {
34616 "description" : "The disk you want to resize.",
44660702 34617 "enum" : [
4d47f125
TL
34618 "rootfs",
34619 "mp0",
34620 "mp1",
34621 "mp2",
34622 "mp3",
34623 "mp4",
34624 "mp5",
34625 "mp6",
34626 "mp7",
34627 "mp8",
34628 "mp9",
34629 "mp10",
34630 "mp11",
34631 "mp12",
34632 "mp13",
34633 "mp14",
34634 "mp15",
34635 "mp16",
34636 "mp17",
34637 "mp18",
34638 "mp19",
34639 "mp20",
34640 "mp21",
34641 "mp22",
34642 "mp23",
34643 "mp24",
34644 "mp25",
34645 "mp26",
34646 "mp27",
34647 "mp28",
34648 "mp29",
34649 "mp30",
34650 "mp31",
34651 "mp32",
34652 "mp33",
34653 "mp34",
34654 "mp35",
34655 "mp36",
34656 "mp37",
34657 "mp38",
34658 "mp39",
34659 "mp40",
34660 "mp41",
34661 "mp42",
34662 "mp43",
34663 "mp44",
34664 "mp45",
34665 "mp46",
34666 "mp47",
34667 "mp48",
34668 "mp49",
34669 "mp50",
34670 "mp51",
34671 "mp52",
34672 "mp53",
34673 "mp54",
34674 "mp55",
34675 "mp56",
34676 "mp57",
34677 "mp58",
34678 "mp59",
34679 "mp60",
34680 "mp61",
34681 "mp62",
34682 "mp63",
34683 "mp64",
34684 "mp65",
34685 "mp66",
34686 "mp67",
34687 "mp68",
34688 "mp69",
34689 "mp70",
34690 "mp71",
34691 "mp72",
34692 "mp73",
34693 "mp74",
34694 "mp75",
34695 "mp76",
34696 "mp77",
34697 "mp78",
34698 "mp79",
34699 "mp80",
34700 "mp81",
34701 "mp82",
34702 "mp83",
34703 "mp84",
34704 "mp85",
34705 "mp86",
34706 "mp87",
34707 "mp88",
34708 "mp89",
34709 "mp90",
34710 "mp91",
34711 "mp92",
34712 "mp93",
34713 "mp94",
34714 "mp95",
34715 "mp96",
34716 "mp97",
34717 "mp98",
34718 "mp99",
34719 "mp100",
34720 "mp101",
34721 "mp102",
34722 "mp103",
34723 "mp104",
34724 "mp105",
34725 "mp106",
34726 "mp107",
34727 "mp108",
34728 "mp109",
34729 "mp110",
34730 "mp111",
34731 "mp112",
34732 "mp113",
34733 "mp114",
34734 "mp115",
34735 "mp116",
34736 "mp117",
34737 "mp118",
34738 "mp119",
34739 "mp120",
34740 "mp121",
34741 "mp122",
34742 "mp123",
34743 "mp124",
34744 "mp125",
34745 "mp126",
34746 "mp127",
34747 "mp128",
34748 "mp129",
34749 "mp130",
34750 "mp131",
34751 "mp132",
34752 "mp133",
34753 "mp134",
34754 "mp135",
34755 "mp136",
34756 "mp137",
34757 "mp138",
34758 "mp139",
34759 "mp140",
34760 "mp141",
34761 "mp142",
34762 "mp143",
34763 "mp144",
34764 "mp145",
34765 "mp146",
34766 "mp147",
34767 "mp148",
34768 "mp149",
34769 "mp150",
34770 "mp151",
34771 "mp152",
34772 "mp153",
34773 "mp154",
34774 "mp155",
34775 "mp156",
34776 "mp157",
34777 "mp158",
34778 "mp159",
34779 "mp160",
34780 "mp161",
34781 "mp162",
34782 "mp163",
34783 "mp164",
34784 "mp165",
34785 "mp166",
34786 "mp167",
34787 "mp168",
34788 "mp169",
34789 "mp170",
34790 "mp171",
34791 "mp172",
34792 "mp173",
34793 "mp174",
34794 "mp175",
34795 "mp176",
34796 "mp177",
34797 "mp178",
34798 "mp179",
34799 "mp180",
34800 "mp181",
34801 "mp182",
34802 "mp183",
34803 "mp184",
34804 "mp185",
34805 "mp186",
34806 "mp187",
34807 "mp188",
34808 "mp189",
34809 "mp190",
34810 "mp191",
34811 "mp192",
34812 "mp193",
34813 "mp194",
34814 "mp195",
34815 "mp196",
34816 "mp197",
34817 "mp198",
34818 "mp199",
34819 "mp200",
34820 "mp201",
34821 "mp202",
34822 "mp203",
34823 "mp204",
34824 "mp205",
34825 "mp206",
34826 "mp207",
34827 "mp208",
34828 "mp209",
34829 "mp210",
34830 "mp211",
34831 "mp212",
34832 "mp213",
34833 "mp214",
34834 "mp215",
34835 "mp216",
34836 "mp217",
34837 "mp218",
34838 "mp219",
34839 "mp220",
34840 "mp221",
34841 "mp222",
34842 "mp223",
34843 "mp224",
34844 "mp225",
34845 "mp226",
34846 "mp227",
34847 "mp228",
34848 "mp229",
34849 "mp230",
34850 "mp231",
34851 "mp232",
34852 "mp233",
34853 "mp234",
34854 "mp235",
34855 "mp236",
34856 "mp237",
34857 "mp238",
34858 "mp239",
34859 "mp240",
34860 "mp241",
34861 "mp242",
34862 "mp243",
34863 "mp244",
34864 "mp245",
34865 "mp246",
34866 "mp247",
34867 "mp248",
34868 "mp249",
34869 "mp250",
34870 "mp251",
34871 "mp252",
34872 "mp253",
34873 "mp254",
34874 "mp255"
44660702 34875 ],
44660702
DM
34876 "type" : "string"
34877 },
7aacca6f 34878 "node" : {
44660702 34879 "description" : "The cluster node name.",
7aacca6f 34880 "format" : "pve-node",
013dc89f
DM
34881 "type" : "string",
34882 "typetext" : "<string>"
7aacca6f 34883 },
4d47f125
TL
34884 "size" : {
34885 "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.",
34886 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
44660702 34887 "type" : "string"
7aacca6f
DM
34888 },
34889 "vmid" : {
34890 "description" : "The (unique) ID of the VM.",
44660702 34891 "format" : "pve-vmid",
8dd66e12
TL
34892 "maximum" : 999999999,
34893 "minimum" : 100,
4bd7df8b 34894 "type" : "integer",
8dd66e12 34895 "typetext" : "<integer> (100 - 999999999)"
56122987 34896 }
56122987
DM
34897 }
34898 },
56122987
DM
34899 "permissions" : {
34900 "check" : [
34901 "perm",
34902 "/vms/{vmid}",
34903 [
4d47f125
TL
34904 "VM.Config.Disk"
34905 ],
34906 "any",
34907 1
56122987
DM
34908 ]
34909 },
7aacca6f 34910 "protected" : 1,
4d47f125 34911 "proxyto" : "node",
7aacca6f 34912 "returns" : {
4d47f125
TL
34913 "description" : "the task ID.",
34914 "type" : "string"
44660702 34915 }
56122987
DM
34916 }
34917 },
44660702 34918 "leaf" : 1,
4d47f125
TL
34919 "path" : "/nodes/{node}/lxc/{vmid}/resize",
34920 "text" : "resize"
56122987
DM
34921 },
34922 {
34923 "info" : {
34924 "POST" : {
e9cd3bd4 34925 "allowtoken" : 1,
5370fa8c 34926 "description" : "Move a rootfs-/mp-volume to a different storage or to a different container.",
44660702 34927 "method" : "POST",
4d47f125 34928 "name" : "move_volume",
7aacca6f 34929 "parameters" : {
44660702 34930 "additionalProperties" : 0,
7aacca6f 34931 "properties" : {
95895385
TL
34932 "bwlimit" : {
34933 "default" : "clone limit from datacenter or storage config",
34934 "description" : "Override I/O bandwidth limit (in KiB/s).",
34935 "minimum" : "0",
34936 "optional" : 1,
34937 "type" : "number",
34938 "typetext" : "<number> (0 - N)"
34939 },
4d47f125
TL
34940 "delete" : {
34941 "default" : 0,
34942 "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.",
5d9c884c 34943 "optional" : 1,
4d47f125
TL
34944 "type" : "boolean",
34945 "typetext" : "<boolean>"
34946 },
34947 "digest" : {
5370fa8c 34948 "description" : "Prevent changes if current configuration file has different SHA1 \" .\n\t\t \"digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
34949 "maxLength" : 40,
34950 "optional" : 1,
34951 "type" : "string",
34952 "typetext" : "<string>"
5d9c884c 34953 },
44660702
DM
34954 "node" : {
34955 "description" : "The cluster node name.",
34956 "format" : "pve-node",
013dc89f
DM
34957 "type" : "string",
34958 "typetext" : "<string>"
44660702 34959 },
4d47f125
TL
34960 "storage" : {
34961 "description" : "Target Storage.",
34962 "format" : "pve-storage-id",
5370fa8c 34963 "optional" : 1,
4d47f125
TL
34964 "type" : "string",
34965 "typetext" : "<string>"
34966 },
5370fa8c
TL
34967 "target-digest" : {
34968 "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.",
34969 "maxLength" : 40,
34970 "optional" : 1,
34971 "type" : "string",
34972 "typetext" : "<string>"
34973 },
34974 "target-vmid" : {
44660702 34975 "description" : "The (unique) ID of the VM.",
7aacca6f 34976 "format" : "pve-vmid",
8dd66e12
TL
34977 "maximum" : 999999999,
34978 "minimum" : 100,
5370fa8c 34979 "optional" : 1,
4bd7df8b 34980 "type" : "integer",
8dd66e12 34981 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 34982 },
5370fa8c
TL
34983 "target-volume" : {
34984 "description" : "The config key the volume will be moved to. Default is the source volume key.",
4d47f125
TL
34985 "enum" : [
34986 "rootfs",
34987 "mp0",
34988 "mp1",
34989 "mp2",
34990 "mp3",
34991 "mp4",
34992 "mp5",
34993 "mp6",
34994 "mp7",
34995 "mp8",
34996 "mp9",
34997 "mp10",
34998 "mp11",
34999 "mp12",
35000 "mp13",
35001 "mp14",
35002 "mp15",
35003 "mp16",
35004 "mp17",
35005 "mp18",
35006 "mp19",
35007 "mp20",
35008 "mp21",
35009 "mp22",
35010 "mp23",
35011 "mp24",
35012 "mp25",
35013 "mp26",
35014 "mp27",
35015 "mp28",
35016 "mp29",
35017 "mp30",
35018 "mp31",
35019 "mp32",
35020 "mp33",
35021 "mp34",
35022 "mp35",
35023 "mp36",
35024 "mp37",
35025 "mp38",
35026 "mp39",
35027 "mp40",
35028 "mp41",
35029 "mp42",
35030 "mp43",
35031 "mp44",
35032 "mp45",
35033 "mp46",
35034 "mp47",
35035 "mp48",
35036 "mp49",
35037 "mp50",
35038 "mp51",
35039 "mp52",
35040 "mp53",
35041 "mp54",
35042 "mp55",
35043 "mp56",
35044 "mp57",
35045 "mp58",
35046 "mp59",
35047 "mp60",
35048 "mp61",
35049 "mp62",
35050 "mp63",
35051 "mp64",
35052 "mp65",
35053 "mp66",
35054 "mp67",
35055 "mp68",
35056 "mp69",
35057 "mp70",
35058 "mp71",
35059 "mp72",
35060 "mp73",
35061 "mp74",
35062 "mp75",
35063 "mp76",
35064 "mp77",
35065 "mp78",
35066 "mp79",
35067 "mp80",
35068 "mp81",
35069 "mp82",
35070 "mp83",
35071 "mp84",
35072 "mp85",
35073 "mp86",
35074 "mp87",
35075 "mp88",
35076 "mp89",
35077 "mp90",
35078 "mp91",
35079 "mp92",
35080 "mp93",
35081 "mp94",
35082 "mp95",
35083 "mp96",
35084 "mp97",
35085 "mp98",
35086 "mp99",
35087 "mp100",
35088 "mp101",
35089 "mp102",
35090 "mp103",
35091 "mp104",
35092 "mp105",
35093 "mp106",
35094 "mp107",
35095 "mp108",
35096 "mp109",
35097 "mp110",
35098 "mp111",
35099 "mp112",
35100 "mp113",
35101 "mp114",
35102 "mp115",
35103 "mp116",
35104 "mp117",
35105 "mp118",
35106 "mp119",
35107 "mp120",
35108 "mp121",
35109 "mp122",
35110 "mp123",
35111 "mp124",
35112 "mp125",
35113 "mp126",
35114 "mp127",
35115 "mp128",
35116 "mp129",
35117 "mp130",
35118 "mp131",
35119 "mp132",
35120 "mp133",
35121 "mp134",
35122 "mp135",
35123 "mp136",
35124 "mp137",
35125 "mp138",
35126 "mp139",
35127 "mp140",
35128 "mp141",
35129 "mp142",
35130 "mp143",
35131 "mp144",
35132 "mp145",
35133 "mp146",
35134 "mp147",
35135 "mp148",
35136 "mp149",
35137 "mp150",
35138 "mp151",
35139 "mp152",
35140 "mp153",
35141 "mp154",
35142 "mp155",
35143 "mp156",
35144 "mp157",
35145 "mp158",
35146 "mp159",
35147 "mp160",
35148 "mp161",
35149 "mp162",
35150 "mp163",
35151 "mp164",
35152 "mp165",
35153 "mp166",
35154 "mp167",
35155 "mp168",
35156 "mp169",
35157 "mp170",
35158 "mp171",
35159 "mp172",
35160 "mp173",
35161 "mp174",
35162 "mp175",
35163 "mp176",
35164 "mp177",
35165 "mp178",
35166 "mp179",
35167 "mp180",
35168 "mp181",
35169 "mp182",
35170 "mp183",
35171 "mp184",
35172 "mp185",
35173 "mp186",
35174 "mp187",
35175 "mp188",
35176 "mp189",
35177 "mp190",
35178 "mp191",
35179 "mp192",
35180 "mp193",
35181 "mp194",
35182 "mp195",
35183 "mp196",
35184 "mp197",
35185 "mp198",
35186 "mp199",
35187 "mp200",
35188 "mp201",
35189 "mp202",
35190 "mp203",
35191 "mp204",
35192 "mp205",
35193 "mp206",
35194 "mp207",
35195 "mp208",
35196 "mp209",
35197 "mp210",
35198 "mp211",
35199 "mp212",
35200 "mp213",
35201 "mp214",
35202 "mp215",
35203 "mp216",
35204 "mp217",
35205 "mp218",
35206 "mp219",
35207 "mp220",
35208 "mp221",
35209 "mp222",
35210 "mp223",
35211 "mp224",
35212 "mp225",
35213 "mp226",
35214 "mp227",
35215 "mp228",
35216 "mp229",
35217 "mp230",
35218 "mp231",
35219 "mp232",
35220 "mp233",
35221 "mp234",
35222 "mp235",
35223 "mp236",
35224 "mp237",
35225 "mp238",
35226 "mp239",
35227 "mp240",
35228 "mp241",
35229 "mp242",
35230 "mp243",
35231 "mp244",
35232 "mp245",
35233 "mp246",
35234 "mp247",
35235 "mp248",
35236 "mp249",
35237 "mp250",
35238 "mp251",
35239 "mp252",
35240 "mp253",
35241 "mp254",
5370fa8c
TL
35242 "mp255",
35243 "unused0",
35244 "unused1",
35245 "unused2",
35246 "unused3",
35247 "unused4",
35248 "unused5",
35249 "unused6",
35250 "unused7",
35251 "unused8",
35252 "unused9",
35253 "unused10",
35254 "unused11",
35255 "unused12",
35256 "unused13",
35257 "unused14",
35258 "unused15",
35259 "unused16",
35260 "unused17",
35261 "unused18",
35262 "unused19",
35263 "unused20",
35264 "unused21",
35265 "unused22",
35266 "unused23",
35267 "unused24",
35268 "unused25",
35269 "unused26",
35270 "unused27",
35271 "unused28",
35272 "unused29",
35273 "unused30",
35274 "unused31",
35275 "unused32",
35276 "unused33",
35277 "unused34",
35278 "unused35",
35279 "unused36",
35280 "unused37",
35281 "unused38",
35282 "unused39",
35283 "unused40",
35284 "unused41",
35285 "unused42",
35286 "unused43",
35287 "unused44",
35288 "unused45",
35289 "unused46",
35290 "unused47",
35291 "unused48",
35292 "unused49",
35293 "unused50",
35294 "unused51",
35295 "unused52",
35296 "unused53",
35297 "unused54",
35298 "unused55",
35299 "unused56",
35300 "unused57",
35301 "unused58",
35302 "unused59",
35303 "unused60",
35304 "unused61",
35305 "unused62",
35306 "unused63",
35307 "unused64",
35308 "unused65",
35309 "unused66",
35310 "unused67",
35311 "unused68",
35312 "unused69",
35313 "unused70",
35314 "unused71",
35315 "unused72",
35316 "unused73",
35317 "unused74",
35318 "unused75",
35319 "unused76",
35320 "unused77",
35321 "unused78",
35322 "unused79",
35323 "unused80",
35324 "unused81",
35325 "unused82",
35326 "unused83",
35327 "unused84",
35328 "unused85",
35329 "unused86",
35330 "unused87",
35331 "unused88",
35332 "unused89",
35333 "unused90",
35334 "unused91",
35335 "unused92",
35336 "unused93",
35337 "unused94",
35338 "unused95",
35339 "unused96",
35340 "unused97",
35341 "unused98",
35342 "unused99",
35343 "unused100",
35344 "unused101",
35345 "unused102",
35346 "unused103",
35347 "unused104",
35348 "unused105",
35349 "unused106",
35350 "unused107",
35351 "unused108",
35352 "unused109",
35353 "unused110",
35354 "unused111",
35355 "unused112",
35356 "unused113",
35357 "unused114",
35358 "unused115",
35359 "unused116",
35360 "unused117",
35361 "unused118",
35362 "unused119",
35363 "unused120",
35364 "unused121",
35365 "unused122",
35366 "unused123",
35367 "unused124",
35368 "unused125",
35369 "unused126",
35370 "unused127",
35371 "unused128",
35372 "unused129",
35373 "unused130",
35374 "unused131",
35375 "unused132",
35376 "unused133",
35377 "unused134",
35378 "unused135",
35379 "unused136",
35380 "unused137",
35381 "unused138",
35382 "unused139",
35383 "unused140",
35384 "unused141",
35385 "unused142",
35386 "unused143",
35387 "unused144",
35388 "unused145",
35389 "unused146",
35390 "unused147",
35391 "unused148",
35392 "unused149",
35393 "unused150",
35394 "unused151",
35395 "unused152",
35396 "unused153",
35397 "unused154",
35398 "unused155",
35399 "unused156",
35400 "unused157",
35401 "unused158",
35402 "unused159",
35403 "unused160",
35404 "unused161",
35405 "unused162",
35406 "unused163",
35407 "unused164",
35408 "unused165",
35409 "unused166",
35410 "unused167",
35411 "unused168",
35412 "unused169",
35413 "unused170",
35414 "unused171",
35415 "unused172",
35416 "unused173",
35417 "unused174",
35418 "unused175",
35419 "unused176",
35420 "unused177",
35421 "unused178",
35422 "unused179",
35423 "unused180",
35424 "unused181",
35425 "unused182",
35426 "unused183",
35427 "unused184",
35428 "unused185",
35429 "unused186",
35430 "unused187",
35431 "unused188",
35432 "unused189",
35433 "unused190",
35434 "unused191",
35435 "unused192",
35436 "unused193",
35437 "unused194",
35438 "unused195",
35439 "unused196",
35440 "unused197",
35441 "unused198",
35442 "unused199",
35443 "unused200",
35444 "unused201",
35445 "unused202",
35446 "unused203",
35447 "unused204",
35448 "unused205",
35449 "unused206",
35450 "unused207",
35451 "unused208",
35452 "unused209",
35453 "unused210",
35454 "unused211",
35455 "unused212",
35456 "unused213",
35457 "unused214",
35458 "unused215",
35459 "unused216",
35460 "unused217",
35461 "unused218",
35462 "unused219",
35463 "unused220",
35464 "unused221",
35465 "unused222",
35466 "unused223",
35467 "unused224",
35468 "unused225",
35469 "unused226",
35470 "unused227",
35471 "unused228",
35472 "unused229",
35473 "unused230",
35474 "unused231",
35475 "unused232",
35476 "unused233",
35477 "unused234",
35478 "unused235",
35479 "unused236",
35480 "unused237",
35481 "unused238",
35482 "unused239",
35483 "unused240",
35484 "unused241",
35485 "unused242",
35486 "unused243",
35487 "unused244",
35488 "unused245",
35489 "unused246",
35490 "unused247",
35491 "unused248",
35492 "unused249",
35493 "unused250",
35494 "unused251",
35495 "unused252",
35496 "unused253",
35497 "unused254",
35498 "unused255"
35499 ],
35500 "optional" : 1,
35501 "type" : "string"
35502 },
35503 "vmid" : {
35504 "description" : "The (unique) ID of the VM.",
35505 "format" : "pve-vmid",
8dd66e12
TL
35506 "maximum" : 999999999,
35507 "minimum" : 100,
5370fa8c 35508 "type" : "integer",
8dd66e12 35509 "typetext" : "<integer> (100 - 999999999)"
5370fa8c
TL
35510 },
35511 "volume" : {
35512 "description" : "Volume which will be moved.",
35513 "enum" : [
35514 "rootfs",
35515 "mp0",
35516 "mp1",
35517 "mp2",
35518 "mp3",
35519 "mp4",
35520 "mp5",
35521 "mp6",
35522 "mp7",
35523 "mp8",
35524 "mp9",
35525 "mp10",
35526 "mp11",
35527 "mp12",
35528 "mp13",
35529 "mp14",
35530 "mp15",
35531 "mp16",
35532 "mp17",
35533 "mp18",
35534 "mp19",
35535 "mp20",
35536 "mp21",
35537 "mp22",
35538 "mp23",
35539 "mp24",
35540 "mp25",
35541 "mp26",
35542 "mp27",
35543 "mp28",
35544 "mp29",
35545 "mp30",
35546 "mp31",
35547 "mp32",
35548 "mp33",
35549 "mp34",
35550 "mp35",
35551 "mp36",
35552 "mp37",
35553 "mp38",
35554 "mp39",
35555 "mp40",
35556 "mp41",
35557 "mp42",
35558 "mp43",
35559 "mp44",
35560 "mp45",
35561 "mp46",
35562 "mp47",
35563 "mp48",
35564 "mp49",
35565 "mp50",
35566 "mp51",
35567 "mp52",
35568 "mp53",
35569 "mp54",
35570 "mp55",
35571 "mp56",
35572 "mp57",
35573 "mp58",
35574 "mp59",
35575 "mp60",
35576 "mp61",
35577 "mp62",
35578 "mp63",
35579 "mp64",
35580 "mp65",
35581 "mp66",
35582 "mp67",
35583 "mp68",
35584 "mp69",
35585 "mp70",
35586 "mp71",
35587 "mp72",
35588 "mp73",
35589 "mp74",
35590 "mp75",
35591 "mp76",
35592 "mp77",
35593 "mp78",
35594 "mp79",
35595 "mp80",
35596 "mp81",
35597 "mp82",
35598 "mp83",
35599 "mp84",
35600 "mp85",
35601 "mp86",
35602 "mp87",
35603 "mp88",
35604 "mp89",
35605 "mp90",
35606 "mp91",
35607 "mp92",
35608 "mp93",
35609 "mp94",
35610 "mp95",
35611 "mp96",
35612 "mp97",
35613 "mp98",
35614 "mp99",
35615 "mp100",
35616 "mp101",
35617 "mp102",
35618 "mp103",
35619 "mp104",
35620 "mp105",
35621 "mp106",
35622 "mp107",
35623 "mp108",
35624 "mp109",
35625 "mp110",
35626 "mp111",
35627 "mp112",
35628 "mp113",
35629 "mp114",
35630 "mp115",
35631 "mp116",
35632 "mp117",
35633 "mp118",
35634 "mp119",
35635 "mp120",
35636 "mp121",
35637 "mp122",
35638 "mp123",
35639 "mp124",
35640 "mp125",
35641 "mp126",
35642 "mp127",
35643 "mp128",
35644 "mp129",
35645 "mp130",
35646 "mp131",
35647 "mp132",
35648 "mp133",
35649 "mp134",
35650 "mp135",
35651 "mp136",
35652 "mp137",
35653 "mp138",
35654 "mp139",
35655 "mp140",
35656 "mp141",
35657 "mp142",
35658 "mp143",
35659 "mp144",
35660 "mp145",
35661 "mp146",
35662 "mp147",
35663 "mp148",
35664 "mp149",
35665 "mp150",
35666 "mp151",
35667 "mp152",
35668 "mp153",
35669 "mp154",
35670 "mp155",
35671 "mp156",
35672 "mp157",
35673 "mp158",
35674 "mp159",
35675 "mp160",
35676 "mp161",
35677 "mp162",
35678 "mp163",
35679 "mp164",
35680 "mp165",
35681 "mp166",
35682 "mp167",
35683 "mp168",
35684 "mp169",
35685 "mp170",
35686 "mp171",
35687 "mp172",
35688 "mp173",
35689 "mp174",
35690 "mp175",
35691 "mp176",
35692 "mp177",
35693 "mp178",
35694 "mp179",
35695 "mp180",
35696 "mp181",
35697 "mp182",
35698 "mp183",
35699 "mp184",
35700 "mp185",
35701 "mp186",
35702 "mp187",
35703 "mp188",
35704 "mp189",
35705 "mp190",
35706 "mp191",
35707 "mp192",
35708 "mp193",
35709 "mp194",
35710 "mp195",
35711 "mp196",
35712 "mp197",
35713 "mp198",
35714 "mp199",
35715 "mp200",
35716 "mp201",
35717 "mp202",
35718 "mp203",
35719 "mp204",
35720 "mp205",
35721 "mp206",
35722 "mp207",
35723 "mp208",
35724 "mp209",
35725 "mp210",
35726 "mp211",
35727 "mp212",
35728 "mp213",
35729 "mp214",
35730 "mp215",
35731 "mp216",
35732 "mp217",
35733 "mp218",
35734 "mp219",
35735 "mp220",
35736 "mp221",
35737 "mp222",
35738 "mp223",
35739 "mp224",
35740 "mp225",
35741 "mp226",
35742 "mp227",
35743 "mp228",
35744 "mp229",
35745 "mp230",
35746 "mp231",
35747 "mp232",
35748 "mp233",
35749 "mp234",
35750 "mp235",
35751 "mp236",
35752 "mp237",
35753 "mp238",
35754 "mp239",
35755 "mp240",
35756 "mp241",
35757 "mp242",
35758 "mp243",
35759 "mp244",
35760 "mp245",
35761 "mp246",
35762 "mp247",
35763 "mp248",
35764 "mp249",
35765 "mp250",
35766 "mp251",
35767 "mp252",
35768 "mp253",
35769 "mp254",
35770 "mp255",
35771 "unused0",
35772 "unused1",
35773 "unused2",
35774 "unused3",
35775 "unused4",
35776 "unused5",
35777 "unused6",
35778 "unused7",
35779 "unused8",
35780 "unused9",
35781 "unused10",
35782 "unused11",
35783 "unused12",
35784 "unused13",
35785 "unused14",
35786 "unused15",
35787 "unused16",
35788 "unused17",
35789 "unused18",
35790 "unused19",
35791 "unused20",
35792 "unused21",
35793 "unused22",
35794 "unused23",
35795 "unused24",
35796 "unused25",
35797 "unused26",
35798 "unused27",
35799 "unused28",
35800 "unused29",
35801 "unused30",
35802 "unused31",
35803 "unused32",
35804 "unused33",
35805 "unused34",
35806 "unused35",
35807 "unused36",
35808 "unused37",
35809 "unused38",
35810 "unused39",
35811 "unused40",
35812 "unused41",
35813 "unused42",
35814 "unused43",
35815 "unused44",
35816 "unused45",
35817 "unused46",
35818 "unused47",
35819 "unused48",
35820 "unused49",
35821 "unused50",
35822 "unused51",
35823 "unused52",
35824 "unused53",
35825 "unused54",
35826 "unused55",
35827 "unused56",
35828 "unused57",
35829 "unused58",
35830 "unused59",
35831 "unused60",
35832 "unused61",
35833 "unused62",
35834 "unused63",
35835 "unused64",
35836 "unused65",
35837 "unused66",
35838 "unused67",
35839 "unused68",
35840 "unused69",
35841 "unused70",
35842 "unused71",
35843 "unused72",
35844 "unused73",
35845 "unused74",
35846 "unused75",
35847 "unused76",
35848 "unused77",
35849 "unused78",
35850 "unused79",
35851 "unused80",
35852 "unused81",
35853 "unused82",
35854 "unused83",
35855 "unused84",
35856 "unused85",
35857 "unused86",
35858 "unused87",
35859 "unused88",
35860 "unused89",
35861 "unused90",
35862 "unused91",
35863 "unused92",
35864 "unused93",
35865 "unused94",
35866 "unused95",
35867 "unused96",
35868 "unused97",
35869 "unused98",
35870 "unused99",
35871 "unused100",
35872 "unused101",
35873 "unused102",
35874 "unused103",
35875 "unused104",
35876 "unused105",
35877 "unused106",
35878 "unused107",
35879 "unused108",
35880 "unused109",
35881 "unused110",
35882 "unused111",
35883 "unused112",
35884 "unused113",
35885 "unused114",
35886 "unused115",
35887 "unused116",
35888 "unused117",
35889 "unused118",
35890 "unused119",
35891 "unused120",
35892 "unused121",
35893 "unused122",
35894 "unused123",
35895 "unused124",
35896 "unused125",
35897 "unused126",
35898 "unused127",
35899 "unused128",
35900 "unused129",
35901 "unused130",
35902 "unused131",
35903 "unused132",
35904 "unused133",
35905 "unused134",
35906 "unused135",
35907 "unused136",
35908 "unused137",
35909 "unused138",
35910 "unused139",
35911 "unused140",
35912 "unused141",
35913 "unused142",
35914 "unused143",
35915 "unused144",
35916 "unused145",
35917 "unused146",
35918 "unused147",
35919 "unused148",
35920 "unused149",
35921 "unused150",
35922 "unused151",
35923 "unused152",
35924 "unused153",
35925 "unused154",
35926 "unused155",
35927 "unused156",
35928 "unused157",
35929 "unused158",
35930 "unused159",
35931 "unused160",
35932 "unused161",
35933 "unused162",
35934 "unused163",
35935 "unused164",
35936 "unused165",
35937 "unused166",
35938 "unused167",
35939 "unused168",
35940 "unused169",
35941 "unused170",
35942 "unused171",
35943 "unused172",
35944 "unused173",
35945 "unused174",
35946 "unused175",
35947 "unused176",
35948 "unused177",
35949 "unused178",
35950 "unused179",
35951 "unused180",
35952 "unused181",
35953 "unused182",
35954 "unused183",
35955 "unused184",
35956 "unused185",
35957 "unused186",
35958 "unused187",
35959 "unused188",
35960 "unused189",
35961 "unused190",
35962 "unused191",
35963 "unused192",
35964 "unused193",
35965 "unused194",
35966 "unused195",
35967 "unused196",
35968 "unused197",
35969 "unused198",
35970 "unused199",
35971 "unused200",
35972 "unused201",
35973 "unused202",
35974 "unused203",
35975 "unused204",
35976 "unused205",
35977 "unused206",
35978 "unused207",
35979 "unused208",
35980 "unused209",
35981 "unused210",
35982 "unused211",
35983 "unused212",
35984 "unused213",
35985 "unused214",
35986 "unused215",
35987 "unused216",
35988 "unused217",
35989 "unused218",
35990 "unused219",
35991 "unused220",
35992 "unused221",
35993 "unused222",
35994 "unused223",
35995 "unused224",
35996 "unused225",
35997 "unused226",
35998 "unused227",
35999 "unused228",
36000 "unused229",
36001 "unused230",
36002 "unused231",
36003 "unused232",
36004 "unused233",
36005 "unused234",
36006 "unused235",
36007 "unused236",
36008 "unused237",
36009 "unused238",
36010 "unused239",
36011 "unused240",
36012 "unused241",
36013 "unused242",
36014 "unused243",
36015 "unused244",
36016 "unused245",
36017 "unused246",
36018 "unused247",
36019 "unused248",
36020 "unused249",
36021 "unused250",
36022 "unused251",
36023 "unused252",
36024 "unused253",
36025 "unused254",
36026 "unused255"
4d47f125
TL
36027 ],
36028 "type" : "string"
7aacca6f 36029 }
44660702 36030 }
7aacca6f 36031 },
56122987
DM
36032 "permissions" : {
36033 "check" : [
5370fa8c
TL
36034 "perm",
36035 "/vms/{vmid}",
4d47f125 36036 [
5370fa8c 36037 "VM.Config.Disk"
56122987 36038 ]
4d47f125 36039 ],
5370fa8c 36040 "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
36041 },
36042 "protected" : 1,
36043 "proxyto" : "node",
36044 "returns" : {
36045 "type" : "string"
36046 }
36047 }
36048 },
36049 "leaf" : 1,
36050 "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
36051 "text" : "move_volume"
1c532546
TL
36052 },
36053 {
36054 "info" : {
36055 "GET" : {
e9cd3bd4 36056 "allowtoken" : 1,
1c532546
TL
36057 "description" : "Get container configuration, including pending changes.",
36058 "method" : "GET",
36059 "name" : "vm_pending",
36060 "parameters" : {
36061 "additionalProperties" : 0,
36062 "properties" : {
36063 "node" : {
36064 "description" : "The cluster node name.",
36065 "format" : "pve-node",
36066 "type" : "string",
36067 "typetext" : "<string>"
36068 },
36069 "vmid" : {
36070 "description" : "The (unique) ID of the VM.",
36071 "format" : "pve-vmid",
8dd66e12
TL
36072 "maximum" : 999999999,
36073 "minimum" : 100,
1c532546 36074 "type" : "integer",
8dd66e12 36075 "typetext" : "<integer> (100 - 999999999)"
1c532546
TL
36076 }
36077 }
36078 },
36079 "permissions" : {
36080 "check" : [
36081 "perm",
36082 "/vms/{vmid}",
36083 [
36084 "VM.Audit"
36085 ]
36086 ]
36087 },
36088 "proxyto" : "node",
36089 "returns" : {
36090 "items" : {
36091 "properties" : {
36092 "delete" : {
36093 "description" : "Indicates a pending delete request if present and not 0.",
36094 "maximum" : 2,
36095 "minimum" : 0,
36096 "optional" : 1,
36097 "type" : "integer"
36098 },
36099 "key" : {
36100 "description" : "Configuration option name.",
36101 "type" : "string"
36102 },
36103 "pending" : {
36104 "description" : "Pending value.",
36105 "optional" : 1,
36106 "type" : "string"
36107 },
36108 "value" : {
36109 "description" : "Current value.",
36110 "optional" : 1,
36111 "type" : "string"
36112 }
36113 },
36114 "type" : "object"
36115 },
36116 "type" : "array"
36117 }
36118 }
36119 },
36120 "leaf" : 1,
36121 "path" : "/nodes/{node}/lxc/{vmid}/pending",
36122 "text" : "pending"
81a3384d 36123 },
bd92b745
TL
36124 {
36125 "info" : {
36126 "GET" : {
36127 "allowtoken" : 1,
36128 "description" : "Get IP addresses of the specified container interface.",
36129 "method" : "GET",
36130 "name" : "ip",
36131 "parameters" : {
36132 "additionalProperties" : 0,
36133 "properties" : {
36134 "node" : {
36135 "description" : "The cluster node name.",
36136 "format" : "pve-node",
36137 "type" : "string",
36138 "typetext" : "<string>"
36139 },
36140 "vmid" : {
36141 "description" : "The (unique) ID of the VM.",
36142 "format" : "pve-vmid",
36143 "maximum" : 999999999,
36144 "minimum" : 100,
36145 "type" : "integer",
36146 "typetext" : "<integer> (100 - 999999999)"
36147 }
36148 }
36149 },
36150 "permissions" : {
36151 "check" : [
36152 "perm",
36153 "/vms/{vmid}",
36154 [
36155 "VM.Audit"
36156 ]
36157 ]
36158 },
36159 "protected" : 1,
36160 "returns" : {
36161 "items" : {
36162 "properties" : {
36163 "hwaddr" : {
36164 "description" : "The MAC address of the interface",
36165 "optional" : 0,
36166 "type" : "string"
36167 },
36168 "inet" : {
36169 "description" : "The IPv4 address of the interface",
36170 "optional" : 1,
36171 "type" : "string"
36172 },
36173 "inet6" : {
36174 "description" : "The IPv6 address of the interface",
36175 "optional" : 1,
36176 "type" : "string"
36177 },
36178 "name" : {
36179 "description" : "The name of the interface",
36180 "optional" : 0,
36181 "type" : "string"
36182 }
36183 },
36184 "type" : "object"
36185 },
36186 "type" : "array"
36187 }
36188 }
36189 },
36190 "leaf" : 1,
36191 "path" : "/nodes/{node}/lxc/{vmid}/interfaces",
36192 "text" : "interfaces"
36193 },
81a3384d
TL
36194 {
36195 "info" : {
36196 "POST" : {
36197 "allowtoken" : 1,
36198 "description" : "Migration tunnel endpoint - only for internal use by CT migration.",
36199 "method" : "POST",
36200 "name" : "mtunnel",
36201 "parameters" : {
36202 "additionalProperties" : 0,
36203 "properties" : {
36204 "bridges" : {
36205 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
36206 "format" : "pve-bridge-id-list",
36207 "optional" : 1,
36208 "type" : "string",
36209 "typetext" : "<string>"
36210 },
36211 "node" : {
36212 "description" : "The cluster node name.",
36213 "format" : "pve-node",
36214 "type" : "string",
36215 "typetext" : "<string>"
36216 },
36217 "storages" : {
36218 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
36219 "format" : "pve-storage-id-list",
36220 "optional" : 1,
36221 "type" : "string",
36222 "typetext" : "<string>"
36223 },
36224 "vmid" : {
36225 "description" : "The (unique) ID of the VM.",
36226 "format" : "pve-vmid",
8dd66e12
TL
36227 "maximum" : 999999999,
36228 "minimum" : 100,
81a3384d 36229 "type" : "integer",
8dd66e12 36230 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
36231 }
36232 }
36233 },
36234 "permissions" : {
36235 "check" : [
36236 "and",
36237 [
36238 "perm",
36239 "/vms/{vmid}",
36240 [
36241 "VM.Allocate"
36242 ]
36243 ],
36244 [
36245 "perm",
36246 "/",
36247 [
36248 "Sys.Incoming"
36249 ]
36250 ]
36251 ],
36252 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
36253 },
36254 "protected" : 1,
36255 "returns" : {
36256 "additionalProperties" : 0,
36257 "properties" : {
36258 "socket" : {
36259 "type" : "string"
36260 },
36261 "ticket" : {
36262 "type" : "string"
36263 },
36264 "upid" : {
36265 "type" : "string"
36266 }
36267 }
36268 }
36269 }
36270 },
36271 "leaf" : 1,
36272 "path" : "/nodes/{node}/lxc/{vmid}/mtunnel",
36273 "text" : "mtunnel"
36274 },
36275 {
36276 "info" : {
36277 "GET" : {
36278 "allowtoken" : 1,
36279 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
36280 "method" : "GET",
36281 "name" : "mtunnelwebsocket",
36282 "parameters" : {
36283 "additionalProperties" : 0,
36284 "properties" : {
36285 "node" : {
36286 "description" : "The cluster node name.",
36287 "format" : "pve-node",
36288 "type" : "string",
36289 "typetext" : "<string>"
36290 },
36291 "socket" : {
36292 "description" : "unix socket to forward to",
36293 "type" : "string",
36294 "typetext" : "<string>"
36295 },
36296 "ticket" : {
36297 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
36298 "type" : "string",
36299 "typetext" : "<string>"
36300 },
36301 "vmid" : {
36302 "description" : "The (unique) ID of the VM.",
36303 "format" : "pve-vmid",
8dd66e12
TL
36304 "maximum" : 999999999,
36305 "minimum" : 100,
81a3384d 36306 "type" : "integer",
8dd66e12 36307 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
36308 }
36309 }
36310 },
36311 "permissions" : {
36312 "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.",
36313 "user" : "all"
36314 },
36315 "returns" : {
36316 "properties" : {
36317 "port" : {
36318 "optional" : 1,
36319 "type" : "string"
36320 },
36321 "socket" : {
36322 "optional" : 1,
36323 "type" : "string"
36324 }
36325 },
36326 "type" : "object"
36327 }
36328 }
36329 },
36330 "leaf" : 1,
36331 "path" : "/nodes/{node}/lxc/{vmid}/mtunnelwebsocket",
36332 "text" : "mtunnelwebsocket"
4d47f125
TL
36333 }
36334 ],
36335 "info" : {
36336 "DELETE" : {
e9cd3bd4 36337 "allowtoken" : 1,
4d47f125
TL
36338 "description" : "Destroy the container (also delete all uses files).",
36339 "method" : "DELETE",
36340 "name" : "destroy_vm",
36341 "parameters" : {
36342 "additionalProperties" : 0,
36343 "properties" : {
d2656385
TL
36344 "destroy-unreferenced-disks" : {
36345 "description" : "If set, destroy additionally all disks with the VMID from all enabled storages which are not referenced in the config.",
36346 "optional" : 1,
36347 "type" : "boolean",
36348 "typetext" : "<boolean>"
36349 },
c5aa7e14
TL
36350 "force" : {
36351 "default" : 0,
36352 "description" : "Force destroy, even if running.",
36353 "optional" : 1,
36354 "type" : "boolean",
36355 "typetext" : "<boolean>"
36356 },
4d47f125
TL
36357 "node" : {
36358 "description" : "The cluster node name.",
36359 "format" : "pve-node",
36360 "type" : "string",
36361 "typetext" : "<string>"
36362 },
1c532546 36363 "purge" : {
c5aa7e14
TL
36364 "default" : 0,
36365 "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
36366 "optional" : 1,
36367 "type" : "boolean",
36368 "typetext" : "<boolean>"
36369 },
4d47f125
TL
36370 "vmid" : {
36371 "description" : "The (unique) ID of the VM.",
36372 "format" : "pve-vmid",
8dd66e12
TL
36373 "maximum" : 999999999,
36374 "minimum" : 100,
4d47f125 36375 "type" : "integer",
8dd66e12 36376 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
36377 }
36378 }
36379 },
36380 "permissions" : {
36381 "check" : [
36382 "perm",
36383 "/vms/{vmid}",
36384 [
36385 "VM.Allocate"
36386 ]
36387 ]
36388 },
36389 "protected" : 1,
36390 "proxyto" : "node",
36391 "returns" : {
36392 "type" : "string"
36393 }
36394 },
36395 "GET" : {
e9cd3bd4 36396 "allowtoken" : 1,
4d47f125
TL
36397 "description" : "Directory index",
36398 "method" : "GET",
36399 "name" : "vmdiridx",
36400 "parameters" : {
36401 "additionalProperties" : 0,
36402 "properties" : {
36403 "node" : {
36404 "description" : "The cluster node name.",
36405 "format" : "pve-node",
36406 "type" : "string",
36407 "typetext" : "<string>"
56122987 36408 },
4d47f125
TL
36409 "vmid" : {
36410 "description" : "The (unique) ID of the VM.",
36411 "format" : "pve-vmid",
8dd66e12
TL
36412 "maximum" : 999999999,
36413 "minimum" : 100,
4d47f125 36414 "type" : "integer",
8dd66e12 36415 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
36416 }
36417 }
36418 },
4d47f125
TL
36419 "permissions" : {
36420 "user" : "all"
36421 },
36422 "proxyto" : "node",
36423 "returns" : {
36424 "items" : {
36425 "properties" : {
36426 "subdir" : {
36427 "type" : "string"
35a75dd3
DM
36428 }
36429 },
4d47f125
TL
36430 "type" : "object"
36431 },
36432 "links" : [
36433 {
36434 "href" : "{subdir}",
36435 "rel" : "child"
35a75dd3 36436 }
4d47f125
TL
36437 ],
36438 "type" : "array"
36439 }
36440 }
36441 },
36442 "leaf" : 0,
36443 "path" : "/nodes/{node}/lxc/{vmid}",
36444 "text" : "{vmid}"
36445 }
36446 ],
36447 "info" : {
36448 "GET" : {
e9cd3bd4 36449 "allowtoken" : 1,
4d47f125
TL
36450 "description" : "LXC container index (per node).",
36451 "method" : "GET",
36452 "name" : "vmlist",
36453 "parameters" : {
36454 "additionalProperties" : 0,
36455 "properties" : {
36456 "node" : {
36457 "description" : "The cluster node name.",
36458 "format" : "pve-node",
36459 "type" : "string",
36460 "typetext" : "<string>"
36461 }
36462 }
36463 },
36464 "permissions" : {
36465 "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
36466 "user" : "all"
36467 },
36468 "protected" : 1,
36469 "proxyto" : "node",
36470 "returns" : {
36471 "items" : {
36472 "properties" : {
36473 "cpus" : {
36474 "description" : "Maximum usable CPUs.",
36475 "optional" : 1,
36476 "type" : "number"
36477 },
95895385
TL
36478 "lock" : {
36479 "description" : "The current config lock, if any.",
36480 "optional" : 1,
36481 "type" : "string"
36482 },
4d47f125
TL
36483 "maxdisk" : {
36484 "description" : "Root disk size in bytes.",
36485 "optional" : 1,
36486 "renderer" : "bytes",
36487 "type" : "integer"
36488 },
36489 "maxmem" : {
36490 "description" : "Maximum memory in bytes.",
36491 "optional" : 1,
36492 "renderer" : "bytes",
36493 "type" : "integer"
36494 },
36495 "maxswap" : {
36496 "description" : "Maximum SWAP memory in bytes.",
36497 "optional" : 1,
36498 "renderer" : "bytes",
36499 "type" : "integer"
36500 },
36501 "name" : {
36502 "description" : "Container name.",
36503 "optional" : 1,
36504 "type" : "string"
36505 },
36506 "status" : {
36507 "description" : "LXC Container status.",
36508 "enum" : [
36509 "stopped",
36510 "running"
36511 ],
36512 "type" : "string"
36513 },
5c1699e5
TL
36514 "tags" : {
36515 "description" : "The current configured tags, if any.",
36516 "optional" : 1,
36517 "type" : "string"
36518 },
4d47f125
TL
36519 "uptime" : {
36520 "description" : "Uptime.",
36521 "optional" : 1,
36522 "renderer" : "duration",
36523 "type" : "integer"
36524 },
36525 "vmid" : {
36526 "description" : "The (unique) ID of the VM.",
36527 "format" : "pve-vmid",
8dd66e12
TL
36528 "maximum" : 999999999,
36529 "minimum" : 100,
4d47f125 36530 "type" : "integer"
35a75dd3
DM
36531 }
36532 },
4d47f125 36533 "type" : "object"
35a75dd3 36534 },
4d47f125
TL
36535 "links" : [
36536 {
36537 "href" : "{vmid}",
36538 "rel" : "child"
36539 }
36540 ],
36541 "type" : "array"
36542 }
36543 },
36544 "POST" : {
e9cd3bd4 36545 "allowtoken" : 1,
4d47f125
TL
36546 "description" : "Create or restore a container.",
36547 "method" : "POST",
36548 "name" : "create_vm",
36549 "parameters" : {
36550 "additionalProperties" : 0,
36551 "properties" : {
36552 "arch" : {
36553 "default" : "amd64",
36554 "description" : "OS architecture type.",
36555 "enum" : [
36556 "amd64",
36557 "i386",
36558 "arm64",
9d2e98ed
TL
36559 "armhf",
36560 "riscv32",
36561 "riscv64"
4d47f125
TL
36562 ],
36563 "optional" : 1,
36564 "type" : "string"
36565 },
36566 "bwlimit" : {
95895385
TL
36567 "default" : "restore limit from datacenter or storage config",
36568 "description" : "Override I/O bandwidth limit (in KiB/s).",
4d47f125
TL
36569 "minimum" : "0",
36570 "optional" : 1,
36571 "type" : "number",
36572 "typetext" : "<number> (0 - N)"
36573 },
36574 "cmode" : {
36575 "default" : "tty",
36576 "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).",
36577 "enum" : [
36578 "shell",
36579 "console",
36580 "tty"
36581 ],
36582 "optional" : 1,
36583 "type" : "string"
36584 },
36585 "console" : {
36586 "default" : 1,
36587 "description" : "Attach a console device (/dev/console) to the container.",
36588 "optional" : 1,
36589 "type" : "boolean",
36590 "typetext" : "<boolean>"
36591 },
36592 "cores" : {
36593 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 36594 "maximum" : 8192,
4d47f125
TL
36595 "minimum" : 1,
36596 "optional" : 1,
36597 "type" : "integer",
4772952b 36598 "typetext" : "<integer> (1 - 8192)"
4d47f125
TL
36599 },
36600 "cpulimit" : {
36601 "default" : 0,
36602 "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 36603 "maximum" : 8192,
4d47f125
TL
36604 "minimum" : 0,
36605 "optional" : 1,
36606 "type" : "number",
4772952b 36607 "typetext" : "<number> (0 - 8192)"
4d47f125
TL
36608 },
36609 "cpuunits" : {
4e7f60c2
TL
36610 "default" : "cgroup v1: 1024, cgroup v2: 100",
36611 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
36612 "maximum" : 500000,
36613 "minimum" : 0,
36614 "optional" : 1,
36615 "type" : "integer",
4e7f60c2
TL
36616 "typetext" : "<integer> (0 - 500000)",
36617 "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 36618 },
739d4d64
TL
36619 "debug" : {
36620 "default" : 0,
36621 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
36622 "optional" : 1,
36623 "type" : "boolean",
36624 "typetext" : "<boolean>"
36625 },
4d47f125 36626 "description" : {
8f4d9c87
TL
36627 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
36628 "maxLength" : 8192,
4d47f125
TL
36629 "optional" : 1,
36630 "type" : "string",
36631 "typetext" : "<string>"
36632 },
fa22697b
TL
36633 "dev[n]" : {
36634 "description" : "Device to pass through to the container",
36635 "format" : {
36636 "gid" : {
36637 "description" : "Group ID to be assigned to the device node",
36638 "minimum" : 0,
36639 "optional" : 1,
36640 "type" : "integer"
36641 },
36642 "mode" : {
36643 "description" : "Access mode to be set on the device node",
36644 "format_description" : "Octal access mode",
36645 "optional" : 1,
36646 "pattern" : "0[0-7]{3}",
36647 "type" : "string"
36648 },
36649 "path" : {
36650 "default_key" : 1,
36651 "description" : "Device to pass through to the container",
36652 "format" : "pve-lxc-dev-string",
36653 "format_description" : "Path",
36654 "optional" : 1,
36655 "type" : "string",
36656 "verbose_description" : "Path to the device to pass through to the container"
36657 },
36658 "uid" : {
36659 "description" : "User ID to be assigned to the device node",
36660 "minimum" : 0,
36661 "optional" : 1,
36662 "type" : "integer"
36663 }
36664 },
36665 "optional" : 1,
36666 "type" : "string",
36667 "typetext" : "[[path=]<Path>] [,gid=<integer>] [,mode=<Octal access mode>] [,uid=<integer>]"
36668 },
4d47f125
TL
36669 "features" : {
36670 "description" : "Allow containers access to advanced features.",
36671 "format" : {
c5aa7e14
TL
36672 "force_rw_sys" : {
36673 "default" : 0,
36674 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
36675 "optional" : 1,
36676 "type" : "boolean"
36677 },
e2d681b3
TL
36678 "fuse" : {
36679 "default" : 0,
36680 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
36681 "optional" : 1,
36682 "type" : "boolean"
36683 },
4d47f125
TL
36684 "keyctl" : {
36685 "default" : 0,
36686 "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.",
36687 "optional" : 1,
36688 "type" : "boolean"
7aacca6f 36689 },
c5aa7e14
TL
36690 "mknod" : {
36691 "default" : 0,
36692 "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.",
36693 "optional" : 1,
36694 "type" : "boolean"
36695 },
4d47f125
TL
36696 "mount" : {
36697 "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.",
36698 "format_description" : "fstype;fstype;...",
36699 "optional" : 1,
95895385 36700 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125 36701 "type" : "string"
56122987 36702 },
4d47f125
TL
36703 "nesting" : {
36704 "default" : 0,
36705 "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.",
36706 "optional" : 1,
36707 "type" : "boolean"
44660702 36708 }
4d47f125
TL
36709 },
36710 "optional" : 1,
36711 "type" : "string",
c5aa7e14 36712 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
56122987 36713 },
4d47f125
TL
36714 "force" : {
36715 "description" : "Allow to overwrite existing container.",
36716 "optional" : 1,
36717 "type" : "boolean",
36718 "typetext" : "<boolean>"
36719 },
5f26e15b
TL
36720 "hookscript" : {
36721 "description" : "Script that will be exectued during various steps in the containers lifetime.",
36722 "format" : "pve-volume-id",
36723 "optional" : 1,
36724 "type" : "string",
36725 "typetext" : "<string>"
36726 },
4d47f125
TL
36727 "hostname" : {
36728 "description" : "Set a host name for the container.",
36729 "format" : "dns-name",
36730 "maxLength" : 255,
36731 "optional" : 1,
36732 "type" : "string",
36733 "typetext" : "<string>"
36734 },
36735 "ignore-unpack-errors" : {
36736 "description" : "Ignore errors when extracting the template.",
36737 "optional" : 1,
36738 "type" : "boolean",
36739 "typetext" : "<boolean>"
36740 },
36741 "lock" : {
4e7f60c2 36742 "description" : "Lock/unlock the container.",
4d47f125
TL
36743 "enum" : [
36744 "backup",
bb4c8cf8 36745 "create",
1c532546 36746 "destroyed",
4d47f125 36747 "disk",
bb4c8cf8 36748 "fstrim",
4d47f125
TL
36749 "migrate",
36750 "mounted",
36751 "rollback",
36752 "snapshot",
36753 "snapshot-delete"
36754 ],
36755 "optional" : 1,
36756 "type" : "string"
36757 },
36758 "memory" : {
36759 "default" : 512,
4e7f60c2 36760 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
36761 "minimum" : 16,
36762 "optional" : 1,
36763 "type" : "integer",
36764 "typetext" : "<integer> (16 - N)"
36765 },
36766 "mp[n]" : {
d2656385 36767 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
36768 "format" : {
36769 "acl" : {
36770 "description" : "Explicitly enable or disable ACL support.",
36771 "optional" : 1,
36772 "type" : "boolean"
56122987 36773 },
4d47f125
TL
36774 "backup" : {
36775 "description" : "Whether to include the mount point in backups.",
36776 "optional" : 1,
36777 "type" : "boolean",
36778 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
56122987 36779 },
7cbed89a
TL
36780 "mountoptions" : {
36781 "description" : "Extra mount options for rootfs/mps.",
36782 "format_description" : "opt[;opt...]",
36783 "optional" : 1,
c30bb419 36784 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
36785 "type" : "string"
36786 },
4d47f125
TL
36787 "mp" : {
36788 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
36789 "format" : "pve-lxc-mp-string",
36790 "format_description" : "Path",
36791 "type" : "string",
36792 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
7aacca6f 36793 },
4d47f125
TL
36794 "quota" : {
36795 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
36796 "optional" : 1,
36797 "type" : "boolean"
36798 },
36799 "replicate" : {
36800 "default" : 1,
36801 "description" : "Will include this volume to a storage replica job.",
36802 "optional" : 1,
36803 "type" : "boolean"
36804 },
36805 "ro" : {
36806 "description" : "Read-only mount point",
36807 "optional" : 1,
36808 "type" : "boolean"
36809 },
36810 "shared" : {
36811 "default" : 0,
36812 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
36813 "optional" : 1,
36814 "type" : "boolean",
36815 "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 36816 },
4d47f125
TL
36817 "size" : {
36818 "description" : "Volume size (read only value).",
36819 "format" : "disk-size",
36820 "format_description" : "DiskSize",
36821 "optional" : 1,
36822 "type" : "string"
36823 },
36824 "volume" : {
36825 "default_key" : 1,
36826 "description" : "Volume, device or directory to mount into the container.",
36827 "format" : "pve-lxc-mp-string",
36828 "format_description" : "volume",
44660702
DM
36829 "type" : "string"
36830 }
4d47f125
TL
36831 },
36832 "optional" : 1,
36833 "type" : "string",
7cbed89a 36834 "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 36835 },
4d47f125
TL
36836 "nameserver" : {
36837 "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 36838 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
36839 "optional" : 1,
36840 "type" : "string",
36841 "typetext" : "<string>"
36842 },
36843 "net[n]" : {
36844 "description" : "Specifies network interfaces for the container.",
36845 "format" : {
36846 "bridge" : {
36847 "description" : "Bridge to attach the network device to.",
36848 "format_description" : "bridge",
36849 "optional" : 1,
36850 "pattern" : "[-_.\\w\\d]+",
36851 "type" : "string"
56122987 36852 },
4d47f125
TL
36853 "firewall" : {
36854 "description" : "Controls whether this interface's firewall rules should be used.",
36855 "optional" : 1,
36856 "type" : "boolean"
56122987 36857 },
4d47f125
TL
36858 "gw" : {
36859 "description" : "Default gateway for IPv4 traffic.",
36860 "format" : "ipv4",
36861 "format_description" : "GatewayIPv4",
36862 "optional" : 1,
36863 "type" : "string"
36864 },
36865 "gw6" : {
36866 "description" : "Default gateway for IPv6 traffic.",
36867 "format" : "ipv6",
36868 "format_description" : "GatewayIPv6",
36869 "optional" : 1,
36870 "type" : "string"
36871 },
36872 "hwaddr" : {
36873 "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 36874 "format" : "mac-addr",
4d47f125
TL
36875 "format_description" : "XX:XX:XX:XX:XX:XX",
36876 "optional" : 1,
95895385
TL
36877 "type" : "string",
36878 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
36879 },
36880 "ip" : {
36881 "description" : "IPv4 address in CIDR format.",
36882 "format" : "pve-ipv4-config",
36883 "format_description" : "(IPv4/CIDR|dhcp|manual)",
36884 "optional" : 1,
36885 "type" : "string"
36886 },
36887 "ip6" : {
36888 "description" : "IPv6 address in CIDR format.",
36889 "format" : "pve-ipv6-config",
36890 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
36891 "optional" : 1,
36892 "type" : "string"
36893 },
9d2e98ed
TL
36894 "link_down" : {
36895 "description" : "Whether this interface should be disconnected (like pulling the plug).",
36896 "optional" : 1,
36897 "type" : "boolean"
36898 },
4d47f125
TL
36899 "mtu" : {
36900 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 36901 "maximum" : 65535,
4d47f125
TL
36902 "minimum" : 64,
36903 "optional" : 1,
36904 "type" : "integer"
36905 },
36906 "name" : {
36907 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
36908 "format_description" : "string",
36909 "pattern" : "[-_.\\w\\d]+",
36910 "type" : "string"
36911 },
36912 "rate" : {
36913 "description" : "Apply rate limiting to the interface",
36914 "format_description" : "mbps",
36915 "optional" : 1,
36916 "type" : "number"
36917 },
36918 "tag" : {
36919 "description" : "VLAN tag for this interface.",
36920 "maximum" : 4094,
36921 "minimum" : 1,
36922 "optional" : 1,
36923 "type" : "integer"
36924 },
36925 "trunks" : {
36926 "description" : "VLAN ids to pass through the interface",
36927 "format_description" : "vlanid[;vlanid...]",
36928 "optional" : 1,
36929 "pattern" : "(?^:\\d+(?:;\\d+)*)",
36930 "type" : "string"
36931 },
36932 "type" : {
36933 "description" : "Network interface type.",
36934 "enum" : [
36935 "veth"
36936 ],
36937 "optional" : 1,
36938 "type" : "string"
7aacca6f 36939 }
4d47f125
TL
36940 },
36941 "optional" : 1,
36942 "type" : "string",
9d2e98ed 36943 "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 36944 },
4d47f125
TL
36945 "node" : {
36946 "description" : "The cluster node name.",
36947 "format" : "pve-node",
36948 "type" : "string",
36949 "typetext" : "<string>"
36950 },
36951 "onboot" : {
36952 "default" : 0,
4e7f60c2 36953 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
36954 "optional" : 1,
36955 "type" : "boolean",
36956 "typetext" : "<boolean>"
36957 },
36958 "ostemplate" : {
36959 "description" : "The OS template or backup file.",
36960 "maxLength" : 255,
36961 "type" : "string",
36962 "typetext" : "<string>"
36963 },
36964 "ostype" : {
36965 "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.",
36966 "enum" : [
36967 "debian",
d2656385 36968 "devuan",
4d47f125
TL
36969 "ubuntu",
36970 "centos",
36971 "fedora",
36972 "opensuse",
36973 "archlinux",
36974 "alpine",
36975 "gentoo",
7af2edf9 36976 "nixos",
4d47f125
TL
36977 "unmanaged"
36978 ],
36979 "optional" : 1,
36980 "type" : "string"
36981 },
36982 "password" : {
36983 "description" : "Sets root password inside container.",
36984 "minLength" : 5,
36985 "optional" : 1,
36986 "type" : "string",
36987 "typetext" : "<string>"
36988 },
36989 "pool" : {
36990 "description" : "Add the VM to the specified pool.",
36991 "format" : "pve-poolid",
36992 "optional" : 1,
36993 "type" : "string",
36994 "typetext" : "<string>"
36995 },
36996 "protection" : {
36997 "default" : 0,
36998 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
36999 "optional" : 1,
37000 "type" : "boolean",
37001 "typetext" : "<boolean>"
37002 },
37003 "restore" : {
37004 "description" : "Mark this as restore task.",
37005 "optional" : 1,
37006 "type" : "boolean",
37007 "typetext" : "<boolean>"
37008 },
37009 "rootfs" : {
37010 "description" : "Use volume as container root.",
37011 "format" : {
37012 "acl" : {
37013 "description" : "Explicitly enable or disable ACL support.",
37014 "optional" : 1,
37015 "type" : "boolean"
56122987 37016 },
7cbed89a
TL
37017 "mountoptions" : {
37018 "description" : "Extra mount options for rootfs/mps.",
37019 "format_description" : "opt[;opt...]",
37020 "optional" : 1,
c30bb419 37021 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
37022 "type" : "string"
37023 },
4d47f125
TL
37024 "quota" : {
37025 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
37026 "optional" : 1,
37027 "type" : "boolean"
7aacca6f 37028 },
4d47f125
TL
37029 "replicate" : {
37030 "default" : 1,
37031 "description" : "Will include this volume to a storage replica job.",
37032 "optional" : 1,
37033 "type" : "boolean"
37034 },
37035 "ro" : {
37036 "description" : "Read-only mount point",
37037 "optional" : 1,
37038 "type" : "boolean"
37039 },
37040 "shared" : {
37041 "default" : 0,
37042 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
37043 "optional" : 1,
37044 "type" : "boolean",
37045 "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!"
37046 },
37047 "size" : {
37048 "description" : "Volume size (read only value).",
37049 "format" : "disk-size",
37050 "format_description" : "DiskSize",
37051 "optional" : 1,
37052 "type" : "string"
37053 },
37054 "volume" : {
37055 "default_key" : 1,
37056 "description" : "Volume, device or directory to mount into the container.",
37057 "format" : "pve-lxc-mp-string",
37058 "format_description" : "volume",
37059 "type" : "string"
56122987 37060 }
4d47f125
TL
37061 },
37062 "optional" : 1,
37063 "type" : "string",
7cbed89a 37064 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
56122987 37065 },
4d47f125
TL
37066 "searchdomain" : {
37067 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
37068 "format" : "dns-name-list",
37069 "optional" : 1,
37070 "type" : "string",
37071 "typetext" : "<string>"
37072 },
37073 "ssh-public-keys" : {
37074 "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
37075 "optional" : 1,
37076 "type" : "string",
37077 "typetext" : "<string>"
37078 },
37079 "start" : {
37080 "default" : 0,
37081 "description" : "Start the CT after its creation finished successfully.",
37082 "optional" : 1,
37083 "type" : "boolean",
37084 "typetext" : "<boolean>"
37085 },
37086 "startup" : {
37087 "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.",
37088 "format" : "pve-startup-order",
37089 "optional" : 1,
37090 "type" : "string",
37091 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
37092 },
37093 "storage" : {
37094 "default" : "local",
37095 "description" : "Default Storage.",
37096 "format" : "pve-storage-id",
37097 "optional" : 1,
37098 "type" : "string",
37099 "typetext" : "<string>"
37100 },
37101 "swap" : {
37102 "default" : 512,
4e7f60c2 37103 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
37104 "minimum" : 0,
37105 "optional" : 1,
37106 "type" : "integer",
37107 "typetext" : "<integer> (0 - N)"
37108 },
5c1699e5
TL
37109 "tags" : {
37110 "description" : "Tags of the Container. This is only meta information.",
37111 "format" : "pve-tag-list",
37112 "optional" : 1,
37113 "type" : "string",
37114 "typetext" : "<string>"
37115 },
4d47f125
TL
37116 "template" : {
37117 "default" : 0,
37118 "description" : "Enable/disable Template.",
37119 "optional" : 1,
37120 "type" : "boolean",
37121 "typetext" : "<boolean>"
37122 },
04d22a9f
TL
37123 "timezone" : {
37124 "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",
37125 "format" : "pve-ct-timezone",
37126 "optional" : 1,
37127 "type" : "string",
37128 "typetext" : "<string>"
37129 },
4d47f125
TL
37130 "tty" : {
37131 "default" : 2,
37132 "description" : "Specify the number of tty available to the container",
37133 "maximum" : 6,
37134 "minimum" : 0,
37135 "optional" : 1,
37136 "type" : "integer",
37137 "typetext" : "<integer> (0 - 6)"
37138 },
95895385
TL
37139 "unique" : {
37140 "description" : "Assign a unique random ethernet address.",
37141 "optional" : 1,
37142 "requires" : "restore",
37143 "type" : "boolean",
37144 "typetext" : "<boolean>"
37145 },
4d47f125
TL
37146 "unprivileged" : {
37147 "default" : 0,
37148 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
37149 "optional" : 1,
37150 "type" : "boolean",
37151 "typetext" : "<boolean>"
37152 },
37153 "unused[n]" : {
37154 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
37155 "format" : {
37156 "volume" : {
37157 "default_key" : 1,
37158 "description" : "The volume that is not used currently.",
37159 "format" : "pve-volume-id",
37160 "format_description" : "volume",
37161 "type" : "string"
37162 }
37163 },
4d47f125
TL
37164 "optional" : 1,
37165 "type" : "string",
c5aa7e14 37166 "typetext" : "[volume=]<volume>"
4d47f125
TL
37167 },
37168 "vmid" : {
37169 "description" : "The (unique) ID of the VM.",
37170 "format" : "pve-vmid",
8dd66e12
TL
37171 "maximum" : 999999999,
37172 "minimum" : 100,
4d47f125 37173 "type" : "integer",
8dd66e12 37174 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
37175 }
37176 }
37177 },
37178 "permissions" : {
37179 "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.",
37180 "user" : "all"
37181 },
37182 "protected" : 1,
37183 "proxyto" : "node",
37184 "returns" : {
37185 "type" : "string"
37186 }
37187 }
37188 },
37189 "leaf" : 0,
37190 "path" : "/nodes/{node}/lxc",
37191 "text" : "lxc"
37192 },
37193 {
37194 "children" : [
9d2e98ed
TL
37195 {
37196 "children" : [
37197 {
37198 "info" : {
37199 "GET" : {
37200 "allowtoken" : 1,
37201 "description" : "Get the Ceph configuration file.",
37202 "method" : "GET",
37203 "name" : "raw",
37204 "parameters" : {
37205 "additionalProperties" : 0,
37206 "properties" : {
37207 "node" : {
37208 "description" : "The cluster node name.",
37209 "format" : "pve-node",
37210 "type" : "string",
37211 "typetext" : "<string>"
37212 }
37213 }
37214 },
37215 "permissions" : {
37216 "check" : [
37217 "perm",
37218 "/",
37219 [
37220 "Sys.Audit",
37221 "Datastore.Audit"
37222 ],
37223 "any",
37224 1
37225 ]
37226 },
37227 "proxyto" : "node",
37228 "returns" : {
37229 "type" : "string"
37230 }
37231 }
37232 },
37233 "leaf" : 1,
37234 "path" : "/nodes/{node}/ceph/cfg/raw",
37235 "text" : "raw"
37236 },
37237 {
37238 "info" : {
37239 "GET" : {
37240 "allowtoken" : 1,
37241 "description" : "Get the Ceph configuration database.",
37242 "method" : "GET",
37243 "name" : "db",
37244 "parameters" : {
37245 "additionalProperties" : 0,
37246 "properties" : {
37247 "node" : {
37248 "description" : "The cluster node name.",
37249 "format" : "pve-node",
37250 "type" : "string",
37251 "typetext" : "<string>"
37252 }
37253 }
37254 },
37255 "permissions" : {
37256 "check" : [
37257 "perm",
37258 "/",
37259 [
37260 "Sys.Audit",
37261 "Datastore.Audit"
37262 ],
37263 "any",
37264 1
37265 ]
37266 },
37267 "protected" : 1,
37268 "proxyto" : "node",
37269 "returns" : {
37270 "items" : {
37271 "properties" : {
37272 "can_update_at_runtime" : {
37273 "type" : "boolean"
37274 },
37275 "level" : {
37276 "type" : "string"
37277 },
37278 "mask" : {
37279 "type" : "string"
37280 },
37281 "name" : {
37282 "type" : "string"
37283 },
37284 "section" : {
37285 "type" : "string"
37286 },
37287 "value" : {
37288 "type" : "string"
37289 }
37290 },
37291 "type" : "object"
37292 },
37293 "type" : "array"
37294 }
37295 }
37296 },
37297 "leaf" : 1,
37298 "path" : "/nodes/{node}/ceph/cfg/db",
37299 "text" : "db"
fa22697b
TL
37300 },
37301 {
37302 "info" : {
37303 "GET" : {
37304 "allowtoken" : 1,
37305 "description" : "Get configured values from either the config file or config DB.",
37306 "method" : "GET",
37307 "name" : "value",
37308 "parameters" : {
37309 "additionalProperties" : 0,
37310 "properties" : {
37311 "config-keys" : {
37312 "description" : "List of <section>:<config key> items.",
37313 "pattern" : "(?^:^(:?(?^i:[0-9a-z\\-_\\.]+:[0-9a-zA-Z\\-_]+))(:?[;, ](?^i:[0-9a-z\\-_\\.]+:[0-9a-zA-Z\\-_]+))*$)",
37314 "type" : "string",
37315 "typetext" : "<section>:<config key>[;<section>:<config key>]"
37316 },
37317 "node" : {
37318 "description" : "The cluster node name.",
37319 "format" : "pve-node",
37320 "type" : "string",
37321 "typetext" : "<string>"
37322 }
37323 }
37324 },
37325 "permissions" : {
37326 "check" : [
37327 "perm",
37328 "/",
37329 [
37330 "Sys.Audit"
37331 ]
37332 ]
37333 },
37334 "protected" : 1,
37335 "proxyto" : "node",
37336 "returns" : {
37337 "description" : "Contains {section}->{key} children with the values",
37338 "type" : "object"
37339 }
37340 }
37341 },
37342 "leaf" : 1,
37343 "path" : "/nodes/{node}/ceph/cfg/value",
37344 "text" : "value"
9d2e98ed
TL
37345 }
37346 ],
37347 "info" : {
37348 "GET" : {
37349 "allowtoken" : 1,
37350 "description" : "Directory index.",
37351 "method" : "GET",
37352 "name" : "index",
37353 "parameters" : {
37354 "additionalProperties" : 0,
37355 "properties" : {
37356 "node" : {
37357 "description" : "The cluster node name.",
37358 "format" : "pve-node",
37359 "type" : "string",
37360 "typetext" : "<string>"
37361 }
37362 }
37363 },
37364 "permissions" : {
37365 "user" : "all"
37366 },
37367 "returns" : {
37368 "items" : {
37369 "properties" : {},
37370 "type" : "object"
37371 },
37372 "links" : [
37373 {
37374 "href" : "{name}",
37375 "rel" : "child"
37376 }
37377 ],
37378 "type" : "array"
37379 }
37380 }
37381 },
37382 "leaf" : 0,
37383 "path" : "/nodes/{node}/ceph/cfg",
37384 "text" : "cfg"
37385 },
4d47f125
TL
37386 {
37387 "children" : [
56122987 37388 {
4d47f125
TL
37389 "children" : [
37390 {
37391 "info" : {
9d2e98ed 37392 "GET" : {
e9cd3bd4 37393 "allowtoken" : 1,
9d2e98ed
TL
37394 "description" : "Get OSD details",
37395 "method" : "GET",
37396 "name" : "osddetails",
37397 "parameters" : {
37398 "additionalProperties" : 0,
37399 "properties" : {
37400 "node" : {
37401 "description" : "The cluster node name.",
37402 "format" : "pve-node",
37403 "type" : "string",
37404 "typetext" : "<string>"
37405 },
37406 "osdid" : {
37407 "description" : "OSD ID",
37408 "type" : "integer",
37409 "typetext" : "<integer>"
37410 }
37411 }
37412 },
37413 "permissions" : {
37414 "check" : [
37415 "perm",
37416 "/",
37417 [
37418 "Sys.Audit"
37419 ],
37420 "any",
37421 1
37422 ]
37423 },
37424 "protected" : 1,
37425 "proxyto" : "node",
37426 "returns" : {
37427 "properties" : {
37428 "devices" : {
37429 "description" : "Array containing data about devices",
37430 "items" : {
37431 "properties" : {
37432 "dev_node" : {
37433 "description" : "Device node",
37434 "type" : "string"
37435 },
37436 "device" : {
37437 "description" : "Kind of OSD device",
37438 "enum" : [
37439 "block",
37440 "db",
37441 "wal"
37442 ],
37443 "type" : "string"
37444 },
37445 "devices" : {
37446 "description" : "Physical disks used",
37447 "type" : "string"
37448 },
37449 "size" : {
37450 "description" : "Size in bytes",
37451 "type" : "integer"
37452 },
37453 "support_discard" : {
37454 "description" : "Discard support of the physical device",
37455 "type" : "boolean"
37456 },
37457 "type" : {
37458 "description" : "Type of device. For example, hdd or ssd",
37459 "type" : "string"
37460 }
37461 },
37462 "type" : "object"
37463 },
37464 "type" : "array"
37465 },
37466 "osd" : {
37467 "description" : "General information about the OSD",
37468 "properties" : {
37469 "back_addr" : {
37470 "description" : "Address and port used to talk to other OSDs.",
37471 "type" : "string"
37472 },
37473 "front_addr" : {
37474 "description" : "Address and port used to talk to clients and monitors.",
37475 "type" : "string"
37476 },
37477 "hb_back_addr" : {
37478 "description" : "Heartbeat address and port for other OSDs.",
37479 "type" : "string"
37480 },
37481 "hb_front_addr" : {
37482 "description" : "Heartbeat address and port for clients and monitors.",
37483 "type" : "string"
37484 },
37485 "hostname" : {
37486 "description" : "Name of the host containing the OSD.",
37487 "type" : "string"
37488 },
37489 "id" : {
37490 "description" : "ID of the OSD.",
37491 "type" : "integer"
37492 },
37493 "mem_usage" : {
37494 "description" : "Memory usage of the OSD service.",
37495 "type" : "integer"
37496 },
37497 "osd_data" : {
37498 "description" : "Path to the OSD's data directory.",
37499 "type" : "string"
37500 },
37501 "osd_objectstore" : {
37502 "description" : "The type of object store used.",
37503 "type" : "string"
37504 },
37505 "pid" : {
37506 "description" : "OSD process ID.",
37507 "type" : "integer"
37508 },
37509 "version" : {
37510 "description" : "Ceph version of the OSD service.",
37511 "type" : "string"
37512 }
37513 },
37514 "type" : "object"
37515 }
37516 },
37517 "type" : "object"
37518 }
37519 }
37520 },
37521 "leaf" : 1,
37522 "path" : "/nodes/{node}/ceph/osd/{osdid}/metadata",
37523 "text" : "metadata"
37524 },
37525 {
37526 "info" : {
37527 "GET" : {
37528 "allowtoken" : 1,
37529 "description" : "Get OSD volume details",
37530 "method" : "GET",
37531 "name" : "osdvolume",
37532 "parameters" : {
37533 "additionalProperties" : 0,
37534 "properties" : {
37535 "node" : {
37536 "description" : "The cluster node name.",
37537 "format" : "pve-node",
37538 "type" : "string",
37539 "typetext" : "<string>"
37540 },
37541 "osdid" : {
37542 "description" : "OSD ID",
37543 "type" : "integer",
37544 "typetext" : "<integer>"
37545 },
37546 "type" : {
37547 "default" : "block",
37548 "description" : "OSD device type",
37549 "enum" : [
37550 "block",
37551 "db",
37552 "wal"
37553 ],
37554 "optional" : 1,
37555 "type" : "string"
37556 }
37557 }
37558 },
37559 "permissions" : {
37560 "check" : [
37561 "perm",
37562 "/",
37563 [
37564 "Sys.Audit"
37565 ],
37566 "any",
37567 1
37568 ]
37569 },
37570 "protected" : 1,
37571 "proxyto" : "node",
37572 "returns" : {
37573 "properties" : {
37574 "creation_time" : {
37575 "description" : "Creation time as reported by `lvs`.",
37576 "type" : "string"
37577 },
37578 "lv_name" : {
37579 "description" : "Name of the logical volume (LV).",
37580 "type" : "string"
37581 },
37582 "lv_path" : {
37583 "description" : "Path to the logical volume (LV).",
37584 "type" : "string"
37585 },
37586 "lv_size" : {
37587 "description" : "Size of the logical volume (LV).",
37588 "type" : "integer"
37589 },
37590 "lv_uuid" : {
37591 "description" : "UUID of the logical volume (LV).",
37592 "type" : "string"
37593 },
37594 "vg_name" : {
37595 "description" : "Name of the volume group (VG).",
37596 "type" : "string"
37597 }
37598 },
37599 "type" : "object"
37600 }
37601 }
37602 },
37603 "leaf" : 1,
37604 "path" : "/nodes/{node}/ceph/osd/{osdid}/lv-info",
37605 "text" : "lv-info"
37606 },
37607 {
37608 "info" : {
37609 "POST" : {
37610 "allowtoken" : 1,
37611 "description" : "ceph osd in",
37612 "method" : "POST",
37613 "name" : "in",
4d47f125
TL
37614 "parameters" : {
37615 "additionalProperties" : 0,
37616 "properties" : {
37617 "node" : {
37618 "description" : "The cluster node name.",
37619 "format" : "pve-node",
37620 "type" : "string",
37621 "typetext" : "<string>"
37622 },
37623 "osdid" : {
37624 "description" : "OSD ID",
37625 "type" : "integer",
37626 "typetext" : "<integer>"
37627 }
37628 }
27a7acb2 37629 },
4d47f125
TL
37630 "permissions" : {
37631 "check" : [
37632 "perm",
37633 "/",
37634 [
37635 "Sys.Modify"
37636 ]
37637 ]
44660702 37638 },
4d47f125
TL
37639 "protected" : 1,
37640 "proxyto" : "node",
37641 "returns" : {
37642 "type" : "null"
7aacca6f
DM
37643 }
37644 }
56122987 37645 },
4d47f125
TL
37646 "leaf" : 1,
37647 "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
37648 "text" : "in"
37649 },
37650 {
37651 "info" : {
37652 "POST" : {
e9cd3bd4 37653 "allowtoken" : 1,
4d47f125
TL
37654 "description" : "ceph osd out",
37655 "method" : "POST",
37656 "name" : "out",
37657 "parameters" : {
37658 "additionalProperties" : 0,
37659 "properties" : {
37660 "node" : {
37661 "description" : "The cluster node name.",
37662 "format" : "pve-node",
37663 "type" : "string",
37664 "typetext" : "<string>"
37665 },
37666 "osdid" : {
37667 "description" : "OSD ID",
37668 "type" : "integer",
37669 "typetext" : "<integer>"
37670 }
37671 }
37672 },
37673 "permissions" : {
37674 "check" : [
56122987 37675 "perm",
4d47f125 37676 "/",
56122987 37677 [
4d47f125 37678 "Sys.Modify"
56122987 37679 ]
56122987 37680 ]
44660702 37681 },
4d47f125
TL
37682 "protected" : 1,
37683 "proxyto" : "node",
37684 "returns" : {
37685 "type" : "null"
56122987 37686 }
44660702 37687 }
56122987 37688 },
4d47f125
TL
37689 "leaf" : 1,
37690 "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
37691 "text" : "out"
7cbed89a
TL
37692 },
37693 {
37694 "info" : {
37695 "POST" : {
e9cd3bd4 37696 "allowtoken" : 1,
7cbed89a
TL
37697 "description" : "Instruct the OSD to scrub.",
37698 "method" : "POST",
37699 "name" : "scrub",
37700 "parameters" : {
37701 "additionalProperties" : 0,
37702 "properties" : {
37703 "deep" : {
37704 "default" : 0,
37705 "description" : "If set, instructs a deep scrub instead of a normal one.",
37706 "optional" : 1,
37707 "type" : "boolean",
37708 "typetext" : "<boolean>"
37709 },
37710 "node" : {
37711 "description" : "The cluster node name.",
37712 "format" : "pve-node",
37713 "type" : "string",
37714 "typetext" : "<string>"
37715 },
37716 "osdid" : {
37717 "description" : "OSD ID",
37718 "type" : "integer",
37719 "typetext" : "<integer>"
37720 }
37721 }
37722 },
37723 "permissions" : {
37724 "check" : [
37725 "perm",
37726 "/",
37727 [
37728 "Sys.Modify"
37729 ]
37730 ]
37731 },
37732 "protected" : 1,
37733 "proxyto" : "node",
37734 "returns" : {
37735 "type" : "null"
37736 }
37737 }
37738 },
37739 "leaf" : 1,
37740 "path" : "/nodes/{node}/ceph/osd/{osdid}/scrub",
37741 "text" : "scrub"
56122987 37742 }
4d47f125 37743 ],
27a7acb2 37744 "info" : {
4d47f125 37745 "DELETE" : {
e9cd3bd4 37746 "allowtoken" : 1,
4d47f125
TL
37747 "description" : "Destroy OSD",
37748 "method" : "DELETE",
37749 "name" : "destroyosd",
27a7acb2
DM
37750 "parameters" : {
37751 "additionalProperties" : 0,
37752 "properties" : {
4d47f125 37753 "cleanup" : {
27a7acb2 37754 "default" : 0,
4d47f125 37755 "description" : "If set, we remove partition table entries.",
27a7acb2 37756 "optional" : 1,
4d47f125
TL
37757 "type" : "boolean",
37758 "typetext" : "<boolean>"
37759 },
37760 "node" : {
37761 "description" : "The cluster node name.",
37762 "format" : "pve-node",
37763 "type" : "string",
37764 "typetext" : "<string>"
37765 },
37766 "osdid" : {
37767 "description" : "OSD ID",
37768 "type" : "integer",
37769 "typetext" : "<integer>"
37770 }
37771 }
27a7acb2
DM
37772 },
37773 "protected" : 1,
37774 "proxyto" : "node",
37775 "returns" : {
37776 "type" : "string"
37777 }
9d2e98ed
TL
37778 },
37779 "GET" : {
37780 "allowtoken" : 1,
37781 "description" : "OSD index.",
37782 "method" : "GET",
37783 "name" : "osdindex",
37784 "parameters" : {
37785 "additionalProperties" : 0,
37786 "properties" : {
37787 "node" : {
37788 "description" : "The cluster node name.",
37789 "format" : "pve-node",
37790 "type" : "string",
37791 "typetext" : "<string>"
37792 },
37793 "osdid" : {
37794 "description" : "OSD ID",
37795 "type" : "integer",
37796 "typetext" : "<integer>"
37797 }
37798 }
37799 },
37800 "permissions" : {
37801 "user" : "all"
37802 },
37803 "returns" : {
37804 "items" : {
37805 "properties" : {},
37806 "type" : "object"
37807 },
37808 "links" : [
37809 {
37810 "href" : "{name}",
37811 "rel" : "child"
37812 }
37813 ],
37814 "type" : "array"
37815 }
27a7acb2
DM
37816 }
37817 },
4d47f125
TL
37818 "leaf" : 0,
37819 "path" : "/nodes/{node}/ceph/osd/{osdid}",
37820 "text" : "{osdid}"
56122987
DM
37821 }
37822 ],
37823 "info" : {
4d47f125 37824 "GET" : {
e9cd3bd4 37825 "allowtoken" : 1,
4d47f125
TL
37826 "description" : "Get Ceph osd list/tree.",
37827 "method" : "GET",
37828 "name" : "index",
44660702
DM
37829 "parameters" : {
37830 "additionalProperties" : 0,
37831 "properties" : {
37832 "node" : {
37833 "description" : "The cluster node name.",
37834 "format" : "pve-node",
013dc89f
DM
37835 "type" : "string",
37836 "typetext" : "<string>"
44660702
DM
37837 }
37838 }
37839 },
7aacca6f
DM
37840 "permissions" : {
37841 "check" : [
37842 "perm",
4d47f125 37843 "/",
7aacca6f 37844 [
4d47f125
TL
37845 "Sys.Audit",
37846 "Datastore.Audit"
37847 ],
37848 "any",
37849 1
37850 ]
37851 },
37852 "protected" : 1,
37853 "proxyto" : "node",
37854 "returns" : {
9d2e98ed
TL
37855 "items" : {
37856 "properties" : {
37857 "flags" : {
37858 "type" : "string"
37859 },
37860 "root" : {
37861 "description" : "Tree with OSDs in the CRUSH map structure.",
37862 "type" : "object"
37863 }
37864 },
37865 "type" : "object"
37866 },
4d47f125
TL
37867 "type" : "object"
37868 }
37869 },
37870 "POST" : {
e9cd3bd4 37871 "allowtoken" : 1,
4d47f125
TL
37872 "description" : "Create OSD",
37873 "method" : "POST",
37874 "name" : "createosd",
37875 "parameters" : {
37876 "additionalProperties" : 0,
37877 "properties" : {
739d4d64
TL
37878 "crush-device-class" : {
37879 "description" : "Set the device class of the OSD in crush.",
37880 "optional" : 1,
37881 "type" : "string",
37882 "typetext" : "<string>"
37883 },
1e3f8156
TL
37884 "db_dev" : {
37885 "description" : "Block device name for block.db.",
44660702 37886 "optional" : 1,
4bd7df8b 37887 "type" : "string",
4d47f125 37888 "typetext" : "<string>"
44660702 37889 },
0695fdaf 37890 "db_dev_size" : {
1e3f8156
TL
37891 "default" : "bluestore_block_db_size or 10% of OSD size",
37892 "description" : "Size in GiB for block.db.",
37893 "minimum" : 1,
7aacca6f 37894 "optional" : 1,
1e3f8156
TL
37895 "requires" : "db_dev",
37896 "type" : "number",
37897 "typetext" : "<number> (1 - N)",
fa22697b 37898 "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 37899 },
1e3f8156
TL
37900 "dev" : {
37901 "description" : "Block device name.",
4d47f125
TL
37902 "type" : "string",
37903 "typetext" : "<string>"
5d9c884c 37904 },
1e3f8156
TL
37905 "encrypted" : {
37906 "default" : 0,
37907 "description" : "Enables encryption of the OSD.",
37908 "optional" : 1,
37909 "type" : "boolean",
37910 "typetext" : "<boolean>"
37911 },
4d47f125
TL
37912 "node" : {
37913 "description" : "The cluster node name.",
37914 "format" : "pve-node",
37915 "type" : "string",
37916 "typetext" : "<string>"
7aacca6f 37917 },
fa22697b
TL
37918 "osds-per-device" : {
37919 "description" : "OSD services per physical device. Only useful for fast NVMe devices\"\n\t\t .\" to utilize their performance better.",
37920 "minimum" : "1",
37921 "optional" : 1,
37922 "type" : "integer",
37923 "typetext" : "<integer> (1 - N)"
37924 },
4d47f125 37925 "wal_dev" : {
1e3f8156 37926 "description" : "Block device name for block.wal.",
de0983cb 37927 "optional" : 1,
4d47f125
TL
37928 "type" : "string",
37929 "typetext" : "<string>"
1e3f8156 37930 },
0695fdaf 37931 "wal_dev_size" : {
1e3f8156
TL
37932 "default" : "bluestore_block_wal_size or 1% of OSD size",
37933 "description" : "Size in GiB for block.wal.",
37934 "minimum" : 0.5,
37935 "optional" : 1,
37936 "requires" : "wal_dev",
37937 "type" : "number",
37938 "typetext" : "<number> (0.5 - N)",
fa22697b 37939 "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
37940 }
37941 }
37942 },
37943 "protected" : 1,
37944 "proxyto" : "node",
37945 "returns" : {
37946 "type" : "string"
37947 }
37948 }
37949 },
37950 "leaf" : 0,
37951 "path" : "/nodes/{node}/ceph/osd",
37952 "text" : "osd"
37953 },
e2d681b3
TL
37954 {
37955 "children" : [
37956 {
37957 "info" : {
37958 "DELETE" : {
e9cd3bd4 37959 "allowtoken" : 1,
e2d681b3
TL
37960 "description" : "Destroy Ceph Metadata Server",
37961 "method" : "DELETE",
37962 "name" : "destroymds",
37963 "parameters" : {
37964 "additionalProperties" : 0,
37965 "properties" : {
37966 "name" : {
37967 "description" : "The name (ID) of the mds",
37968 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
37969 "type" : "string"
37970 },
37971 "node" : {
37972 "description" : "The cluster node name.",
37973 "format" : "pve-node",
37974 "type" : "string",
37975 "typetext" : "<string>"
37976 }
37977 }
37978 },
37979 "permissions" : {
37980 "check" : [
37981 "perm",
37982 "/",
37983 [
37984 "Sys.Modify"
37985 ]
37986 ]
37987 },
37988 "protected" : 1,
37989 "proxyto" : "node",
37990 "returns" : {
37991 "type" : "string"
37992 }
37993 },
37994 "POST" : {
e9cd3bd4 37995 "allowtoken" : 1,
e2d681b3
TL
37996 "description" : "Create Ceph Metadata Server (MDS)",
37997 "method" : "POST",
37998 "name" : "createmds",
37999 "parameters" : {
38000 "additionalProperties" : 0,
38001 "properties" : {
38002 "hotstandby" : {
38003 "default" : "0",
38004 "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.",
38005 "optional" : 1,
38006 "type" : "boolean",
38007 "typetext" : "<boolean>"
38008 },
38009 "name" : {
38010 "default" : "nodename",
38011 "description" : "The ID for the mds, when omitted the same as the nodename",
c5aa7e14 38012 "maxLength" : 200,
e2d681b3
TL
38013 "optional" : 1,
38014 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
38015 "type" : "string"
38016 },
38017 "node" : {
38018 "description" : "The cluster node name.",
38019 "format" : "pve-node",
38020 "type" : "string",
38021 "typetext" : "<string>"
38022 }
38023 }
38024 },
38025 "permissions" : {
38026 "check" : [
38027 "perm",
38028 "/",
38029 [
38030 "Sys.Modify"
38031 ]
38032 ]
38033 },
38034 "protected" : 1,
38035 "proxyto" : "node",
38036 "returns" : {
38037 "type" : "string"
38038 }
38039 }
38040 },
38041 "leaf" : 1,
38042 "path" : "/nodes/{node}/ceph/mds/{name}",
38043 "text" : "{name}"
38044 }
38045 ],
38046 "info" : {
38047 "GET" : {
e9cd3bd4 38048 "allowtoken" : 1,
e2d681b3
TL
38049 "description" : "MDS directory index.",
38050 "method" : "GET",
38051 "name" : "index",
38052 "parameters" : {
38053 "additionalProperties" : 0,
38054 "properties" : {
38055 "node" : {
38056 "description" : "The cluster node name.",
38057 "format" : "pve-node",
38058 "type" : "string",
38059 "typetext" : "<string>"
38060 }
38061 }
38062 },
38063 "permissions" : {
38064 "check" : [
38065 "perm",
38066 "/",
38067 [
38068 "Sys.Audit",
38069 "Datastore.Audit"
38070 ],
38071 "any",
38072 1
38073 ]
38074 },
38075 "protected" : 1,
38076 "proxyto" : "node",
38077 "returns" : {
38078 "items" : {
38079 "properties" : {
38080 "addr" : {
38081 "optional" : 1,
38082 "type" : "string"
38083 },
38084 "host" : {
38085 "optional" : 1,
38086 "type" : "string"
38087 },
38088 "name" : {
38089 "description" : "The name (ID) for the MDS"
38090 },
38091 "rank" : {
38092 "optional" : 1,
38093 "type" : "integer"
38094 },
38095 "standby_replay" : {
38096 "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
38097 "optional" : 1,
38098 "type" : "boolean"
38099 },
38100 "state" : {
38101 "description" : "State of the MDS",
38102 "type" : "string"
38103 }
38104 },
38105 "type" : "object"
38106 },
38107 "links" : [
38108 {
38109 "href" : "{name}",
38110 "rel" : "child"
38111 }
38112 ],
38113 "type" : "array"
38114 }
38115 }
38116 },
38117 "leaf" : 0,
38118 "path" : "/nodes/{node}/ceph/mds",
38119 "text" : "mds"
38120 },
38121 {
38122 "children" : [
38123 {
38124 "info" : {
5f26e15b 38125 "DELETE" : {
e9cd3bd4 38126 "allowtoken" : 1,
5f26e15b
TL
38127 "description" : "Destroy Ceph Manager.",
38128 "method" : "DELETE",
38129 "name" : "destroymgr",
e2d681b3
TL
38130 "parameters" : {
38131 "additionalProperties" : 0,
38132 "properties" : {
5f26e15b
TL
38133 "id" : {
38134 "description" : "The ID of the manager",
38135 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
38136 "type" : "string"
e2d681b3
TL
38137 },
38138 "node" : {
38139 "description" : "The cluster node name.",
38140 "format" : "pve-node",
38141 "type" : "string",
38142 "typetext" : "<string>"
e2d681b3
TL
38143 }
38144 }
38145 },
38146 "permissions" : {
38147 "check" : [
38148 "perm",
38149 "/",
38150 [
38151 "Sys.Modify"
38152 ]
38153 ]
38154 },
38155 "protected" : 1,
38156 "proxyto" : "node",
38157 "returns" : {
38158 "type" : "string"
38159 }
1e3f8156
TL
38160 },
38161 "POST" : {
e9cd3bd4 38162 "allowtoken" : 1,
1e3f8156
TL
38163 "description" : "Create Ceph Manager",
38164 "method" : "POST",
38165 "name" : "createmgr",
38166 "parameters" : {
38167 "additionalProperties" : 0,
38168 "properties" : {
38169 "id" : {
38170 "description" : "The ID for the manager, when omitted the same as the nodename",
c5aa7e14 38171 "maxLength" : 200,
1e3f8156
TL
38172 "optional" : 1,
38173 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
38174 "type" : "string"
38175 },
38176 "node" : {
38177 "description" : "The cluster node name.",
38178 "format" : "pve-node",
38179 "type" : "string",
38180 "typetext" : "<string>"
38181 }
38182 }
38183 },
38184 "permissions" : {
38185 "check" : [
38186 "perm",
38187 "/",
38188 [
38189 "Sys.Modify"
38190 ]
38191 ]
38192 },
38193 "protected" : 1,
38194 "proxyto" : "node",
38195 "returns" : {
38196 "type" : "string"
38197 }
e2d681b3
TL
38198 }
38199 },
38200 "leaf" : 1,
5f26e15b
TL
38201 "path" : "/nodes/{node}/ceph/mgr/{id}",
38202 "text" : "{id}"
e2d681b3
TL
38203 }
38204 ],
38205 "info" : {
1e3f8156 38206 "GET" : {
e9cd3bd4 38207 "allowtoken" : 1,
1e3f8156
TL
38208 "description" : "MGR directory index.",
38209 "method" : "GET",
38210 "name" : "index",
e2d681b3
TL
38211 "parameters" : {
38212 "additionalProperties" : 0,
38213 "properties" : {
38214 "node" : {
38215 "description" : "The cluster node name.",
38216 "format" : "pve-node",
38217 "type" : "string",
38218 "typetext" : "<string>"
38219 }
38220 }
38221 },
38222 "permissions" : {
38223 "check" : [
38224 "perm",
38225 "/",
38226 [
1e3f8156
TL
38227 "Sys.Audit",
38228 "Datastore.Audit"
38229 ],
38230 "any",
38231 1
e2d681b3
TL
38232 ]
38233 },
38234 "protected" : 1,
5f26e15b 38235 "proxyto" : "node",
e2d681b3 38236 "returns" : {
1e3f8156
TL
38237 "items" : {
38238 "properties" : {
38239 "addr" : {
38240 "optional" : 1,
38241 "type" : "string"
38242 },
38243 "host" : {
38244 "optional" : 1,
38245 "type" : "string"
38246 },
38247 "name" : {
38248 "description" : "The name (ID) for the MGR"
38249 },
38250 "state" : {
38251 "description" : "State of the MGR",
38252 "type" : "string"
38253 }
38254 },
38255 "type" : "object"
38256 },
38257 "links" : [
38258 {
38259 "href" : "{name}",
38260 "rel" : "child"
38261 }
38262 ],
38263 "type" : "array"
e2d681b3
TL
38264 }
38265 }
38266 },
38267 "leaf" : 0,
5f26e15b
TL
38268 "path" : "/nodes/{node}/ceph/mgr",
38269 "text" : "mgr"
e2d681b3 38270 },
4d47f125 38271 {
5f26e15b
TL
38272 "children" : [
38273 {
38274 "info" : {
38275 "DELETE" : {
e9cd3bd4 38276 "allowtoken" : 1,
5f26e15b
TL
38277 "description" : "Destroy Ceph Monitor and Manager.",
38278 "method" : "DELETE",
38279 "name" : "destroymon",
38280 "parameters" : {
38281 "additionalProperties" : 0,
38282 "properties" : {
1e3f8156
TL
38283 "monid" : {
38284 "description" : "Monitor ID",
38285 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
38286 "type" : "string"
38287 },
38288 "node" : {
38289 "description" : "The cluster node name.",
38290 "format" : "pve-node",
38291 "type" : "string",
38292 "typetext" : "<string>"
38293 }
38294 }
38295 },
38296 "permissions" : {
38297 "check" : [
38298 "perm",
38299 "/",
38300 [
38301 "Sys.Modify"
38302 ]
38303 ]
38304 },
38305 "protected" : 1,
38306 "proxyto" : "node",
38307 "returns" : {
38308 "type" : "string"
38309 }
38310 },
38311 "POST" : {
e9cd3bd4 38312 "allowtoken" : 1,
1e3f8156
TL
38313 "description" : "Create Ceph Monitor and Manager",
38314 "method" : "POST",
38315 "name" : "createmon",
38316 "parameters" : {
38317 "additionalProperties" : 0,
38318 "properties" : {
38319 "mon-address" : {
0695fdaf
TL
38320 "description" : "Overwrites autodetected monitor IP address(es). Must be in the public network(s) of Ceph.",
38321 "format" : "ip-list",
5f26e15b 38322 "optional" : 1,
1e3f8156
TL
38323 "type" : "string",
38324 "typetext" : "<string>"
5f26e15b
TL
38325 },
38326 "monid" : {
1e3f8156 38327 "description" : "The ID for the monitor, when omitted the same as the nodename",
c5aa7e14 38328 "maxLength" : 200,
1e3f8156 38329 "optional" : 1,
5f26e15b
TL
38330 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
38331 "type" : "string"
38332 },
38333 "node" : {
38334 "description" : "The cluster node name.",
38335 "format" : "pve-node",
38336 "type" : "string",
38337 "typetext" : "<string>"
38338 }
38339 }
38340 },
38341 "permissions" : {
38342 "check" : [
38343 "perm",
38344 "/",
38345 [
38346 "Sys.Modify"
38347 ]
38348 ]
38349 },
38350 "protected" : 1,
38351 "proxyto" : "node",
38352 "returns" : {
7aacca6f 38353 "type" : "string"
56122987 38354 }
4d47f125 38355 }
56122987 38356 },
5f26e15b
TL
38357 "leaf" : 1,
38358 "path" : "/nodes/{node}/ceph/mon/{monid}",
38359 "text" : "{monid}"
38360 }
38361 ],
38362 "info" : {
38363 "GET" : {
e9cd3bd4 38364 "allowtoken" : 1,
5f26e15b
TL
38365 "description" : "Get Ceph monitor list.",
38366 "method" : "GET",
38367 "name" : "listmon",
38368 "parameters" : {
38369 "additionalProperties" : 0,
38370 "properties" : {
38371 "node" : {
38372 "description" : "The cluster node name.",
38373 "format" : "pve-node",
38374 "type" : "string",
38375 "typetext" : "<string>"
38376 }
38377 }
38378 },
4d47f125
TL
38379 "permissions" : {
38380 "check" : [
38381 "perm",
38382 "/",
38383 [
38384 "Sys.Audit",
38385 "Datastore.Audit"
38386 ],
38387 "any",
38388 1
38389 ]
56122987 38390 },
4d47f125
TL
38391 "protected" : 1,
38392 "proxyto" : "node",
38393 "returns" : {
38394 "items" : {
38395 "properties" : {
5f26e15b 38396 "addr" : {
1e3f8156
TL
38397 "optional" : 1,
38398 "type" : "string"
38399 },
9d2e98ed
TL
38400 "ceph_version" : {
38401 "optional" : 1,
38402 "type" : "string"
38403 },
38404 "ceph_version_short" : {
38405 "optional" : 1,
38406 "type" : "string"
38407 },
38408 "direxists" : {
1e3f8156 38409 "optional" : 1,
4d47f125
TL
38410 "type" : "string"
38411 },
9d2e98ed
TL
38412 "host" : {
38413 "optional" : 1,
38414 "type" : "boolean"
38415 },
5f26e15b 38416 "name" : {
4d47f125 38417 "type" : "string"
9d2e98ed
TL
38418 },
38419 "quorum" : {
38420 "optional" : 1,
38421 "type" : "boolean"
38422 },
38423 "rank" : {
38424 "optional" : 1,
38425 "type" : "integer"
38426 },
38427 "service" : {
38428 "optional" : 1,
38429 "type" : "integer"
38430 },
38431 "state" : {
38432 "optional" : 1,
38433 "type" : "string"
4d47f125 38434 }
7aacca6f 38435 },
4d47f125
TL
38436 "type" : "object"
38437 },
5f26e15b
TL
38438 "links" : [
38439 {
38440 "href" : "{name}",
38441 "rel" : "child"
38442 }
38443 ],
4d47f125
TL
38444 "type" : "array"
38445 }
4d47f125
TL
38446 }
38447 },
5f26e15b
TL
38448 "leaf" : 0,
38449 "path" : "/nodes/{node}/ceph/mon",
38450 "text" : "mon"
4d47f125
TL
38451 },
38452 {
38453 "children" : [
38454 {
38455 "info" : {
5f26e15b 38456 "POST" : {
e9cd3bd4 38457 "allowtoken" : 1,
5f26e15b
TL
38458 "description" : "Create a Ceph filesystem",
38459 "method" : "POST",
38460 "name" : "createfs",
4d47f125
TL
38461 "parameters" : {
38462 "additionalProperties" : 0,
38463 "properties" : {
5f26e15b 38464 "add-storage" : {
4d47f125 38465 "default" : 0,
5f26e15b 38466 "description" : "Configure the created CephFS as storage for this cluster.",
4d47f125
TL
38467 "optional" : 1,
38468 "type" : "boolean",
38469 "typetext" : "<boolean>"
38470 },
5f26e15b
TL
38471 "name" : {
38472 "default" : "cephfs",
38473 "description" : "The ceph filesystem name.",
38474 "optional" : 1,
38475 "type" : "string",
38476 "typetext" : "<string>"
4d47f125
TL
38477 },
38478 "node" : {
38479 "description" : "The cluster node name.",
38480 "format" : "pve-node",
38481 "type" : "string",
38482 "typetext" : "<string>"
5f26e15b
TL
38483 },
38484 "pg_num" : {
38485 "default" : 128,
38486 "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
38487 "maximum" : 32768,
38488 "minimum" : 8,
38489 "optional" : 1,
38490 "type" : "integer",
38491 "typetext" : "<integer> (8 - 32768)"
4d47f125
TL
38492 }
38493 }
7aacca6f 38494 },
4d47f125
TL
38495 "permissions" : {
38496 "check" : [
38497 "perm",
38498 "/",
38499 [
38500 "Sys.Modify"
38501 ]
38502 ]
7aacca6f 38503 },
4d47f125
TL
38504 "protected" : 1,
38505 "proxyto" : "node",
38506 "returns" : {
44660702 38507 "type" : "string"
4d47f125
TL
38508 }
38509 }
38510 },
38511 "leaf" : 1,
5f26e15b
TL
38512 "path" : "/nodes/{node}/ceph/fs/{name}",
38513 "text" : "{name}"
4d47f125
TL
38514 }
38515 ],
38516 "info" : {
38517 "GET" : {
e9cd3bd4 38518 "allowtoken" : 1,
5f26e15b 38519 "description" : "Directory index.",
4d47f125 38520 "method" : "GET",
5f26e15b 38521 "name" : "index",
4d47f125
TL
38522 "parameters" : {
38523 "additionalProperties" : 0,
38524 "properties" : {
38525 "node" : {
38526 "description" : "The cluster node name.",
38527 "format" : "pve-node",
38528 "type" : "string",
38529 "typetext" : "<string>"
38530 }
38531 }
38532 },
38533 "permissions" : {
38534 "check" : [
38535 "perm",
38536 "/",
38537 [
38538 "Sys.Audit",
38539 "Datastore.Audit"
38540 ],
38541 "any",
38542 1
38543 ]
38544 },
38545 "protected" : 1,
95895385 38546 "proxyto" : "node",
4d47f125
TL
38547 "returns" : {
38548 "items" : {
38549 "properties" : {
9d2e98ed
TL
38550 "data_pool" : {
38551 "description" : "The name of the data pool.",
38552 "type" : "string"
38553 },
38554 "metadata_pool" : {
38555 "description" : "The name of the metadata pool.",
38556 "type" : "string"
38557 },
38558 "name" : {
38559 "description" : "The ceph filesystem name.",
38560 "type" : "string"
38561 }
38562 },
38563 "type" : "object"
38564 },
38565 "links" : [
38566 {
38567 "href" : "{name}",
38568 "rel" : "child"
38569 }
38570 ],
38571 "type" : "array"
38572 }
38573 }
38574 },
38575 "leaf" : 0,
38576 "path" : "/nodes/{node}/ceph/fs",
38577 "text" : "fs"
38578 },
38579 {
38580 "children" : [
38581 {
38582 "children" : [
38583 {
38584 "info" : {
38585 "GET" : {
38586 "allowtoken" : 1,
38587 "description" : "Show the current pool status.",
38588 "method" : "GET",
38589 "name" : "getpool",
38590 "parameters" : {
38591 "additionalProperties" : 0,
38592 "properties" : {
38593 "name" : {
38594 "description" : "The name of the pool. It must be unique.",
38595 "type" : "string",
38596 "typetext" : "<string>"
38597 },
38598 "node" : {
38599 "description" : "The cluster node name.",
38600 "format" : "pve-node",
38601 "type" : "string",
38602 "typetext" : "<string>"
38603 },
38604 "verbose" : {
38605 "default" : 0,
38606 "description" : "If enabled, will display additional data(eg. statistics).",
38607 "optional" : 1,
38608 "type" : "boolean",
38609 "typetext" : "<boolean>"
38610 }
38611 }
38612 },
38613 "permissions" : {
38614 "check" : [
38615 "perm",
38616 "/",
38617 [
38618 "Sys.Audit",
38619 "Datastore.Audit"
38620 ],
38621 "any",
38622 1
38623 ]
38624 },
38625 "protected" : 1,
38626 "proxyto" : "node",
38627 "returns" : {
38628 "properties" : {
38629 "application" : {
38630 "default" : "rbd",
38631 "description" : "The application of the pool.",
38632 "enum" : [
38633 "rbd",
38634 "cephfs",
38635 "rgw"
38636 ],
38637 "optional" : 1,
38638 "title" : "Application",
38639 "type" : "string"
38640 },
38641 "application_list" : {
38642 "optional" : 1,
38643 "title" : "Application",
38644 "type" : "array"
38645 },
38646 "autoscale_status" : {
38647 "optional" : 1,
38648 "title" : "Autoscale Status",
38649 "type" : "object"
38650 },
38651 "crush_rule" : {
38652 "description" : "The rule to use for mapping object placement in the cluster.",
38653 "optional" : 1,
38654 "title" : "Crush Rule Name",
38655 "type" : "string"
38656 },
38657 "fast_read" : {
38658 "title" : "Fast Read",
38659 "type" : "boolean"
38660 },
38661 "hashpspool" : {
38662 "title" : "hashpspool",
38663 "type" : "boolean"
38664 },
38665 "id" : {
38666 "title" : "ID",
38667 "type" : "integer"
38668 },
38669 "min_size" : {
38670 "default" : 2,
38671 "description" : "Minimum number of replicas per object",
38672 "maximum" : 7,
38673 "minimum" : 1,
38674 "optional" : 1,
38675 "title" : "Min Size",
38676 "type" : "integer"
38677 },
38678 "name" : {
38679 "description" : "The name of the pool. It must be unique.",
38680 "title" : "Name",
38681 "type" : "string"
38682 },
38683 "nodeep-scrub" : {
38684 "title" : "nodeep-scrub",
38685 "type" : "boolean"
38686 },
38687 "nodelete" : {
38688 "title" : "nodelete",
38689 "type" : "boolean"
38690 },
38691 "nopgchange" : {
38692 "title" : "nopgchange",
38693 "type" : "boolean"
38694 },
38695 "noscrub" : {
38696 "title" : "noscrub",
38697 "type" : "boolean"
38698 },
38699 "nosizechange" : {
38700 "title" : "nosizechange",
38701 "type" : "boolean"
38702 },
38703 "pg_autoscale_mode" : {
38704 "default" : "warn",
38705 "description" : "The automatic PG scaling mode of the pool.",
38706 "enum" : [
38707 "on",
38708 "off",
38709 "warn"
38710 ],
38711 "optional" : 1,
38712 "title" : "PG Autoscale Mode",
38713 "type" : "string"
38714 },
38715 "pg_num" : {
38716 "default" : 128,
38717 "description" : "Number of placement groups.",
38718 "maximum" : 32768,
38719 "minimum" : 1,
38720 "optional" : 1,
38721 "title" : "PG Num",
38722 "type" : "integer"
38723 },
38724 "pg_num_min" : {
38725 "description" : "Minimal number of placement groups.",
38726 "maximum" : 32768,
38727 "optional" : 1,
38728 "title" : "min. PG Num",
38729 "type" : "integer"
38730 },
38731 "pgp_num" : {
38732 "title" : "PGP num",
38733 "type" : "integer"
38734 },
38735 "size" : {
38736 "default" : 3,
38737 "description" : "Number of replicas per object",
38738 "maximum" : 7,
38739 "minimum" : 1,
38740 "optional" : 1,
38741 "title" : "Size",
38742 "type" : "integer"
38743 },
38744 "statistics" : {
38745 "optional" : 1,
38746 "title" : "Statistics",
38747 "type" : "object"
38748 },
38749 "target_size" : {
38750 "description" : "The estimated target size of the pool for the PG autoscaler.",
38751 "optional" : 1,
38752 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
38753 "title" : "PG Autoscale Target Size",
38754 "type" : "string"
38755 },
38756 "target_size_ratio" : {
38757 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
38758 "optional" : 1,
38759 "title" : "PG Autoscale Target Ratio",
38760 "type" : "number"
38761 },
38762 "use_gmt_hitset" : {
38763 "title" : "use_gmt_hitset",
38764 "type" : "boolean"
38765 },
38766 "write_fadvise_dontneed" : {
38767 "title" : "write_fadvise_dontneed",
38768 "type" : "boolean"
38769 }
38770 },
38771 "type" : "object"
38772 }
38773 }
38774 },
38775 "leaf" : 1,
38776 "path" : "/nodes/{node}/ceph/pool/{name}/status",
38777 "text" : "status"
38778 }
38779 ],
38780 "info" : {
38781 "DELETE" : {
38782 "allowtoken" : 1,
38783 "description" : "Destroy pool",
38784 "method" : "DELETE",
38785 "name" : "destroypool",
38786 "parameters" : {
38787 "additionalProperties" : 0,
38788 "properties" : {
38789 "force" : {
38790 "default" : 0,
38791 "description" : "If true, destroys pool even if in use",
38792 "optional" : 1,
38793 "type" : "boolean",
38794 "typetext" : "<boolean>"
38795 },
38796 "name" : {
38797 "description" : "The name of the pool. It must be unique.",
38798 "type" : "string",
38799 "typetext" : "<string>"
38800 },
38801 "node" : {
38802 "description" : "The cluster node name.",
38803 "format" : "pve-node",
38804 "type" : "string",
38805 "typetext" : "<string>"
38806 },
38807 "remove_ecprofile" : {
38808 "default" : 1,
38809 "description" : "Remove the erasure code profile. Defaults to true, if applicable.",
38810 "optional" : 1,
38811 "type" : "boolean",
38812 "typetext" : "<boolean>"
38813 },
38814 "remove_storages" : {
38815 "default" : 0,
38816 "description" : "Remove all pveceph-managed storages configured for this pool",
38817 "optional" : 1,
38818 "type" : "boolean",
38819 "typetext" : "<boolean>"
38820 }
38821 }
38822 },
38823 "permissions" : {
38824 "check" : [
38825 "perm",
38826 "/",
38827 [
38828 "Sys.Modify"
38829 ]
38830 ]
38831 },
38832 "protected" : 1,
38833 "proxyto" : "node",
38834 "returns" : {
38835 "type" : "string"
38836 }
38837 },
38838 "GET" : {
38839 "allowtoken" : 1,
38840 "description" : "Pool index.",
38841 "method" : "GET",
38842 "name" : "poolindex",
38843 "parameters" : {
38844 "additionalProperties" : 0,
38845 "properties" : {
38846 "name" : {
38847 "description" : "The name of the pool.",
38848 "type" : "string",
38849 "typetext" : "<string>"
38850 },
38851 "node" : {
38852 "description" : "The cluster node name.",
38853 "format" : "pve-node",
38854 "type" : "string",
38855 "typetext" : "<string>"
38856 }
38857 }
38858 },
38859 "permissions" : {
38860 "check" : [
38861 "perm",
38862 "/",
38863 [
38864 "Sys.Audit",
38865 "Datastore.Audit"
38866 ],
38867 "any",
38868 1
38869 ]
38870 },
38871 "returns" : {
38872 "items" : {
38873 "properties" : {},
38874 "type" : "object"
38875 },
38876 "links" : [
38877 {
38878 "href" : "{name}",
38879 "rel" : "child"
38880 }
38881 ],
38882 "type" : "array"
38883 }
38884 },
38885 "PUT" : {
38886 "allowtoken" : 1,
38887 "description" : "Change POOL settings",
38888 "method" : "PUT",
38889 "name" : "setpool",
38890 "parameters" : {
38891 "additionalProperties" : 0,
38892 "properties" : {
38893 "application" : {
38894 "description" : "The application of the pool.",
38895 "enum" : [
38896 "rbd",
38897 "cephfs",
38898 "rgw"
38899 ],
38900 "optional" : 1,
38901 "title" : "Application",
38902 "type" : "string"
38903 },
38904 "crush_rule" : {
38905 "description" : "The rule to use for mapping object placement in the cluster.",
38906 "optional" : 1,
38907 "title" : "Crush Rule Name",
38908 "type" : "string",
38909 "typetext" : "<string>"
38910 },
38911 "min_size" : {
38912 "description" : "Minimum number of replicas per object",
38913 "maximum" : 7,
38914 "minimum" : 1,
38915 "optional" : 1,
38916 "title" : "Min Size",
38917 "type" : "integer",
38918 "typetext" : "<integer> (1 - 7)"
38919 },
38920 "name" : {
38921 "description" : "The name of the pool. It must be unique.",
38922 "title" : "Name",
38923 "type" : "string",
38924 "typetext" : "<string>"
38925 },
38926 "node" : {
38927 "description" : "The cluster node name.",
38928 "format" : "pve-node",
38929 "type" : "string",
38930 "typetext" : "<string>"
38931 },
38932 "pg_autoscale_mode" : {
38933 "description" : "The automatic PG scaling mode of the pool.",
38934 "enum" : [
38935 "on",
38936 "off",
38937 "warn"
38938 ],
38939 "optional" : 1,
38940 "title" : "PG Autoscale Mode",
38941 "type" : "string"
38942 },
38943 "pg_num" : {
38944 "description" : "Number of placement groups.",
38945 "maximum" : 32768,
38946 "minimum" : 1,
38947 "optional" : 1,
38948 "title" : "PG Num",
38949 "type" : "integer",
38950 "typetext" : "<integer> (1 - 32768)"
38951 },
38952 "pg_num_min" : {
38953 "description" : "Minimal number of placement groups.",
38954 "maximum" : 32768,
38955 "optional" : 1,
38956 "title" : "min. PG Num",
38957 "type" : "integer",
38958 "typetext" : "<integer> (-N - 32768)"
38959 },
38960 "size" : {
38961 "description" : "Number of replicas per object",
38962 "maximum" : 7,
38963 "minimum" : 1,
38964 "optional" : 1,
38965 "title" : "Size",
38966 "type" : "integer",
38967 "typetext" : "<integer> (1 - 7)"
38968 },
38969 "target_size" : {
38970 "description" : "The estimated target size of the pool for the PG autoscaler.",
38971 "optional" : 1,
38972 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
38973 "title" : "PG Autoscale Target Size",
38974 "type" : "string"
38975 },
38976 "target_size_ratio" : {
38977 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
38978 "optional" : 1,
38979 "title" : "PG Autoscale Target Ratio",
38980 "type" : "number",
38981 "typetext" : "<number>"
38982 }
38983 }
38984 },
38985 "permissions" : {
38986 "check" : [
38987 "perm",
38988 "/",
38989 [
38990 "Sys.Modify"
38991 ]
38992 ]
38993 },
38994 "protected" : 1,
38995 "proxyto" : "node",
38996 "returns" : {
38997 "type" : "string"
38998 }
38999 }
39000 },
39001 "leaf" : 0,
39002 "path" : "/nodes/{node}/ceph/pool/{name}",
39003 "text" : "{name}"
39004 }
39005 ],
39006 "info" : {
39007 "GET" : {
39008 "allowtoken" : 1,
39009 "description" : "List all pools and their settings (which are settable by the POST/PUT endpoints).",
39010 "method" : "GET",
39011 "name" : "lspools",
39012 "parameters" : {
39013 "additionalProperties" : 0,
39014 "properties" : {
39015 "node" : {
39016 "description" : "The cluster node name.",
39017 "format" : "pve-node",
39018 "type" : "string",
39019 "typetext" : "<string>"
39020 }
39021 }
39022 },
39023 "permissions" : {
39024 "check" : [
39025 "perm",
39026 "/",
39027 [
39028 "Sys.Audit",
39029 "Datastore.Audit"
39030 ],
39031 "any",
39032 1
39033 ]
39034 },
39035 "protected" : 1,
39036 "proxyto" : "node",
39037 "returns" : {
39038 "items" : {
39039 "properties" : {
39040 "application_metadata" : {
39041 "optional" : 1,
39042 "title" : "Associated Applications",
39043 "type" : "object"
39044 },
39045 "autoscale_status" : {
39046 "optional" : 1,
39047 "title" : "Autoscale Status",
39048 "type" : "object"
39049 },
39050 "bytes_used" : {
39051 "title" : "Used",
39052 "type" : "integer"
39053 },
39054 "crush_rule" : {
39055 "title" : "Crush Rule",
39056 "type" : "integer"
39057 },
39058 "crush_rule_name" : {
39059 "title" : "Crush Rule Name",
5f26e15b
TL
39060 "type" : "string"
39061 },
9d2e98ed
TL
39062 "min_size" : {
39063 "title" : "Min Size",
39064 "type" : "integer"
39065 },
39066 "percent_used" : {
39067 "title" : "%-Used",
39068 "type" : "number"
39069 },
39070 "pg_autoscale_mode" : {
39071 "optional" : 1,
39072 "title" : "PG Autoscale Mode",
4d47f125
TL
39073 "type" : "string"
39074 },
9d2e98ed
TL
39075 "pg_num" : {
39076 "title" : "PG Num",
39077 "type" : "integer"
39078 },
39079 "pg_num_final" : {
39080 "optional" : 1,
39081 "title" : "Optimal PG Num",
39082 "type" : "integer"
39083 },
39084 "pg_num_min" : {
39085 "optional" : 1,
39086 "title" : "min. PG Num",
39087 "type" : "integer"
39088 },
39089 "pool" : {
39090 "title" : "ID",
39091 "type" : "integer"
39092 },
39093 "pool_name" : {
39094 "title" : "Name",
39095 "type" : "string"
39096 },
39097 "size" : {
39098 "title" : "Size",
39099 "type" : "integer"
39100 },
39101 "target_size" : {
39102 "optional" : 1,
39103 "title" : "PG Autoscale Target Size",
39104 "type" : "integer"
39105 },
39106 "target_size_ratio" : {
39107 "optional" : 1,
39108 "title" : "PG Autoscale Target Ratio",
39109 "type" : "number"
39110 },
39111 "type" : {
39112 "enum" : [
39113 "replicated",
39114 "erasure",
39115 "unknown"
39116 ],
39117 "title" : "Type",
4d47f125
TL
39118 "type" : "string"
39119 }
7aacca6f 39120 },
4d47f125
TL
39121 "type" : "object"
39122 },
39123 "links" : [
39124 {
9d2e98ed 39125 "href" : "{pool_name}",
4d47f125
TL
39126 "rel" : "child"
39127 }
39128 ],
39129 "type" : "array"
39130 }
9d2e98ed
TL
39131 },
39132 "POST" : {
39133 "allowtoken" : 1,
39134 "description" : "Create Ceph pool",
39135 "method" : "POST",
39136 "name" : "createpool",
39137 "parameters" : {
39138 "additionalProperties" : 0,
39139 "properties" : {
39140 "add_storages" : {
39141 "default" : "0; for erasure coded pools: 1",
39142 "description" : "Configure VM and CT storage using the new pool.",
39143 "optional" : 1,
39144 "type" : "boolean",
39145 "typetext" : "<boolean>"
39146 },
39147 "application" : {
39148 "default" : "rbd",
39149 "description" : "The application of the pool.",
39150 "enum" : [
39151 "rbd",
39152 "cephfs",
39153 "rgw"
39154 ],
39155 "optional" : 1,
39156 "title" : "Application",
39157 "type" : "string"
39158 },
39159 "crush_rule" : {
39160 "description" : "The rule to use for mapping object placement in the cluster.",
39161 "optional" : 1,
39162 "title" : "Crush Rule Name",
39163 "type" : "string",
39164 "typetext" : "<string>"
39165 },
39166 "erasure-coding" : {
39167 "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.",
39168 "format" : {
39169 "device-class" : {
39170 "description" : "CRUSH device class. Will create an erasure coded pool plus a replicated pool for metadata.",
39171 "format_description" : "class",
39172 "optional" : 1,
39173 "type" : "string"
39174 },
39175 "failure-domain" : {
39176 "default" : "host",
39177 "description" : "CRUSH failure domain. Default is 'host'. Will create an erasure coded pool plus a replicated pool for metadata.",
39178 "format_description" : "domain",
39179 "optional" : 1,
39180 "type" : "string"
39181 },
39182 "k" : {
39183 "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
39184 "minimum" : 2,
39185 "type" : "integer"
39186 },
39187 "m" : {
39188 "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
39189 "minimum" : 1,
39190 "type" : "integer"
39191 },
39192 "profile" : {
39193 "description" : "Override the erasure code (EC) profile to use. Will create an erasure coded pool plus a replicated pool for metadata.",
39194 "format_description" : "profile",
39195 "optional" : 1,
39196 "type" : "string"
39197 }
39198 },
39199 "optional" : 1,
39200 "type" : "string",
39201 "typetext" : "k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]"
39202 },
39203 "min_size" : {
39204 "default" : 2,
39205 "description" : "Minimum number of replicas per object",
39206 "maximum" : 7,
39207 "minimum" : 1,
39208 "optional" : 1,
39209 "title" : "Min Size",
39210 "type" : "integer",
39211 "typetext" : "<integer> (1 - 7)"
39212 },
39213 "name" : {
39214 "description" : "The name of the pool. It must be unique.",
39215 "title" : "Name",
39216 "type" : "string",
39217 "typetext" : "<string>"
39218 },
39219 "node" : {
39220 "description" : "The cluster node name.",
39221 "format" : "pve-node",
39222 "type" : "string",
39223 "typetext" : "<string>"
39224 },
39225 "pg_autoscale_mode" : {
39226 "default" : "warn",
39227 "description" : "The automatic PG scaling mode of the pool.",
39228 "enum" : [
39229 "on",
39230 "off",
39231 "warn"
39232 ],
39233 "optional" : 1,
39234 "title" : "PG Autoscale Mode",
39235 "type" : "string"
39236 },
39237 "pg_num" : {
39238 "default" : 128,
39239 "description" : "Number of placement groups.",
39240 "maximum" : 32768,
39241 "minimum" : 1,
39242 "optional" : 1,
39243 "title" : "PG Num",
39244 "type" : "integer",
39245 "typetext" : "<integer> (1 - 32768)"
39246 },
39247 "pg_num_min" : {
39248 "description" : "Minimal number of placement groups.",
39249 "maximum" : 32768,
39250 "optional" : 1,
39251 "title" : "min. PG Num",
39252 "type" : "integer",
39253 "typetext" : "<integer> (-N - 32768)"
39254 },
39255 "size" : {
39256 "default" : 3,
39257 "description" : "Number of replicas per object",
39258 "maximum" : 7,
39259 "minimum" : 1,
39260 "optional" : 1,
39261 "title" : "Size",
39262 "type" : "integer",
39263 "typetext" : "<integer> (1 - 7)"
39264 },
39265 "target_size" : {
39266 "description" : "The estimated target size of the pool for the PG autoscaler.",
39267 "optional" : 1,
39268 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
39269 "title" : "PG Autoscale Target Size",
39270 "type" : "string"
39271 },
39272 "target_size_ratio" : {
39273 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
39274 "optional" : 1,
39275 "title" : "PG Autoscale Target Ratio",
39276 "type" : "number",
39277 "typetext" : "<number>"
39278 }
39279 }
39280 },
39281 "permissions" : {
39282 "check" : [
39283 "perm",
39284 "/",
39285 [
39286 "Sys.Modify"
39287 ]
39288 ]
39289 },
39290 "protected" : 1,
39291 "proxyto" : "node",
39292 "returns" : {
39293 "type" : "string"
39294 }
5f26e15b
TL
39295 }
39296 },
39297 "leaf" : 0,
9d2e98ed
TL
39298 "path" : "/nodes/{node}/ceph/pool",
39299 "text" : "pool"
5f26e15b 39300 },
4d47f125
TL
39301 {
39302 "info" : {
39303 "POST" : {
e9cd3bd4 39304 "allowtoken" : 1,
4d47f125
TL
39305 "description" : "Create initial ceph default configuration and setup symlinks.",
39306 "method" : "POST",
39307 "name" : "init",
39308 "parameters" : {
39309 "additionalProperties" : 0,
39310 "properties" : {
e2d681b3
TL
39311 "cluster-network" : {
39312 "description" : "Declare a separate cluster network, OSDs will routeheartbeat, object replication and recovery traffic over it",
39313 "format" : "CIDR",
39314 "maxLength" : 128,
39315 "optional" : 1,
39316 "requires" : "network",
39317 "type" : "string",
39318 "typetext" : "<string>"
39319 },
4d47f125
TL
39320 "disable_cephx" : {
39321 "default" : 0,
1e3f8156 39322 "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 39323 "optional" : 1,
4d47f125
TL
39324 "type" : "boolean",
39325 "typetext" : "<boolean>"
56122987 39326 },
4d47f125
TL
39327 "min_size" : {
39328 "default" : 2,
39329 "description" : "Minimum number of available replicas per object to allow I/O",
39330 "maximum" : 7,
39331 "minimum" : 1,
7aacca6f 39332 "optional" : 1,
4d47f125
TL
39333 "type" : "integer",
39334 "typetext" : "<integer> (1 - 7)"
7aacca6f 39335 },
4d47f125
TL
39336 "network" : {
39337 "description" : "Use specific network for all ceph related traffic",
39338 "format" : "CIDR",
39339 "maxLength" : 128,
5d9c884c 39340 "optional" : 1,
4d47f125
TL
39341 "type" : "string",
39342 "typetext" : "<string>"
5d9c884c 39343 },
4d47f125
TL
39344 "node" : {
39345 "description" : "The cluster node name.",
39346 "format" : "pve-node",
39347 "type" : "string",
39348 "typetext" : "<string>"
7aacca6f 39349 },
4d47f125
TL
39350 "pg_bits" : {
39351 "default" : 6,
fa22697b 39352 "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
39353 "maximum" : 14,
39354 "minimum" : 6,
de0983cb 39355 "optional" : 1,
4d47f125
TL
39356 "type" : "integer",
39357 "typetext" : "<integer> (6 - 14)"
de0983cb 39358 },
44660702 39359 "size" : {
4d47f125
TL
39360 "default" : 3,
39361 "description" : "Targeted number of replicas per object",
39362 "maximum" : 7,
39363 "minimum" : 1,
7aacca6f 39364 "optional" : 1,
4d47f125
TL
39365 "type" : "integer",
39366 "typetext" : "<integer> (1 - 7)"
56122987 39367 }
4d47f125 39368 }
44660702 39369 },
4d47f125
TL
39370 "permissions" : {
39371 "check" : [
39372 "perm",
39373 "/",
39374 [
39375 "Sys.Modify"
39376 ]
39377 ]
5da3d723 39378 },
4d47f125
TL
39379 "protected" : 1,
39380 "proxyto" : "node",
39381 "returns" : {
39382 "type" : "null"
39383 }
39384 }
39385 },
39386 "leaf" : 1,
39387 "path" : "/nodes/{node}/ceph/init",
39388 "text" : "init"
39389 },
4d47f125
TL
39390 {
39391 "info" : {
39392 "POST" : {
e9cd3bd4 39393 "allowtoken" : 1,
4d47f125
TL
39394 "description" : "Stop ceph services.",
39395 "method" : "POST",
39396 "name" : "stop",
39397 "parameters" : {
39398 "additionalProperties" : 0,
39399 "properties" : {
39400 "node" : {
39401 "description" : "The cluster node name.",
39402 "format" : "pve-node",
39403 "type" : "string",
39404 "typetext" : "<string>"
39405 },
39406 "service" : {
e2d681b3 39407 "default" : "ceph.target",
4d47f125
TL
39408 "description" : "Ceph service name.",
39409 "optional" : 1,
c5aa7e14 39410 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
39411 "type" : "string"
39412 }
39413 }
7aacca6f 39414 },
4d47f125
TL
39415 "permissions" : {
39416 "check" : [
39417 "perm",
39418 "/",
39419 [
39420 "Sys.Modify"
39421 ]
39422 ]
7aacca6f 39423 },
4d47f125
TL
39424 "protected" : 1,
39425 "proxyto" : "node",
39426 "returns" : {
39427 "type" : "string"
39428 }
39429 }
39430 },
39431 "leaf" : 1,
39432 "path" : "/nodes/{node}/ceph/stop",
39433 "text" : "stop"
39434 },
39435 {
39436 "info" : {
39437 "POST" : {
e9cd3bd4 39438 "allowtoken" : 1,
4d47f125
TL
39439 "description" : "Start ceph services.",
39440 "method" : "POST",
39441 "name" : "start",
39442 "parameters" : {
39443 "additionalProperties" : 0,
39444 "properties" : {
39445 "node" : {
39446 "description" : "The cluster node name.",
39447 "format" : "pve-node",
39448 "type" : "string",
39449 "typetext" : "<string>"
39450 },
39451 "service" : {
e2d681b3 39452 "default" : "ceph.target",
4d47f125
TL
39453 "description" : "Ceph service name.",
39454 "optional" : 1,
c5aa7e14 39455 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
39456 "type" : "string"
39457 }
39458 }
44660702 39459 },
4d47f125
TL
39460 "permissions" : {
39461 "check" : [
39462 "perm",
39463 "/",
39464 [
39465 "Sys.Modify"
39466 ]
39467 ]
44660702 39468 },
4d47f125
TL
39469 "protected" : 1,
39470 "proxyto" : "node",
39471 "returns" : {
39472 "type" : "string"
44660702 39473 }
7aacca6f
DM
39474 }
39475 },
4d47f125
TL
39476 "leaf" : 1,
39477 "path" : "/nodes/{node}/ceph/start",
39478 "text" : "start"
39479 },
e2d681b3
TL
39480 {
39481 "info" : {
39482 "POST" : {
e9cd3bd4 39483 "allowtoken" : 1,
e2d681b3
TL
39484 "description" : "Restart ceph services.",
39485 "method" : "POST",
39486 "name" : "restart",
39487 "parameters" : {
39488 "additionalProperties" : 0,
39489 "properties" : {
39490 "node" : {
39491 "description" : "The cluster node name.",
39492 "format" : "pve-node",
39493 "type" : "string",
39494 "typetext" : "<string>"
39495 },
39496 "service" : {
39497 "default" : "ceph.target",
39498 "description" : "Ceph service name.",
39499 "optional" : 1,
c5aa7e14 39500 "pattern" : "(mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
e2d681b3
TL
39501 "type" : "string"
39502 }
39503 }
39504 },
39505 "permissions" : {
39506 "check" : [
39507 "perm",
39508 "/",
39509 [
39510 "Sys.Modify"
39511 ]
39512 ]
39513 },
39514 "protected" : 1,
39515 "proxyto" : "node",
39516 "returns" : {
39517 "type" : "string"
39518 }
39519 }
39520 },
39521 "leaf" : 1,
39522 "path" : "/nodes/{node}/ceph/restart",
39523 "text" : "restart"
39524 },
4d47f125
TL
39525 {
39526 "info" : {
39527 "GET" : {
e9cd3bd4 39528 "allowtoken" : 1,
4d47f125
TL
39529 "description" : "Get ceph status.",
39530 "method" : "GET",
39531 "name" : "status",
39532 "parameters" : {
39533 "additionalProperties" : 0,
39534 "properties" : {
39535 "node" : {
39536 "description" : "The cluster node name.",
39537 "format" : "pve-node",
39538 "type" : "string",
39539 "typetext" : "<string>"
39540 }
39541 }
39542 },
39543 "permissions" : {
39544 "check" : [
39545 "perm",
39546 "/",
39547 [
39548 "Sys.Audit",
39549 "Datastore.Audit"
39550 ],
39551 "any",
39552 1
39553 ]
39554 },
39555 "protected" : 1,
39556 "proxyto" : "node",
39557 "returns" : {
d2656385 39558 "type" : "object"
44660702 39559 }
56122987 39560 }
44660702 39561 },
d2656385
TL
39562 "leaf" : 1,
39563 "path" : "/nodes/{node}/ceph/status",
39564 "text" : "status"
7aacca6f 39565 },
56122987 39566 {
56122987
DM
39567 "info" : {
39568 "GET" : {
e9cd3bd4 39569 "allowtoken" : 1,
4d47f125 39570 "description" : "Get OSD crush map",
44660702 39571 "method" : "GET",
4d47f125 39572 "name" : "crush",
56122987 39573 "parameters" : {
7aacca6f 39574 "additionalProperties" : 0,
56122987 39575 "properties" : {
56122987 39576 "node" : {
7aacca6f 39577 "description" : "The cluster node name.",
44660702 39578 "format" : "pve-node",
013dc89f
DM
39579 "type" : "string",
39580 "typetext" : "<string>"
56122987 39581 }
7aacca6f 39582 }
56122987 39583 },
56122987
DM
39584 "permissions" : {
39585 "check" : [
39586 "perm",
39587 "/",
39588 [
39589 "Sys.Audit",
39590 "Datastore.Audit"
39591 ],
39592 "any",
39593 1
39594 ]
44660702 39595 },
4d47f125
TL
39596 "protected" : 1,
39597 "proxyto" : "node",
44660702
DM
39598 "returns" : {
39599 "type" : "string"
7aacca6f
DM
39600 }
39601 }
44660702
DM
39602 },
39603 "leaf" : 1,
4d47f125
TL
39604 "path" : "/nodes/{node}/ceph/crush",
39605 "text" : "crush"
7aacca6f
DM
39606 },
39607 {
7aacca6f
DM
39608 "info" : {
39609 "GET" : {
e9cd3bd4 39610 "allowtoken" : 1,
4d47f125 39611 "description" : "Read ceph log",
7aacca6f 39612 "method" : "GET",
4d47f125 39613 "name" : "log",
7aacca6f
DM
39614 "parameters" : {
39615 "additionalProperties" : 0,
39616 "properties" : {
4d47f125
TL
39617 "limit" : {
39618 "minimum" : 0,
39619 "optional" : 1,
39620 "type" : "integer",
39621 "typetext" : "<integer> (0 - N)"
39622 },
7aacca6f 39623 "node" : {
7aacca6f 39624 "description" : "The cluster node name.",
44660702 39625 "format" : "pve-node",
013dc89f
DM
39626 "type" : "string",
39627 "typetext" : "<string>"
4d47f125
TL
39628 },
39629 "start" : {
39630 "minimum" : 0,
39631 "optional" : 1,
39632 "type" : "integer",
39633 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
39634 }
39635 }
39636 },
44660702
DM
39637 "permissions" : {
39638 "check" : [
39639 "perm",
4d47f125 39640 "/nodes/{node}",
44660702 39641 [
4d47f125
TL
39642 "Sys.Syslog"
39643 ]
44660702
DM
39644 ]
39645 },
7aacca6f 39646 "protected" : 1,
44660702 39647 "proxyto" : "node",
7aacca6f
DM
39648 "returns" : {
39649 "items" : {
39650 "properties" : {
4d47f125
TL
39651 "n" : {
39652 "description" : "Line number",
39653 "type" : "integer"
56122987 39654 },
4d47f125
TL
39655 "t" : {
39656 "description" : "Line text",
56122987
DM
39657 "type" : "string"
39658 }
7aacca6f
DM
39659 },
39660 "type" : "object"
56122987
DM
39661 },
39662 "type" : "array"
44660702 39663 }
4d47f125
TL
39664 }
39665 },
39666 "leaf" : 1,
39667 "path" : "/nodes/{node}/ceph/log",
39668 "text" : "log"
39669 },
39670 {
39671 "info" : {
39672 "GET" : {
e9cd3bd4 39673 "allowtoken" : 1,
4d47f125
TL
39674 "description" : "List ceph rules.",
39675 "method" : "GET",
39676 "name" : "rules",
44660702
DM
39677 "parameters" : {
39678 "additionalProperties" : 0,
39679 "properties" : {
39680 "node" : {
39681 "description" : "The cluster node name.",
39682 "format" : "pve-node",
013dc89f
DM
39683 "type" : "string",
39684 "typetext" : "<string>"
44660702
DM
39685 }
39686 }
39687 },
7aacca6f
DM
39688 "permissions" : {
39689 "check" : [
39690 "perm",
39691 "/",
39692 [
4d47f125
TL
39693 "Sys.Audit",
39694 "Datastore.Audit"
39695 ],
39696 "any",
39697 1
7aacca6f
DM
39698 ]
39699 },
44660702 39700 "protected" : 1,
7aacca6f 39701 "proxyto" : "node",
56122987 39702 "returns" : {
4d47f125 39703 "items" : {
9d2e98ed
TL
39704 "properties" : {
39705 "name" : {
39706 "description" : "Name of the CRUSH rule.",
39707 "type" : "string"
39708 }
39709 },
4d47f125
TL
39710 "type" : "object"
39711 },
39712 "links" : [
39713 {
39714 "href" : "{name}",
39715 "rel" : "child"
39716 }
39717 ],
39718 "type" : "array"
44660702 39719 }
56122987 39720 }
44660702 39721 },
4d47f125
TL
39722 "leaf" : 1,
39723 "path" : "/nodes/{node}/ceph/rules",
39724 "text" : "rules"
81a3384d
TL
39725 },
39726 {
39727 "info" : {
39728 "GET" : {
39729 "allowtoken" : 1,
39730 "description" : "Heuristical check if it is safe to perform an action.",
39731 "method" : "GET",
39732 "name" : "cmd_safety",
39733 "parameters" : {
39734 "additionalProperties" : 0,
39735 "properties" : {
39736 "action" : {
39737 "description" : "Action to check",
39738 "enum" : [
39739 "stop",
39740 "destroy"
39741 ],
39742 "type" : "string"
39743 },
39744 "id" : {
39745 "description" : "ID of the service",
39746 "type" : "string",
39747 "typetext" : "<string>"
39748 },
39749 "node" : {
39750 "description" : "The cluster node name.",
39751 "format" : "pve-node",
39752 "type" : "string",
39753 "typetext" : "<string>"
39754 },
39755 "service" : {
39756 "description" : "Service type",
39757 "enum" : [
39758 "osd",
39759 "mon",
39760 "mds"
39761 ],
39762 "type" : "string"
39763 }
39764 }
39765 },
39766 "permissions" : {
39767 "check" : [
39768 "perm",
39769 "/",
39770 [
9d2e98ed 39771 "Sys.Audit"
81a3384d
TL
39772 ]
39773 ]
39774 },
39775 "protected" : 1,
39776 "proxyto" : "node",
39777 "returns" : {
39778 "properties" : {
39779 "safe" : {
39780 "description" : "If it is safe to run the command.",
39781 "type" : "boolean"
39782 },
39783 "status" : {
39784 "description" : "Status message given by Ceph.",
39785 "optional" : 1,
39786 "type" : "string"
39787 }
39788 },
39789 "type" : "object"
39790 }
39791 }
39792 },
39793 "leaf" : 1,
39794 "path" : "/nodes/{node}/ceph/cmd-safety",
39795 "text" : "cmd-safety"
4d47f125
TL
39796 }
39797 ],
39798 "info" : {
39799 "GET" : {
e9cd3bd4 39800 "allowtoken" : 1,
4d47f125
TL
39801 "description" : "Directory index.",
39802 "method" : "GET",
39803 "name" : "index",
39804 "parameters" : {
39805 "additionalProperties" : 0,
39806 "properties" : {
39807 "node" : {
39808 "description" : "The cluster node name.",
39809 "format" : "pve-node",
39810 "type" : "string",
39811 "typetext" : "<string>"
39812 }
39813 }
39814 },
39815 "permissions" : {
39816 "check" : [
39817 "perm",
39818 "/",
39819 [
39820 "Sys.Audit",
39821 "Datastore.Audit"
39822 ],
39823 "any",
39824 1
39825 ]
39826 },
39827 "returns" : {
39828 "items" : {
39829 "properties" : {},
39830 "type" : "object"
39831 },
39832 "links" : [
39833 {
39834 "href" : "{name}",
39835 "rel" : "child"
39836 }
39837 ],
39838 "type" : "array"
39839 }
39840 }
39841 },
39842 "leaf" : 0,
39843 "path" : "/nodes/{node}/ceph",
39844 "text" : "ceph"
39845 },
39846 {
39847 "children" : [
e7084ef7
TL
39848 {
39849 "info" : {
39850 "GET" : {
39851 "allowtoken" : 1,
39852 "description" : "Get the currently configured vzdump defaults.",
39853 "method" : "GET",
39854 "name" : "defaults",
39855 "parameters" : {
39856 "additionalProperties" : 0,
39857 "properties" : {
39858 "node" : {
39859 "description" : "The cluster node name.",
39860 "format" : "pve-node",
39861 "type" : "string",
39862 "typetext" : "<string>"
39863 },
39864 "storage" : {
39865 "description" : "The storage identifier.",
39866 "format" : "pve-storage-id",
39867 "optional" : 1,
39868 "type" : "string",
39869 "typetext" : "<string>"
39870 }
39871 }
39872 },
39873 "permissions" : {
39874 "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.",
39875 "user" : "all"
39876 },
39877 "proxyto" : "node",
39878 "returns" : {
39879 "additionalProperties" : 0,
39880 "properties" : {
39881 "all" : {
39882 "default" : 0,
39883 "description" : "Backup all known guest systems on this host.",
39884 "optional" : 1,
39885 "type" : "boolean"
39886 },
39887 "bwlimit" : {
39888 "default" : 0,
4a407cfd 39889 "description" : "Limit I/O bandwidth (in KiB/s).",
e7084ef7
TL
39890 "minimum" : 0,
39891 "optional" : 1,
39892 "type" : "integer"
39893 },
39894 "compress" : {
39895 "default" : "0",
39896 "description" : "Compress dump file.",
39897 "enum" : [
39898 "0",
39899 "1",
39900 "gzip",
39901 "lzo",
39902 "zstd"
39903 ],
39904 "optional" : 1,
39905 "type" : "string"
39906 },
39907 "dumpdir" : {
39908 "description" : "Store resulting files to specified directory.",
39909 "optional" : 1,
39910 "type" : "string"
39911 },
39912 "exclude" : {
39913 "description" : "Exclude specified guest systems (assumes --all)",
39914 "format" : "pve-vmid-list",
39915 "optional" : 1,
39916 "type" : "string"
39917 },
39918 "exclude-path" : {
39919 "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
39920 "items" : {
39921 "type" : "string"
39922 },
e7084ef7 39923 "optional" : 1,
4a407cfd 39924 "type" : "array"
e7084ef7
TL
39925 },
39926 "ionice" : {
39927 "default" : 7,
159464a9 39928 "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
39929 "maximum" : 8,
39930 "minimum" : 0,
39931 "optional" : 1,
39932 "type" : "integer"
39933 },
39934 "lockwait" : {
39935 "default" : 180,
39936 "description" : "Maximal time to wait for the global lock (minutes).",
39937 "minimum" : 0,
39938 "optional" : 1,
39939 "type" : "integer"
39940 },
39941 "mailnotification" : {
39942 "default" : "always",
82551b2b 39943 "description" : "Deprecated: use 'notification-policy' instead.",
e7084ef7
TL
39944 "enum" : [
39945 "always",
39946 "failure"
39947 ],
39948 "optional" : 1,
39949 "type" : "string"
39950 },
39951 "mailto" : {
82551b2b 39952 "description" : "Comma-separated list of email addresses or users that should receive email notifications. Has no effect if the 'notification-target' option is set at the same time.",
e7084ef7
TL
39953 "format" : "email-or-username-list",
39954 "optional" : 1,
39955 "type" : "string"
39956 },
39957 "maxfiles" : {
0695fdaf 39958 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
e7084ef7
TL
39959 "minimum" : 1,
39960 "optional" : 1,
39961 "type" : "integer"
39962 },
39963 "mode" : {
39964 "default" : "snapshot",
39965 "description" : "Backup mode.",
39966 "enum" : [
39967 "snapshot",
39968 "suspend",
39969 "stop"
39970 ],
39971 "optional" : 1,
39972 "type" : "string"
39973 },
39974 "node" : {
39975 "description" : "Only run if executed on this node.",
39976 "format" : "pve-node",
39977 "optional" : 1,
39978 "type" : "string"
39979 },
7af2edf9 39980 "notes-template" : {
4e7f60c2
TL
39981 "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.",
39982 "maxLength" : 1024,
7af2edf9
TL
39983 "optional" : 1,
39984 "requires" : "storage",
39985 "type" : "string"
39986 },
82551b2b
TL
39987 "notification-policy" : {
39988 "default" : "always",
39989 "description" : "Specify when to send a notification",
39990 "enum" : [
39991 "always",
39992 "failure",
39993 "never"
39994 ],
39995 "optional" : 1,
39996 "type" : "string"
39997 },
39998 "notification-target" : {
39999 "description" : "Determine the target to which notifications should be sent. Can either be a notification endpoint or a notification group. This option takes precedence over 'mailto', meaning that if both are set, the 'mailto' option will be ignored.",
40000 "format" : "pve-configid",
40001 "optional" : 1,
40002 "type" : "string"
40003 },
4e7f60c2
TL
40004 "performance" : {
40005 "description" : "Other performance-related settings.",
40006 "format" : "backup-performance",
40007 "optional" : 1,
40008 "type" : "string"
40009 },
e7084ef7
TL
40010 "pigz" : {
40011 "default" : 0,
40012 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
40013 "optional" : 1,
40014 "type" : "integer"
40015 },
40016 "pool" : {
40017 "description" : "Backup all known guest systems included in the specified pool.",
40018 "optional" : 1,
40019 "type" : "string"
40020 },
7af2edf9
TL
40021 "protected" : {
40022 "description" : "If true, mark backup(s) as protected.",
40023 "optional" : 1,
40024 "requires" : "storage",
40025 "type" : "boolean"
40026 },
e7084ef7 40027 "prune-backups" : {
0695fdaf 40028 "default" : "keep-all=1",
e7084ef7
TL
40029 "description" : "Use these retention options instead of those from the storage configuration.",
40030 "format" : "prune-backups",
40031 "optional" : 1,
40032 "type" : "string"
40033 },
40034 "quiet" : {
40035 "default" : 0,
40036 "description" : "Be quiet.",
40037 "optional" : 1,
40038 "type" : "boolean"
40039 },
40040 "remove" : {
40041 "default" : 1,
0695fdaf 40042 "description" : "Prune older backups according to 'prune-backups'.",
e7084ef7
TL
40043 "optional" : 1,
40044 "type" : "boolean"
40045 },
40046 "script" : {
40047 "description" : "Use specified hook script.",
40048 "optional" : 1,
40049 "type" : "string"
40050 },
e7084ef7
TL
40051 "stdexcludes" : {
40052 "default" : 1,
40053 "description" : "Exclude temporary files and logs.",
40054 "optional" : 1,
40055 "type" : "boolean"
40056 },
40057 "stop" : {
40058 "default" : 0,
40059 "description" : "Stop running backup jobs on this host.",
40060 "optional" : 1,
40061 "type" : "boolean"
40062 },
40063 "stopwait" : {
40064 "default" : 10,
40065 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
40066 "minimum" : 0,
40067 "optional" : 1,
40068 "type" : "integer"
40069 },
40070 "storage" : {
40071 "description" : "Store resulting file to this storage.",
40072 "format" : "pve-storage-id",
40073 "optional" : 1,
40074 "type" : "string"
40075 },
40076 "tmpdir" : {
40077 "description" : "Store temporary files to specified directory.",
40078 "optional" : 1,
40079 "type" : "string"
40080 },
40081 "vmid" : {
40082 "description" : "The ID of the guest system you want to backup.",
40083 "format" : "pve-vmid-list",
40084 "optional" : 1,
40085 "type" : "string"
40086 },
40087 "zstd" : {
40088 "default" : 1,
40089 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
40090 "optional" : 1,
40091 "type" : "integer"
40092 }
40093 },
40094 "type" : "object"
40095 }
40096 }
40097 },
40098 "leaf" : 1,
40099 "path" : "/nodes/{node}/vzdump/defaults",
40100 "text" : "defaults"
40101 },
56122987
DM
40102 {
40103 "info" : {
4d47f125 40104 "GET" : {
e9cd3bd4 40105 "allowtoken" : 1,
4d47f125
TL
40106 "description" : "Extract configuration from vzdump backup archive.",
40107 "method" : "GET",
40108 "name" : "extractconfig",
40109 "parameters" : {
40110 "additionalProperties" : 0,
40111 "properties" : {
44660702
DM
40112 "node" : {
40113 "description" : "The cluster node name.",
40114 "format" : "pve-node",
013dc89f
DM
40115 "type" : "string",
40116 "typetext" : "<string>"
44660702 40117 },
4d47f125
TL
40118 "volume" : {
40119 "description" : "Volume identifier",
40120 "type" : "string",
40121 "typetext" : "<string>"
44660702
DM
40122 }
40123 }
7aacca6f 40124 },
56122987 40125 "permissions" : {
4d47f125
TL
40126 "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.",
40127 "user" : "all"
56122987 40128 },
7aacca6f 40129 "protected" : 1,
44660702
DM
40130 "proxyto" : "node",
40131 "returns" : {
4d47f125 40132 "type" : "string"
7aacca6f
DM
40133 }
40134 }
40135 },
7aacca6f 40136 "leaf" : 1,
4d47f125
TL
40137 "path" : "/nodes/{node}/vzdump/extractconfig",
40138 "text" : "extractconfig"
40139 }
40140 ],
40141 "info" : {
40142 "POST" : {
e9cd3bd4 40143 "allowtoken" : 1,
4d47f125
TL
40144 "description" : "Create backup.",
40145 "method" : "POST",
40146 "name" : "vzdump",
40147 "parameters" : {
40148 "additionalProperties" : 0,
40149 "properties" : {
40150 "all" : {
40151 "default" : 0,
40152 "description" : "Backup all known guest systems on this host.",
40153 "optional" : 1,
40154 "type" : "boolean",
40155 "typetext" : "<boolean>"
40156 },
40157 "bwlimit" : {
40158 "default" : 0,
4a407cfd 40159 "description" : "Limit I/O bandwidth (in KiB/s).",
4d47f125
TL
40160 "minimum" : 0,
40161 "optional" : 1,
40162 "type" : "integer",
40163 "typetext" : "<integer> (0 - N)"
40164 },
40165 "compress" : {
40166 "default" : "0",
40167 "description" : "Compress dump file.",
40168 "enum" : [
40169 "0",
40170 "1",
40171 "gzip",
c5aa7e14
TL
40172 "lzo",
40173 "zstd"
4d47f125
TL
40174 ],
40175 "optional" : 1,
40176 "type" : "string"
40177 },
40178 "dumpdir" : {
40179 "description" : "Store resulting files to specified directory.",
40180 "optional" : 1,
40181 "type" : "string",
40182 "typetext" : "<string>"
40183 },
40184 "exclude" : {
40185 "description" : "Exclude specified guest systems (assumes --all)",
40186 "format" : "pve-vmid-list",
40187 "optional" : 1,
40188 "type" : "string",
40189 "typetext" : "<string>"
40190 },
40191 "exclude-path" : {
d2656385 40192 "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
40193 "items" : {
40194 "type" : "string"
40195 },
4d47f125 40196 "optional" : 1,
4a407cfd
TL
40197 "type" : "array",
40198 "typetext" : "<array>"
4d47f125
TL
40199 },
40200 "ionice" : {
40201 "default" : 7,
159464a9 40202 "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
40203 "maximum" : 8,
40204 "minimum" : 0,
40205 "optional" : 1,
40206 "type" : "integer",
40207 "typetext" : "<integer> (0 - 8)"
40208 },
40209 "lockwait" : {
40210 "default" : 180,
40211 "description" : "Maximal time to wait for the global lock (minutes).",
40212 "minimum" : 0,
40213 "optional" : 1,
40214 "type" : "integer",
40215 "typetext" : "<integer> (0 - N)"
40216 },
40217 "mailnotification" : {
40218 "default" : "always",
82551b2b 40219 "description" : "Deprecated: use 'notification-policy' instead.",
4d47f125
TL
40220 "enum" : [
40221 "always",
40222 "failure"
40223 ],
40224 "optional" : 1,
40225 "type" : "string"
40226 },
40227 "mailto" : {
82551b2b 40228 "description" : "Comma-separated list of email addresses or users that should receive email notifications. Has no effect if the 'notification-target' option is set at the same time.",
d2656385 40229 "format" : "email-or-username-list",
4d47f125
TL
40230 "optional" : 1,
40231 "type" : "string",
40232 "typetext" : "<string>"
40233 },
40234 "maxfiles" : {
0695fdaf 40235 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
4d47f125
TL
40236 "minimum" : 1,
40237 "optional" : 1,
40238 "type" : "integer",
40239 "typetext" : "<integer> (1 - N)"
40240 },
40241 "mode" : {
40242 "default" : "snapshot",
40243 "description" : "Backup mode.",
40244 "enum" : [
40245 "snapshot",
40246 "suspend",
40247 "stop"
40248 ],
40249 "optional" : 1,
40250 "type" : "string"
40251 },
40252 "node" : {
40253 "description" : "Only run if executed on this node.",
40254 "format" : "pve-node",
40255 "optional" : 1,
40256 "type" : "string",
40257 "typetext" : "<string>"
40258 },
7af2edf9 40259 "notes-template" : {
4e7f60c2
TL
40260 "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.",
40261 "maxLength" : 1024,
7af2edf9
TL
40262 "optional" : 1,
40263 "requires" : "storage",
40264 "type" : "string",
40265 "typetext" : "<string>"
40266 },
82551b2b
TL
40267 "notification-policy" : {
40268 "default" : "always",
40269 "description" : "Specify when to send a notification",
40270 "enum" : [
40271 "always",
40272 "failure",
40273 "never"
40274 ],
40275 "optional" : 1,
40276 "type" : "string"
40277 },
40278 "notification-target" : {
40279 "description" : "Determine the target to which notifications should be sent. Can either be a notification endpoint or a notification group. This option takes precedence over 'mailto', meaning that if both are set, the 'mailto' option will be ignored.",
40280 "format" : "pve-configid",
40281 "optional" : 1,
40282 "type" : "string",
40283 "typetext" : "<string>"
40284 },
4e7f60c2
TL
40285 "performance" : {
40286 "description" : "Other performance-related settings.",
40287 "format" : "backup-performance",
40288 "optional" : 1,
40289 "type" : "string",
82551b2b 40290 "typetext" : "[max-workers=<integer>] [,pbs-entries-max=<integer>]"
4e7f60c2 40291 },
4d47f125
TL
40292 "pigz" : {
40293 "default" : 0,
40294 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
40295 "optional" : 1,
40296 "type" : "integer",
40297 "typetext" : "<integer>"
40298 },
9226ccbc
TL
40299 "pool" : {
40300 "description" : "Backup all known guest systems included in the specified pool.",
40301 "optional" : 1,
40302 "type" : "string",
40303 "typetext" : "<string>"
40304 },
7af2edf9
TL
40305 "protected" : {
40306 "description" : "If true, mark backup(s) as protected.",
40307 "optional" : 1,
40308 "requires" : "storage",
40309 "type" : "boolean",
40310 "typetext" : "<boolean>"
40311 },
739d4d64 40312 "prune-backups" : {
0695fdaf 40313 "default" : "keep-all=1",
739d4d64
TL
40314 "description" : "Use these retention options instead of those from the storage configuration.",
40315 "format" : "prune-backups",
40316 "optional" : 1,
40317 "type" : "string",
4772952b 40318 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 40319 },
4d47f125
TL
40320 "quiet" : {
40321 "default" : 0,
40322 "description" : "Be quiet.",
40323 "optional" : 1,
40324 "type" : "boolean",
40325 "typetext" : "<boolean>"
40326 },
40327 "remove" : {
40328 "default" : 1,
0695fdaf 40329 "description" : "Prune older backups according to 'prune-backups'.",
4d47f125
TL
40330 "optional" : 1,
40331 "type" : "boolean",
40332 "typetext" : "<boolean>"
40333 },
40334 "script" : {
40335 "description" : "Use specified hook script.",
40336 "optional" : 1,
40337 "type" : "string",
40338 "typetext" : "<string>"
40339 },
4d47f125
TL
40340 "stdexcludes" : {
40341 "default" : 1,
40342 "description" : "Exclude temporary files and logs.",
40343 "optional" : 1,
40344 "type" : "boolean",
40345 "typetext" : "<boolean>"
40346 },
40347 "stdout" : {
40348 "description" : "Write tar to stdout, not to a file.",
40349 "optional" : 1,
40350 "type" : "boolean",
40351 "typetext" : "<boolean>"
40352 },
40353 "stop" : {
40354 "default" : 0,
1e3f8156 40355 "description" : "Stop running backup jobs on this host.",
4d47f125
TL
40356 "optional" : 1,
40357 "type" : "boolean",
40358 "typetext" : "<boolean>"
40359 },
40360 "stopwait" : {
40361 "default" : 10,
40362 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
40363 "minimum" : 0,
40364 "optional" : 1,
40365 "type" : "integer",
40366 "typetext" : "<integer> (0 - N)"
40367 },
40368 "storage" : {
40369 "description" : "Store resulting file to this storage.",
40370 "format" : "pve-storage-id",
40371 "optional" : 1,
40372 "type" : "string",
40373 "typetext" : "<string>"
40374 },
40375 "tmpdir" : {
40376 "description" : "Store temporary files to specified directory.",
40377 "optional" : 1,
40378 "type" : "string",
40379 "typetext" : "<string>"
40380 },
40381 "vmid" : {
40382 "description" : "The ID of the guest system you want to backup.",
40383 "format" : "pve-vmid-list",
40384 "optional" : 1,
40385 "type" : "string",
40386 "typetext" : "<string>"
c5aa7e14
TL
40387 },
40388 "zstd" : {
40389 "default" : 1,
40390 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
40391 "optional" : 1,
40392 "type" : "integer",
40393 "typetext" : "<integer>"
4d47f125
TL
40394 }
40395 }
40396 },
40397 "permissions" : {
fa22697b 40398 "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. 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
40399 "user" : "all"
40400 },
40401 "protected" : 1,
40402 "proxyto" : "node",
40403 "returns" : {
40404 "type" : "string"
40405 }
40406 }
40407 },
40408 "leaf" : 0,
40409 "path" : "/nodes/{node}/vzdump",
40410 "text" : "vzdump"
40411 },
40412 {
40413 "children" : [
2489d6df
WB
40414 {
40415 "children" : [
40416 {
40417 "info" : {
4d47f125 40418 "GET" : {
e9cd3bd4 40419 "allowtoken" : 1,
4d47f125
TL
40420 "description" : "Read service properties",
40421 "method" : "GET",
40422 "name" : "service_state",
2489d6df
WB
40423 "parameters" : {
40424 "additionalProperties" : 0,
40425 "properties" : {
2489d6df
WB
40426 "node" : {
40427 "description" : "The cluster node name.",
40428 "format" : "pve-node",
40429 "type" : "string",
40430 "typetext" : "<string>"
4d47f125
TL
40431 },
40432 "service" : {
40433 "description" : "Service ID",
40434 "enum" : [
5370fa8c 40435 "chrony",
4d47f125 40436 "corosync",
5370fa8c
TL
40437 "cron",
40438 "ksmtuned",
40439 "postfix",
40440 "pve-cluster",
4d47f125 40441 "pve-firewall",
4d47f125
TL
40442 "pve-ha-crm",
40443 "pve-ha-lrm",
5370fa8c
TL
40444 "pvedaemon",
40445 "pvefw-logger",
40446 "pveproxy",
40447 "pvescheduler",
40448 "pvestatd",
40449 "spiceproxy",
4d47f125
TL
40450 "sshd",
40451 "syslog",
8f4d9c87 40452 "systemd-journald",
5370fa8c 40453 "systemd-timesyncd"
4d47f125
TL
40454 ],
40455 "type" : "string"
2489d6df
WB
40456 }
40457 }
40458 },
40459 "permissions" : {
40460 "check" : [
40461 "perm",
4d47f125 40462 "/nodes/{node}",
2489d6df 40463 [
4d47f125 40464 "Sys.Audit"
2489d6df
WB
40465 ]
40466 ]
40467 },
40468 "protected" : 1,
40469 "proxyto" : "node",
40470 "returns" : {
4d47f125 40471 "type" : "object"
2489d6df
WB
40472 }
40473 }
40474 },
40475 "leaf" : 1,
4d47f125
TL
40476 "path" : "/nodes/{node}/services/{service}/state",
40477 "text" : "state"
40478 },
40479 {
40480 "info" : {
40481 "POST" : {
e9cd3bd4 40482 "allowtoken" : 1,
4d47f125
TL
40483 "description" : "Start service.",
40484 "method" : "POST",
40485 "name" : "service_start",
40486 "parameters" : {
40487 "additionalProperties" : 0,
40488 "properties" : {
40489 "node" : {
40490 "description" : "The cluster node name.",
40491 "format" : "pve-node",
40492 "type" : "string",
40493 "typetext" : "<string>"
40494 },
40495 "service" : {
40496 "description" : "Service ID",
40497 "enum" : [
5370fa8c 40498 "chrony",
4d47f125 40499 "corosync",
5370fa8c
TL
40500 "cron",
40501 "ksmtuned",
40502 "postfix",
40503 "pve-cluster",
4d47f125 40504 "pve-firewall",
4d47f125
TL
40505 "pve-ha-crm",
40506 "pve-ha-lrm",
5370fa8c
TL
40507 "pvedaemon",
40508 "pvefw-logger",
40509 "pveproxy",
40510 "pvescheduler",
40511 "pvestatd",
40512 "spiceproxy",
4d47f125
TL
40513 "sshd",
40514 "syslog",
8f4d9c87 40515 "systemd-journald",
5370fa8c 40516 "systemd-timesyncd"
4d47f125
TL
40517 ],
40518 "type" : "string"
40519 }
40520 }
7aacca6f 40521 },
4d47f125
TL
40522 "permissions" : {
40523 "check" : [
40524 "perm",
40525 "/nodes/{node}",
40526 [
40527 "Sys.Modify"
40528 ]
40529 ]
7aacca6f 40530 },
4d47f125
TL
40531 "protected" : 1,
40532 "proxyto" : "node",
40533 "returns" : {
40534 "type" : "string"
40535 }
40536 }
56122987 40537 },
4d47f125
TL
40538 "leaf" : 1,
40539 "path" : "/nodes/{node}/services/{service}/start",
40540 "text" : "start"
40541 },
44660702
DM
40542 {
40543 "info" : {
4d47f125 40544 "POST" : {
e9cd3bd4 40545 "allowtoken" : 1,
4d47f125
TL
40546 "description" : "Stop service.",
40547 "method" : "POST",
40548 "name" : "service_stop",
44660702
DM
40549 "parameters" : {
40550 "additionalProperties" : 0,
40551 "properties" : {
44660702
DM
40552 "node" : {
40553 "description" : "The cluster node name.",
40554 "format" : "pve-node",
013dc89f
DM
40555 "type" : "string",
40556 "typetext" : "<string>"
2489d6df 40557 },
4d47f125
TL
40558 "service" : {
40559 "description" : "Service ID",
40560 "enum" : [
5370fa8c 40561 "chrony",
4d47f125 40562 "corosync",
5370fa8c
TL
40563 "cron",
40564 "ksmtuned",
40565 "postfix",
40566 "pve-cluster",
4d47f125 40567 "pve-firewall",
4d47f125
TL
40568 "pve-ha-crm",
40569 "pve-ha-lrm",
5370fa8c
TL
40570 "pvedaemon",
40571 "pvefw-logger",
40572 "pveproxy",
40573 "pvescheduler",
40574 "pvestatd",
40575 "spiceproxy",
4d47f125
TL
40576 "sshd",
40577 "syslog",
8f4d9c87 40578 "systemd-journald",
5370fa8c 40579 "systemd-timesyncd"
4d47f125
TL
40580 ],
40581 "type" : "string"
44660702
DM
40582 }
40583 }
40584 },
40585 "permissions" : {
40586 "check" : [
40587 "perm",
4d47f125 40588 "/nodes/{node}",
44660702
DM
40589 [
40590 "Sys.Modify"
40591 ]
40592 ]
40593 },
40594 "protected" : 1,
40595 "proxyto" : "node",
40596 "returns" : {
2489d6df 40597 "type" : "string"
44660702
DM
40598 }
40599 }
40600 },
40601 "leaf" : 1,
4d47f125
TL
40602 "path" : "/nodes/{node}/services/{service}/stop",
40603 "text" : "stop"
7aacca6f 40604 },
32d876b5
DM
40605 {
40606 "info" : {
4d47f125 40607 "POST" : {
e9cd3bd4 40608 "allowtoken" : 1,
739d4d64 40609 "description" : "Hard restart service. Use reload if you want to reduce interruptions.",
4d47f125
TL
40610 "method" : "POST",
40611 "name" : "service_restart",
32d876b5
DM
40612 "parameters" : {
40613 "additionalProperties" : 0,
40614 "properties" : {
4d47f125
TL
40615 "node" : {
40616 "description" : "The cluster node name.",
40617 "format" : "pve-node",
40618 "type" : "string",
40619 "typetext" : "<string>"
40620 },
40621 "service" : {
40622 "description" : "Service ID",
32d876b5 40623 "enum" : [
5370fa8c 40624 "chrony",
4d47f125 40625 "corosync",
5370fa8c
TL
40626 "cron",
40627 "ksmtuned",
40628 "postfix",
40629 "pve-cluster",
4d47f125 40630 "pve-firewall",
4d47f125
TL
40631 "pve-ha-crm",
40632 "pve-ha-lrm",
5370fa8c
TL
40633 "pvedaemon",
40634 "pvefw-logger",
40635 "pveproxy",
40636 "pvescheduler",
40637 "pvestatd",
40638 "spiceproxy",
4d47f125
TL
40639 "sshd",
40640 "syslog",
8f4d9c87 40641 "systemd-journald",
5370fa8c 40642 "systemd-timesyncd"
32d876b5
DM
40643 ],
40644 "type" : "string"
32d876b5
DM
40645 }
40646 }
40647 },
40648 "permissions" : {
40649 "check" : [
40650 "perm",
4d47f125 40651 "/nodes/{node}",
32d876b5
DM
40652 [
40653 "Sys.Modify"
40654 ]
40655 ]
40656 },
40657 "protected" : 1,
40658 "proxyto" : "node",
40659 "returns" : {
4d47f125 40660 "type" : "string"
32d876b5 40661 }
4d47f125
TL
40662 }
40663 },
40664 "leaf" : 1,
40665 "path" : "/nodes/{node}/services/{service}/restart",
40666 "text" : "restart"
40667 },
40668 {
40669 "info" : {
32d876b5 40670 "POST" : {
e9cd3bd4 40671 "allowtoken" : 1,
739d4d64 40672 "description" : "Reload service. Falls back to restart if service cannot be reloaded.",
32d876b5 40673 "method" : "POST",
4d47f125 40674 "name" : "service_reload",
32d876b5
DM
40675 "parameters" : {
40676 "additionalProperties" : 0,
40677 "properties" : {
32d876b5
DM
40678 "node" : {
40679 "description" : "The cluster node name.",
40680 "format" : "pve-node",
40681 "type" : "string",
40682 "typetext" : "<string>"
4d47f125
TL
40683 },
40684 "service" : {
40685 "description" : "Service ID",
40686 "enum" : [
5370fa8c 40687 "chrony",
4d47f125 40688 "corosync",
5370fa8c
TL
40689 "cron",
40690 "ksmtuned",
40691 "postfix",
40692 "pve-cluster",
4d47f125 40693 "pve-firewall",
4d47f125
TL
40694 "pve-ha-crm",
40695 "pve-ha-lrm",
5370fa8c
TL
40696 "pvedaemon",
40697 "pvefw-logger",
40698 "pveproxy",
40699 "pvescheduler",
40700 "pvestatd",
40701 "spiceproxy",
4d47f125
TL
40702 "sshd",
40703 "syslog",
8f4d9c87 40704 "systemd-journald",
5370fa8c 40705 "systemd-timesyncd"
4d47f125
TL
40706 ],
40707 "type" : "string"
32d876b5
DM
40708 }
40709 }
40710 },
40711 "permissions" : {
40712 "check" : [
40713 "perm",
4d47f125 40714 "/nodes/{node}",
32d876b5
DM
40715 [
40716 "Sys.Modify"
40717 ]
40718 ]
40719 },
40720 "protected" : 1,
40721 "proxyto" : "node",
40722 "returns" : {
4d47f125 40723 "type" : "string"
32d876b5
DM
40724 }
40725 }
40726 },
40727 "leaf" : 1,
4d47f125
TL
40728 "path" : "/nodes/{node}/services/{service}/reload",
40729 "text" : "reload"
32d876b5
DM
40730 }
40731 ],
40732 "info" : {
40733 "GET" : {
e9cd3bd4 40734 "allowtoken" : 1,
4d47f125 40735 "description" : "Directory index",
44660702 40736 "method" : "GET",
4d47f125 40737 "name" : "srvcmdidx",
44660702
DM
40738 "parameters" : {
40739 "additionalProperties" : 0,
40740 "properties" : {
44660702
DM
40741 "node" : {
40742 "description" : "The cluster node name.",
40743 "format" : "pve-node",
013dc89f
DM
40744 "type" : "string",
40745 "typetext" : "<string>"
44660702 40746 },
4d47f125
TL
40747 "service" : {
40748 "description" : "Service ID",
40749 "enum" : [
5370fa8c 40750 "chrony",
4d47f125 40751 "corosync",
5370fa8c
TL
40752 "cron",
40753 "ksmtuned",
40754 "postfix",
40755 "pve-cluster",
4d47f125 40756 "pve-firewall",
4d47f125
TL
40757 "pve-ha-crm",
40758 "pve-ha-lrm",
5370fa8c
TL
40759 "pvedaemon",
40760 "pvefw-logger",
40761 "pveproxy",
40762 "pvescheduler",
40763 "pvestatd",
40764 "spiceproxy",
4d47f125
TL
40765 "sshd",
40766 "syslog",
8f4d9c87 40767 "systemd-journald",
5370fa8c 40768 "systemd-timesyncd"
4d47f125
TL
40769 ],
40770 "type" : "string"
44660702 40771 }
7aacca6f 40772 }
56122987 40773 },
56122987
DM
40774 "permissions" : {
40775 "check" : [
40776 "perm",
7aacca6f 40777 "/nodes/{node}",
56122987 40778 [
4d47f125 40779 "Sys.Audit"
56122987
DM
40780 ]
40781 ]
40782 },
44660702
DM
40783 "returns" : {
40784 "items" : {
40785 "properties" : {
4d47f125 40786 "subdir" : {
44660702
DM
40787 "type" : "string"
40788 }
56122987 40789 },
44660702 40790 "type" : "object"
56122987 40791 },
2489d6df
WB
40792 "links" : [
40793 {
4d47f125 40794 "href" : "{subdir}",
2489d6df
WB
40795 "rel" : "child"
40796 }
40797 ],
40798 "type" : "array"
40799 }
40800 }
4d47f125
TL
40801 },
40802 "leaf" : 0,
40803 "path" : "/nodes/{node}/services/{service}",
40804 "text" : "{service}"
7aacca6f
DM
40805 }
40806 ],
44660702
DM
40807 "info" : {
40808 "GET" : {
e9cd3bd4 40809 "allowtoken" : 1,
4d47f125 40810 "description" : "Service list.",
44660702
DM
40811 "method" : "GET",
40812 "name" : "index",
40813 "parameters" : {
40814 "additionalProperties" : 0,
40815 "properties" : {
40816 "node" : {
40817 "description" : "The cluster node name.",
40818 "format" : "pve-node",
013dc89f
DM
40819 "type" : "string",
40820 "typetext" : "<string>"
44660702
DM
40821 }
40822 }
40823 },
40824 "permissions" : {
40825 "check" : [
40826 "perm",
4d47f125 40827 "/nodes/{node}",
44660702 40828 [
4d47f125
TL
40829 "Sys.Audit"
40830 ]
44660702
DM
40831 ]
40832 },
4d47f125
TL
40833 "protected" : 1,
40834 "proxyto" : "node",
44660702
DM
40835 "returns" : {
40836 "items" : {
40837 "properties" : {},
40838 "type" : "object"
40839 },
40840 "links" : [
40841 {
4d47f125 40842 "href" : "{service}",
44660702
DM
40843 "rel" : "child"
40844 }
40845 ],
40846 "type" : "array"
40847 }
40848 }
40849 },
7aacca6f 40850 "leaf" : 0,
4d47f125
TL
40851 "path" : "/nodes/{node}/services",
40852 "text" : "services"
7aacca6f
DM
40853 },
40854 {
7aacca6f 40855 "info" : {
ac70d7d1
TL
40856 "DELETE" : {
40857 "allowtoken" : 1,
40858 "description" : "Delete subscription key of this node.",
40859 "method" : "DELETE",
40860 "name" : "delete",
40861 "parameters" : {
40862 "additionalProperties" : 0,
40863 "properties" : {
40864 "node" : {
40865 "description" : "The cluster node name.",
40866 "format" : "pve-node",
40867 "type" : "string",
40868 "typetext" : "<string>"
40869 }
40870 }
40871 },
40872 "permissions" : {
40873 "check" : [
40874 "perm",
40875 "/nodes/{node}",
40876 [
40877 "Sys.Modify"
40878 ]
40879 ]
40880 },
40881 "protected" : 1,
40882 "proxyto" : "node",
40883 "returns" : {
40884 "type" : "null"
40885 }
40886 },
4d47f125 40887 "GET" : {
e9cd3bd4 40888 "allowtoken" : 1,
4d47f125
TL
40889 "description" : "Read subscription info.",
40890 "method" : "GET",
40891 "name" : "get",
7aacca6f 40892 "parameters" : {
44660702 40893 "additionalProperties" : 0,
7aacca6f 40894 "properties" : {
44660702 40895 "node" : {
4d47f125 40896 "description" : "The cluster node name.",
44660702 40897 "format" : "pve-node",
013dc89f
DM
40898 "type" : "string",
40899 "typetext" : "<string>"
4d47f125
TL
40900 }
40901 }
40902 },
40903 "permissions" : {
40904 "user" : "all"
40905 },
40906 "proxyto" : "node",
40907 "returns" : {
40908 "type" : "object"
40909 }
40910 },
40911 "POST" : {
e9cd3bd4 40912 "allowtoken" : 1,
4d47f125
TL
40913 "description" : "Update subscription info.",
40914 "method" : "POST",
40915 "name" : "update",
40916 "parameters" : {
40917 "additionalProperties" : 0,
40918 "properties" : {
40919 "force" : {
40920 "default" : 0,
4a407cfd 40921 "description" : "Always connect to server, even if local cache is still valid.",
7aacca6f 40922 "optional" : 1,
4d47f125
TL
40923 "type" : "boolean",
40924 "typetext" : "<boolean>"
44660702 40925 },
4d47f125
TL
40926 "node" : {
40927 "description" : "The cluster node name.",
40928 "format" : "pve-node",
013dc89f
DM
40929 "type" : "string",
40930 "typetext" : "<string>"
4d47f125
TL
40931 }
40932 }
40933 },
40934 "permissions" : {
40935 "check" : [
40936 "perm",
40937 "/nodes/{node}",
40938 [
40939 "Sys.Modify"
40940 ]
40941 ]
40942 },
40943 "protected" : 1,
40944 "proxyto" : "node",
40945 "returns" : {
40946 "type" : "null"
40947 }
40948 },
40949 "PUT" : {
e9cd3bd4 40950 "allowtoken" : 1,
4d47f125
TL
40951 "description" : "Set subscription key.",
40952 "method" : "PUT",
40953 "name" : "set",
40954 "parameters" : {
40955 "additionalProperties" : 0,
40956 "properties" : {
40957 "key" : {
40958 "description" : "Proxmox VE subscription key",
40959 "maxLength" : 32,
bd92b745 40960 "pattern" : "\\s*pve([1248])([cbsp])-[0-9a-f]{10}\\s*",
4d47f125 40961 "type" : "string"
7aacca6f 40962 },
4d47f125
TL
40963 "node" : {
40964 "description" : "The cluster node name.",
40965 "format" : "pve-node",
013dc89f
DM
40966 "type" : "string",
40967 "typetext" : "<string>"
7aacca6f 40968 }
7aacca6f
DM
40969 }
40970 },
7aacca6f 40971 "permissions" : {
4d47f125
TL
40972 "check" : [
40973 "perm",
40974 "/nodes/{node}",
40975 [
40976 "Sys.Modify"
40977 ]
40978 ]
7aacca6f 40979 },
44660702 40980 "protected" : 1,
7aacca6f 40981 "proxyto" : "node",
7aacca6f 40982 "returns" : {
4d47f125 40983 "type" : "null"
7aacca6f
DM
40984 }
40985 }
40986 },
4d47f125
TL
40987 "leaf" : 1,
40988 "path" : "/nodes/{node}/subscription",
40989 "text" : "subscription"
44660702
DM
40990 },
40991 {
7aacca6f
DM
40992 "children" : [
40993 {
4d47f125
TL
40994 "info" : {
40995 "DELETE" : {
e9cd3bd4 40996 "allowtoken" : 1,
4d47f125
TL
40997 "description" : "Delete network device configuration",
40998 "method" : "DELETE",
40999 "name" : "delete_network",
41000 "parameters" : {
41001 "additionalProperties" : 0,
41002 "properties" : {
41003 "iface" : {
41004 "description" : "Network interface name.",
41005 "format" : "pve-iface",
41006 "maxLength" : 20,
41007 "minLength" : 2,
41008 "type" : "string",
41009 "typetext" : "<string>"
7aacca6f 41010 },
4d47f125
TL
41011 "node" : {
41012 "description" : "The cluster node name.",
41013 "format" : "pve-node",
41014 "type" : "string",
41015 "typetext" : "<string>"
44660702
DM
41016 }
41017 }
41018 },
4d47f125
TL
41019 "permissions" : {
41020 "check" : [
41021 "perm",
41022 "/nodes/{node}",
41023 [
41024 "Sys.Modify"
41025 ]
41026 ]
41027 },
41028 "protected" : 1,
41029 "proxyto" : "node",
41030 "returns" : {
41031 "type" : "null"
41032 }
41033 },
41034 "GET" : {
e9cd3bd4 41035 "allowtoken" : 1,
4d47f125
TL
41036 "description" : "Read network device configuration",
41037 "method" : "GET",
41038 "name" : "network_config",
41039 "parameters" : {
41040 "additionalProperties" : 0,
41041 "properties" : {
41042 "iface" : {
41043 "description" : "Network interface name.",
41044 "format" : "pve-iface",
41045 "maxLength" : 20,
41046 "minLength" : 2,
41047 "type" : "string",
41048 "typetext" : "<string>"
56122987 41049 },
4d47f125
TL
41050 "node" : {
41051 "description" : "The cluster node name.",
41052 "format" : "pve-node",
41053 "type" : "string",
41054 "typetext" : "<string>"
44660702
DM
41055 }
41056 }
41057 },
4d47f125
TL
41058 "permissions" : {
41059 "check" : [
41060 "perm",
41061 "/nodes/{node}",
41062 [
41063 "Sys.Audit"
41064 ]
41065 ]
41066 },
41067 "proxyto" : "node",
41068 "returns" : {
41069 "properties" : {
41070 "method" : {
41071 "type" : "string"
44660702 41072 },
4d47f125 41073 "type" : {
44660702
DM
41074 "type" : "string"
41075 }
4d47f125
TL
41076 },
41077 "type" : "object"
41078 }
56122987 41079 },
4d47f125 41080 "PUT" : {
e9cd3bd4 41081 "allowtoken" : 1,
4d47f125
TL
41082 "description" : "Update network device configuration",
41083 "method" : "PUT",
41084 "name" : "update_network",
41085 "parameters" : {
41086 "additionalProperties" : 0,
41087 "properties" : {
41088 "address" : {
41089 "description" : "IP address.",
41090 "format" : "ipv4",
41091 "optional" : 1,
41092 "requires" : "netmask",
41093 "type" : "string",
41094 "typetext" : "<string>"
41095 },
41096 "address6" : {
41097 "description" : "IP address.",
41098 "format" : "ipv6",
41099 "optional" : 1,
41100 "requires" : "netmask6",
41101 "type" : "string",
41102 "typetext" : "<string>"
41103 },
41104 "autostart" : {
41105 "description" : "Automatically start interface on boot.",
41106 "optional" : 1,
41107 "type" : "boolean",
41108 "typetext" : "<boolean>"
41109 },
e9cd3bd4
TL
41110 "bond-primary" : {
41111 "description" : "Specify the primary interface for active-backup bond.",
41112 "format" : "pve-iface",
41113 "optional" : 1,
41114 "type" : "string",
41115 "typetext" : "<string>"
41116 },
4d47f125
TL
41117 "bond_mode" : {
41118 "description" : "Bonding mode.",
41119 "enum" : [
41120 "balance-rr",
41121 "active-backup",
41122 "balance-xor",
41123 "broadcast",
41124 "802.3ad",
41125 "balance-tlb",
41126 "balance-alb",
41127 "balance-slb",
41128 "lacp-balance-slb",
41129 "lacp-balance-tcp"
41130 ],
41131 "optional" : 1,
41132 "type" : "string"
41133 },
41134 "bond_xmit_hash_policy" : {
41135 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
41136 "enum" : [
41137 "layer2",
41138 "layer2+3",
41139 "layer3+4"
41140 ],
41141 "optional" : 1,
41142 "type" : "string"
41143 },
41144 "bridge_ports" : {
1e3f8156 41145 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
41146 "format" : "pve-iface-list",
41147 "optional" : 1,
41148 "type" : "string",
41149 "typetext" : "<string>"
41150 },
41151 "bridge_vlan_aware" : {
41152 "description" : "Enable bridge vlan support.",
41153 "optional" : 1,
41154 "type" : "boolean",
41155 "typetext" : "<boolean>"
41156 },
bb4c8cf8
TL
41157 "cidr" : {
41158 "description" : "IPv4 CIDR.",
41159 "format" : "CIDRv4",
41160 "optional" : 1,
41161 "type" : "string",
41162 "typetext" : "<string>"
41163 },
41164 "cidr6" : {
41165 "description" : "IPv6 CIDR.",
41166 "format" : "CIDRv6",
41167 "optional" : 1,
41168 "type" : "string",
41169 "typetext" : "<string>"
41170 },
4d47f125
TL
41171 "comments" : {
41172 "description" : "Comments",
41173 "optional" : 1,
41174 "type" : "string",
41175 "typetext" : "<string>"
41176 },
41177 "comments6" : {
41178 "description" : "Comments",
41179 "optional" : 1,
41180 "type" : "string",
41181 "typetext" : "<string>"
41182 },
41183 "delete" : {
41184 "description" : "A list of settings you want to delete.",
41185 "format" : "pve-configid-list",
41186 "optional" : 1,
41187 "type" : "string",
41188 "typetext" : "<string>"
41189 },
41190 "gateway" : {
41191 "description" : "Default gateway address.",
41192 "format" : "ipv4",
41193 "optional" : 1,
41194 "type" : "string",
41195 "typetext" : "<string>"
41196 },
41197 "gateway6" : {
41198 "description" : "Default ipv6 gateway address.",
41199 "format" : "ipv6",
41200 "optional" : 1,
41201 "type" : "string",
41202 "typetext" : "<string>"
41203 },
41204 "iface" : {
41205 "description" : "Network interface name.",
41206 "format" : "pve-iface",
41207 "maxLength" : 20,
41208 "minLength" : 2,
41209 "type" : "string",
41210 "typetext" : "<string>"
56122987 41211 },
e9cd3bd4
TL
41212 "mtu" : {
41213 "description" : "MTU.",
41214 "maximum" : 65520,
41215 "minimum" : 1280,
41216 "optional" : 1,
41217 "type" : "integer",
41218 "typetext" : "<integer> (1280 - 65520)"
41219 },
4d47f125
TL
41220 "netmask" : {
41221 "description" : "Network mask.",
41222 "format" : "ipv4mask",
41223 "optional" : 1,
41224 "requires" : "address",
41225 "type" : "string",
41226 "typetext" : "<string>"
41227 },
41228 "netmask6" : {
41229 "description" : "Network mask.",
41230 "maximum" : 128,
41231 "minimum" : 0,
41232 "optional" : 1,
41233 "requires" : "address6",
41234 "type" : "integer",
41235 "typetext" : "<integer> (0 - 128)"
56122987 41236 },
44660702
DM
41237 "node" : {
41238 "description" : "The cluster node name.",
41239 "format" : "pve-node",
013dc89f
DM
41240 "type" : "string",
41241 "typetext" : "<string>"
44660702 41242 },
4d47f125
TL
41243 "ovs_bonds" : {
41244 "description" : "Specify the interfaces used by the bonding device.",
41245 "format" : "pve-iface-list",
41246 "optional" : 1,
41247 "type" : "string",
41248 "typetext" : "<string>"
41249 },
41250 "ovs_bridge" : {
41251 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
41252 "format" : "pve-iface",
41253 "optional" : 1,
41254 "type" : "string",
41255 "typetext" : "<string>"
41256 },
41257 "ovs_options" : {
41258 "description" : "OVS interface options.",
41259 "maxLength" : 1024,
41260 "optional" : 1,
41261 "type" : "string",
41262 "typetext" : "<string>"
41263 },
41264 "ovs_ports" : {
1e3f8156 41265 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
41266 "format" : "pve-iface-list",
41267 "optional" : 1,
41268 "type" : "string",
41269 "typetext" : "<string>"
41270 },
41271 "ovs_tag" : {
41272 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
41273 "maximum" : 4094,
41274 "minimum" : 1,
41275 "optional" : 1,
41276 "type" : "integer",
41277 "typetext" : "<integer> (1 - 4094)"
41278 },
41279 "slaves" : {
41280 "description" : "Specify the interfaces used by the bonding device.",
41281 "format" : "pve-iface-list",
41282 "optional" : 1,
41283 "type" : "string",
41284 "typetext" : "<string>"
41285 },
41286 "type" : {
41287 "description" : "Network interface type",
44660702 41288 "enum" : [
4d47f125
TL
41289 "bridge",
41290 "bond",
41291 "eth",
41292 "alias",
41293 "vlan",
41294 "OVSBridge",
41295 "OVSBond",
41296 "OVSPort",
41297 "OVSIntPort",
41298 "unknown"
44660702
DM
41299 ],
41300 "type" : "string"
e9cd3bd4
TL
41301 },
41302 "vlan-id" : {
41303 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
41304 "maximum" : 4094,
41305 "minimum" : 1,
41306 "optional" : 1,
41307 "type" : "integer",
41308 "typetext" : "<integer> (1 - 4094)"
41309 },
41310 "vlan-raw-device" : {
41311 "description" : "Specify the raw interface for the vlan interface.",
41312 "format" : "pve-iface",
41313 "optional" : 1,
41314 "type" : "string",
41315 "typetext" : "<string>"
44660702
DM
41316 }
41317 }
41318 },
41319 "permissions" : {
41320 "check" : [
41321 "perm",
41322 "/nodes/{node}",
41323 [
4d47f125 41324 "Sys.Modify"
44660702
DM
41325 ]
41326 ]
41327 },
4d47f125
TL
41328 "protected" : 1,
41329 "proxyto" : "node",
44660702 41330 "returns" : {
4d47f125 41331 "type" : "null"
44660702
DM
41332 }
41333 }
41334 },
4d47f125
TL
41335 "leaf" : 1,
41336 "path" : "/nodes/{node}/network/{iface}",
41337 "text" : "{iface}"
44660702
DM
41338 }
41339 ],
41340 "info" : {
4d47f125 41341 "DELETE" : {
e9cd3bd4 41342 "allowtoken" : 1,
4d47f125
TL
41343 "description" : "Revert network configuration changes.",
41344 "method" : "DELETE",
41345 "name" : "revert_network_changes",
44660702
DM
41346 "parameters" : {
41347 "additionalProperties" : 0,
41348 "properties" : {
41349 "node" : {
41350 "description" : "The cluster node name.",
41351 "format" : "pve-node",
013dc89f
DM
41352 "type" : "string",
41353 "typetext" : "<string>"
44660702
DM
41354 }
41355 }
41356 },
41357 "permissions" : {
41358 "check" : [
41359 "perm",
41360 "/nodes/{node}",
41361 [
4d47f125 41362 "Sys.Modify"
44660702
DM
41363 ]
41364 ]
41365 },
41366 "protected" : 1,
41367 "proxyto" : "node",
4d47f125
TL
41368 "returns" : {
41369 "type" : "null"
41370 }
41371 },
41372 "GET" : {
e9cd3bd4 41373 "allowtoken" : 1,
4d47f125
TL
41374 "description" : "List available networks",
41375 "method" : "GET",
41376 "name" : "index",
41377 "parameters" : {
41378 "additionalProperties" : 0,
41379 "properties" : {
41380 "node" : {
41381 "description" : "The cluster node name.",
41382 "format" : "pve-node",
41383 "type" : "string",
41384 "typetext" : "<string>"
41385 },
41386 "type" : {
41387 "description" : "Only list specific interface types.",
41388 "enum" : [
41389 "bridge",
41390 "bond",
41391 "eth",
41392 "alias",
41393 "vlan",
41394 "OVSBridge",
41395 "OVSBond",
41396 "OVSPort",
41397 "OVSIntPort",
159464a9
TL
41398 "any_bridge",
41399 "any_local_bridge"
4d47f125
TL
41400 ],
41401 "optional" : 1,
41402 "type" : "string"
41403 }
41404 }
41405 },
41406 "permissions" : {
41407 "user" : "all"
41408 },
41409 "proxyto" : "node",
44660702
DM
41410 "returns" : {
41411 "items" : {
41412 "properties" : {},
41413 "type" : "object"
41414 },
41415 "links" : [
41416 {
4d47f125 41417 "href" : "{iface}",
44660702 41418 "rel" : "child"
56122987 41419 }
44660702
DM
41420 ],
41421 "type" : "array"
41422 }
4d47f125
TL
41423 },
41424 "POST" : {
e9cd3bd4 41425 "allowtoken" : 1,
4d47f125
TL
41426 "description" : "Create network device configuration",
41427 "method" : "POST",
41428 "name" : "create_network",
7aacca6f 41429 "parameters" : {
44660702 41430 "additionalProperties" : 0,
7aacca6f 41431 "properties" : {
4d47f125
TL
41432 "address" : {
41433 "description" : "IP address.",
41434 "format" : "ipv4",
41435 "optional" : 1,
41436 "requires" : "netmask",
41437 "type" : "string",
41438 "typetext" : "<string>"
41439 },
41440 "address6" : {
41441 "description" : "IP address.",
41442 "format" : "ipv6",
41443 "optional" : 1,
41444 "requires" : "netmask6",
41445 "type" : "string",
41446 "typetext" : "<string>"
41447 },
41448 "autostart" : {
41449 "description" : "Automatically start interface on boot.",
41450 "optional" : 1,
41451 "type" : "boolean",
41452 "typetext" : "<boolean>"
41453 },
e9cd3bd4
TL
41454 "bond-primary" : {
41455 "description" : "Specify the primary interface for active-backup bond.",
41456 "format" : "pve-iface",
41457 "optional" : 1,
41458 "type" : "string",
41459 "typetext" : "<string>"
41460 },
4d47f125
TL
41461 "bond_mode" : {
41462 "description" : "Bonding mode.",
41463 "enum" : [
41464 "balance-rr",
41465 "active-backup",
41466 "balance-xor",
41467 "broadcast",
41468 "802.3ad",
41469 "balance-tlb",
41470 "balance-alb",
41471 "balance-slb",
41472 "lacp-balance-slb",
41473 "lacp-balance-tcp"
41474 ],
41475 "optional" : 1,
41476 "type" : "string"
41477 },
41478 "bond_xmit_hash_policy" : {
41479 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
41480 "enum" : [
41481 "layer2",
41482 "layer2+3",
41483 "layer3+4"
41484 ],
41485 "optional" : 1,
41486 "type" : "string"
41487 },
41488 "bridge_ports" : {
1e3f8156 41489 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
41490 "format" : "pve-iface-list",
41491 "optional" : 1,
013dc89f
DM
41492 "type" : "string",
41493 "typetext" : "<string>"
4d47f125
TL
41494 },
41495 "bridge_vlan_aware" : {
41496 "description" : "Enable bridge vlan support.",
44660702 41497 "optional" : 1,
013dc89f
DM
41498 "type" : "boolean",
41499 "typetext" : "<boolean>"
44660702 41500 },
bb4c8cf8
TL
41501 "cidr" : {
41502 "description" : "IPv4 CIDR.",
41503 "format" : "CIDRv4",
41504 "optional" : 1,
41505 "type" : "string",
41506 "typetext" : "<string>"
41507 },
41508 "cidr6" : {
41509 "description" : "IPv6 CIDR.",
41510 "format" : "CIDRv6",
41511 "optional" : 1,
41512 "type" : "string",
41513 "typetext" : "<string>"
41514 },
4d47f125
TL
41515 "comments" : {
41516 "description" : "Comments",
41517 "optional" : 1,
41518 "type" : "string",
41519 "typetext" : "<string>"
41520 },
41521 "comments6" : {
41522 "description" : "Comments",
41523 "optional" : 1,
41524 "type" : "string",
41525 "typetext" : "<string>"
41526 },
41527 "gateway" : {
41528 "description" : "Default gateway address.",
41529 "format" : "ipv4",
41530 "optional" : 1,
41531 "type" : "string",
41532 "typetext" : "<string>"
41533 },
41534 "gateway6" : {
41535 "description" : "Default ipv6 gateway address.",
41536 "format" : "ipv6",
41537 "optional" : 1,
41538 "type" : "string",
41539 "typetext" : "<string>"
41540 },
41541 "iface" : {
41542 "description" : "Network interface name.",
41543 "format" : "pve-iface",
41544 "maxLength" : 20,
41545 "minLength" : 2,
41546 "type" : "string",
41547 "typetext" : "<string>"
41548 },
e9cd3bd4
TL
41549 "mtu" : {
41550 "description" : "MTU.",
41551 "maximum" : 65520,
41552 "minimum" : 1280,
41553 "optional" : 1,
41554 "type" : "integer",
41555 "typetext" : "<integer> (1280 - 65520)"
41556 },
4d47f125
TL
41557 "netmask" : {
41558 "description" : "Network mask.",
41559 "format" : "ipv4mask",
41560 "optional" : 1,
41561 "requires" : "address",
41562 "type" : "string",
41563 "typetext" : "<string>"
41564 },
41565 "netmask6" : {
41566 "description" : "Network mask.",
41567 "maximum" : 128,
41568 "minimum" : 0,
41569 "optional" : 1,
41570 "requires" : "address6",
41571 "type" : "integer",
41572 "typetext" : "<integer> (0 - 128)"
41573 },
7aacca6f 41574 "node" : {
7aacca6f 41575 "description" : "The cluster node name.",
44660702 41576 "format" : "pve-node",
013dc89f
DM
41577 "type" : "string",
41578 "typetext" : "<string>"
4d47f125
TL
41579 },
41580 "ovs_bonds" : {
41581 "description" : "Specify the interfaces used by the bonding device.",
41582 "format" : "pve-iface-list",
41583 "optional" : 1,
41584 "type" : "string",
41585 "typetext" : "<string>"
41586 },
41587 "ovs_bridge" : {
41588 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
41589 "format" : "pve-iface",
41590 "optional" : 1,
41591 "type" : "string",
41592 "typetext" : "<string>"
41593 },
41594 "ovs_options" : {
41595 "description" : "OVS interface options.",
41596 "maxLength" : 1024,
41597 "optional" : 1,
41598 "type" : "string",
41599 "typetext" : "<string>"
41600 },
41601 "ovs_ports" : {
1e3f8156 41602 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
41603 "format" : "pve-iface-list",
41604 "optional" : 1,
41605 "type" : "string",
41606 "typetext" : "<string>"
41607 },
41608 "ovs_tag" : {
41609 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
41610 "maximum" : 4094,
41611 "minimum" : 1,
41612 "optional" : 1,
41613 "type" : "integer",
41614 "typetext" : "<integer> (1 - 4094)"
41615 },
41616 "slaves" : {
41617 "description" : "Specify the interfaces used by the bonding device.",
41618 "format" : "pve-iface-list",
41619 "optional" : 1,
41620 "type" : "string",
41621 "typetext" : "<string>"
41622 },
41623 "type" : {
41624 "description" : "Network interface type",
41625 "enum" : [
41626 "bridge",
41627 "bond",
41628 "eth",
41629 "alias",
41630 "vlan",
41631 "OVSBridge",
41632 "OVSBond",
41633 "OVSPort",
41634 "OVSIntPort",
41635 "unknown"
41636 ],
41637 "type" : "string"
e9cd3bd4
TL
41638 },
41639 "vlan-id" : {
41640 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
41641 "maximum" : 4094,
41642 "minimum" : 1,
41643 "optional" : 1,
41644 "type" : "integer",
41645 "typetext" : "<integer> (1 - 4094)"
41646 },
41647 "vlan-raw-device" : {
41648 "description" : "Specify the raw interface for the vlan interface.",
41649 "format" : "pve-iface",
41650 "optional" : 1,
41651 "type" : "string",
41652 "typetext" : "<string>"
7aacca6f
DM
41653 }
41654 }
41655 },
35a75dd3
DM
41656 "permissions" : {
41657 "check" : [
41658 "perm",
41659 "/nodes/{node}",
41660 [
41661 "Sys.Modify"
41662 ]
41663 ]
41664 },
7aacca6f 41665 "protected" : 1,
7aacca6f 41666 "proxyto" : "node",
44660702
DM
41667 "returns" : {
41668 "type" : "null"
41669 }
41670 },
41671 "PUT" : {
e9cd3bd4 41672 "allowtoken" : 1,
4d47f125 41673 "description" : "Reload network configuration",
44660702 41674 "method" : "PUT",
4d47f125 41675 "name" : "reload_network_config",
7aacca6f
DM
41676 "parameters" : {
41677 "additionalProperties" : 0,
41678 "properties" : {
7aacca6f 41679 "node" : {
7aacca6f 41680 "description" : "The cluster node name.",
44660702 41681 "format" : "pve-node",
013dc89f
DM
41682 "type" : "string",
41683 "typetext" : "<string>"
7aacca6f
DM
41684 }
41685 }
41686 },
35a75dd3
DM
41687 "permissions" : {
41688 "check" : [
41689 "perm",
41690 "/nodes/{node}",
41691 [
41692 "Sys.Modify"
41693 ]
41694 ]
41695 },
44660702
DM
41696 "protected" : 1,
41697 "proxyto" : "node",
7aacca6f 41698 "returns" : {
4d47f125 41699 "type" : "string"
44660702 41700 }
7aacca6f
DM
41701 }
41702 },
4d47f125
TL
41703 "leaf" : 0,
41704 "path" : "/nodes/{node}/network",
41705 "text" : "network"
7aacca6f
DM
41706 },
41707 {
7aacca6f
DM
41708 "children" : [
41709 {
4d47f125
TL
41710 "children" : [
41711 {
41712 "info" : {
41713 "GET" : {
e9cd3bd4 41714 "allowtoken" : 1,
4d47f125
TL
41715 "description" : "Read task log.",
41716 "method" : "GET",
41717 "name" : "read_task_log",
41718 "parameters" : {
41719 "additionalProperties" : 0,
41720 "properties" : {
9d2e98ed
TL
41721 "download" : {
41722 "description" : "Whether the tasklog file should be downloaded. This parameter can't be used in conjunction with other parameters",
41723 "optional" : 1,
41724 "type" : "boolean",
41725 "typetext" : "<boolean>"
41726 },
4d47f125
TL
41727 "limit" : {
41728 "default" : 50,
9d2e98ed 41729 "description" : "The amount of lines to read from the tasklog.",
4d47f125
TL
41730 "minimum" : 0,
41731 "optional" : 1,
41732 "type" : "integer",
41733 "typetext" : "<integer> (0 - N)"
41734 },
41735 "node" : {
41736 "description" : "The cluster node name.",
41737 "format" : "pve-node",
41738 "type" : "string",
41739 "typetext" : "<string>"
41740 },
41741 "start" : {
41742 "default" : 0,
9d2e98ed 41743 "description" : "Start at this line when reading the tasklog",
4d47f125
TL
41744 "minimum" : 0,
41745 "optional" : 1,
41746 "type" : "integer",
41747 "typetext" : "<integer> (0 - N)"
41748 },
41749 "upid" : {
5370fa8c 41750 "description" : "The task's unique ID.",
4d47f125
TL
41751 "type" : "string",
41752 "typetext" : "<string>"
41753 }
41754 }
41755 },
41756 "permissions" : {
5370fa8c 41757 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125
TL
41758 "user" : "all"
41759 },
41760 "protected" : 1,
41761 "proxyto" : "node",
41762 "returns" : {
41763 "items" : {
41764 "properties" : {
41765 "n" : {
41766 "description" : "Line number",
41767 "type" : "integer"
41768 },
41769 "t" : {
41770 "description" : "Line text",
41771 "type" : "string"
41772 }
41773 },
41774 "type" : "object"
41775 },
41776 "type" : "array"
41777 }
41778 }
41779 },
41780 "leaf" : 1,
41781 "path" : "/nodes/{node}/tasks/{upid}/log",
41782 "text" : "log"
41783 },
41784 {
41785 "info" : {
41786 "GET" : {
e9cd3bd4 41787 "allowtoken" : 1,
4d47f125
TL
41788 "description" : "Read task status.",
41789 "method" : "GET",
41790 "name" : "read_task_status",
41791 "parameters" : {
41792 "additionalProperties" : 0,
41793 "properties" : {
41794 "node" : {
41795 "description" : "The cluster node name.",
41796 "format" : "pve-node",
41797 "type" : "string",
41798 "typetext" : "<string>"
41799 },
41800 "upid" : {
5370fa8c 41801 "description" : "The task's unique ID.",
4d47f125
TL
41802 "type" : "string",
41803 "typetext" : "<string>"
41804 }
41805 }
41806 },
41807 "permissions" : {
5370fa8c 41808 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they are not the owner of the task.",
4d47f125
TL
41809 "user" : "all"
41810 },
41811 "protected" : 1,
41812 "proxyto" : "node",
41813 "returns" : {
41814 "properties" : {
5370fa8c
TL
41815 "exitstatus" : {
41816 "optional" : 1,
41817 "type" : "string"
41818 },
41819 "id" : {
41820 "type" : "string"
41821 },
41822 "node" : {
41823 "type" : "string"
41824 },
4d47f125
TL
41825 "pid" : {
41826 "type" : "integer"
41827 },
5370fa8c
TL
41828 "starttime" : {
41829 "type" : "number"
41830 },
4d47f125
TL
41831 "status" : {
41832 "enum" : [
41833 "running",
41834 "stopped"
41835 ],
41836 "type" : "string"
5370fa8c
TL
41837 },
41838 "type" : {
41839 "type" : "string"
41840 },
41841 "upid" : {
41842 "type" : "string"
41843 },
41844 "user" : {
41845 "type" : "string"
4d47f125
TL
41846 }
41847 },
41848 "type" : "object"
41849 }
41850 }
41851 },
41852 "leaf" : 1,
41853 "path" : "/nodes/{node}/tasks/{upid}/status",
41854 "text" : "status"
41855 }
41856 ],
56122987 41857 "info" : {
7aacca6f 41858 "DELETE" : {
e9cd3bd4 41859 "allowtoken" : 1,
4d47f125 41860 "description" : "Stop a task.",
44660702 41861 "method" : "DELETE",
4d47f125 41862 "name" : "stop_task",
44660702
DM
41863 "parameters" : {
41864 "additionalProperties" : 0,
41865 "properties" : {
44660702
DM
41866 "node" : {
41867 "description" : "The cluster node name.",
41868 "format" : "pve-node",
013dc89f
DM
41869 "type" : "string",
41870 "typetext" : "<string>"
4d47f125
TL
41871 },
41872 "upid" : {
41873 "type" : "string",
41874 "typetext" : "<string>"
44660702
DM
41875 }
41876 }
7aacca6f
DM
41877 },
41878 "permissions" : {
5370fa8c 41879 "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125 41880 "user" : "all"
7aacca6f 41881 },
44660702 41882 "protected" : 1,
7aacca6f 41883 "proxyto" : "node",
44660702
DM
41884 "returns" : {
41885 "type" : "null"
41886 }
41887 },
41888 "GET" : {
e9cd3bd4 41889 "allowtoken" : 1,
4d47f125 41890 "description" : "",
44660702 41891 "method" : "GET",
4d47f125 41892 "name" : "upid_index",
7aacca6f
DM
41893 "parameters" : {
41894 "additionalProperties" : 0,
41895 "properties" : {
7aacca6f 41896 "node" : {
44660702 41897 "description" : "The cluster node name.",
7aacca6f 41898 "format" : "pve-node",
013dc89f
DM
41899 "type" : "string",
41900 "typetext" : "<string>"
7aacca6f 41901 },
4d47f125
TL
41902 "upid" : {
41903 "type" : "string",
41904 "typetext" : "<string>"
7aacca6f
DM
41905 }
41906 }
41907 },
7aacca6f 41908 "permissions" : {
4d47f125 41909 "user" : "all"
7aacca6f
DM
41910 },
41911 "returns" : {
4d47f125
TL
41912 "items" : {
41913 "properties" : {},
41914 "type" : "object"
41915 },
41916 "links" : [
41917 {
41918 "href" : "{name}",
41919 "rel" : "child"
41920 }
41921 ],
41922 "type" : "array"
44660702 41923 }
7aacca6f
DM
41924 }
41925 },
4d47f125
TL
41926 "leaf" : 0,
41927 "path" : "/nodes/{node}/tasks/{upid}",
41928 "text" : "{upid}"
7aacca6f
DM
41929 }
41930 ],
7aacca6f 41931 "info" : {
44660702 41932 "GET" : {
e9cd3bd4 41933 "allowtoken" : 1,
4d47f125 41934 "description" : "Read task list for one node (finished tasks).",
44660702 41935 "method" : "GET",
4d47f125 41936 "name" : "node_tasks",
44660702
DM
41937 "parameters" : {
41938 "additionalProperties" : 0,
41939 "properties" : {
4d47f125
TL
41940 "errors" : {
41941 "default" : 0,
5370fa8c 41942 "description" : "Only list tasks with a status of ERROR.",
7aacca6f 41943 "optional" : 1,
4d47f125
TL
41944 "type" : "boolean",
41945 "typetext" : "<boolean>"
7aacca6f 41946 },
4d47f125
TL
41947 "limit" : {
41948 "default" : 50,
41949 "description" : "Only list this amount of tasks.",
41950 "minimum" : 0,
44660702 41951 "optional" : 1,
4d47f125
TL
41952 "type" : "integer",
41953 "typetext" : "<integer> (0 - N)"
41954 },
41955 "node" : {
41956 "description" : "The cluster node name.",
41957 "format" : "pve-node",
013dc89f
DM
41958 "type" : "string",
41959 "typetext" : "<string>"
44660702 41960 },
34f3e481
TL
41961 "since" : {
41962 "description" : "Only list tasks since this UNIX epoch.",
41963 "optional" : 1,
41964 "type" : "integer",
41965 "typetext" : "<integer>"
41966 },
5f26e15b
TL
41967 "source" : {
41968 "default" : "archive",
41969 "description" : "List archived, active or all tasks.",
41970 "enum" : [
41971 "archive",
41972 "active",
41973 "all"
41974 ],
41975 "optional" : 1,
41976 "type" : "string"
41977 },
4d47f125
TL
41978 "start" : {
41979 "default" : 0,
41980 "description" : "List tasks beginning from this offset.",
41981 "minimum" : 0,
44660702 41982 "optional" : 1,
4d47f125
TL
41983 "type" : "integer",
41984 "typetext" : "<integer> (0 - N)"
44660702 41985 },
34f3e481
TL
41986 "statusfilter" : {
41987 "description" : "List of Task States that should be returned.",
41988 "format" : "pve-task-status-type-list",
41989 "optional" : 1,
41990 "type" : "string",
41991 "typetext" : "<string>"
41992 },
5f26e15b
TL
41993 "typefilter" : {
41994 "description" : "Only list tasks of this type (e.g., vzstart, vzdump).",
41995 "optional" : 1,
41996 "type" : "string",
41997 "typetext" : "<string>"
41998 },
34f3e481
TL
41999 "until" : {
42000 "description" : "Only list tasks until this UNIX epoch.",
42001 "optional" : 1,
42002 "type" : "integer",
42003 "typetext" : "<integer>"
42004 },
4d47f125
TL
42005 "userfilter" : {
42006 "description" : "Only list tasks from this user.",
44660702 42007 "optional" : 1,
013dc89f
DM
42008 "type" : "string",
42009 "typetext" : "<string>"
44660702 42010 },
4d47f125
TL
42011 "vmid" : {
42012 "description" : "Only list tasks for this VM.",
42013 "format" : "pve-vmid",
8dd66e12
TL
42014 "maximum" : 999999999,
42015 "minimum" : 100,
44660702 42016 "optional" : 1,
4bd7df8b 42017 "type" : "integer",
8dd66e12 42018 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
42019 }
42020 }
42021 },
42022 "permissions" : {
42023 "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).",
42024 "user" : "all"
42025 },
42026 "proxyto" : "node",
42027 "returns" : {
42028 "items" : {
42029 "properties" : {
42030 "endtime" : {
42031 "optional" : 1,
42032 "title" : "Endtime",
42033 "type" : "integer"
42034 },
42035 "id" : {
4d47f125
TL
42036 "title" : "ID",
42037 "type" : "string"
42038 },
42039 "node" : {
4d47f125
TL
42040 "title" : "Node",
42041 "type" : "string"
42042 },
42043 "pid" : {
4d47f125
TL
42044 "title" : "PID",
42045 "type" : "integer"
42046 },
42047 "pstart" : {
4d47f125
TL
42048 "type" : "integer"
42049 },
42050 "starttime" : {
4d47f125
TL
42051 "title" : "Starttime",
42052 "type" : "integer"
42053 },
42054 "status" : {
42055 "optional" : 1,
42056 "title" : "Status",
42057 "type" : "string"
42058 },
42059 "type" : {
4d47f125
TL
42060 "title" : "Type",
42061 "type" : "string"
42062 },
42063 "upid" : {
42064 "title" : "UPID",
42065 "type" : "string"
42066 },
42067 "user" : {
4d47f125
TL
42068 "title" : "User",
42069 "type" : "string"
42070 }
44660702 42071 },
4d47f125
TL
42072 "type" : "object"
42073 },
42074 "links" : [
42075 {
42076 "href" : "{upid}",
42077 "rel" : "child"
42078 }
42079 ],
42080 "type" : "array"
42081 }
42082 }
42083 },
42084 "leaf" : 0,
42085 "path" : "/nodes/{node}/tasks",
42086 "text" : "tasks"
42087 },
42088 {
42089 "children" : [
42090 {
42091 "info" : {
42092 "GET" : {
e9cd3bd4 42093 "allowtoken" : 1,
d2656385 42094 "description" : "Scan remote NFS server.",
4d47f125 42095 "method" : "GET",
d2656385 42096 "name" : "nfsscan",
4d47f125
TL
42097 "parameters" : {
42098 "additionalProperties" : 0,
42099 "properties" : {
42100 "node" : {
42101 "description" : "The cluster node name.",
42102 "format" : "pve-node",
42103 "type" : "string",
42104 "typetext" : "<string>"
d2656385
TL
42105 },
42106 "server" : {
42107 "description" : "The server address (name or IP).",
42108 "format" : "pve-storage-server",
42109 "type" : "string",
42110 "typetext" : "<string>"
4d47f125
TL
42111 }
42112 }
44660702 42113 },
4d47f125
TL
42114 "permissions" : {
42115 "check" : [
42116 "perm",
42117 "/storage",
42118 [
42119 "Datastore.Allocate"
42120 ]
42121 ]
42122 },
42123 "protected" : 1,
42124 "proxyto" : "node",
42125 "returns" : {
42126 "items" : {
42127 "properties" : {
d2656385
TL
42128 "options" : {
42129 "description" : "NFS export options.",
42130 "type" : "string"
42131 },
42132 "path" : {
42133 "description" : "The exported path.",
4d47f125
TL
42134 "type" : "string"
42135 }
42136 },
42137 "type" : "object"
42138 },
42139 "type" : "array"
42140 }
42141 }
42142 },
42143 "leaf" : 1,
d2656385
TL
42144 "path" : "/nodes/{node}/scan/nfs",
42145 "text" : "nfs"
4d47f125
TL
42146 },
42147 {
42148 "info" : {
42149 "GET" : {
e9cd3bd4 42150 "allowtoken" : 1,
d2656385 42151 "description" : "Scan remote CIFS server.",
4d47f125 42152 "method" : "GET",
d2656385 42153 "name" : "cifsscan",
4d47f125
TL
42154 "parameters" : {
42155 "additionalProperties" : 0,
42156 "properties" : {
d2656385
TL
42157 "domain" : {
42158 "description" : "SMB domain (Workgroup).",
42159 "optional" : 1,
42160 "type" : "string",
42161 "typetext" : "<string>"
42162 },
4d47f125
TL
42163 "node" : {
42164 "description" : "The cluster node name.",
42165 "format" : "pve-node",
42166 "type" : "string",
42167 "typetext" : "<string>"
42168 },
d2656385
TL
42169 "password" : {
42170 "description" : "User password.",
42171 "optional" : 1,
42172 "type" : "string",
42173 "typetext" : "<string>"
42174 },
4d47f125
TL
42175 "server" : {
42176 "description" : "The server address (name or IP).",
42177 "format" : "pve-storage-server",
42178 "type" : "string",
42179 "typetext" : "<string>"
d2656385
TL
42180 },
42181 "username" : {
42182 "description" : "User name.",
42183 "optional" : 1,
42184 "type" : "string",
42185 "typetext" : "<string>"
4d47f125
TL
42186 }
42187 }
42188 },
42189 "permissions" : {
42190 "check" : [
42191 "perm",
42192 "/storage",
42193 [
42194 "Datastore.Allocate"
42195 ]
42196 ]
42197 },
42198 "protected" : 1,
42199 "proxyto" : "node",
42200 "returns" : {
42201 "items" : {
42202 "properties" : {
d2656385
TL
42203 "description" : {
42204 "description" : "Descriptive text from server.",
4d47f125
TL
42205 "type" : "string"
42206 },
d2656385
TL
42207 "share" : {
42208 "description" : "The cifs share name.",
4d47f125
TL
42209 "type" : "string"
42210 }
42211 },
42212 "type" : "object"
42213 },
42214 "type" : "array"
42215 }
42216 }
42217 },
42218 "leaf" : 1,
d2656385
TL
42219 "path" : "/nodes/{node}/scan/cifs",
42220 "text" : "cifs"
4d47f125
TL
42221 },
42222 {
42223 "info" : {
42224 "GET" : {
e9cd3bd4 42225 "allowtoken" : 1,
d2656385 42226 "description" : "Scan remote Proxmox Backup Server.",
4d47f125 42227 "method" : "GET",
d2656385 42228 "name" : "pbsscan",
4d47f125
TL
42229 "parameters" : {
42230 "additionalProperties" : 0,
42231 "properties" : {
d2656385
TL
42232 "fingerprint" : {
42233 "description" : "Certificate SHA 256 fingerprint.",
4d47f125 42234 "optional" : 1,
d2656385
TL
42235 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
42236 "type" : "string"
4d47f125
TL
42237 },
42238 "node" : {
42239 "description" : "The cluster node name.",
42240 "format" : "pve-node",
42241 "type" : "string",
42242 "typetext" : "<string>"
42243 },
42244 "password" : {
d2656385 42245 "description" : "User password or API token secret.",
4d47f125
TL
42246 "type" : "string",
42247 "typetext" : "<string>"
42248 },
d2656385
TL
42249 "port" : {
42250 "default" : 8007,
42251 "description" : "Optional port.",
42252 "maximum" : 65535,
42253 "minimum" : 1,
42254 "optional" : 1,
42255 "type" : "integer",
42256 "typetext" : "<integer> (1 - 65535)"
42257 },
4d47f125
TL
42258 "server" : {
42259 "description" : "The server address (name or IP).",
42260 "format" : "pve-storage-server",
42261 "type" : "string",
42262 "typetext" : "<string>"
42263 },
42264 "username" : {
d2656385 42265 "description" : "User-name or API token-ID.",
4d47f125
TL
42266 "type" : "string",
42267 "typetext" : "<string>"
42268 }
42269 }
42270 },
42271 "permissions" : {
42272 "check" : [
42273 "perm",
42274 "/storage",
42275 [
42276 "Datastore.Allocate"
42277 ]
42278 ]
42279 },
42280 "protected" : 1,
42281 "proxyto" : "node",
42282 "returns" : {
42283 "items" : {
42284 "properties" : {
d2656385
TL
42285 "comment" : {
42286 "description" : "Comment from server.",
42287 "optional" : 1,
4d47f125
TL
42288 "type" : "string"
42289 },
d2656385
TL
42290 "store" : {
42291 "description" : "The datastore name.",
4d47f125
TL
42292 "type" : "string"
42293 }
42294 },
42295 "type" : "object"
42296 },
42297 "type" : "array"
56122987 42298 }
44660702 42299 }
56122987 42300 },
4d47f125 42301 "leaf" : 1,
d2656385
TL
42302 "path" : "/nodes/{node}/scan/pbs",
42303 "text" : "pbs"
4d47f125 42304 },
44660702 42305 {
4d47f125
TL
42306 "info" : {
42307 "GET" : {
e9cd3bd4 42308 "allowtoken" : 1,
4d47f125
TL
42309 "description" : "Scan remote GlusterFS server.",
42310 "method" : "GET",
42311 "name" : "glusterfsscan",
42312 "parameters" : {
42313 "additionalProperties" : 0,
42314 "properties" : {
42315 "node" : {
42316 "description" : "The cluster node name.",
42317 "format" : "pve-node",
42318 "type" : "string",
42319 "typetext" : "<string>"
7aacca6f 42320 },
4d47f125
TL
42321 "server" : {
42322 "description" : "The server address (name or IP).",
42323 "format" : "pve-storage-server",
42324 "type" : "string",
42325 "typetext" : "<string>"
44660702 42326 }
7aacca6f 42327 }
56122987 42328 },
4d47f125
TL
42329 "permissions" : {
42330 "check" : [
42331 "perm",
42332 "/storage",
42333 [
42334 "Datastore.Allocate"
42335 ]
42336 ]
42337 },
42338 "protected" : 1,
42339 "proxyto" : "node",
42340 "returns" : {
42341 "items" : {
42342 "properties" : {
42343 "volname" : {
42344 "description" : "The volume name.",
42345 "type" : "string"
7aacca6f
DM
42346 }
42347 },
4d47f125
TL
42348 "type" : "object"
42349 },
42350 "type" : "array"
42351 }
42352 }
42353 },
42354 "leaf" : 1,
42355 "path" : "/nodes/{node}/scan/glusterfs",
42356 "text" : "glusterfs"
42357 },
42358 {
42359 "info" : {
42360 "GET" : {
e9cd3bd4 42361 "allowtoken" : 1,
4d47f125
TL
42362 "description" : "Scan remote iSCSI server.",
42363 "method" : "GET",
42364 "name" : "iscsiscan",
42365 "parameters" : {
42366 "additionalProperties" : 0,
42367 "properties" : {
42368 "node" : {
42369 "description" : "The cluster node name.",
42370 "format" : "pve-node",
42371 "type" : "string",
42372 "typetext" : "<string>"
56122987 42373 },
4d47f125
TL
42374 "portal" : {
42375 "description" : "The iSCSI portal (IP or DNS name with optional port).",
42376 "format" : "pve-storage-portal-dns",
42377 "type" : "string",
42378 "typetext" : "<string>"
42379 }
42380 }
42381 },
42382 "permissions" : {
42383 "check" : [
42384 "perm",
42385 "/storage",
42386 [
42387 "Datastore.Allocate"
42388 ]
42389 ]
42390 },
42391 "protected" : 1,
42392 "proxyto" : "node",
42393 "returns" : {
42394 "items" : {
42395 "properties" : {
42396 "portal" : {
42397 "description" : "The iSCSI portal name.",
42398 "type" : "string"
7aacca6f 42399 },
4d47f125
TL
42400 "target" : {
42401 "description" : "The iSCSI target name.",
42402 "type" : "string"
42403 }
42404 },
42405 "type" : "object"
42406 },
42407 "type" : "array"
42408 }
42409 }
42410 },
42411 "leaf" : 1,
42412 "path" : "/nodes/{node}/scan/iscsi",
42413 "text" : "iscsi"
42414 },
42415 {
42416 "info" : {
42417 "GET" : {
e9cd3bd4 42418 "allowtoken" : 1,
4d47f125
TL
42419 "description" : "List local LVM volume groups.",
42420 "method" : "GET",
42421 "name" : "lvmscan",
42422 "parameters" : {
42423 "additionalProperties" : 0,
42424 "properties" : {
42425 "node" : {
42426 "description" : "The cluster node name.",
42427 "format" : "pve-node",
42428 "type" : "string",
42429 "typetext" : "<string>"
56122987 42430 }
7aacca6f 42431 }
44660702 42432 },
4d47f125
TL
42433 "permissions" : {
42434 "check" : [
42435 "perm",
42436 "/storage",
42437 [
42438 "Datastore.Allocate"
42439 ]
42440 ]
42441 },
42442 "protected" : 1,
42443 "proxyto" : "node",
42444 "returns" : {
42445 "items" : {
42446 "properties" : {
42447 "vg" : {
42448 "description" : "The LVM logical volume group name.",
42449 "type" : "string"
42450 }
42451 },
42452 "type" : "object"
42453 },
42454 "type" : "array"
42455 }
56122987 42456 }
4d47f125
TL
42457 },
42458 "leaf" : 1,
42459 "path" : "/nodes/{node}/scan/lvm",
42460 "text" : "lvm"
42461 },
42462 {
44660702 42463 "info" : {
4d47f125 42464 "GET" : {
e9cd3bd4 42465 "allowtoken" : 1,
4d47f125
TL
42466 "description" : "List local LVM Thin Pools.",
42467 "method" : "GET",
42468 "name" : "lvmthinscan",
44660702
DM
42469 "parameters" : {
42470 "additionalProperties" : 0,
42471 "properties" : {
42472 "node" : {
42473 "description" : "The cluster node name.",
42474 "format" : "pve-node",
013dc89f
DM
42475 "type" : "string",
42476 "typetext" : "<string>"
44660702 42477 },
4d47f125
TL
42478 "vg" : {
42479 "maxLength" : 100,
42480 "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
42481 "type" : "string"
44660702 42482 }
7aacca6f 42483 }
44660702
DM
42484 },
42485 "permissions" : {
4d47f125
TL
42486 "check" : [
42487 "perm",
42488 "/storage",
42489 [
42490 "Datastore.Allocate"
42491 ]
42492 ]
44660702
DM
42493 },
42494 "protected" : 1,
42495 "proxyto" : "node",
42496 "returns" : {
4d47f125
TL
42497 "items" : {
42498 "properties" : {
42499 "lv" : {
42500 "description" : "The LVM Thin Pool name (LVM logical volume).",
42501 "type" : "string"
42502 }
42503 },
42504 "type" : "object"
42505 },
42506 "type" : "array"
7aacca6f 42507 }
4d47f125
TL
42508 }
42509 },
42510 "leaf" : 1,
42511 "path" : "/nodes/{node}/scan/lvmthin",
42512 "text" : "lvmthin"
42513 },
d2656385
TL
42514 {
42515 "info" : {
42516 "GET" : {
42517 "allowtoken" : 1,
42518 "description" : "Scan zfs pool list on local node.",
42519 "method" : "GET",
42520 "name" : "zfsscan",
42521 "parameters" : {
42522 "additionalProperties" : 0,
42523 "properties" : {
42524 "node" : {
42525 "description" : "The cluster node name.",
42526 "format" : "pve-node",
42527 "type" : "string",
42528 "typetext" : "<string>"
42529 }
42530 }
42531 },
42532 "permissions" : {
42533 "check" : [
42534 "perm",
42535 "/storage",
42536 [
42537 "Datastore.Allocate"
42538 ]
42539 ]
42540 },
42541 "protected" : 1,
42542 "proxyto" : "node",
42543 "returns" : {
42544 "items" : {
42545 "properties" : {
42546 "pool" : {
42547 "description" : "ZFS pool name.",
42548 "type" : "string"
42549 }
42550 },
42551 "type" : "object"
42552 },
42553 "type" : "array"
42554 }
42555 }
42556 },
42557 "leaf" : 1,
42558 "path" : "/nodes/{node}/scan/zfs",
42559 "text" : "zfs"
44660702
DM
42560 }
42561 ],
42562 "info" : {
42563 "GET" : {
e9cd3bd4 42564 "allowtoken" : 1,
4d47f125 42565 "description" : "Index of available scan methods",
44660702 42566 "method" : "GET",
4d47f125 42567 "name" : "index",
56122987 42568 "parameters" : {
7aacca6f 42569 "additionalProperties" : 0,
56122987 42570 "properties" : {
56122987
DM
42571 "node" : {
42572 "description" : "The cluster node name.",
44660702 42573 "format" : "pve-node",
013dc89f
DM
42574 "type" : "string",
42575 "typetext" : "<string>"
56122987
DM
42576 }
42577 }
42578 },
7aacca6f
DM
42579 "permissions" : {
42580 "user" : "all"
42581 },
56122987
DM
42582 "returns" : {
42583 "items" : {
42584 "properties" : {
4d47f125 42585 "method" : {
56122987
DM
42586 "type" : "string"
42587 }
42588 },
42589 "type" : "object"
42590 },
56122987
DM
42591 "links" : [
42592 {
4d47f125 42593 "href" : "{method}",
44660702 42594 "rel" : "child"
56122987 42595 }
44660702
DM
42596 ],
42597 "type" : "array"
56122987
DM
42598 }
42599 }
42600 },
44660702 42601 "leaf" : 0,
4d47f125
TL
42602 "path" : "/nodes/{node}/scan",
42603 "text" : "scan"
44660702 42604 },
e2d681b3
TL
42605 {
42606 "children" : [
42607 {
42608 "children" : [
42609 {
42610 "children" : [
42611 {
42612 "info" : {
42613 "GET" : {
e9cd3bd4 42614 "allowtoken" : 1,
e2d681b3
TL
42615 "description" : "List mediated device types for given PCI device.",
42616 "method" : "GET",
42617 "name" : "mdevscan",
42618 "parameters" : {
42619 "additionalProperties" : 0,
42620 "properties" : {
42621 "node" : {
42622 "description" : "The cluster node name.",
42623 "format" : "pve-node",
42624 "type" : "string",
42625 "typetext" : "<string>"
42626 },
42627 "pciid" : {
42628 "description" : "The PCI ID to list the mdev types for.",
42629 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
42630 "type" : "string"
42631 }
42632 }
42633 },
42634 "permissions" : {
42635 "check" : [
42636 "perm",
42637 "/",
42638 [
9d2e98ed 42639 "Sys.Audit",
e2d681b3 42640 "Sys.Modify"
9d2e98ed
TL
42641 ],
42642 "any",
42643 1
e2d681b3
TL
42644 ]
42645 },
42646 "protected" : 1,
42647 "proxyto" : "node",
42648 "returns" : {
42649 "items" : {
42650 "properties" : {
42651 "available" : {
42652 "description" : "The number of still available instances of this type.",
42653 "type" : "integer"
42654 },
42655 "description" : {
42656 "type" : "string"
42657 },
42658 "type" : {
42659 "description" : "The name of the mdev type.",
42660 "type" : "string"
42661 }
42662 },
42663 "type" : "object"
42664 },
42665 "type" : "array"
42666 }
42667 }
42668 },
42669 "leaf" : 1,
42670 "path" : "/nodes/{node}/hardware/pci/{pciid}/mdev",
42671 "text" : "mdev"
42672 }
42673 ],
42674 "info" : {
42675 "GET" : {
e9cd3bd4 42676 "allowtoken" : 1,
e2d681b3
TL
42677 "description" : "Index of available pci methods",
42678 "method" : "GET",
42679 "name" : "pciindex",
42680 "parameters" : {
42681 "additionalProperties" : 0,
42682 "properties" : {
42683 "node" : {
42684 "description" : "The cluster node name.",
42685 "format" : "pve-node",
42686 "type" : "string",
42687 "typetext" : "<string>"
42688 },
42689 "pciid" : {
42690 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
42691 "type" : "string"
42692 }
42693 }
42694 },
42695 "permissions" : {
42696 "user" : "all"
42697 },
42698 "returns" : {
42699 "items" : {
42700 "properties" : {
42701 "method" : {
42702 "type" : "string"
42703 }
42704 },
42705 "type" : "object"
42706 },
42707 "links" : [
42708 {
42709 "href" : "{method}",
42710 "rel" : "child"
42711 }
42712 ],
42713 "type" : "array"
42714 }
42715 }
42716 },
42717 "leaf" : 0,
42718 "path" : "/nodes/{node}/hardware/pci/{pciid}",
42719 "text" : "{pciid}"
42720 }
42721 ],
42722 "info" : {
42723 "GET" : {
e9cd3bd4 42724 "allowtoken" : 1,
e2d681b3
TL
42725 "description" : "List local PCI devices.",
42726 "method" : "GET",
42727 "name" : "pciscan",
42728 "parameters" : {
42729 "additionalProperties" : 0,
42730 "properties" : {
42731 "node" : {
42732 "description" : "The cluster node name.",
42733 "format" : "pve-node",
42734 "type" : "string",
42735 "typetext" : "<string>"
42736 },
42737 "pci-class-blacklist" : {
5370fa8c
TL
42738 "default" : "05;06;0b",
42739 "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
42740 "format" : "string-list",
42741 "optional" : 1,
42742 "type" : "string",
42743 "typetext" : "<string>"
42744 },
42745 "verbose" : {
42746 "default" : 1,
42747 "description" : "If disabled, does only print the PCI IDs. Otherwise, additional information like vendor and device will be returned.",
42748 "optional" : 1,
42749 "type" : "boolean",
42750 "typetext" : "<boolean>"
42751 }
42752 }
42753 },
42754 "permissions" : {
42755 "check" : [
42756 "perm",
42757 "/",
42758 [
9d2e98ed 42759 "Sys.Audit",
e2d681b3 42760 "Sys.Modify"
9d2e98ed
TL
42761 ],
42762 "any",
42763 1
e2d681b3
TL
42764 ]
42765 },
42766 "protected" : 1,
42767 "proxyto" : "node",
42768 "returns" : {
42769 "items" : {
42770 "properties" : {
42771 "class" : {
42772 "description" : "The PCI Class of the device.",
42773 "type" : "string"
42774 },
42775 "device" : {
42776 "description" : "The Device ID.",
42777 "type" : "string"
42778 },
42779 "device_name" : {
42780 "optional" : 1,
42781 "type" : "string"
42782 },
42783 "id" : {
42784 "description" : "The PCI ID.",
42785 "type" : "string"
42786 },
42787 "iommugroup" : {
42788 "description" : "The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.",
42789 "type" : "integer"
42790 },
42791 "mdev" : {
42792 "description" : "If set, marks that the device is capable of creating mediated devices.",
42793 "optional" : 1,
42794 "type" : "boolean"
42795 },
42796 "subsystem_device" : {
42797 "description" : "The Subsystem Device ID.",
42798 "optional" : 1,
42799 "type" : "string"
42800 },
42801 "subsystem_device_name" : {
42802 "optional" : 1,
42803 "type" : "string"
42804 },
42805 "subsystem_vendor" : {
42806 "description" : "The Subsystem Vendor ID.",
42807 "optional" : 1,
42808 "type" : "string"
42809 },
42810 "subsystem_vendor_name" : {
42811 "optional" : 1,
42812 "type" : "string"
42813 },
42814 "vendor" : {
42815 "description" : "The Vendor ID.",
42816 "type" : "string"
42817 },
42818 "vendor_name" : {
42819 "optional" : 1,
42820 "type" : "string"
42821 }
42822 },
42823 "type" : "object"
42824 },
42825 "links" : [
42826 {
42827 "href" : "{id}",
42828 "rel" : "child"
42829 }
42830 ],
42831 "type" : "array"
42832 }
42833 }
42834 },
42835 "leaf" : 0,
42836 "path" : "/nodes/{node}/hardware/pci",
42837 "text" : "pci"
d2656385
TL
42838 },
42839 {
42840 "info" : {
42841 "GET" : {
42842 "allowtoken" : 1,
42843 "description" : "List local USB devices.",
42844 "method" : "GET",
42845 "name" : "usbscan",
42846 "parameters" : {
42847 "additionalProperties" : 0,
42848 "properties" : {
42849 "node" : {
42850 "description" : "The cluster node name.",
42851 "format" : "pve-node",
42852 "type" : "string",
42853 "typetext" : "<string>"
42854 }
42855 }
42856 },
42857 "permissions" : {
42858 "check" : [
42859 "perm",
42860 "/",
42861 [
42862 "Sys.Modify"
42863 ]
42864 ]
42865 },
42866 "protected" : 1,
42867 "proxyto" : "node",
42868 "returns" : {
42869 "items" : {
42870 "properties" : {
42871 "busnum" : {
42872 "type" : "integer"
42873 },
42874 "class" : {
42875 "type" : "integer"
42876 },
42877 "devnum" : {
42878 "type" : "integer"
42879 },
42880 "level" : {
42881 "type" : "integer"
42882 },
42883 "manufacturer" : {
42884 "optional" : 1,
42885 "type" : "string"
42886 },
42887 "port" : {
42888 "type" : "integer"
42889 },
42890 "prodid" : {
42891 "type" : "string"
42892 },
42893 "product" : {
42894 "optional" : 1,
42895 "type" : "string"
42896 },
42897 "serial" : {
42898 "optional" : 1,
42899 "type" : "string"
42900 },
42901 "speed" : {
42902 "type" : "string"
42903 },
42904 "usbpath" : {
42905 "optional" : 1,
42906 "type" : "string"
42907 },
42908 "vendid" : {
42909 "type" : "string"
42910 }
42911 },
42912 "type" : "object"
42913 },
42914 "type" : "array"
42915 }
42916 }
42917 },
42918 "leaf" : 1,
42919 "path" : "/nodes/{node}/hardware/usb",
42920 "text" : "usb"
e2d681b3
TL
42921 }
42922 ],
42923 "info" : {
42924 "GET" : {
e9cd3bd4 42925 "allowtoken" : 1,
e2d681b3
TL
42926 "description" : "Index of hardware types",
42927 "method" : "GET",
42928 "name" : "index",
42929 "parameters" : {
42930 "additionalProperties" : 0,
42931 "properties" : {
42932 "node" : {
42933 "description" : "The cluster node name.",
42934 "format" : "pve-node",
42935 "type" : "string",
42936 "typetext" : "<string>"
42937 }
42938 }
42939 },
42940 "permissions" : {
42941 "user" : "all"
42942 },
42943 "returns" : {
42944 "items" : {
42945 "properties" : {
42946 "type" : {
42947 "type" : "string"
42948 }
42949 },
42950 "type" : "object"
42951 },
42952 "links" : [
42953 {
42954 "href" : "{type}",
42955 "rel" : "child"
42956 }
42957 ],
42958 "type" : "array"
42959 }
42960 }
42961 },
42962 "leaf" : 0,
42963 "path" : "/nodes/{node}/hardware",
42964 "text" : "hardware"
42965 },
d2656385
TL
42966 {
42967 "children" : [
42968 {
42969 "children" : [
0695fdaf
TL
42970 {
42971 "info" : {
42972 "GET" : {
42973 "allowtoken" : 1,
42974 "description" : "List all custom and default CPU models.",
42975 "method" : "GET",
42976 "name" : "index",
42977 "parameters" : {
42978 "additionalProperties" : 0,
42979 "properties" : {
42980 "node" : {
42981 "description" : "The cluster node name.",
42982 "format" : "pve-node",
42983 "type" : "string",
42984 "typetext" : "<string>"
42985 }
42986 }
42987 },
42988 "permissions" : {
42989 "description" : "Only returns custom models when the current user has Sys.Audit on /nodes.",
42990 "user" : "all"
42991 },
42992 "returns" : {
42993 "items" : {
42994 "properties" : {
42995 "custom" : {
42996 "description" : "True if this is a custom CPU model.",
42997 "type" : "boolean"
42998 },
42999 "name" : {
43000 "description" : "Name of the CPU model. Identifies it for subsequent API calls. Prefixed with 'custom-' for custom models.",
43001 "type" : "string"
43002 },
43003 "vendor" : {
43004 "description" : "CPU vendor visible to the guest when this model is selected. Vendor of 'reported-model' in case of custom models.",
43005 "type" : "string"
43006 }
43007 },
43008 "type" : "object"
43009 },
43010 "links" : [
43011 {
43012 "href" : "{name}",
43013 "rel" : "child"
43014 }
43015 ],
43016 "type" : "array"
43017 }
43018 }
43019 },
43020 "leaf" : 1,
43021 "path" : "/nodes/{node}/capabilities/qemu/cpu",
43022 "text" : "cpu"
43023 },
d2656385
TL
43024 {
43025 "info" : {
43026 "GET" : {
43027 "allowtoken" : 1,
43028 "description" : "Get available QEMU/KVM machine types.",
43029 "method" : "GET",
43030 "name" : "types",
43031 "parameters" : {
43032 "additionalProperties" : 0,
43033 "properties" : {
43034 "node" : {
43035 "description" : "The cluster node name.",
43036 "format" : "pve-node",
43037 "type" : "string",
43038 "typetext" : "<string>"
43039 }
43040 }
43041 },
43042 "permissions" : {
43043 "user" : "all"
43044 },
43045 "proxyto" : "node",
43046 "returns" : {
43047 "items" : {
43048 "additionalProperties" : 1,
43049 "properties" : {
43050 "id" : {
43051 "description" : "Full name of machine type and version.",
43052 "type" : "string"
43053 },
43054 "type" : {
43055 "description" : "The machine type.",
43056 "enum" : [
43057 "q35",
43058 "i440fx"
43059 ],
43060 "type" : "string"
43061 },
43062 "version" : {
43063 "description" : "The machine version.",
43064 "type" : "string"
43065 }
43066 },
43067 "type" : "object"
43068 },
43069 "type" : "array"
43070 }
43071 }
43072 },
43073 "leaf" : 1,
43074 "path" : "/nodes/{node}/capabilities/qemu/machines",
43075 "text" : "machines"
43076 }
43077 ],
43078 "info" : {
43079 "GET" : {
43080 "allowtoken" : 1,
43081 "description" : "QEMU capabilities index.",
43082 "method" : "GET",
43083 "name" : "qemu_caps_index",
43084 "parameters" : {
43085 "additionalProperties" : 0,
43086 "properties" : {
43087 "node" : {
43088 "description" : "The cluster node name.",
43089 "format" : "pve-node",
43090 "type" : "string",
43091 "typetext" : "<string>"
43092 }
43093 }
43094 },
43095 "permissions" : {
43096 "user" : "all"
43097 },
43098 "returns" : {
43099 "items" : {
43100 "properties" : {},
43101 "type" : "object"
43102 },
43103 "links" : [
43104 {
43105 "href" : "{name}",
43106 "rel" : "child"
43107 }
43108 ],
43109 "type" : "array"
43110 }
43111 }
43112 },
43113 "leaf" : 0,
43114 "path" : "/nodes/{node}/capabilities/qemu",
43115 "text" : "qemu"
43116 }
43117 ],
43118 "info" : {
43119 "GET" : {
43120 "allowtoken" : 1,
43121 "description" : "Node capabilities index.",
43122 "method" : "GET",
43123 "name" : "index",
43124 "parameters" : {
43125 "additionalProperties" : 0,
43126 "properties" : {
43127 "node" : {
43128 "description" : "The cluster node name.",
43129 "format" : "pve-node",
43130 "type" : "string",
43131 "typetext" : "<string>"
43132 }
43133 }
43134 },
43135 "permissions" : {
43136 "user" : "all"
43137 },
43138 "returns" : {
43139 "items" : {
43140 "properties" : {},
43141 "type" : "object"
43142 },
43143 "links" : [
43144 {
43145 "href" : "{name}",
43146 "rel" : "child"
43147 }
43148 ],
43149 "type" : "array"
43150 }
43151 }
43152 },
43153 "leaf" : 0,
43154 "path" : "/nodes/{node}/capabilities",
43155 "text" : "capabilities"
43156 },
44660702 43157 {
56122987
DM
43158 "children" : [
43159 {
4d47f125 43160 "children" : [
739d4d64
TL
43161 {
43162 "info" : {
43163 "DELETE" : {
43164 "allowtoken" : 1,
43165 "description" : "Prune backups. Only those using the standard naming scheme are considered.",
43166 "method" : "DELETE",
43167 "name" : "delete",
43168 "parameters" : {
43169 "additionalProperties" : 0,
43170 "properties" : {
43171 "node" : {
43172 "description" : "The cluster node name.",
43173 "format" : "pve-node",
43174 "type" : "string",
43175 "typetext" : "<string>"
43176 },
43177 "prune-backups" : {
43178 "description" : "Use these retention options instead of those from the storage configuration.",
43179 "format" : "prune-backups",
43180 "optional" : 1,
43181 "type" : "string",
4772952b 43182 "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
43183 },
43184 "storage" : {
43185 "description" : "The storage identifier.",
43186 "format" : "pve-storage-id",
43187 "type" : "string",
43188 "typetext" : "<string>"
43189 },
43190 "type" : {
43191 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
43192 "enum" : [
43193 "qemu",
43194 "lxc"
43195 ],
43196 "optional" : 1,
43197 "type" : "string"
43198 },
43199 "vmid" : {
43200 "description" : "Only prune backups for this VM.",
43201 "format" : "pve-vmid",
8dd66e12
TL
43202 "maximum" : 999999999,
43203 "minimum" : 100,
739d4d64
TL
43204 "optional" : 1,
43205 "type" : "integer",
8dd66e12 43206 "typetext" : "<integer> (100 - 999999999)"
739d4d64
TL
43207 }
43208 }
43209 },
43210 "permissions" : {
43211 "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).",
43212 "user" : "all"
43213 },
43214 "protected" : 1,
43215 "proxyto" : "node",
43216 "returns" : {
43217 "type" : "string"
43218 }
43219 },
43220 "GET" : {
43221 "allowtoken" : 1,
4772952b 43222 "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
43223 "method" : "GET",
43224 "name" : "dryrun",
43225 "parameters" : {
43226 "additionalProperties" : 0,
43227 "properties" : {
43228 "node" : {
43229 "description" : "The cluster node name.",
43230 "format" : "pve-node",
43231 "type" : "string",
43232 "typetext" : "<string>"
43233 },
43234 "prune-backups" : {
43235 "description" : "Use these retention options instead of those from the storage configuration.",
43236 "format" : "prune-backups",
43237 "optional" : 1,
43238 "type" : "string",
4772952b 43239 "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
43240 },
43241 "storage" : {
43242 "description" : "The storage identifier.",
43243 "format" : "pve-storage-id",
43244 "type" : "string",
43245 "typetext" : "<string>"
43246 },
43247 "type" : {
43248 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
43249 "enum" : [
43250 "qemu",
43251 "lxc"
43252 ],
43253 "optional" : 1,
43254 "type" : "string"
43255 },
43256 "vmid" : {
43257 "description" : "Only consider backups for this guest.",
43258 "format" : "pve-vmid",
8dd66e12
TL
43259 "maximum" : 999999999,
43260 "minimum" : 100,
739d4d64
TL
43261 "optional" : 1,
43262 "type" : "integer",
8dd66e12 43263 "typetext" : "<integer> (100 - 999999999)"
739d4d64
TL
43264 }
43265 }
43266 },
43267 "permissions" : {
43268 "check" : [
43269 "perm",
43270 "/storage/{storage}",
43271 [
43272 "Datastore.Audit",
43273 "Datastore.AllocateSpace"
43274 ],
43275 "any",
43276 1
43277 ]
43278 },
43279 "protected" : 1,
43280 "proxyto" : "node",
43281 "returns" : {
43282 "items" : {
43283 "properties" : {
43284 "ctime" : {
43285 "description" : "Creation time of the backup (seconds since the UNIX epoch).",
43286 "type" : "integer"
43287 },
43288 "mark" : {
5370fa8c
TL
43289 "description" : "Whether the backup would be kept or removed. Backups that are protected or don't use the standard naming scheme are not removed.",
43290 "enum" : [
43291 "keep",
43292 "remove",
43293 "protected",
43294 "renamed"
43295 ],
739d4d64
TL
43296 "type" : "string"
43297 },
43298 "type" : {
43299 "description" : "One of 'qemu', 'lxc', 'openvz' or 'unknown'.",
43300 "type" : "string"
43301 },
43302 "vmid" : {
43303 "description" : "The VM the backup belongs to.",
43304 "optional" : 1,
43305 "type" : "integer"
43306 },
43307 "volid" : {
43308 "description" : "Backup volume ID.",
43309 "type" : "string"
43310 }
43311 },
43312 "type" : "object"
43313 },
43314 "type" : "array"
43315 }
43316 }
43317 },
43318 "leaf" : 1,
43319 "path" : "/nodes/{node}/storage/{storage}/prunebackups",
43320 "text" : "prunebackups"
43321 },
4d47f125
TL
43322 {
43323 "children" : [
43324 {
43325 "info" : {
43326 "DELETE" : {
e9cd3bd4 43327 "allowtoken" : 1,
4d47f125
TL
43328 "description" : "Delete volume",
43329 "method" : "DELETE",
43330 "name" : "delete",
43331 "parameters" : {
43332 "additionalProperties" : 0,
43333 "properties" : {
1c532546
TL
43334 "delay" : {
43335 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
43336 "maximum" : 30,
43337 "minimum" : 1,
43338 "optional" : 1,
43339 "type" : "integer",
43340 "typetext" : "<integer> (1 - 30)"
43341 },
4d47f125
TL
43342 "node" : {
43343 "description" : "The cluster node name.",
43344 "format" : "pve-node",
43345 "type" : "string",
43346 "typetext" : "<string>"
43347 },
43348 "storage" : {
43349 "description" : "The storage identifier.",
43350 "format" : "pve-storage-id",
43351 "optional" : 1,
43352 "type" : "string",
43353 "typetext" : "<string>"
43354 },
43355 "volume" : {
43356 "description" : "Volume identifier",
43357 "type" : "string",
43358 "typetext" : "<string>"
43359 }
43360 }
43361 },
43362 "permissions" : {
43363 "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
43364 "user" : "all"
43365 },
43366 "protected" : 1,
43367 "proxyto" : "node",
43368 "returns" : {
1c532546
TL
43369 "optional" : 1,
43370 "type" : "string"
4d47f125
TL
43371 }
43372 },
43373 "GET" : {
e9cd3bd4 43374 "allowtoken" : 1,
4d47f125
TL
43375 "description" : "Get volume attributes",
43376 "method" : "GET",
43377 "name" : "info",
43378 "parameters" : {
43379 "additionalProperties" : 0,
43380 "properties" : {
43381 "node" : {
43382 "description" : "The cluster node name.",
43383 "format" : "pve-node",
43384 "type" : "string",
43385 "typetext" : "<string>"
43386 },
43387 "storage" : {
43388 "description" : "The storage identifier.",
43389 "format" : "pve-storage-id",
43390 "optional" : 1,
43391 "type" : "string",
43392 "typetext" : "<string>"
43393 },
43394 "volume" : {
43395 "description" : "Volume identifier",
43396 "type" : "string",
43397 "typetext" : "<string>"
43398 }
43399 }
43400 },
43401 "permissions" : {
43402 "description" : "You need read access for the volume.",
43403 "user" : "all"
43404 },
43405 "protected" : 1,
43406 "proxyto" : "node",
43407 "returns" : {
4772952b
TL
43408 "properties" : {
43409 "format" : {
43410 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
43411 "type" : "string"
43412 },
43413 "notes" : {
43414 "description" : "Optional notes.",
43415 "optional" : 1,
43416 "type" : "string"
43417 },
43418 "path" : {
43419 "description" : "The Path",
43420 "type" : "string"
43421 },
5370fa8c
TL
43422 "protected" : {
43423 "description" : "Protection status. Currently only supported for backups.",
43424 "optional" : 1,
43425 "type" : "boolean"
43426 },
4772952b
TL
43427 "size" : {
43428 "description" : "Volume size in bytes.",
43429 "renderer" : "bytes",
43430 "type" : "integer"
43431 },
43432 "used" : {
43433 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
43434 "renderer" : "bytes",
43435 "type" : "integer"
43436 }
43437 },
4d47f125
TL
43438 "type" : "object"
43439 }
43440 },
43441 "POST" : {
e9cd3bd4 43442 "allowtoken" : 1,
4d47f125
TL
43443 "description" : "Copy a volume. This is experimental code - do not use.",
43444 "method" : "POST",
43445 "name" : "copy",
43446 "parameters" : {
43447 "additionalProperties" : 0,
43448 "properties" : {
43449 "node" : {
43450 "description" : "The cluster node name.",
43451 "format" : "pve-node",
43452 "type" : "string",
43453 "typetext" : "<string>"
43454 },
43455 "storage" : {
43456 "description" : "The storage identifier.",
43457 "format" : "pve-storage-id",
43458 "optional" : 1,
43459 "type" : "string",
43460 "typetext" : "<string>"
43461 },
43462 "target" : {
43463 "description" : "Target volume identifier",
43464 "type" : "string",
43465 "typetext" : "<string>"
43466 },
43467 "target_node" : {
43468 "description" : "Target node. Default is local node.",
43469 "format" : "pve-node",
43470 "optional" : 1,
43471 "type" : "string",
43472 "typetext" : "<string>"
43473 },
43474 "volume" : {
43475 "description" : "Source volume identifier",
43476 "type" : "string",
43477 "typetext" : "<string>"
43478 }
43479 }
43480 },
43481 "protected" : 1,
43482 "proxyto" : "node",
43483 "returns" : {
43484 "type" : "string"
43485 }
4772952b
TL
43486 },
43487 "PUT" : {
43488 "allowtoken" : 1,
43489 "description" : "Update volume attributes",
43490 "method" : "PUT",
43491 "name" : "updateattributes",
43492 "parameters" : {
43493 "additionalProperties" : 0,
43494 "properties" : {
43495 "node" : {
43496 "description" : "The cluster node name.",
43497 "format" : "pve-node",
43498 "type" : "string",
43499 "typetext" : "<string>"
43500 },
43501 "notes" : {
43502 "description" : "The new notes.",
43503 "optional" : 1,
43504 "type" : "string",
43505 "typetext" : "<string>"
43506 },
5370fa8c
TL
43507 "protected" : {
43508 "description" : "Protection status. Currently only supported for backups.",
43509 "optional" : 1,
43510 "type" : "boolean",
43511 "typetext" : "<boolean>"
43512 },
4772952b
TL
43513 "storage" : {
43514 "description" : "The storage identifier.",
43515 "format" : "pve-storage-id",
43516 "optional" : 1,
43517 "type" : "string",
43518 "typetext" : "<string>"
43519 },
43520 "volume" : {
43521 "description" : "Volume identifier",
43522 "type" : "string",
43523 "typetext" : "<string>"
43524 }
43525 }
43526 },
43527 "permissions" : {
43528 "description" : "You need read access for the volume.",
43529 "user" : "all"
43530 },
43531 "protected" : 1,
43532 "proxyto" : "node",
43533 "returns" : {
43534 "type" : "null"
43535 }
4d47f125
TL
43536 }
43537 },
43538 "leaf" : 1,
43539 "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
43540 "text" : "{volume}"
44660702 43541 }
4d47f125
TL
43542 ],
43543 "info" : {
43544 "GET" : {
e9cd3bd4 43545 "allowtoken" : 1,
4d47f125
TL
43546 "description" : "List storage content.",
43547 "method" : "GET",
43548 "name" : "index",
43549 "parameters" : {
43550 "additionalProperties" : 0,
43551 "properties" : {
43552 "content" : {
43553 "description" : "Only list content of this type.",
43554 "format" : "pve-storage-content",
43555 "optional" : 1,
43556 "type" : "string",
43557 "typetext" : "<string>"
43558 },
43559 "node" : {
43560 "description" : "The cluster node name.",
43561 "format" : "pve-node",
43562 "type" : "string",
43563 "typetext" : "<string>"
43564 },
43565 "storage" : {
43566 "description" : "The storage identifier.",
43567 "format" : "pve-storage-id",
43568 "type" : "string",
43569 "typetext" : "<string>"
43570 },
43571 "vmid" : {
43572 "description" : "Only list images for this VM",
43573 "format" : "pve-vmid",
8dd66e12
TL
43574 "maximum" : 999999999,
43575 "minimum" : 100,
4d47f125
TL
43576 "optional" : 1,
43577 "type" : "integer",
8dd66e12 43578 "typetext" : "<integer> (100 - 999999999)"
4d47f125 43579 }
56122987 43580 }
44660702 43581 },
4d47f125
TL
43582 "permissions" : {
43583 "check" : [
43584 "perm",
43585 "/storage/{storage}",
43586 [
43587 "Datastore.Audit",
43588 "Datastore.AllocateSpace"
43589 ],
43590 "any",
43591 1
43592 ]
7aacca6f 43593 },
4d47f125
TL
43594 "protected" : 1,
43595 "proxyto" : "node",
43596 "returns" : {
43597 "items" : {
43598 "properties" : {
c5aa7e14
TL
43599 "ctime" : {
43600 "description" : "Creation time (seconds since the UNIX Epoch).",
43601 "minimum" : 0,
43602 "optional" : 1,
43603 "type" : "integer"
43604 },
d2656385
TL
43605 "encrypted" : {
43606 "description" : "If whole backup is encrypted, value is the fingerprint or '1' if encrypted. Only useful for the Proxmox Backup Server storage type.",
43607 "optional" : 1,
43608 "type" : "string"
43609 },
4d47f125
TL
43610 "format" : {
43611 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
43612 "type" : "string"
43613 },
4772952b
TL
43614 "notes" : {
43615 "description" : "Optional notes. If they contain multiple lines, only the first one is returned here.",
43616 "optional" : 1,
43617 "type" : "string"
43618 },
4d47f125
TL
43619 "parent" : {
43620 "description" : "Volume identifier of parent (for linked cloned).",
43621 "optional" : 1,
43622 "type" : "string"
43623 },
5370fa8c
TL
43624 "protected" : {
43625 "description" : "Protection status. Currently only supported for backups.",
43626 "optional" : 1,
43627 "type" : "boolean"
43628 },
4d47f125
TL
43629 "size" : {
43630 "description" : "Volume size in bytes.",
43631 "renderer" : "bytes",
43632 "type" : "integer"
43633 },
43634 "used" : {
c5aa7e14 43635 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
4d47f125
TL
43636 "optional" : 1,
43637 "renderer" : "bytes",
43638 "type" : "integer"
43639 },
4772952b
TL
43640 "verification" : {
43641 "description" : "Last backup verification result, only useful for PBS storages.",
43642 "optional" : 1,
43643 "properties" : {
43644 "state" : {
43645 "description" : "Last backup verification state.",
43646 "type" : "string"
43647 },
43648 "upid" : {
43649 "description" : "Last backup verification UPID.",
43650 "type" : "string"
43651 }
43652 },
43653 "type" : "object"
43654 },
4d47f125
TL
43655 "vmid" : {
43656 "description" : "Associated Owner VMID.",
43657 "optional" : 1,
43658 "type" : "integer"
43659 },
43660 "volid" : {
43661 "description" : "Volume identifier.",
43662 "type" : "string"
43663 }
43664 },
43665 "type" : "object"
44660702 43666 },
4d47f125
TL
43667 "links" : [
43668 {
43669 "href" : "{volid}",
43670 "rel" : "child"
43671 }
43672 ],
43673 "type" : "array"
43674 }
43675 },
43676 "POST" : {
e9cd3bd4 43677 "allowtoken" : 1,
4d47f125
TL
43678 "description" : "Allocate disk images.",
43679 "method" : "POST",
43680 "name" : "create",
43681 "parameters" : {
43682 "additionalProperties" : 0,
43683 "properties" : {
43684 "filename" : {
43685 "description" : "The name of the file to create.",
43686 "type" : "string",
43687 "typetext" : "<string>"
43688 },
43689 "format" : {
43690 "enum" : [
43691 "raw",
43692 "qcow2",
43693 "subvol"
43694 ],
43695 "optional" : 1,
43696 "requires" : "size",
43697 "type" : "string"
43698 },
43699 "node" : {
43700 "description" : "The cluster node name.",
43701 "format" : "pve-node",
43702 "type" : "string",
43703 "typetext" : "<string>"
43704 },
43705 "size" : {
43706 "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
43707 "pattern" : "\\d+[MG]?",
43708 "type" : "string"
43709 },
43710 "storage" : {
43711 "description" : "The storage identifier.",
43712 "format" : "pve-storage-id",
43713 "type" : "string",
43714 "typetext" : "<string>"
43715 },
43716 "vmid" : {
43717 "description" : "Specify owner VM",
43718 "format" : "pve-vmid",
8dd66e12
TL
43719 "maximum" : 999999999,
43720 "minimum" : 100,
4d47f125 43721 "type" : "integer",
8dd66e12 43722 "typetext" : "<integer> (100 - 999999999)"
4d47f125 43723 }
44660702
DM
43724 }
43725 },
4d47f125
TL
43726 "permissions" : {
43727 "check" : [
43728 "perm",
43729 "/storage/{storage}",
43730 [
43731 "Datastore.AllocateSpace"
43732 ]
43733 ]
27a7acb2 43734 },
4d47f125
TL
43735 "protected" : 1,
43736 "proxyto" : "node",
43737 "returns" : {
43738 "description" : "Volume identifier",
43739 "type" : "string"
27a7acb2
DM
43740 }
43741 }
43742 },
4d47f125
TL
43743 "leaf" : 0,
43744 "path" : "/nodes/{node}/storage/{storage}/content",
43745 "text" : "content"
43746 },
d2656385
TL
43747 {
43748 "children" : [
43749 {
43750 "info" : {
43751 "GET" : {
43752 "allowtoken" : 1,
43753 "description" : "List files and directories for single file restore under the given path.",
43754 "method" : "GET",
43755 "name" : "list",
43756 "parameters" : {
43757 "additionalProperties" : 0,
43758 "properties" : {
43759 "filepath" : {
43760 "description" : "base64-path to the directory or file being listed, or \"/\".",
43761 "type" : "string",
43762 "typetext" : "<string>"
43763 },
43764 "node" : {
43765 "description" : "The cluster node name.",
43766 "format" : "pve-node",
43767 "type" : "string",
43768 "typetext" : "<string>"
43769 },
43770 "storage" : {
43771 "description" : "The storage identifier.",
43772 "format" : "pve-storage-id",
43773 "type" : "string",
43774 "typetext" : "<string>"
43775 },
43776 "volume" : {
43777 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
43778 "type" : "string",
43779 "typetext" : "<string>"
43780 }
43781 }
43782 },
43783 "permissions" : {
43784 "description" : "You need read access for the volume.",
43785 "user" : "all"
43786 },
43787 "protected" : 1,
43788 "proxyto" : "node",
43789 "returns" : {
43790 "items" : {
43791 "properties" : {
43792 "filepath" : {
43793 "description" : "base64 path of the current entry",
43794 "type" : "string"
43795 },
43796 "leaf" : {
43797 "description" : "If this entry is a leaf in the directory graph.",
43798 "type" : "boolean"
43799 },
43800 "mtime" : {
43801 "description" : "Entry last-modified time (unix timestamp).",
43802 "optional" : 1,
43803 "type" : "integer"
43804 },
43805 "size" : {
43806 "description" : "Entry file size.",
43807 "optional" : 1,
43808 "type" : "integer"
43809 },
43810 "text" : {
43811 "description" : "Entry display text.",
43812 "type" : "string"
43813 },
43814 "type" : {
43815 "description" : "Entry type.",
43816 "type" : "string"
43817 }
43818 },
43819 "type" : "object"
43820 },
43821 "type" : "array"
43822 }
43823 }
43824 },
43825 "leaf" : 1,
43826 "path" : "/nodes/{node}/storage/{storage}/file-restore/list",
43827 "text" : "list"
43828 },
43829 {
43830 "info" : {
43831 "GET" : {
43832 "allowtoken" : 1,
43833 "description" : "Extract a file or directory (as zip archive) from a PBS backup.",
43834 "method" : "GET",
43835 "name" : "download",
43836 "parameters" : {
43837 "additionalProperties" : 0,
43838 "properties" : {
43839 "filepath" : {
43840 "description" : "base64-path to the directory or file to download.",
43841 "type" : "string",
43842 "typetext" : "<string>"
43843 },
43844 "node" : {
43845 "description" : "The cluster node name.",
43846 "format" : "pve-node",
43847 "type" : "string",
43848 "typetext" : "<string>"
43849 },
43850 "storage" : {
43851 "description" : "The storage identifier.",
43852 "format" : "pve-storage-id",
43853 "type" : "string",
43854 "typetext" : "<string>"
43855 },
bd92b745
TL
43856 "tar" : {
43857 "default" : 0,
43858 "description" : "Download dirs as 'tar.zst' instead of 'zip'.",
43859 "optional" : 1,
43860 "type" : "boolean",
43861 "typetext" : "<boolean>"
43862 },
d2656385
TL
43863 "volume" : {
43864 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
43865 "type" : "string",
43866 "typetext" : "<string>"
43867 }
43868 }
43869 },
43870 "permissions" : {
43871 "description" : "You need read access for the volume.",
43872 "user" : "all"
43873 },
43874 "protected" : 1,
43875 "proxyto" : "node",
43876 "returns" : {
43877 "type" : "any"
43878 }
43879 }
43880 },
43881 "leaf" : 1,
43882 "path" : "/nodes/{node}/storage/{storage}/file-restore/download",
43883 "text" : "download"
43884 }
43885 ],
43886 "leaf" : 0,
43887 "path" : "/nodes/{node}/storage/{storage}/file-restore",
43888 "text" : "file-restore"
43889 },
4d47f125
TL
43890 {
43891 "info" : {
43892 "GET" : {
e9cd3bd4 43893 "allowtoken" : 1,
4d47f125
TL
43894 "description" : "Read storage status.",
43895 "method" : "GET",
43896 "name" : "read_status",
43897 "parameters" : {
43898 "additionalProperties" : 0,
43899 "properties" : {
43900 "node" : {
43901 "description" : "The cluster node name.",
43902 "format" : "pve-node",
43903 "type" : "string",
43904 "typetext" : "<string>"
43905 },
43906 "storage" : {
43907 "description" : "The storage identifier.",
43908 "format" : "pve-storage-id",
43909 "type" : "string",
43910 "typetext" : "<string>"
43911 }
27a7acb2
DM
43912 }
43913 },
4d47f125
TL
43914 "permissions" : {
43915 "check" : [
43916 "perm",
43917 "/storage/{storage}",
43918 [
43919 "Datastore.Audit",
43920 "Datastore.AllocateSpace"
43921 ],
43922 "any",
43923 1
43924 ]
7aacca6f 43925 },
4d47f125
TL
43926 "protected" : 1,
43927 "proxyto" : "node",
43928 "returns" : {
43929 "type" : "object"
56122987 43930 }
44660702
DM
43931 }
43932 },
4d47f125
TL
43933 "leaf" : 1,
43934 "path" : "/nodes/{node}/storage/{storage}/status",
43935 "text" : "status"
43936 },
43937 {
43938 "info" : {
43939 "GET" : {
e9cd3bd4 43940 "allowtoken" : 1,
4d47f125
TL
43941 "description" : "Read storage RRD statistics (returns PNG).",
43942 "method" : "GET",
43943 "name" : "rrd",
43944 "parameters" : {
43945 "additionalProperties" : 0,
43946 "properties" : {
43947 "cf" : {
43948 "description" : "The RRD consolidation function",
43949 "enum" : [
43950 "AVERAGE",
43951 "MAX"
43952 ],
43953 "optional" : 1,
43954 "type" : "string"
43955 },
43956 "ds" : {
43957 "description" : "The list of datasources you want to display.",
43958 "format" : "pve-configid-list",
43959 "type" : "string",
43960 "typetext" : "<string>"
43961 },
43962 "node" : {
43963 "description" : "The cluster node name.",
43964 "format" : "pve-node",
43965 "type" : "string",
43966 "typetext" : "<string>"
43967 },
43968 "storage" : {
43969 "description" : "The storage identifier.",
43970 "format" : "pve-storage-id",
43971 "type" : "string",
43972 "typetext" : "<string>"
43973 },
43974 "timeframe" : {
43975 "description" : "Specify the time frame you are interested in.",
43976 "enum" : [
43977 "hour",
43978 "day",
43979 "week",
43980 "month",
43981 "year"
43982 ],
43983 "type" : "string"
43984 }
44660702
DM
43985 }
43986 },
4d47f125
TL
43987 "permissions" : {
43988 "check" : [
43989 "perm",
43990 "/storage/{storage}",
43991 [
43992 "Datastore.Audit",
43993 "Datastore.AllocateSpace"
43994 ],
43995 "any",
43996 1
43997 ]
43998 },
43999 "protected" : 1,
44000 "proxyto" : "node",
44001 "returns" : {
44002 "properties" : {
44003 "filename" : {
44004 "type" : "string"
44005 }
44006 },
44007 "type" : "object"
44660702
DM
44008 }
44009 }
44010 },
4d47f125
TL
44011 "leaf" : 1,
44012 "path" : "/nodes/{node}/storage/{storage}/rrd",
44013 "text" : "rrd"
44014 },
44015 {
44016 "info" : {
44017 "GET" : {
e9cd3bd4 44018 "allowtoken" : 1,
4d47f125
TL
44019 "description" : "Read storage RRD statistics.",
44020 "method" : "GET",
44021 "name" : "rrddata",
44022 "parameters" : {
44023 "additionalProperties" : 0,
44024 "properties" : {
44025 "cf" : {
44026 "description" : "The RRD consolidation function",
44027 "enum" : [
44028 "AVERAGE",
44029 "MAX"
44030 ],
44031 "optional" : 1,
44032 "type" : "string"
44033 },
44034 "node" : {
44035 "description" : "The cluster node name.",
44036 "format" : "pve-node",
44037 "type" : "string",
44038 "typetext" : "<string>"
44039 },
44040 "storage" : {
44041 "description" : "The storage identifier.",
44042 "format" : "pve-storage-id",
44043 "type" : "string",
44044 "typetext" : "<string>"
44045 },
44046 "timeframe" : {
44047 "description" : "Specify the time frame you are interested in.",
44048 "enum" : [
44049 "hour",
44050 "day",
44051 "week",
44052 "month",
44053 "year"
44054 ],
44055 "type" : "string"
44056 }
56122987
DM
44057 }
44058 },
4d47f125
TL
44059 "permissions" : {
44060 "check" : [
44061 "perm",
44062 "/storage/{storage}",
44063 [
44064 "Datastore.Audit",
44065 "Datastore.AllocateSpace"
44066 ],
44067 "any",
44068 1
44069 ]
44070 },
44071 "protected" : 1,
44072 "proxyto" : "node",
44073 "returns" : {
44074 "items" : {
44075 "properties" : {},
44076 "type" : "object"
44077 },
44078 "type" : "array"
56122987 44079 }
7aacca6f 44080 }
56122987 44081 },
4d47f125
TL
44082 "leaf" : 1,
44083 "path" : "/nodes/{node}/storage/{storage}/rrddata",
44084 "text" : "rrddata"
44085 },
44086 {
44087 "info" : {
44088 "POST" : {
e9cd3bd4 44089 "allowtoken" : 1,
4d47f125
TL
44090 "description" : "Upload templates and ISO images.",
44091 "method" : "POST",
44092 "name" : "upload",
44093 "parameters" : {
44094 "additionalProperties" : 0,
44095 "properties" : {
5370fa8c
TL
44096 "checksum" : {
44097 "description" : "The expected checksum of the file.",
44098 "optional" : 1,
44099 "requires" : "checksum-algorithm",
44100 "type" : "string",
44101 "typetext" : "<string>"
44102 },
44103 "checksum-algorithm" : {
44104 "description" : "The algorithm to calculate the checksum of the file.",
44105 "enum" : [
44106 "md5",
44107 "sha1",
44108 "sha224",
44109 "sha256",
44110 "sha384",
44111 "sha512"
44112 ],
44113 "optional" : 1,
44114 "requires" : "checksum",
44115 "type" : "string"
44116 },
4d47f125
TL
44117 "content" : {
44118 "description" : "Content type.",
5370fa8c
TL
44119 "enum" : [
44120 "iso",
44121 "vztmpl"
44122 ],
4d47f125 44123 "format" : "pve-storage-content",
5370fa8c 44124 "type" : "string"
4d47f125
TL
44125 },
44126 "filename" : {
5370fa8c
TL
44127 "description" : "The name of the file to create. Caution: This will be normalized!",
44128 "maxLength" : 255,
4d47f125
TL
44129 "type" : "string",
44130 "typetext" : "<string>"
44131 },
44132 "node" : {
44133 "description" : "The cluster node name.",
44134 "format" : "pve-node",
44135 "type" : "string",
44136 "typetext" : "<string>"
44137 },
44138 "storage" : {
44139 "description" : "The storage identifier.",
44140 "format" : "pve-storage-id",
44141 "type" : "string",
44142 "typetext" : "<string>"
44143 },
44144 "tmpfilename" : {
1e3f8156 44145 "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 44146 "optional" : 1,
4a407cfd
TL
44147 "pattern" : "/var/tmp/pveupload-[0-9a-f]+",
44148 "type" : "string"
4d47f125 44149 }
44660702
DM
44150 }
44151 },
4d47f125
TL
44152 "permissions" : {
44153 "check" : [
44154 "perm",
44155 "/storage/{storage}",
44156 [
44157 "Datastore.AllocateTemplate"
44158 ]
44159 ]
56122987 44160 },
4d47f125
TL
44161 "protected" : 1,
44162 "returns" : {
44660702 44163 "type" : "string"
56122987 44164 }
44660702 44165 }
56122987 44166 },
4d47f125
TL
44167 "leaf" : 1,
44168 "path" : "/nodes/{node}/storage/{storage}/upload",
44169 "text" : "upload"
34f3e481
TL
44170 },
44171 {
44172 "info" : {
44173 "POST" : {
44174 "allowtoken" : 1,
44175 "description" : "Download templates and ISO images by using an URL.",
44176 "method" : "POST",
44177 "name" : "download_url",
44178 "parameters" : {
44179 "additionalProperties" : 0,
44180 "properties" : {
44181 "checksum" : {
44182 "description" : "The expected checksum of the file.",
44183 "optional" : 1,
44184 "requires" : "checksum-algorithm",
44185 "type" : "string",
44186 "typetext" : "<string>"
44187 },
44188 "checksum-algorithm" : {
44189 "description" : "The algorithm to calculate the checksum of the file.",
44190 "enum" : [
44191 "md5",
44192 "sha1",
44193 "sha224",
44194 "sha256",
44195 "sha384",
44196 "sha512"
44197 ],
44198 "optional" : 1,
44199 "requires" : "checksum",
44200 "type" : "string"
44201 },
82551b2b
TL
44202 "compression" : {
44203 "description" : "Decompress the downloaded file using the specified compression algorithm.",
44204 "enum" : null,
44205 "optional" : 1,
44206 "type" : "string",
44207 "typetext" : "<string>"
44208 },
34f3e481
TL
44209 "content" : {
44210 "description" : "Content type.",
44211 "enum" : [
44212 "iso",
44213 "vztmpl"
44214 ],
44215 "format" : "pve-storage-content",
44216 "type" : "string"
44217 },
44218 "filename" : {
44219 "description" : "The name of the file to create. Caution: This will be normalized!",
44220 "maxLength" : 255,
44221 "type" : "string",
44222 "typetext" : "<string>"
44223 },
44224 "node" : {
44225 "description" : "The cluster node name.",
44226 "format" : "pve-node",
44227 "type" : "string",
44228 "typetext" : "<string>"
44229 },
44230 "storage" : {
44231 "description" : "The storage identifier.",
44232 "format" : "pve-storage-id",
44233 "type" : "string",
44234 "typetext" : "<string>"
44235 },
44236 "url" : {
44237 "description" : "The URL to download the file from.",
44238 "pattern" : "https?://.*",
44239 "type" : "string"
44240 },
44241 "verify-certificates" : {
44242 "default" : 1,
44243 "description" : "If false, no SSL/TLS certificates will be verified.",
44244 "optional" : 1,
44245 "type" : "boolean",
44246 "typetext" : "<boolean>"
44247 }
44248 }
44249 },
44250 "permissions" : {
44251 "check" : [
44252 "and",
44253 [
44254 "perm",
44255 "/storage/{storage}",
44256 [
44257 "Datastore.AllocateTemplate"
44258 ]
44259 ],
44260 [
44261 "perm",
44262 "/",
44263 [
44264 "Sys.Audit",
44265 "Sys.Modify"
44266 ]
44267 ]
44268 ]
44269 },
44270 "protected" : 1,
44271 "proxyto" : "node",
44272 "returns" : {
44273 "type" : "string"
44274 }
44275 }
44276 },
44277 "leaf" : 1,
44278 "path" : "/nodes/{node}/storage/{storage}/download-url",
44279 "text" : "download-url"
56122987 44280 }
4d47f125 44281 ],
56122987
DM
44282 "info" : {
44283 "GET" : {
e9cd3bd4 44284 "allowtoken" : 1,
4d47f125 44285 "description" : "",
44660702 44286 "method" : "GET",
4d47f125 44287 "name" : "diridx",
44660702
DM
44288 "parameters" : {
44289 "additionalProperties" : 0,
44290 "properties" : {
44291 "node" : {
44292 "description" : "The cluster node name.",
44293 "format" : "pve-node",
013dc89f
DM
44294 "type" : "string",
44295 "typetext" : "<string>"
4d47f125
TL
44296 },
44297 "storage" : {
44298 "description" : "The storage identifier.",
44299 "format" : "pve-storage-id",
44300 "type" : "string",
44301 "typetext" : "<string>"
44660702
DM
44302 }
44303 }
44304 },
7aacca6f
DM
44305 "permissions" : {
44306 "check" : [
44307 "perm",
4d47f125 44308 "/storage/{storage}",
7aacca6f 44309 [
4d47f125
TL
44310 "Datastore.Audit",
44311 "Datastore.AllocateSpace"
44312 ],
44313 "any",
44314 1
7aacca6f
DM
44315 ]
44316 },
56122987
DM
44317 "returns" : {
44318 "items" : {
44319 "properties" : {
4d47f125 44320 "subdir" : {
44660702 44321 "type" : "string"
56122987
DM
44322 }
44323 },
44324 "type" : "object"
7aacca6f 44325 },
4d47f125
TL
44326 "links" : [
44327 {
44328 "href" : "{subdir}",
44329 "rel" : "child"
44330 }
44331 ],
7aacca6f 44332 "type" : "array"
44660702
DM
44333 }
44334 }
44335 },
4d47f125
TL
44336 "leaf" : 0,
44337 "path" : "/nodes/{node}/storage/{storage}",
44338 "text" : "{storage}"
44660702
DM
44339 }
44340 ],
44341 "info" : {
44342 "GET" : {
e9cd3bd4 44343 "allowtoken" : 1,
4d47f125 44344 "description" : "Get status for all datastores.",
44660702
DM
44345 "method" : "GET",
44346 "name" : "index",
44347 "parameters" : {
44348 "additionalProperties" : 0,
44349 "properties" : {
4d47f125
TL
44350 "content" : {
44351 "description" : "Only list stores which support this content type.",
44352 "format" : "pve-storage-content-list",
44353 "optional" : 1,
44354 "type" : "string",
44355 "typetext" : "<string>"
44356 },
44357 "enabled" : {
44358 "default" : 0,
44359 "description" : "Only list stores which are enabled (not disabled in config).",
44360 "optional" : 1,
44361 "type" : "boolean",
44362 "typetext" : "<boolean>"
44363 },
44364 "format" : {
44365 "default" : 0,
44366 "description" : "Include information about formats",
44367 "optional" : 1,
44368 "type" : "boolean",
44369 "typetext" : "<boolean>"
44370 },
44660702
DM
44371 "node" : {
44372 "description" : "The cluster node name.",
44373 "format" : "pve-node",
013dc89f
DM
44374 "type" : "string",
44375 "typetext" : "<string>"
4d47f125
TL
44376 },
44377 "storage" : {
44378 "description" : "Only list status for specified storage",
44379 "format" : "pve-storage-id",
44380 "optional" : 1,
44381 "type" : "string",
44382 "typetext" : "<string>"
44383 },
44384 "target" : {
44385 "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
44386 "format" : "pve-node",
44387 "optional" : 1,
44388 "type" : "string",
44389 "typetext" : "<string>"
44660702
DM
44390 }
44391 }
44392 },
4d47f125
TL
44393 "permissions" : {
44394 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
44395 "user" : "all"
44396 },
44397 "protected" : 1,
44398 "proxyto" : "node",
44399 "returns" : {
44400 "items" : {
44401 "properties" : {
44402 "active" : {
44403 "description" : "Set when storage is accessible.",
44404 "optional" : 1,
44405 "type" : "boolean"
44406 },
44407 "avail" : {
44408 "description" : "Available storage space in bytes.",
44409 "optional" : 1,
44410 "renderer" : "bytes",
44411 "type" : "integer"
44412 },
44413 "content" : {
44414 "description" : "Allowed storage content types.",
44415 "format" : "pve-storage-content-list",
44416 "type" : "string"
44417 },
44418 "enabled" : {
44419 "description" : "Set when storage is enabled (not disabled).",
44420 "optional" : 1,
44421 "type" : "boolean"
44422 },
44423 "shared" : {
44424 "description" : "Shared flag from storage configuration.",
44425 "optional" : 1,
44426 "type" : "boolean"
44427 },
44428 "storage" : {
44429 "description" : "The storage identifier.",
44430 "format" : "pve-storage-id",
44431 "type" : "string"
44432 },
44433 "total" : {
44434 "description" : "Total storage space in bytes.",
44435 "optional" : 1,
44436 "renderer" : "bytes",
44437 "type" : "integer"
44438 },
44439 "type" : {
44440 "description" : "Storage type.",
44441 "type" : "string"
44442 },
44443 "used" : {
44444 "description" : "Used storage space in bytes.",
44445 "optional" : 1,
44446 "renderer" : "bytes",
44447 "type" : "integer"
44448 },
44449 "used_fraction" : {
44450 "description" : "Used fraction (used/total).",
44451 "optional" : 1,
44452 "renderer" : "fraction_as_percentage",
44453 "type" : "number"
7aacca6f 44454 }
4d47f125
TL
44455 },
44456 "type" : "object"
44457 },
44458 "links" : [
44459 {
44460 "href" : "{storage}",
44461 "rel" : "child"
44462 }
44463 ],
44464 "type" : "array"
44465 }
44466 }
44467 },
44468 "leaf" : 0,
44469 "path" : "/nodes/{node}/storage",
44470 "text" : "storage"
44471 },
44472 {
44473 "children" : [
44474 {
5370fa8c
TL
44475 "children" : [
44476 {
44477 "info" : {
44478 "DELETE" : {
44479 "allowtoken" : 1,
44480 "description" : "Remove an LVM Volume Group.",
44481 "method" : "DELETE",
44482 "name" : "delete",
44483 "parameters" : {
44484 "additionalProperties" : 0,
44485 "properties" : {
44486 "cleanup-config" : {
44487 "default" : 0,
44488 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
44489 "optional" : 1,
44490 "type" : "boolean",
44491 "typetext" : "<boolean>"
44492 },
44493 "cleanup-disks" : {
44494 "default" : 0,
44495 "description" : "Also wipe disks so they can be repurposed afterwards.",
44496 "optional" : 1,
44497 "type" : "boolean",
44498 "typetext" : "<boolean>"
44499 },
44500 "name" : {
44501 "description" : "The storage identifier.",
44502 "format" : "pve-storage-id",
44503 "type" : "string",
44504 "typetext" : "<string>"
44505 },
44506 "node" : {
44507 "description" : "The cluster node name.",
44508 "format" : "pve-node",
44509 "type" : "string",
44510 "typetext" : "<string>"
44511 }
44512 }
44513 },
44514 "permissions" : {
44515 "check" : [
44516 "perm",
44517 "/",
44518 [
499c9b7f 44519 "Sys.Modify"
5370fa8c 44520 ]
499c9b7f
TL
44521 ],
44522 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
44523 },
44524 "protected" : 1,
44525 "proxyto" : "node",
44526 "returns" : {
44527 "type" : "string"
44528 }
44529 }
44530 },
44531 "leaf" : 1,
44532 "path" : "/nodes/{node}/disks/lvm/{name}",
44533 "text" : "{name}"
44534 }
44535 ],
4d47f125
TL
44536 "info" : {
44537 "GET" : {
e9cd3bd4 44538 "allowtoken" : 1,
4d47f125
TL
44539 "description" : "List LVM Volume Groups",
44540 "method" : "GET",
44541 "name" : "index",
44542 "parameters" : {
44543 "additionalProperties" : 0,
44544 "properties" : {
44545 "node" : {
44546 "description" : "The cluster node name.",
44547 "format" : "pve-node",
44548 "type" : "string",
44549 "typetext" : "<string>"
44550 }
44551 }
44552 },
44553 "permissions" : {
44554 "check" : [
44555 "perm",
44556 "/",
44557 [
8dd66e12
TL
44558 "Sys.Audit"
44559 ]
4d47f125
TL
44560 ]
44561 },
44562 "protected" : 1,
44563 "proxyto" : "node",
44564 "returns" : {
44565 "properties" : {
44566 "children" : {
44660702
DM
44567 "items" : {
44568 "properties" : {
4d47f125
TL
44569 "children" : {
44570 "description" : "The underlying physical volumes",
44571 "items" : {
44572 "properties" : {
44573 "free" : {
44574 "description" : "The free bytes in the physical volume",
44575 "type" : "integer"
44576 },
44577 "leaf" : {
44578 "type" : "boolean"
44579 },
44580 "name" : {
44581 "description" : "The name of the physical volume",
44582 "type" : "string"
44583 },
44584 "size" : {
44585 "description" : "The size of the physical volume in bytes",
44586 "type" : "integer"
44587 }
44588 },
44589 "type" : "object"
44590 },
44591 "optional" : 1,
44592 "type" : "array"
44593 },
44594 "free" : {
44595 "description" : "The free bytes in the volume group",
44596 "type" : "integer"
44597 },
44598 "leaf" : {
44599 "type" : "boolean"
44600 },
44601 "name" : {
44602 "description" : "The name of the volume group",
44660702 44603 "type" : "string"
4d47f125
TL
44604 },
44605 "size" : {
44606 "description" : "The size of the volume group in bytes",
44607 "type" : "integer"
44660702
DM
44608 }
44609 },
44610 "type" : "object"
44611 },
44660702 44612 "type" : "array"
4d47f125
TL
44613 },
44614 "leaf" : {
44615 "type" : "boolean"
44660702
DM
44616 }
44617 },
4d47f125
TL
44618 "type" : "object"
44619 }
44620 },
44621 "POST" : {
e9cd3bd4 44622 "allowtoken" : 1,
4d47f125
TL
44623 "description" : "Create an LVM Volume Group",
44624 "method" : "POST",
44625 "name" : "create",
44626 "parameters" : {
44627 "additionalProperties" : 0,
44628 "properties" : {
44629 "add_storage" : {
44630 "default" : 0,
44631 "description" : "Configure storage using the Volume Group",
44632 "optional" : 1,
44633 "type" : "boolean",
44634 "typetext" : "<boolean>"
44660702 44635 },
4d47f125
TL
44636 "device" : {
44637 "description" : "The block device you want to create the volume group on",
44638 "type" : "string",
44639 "typetext" : "<string>"
44660702 44640 },
4d47f125
TL
44641 "name" : {
44642 "description" : "The storage identifier.",
44643 "format" : "pve-storage-id",
44644 "type" : "string",
44645 "typetext" : "<string>"
44646 },
44647 "node" : {
44648 "description" : "The cluster node name.",
44649 "format" : "pve-node",
44650 "type" : "string",
44651 "typetext" : "<string>"
44652 }
44653 }
44654 },
44655 "permissions" : {
44656 "check" : [
44657 "perm",
44658 "/",
44659 [
499c9b7f 44660 "Sys.Modify"
4d47f125 44661 ]
499c9b7f
TL
44662 ],
44663 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
44664 },
44665 "protected" : 1,
44666 "proxyto" : "node",
44667 "returns" : {
44668 "type" : "string"
44669 }
44670 }
44671 },
5370fa8c 44672 "leaf" : 0,
4d47f125
TL
44673 "path" : "/nodes/{node}/disks/lvm",
44674 "text" : "lvm"
44675 },
44676 {
5370fa8c
TL
44677 "children" : [
44678 {
44679 "info" : {
44680 "DELETE" : {
44681 "allowtoken" : 1,
44682 "description" : "Remove an LVM thin pool.",
44683 "method" : "DELETE",
44684 "name" : "delete",
44685 "parameters" : {
44686 "additionalProperties" : 0,
44687 "properties" : {
44688 "cleanup-config" : {
44689 "default" : 0,
44690 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
44691 "optional" : 1,
44692 "type" : "boolean",
44693 "typetext" : "<boolean>"
44694 },
44695 "cleanup-disks" : {
44696 "default" : 0,
44697 "description" : "Also wipe disks so they can be repurposed afterwards.",
44698 "optional" : 1,
44699 "type" : "boolean",
44700 "typetext" : "<boolean>"
44701 },
44702 "name" : {
44703 "description" : "The storage identifier.",
44704 "format" : "pve-storage-id",
44705 "type" : "string",
44706 "typetext" : "<string>"
44707 },
44708 "node" : {
44709 "description" : "The cluster node name.",
44710 "format" : "pve-node",
44711 "type" : "string",
44712 "typetext" : "<string>"
44713 },
44714 "volume-group" : {
44715 "description" : "The storage identifier.",
44716 "format" : "pve-storage-id",
44717 "type" : "string",
44718 "typetext" : "<string>"
44719 }
44720 }
44721 },
44722 "permissions" : {
44723 "check" : [
44724 "perm",
44725 "/",
44726 [
499c9b7f 44727 "Sys.Modify"
5370fa8c 44728 ]
499c9b7f
TL
44729 ],
44730 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
44731 },
44732 "protected" : 1,
44733 "proxyto" : "node",
44734 "returns" : {
44735 "type" : "string"
44736 }
44737 }
44738 },
44739 "leaf" : 1,
44740 "path" : "/nodes/{node}/disks/lvmthin/{name}",
44741 "text" : "{name}"
44742 }
44743 ],
4d47f125
TL
44744 "info" : {
44745 "GET" : {
e9cd3bd4 44746 "allowtoken" : 1,
4d47f125
TL
44747 "description" : "List LVM thinpools",
44748 "method" : "GET",
44749 "name" : "index",
44750 "parameters" : {
44751 "additionalProperties" : 0,
44752 "properties" : {
44753 "node" : {
44754 "description" : "The cluster node name.",
44755 "format" : "pve-node",
44756 "type" : "string",
44757 "typetext" : "<string>"
44660702
DM
44758 }
44759 }
44760 },
4d47f125
TL
44761 "permissions" : {
44762 "check" : [
44763 "perm",
44764 "/",
44765 [
8dd66e12
TL
44766 "Sys.Audit"
44767 ]
4d47f125
TL
44768 ]
44769 },
44770 "protected" : 1,
44771 "proxyto" : "node",
44772 "returns" : {
44773 "items" : {
44774 "properties" : {
44775 "lv" : {
44776 "description" : "The name of the thinpool.",
44777 "type" : "string"
44778 },
44779 "lv_size" : {
44780 "description" : "The size of the thinpool in bytes.",
44781 "type" : "integer"
44782 },
44783 "metadata_size" : {
44784 "description" : "The size of the metadata lv in bytes.",
44785 "type" : "integer"
44786 },
44787 "metadata_used" : {
44788 "description" : "The used bytes of the metadata lv.",
44789 "type" : "integer"
44790 },
44791 "used" : {
44792 "description" : "The used bytes of the thinpool.",
44793 "type" : "integer"
5370fa8c
TL
44794 },
44795 "vg" : {
44796 "description" : "The associated volume group.",
44797 "type" : "string"
44660702
DM
44798 }
44799 },
4d47f125
TL
44800 "type" : "object"
44801 },
44802 "type" : "array"
44803 }
44804 },
44805 "POST" : {
e9cd3bd4 44806 "allowtoken" : 1,
4d47f125
TL
44807 "description" : "Create an LVM thinpool",
44808 "method" : "POST",
44809 "name" : "create",
44810 "parameters" : {
44811 "additionalProperties" : 0,
44812 "properties" : {
44813 "add_storage" : {
44814 "default" : 0,
44815 "description" : "Configure storage using the thinpool.",
44816 "optional" : 1,
44817 "type" : "boolean",
44818 "typetext" : "<boolean>"
56122987 44819 },
4d47f125
TL
44820 "device" : {
44821 "description" : "The block device you want to create the thinpool on.",
44822 "type" : "string",
44823 "typetext" : "<string>"
44824 },
44825 "name" : {
44826 "description" : "The storage identifier.",
44827 "format" : "pve-storage-id",
44828 "type" : "string",
44829 "typetext" : "<string>"
44830 },
44831 "node" : {
44832 "description" : "The cluster node name.",
44833 "format" : "pve-node",
44834 "type" : "string",
44835 "typetext" : "<string>"
44660702 44836 }
56122987
DM
44837 }
44838 },
4d47f125
TL
44839 "permissions" : {
44840 "check" : [
44841 "perm",
44842 "/",
44843 [
499c9b7f 44844 "Sys.Modify"
4d47f125 44845 ]
499c9b7f
TL
44846 ],
44847 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
44848 },
44849 "protected" : 1,
44850 "proxyto" : "node",
44851 "returns" : {
44852 "type" : "string"
44853 }
44854 }
44855 },
5370fa8c 44856 "leaf" : 0,
4d47f125
TL
44857 "path" : "/nodes/{node}/disks/lvmthin",
44858 "text" : "lvmthin"
44859 },
44860 {
5370fa8c
TL
44861 "children" : [
44862 {
44863 "info" : {
44864 "DELETE" : {
44865 "allowtoken" : 1,
44866 "description" : "Unmounts the storage and removes the mount unit.",
44867 "method" : "DELETE",
44868 "name" : "delete",
44869 "parameters" : {
44870 "additionalProperties" : 0,
44871 "properties" : {
44872 "cleanup-config" : {
44873 "default" : 0,
44874 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
44875 "optional" : 1,
44876 "type" : "boolean",
44877 "typetext" : "<boolean>"
44878 },
44879 "cleanup-disks" : {
44880 "default" : 0,
44881 "description" : "Also wipe disk so it can be repurposed afterwards.",
44882 "optional" : 1,
44883 "type" : "boolean",
44884 "typetext" : "<boolean>"
44885 },
44886 "name" : {
44887 "description" : "The storage identifier.",
44888 "format" : "pve-storage-id",
44889 "type" : "string",
44890 "typetext" : "<string>"
44891 },
44892 "node" : {
44893 "description" : "The cluster node name.",
44894 "format" : "pve-node",
44895 "type" : "string",
44896 "typetext" : "<string>"
44897 }
44898 }
44899 },
44900 "permissions" : {
44901 "check" : [
44902 "perm",
44903 "/",
44904 [
499c9b7f 44905 "Sys.Modify"
5370fa8c 44906 ]
499c9b7f
TL
44907 ],
44908 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
44909 },
44910 "protected" : 1,
44911 "proxyto" : "node",
44912 "returns" : {
44913 "type" : "string"
44914 }
44915 }
44916 },
44917 "leaf" : 1,
44918 "path" : "/nodes/{node}/disks/directory/{name}",
44919 "text" : "{name}"
44920 }
44921 ],
4d47f125
TL
44922 "info" : {
44923 "GET" : {
e9cd3bd4 44924 "allowtoken" : 1,
4d47f125
TL
44925 "description" : "PVE Managed Directory storages.",
44926 "method" : "GET",
44927 "name" : "index",
44928 "parameters" : {
44929 "additionalProperties" : 0,
44930 "properties" : {
44931 "node" : {
44932 "description" : "The cluster node name.",
44933 "format" : "pve-node",
44934 "type" : "string",
44935 "typetext" : "<string>"
44936 }
44937 }
44938 },
44939 "permissions" : {
44940 "check" : [
44941 "perm",
44942 "/",
44943 [
8dd66e12
TL
44944 "Sys.Audit"
44945 ]
4d47f125
TL
44946 ]
44947 },
44948 "protected" : 1,
44949 "proxyto" : "node",
44950 "returns" : {
44951 "items" : {
44952 "properties" : {
44953 "device" : {
44954 "description" : "The mounted device.",
44955 "type" : "string"
44956 },
44957 "options" : {
44958 "description" : "The mount options.",
44959 "type" : "string"
44960 },
44961 "path" : {
44962 "description" : "The mount path.",
44963 "type" : "string"
44964 },
44965 "type" : {
44966 "description" : "The filesystem type.",
44967 "type" : "string"
44968 },
44969 "unitfile" : {
44970 "description" : "The path of the mount unit.",
44971 "type" : "string"
44660702 44972 }
56122987 44973 },
4d47f125
TL
44974 "type" : "object"
44975 },
44976 "type" : "array"
44977 }
44978 },
44979 "POST" : {
e9cd3bd4 44980 "allowtoken" : 1,
4d47f125
TL
44981 "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.",
44982 "method" : "POST",
44983 "name" : "create",
44984 "parameters" : {
44985 "additionalProperties" : 0,
44986 "properties" : {
44987 "add_storage" : {
44988 "default" : 0,
44989 "description" : "Configure storage using the directory.",
44990 "optional" : 1,
44991 "type" : "boolean",
44992 "typetext" : "<boolean>"
44993 },
44994 "device" : {
44995 "description" : "The block device you want to create the filesystem on.",
44996 "type" : "string",
44997 "typetext" : "<string>"
44998 },
44999 "filesystem" : {
45000 "default" : "ext4",
45001 "description" : "The desired filesystem.",
45002 "enum" : [
45003 "ext4",
45004 "xfs"
45005 ],
45006 "optional" : 1,
45007 "type" : "string"
56122987 45008 },
4d47f125
TL
45009 "name" : {
45010 "description" : "The storage identifier.",
45011 "format" : "pve-storage-id",
45012 "type" : "string",
45013 "typetext" : "<string>"
45014 },
45015 "node" : {
45016 "description" : "The cluster node name.",
45017 "format" : "pve-node",
45018 "type" : "string",
45019 "typetext" : "<string>"
7aacca6f 45020 }
56122987
DM
45021 }
45022 },
4d47f125
TL
45023 "permissions" : {
45024 "check" : [
45025 "perm",
45026 "/",
45027 [
499c9b7f 45028 "Sys.Modify"
4d47f125 45029 ]
499c9b7f
TL
45030 ],
45031 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
45032 },
45033 "protected" : 1,
45034 "proxyto" : "node",
45035 "returns" : {
45036 "type" : "string"
45037 }
45038 }
45039 },
5370fa8c 45040 "leaf" : 0,
4d47f125
TL
45041 "path" : "/nodes/{node}/disks/directory",
45042 "text" : "directory"
45043 },
45044 {
45045 "children" : [
56122987 45046 {
56122987 45047 "info" : {
5370fa8c
TL
45048 "DELETE" : {
45049 "allowtoken" : 1,
45050 "description" : "Destroy a ZFS pool.",
45051 "method" : "DELETE",
45052 "name" : "delete",
45053 "parameters" : {
45054 "additionalProperties" : 0,
45055 "properties" : {
45056 "cleanup-config" : {
45057 "default" : 0,
45058 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
45059 "optional" : 1,
45060 "type" : "boolean",
45061 "typetext" : "<boolean>"
45062 },
45063 "cleanup-disks" : {
45064 "default" : 0,
45065 "description" : "Also wipe disks so they can be repurposed afterwards.",
45066 "optional" : 1,
45067 "type" : "boolean",
45068 "typetext" : "<boolean>"
45069 },
45070 "name" : {
45071 "description" : "The storage identifier.",
45072 "format" : "pve-storage-id",
45073 "type" : "string",
45074 "typetext" : "<string>"
45075 },
45076 "node" : {
45077 "description" : "The cluster node name.",
45078 "format" : "pve-node",
45079 "type" : "string",
45080 "typetext" : "<string>"
45081 }
45082 }
45083 },
45084 "permissions" : {
45085 "check" : [
45086 "perm",
45087 "/",
45088 [
8dd66e12 45089 "Sys.Modify"
5370fa8c 45090 ]
499c9b7f
TL
45091 ],
45092 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
45093 },
45094 "protected" : 1,
45095 "proxyto" : "node",
45096 "returns" : {
45097 "type" : "string"
45098 }
45099 },
56122987 45100 "GET" : {
e9cd3bd4 45101 "allowtoken" : 1,
4d47f125 45102 "description" : "Get details about a zpool.",
44660702 45103 "method" : "GET",
4d47f125 45104 "name" : "detail",
56122987 45105 "parameters" : {
44660702 45106 "additionalProperties" : 0,
56122987 45107 "properties" : {
4d47f125
TL
45108 "name" : {
45109 "description" : "The storage identifier.",
45110 "format" : "pve-storage-id",
45111 "type" : "string",
45112 "typetext" : "<string>"
44660702 45113 },
7aacca6f 45114 "node" : {
7aacca6f 45115 "description" : "The cluster node name.",
44660702 45116 "format" : "pve-node",
013dc89f
DM
45117 "type" : "string",
45118 "typetext" : "<string>"
56122987 45119 }
44660702 45120 }
7aacca6f 45121 },
7aacca6f
DM
45122 "permissions" : {
45123 "check" : [
45124 "perm",
4d47f125 45125 "/",
7aacca6f 45126 [
8dd66e12
TL
45127 "Sys.Audit"
45128 ]
7aacca6f
DM
45129 ]
45130 },
44660702
DM
45131 "protected" : 1,
45132 "proxyto" : "node",
7aacca6f 45133 "returns" : {
56122987 45134 "properties" : {
4d47f125
TL
45135 "action" : {
45136 "description" : "Information about the recommended action to fix the state.",
45137 "optional" : 1,
45138 "type" : "string"
56122987 45139 },
4d47f125 45140 "children" : {
e2d681b3 45141 "description" : "The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.",
4d47f125
TL
45142 "items" : {
45143 "properties" : {
45144 "cksum" : {
e2d681b3 45145 "optional" : 1,
4d47f125
TL
45146 "type" : "number"
45147 },
45148 "msg" : {
45149 "description" : "An optional message about the vdev.",
45150 "type" : "string"
45151 },
45152 "name" : {
e2d681b3 45153 "description" : "The name of the vdev or section.",
4d47f125
TL
45154 "type" : "string"
45155 },
45156 "read" : {
e2d681b3 45157 "optional" : 1,
4d47f125
TL
45158 "type" : "number"
45159 },
45160 "state" : {
45161 "description" : "The state of the vdev.",
e2d681b3 45162 "optional" : 1,
4d47f125
TL
45163 "type" : "string"
45164 },
45165 "write" : {
e2d681b3 45166 "optional" : 1,
4d47f125
TL
45167 "type" : "number"
45168 }
45169 },
45170 "type" : "object"
45171 },
45172 "type" : "array"
56122987 45173 },
e2d681b3
TL
45174 "errors" : {
45175 "description" : "Information about the errors on the zpool.",
45176 "type" : "string"
45177 },
4d47f125
TL
45178 "name" : {
45179 "description" : "The name of the zpool.",
45180 "type" : "string"
44660702 45181 },
4d47f125 45182 "scan" : {
e2d681b3 45183 "description" : "Information about the last/current scrub.",
d2656385 45184 "optional" : 1,
4d47f125 45185 "type" : "string"
44660702 45186 },
4d47f125
TL
45187 "state" : {
45188 "description" : "The state of the zpool.",
45189 "type" : "string"
45190 },
45191 "status" : {
45192 "description" : "Information about the state of the zpool.",
44660702 45193 "optional" : 1,
4d47f125 45194 "type" : "string"
56122987 45195 }
4d47f125
TL
45196 },
45197 "type" : "object"
44660702
DM
45198 }
45199 }
45200 },
45201 "leaf" : 1,
4d47f125
TL
45202 "path" : "/nodes/{node}/disks/zfs/{name}",
45203 "text" : "{name}"
44660702
DM
45204 }
45205 ],
45206 "info" : {
45207 "GET" : {
e9cd3bd4 45208 "allowtoken" : 1,
4d47f125 45209 "description" : "List Zpools.",
44660702 45210 "method" : "GET",
4d47f125 45211 "name" : "index",
44660702
DM
45212 "parameters" : {
45213 "additionalProperties" : 0,
45214 "properties" : {
45215 "node" : {
45216 "description" : "The cluster node name.",
45217 "format" : "pve-node",
013dc89f
DM
45218 "type" : "string",
45219 "typetext" : "<string>"
4d47f125
TL
45220 }
45221 }
45222 },
45223 "permissions" : {
45224 "check" : [
45225 "perm",
45226 "/",
45227 [
8dd66e12
TL
45228 "Sys.Audit"
45229 ]
4d47f125
TL
45230 ]
45231 },
45232 "protected" : 1,
45233 "proxyto" : "node",
45234 "returns" : {
45235 "items" : {
45236 "properties" : {
45237 "alloc" : {
45238 "description" : "",
45239 "type" : "integer"
45240 },
45241 "dedup" : {
45242 "description" : "",
45243 "type" : "number"
45244 },
45245 "frag" : {
45246 "description" : "",
45247 "type" : "integer"
45248 },
45249 "free" : {
45250 "description" : "",
45251 "type" : "integer"
45252 },
45253 "health" : {
45254 "description" : "",
45255 "type" : "string"
45256 },
45257 "name" : {
45258 "description" : "",
45259 "type" : "string"
45260 },
45261 "size" : {
45262 "description" : "",
45263 "type" : "integer"
45264 }
45265 },
45266 "type" : "object"
45267 },
45268 "links" : [
45269 {
45270 "href" : "{name}",
45271 "rel" : "child"
45272 }
45273 ],
45274 "type" : "array"
45275 }
45276 },
45277 "POST" : {
e9cd3bd4 45278 "allowtoken" : 1,
4d47f125
TL
45279 "description" : "Create a ZFS pool.",
45280 "method" : "POST",
45281 "name" : "create",
45282 "parameters" : {
45283 "additionalProperties" : 0,
45284 "properties" : {
45285 "add_storage" : {
45286 "default" : 0,
45287 "description" : "Configure storage using the zpool.",
45288 "optional" : 1,
45289 "type" : "boolean",
45290 "typetext" : "<boolean>"
45291 },
45292 "ashift" : {
45293 "default" : 12,
45294 "description" : "Pool sector size exponent.",
45295 "maximum" : 16,
45296 "minimum" : 9,
45297 "optional" : 1,
45298 "type" : "integer",
45299 "typetext" : "<integer> (9 - 16)"
45300 },
45301 "compression" : {
45302 "default" : "on",
45303 "description" : "The compression algorithm to use.",
45304 "enum" : [
45305 "on",
45306 "off",
45307 "gzip",
45308 "lz4",
45309 "lzjb",
5370fa8c
TL
45310 "zle",
45311 "zstd"
4d47f125
TL
45312 ],
45313 "optional" : 1,
45314 "type" : "string"
45315 },
45316 "devices" : {
45317 "description" : "The block devices you want to create the zpool on.",
45318 "format" : "string-list",
45319 "type" : "string",
45320 "typetext" : "<string>"
44660702 45321 },
81a3384d
TL
45322 "draid-config" : {
45323 "format" : {
45324 "data" : {
45325 "description" : "The number of data devices per redundancy group. (dRAID)",
45326 "minimum" : 1,
45327 "type" : "integer"
45328 },
45329 "spares" : {
45330 "description" : "Number of dRAID spares.",
45331 "minimum" : 0,
45332 "type" : "integer"
45333 }
45334 },
45335 "optional" : 1,
45336 "type" : "string",
45337 "typetext" : "data=<integer> ,spares=<integer>"
45338 },
4d47f125 45339 "name" : {
44660702
DM
45340 "description" : "The storage identifier.",
45341 "format" : "pve-storage-id",
013dc89f
DM
45342 "type" : "string",
45343 "typetext" : "<string>"
4d47f125
TL
45344 },
45345 "node" : {
45346 "description" : "The cluster node name.",
45347 "format" : "pve-node",
45348 "type" : "string",
45349 "typetext" : "<string>"
45350 },
45351 "raidlevel" : {
45352 "description" : "The RAID level to use.",
45353 "enum" : [
45354 "single",
45355 "mirror",
45356 "raid10",
45357 "raidz",
45358 "raidz2",
81a3384d
TL
45359 "raidz3",
45360 "draid",
45361 "draid2",
45362 "draid3"
4d47f125
TL
45363 ],
45364 "type" : "string"
56122987
DM
45365 }
45366 }
44660702
DM
45367 },
45368 "permissions" : {
45369 "check" : [
45370 "perm",
4d47f125 45371 "/",
44660702 45372 [
8dd66e12 45373 "Sys.Modify"
4d47f125 45374 ]
499c9b7f
TL
45375 ],
45376 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
44660702 45377 },
4d47f125
TL
45378 "protected" : 1,
45379 "proxyto" : "node",
44660702 45380 "returns" : {
4d47f125 45381 "type" : "string"
56122987
DM
45382 }
45383 }
44660702
DM
45384 },
45385 "leaf" : 0,
4d47f125
TL
45386 "path" : "/nodes/{node}/disks/zfs",
45387 "text" : "zfs"
45388 },
2c0dde61
DM
45389 {
45390 "info" : {
45391 "GET" : {
e9cd3bd4 45392 "allowtoken" : 1,
2c0dde61
DM
45393 "description" : "List local disks.",
45394 "method" : "GET",
45395 "name" : "list",
45396 "parameters" : {
45397 "additionalProperties" : 0,
45398 "properties" : {
d2656385
TL
45399 "include-partitions" : {
45400 "default" : 0,
45401 "description" : "Also include partitions.",
45402 "optional" : 1,
45403 "type" : "boolean",
45404 "typetext" : "<boolean>"
45405 },
2c0dde61
DM
45406 "node" : {
45407 "description" : "The cluster node name.",
45408 "format" : "pve-node",
013dc89f
DM
45409 "type" : "string",
45410 "typetext" : "<string>"
4d47f125
TL
45411 },
45412 "skipsmart" : {
45413 "default" : 0,
45414 "description" : "Skip smart checks.",
45415 "optional" : 1,
45416 "type" : "boolean",
45417 "typetext" : "<boolean>"
45418 },
45419 "type" : {
45420 "description" : "Only list specific types of disks.",
45421 "enum" : [
45422 "unused",
45423 "journal_disks"
45424 ],
45425 "optional" : 1,
45426 "type" : "string"
2c0dde61
DM
45427 }
45428 }
45429 },
45430 "permissions" : {
45431 "check" : [
d2656385 45432 "or",
2c0dde61 45433 [
d2656385
TL
45434 "perm",
45435 "/",
45436 [
8dd66e12
TL
45437 "Sys.Audit"
45438 ]
2c0dde61 45439 ],
d2656385
TL
45440 [
45441 "perm",
45442 "/nodes/{node}",
45443 [
8dd66e12
TL
45444 "Sys.Audit"
45445 ]
d2656385 45446 ]
2c0dde61
DM
45447 ]
45448 },
45449 "protected" : 1,
45450 "proxyto" : "node",
45451 "returns" : {
45452 "items" : {
45453 "properties" : {
45454 "devpath" : {
45455 "description" : "The device path",
45456 "type" : "string"
45457 },
45458 "gpt" : {
45459 "type" : "boolean"
45460 },
45461 "health" : {
45462 "optional" : 1,
45463 "type" : "string"
45464 },
45465 "model" : {
45466 "optional" : 1,
45467 "type" : "string"
45468 },
de786b48
TL
45469 "mounted" : {
45470 "type" : "boolean"
45471 },
2c0dde61
DM
45472 "osdid" : {
45473 "type" : "integer"
45474 },
bd92b745
TL
45475 "osdid-list" : {
45476 "items" : {
45477 "type" : "integer"
45478 },
45479 "type" : "array"
45480 },
d2656385
TL
45481 "parent" : {
45482 "description" : "For partitions only. The device path of the disk the partition resides on.",
45483 "optional" : 1,
45484 "type" : "string"
45485 },
2c0dde61
DM
45486 "serial" : {
45487 "optional" : 1,
45488 "type" : "string"
45489 },
45490 "size" : {
45491 "type" : "integer"
45492 },
45493 "used" : {
45494 "optional" : 1,
45495 "type" : "string"
45496 },
45497 "vendor" : {
45498 "optional" : 1,
45499 "type" : "string"
45500 },
45501 "wwn" : {
45502 "optional" : 1,
45503 "type" : "string"
45504 }
45505 },
45506 "type" : "object"
45507 },
45508 "type" : "array"
45509 }
45510 }
45511 },
45512 "leaf" : 1,
45513 "path" : "/nodes/{node}/disks/list",
45514 "text" : "list"
45515 },
45516 {
45517 "info" : {
45518 "GET" : {
e9cd3bd4 45519 "allowtoken" : 1,
2c0dde61
DM
45520 "description" : "Get SMART Health of a disk.",
45521 "method" : "GET",
45522 "name" : "smart",
45523 "parameters" : {
45524 "additionalProperties" : 0,
45525 "properties" : {
45526 "disk" : {
45527 "description" : "Block device name",
45528 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
45529 "type" : "string"
45530 },
45531 "healthonly" : {
45532 "description" : "If true returns only the health status",
45533 "optional" : 1,
013dc89f
DM
45534 "type" : "boolean",
45535 "typetext" : "<boolean>"
2c0dde61
DM
45536 },
45537 "node" : {
45538 "description" : "The cluster node name.",
45539 "format" : "pve-node",
013dc89f
DM
45540 "type" : "string",
45541 "typetext" : "<string>"
2c0dde61
DM
45542 }
45543 }
45544 },
45545 "permissions" : {
45546 "check" : [
45547 "perm",
45548 "/",
45549 [
8dd66e12
TL
45550 "Sys.Audit"
45551 ]
2c0dde61
DM
45552 ]
45553 },
45554 "protected" : 1,
45555 "proxyto" : "node",
45556 "returns" : {
de0983cb
DM
45557 "properties" : {
45558 "attributes" : {
45559 "optional" : 1,
45560 "type" : "array"
45561 },
45562 "health" : {
45563 "type" : "string"
45564 },
45565 "text" : {
45566 "optional" : 1,
45567 "type" : "string"
45568 },
45569 "type" : {
45570 "optional" : 1,
45571 "type" : "string"
45572 }
45573 },
2c0dde61
DM
45574 "type" : "object"
45575 }
45576 }
45577 },
45578 "leaf" : 1,
45579 "path" : "/nodes/{node}/disks/smart",
45580 "text" : "smart"
45581 },
45582 {
45583 "info" : {
45584 "POST" : {
e9cd3bd4 45585 "allowtoken" : 1,
2c0dde61
DM
45586 "description" : "Initialize Disk with GPT",
45587 "method" : "POST",
45588 "name" : "initgpt",
45589 "parameters" : {
45590 "additionalProperties" : 0,
45591 "properties" : {
45592 "disk" : {
45593 "description" : "Block device name",
45594 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
45595 "type" : "string"
45596 },
45597 "node" : {
45598 "description" : "The cluster node name.",
45599 "format" : "pve-node",
013dc89f
DM
45600 "type" : "string",
45601 "typetext" : "<string>"
2c0dde61
DM
45602 },
45603 "uuid" : {
45604 "description" : "UUID for the GPT table",
45605 "maxLength" : 36,
45606 "optional" : 1,
45607 "pattern" : "[a-fA-F0-9\\-]+",
45608 "type" : "string"
45609 }
45610 }
45611 },
45612 "permissions" : {
45613 "check" : [
45614 "perm",
45615 "/",
45616 [
45617 "Sys.Modify"
45618 ]
45619 ]
45620 },
45621 "protected" : 1,
45622 "proxyto" : "node",
45623 "returns" : {
45624 "type" : "string"
45625 }
45626 }
45627 },
45628 "leaf" : 1,
45629 "path" : "/nodes/{node}/disks/initgpt",
45630 "text" : "initgpt"
0695fdaf
TL
45631 },
45632 {
45633 "info" : {
45634 "PUT" : {
45635 "allowtoken" : 1,
45636 "description" : "Wipe a disk or partition.",
45637 "method" : "PUT",
45638 "name" : "wipe_disk",
45639 "parameters" : {
45640 "additionalProperties" : 0,
45641 "properties" : {
45642 "disk" : {
45643 "description" : "Block device name",
45644 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
45645 "type" : "string"
45646 },
45647 "node" : {
45648 "description" : "The cluster node name.",
45649 "format" : "pve-node",
45650 "type" : "string",
45651 "typetext" : "<string>"
45652 }
45653 }
45654 },
45655 "protected" : 1,
45656 "proxyto" : "node",
45657 "returns" : {
45658 "type" : "string"
45659 }
45660 }
45661 },
45662 "leaf" : 1,
45663 "path" : "/nodes/{node}/disks/wipedisk",
45664 "text" : "wipedisk"
2c0dde61
DM
45665 }
45666 ],
45667 "info" : {
45668 "GET" : {
e9cd3bd4 45669 "allowtoken" : 1,
2c0dde61
DM
45670 "description" : "Node index.",
45671 "method" : "GET",
45672 "name" : "index",
45673 "parameters" : {
45674 "additionalProperties" : 0,
45675 "properties" : {
45676 "node" : {
45677 "description" : "The cluster node name.",
45678 "format" : "pve-node",
013dc89f
DM
45679 "type" : "string",
45680 "typetext" : "<string>"
2c0dde61
DM
45681 }
45682 }
45683 },
45684 "permissions" : {
45685 "user" : "all"
45686 },
45687 "proxyto" : "node",
45688 "returns" : {
45689 "items" : {
45690 "properties" : {},
45691 "type" : "object"
45692 },
45693 "links" : [
45694 {
45695 "href" : "{name}",
45696 "rel" : "child"
45697 }
45698 ],
45699 "type" : "array"
45700 }
45701 }
45702 },
45703 "leaf" : 0,
45704 "path" : "/nodes/{node}/disks",
45705 "text" : "disks"
45706 },
56122987 45707 {
56122987
DM
45708 "children" : [
45709 {
45710 "info" : {
44660702 45711 "GET" : {
e9cd3bd4 45712 "allowtoken" : 1,
44660702
DM
45713 "description" : "List available updates.",
45714 "method" : "GET",
45715 "name" : "list_updates",
45716 "parameters" : {
45717 "additionalProperties" : 0,
45718 "properties" : {
45719 "node" : {
45720 "description" : "The cluster node name.",
45721 "format" : "pve-node",
013dc89f
DM
45722 "type" : "string",
45723 "typetext" : "<string>"
44660702
DM
45724 }
45725 }
7aacca6f
DM
45726 },
45727 "permissions" : {
45728 "check" : [
45729 "perm",
45730 "/nodes/{node}",
45731 [
45732 "Sys.Modify"
45733 ]
45734 ]
45735 },
44660702 45736 "protected" : 1,
56122987 45737 "proxyto" : "node",
44660702
DM
45738 "returns" : {
45739 "items" : {
45740 "properties" : {},
45741 "type" : "object"
45742 },
45743 "type" : "array"
45744 }
45745 },
45746 "POST" : {
e9cd3bd4 45747 "allowtoken" : 1,
44660702 45748 "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
7aacca6f
DM
45749 "method" : "POST",
45750 "name" : "update_database",
56122987
DM
45751 "parameters" : {
45752 "additionalProperties" : 0,
45753 "properties" : {
44660702
DM
45754 "node" : {
45755 "description" : "The cluster node name.",
45756 "format" : "pve-node",
013dc89f
DM
45757 "type" : "string",
45758 "typetext" : "<string>"
44660702 45759 },
56122987 45760 "notify" : {
56122987 45761 "default" : 0,
fa22697b 45762 "description" : "Send notification about new packages.",
44660702 45763 "optional" : 1,
013dc89f
DM
45764 "type" : "boolean",
45765 "typetext" : "<boolean>"
56122987
DM
45766 },
45767 "quiet" : {
56122987 45768 "default" : 0,
44660702 45769 "description" : "Only produces output suitable for logging, omitting progress indicators.",
56122987 45770 "optional" : 1,
013dc89f
DM
45771 "type" : "boolean",
45772 "typetext" : "<boolean>"
56122987 45773 }
7aacca6f
DM
45774 }
45775 },
45776 "permissions" : {
45777 "check" : [
45778 "perm",
45779 "/nodes/{node}",
45780 [
45781 "Sys.Modify"
45782 ]
fa22697b 45783 ]
7aacca6f 45784 },
44660702
DM
45785 "protected" : 1,
45786 "proxyto" : "node",
45787 "returns" : {
45788 "type" : "string"
45789 }
56122987
DM
45790 }
45791 },
7aacca6f 45792 "leaf" : 1,
44660702
DM
45793 "path" : "/nodes/{node}/apt/update",
45794 "text" : "update"
56122987
DM
45795 },
45796 {
56122987
DM
45797 "info" : {
45798 "GET" : {
e9cd3bd4 45799 "allowtoken" : 1,
44660702 45800 "description" : "Get package changelogs.",
56122987 45801 "method" : "GET",
7aacca6f 45802 "name" : "changelog",
56122987 45803 "parameters" : {
44660702 45804 "additionalProperties" : 0,
56122987
DM
45805 "properties" : {
45806 "name" : {
45807 "description" : "Package name.",
013dc89f
DM
45808 "type" : "string",
45809 "typetext" : "<string>"
56122987 45810 },
44660702
DM
45811 "node" : {
45812 "description" : "The cluster node name.",
45813 "format" : "pve-node",
013dc89f
DM
45814 "type" : "string",
45815 "typetext" : "<string>"
44660702 45816 },
56122987 45817 "version" : {
7aacca6f 45818 "description" : "Package version.",
44660702 45819 "optional" : 1,
013dc89f
DM
45820 "type" : "string",
45821 "typetext" : "<string>"
56122987 45822 }
44660702 45823 }
56122987 45824 },
44660702
DM
45825 "permissions" : {
45826 "check" : [
45827 "perm",
45828 "/nodes/{node}",
45829 [
45830 "Sys.Modify"
45831 ]
45832 ]
45833 },
45834 "proxyto" : "node",
45835 "returns" : {
45836 "type" : "string"
45837 }
56122987
DM
45838 }
45839 },
44660702
DM
45840 "leaf" : 1,
45841 "path" : "/nodes/{node}/apt/changelog",
7aacca6f 45842 "text" : "changelog"
56122987 45843 },
34f3e481
TL
45844 {
45845 "info" : {
45846 "GET" : {
45847 "allowtoken" : 1,
45848 "description" : "Get APT repository information.",
45849 "method" : "GET",
45850 "name" : "repositories",
45851 "parameters" : {
45852 "additionalProperties" : 0,
45853 "properties" : {
45854 "node" : {
45855 "description" : "The cluster node name.",
45856 "format" : "pve-node",
45857 "type" : "string",
45858 "typetext" : "<string>"
45859 }
45860 }
45861 },
45862 "permissions" : {
45863 "check" : [
45864 "perm",
45865 "/nodes/{node}",
45866 [
45867 "Sys.Audit"
45868 ]
45869 ]
45870 },
45871 "proxyto" : "node",
45872 "returns" : {
45873 "description" : "Result from parsing the APT repository files in /etc/apt/.",
45874 "properties" : {
45875 "digest" : {
45876 "description" : "Common digest of all files.",
45877 "type" : "string"
45878 },
45879 "errors" : {
45880 "description" : "List of problematic repository files.",
45881 "items" : {
45882 "properties" : {
45883 "error" : {
45884 "description" : "The error message",
45885 "type" : "string"
45886 },
45887 "path" : {
45888 "description" : "Path to the problematic file.",
45889 "type" : "string"
45890 }
45891 },
45892 "type" : "object"
45893 },
45894 "type" : "array"
45895 },
45896 "files" : {
45897 "description" : "List of parsed repository files.",
45898 "items" : {
45899 "properties" : {
45900 "digest" : {
45901 "description" : "Digest of the file as bytes.",
45902 "items" : {
45903 "type" : "integer"
45904 },
45905 "type" : "array"
45906 },
45907 "file-type" : {
45908 "description" : "Format of the file.",
45909 "enum" : [
45910 "list",
45911 "sources"
45912 ],
45913 "type" : "string"
45914 },
45915 "path" : {
45916 "description" : "Path to the problematic file.",
45917 "type" : "string"
45918 },
45919 "repositories" : {
45920 "description" : "The parsed repositories.",
45921 "items" : {
45922 "properties" : {
45923 "Comment" : {
45924 "description" : "Associated comment",
45925 "optional" : 1,
45926 "type" : "string"
45927 },
45928 "Components" : {
45929 "description" : "List of repository components",
45930 "items" : {
45931 "type" : "string"
45932 },
45933 "optional" : 1,
45934 "type" : "array"
45935 },
45936 "Enabled" : {
45937 "description" : "Whether the repository is enabled or not",
45938 "type" : "boolean"
45939 },
45940 "FileType" : {
45941 "description" : "Format of the defining file.",
45942 "enum" : [
45943 "list",
45944 "sources"
45945 ],
45946 "type" : "string"
45947 },
45948 "Options" : {
45949 "description" : "Additional options",
45950 "items" : {
45951 "properties" : {
45952 "Key" : {
45953 "type" : "string"
45954 },
45955 "Values" : {
45956 "items" : {
45957 "type" : "string"
45958 },
45959 "type" : "array"
45960 }
45961 },
45962 "type" : "object"
45963 },
45964 "optional" : 1,
45965 "type" : "array"
45966 },
45967 "Suites" : {
45968 "description" : "List of package distribuitions",
45969 "items" : {
45970 "type" : "string"
45971 },
45972 "type" : "array"
45973 },
45974 "Types" : {
45975 "description" : "List of package types.",
45976 "items" : {
45977 "enum" : [
45978 "deb",
45979 "deb-src"
45980 ],
45981 "type" : "string"
45982 },
45983 "type" : "array"
45984 },
45985 "URIs" : {
45986 "description" : "List of repository URIs.",
45987 "items" : {
45988 "type" : "string"
45989 },
45990 "type" : "array"
45991 }
45992 },
45993 "type" : "object"
45994 },
45995 "type" : "array"
45996 }
45997 },
45998 "type" : "object"
45999 },
46000 "type" : "array"
46001 },
46002 "infos" : {
46003 "description" : "Additional information/warnings for APT repositories.",
46004 "items" : {
46005 "properties" : {
46006 "index" : {
46007 "description" : "Index of the associated repository within the file.",
46008 "type" : "string"
46009 },
46010 "kind" : {
46011 "description" : "Kind of the information (e.g. warning).",
46012 "type" : "string"
46013 },
46014 "message" : {
46015 "description" : "Information message.",
46016 "type" : "string"
46017 },
46018 "path" : {
46019 "description" : "Path to the associated file.",
46020 "type" : "string"
46021 },
46022 "property" : {
46023 "description" : "Property from which the info originates.",
46024 "optional" : 1,
46025 "type" : "string"
46026 }
46027 },
46028 "type" : "object"
46029 },
46030 "type" : "array"
46031 },
46032 "standard-repos" : {
46033 "description" : "List of standard repositories and their configuration status",
46034 "items" : {
46035 "properties" : {
46036 "handle" : {
46037 "description" : "Handle to identify the repository.",
46038 "type" : "string"
46039 },
46040 "name" : {
46041 "description" : "Full name of the repository.",
46042 "type" : "string"
46043 },
46044 "status" : {
46045 "description" : "Indicating enabled/disabled status, if the repository is configured.",
46046 "optional" : 1,
46047 "type" : "boolean"
46048 }
46049 },
46050 "type" : "object"
46051 },
46052 "type" : "array"
46053 }
46054 },
46055 "type" : "object"
46056 }
46057 },
46058 "POST" : {
46059 "allowtoken" : 1,
46060 "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
46061 "method" : "POST",
46062 "name" : "change_repository",
46063 "parameters" : {
46064 "additionalProperties" : 0,
46065 "properties" : {
46066 "digest" : {
46067 "description" : "Digest to detect modifications.",
46068 "maxLength" : 80,
46069 "optional" : 1,
46070 "type" : "string",
46071 "typetext" : "<string>"
46072 },
46073 "enabled" : {
46074 "description" : "Whether the repository should be enabled or not.",
46075 "optional" : 1,
46076 "type" : "boolean",
46077 "typetext" : "<boolean>"
46078 },
46079 "index" : {
46080 "description" : "Index within the file (starting from 0).",
46081 "type" : "integer",
46082 "typetext" : "<integer>"
46083 },
46084 "node" : {
46085 "description" : "The cluster node name.",
46086 "format" : "pve-node",
46087 "type" : "string",
46088 "typetext" : "<string>"
46089 },
46090 "path" : {
46091 "description" : "Path to the containing file.",
46092 "type" : "string",
46093 "typetext" : "<string>"
46094 }
46095 }
46096 },
46097 "permissions" : {
46098 "check" : [
46099 "perm",
46100 "/nodes/{node}",
46101 [
46102 "Sys.Modify"
46103 ]
46104 ]
46105 },
46106 "protected" : 1,
46107 "proxyto" : "node",
46108 "returns" : {
46109 "type" : "null"
46110 }
46111 },
46112 "PUT" : {
46113 "allowtoken" : 1,
46114 "description" : "Add a standard repository to the configuration",
46115 "method" : "PUT",
46116 "name" : "add_repository",
46117 "parameters" : {
46118 "additionalProperties" : 0,
46119 "properties" : {
46120 "digest" : {
46121 "description" : "Digest to detect modifications.",
46122 "maxLength" : 80,
46123 "optional" : 1,
46124 "type" : "string",
46125 "typetext" : "<string>"
46126 },
46127 "handle" : {
46128 "description" : "Handle that identifies a repository.",
46129 "type" : "string",
46130 "typetext" : "<string>"
46131 },
46132 "node" : {
46133 "description" : "The cluster node name.",
46134 "format" : "pve-node",
46135 "type" : "string",
46136 "typetext" : "<string>"
46137 }
46138 }
46139 },
46140 "permissions" : {
46141 "check" : [
46142 "perm",
46143 "/nodes/{node}",
46144 [
46145 "Sys.Modify"
46146 ]
46147 ]
46148 },
46149 "protected" : 1,
46150 "proxyto" : "node",
46151 "returns" : {
46152 "type" : "null"
46153 }
46154 }
46155 },
46156 "leaf" : 1,
46157 "path" : "/nodes/{node}/apt/repositories",
46158 "text" : "repositories"
46159 },
56122987 46160 {
56122987
DM
46161 "info" : {
46162 "GET" : {
e9cd3bd4 46163 "allowtoken" : 1,
44660702
DM
46164 "description" : "Get package information for important Proxmox packages.",
46165 "method" : "GET",
7aacca6f
DM
46166 "name" : "versions",
46167 "parameters" : {
44660702 46168 "additionalProperties" : 0,
7aacca6f
DM
46169 "properties" : {
46170 "node" : {
44660702 46171 "description" : "The cluster node name.",
7aacca6f 46172 "format" : "pve-node",
013dc89f
DM
46173 "type" : "string",
46174 "typetext" : "<string>"
7aacca6f 46175 }
44660702 46176 }
7aacca6f 46177 },
56122987
DM
46178 "permissions" : {
46179 "check" : [
46180 "perm",
46181 "/nodes/{node}",
46182 [
46183 "Sys.Audit"
46184 ]
46185 ]
46186 },
7aacca6f 46187 "proxyto" : "node",
56122987
DM
46188 "returns" : {
46189 "items" : {
7aacca6f
DM
46190 "properties" : {},
46191 "type" : "object"
44660702
DM
46192 },
46193 "type" : "array"
56122987
DM
46194 }
46195 }
46196 },
44660702 46197 "leaf" : 1,
7aacca6f 46198 "path" : "/nodes/{node}/apt/versions",
44660702 46199 "text" : "versions"
56122987
DM
46200 }
46201 ],
56122987
DM
46202 "info" : {
46203 "GET" : {
e9cd3bd4 46204 "allowtoken" : 1,
44660702 46205 "description" : "Directory index for apt (Advanced Package Tool).",
7aacca6f 46206 "method" : "GET",
44660702 46207 "name" : "index",
7aacca6f
DM
46208 "parameters" : {
46209 "additionalProperties" : 0,
46210 "properties" : {
46211 "node" : {
44660702 46212 "description" : "The cluster node name.",
7aacca6f 46213 "format" : "pve-node",
013dc89f
DM
46214 "type" : "string",
46215 "typetext" : "<string>"
7aacca6f
DM
46216 }
46217 }
46218 },
7aacca6f
DM
46219 "permissions" : {
46220 "user" : "all"
46221 },
44660702
DM
46222 "returns" : {
46223 "items" : {
46224 "properties" : {
46225 "id" : {
46226 "type" : "string"
46227 }
46228 },
46229 "type" : "object"
46230 },
46231 "links" : [
46232 {
46233 "href" : "{id}",
46234 "rel" : "child"
46235 }
46236 ],
46237 "type" : "array"
46238 }
56122987 46239 }
7aacca6f 46240 },
44660702 46241 "leaf" : 0,
7aacca6f 46242 "path" : "/nodes/{node}/apt",
44660702 46243 "text" : "apt"
56122987
DM
46244 },
46245 {
56122987
DM
46246 "children" : [
46247 {
46248 "children" : [
46249 {
56122987
DM
46250 "info" : {
46251 "DELETE" : {
e9cd3bd4 46252 "allowtoken" : 1,
44660702 46253 "description" : "Delete rule.",
7aacca6f 46254 "method" : "DELETE",
44660702 46255 "name" : "delete_rule",
56122987
DM
46256 "parameters" : {
46257 "additionalProperties" : 0,
46258 "properties" : {
56122987 46259 "digest" : {
82551b2b
TL
46260 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
46261 "maxLength" : 64,
56122987 46262 "optional" : 1,
013dc89f
DM
46263 "type" : "string",
46264 "typetext" : "<string>"
56122987 46265 },
44660702
DM
46266 "node" : {
46267 "description" : "The cluster node name.",
46268 "format" : "pve-node",
013dc89f
DM
46269 "type" : "string",
46270 "typetext" : "<string>"
44660702 46271 },
7aacca6f 46272 "pos" : {
7aacca6f 46273 "description" : "Update rule at position <pos>.",
44660702
DM
46274 "minimum" : 0,
46275 "optional" : 1,
4bd7df8b 46276 "type" : "integer",
013dc89f 46277 "typetext" : "<integer> (0 - N)"
56122987
DM
46278 }
46279 }
46280 },
44660702
DM
46281 "permissions" : {
46282 "check" : [
46283 "perm",
46284 "/nodes/{node}",
46285 [
46286 "Sys.Modify"
46287 ]
46288 ]
46289 },
46290 "protected" : 1,
46291 "proxyto" : "node",
56122987
DM
46292 "returns" : {
46293 "type" : "null"
44660702
DM
46294 }
46295 },
46296 "GET" : {
e9cd3bd4 46297 "allowtoken" : 1,
44660702
DM
46298 "description" : "Get single rule data.",
46299 "method" : "GET",
46300 "name" : "get_rule",
46301 "parameters" : {
46302 "additionalProperties" : 0,
46303 "properties" : {
46304 "node" : {
46305 "description" : "The cluster node name.",
46306 "format" : "pve-node",
013dc89f
DM
46307 "type" : "string",
46308 "typetext" : "<string>"
44660702
DM
46309 },
46310 "pos" : {
46311 "description" : "Update rule at position <pos>.",
46312 "minimum" : 0,
46313 "optional" : 1,
4bd7df8b 46314 "type" : "integer",
013dc89f 46315 "typetext" : "<integer> (0 - N)"
44660702
DM
46316 }
46317 }
56122987 46318 },
56122987
DM
46319 "permissions" : {
46320 "check" : [
46321 "perm",
46322 "/nodes/{node}",
46323 [
44660702 46324 "Sys.Audit"
56122987
DM
46325 ]
46326 ]
44660702
DM
46327 },
46328 "proxyto" : "node",
46329 "returns" : {
46330 "properties" : {
e2d681b3
TL
46331 "action" : {
46332 "type" : "string"
46333 },
46334 "comment" : {
46335 "optional" : 1,
46336 "type" : "string"
46337 },
46338 "dest" : {
46339 "optional" : 1,
46340 "type" : "string"
46341 },
46342 "dport" : {
46343 "optional" : 1,
46344 "type" : "string"
46345 },
46346 "enable" : {
46347 "optional" : 1,
46348 "type" : "integer"
46349 },
4772952b
TL
46350 "icmp-type" : {
46351 "optional" : 1,
46352 "type" : "string"
46353 },
e2d681b3
TL
46354 "iface" : {
46355 "optional" : 1,
46356 "type" : "string"
46357 },
46358 "ipversion" : {
46359 "optional" : 1,
46360 "type" : "integer"
46361 },
95895385
TL
46362 "log" : {
46363 "description" : "Log level for firewall rule",
46364 "enum" : [
46365 "emerg",
46366 "alert",
46367 "crit",
46368 "err",
46369 "warning",
46370 "notice",
46371 "info",
46372 "debug",
46373 "nolog"
46374 ],
46375 "optional" : 1,
46376 "type" : "string"
46377 },
e2d681b3
TL
46378 "macro" : {
46379 "optional" : 1,
5f26e15b 46380 "type" : "string"
e2d681b3 46381 },
44660702
DM
46382 "pos" : {
46383 "type" : "integer"
e2d681b3
TL
46384 },
46385 "proto" : {
46386 "optional" : 1,
46387 "type" : "string"
46388 },
46389 "source" : {
46390 "optional" : 1,
46391 "type" : "string"
46392 },
46393 "sport" : {
46394 "optional" : 1,
46395 "type" : "string"
46396 },
46397 "type" : {
46398 "type" : "string"
44660702
DM
46399 }
46400 },
46401 "type" : "object"
7aacca6f 46402 }
56122987
DM
46403 },
46404 "PUT" : {
e9cd3bd4 46405 "allowtoken" : 1,
44660702
DM
46406 "description" : "Modify rule data.",
46407 "method" : "PUT",
56122987 46408 "name" : "update_rule",
56122987 46409 "parameters" : {
44660702 46410 "additionalProperties" : 0,
56122987 46411 "properties" : {
44660702
DM
46412 "action" : {
46413 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
46414 "maxLength" : 20,
46415 "minLength" : 2,
56122987 46416 "optional" : 1,
44660702
DM
46417 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
46418 "type" : "string"
56122987 46419 },
7aacca6f 46420 "comment" : {
e94f0d56 46421 "description" : "Descriptive comment.",
56122987 46422 "optional" : 1,
013dc89f
DM
46423 "type" : "string",
46424 "typetext" : "<string>"
56122987 46425 },
44660702
DM
46426 "delete" : {
46427 "description" : "A list of settings you want to delete.",
46428 "format" : "pve-configid-list",
56122987 46429 "optional" : 1,
013dc89f
DM
46430 "type" : "string",
46431 "typetext" : "<string>"
56122987 46432 },
44660702
DM
46433 "dest" : {
46434 "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.",
46435 "format" : "pve-fw-addr-spec",
0695fdaf 46436 "maxLength" : 512,
56122987 46437 "optional" : 1,
013dc89f
DM
46438 "type" : "string",
46439 "typetext" : "<string>"
56122987 46440 },
44660702 46441 "digest" : {
82551b2b
TL
46442 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
46443 "maxLength" : 64,
56122987 46444 "optional" : 1,
013dc89f
DM
46445 "type" : "string",
46446 "typetext" : "<string>"
56122987 46447 },
7aacca6f 46448 "dport" : {
7aacca6f 46449 "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
46450 "format" : "pve-fw-dport-spec",
46451 "optional" : 1,
013dc89f
DM
46452 "type" : "string",
46453 "typetext" : "<string>"
7aacca6f 46454 },
44660702 46455 "enable" : {
e94f0d56 46456 "description" : "Flag to enable/disable a rule.",
44660702 46457 "minimum" : 0,
56122987 46458 "optional" : 1,
4bd7df8b 46459 "type" : "integer",
013dc89f 46460 "typetext" : "<integer> (0 - N)"
56122987 46461 },
4772952b 46462 "icmp-type" : {
287a95cf 46463 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
46464 "format" : "pve-fw-icmp-type-spec",
46465 "optional" : 1,
46466 "type" : "string",
46467 "typetext" : "<string>"
46468 },
7aacca6f 46469 "iface" : {
44660702 46470 "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 46471 "format" : "pve-iface",
44660702 46472 "maxLength" : 20,
56122987 46473 "minLength" : 2,
44660702 46474 "optional" : 1,
013dc89f
DM
46475 "type" : "string",
46476 "typetext" : "<string>"
56122987 46477 },
95895385
TL
46478 "log" : {
46479 "description" : "Log level for firewall rule.",
46480 "enum" : [
46481 "emerg",
46482 "alert",
46483 "crit",
46484 "err",
46485 "warning",
46486 "notice",
46487 "info",
46488 "debug",
46489 "nolog"
46490 ],
46491 "optional" : 1,
46492 "type" : "string"
46493 },
44660702 46494 "macro" : {
e94f0d56 46495 "description" : "Use predefined standard macro.",
44660702
DM
46496 "maxLength" : 128,
46497 "optional" : 1,
013dc89f
DM
46498 "type" : "string",
46499 "typetext" : "<string>"
44660702
DM
46500 },
46501 "moveto" : {
46502 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
46503 "minimum" : 0,
7aacca6f 46504 "optional" : 1,
4bd7df8b 46505 "type" : "integer",
013dc89f 46506 "typetext" : "<integer> (0 - N)"
44660702
DM
46507 },
46508 "node" : {
46509 "description" : "The cluster node name.",
46510 "format" : "pve-node",
013dc89f
DM
46511 "type" : "string",
46512 "typetext" : "<string>"
56122987
DM
46513 },
46514 "pos" : {
44660702 46515 "description" : "Update rule at position <pos>.",
7aacca6f 46516 "minimum" : 0,
7aacca6f 46517 "optional" : 1,
4bd7df8b 46518 "type" : "integer",
013dc89f 46519 "typetext" : "<integer> (0 - N)"
7aacca6f 46520 },
44660702
DM
46521 "proto" : {
46522 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
46523 "format" : "pve-fw-protocol-spec",
7aacca6f 46524 "optional" : 1,
013dc89f
DM
46525 "type" : "string",
46526 "typetext" : "<string>"
7aacca6f 46527 },
44660702
DM
46528 "source" : {
46529 "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.",
46530 "format" : "pve-fw-addr-spec",
0695fdaf 46531 "maxLength" : 512,
56122987 46532 "optional" : 1,
013dc89f
DM
46533 "type" : "string",
46534 "typetext" : "<string>"
7aacca6f 46535 },
44660702
DM
46536 "sport" : {
46537 "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.",
46538 "format" : "pve-fw-sport-spec",
46539 "optional" : 1,
013dc89f
DM
46540 "type" : "string",
46541 "typetext" : "<string>"
44660702
DM
46542 },
46543 "type" : {
e94f0d56 46544 "description" : "Rule type.",
44660702
DM
46545 "enum" : [
46546 "in",
46547 "out",
46548 "group"
46549 ],
46550 "optional" : 1,
46551 "type" : "string"
56122987 46552 }
44660702 46553 }
56122987 46554 },
56122987
DM
46555 "permissions" : {
46556 "check" : [
46557 "perm",
46558 "/nodes/{node}",
46559 [
46560 "Sys.Modify"
46561 ]
46562 ]
7aacca6f 46563 },
44660702 46564 "protected" : 1,
7aacca6f 46565 "proxyto" : "node",
7aacca6f
DM
46566 "returns" : {
46567 "type" : "null"
56122987
DM
46568 }
46569 }
7aacca6f 46570 },
44660702 46571 "leaf" : 1,
7aacca6f 46572 "path" : "/nodes/{node}/firewall/rules/{pos}",
44660702 46573 "text" : "{pos}"
56122987
DM
46574 }
46575 ],
56122987
DM
46576 "info" : {
46577 "GET" : {
e9cd3bd4 46578 "allowtoken" : 1,
44660702
DM
46579 "description" : "List rules.",
46580 "method" : "GET",
46581 "name" : "get_rules",
46582 "parameters" : {
46583 "additionalProperties" : 0,
46584 "properties" : {
46585 "node" : {
46586 "description" : "The cluster node name.",
46587 "format" : "pve-node",
013dc89f
DM
46588 "type" : "string",
46589 "typetext" : "<string>"
44660702
DM
46590 }
46591 }
46592 },
46593 "permissions" : {
46594 "check" : [
46595 "perm",
46596 "/nodes/{node}",
46597 [
46598 "Sys.Audit"
46599 ]
46600 ]
46601 },
46602 "proxyto" : "node",
56122987 46603 "returns" : {
56122987
DM
46604 "items" : {
46605 "properties" : {
46606 "pos" : {
46607 "type" : "integer"
46608 }
44660702
DM
46609 },
46610 "type" : "object"
56122987 46611 },
7aacca6f
DM
46612 "links" : [
46613 {
46614 "href" : "{pos}",
46615 "rel" : "child"
46616 }
46617 ],
46618 "type" : "array"
44660702 46619 }
56122987
DM
46620 },
46621 "POST" : {
e9cd3bd4 46622 "allowtoken" : 1,
44660702 46623 "description" : "Create new rule.",
7aacca6f
DM
46624 "method" : "POST",
46625 "name" : "create_rule",
56122987 46626 "parameters" : {
44660702 46627 "additionalProperties" : 0,
56122987 46628 "properties" : {
7aacca6f 46629 "action" : {
7aacca6f 46630 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
44660702 46631 "maxLength" : 20,
7aacca6f
DM
46632 "minLength" : 2,
46633 "optional" : 0,
44660702
DM
46634 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
46635 "type" : "string"
56122987 46636 },
44660702 46637 "comment" : {
e94f0d56 46638 "description" : "Descriptive comment.",
56122987 46639 "optional" : 1,
013dc89f
DM
46640 "type" : "string",
46641 "typetext" : "<string>"
56122987 46642 },
44660702
DM
46643 "dest" : {
46644 "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.",
46645 "format" : "pve-fw-addr-spec",
0695fdaf 46646 "maxLength" : 512,
7aacca6f 46647 "optional" : 1,
013dc89f
DM
46648 "type" : "string",
46649 "typetext" : "<string>"
56122987 46650 },
44660702 46651 "digest" : {
82551b2b
TL
46652 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
46653 "maxLength" : 64,
44660702 46654 "optional" : 1,
013dc89f
DM
46655 "type" : "string",
46656 "typetext" : "<string>"
56122987 46657 },
44660702
DM
46658 "dport" : {
46659 "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.",
46660 "format" : "pve-fw-dport-spec",
7aacca6f 46661 "optional" : 1,
013dc89f
DM
46662 "type" : "string",
46663 "typetext" : "<string>"
56122987 46664 },
44660702 46665 "enable" : {
e94f0d56 46666 "description" : "Flag to enable/disable a rule.",
44660702
DM
46667 "minimum" : 0,
46668 "optional" : 1,
4bd7df8b 46669 "type" : "integer",
013dc89f 46670 "typetext" : "<integer> (0 - N)"
44660702 46671 },
4772952b 46672 "icmp-type" : {
287a95cf 46673 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
46674 "format" : "pve-fw-icmp-type-spec",
46675 "optional" : 1,
46676 "type" : "string",
46677 "typetext" : "<string>"
46678 },
7aacca6f 46679 "iface" : {
44660702 46680 "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 46681 "format" : "pve-iface",
56122987 46682 "maxLength" : 20,
7aacca6f 46683 "minLength" : 2,
7aacca6f 46684 "optional" : 1,
013dc89f
DM
46685 "type" : "string",
46686 "typetext" : "<string>"
56122987 46687 },
95895385
TL
46688 "log" : {
46689 "description" : "Log level for firewall rule.",
46690 "enum" : [
46691 "emerg",
46692 "alert",
46693 "crit",
46694 "err",
46695 "warning",
46696 "notice",
46697 "info",
46698 "debug",
46699 "nolog"
46700 ],
46701 "optional" : 1,
46702 "type" : "string"
46703 },
44660702 46704 "macro" : {
e94f0d56 46705 "description" : "Use predefined standard macro.",
44660702 46706 "maxLength" : 128,
7aacca6f 46707 "optional" : 1,
013dc89f
DM
46708 "type" : "string",
46709 "typetext" : "<string>"
56122987 46710 },
44660702
DM
46711 "node" : {
46712 "description" : "The cluster node name.",
46713 "format" : "pve-node",
013dc89f
DM
46714 "type" : "string",
46715 "typetext" : "<string>"
44660702
DM
46716 },
46717 "pos" : {
46718 "description" : "Update rule at position <pos>.",
46719 "minimum" : 0,
46720 "optional" : 1,
4bd7df8b 46721 "type" : "integer",
013dc89f 46722 "typetext" : "<integer> (0 - N)"
44660702
DM
46723 },
46724 "proto" : {
46725 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
46726 "format" : "pve-fw-protocol-spec",
56122987 46727 "optional" : 1,
013dc89f
DM
46728 "type" : "string",
46729 "typetext" : "<string>"
56122987 46730 },
7aacca6f 46731 "source" : {
7aacca6f 46732 "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 46733 "format" : "pve-fw-addr-spec",
0695fdaf 46734 "maxLength" : 512,
44660702 46735 "optional" : 1,
013dc89f
DM
46736 "type" : "string",
46737 "typetext" : "<string>"
7aacca6f 46738 },
44660702
DM
46739 "sport" : {
46740 "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.",
46741 "format" : "pve-fw-sport-spec",
7aacca6f 46742 "optional" : 1,
013dc89f
DM
46743 "type" : "string",
46744 "typetext" : "<string>"
44660702
DM
46745 },
46746 "type" : {
e94f0d56 46747 "description" : "Rule type.",
44660702
DM
46748 "enum" : [
46749 "in",
46750 "out",
46751 "group"
46752 ],
46753 "optional" : 0,
46754 "type" : "string"
56122987 46755 }
44660702 46756 }
7aacca6f 46757 },
56122987
DM
46758 "permissions" : {
46759 "check" : [
46760 "perm",
46761 "/nodes/{node}",
46762 [
46763 "Sys.Modify"
46764 ]
46765 ]
46766 },
44660702
DM
46767 "protected" : 1,
46768 "proxyto" : "node",
46769 "returns" : {
46770 "type" : "null"
46771 }
56122987
DM
46772 }
46773 },
44660702 46774 "leaf" : 0,
7aacca6f 46775 "path" : "/nodes/{node}/firewall/rules",
44660702 46776 "text" : "rules"
56122987
DM
46777 },
46778 {
56122987 46779 "info" : {
44660702 46780 "GET" : {
e9cd3bd4 46781 "allowtoken" : 1,
44660702
DM
46782 "description" : "Get host firewall options.",
46783 "method" : "GET",
46784 "name" : "get_options",
56122987 46785 "parameters" : {
7aacca6f 46786 "additionalProperties" : 0,
56122987 46787 "properties" : {
44660702
DM
46788 "node" : {
46789 "description" : "The cluster node name.",
46790 "format" : "pve-node",
013dc89f
DM
46791 "type" : "string",
46792 "typetext" : "<string>"
44660702
DM
46793 }
46794 }
46795 },
46796 "permissions" : {
46797 "check" : [
46798 "perm",
46799 "/nodes/{node}",
46800 [
46801 "Sys.Audit"
46802 ]
46803 ]
46804 },
46805 "proxyto" : "node",
46806 "returns" : {
46807 "properties" : {
46808 "enable" : {
46809 "description" : "Enable host firewall rules.",
7aacca6f 46810 "optional" : 1,
44660702 46811 "type" : "boolean"
7aacca6f 46812 },
44660702
DM
46813 "log_level_in" : {
46814 "description" : "Log level for incoming traffic.",
56122987
DM
46815 "enum" : [
46816 "emerg",
46817 "alert",
46818 "crit",
46819 "err",
46820 "warning",
46821 "notice",
46822 "info",
46823 "debug",
46824 "nolog"
46825 ],
56122987 46826 "optional" : 1,
44660702
DM
46827 "type" : "string"
46828 },
46829 "log_level_out" : {
46830 "description" : "Log level for outgoing traffic.",
56122987
DM
46831 "enum" : [
46832 "emerg",
46833 "alert",
46834 "crit",
46835 "err",
46836 "warning",
46837 "notice",
46838 "info",
46839 "debug",
46840 "nolog"
46841 ],
44660702
DM
46842 "optional" : 1,
46843 "type" : "string"
46844 },
95895385
TL
46845 "log_nf_conntrack" : {
46846 "default" : 0,
46847 "description" : "Enable logging of conntrack information.",
46848 "optional" : 1,
46849 "type" : "boolean"
46850 },
44660702 46851 "ndp" : {
5c1699e5
TL
46852 "default" : 0,
46853 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702
DM
46854 "optional" : 1,
46855 "type" : "boolean"
46856 },
5f26e15b
TL
46857 "nf_conntrack_allow_invalid" : {
46858 "default" : 0,
46859 "description" : "Allow invalid packets on connection tracking.",
46860 "optional" : 1,
46861 "type" : "boolean"
46862 },
9d2e98ed
TL
46863 "nf_conntrack_helpers" : {
46864 "default" : "",
46865 "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
46866 "format" : "pve-fw-conntrack-helper",
46867 "optional" : 1,
46868 "type" : "string"
46869 },
44660702 46870 "nf_conntrack_max" : {
5c1699e5 46871 "default" : 262144,
44660702
DM
46872 "description" : "Maximum number of tracked connections.",
46873 "minimum" : 32768,
46874 "optional" : 1,
46875 "type" : "integer"
46876 },
46877 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 46878 "default" : 432000,
44660702
DM
46879 "description" : "Conntrack established timeout.",
46880 "minimum" : 7875,
46881 "optional" : 1,
46882 "type" : "integer"
46883 },
5c1699e5
TL
46884 "nf_conntrack_tcp_timeout_syn_recv" : {
46885 "default" : 60,
46886 "description" : "Conntrack syn recv timeout.",
46887 "maximum" : 60,
46888 "minimum" : 30,
46889 "optional" : 1,
46890 "type" : "integer"
46891 },
44660702
DM
46892 "nosmurfs" : {
46893 "description" : "Enable SMURFS filter.",
46894 "optional" : 1,
46895 "type" : "boolean"
56122987 46896 },
5c1699e5
TL
46897 "protection_synflood" : {
46898 "default" : 0,
46899 "description" : "Enable synflood protection",
46900 "optional" : 1,
46901 "type" : "boolean"
46902 },
46903 "protection_synflood_burst" : {
46904 "default" : 1000,
46905 "description" : "Synflood protection rate burst by ip src.",
46906 "optional" : 1,
46907 "type" : "integer"
46908 },
46909 "protection_synflood_rate" : {
46910 "default" : 200,
46911 "description" : "Synflood protection rate syn/sec by ip src.",
46912 "optional" : 1,
46913 "type" : "integer"
46914 },
7aacca6f 46915 "smurf_log_level" : {
44660702 46916 "description" : "Log level for SMURFS filter.",
56122987
DM
46917 "enum" : [
46918 "emerg",
46919 "alert",
46920 "crit",
46921 "err",
46922 "warning",
46923 "notice",
46924 "info",
46925 "debug",
46926 "nolog"
7aacca6f 46927 ],
7aacca6f
DM
46928 "optional" : 1,
46929 "type" : "string"
56122987 46930 },
44660702
DM
46931 "tcp_flags_log_level" : {
46932 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
46933 "enum" : [
46934 "emerg",
46935 "alert",
46936 "crit",
46937 "err",
46938 "warning",
46939 "notice",
46940 "info",
46941 "debug",
46942 "nolog"
46943 ],
44660702
DM
46944 "optional" : 1,
46945 "type" : "string"
7aacca6f 46946 },
44660702 46947 "tcpflags" : {
5c1699e5 46948 "default" : 0,
44660702 46949 "description" : "Filter illegal combinations of TCP flags.",
56122987 46950 "optional" : 1,
44660702 46951 "type" : "boolean"
56122987 46952 }
44660702
DM
46953 },
46954 "type" : "object"
7aacca6f 46955 }
56122987 46956 },
44660702 46957 "PUT" : {
e9cd3bd4 46958 "allowtoken" : 1,
44660702
DM
46959 "description" : "Set Firewall options.",
46960 "method" : "PUT",
46961 "name" : "set_options",
7aacca6f 46962 "parameters" : {
44660702 46963 "additionalProperties" : 0,
7aacca6f 46964 "properties" : {
44660702
DM
46965 "delete" : {
46966 "description" : "A list of settings you want to delete.",
46967 "format" : "pve-configid-list",
7aacca6f 46968 "optional" : 1,
013dc89f
DM
46969 "type" : "string",
46970 "typetext" : "<string>"
56122987 46971 },
44660702 46972 "digest" : {
82551b2b
TL
46973 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
46974 "maxLength" : 64,
44660702 46975 "optional" : 1,
013dc89f
DM
46976 "type" : "string",
46977 "typetext" : "<string>"
56122987 46978 },
44660702
DM
46979 "enable" : {
46980 "description" : "Enable host firewall rules.",
7aacca6f 46981 "optional" : 1,
013dc89f
DM
46982 "type" : "boolean",
46983 "typetext" : "<boolean>"
44660702
DM
46984 },
46985 "log_level_in" : {
46986 "description" : "Log level for incoming traffic.",
56122987
DM
46987 "enum" : [
46988 "emerg",
46989 "alert",
46990 "crit",
46991 "err",
46992 "warning",
46993 "notice",
46994 "info",
46995 "debug",
46996 "nolog"
44660702 46997 ],
7aacca6f 46998 "optional" : 1,
44660702 46999 "type" : "string"
7aacca6f 47000 },
44660702
DM
47001 "log_level_out" : {
47002 "description" : "Log level for outgoing traffic.",
56122987
DM
47003 "enum" : [
47004 "emerg",
47005 "alert",
47006 "crit",
47007 "err",
47008 "warning",
47009 "notice",
47010 "info",
47011 "debug",
47012 "nolog"
47013 ],
47014 "optional" : 1,
7aacca6f 47015 "type" : "string"
56122987 47016 },
95895385
TL
47017 "log_nf_conntrack" : {
47018 "default" : 0,
47019 "description" : "Enable logging of conntrack information.",
47020 "optional" : 1,
47021 "type" : "boolean",
47022 "typetext" : "<boolean>"
47023 },
44660702 47024 "ndp" : {
5c1699e5
TL
47025 "default" : 0,
47026 "description" : "Enable NDP (Neighbor Discovery Protocol).",
7aacca6f 47027 "optional" : 1,
013dc89f
DM
47028 "type" : "boolean",
47029 "typetext" : "<boolean>"
44660702 47030 },
5f26e15b
TL
47031 "nf_conntrack_allow_invalid" : {
47032 "default" : 0,
47033 "description" : "Allow invalid packets on connection tracking.",
47034 "optional" : 1,
47035 "type" : "boolean",
47036 "typetext" : "<boolean>"
47037 },
9d2e98ed
TL
47038 "nf_conntrack_helpers" : {
47039 "default" : "",
47040 "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
47041 "format" : "pve-fw-conntrack-helper",
47042 "optional" : 1,
47043 "type" : "string",
47044 "typetext" : "<string>"
47045 },
44660702 47046 "nf_conntrack_max" : {
5c1699e5 47047 "default" : 262144,
44660702
DM
47048 "description" : "Maximum number of tracked connections.",
47049 "minimum" : 32768,
47050 "optional" : 1,
4bd7df8b 47051 "type" : "integer",
013dc89f 47052 "typetext" : "<integer> (32768 - N)"
44660702
DM
47053 },
47054 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 47055 "default" : 432000,
44660702
DM
47056 "description" : "Conntrack established timeout.",
47057 "minimum" : 7875,
47058 "optional" : 1,
4bd7df8b 47059 "type" : "integer",
013dc89f 47060 "typetext" : "<integer> (7875 - N)"
44660702 47061 },
5c1699e5
TL
47062 "nf_conntrack_tcp_timeout_syn_recv" : {
47063 "default" : 60,
47064 "description" : "Conntrack syn recv timeout.",
47065 "maximum" : 60,
47066 "minimum" : 30,
47067 "optional" : 1,
47068 "type" : "integer",
47069 "typetext" : "<integer> (30 - 60)"
47070 },
44660702
DM
47071 "node" : {
47072 "description" : "The cluster node name.",
47073 "format" : "pve-node",
013dc89f
DM
47074 "type" : "string",
47075 "typetext" : "<string>"
44660702
DM
47076 },
47077 "nosmurfs" : {
47078 "description" : "Enable SMURFS filter.",
47079 "optional" : 1,
013dc89f
DM
47080 "type" : "boolean",
47081 "typetext" : "<boolean>"
44660702 47082 },
5c1699e5
TL
47083 "protection_synflood" : {
47084 "default" : 0,
47085 "description" : "Enable synflood protection",
47086 "optional" : 1,
47087 "type" : "boolean",
47088 "typetext" : "<boolean>"
47089 },
47090 "protection_synflood_burst" : {
47091 "default" : 1000,
47092 "description" : "Synflood protection rate burst by ip src.",
47093 "optional" : 1,
47094 "type" : "integer",
47095 "typetext" : "<integer>"
47096 },
47097 "protection_synflood_rate" : {
47098 "default" : 200,
47099 "description" : "Synflood protection rate syn/sec by ip src.",
47100 "optional" : 1,
47101 "type" : "integer",
47102 "typetext" : "<integer>"
47103 },
44660702
DM
47104 "smurf_log_level" : {
47105 "description" : "Log level for SMURFS filter.",
56122987
DM
47106 "enum" : [
47107 "emerg",
47108 "alert",
47109 "crit",
47110 "err",
47111 "warning",
47112 "notice",
47113 "info",
47114 "debug",
47115 "nolog"
44660702
DM
47116 ],
47117 "optional" : 1,
47118 "type" : "string"
56122987 47119 },
44660702
DM
47120 "tcp_flags_log_level" : {
47121 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
47122 "enum" : [
47123 "emerg",
47124 "alert",
47125 "crit",
47126 "err",
47127 "warning",
47128 "notice",
47129 "info",
47130 "debug",
47131 "nolog"
47132 ],
44660702
DM
47133 "optional" : 1,
47134 "type" : "string"
7aacca6f 47135 },
44660702 47136 "tcpflags" : {
5c1699e5 47137 "default" : 0,
44660702 47138 "description" : "Filter illegal combinations of TCP flags.",
56122987 47139 "optional" : 1,
013dc89f
DM
47140 "type" : "boolean",
47141 "typetext" : "<boolean>"
56122987 47142 }
7aacca6f 47143 }
56122987 47144 },
44660702
DM
47145 "permissions" : {
47146 "check" : [
47147 "perm",
47148 "/nodes/{node}",
47149 [
47150 "Sys.Modify"
47151 ]
47152 ]
47153 },
47154 "protected" : 1,
47155 "proxyto" : "node",
47156 "returns" : {
47157 "type" : "null"
47158 }
7aacca6f
DM
47159 }
47160 },
44660702
DM
47161 "leaf" : 1,
47162 "path" : "/nodes/{node}/firewall/options",
7aacca6f
DM
47163 "text" : "options"
47164 },
47165 {
7aacca6f
DM
47166 "info" : {
47167 "GET" : {
e9cd3bd4 47168 "allowtoken" : 1,
44660702
DM
47169 "description" : "Read firewall log",
47170 "method" : "GET",
7aacca6f 47171 "name" : "log",
56122987 47172 "parameters" : {
44660702 47173 "additionalProperties" : 0,
56122987 47174 "properties" : {
7aacca6f 47175 "limit" : {
44660702 47176 "minimum" : 0,
7aacca6f 47177 "optional" : 1,
4bd7df8b 47178 "type" : "integer",
013dc89f 47179 "typetext" : "<integer> (0 - N)"
7aacca6f 47180 },
56122987 47181 "node" : {
7aacca6f 47182 "description" : "The cluster node name.",
44660702 47183 "format" : "pve-node",
013dc89f
DM
47184 "type" : "string",
47185 "typetext" : "<string>"
44660702 47186 },
9d2e98ed
TL
47187 "since" : {
47188 "description" : "Display log since this UNIX epoch.",
47189 "minimum" : 0,
47190 "optional" : 1,
47191 "type" : "integer",
47192 "typetext" : "<integer> (0 - N)"
47193 },
44660702
DM
47194 "start" : {
47195 "minimum" : 0,
47196 "optional" : 1,
4bd7df8b 47197 "type" : "integer",
013dc89f 47198 "typetext" : "<integer> (0 - N)"
9d2e98ed
TL
47199 },
47200 "until" : {
47201 "description" : "Display log until this UNIX epoch.",
47202 "minimum" : 0,
47203 "optional" : 1,
47204 "type" : "integer",
47205 "typetext" : "<integer> (0 - N)"
56122987 47206 }
44660702 47207 }
7aacca6f 47208 },
56122987
DM
47209 "permissions" : {
47210 "check" : [
47211 "perm",
47212 "/nodes/{node}",
47213 [
47214 "Sys.Syslog"
47215 ]
47216 ]
47217 },
44660702
DM
47218 "protected" : 1,
47219 "proxyto" : "node",
56122987
DM
47220 "returns" : {
47221 "items" : {
56122987 47222 "properties" : {
56122987 47223 "n" : {
44660702
DM
47224 "description" : "Line number",
47225 "type" : "integer"
7aacca6f
DM
47226 },
47227 "t" : {
44660702
DM
47228 "description" : "Line text",
47229 "type" : "string"
56122987 47230 }
44660702
DM
47231 },
47232 "type" : "object"
56122987
DM
47233 },
47234 "type" : "array"
7aacca6f 47235 }
56122987
DM
47236 }
47237 },
44660702
DM
47238 "leaf" : 1,
47239 "path" : "/nodes/{node}/firewall/log",
7aacca6f 47240 "text" : "log"
56122987
DM
47241 }
47242 ],
47243 "info" : {
47244 "GET" : {
e9cd3bd4 47245 "allowtoken" : 1,
44660702
DM
47246 "description" : "Directory index.",
47247 "method" : "GET",
47248 "name" : "index",
56122987 47249 "parameters" : {
44660702 47250 "additionalProperties" : 0,
56122987
DM
47251 "properties" : {
47252 "node" : {
47253 "description" : "The cluster node name.",
44660702 47254 "format" : "pve-node",
013dc89f
DM
47255 "type" : "string",
47256 "typetext" : "<string>"
56122987 47257 }
44660702 47258 }
56122987 47259 },
7aacca6f
DM
47260 "permissions" : {
47261 "user" : "all"
47262 },
56122987
DM
47263 "returns" : {
47264 "items" : {
47265 "properties" : {},
47266 "type" : "object"
47267 },
56122987
DM
47268 "links" : [
47269 {
44660702
DM
47270 "href" : "{name}",
47271 "rel" : "child"
56122987 47272 }
44660702
DM
47273 ],
47274 "type" : "array"
47275 }
56122987 47276 }
7aacca6f 47277 },
44660702 47278 "leaf" : 0,
7aacca6f 47279 "path" : "/nodes/{node}/firewall",
44660702 47280 "text" : "firewall"
56122987 47281 },
5d9c884c
DM
47282 {
47283 "children" : [
47284 {
47285 "children" : [
47286 {
47287 "info" : {
47288 "GET" : {
e9cd3bd4 47289 "allowtoken" : 1,
5d9c884c
DM
47290 "description" : "Get replication job status.",
47291 "method" : "GET",
47292 "name" : "job_status",
47293 "parameters" : {
47294 "additionalProperties" : 0,
47295 "properties" : {
47296 "id" : {
47297 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
47298 "format" : "pve-replication-job-id",
47299 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
47300 "type" : "string"
47301 },
47302 "node" : {
47303 "description" : "The cluster node name.",
47304 "format" : "pve-node",
47305 "type" : "string",
47306 "typetext" : "<string>"
47307 }
47308 }
47309 },
47310 "permissions" : {
47311 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
47312 "user" : "all"
47313 },
47314 "protected" : 1,
47315 "proxyto" : "node",
47316 "returns" : {
5d9c884c
DM
47317 "type" : "object"
47318 }
47319 }
47320 },
47321 "leaf" : 1,
47322 "path" : "/nodes/{node}/replication/{id}/status",
47323 "text" : "status"
47324 },
47325 {
47326 "info" : {
47327 "GET" : {
e9cd3bd4 47328 "allowtoken" : 1,
5d9c884c
DM
47329 "description" : "Read replication job log.",
47330 "method" : "GET",
47331 "name" : "read_job_log",
47332 "parameters" : {
47333 "additionalProperties" : 0,
47334 "properties" : {
47335 "id" : {
47336 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
47337 "format" : "pve-replication-job-id",
47338 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
47339 "type" : "string"
47340 },
47341 "limit" : {
47342 "minimum" : 0,
47343 "optional" : 1,
47344 "type" : "integer",
47345 "typetext" : "<integer> (0 - N)"
47346 },
47347 "node" : {
47348 "description" : "The cluster node name.",
47349 "format" : "pve-node",
47350 "type" : "string",
47351 "typetext" : "<string>"
47352 },
47353 "start" : {
47354 "minimum" : 0,
47355 "optional" : 1,
47356 "type" : "integer",
47357 "typetext" : "<integer> (0 - N)"
47358 }
47359 }
47360 },
47361 "permissions" : {
47362 "description" : "Requires the VM.Audit permission on /vms/<vmid>, or 'Sys.Audit' on '/nodes/<node>'",
47363 "user" : "all"
47364 },
47365 "protected" : 1,
47366 "proxyto" : "node",
47367 "returns" : {
47368 "items" : {
47369 "properties" : {
47370 "n" : {
47371 "description" : "Line number",
47372 "type" : "integer"
47373 },
47374 "t" : {
47375 "description" : "Line text",
47376 "type" : "string"
47377 }
47378 },
47379 "type" : "object"
47380 },
47381 "type" : "array"
47382 }
47383 }
47384 },
47385 "leaf" : 1,
47386 "path" : "/nodes/{node}/replication/{id}/log",
47387 "text" : "log"
47388 },
47389 {
47390 "info" : {
47391 "POST" : {
e9cd3bd4 47392 "allowtoken" : 1,
5d9c884c
DM
47393 "description" : "Schedule replication job to start as soon as possible.",
47394 "method" : "POST",
47395 "name" : "schedule_now",
47396 "parameters" : {
47397 "additionalProperties" : 0,
47398 "properties" : {
47399 "id" : {
47400 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
47401 "format" : "pve-replication-job-id",
47402 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
47403 "type" : "string"
47404 },
47405 "node" : {
47406 "description" : "The cluster node name.",
47407 "format" : "pve-node",
47408 "type" : "string",
47409 "typetext" : "<string>"
47410 }
47411 }
47412 },
47413 "permissions" : {
47414 "check" : [
47415 "perm",
47416 "/storage",
47417 [
47418 "Datastore.Allocate"
47419 ]
47420 ]
47421 },
47422 "protected" : 1,
47423 "proxyto" : "node",
47424 "returns" : {
47425 "type" : "string"
47426 }
47427 }
47428 },
47429 "leaf" : 1,
47430 "path" : "/nodes/{node}/replication/{id}/schedule_now",
47431 "text" : "schedule_now"
47432 }
47433 ],
47434 "info" : {
47435 "GET" : {
e9cd3bd4 47436 "allowtoken" : 1,
5d9c884c
DM
47437 "description" : "Directory index.",
47438 "method" : "GET",
47439 "name" : "index",
47440 "parameters" : {
47441 "additionalProperties" : 0,
47442 "properties" : {
47443 "id" : {
47444 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
47445 "format" : "pve-replication-job-id",
47446 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
47447 "type" : "string"
47448 },
47449 "node" : {
47450 "description" : "The cluster node name.",
47451 "format" : "pve-node",
47452 "type" : "string",
47453 "typetext" : "<string>"
47454 }
47455 }
47456 },
47457 "permissions" : {
47458 "user" : "all"
47459 },
47460 "returns" : {
47461 "items" : {
47462 "properties" : {},
47463 "type" : "object"
47464 },
47465 "links" : [
47466 {
47467 "href" : "{name}",
47468 "rel" : "child"
47469 }
47470 ],
47471 "type" : "array"
47472 }
47473 }
47474 },
47475 "leaf" : 0,
47476 "path" : "/nodes/{node}/replication/{id}",
47477 "text" : "{id}"
47478 }
47479 ],
47480 "info" : {
47481 "GET" : {
e9cd3bd4 47482 "allowtoken" : 1,
5d9c884c
DM
47483 "description" : "List status of all replication jobs on this node.",
47484 "method" : "GET",
47485 "name" : "status",
47486 "parameters" : {
47487 "additionalProperties" : 0,
47488 "properties" : {
47489 "guest" : {
47490 "description" : "Only list replication jobs for this guest.",
47491 "format" : "pve-vmid",
8dd66e12
TL
47492 "maximum" : 999999999,
47493 "minimum" : 100,
5d9c884c
DM
47494 "optional" : 1,
47495 "type" : "integer",
8dd66e12 47496 "typetext" : "<integer> (100 - 999999999)"
5d9c884c
DM
47497 },
47498 "node" : {
47499 "description" : "The cluster node name.",
47500 "format" : "pve-node",
47501 "type" : "string",
47502 "typetext" : "<string>"
47503 }
47504 }
47505 },
47506 "permissions" : {
47507 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
47508 "user" : "all"
47509 },
47510 "protected" : 1,
47511 "proxyto" : "node",
47512 "returns" : {
47513 "items" : {
47514 "properties" : {
47515 "id" : {
47516 "type" : "string"
47517 }
47518 },
47519 "type" : "object"
47520 },
47521 "links" : [
47522 {
47523 "href" : "{id}",
47524 "rel" : "child"
47525 }
47526 ],
47527 "type" : "array"
47528 }
47529 }
47530 },
47531 "leaf" : 0,
47532 "path" : "/nodes/{node}/replication",
47533 "text" : "replication"
47534 },
a9a8e3d1
DM
47535 {
47536 "children" : [
47537 {
47538 "children" : [
47539 {
47540 "info" : {
47541 "DELETE" : {
e9cd3bd4 47542 "allowtoken" : 1,
a9a8e3d1
DM
47543 "description" : "Revoke existing certificate from CA.",
47544 "method" : "DELETE",
47545 "name" : "revoke_certificate",
47546 "parameters" : {
47547 "additionalProperties" : 0,
47548 "properties" : {
47549 "node" : {
47550 "description" : "The cluster node name.",
47551 "format" : "pve-node",
47552 "type" : "string",
47553 "typetext" : "<string>"
47554 }
47555 }
47556 },
ac70d7d1
TL
47557 "permissions" : {
47558 "check" : [
47559 "perm",
47560 "/nodes/{node}",
47561 [
47562 "Sys.Modify"
47563 ]
47564 ]
47565 },
a9a8e3d1
DM
47566 "protected" : 1,
47567 "proxyto" : "node",
47568 "returns" : {
47569 "type" : "string"
47570 }
47571 },
47572 "POST" : {
e9cd3bd4 47573 "allowtoken" : 1,
a9a8e3d1
DM
47574 "description" : "Order a new certificate from ACME-compatible CA.",
47575 "method" : "POST",
47576 "name" : "new_certificate",
47577 "parameters" : {
47578 "additionalProperties" : 0,
47579 "properties" : {
47580 "force" : {
47581 "default" : 0,
47582 "description" : "Overwrite existing custom certificate.",
47583 "optional" : 1,
47584 "type" : "boolean",
47585 "typetext" : "<boolean>"
47586 },
47587 "node" : {
47588 "description" : "The cluster node name.",
47589 "format" : "pve-node",
47590 "type" : "string",
47591 "typetext" : "<string>"
47592 }
47593 }
47594 },
ac70d7d1
TL
47595 "permissions" : {
47596 "check" : [
47597 "perm",
47598 "/nodes/{node}",
47599 [
47600 "Sys.Modify"
47601 ]
47602 ]
47603 },
a9a8e3d1
DM
47604 "protected" : 1,
47605 "proxyto" : "node",
47606 "returns" : {
47607 "type" : "string"
47608 }
47609 },
47610 "PUT" : {
e9cd3bd4 47611 "allowtoken" : 1,
a9a8e3d1
DM
47612 "description" : "Renew existing certificate from CA.",
47613 "method" : "PUT",
47614 "name" : "renew_certificate",
47615 "parameters" : {
47616 "additionalProperties" : 0,
47617 "properties" : {
47618 "force" : {
47619 "default" : 0,
47620 "description" : "Force renewal even if expiry is more than 30 days away.",
47621 "optional" : 1,
47622 "type" : "boolean",
47623 "typetext" : "<boolean>"
47624 },
47625 "node" : {
47626 "description" : "The cluster node name.",
47627 "format" : "pve-node",
47628 "type" : "string",
47629 "typetext" : "<string>"
47630 }
47631 }
47632 },
ac70d7d1
TL
47633 "permissions" : {
47634 "check" : [
47635 "perm",
47636 "/nodes/{node}",
47637 [
47638 "Sys.Modify"
47639 ]
47640 ]
47641 },
a9a8e3d1
DM
47642 "protected" : 1,
47643 "proxyto" : "node",
47644 "returns" : {
47645 "type" : "string"
47646 }
47647 }
47648 },
47649 "leaf" : 1,
47650 "path" : "/nodes/{node}/certificates/acme/certificate",
47651 "text" : "certificate"
47652 }
47653 ],
47654 "info" : {
47655 "GET" : {
e9cd3bd4 47656 "allowtoken" : 1,
a9a8e3d1
DM
47657 "description" : "ACME index.",
47658 "method" : "GET",
47659 "name" : "index",
47660 "parameters" : {
47661 "additionalProperties" : 0,
47662 "properties" : {
47663 "node" : {
47664 "description" : "The cluster node name.",
47665 "format" : "pve-node",
47666 "type" : "string",
47667 "typetext" : "<string>"
47668 }
47669 }
47670 },
47671 "permissions" : {
47672 "user" : "all"
47673 },
47674 "returns" : {
47675 "items" : {
47676 "properties" : {},
47677 "type" : "object"
47678 },
47679 "links" : [
47680 {
47681 "href" : "{name}",
47682 "rel" : "child"
47683 }
47684 ],
47685 "type" : "array"
47686 }
47687 }
47688 },
47689 "leaf" : 0,
47690 "path" : "/nodes/{node}/certificates/acme",
47691 "text" : "acme"
47692 },
47693 {
47694 "info" : {
47695 "GET" : {
e9cd3bd4 47696 "allowtoken" : 1,
a9a8e3d1
DM
47697 "description" : "Get information about node's certificates.",
47698 "method" : "GET",
47699 "name" : "info",
47700 "parameters" : {
47701 "additionalProperties" : 0,
47702 "properties" : {
47703 "node" : {
47704 "description" : "The cluster node name.",
47705 "format" : "pve-node",
47706 "type" : "string",
47707 "typetext" : "<string>"
47708 }
47709 }
47710 },
47711 "permissions" : {
47712 "user" : "all"
47713 },
47714 "proxyto" : "node",
47715 "returns" : {
47716 "items" : {
47717 "properties" : {
47718 "filename" : {
47719 "optional" : 1,
47720 "type" : "string"
47721 },
47722 "fingerprint" : {
47723 "description" : "Certificate SHA 256 fingerprint.",
47724 "optional" : 1,
47725 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
47726 "type" : "string"
47727 },
47728 "issuer" : {
47729 "description" : "Certificate issuer name.",
47730 "optional" : 1,
47731 "type" : "string"
47732 },
47733 "notafter" : {
47734 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
47735 "optional" : 1,
4d47f125 47736 "renderer" : "timestamp",
a9a8e3d1
DM
47737 "type" : "integer"
47738 },
47739 "notbefore" : {
47740 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
47741 "optional" : 1,
4d47f125 47742 "renderer" : "timestamp",
a9a8e3d1
DM
47743 "type" : "integer"
47744 },
47745 "pem" : {
47746 "description" : "Certificate in PEM format",
47747 "format" : "pem-certificate",
47748 "optional" : 1,
47749 "type" : "string"
47750 },
1c532546
TL
47751 "public-key-bits" : {
47752 "description" : "Certificate's public key size",
47753 "optional" : 1,
47754 "type" : "integer"
47755 },
47756 "public-key-type" : {
47757 "description" : "Certificate's public key algorithm",
47758 "optional" : 1,
47759 "type" : "string"
47760 },
a9a8e3d1
DM
47761 "san" : {
47762 "description" : "List of Certificate's SubjectAlternativeName entries.",
47763 "items" : {
47764 "type" : "string"
47765 },
47766 "optional" : 1,
4d47f125 47767 "renderer" : "yaml",
a9a8e3d1
DM
47768 "type" : "array"
47769 },
47770 "subject" : {
47771 "description" : "Certificate subject name.",
47772 "optional" : 1,
47773 "type" : "string"
47774 }
47775 },
47776 "type" : "object"
47777 },
47778 "type" : "array"
47779 }
47780 }
47781 },
47782 "leaf" : 1,
47783 "path" : "/nodes/{node}/certificates/info",
47784 "text" : "info"
47785 },
47786 {
47787 "info" : {
47788 "DELETE" : {
e9cd3bd4 47789 "allowtoken" : 1,
a9a8e3d1
DM
47790 "description" : "DELETE custom certificate chain and key.",
47791 "method" : "DELETE",
47792 "name" : "remove_custom_cert",
47793 "parameters" : {
47794 "additionalProperties" : 0,
47795 "properties" : {
47796 "node" : {
47797 "description" : "The cluster node name.",
47798 "format" : "pve-node",
47799 "type" : "string",
47800 "typetext" : "<string>"
47801 },
47802 "restart" : {
47803 "default" : 0,
47804 "description" : "Restart pveproxy.",
47805 "optional" : 1,
47806 "type" : "boolean",
47807 "typetext" : "<boolean>"
47808 }
47809 }
47810 },
ac70d7d1
TL
47811 "permissions" : {
47812 "check" : [
47813 "perm",
47814 "/nodes/{node}",
47815 [
47816 "Sys.Modify"
47817 ]
47818 ]
47819 },
a9a8e3d1
DM
47820 "protected" : 1,
47821 "proxyto" : "node",
47822 "returns" : {
47823 "type" : "null"
47824 }
47825 },
47826 "POST" : {
e9cd3bd4 47827 "allowtoken" : 1,
a9a8e3d1
DM
47828 "description" : "Upload or update custom certificate chain and key.",
47829 "method" : "POST",
47830 "name" : "upload_custom_cert",
47831 "parameters" : {
47832 "additionalProperties" : 0,
47833 "properties" : {
47834 "certificates" : {
47835 "description" : "PEM encoded certificate (chain).",
47836 "format" : "pem-certificate-chain",
47837 "type" : "string",
47838 "typetext" : "<string>"
47839 },
47840 "force" : {
47841 "default" : 0,
47842 "description" : "Overwrite existing custom or ACME certificate files.",
47843 "optional" : 1,
47844 "type" : "boolean",
47845 "typetext" : "<boolean>"
47846 },
47847 "key" : {
47848 "description" : "PEM encoded private key.",
47849 "format" : "pem-string",
47850 "optional" : 1,
47851 "type" : "string",
47852 "typetext" : "<string>"
47853 },
47854 "node" : {
47855 "description" : "The cluster node name.",
47856 "format" : "pve-node",
47857 "type" : "string",
47858 "typetext" : "<string>"
47859 },
47860 "restart" : {
47861 "default" : 0,
47862 "description" : "Restart pveproxy.",
47863 "optional" : 1,
47864 "type" : "boolean",
47865 "typetext" : "<boolean>"
47866 }
47867 }
47868 },
ac70d7d1
TL
47869 "permissions" : {
47870 "check" : [
47871 "perm",
47872 "/nodes/{node}",
47873 [
47874 "Sys.Modify"
47875 ]
47876 ]
47877 },
a9a8e3d1
DM
47878 "protected" : 1,
47879 "proxyto" : "node",
47880 "returns" : {
47881 "properties" : {
47882 "filename" : {
47883 "optional" : 1,
47884 "type" : "string"
47885 },
47886 "fingerprint" : {
47887 "description" : "Certificate SHA 256 fingerprint.",
47888 "optional" : 1,
47889 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
47890 "type" : "string"
47891 },
47892 "issuer" : {
47893 "description" : "Certificate issuer name.",
47894 "optional" : 1,
47895 "type" : "string"
47896 },
47897 "notafter" : {
47898 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
47899 "optional" : 1,
4d47f125 47900 "renderer" : "timestamp",
a9a8e3d1
DM
47901 "type" : "integer"
47902 },
47903 "notbefore" : {
47904 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
47905 "optional" : 1,
4d47f125 47906 "renderer" : "timestamp",
a9a8e3d1
DM
47907 "type" : "integer"
47908 },
47909 "pem" : {
47910 "description" : "Certificate in PEM format",
47911 "format" : "pem-certificate",
47912 "optional" : 1,
47913 "type" : "string"
47914 },
1c532546
TL
47915 "public-key-bits" : {
47916 "description" : "Certificate's public key size",
47917 "optional" : 1,
47918 "type" : "integer"
47919 },
47920 "public-key-type" : {
47921 "description" : "Certificate's public key algorithm",
47922 "optional" : 1,
47923 "type" : "string"
47924 },
a9a8e3d1
DM
47925 "san" : {
47926 "description" : "List of Certificate's SubjectAlternativeName entries.",
47927 "items" : {
47928 "type" : "string"
47929 },
47930 "optional" : 1,
4d47f125 47931 "renderer" : "yaml",
a9a8e3d1
DM
47932 "type" : "array"
47933 },
47934 "subject" : {
47935 "description" : "Certificate subject name.",
47936 "optional" : 1,
47937 "type" : "string"
47938 }
47939 },
47940 "type" : "object"
47941 }
47942 }
47943 },
47944 "leaf" : 1,
47945 "path" : "/nodes/{node}/certificates/custom",
47946 "text" : "custom"
47947 }
47948 ],
47949 "info" : {
47950 "GET" : {
e9cd3bd4 47951 "allowtoken" : 1,
a9a8e3d1
DM
47952 "description" : "Node index.",
47953 "method" : "GET",
47954 "name" : "index",
47955 "parameters" : {
47956 "additionalProperties" : 0,
47957 "properties" : {
47958 "node" : {
47959 "description" : "The cluster node name.",
47960 "format" : "pve-node",
47961 "type" : "string",
47962 "typetext" : "<string>"
47963 }
47964 }
47965 },
47966 "permissions" : {
47967 "user" : "all"
47968 },
47969 "returns" : {
47970 "items" : {
47971 "properties" : {},
47972 "type" : "object"
47973 },
47974 "links" : [
47975 {
47976 "href" : "{name}",
47977 "rel" : "child"
47978 }
47979 ],
47980 "type" : "array"
47981 }
47982 }
47983 },
47984 "leaf" : 0,
c5aa7e14
TL
47985 "path" : "/nodes/{node}/certificates",
47986 "text" : "certificates"
47987 },
47988 {
47989 "info" : {
47990 "GET" : {
47991 "allowtoken" : 1,
47992 "description" : "Get node configuration options.",
47993 "method" : "GET",
47994 "name" : "get_config",
47995 "parameters" : {
47996 "additionalProperties" : 0,
47997 "properties" : {
47998 "node" : {
47999 "description" : "The cluster node name.",
48000 "format" : "pve-node",
48001 "type" : "string",
48002 "typetext" : "<string>"
48003 },
48004 "property" : {
48005 "default" : "all",
48006 "description" : "Return only a specific property from the node configuration.",
48007 "enum" : [
48008 "acme",
48009 "acmedomain0",
48010 "acmedomain1",
48011 "acmedomain2",
48012 "acmedomain3",
48013 "acmedomain4",
48014 "acmedomain5",
48015 "description",
48016 "startall-onboot-delay",
48017 "wakeonlan"
48018 ],
48019 "optional" : 1,
48020 "type" : "string"
48021 }
48022 }
48023 },
48024 "permissions" : {
48025 "check" : [
48026 "perm",
48027 "/",
48028 [
48029 "Sys.Audit"
48030 ]
48031 ]
48032 },
48033 "proxyto" : "node",
48034 "returns" : {
c30bb419
TL
48035 "properties" : {
48036 "acme" : {
48037 "description" : "Node specific ACME settings.",
48038 "format" : {
48039 "account" : {
48040 "default" : "default",
48041 "description" : "ACME account config file name.",
48042 "format" : "pve-configid",
48043 "format_description" : "name",
48044 "optional" : 1,
48045 "type" : "string"
48046 },
48047 "domains" : {
48048 "description" : "List of domains for this node's ACME certificate",
48049 "format" : "pve-acme-domain-list",
48050 "format_description" : "domain[;domain;...]",
48051 "optional" : 1,
48052 "type" : "string"
48053 }
48054 },
48055 "optional" : 1,
48056 "type" : "string"
48057 },
48058 "acmedomain[n]" : {
48059 "description" : "ACME domain and validation plugin",
48060 "format" : {
48061 "alias" : {
48062 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
48063 "format" : "pve-acme-alias",
48064 "format_description" : "domain",
48065 "optional" : 1,
48066 "type" : "string"
48067 },
48068 "domain" : {
48069 "default_key" : 1,
48070 "description" : "domain for this node's ACME certificate",
48071 "format" : "pve-acme-domain",
48072 "format_description" : "domain",
48073 "type" : "string"
48074 },
48075 "plugin" : {
48076 "default" : "standalone",
48077 "description" : "The ACME plugin ID",
48078 "format" : "pve-configid",
48079 "format_description" : "name of the plugin configuration",
48080 "optional" : 1,
48081 "type" : "string"
48082 }
48083 },
48084 "optional" : 1,
48085 "type" : "string"
48086 },
48087 "description" : {
48088 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
48089 "maxLength" : 65536,
48090 "optional" : 1,
48091 "type" : "string"
48092 },
48093 "digest" : {
48094 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
48095 "maxLength" : 40,
48096 "optional" : 1,
48097 "type" : "string"
48098 },
48099 "startall-onboot-delay" : {
48100 "default" : 0,
48101 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
48102 "maximum" : 300,
48103 "minimum" : 0,
48104 "optional" : 1,
48105 "type" : "integer"
48106 },
48107 "wakeonlan" : {
48108 "description" : "MAC address for wake on LAN",
48109 "format" : "mac-addr",
48110 "optional" : 1,
48111 "type" : "string"
48112 }
48113 },
c5aa7e14
TL
48114 "type" : "object"
48115 }
48116 },
48117 "PUT" : {
48118 "allowtoken" : 1,
48119 "description" : "Set node configuration options.",
48120 "method" : "PUT",
48121 "name" : "set_options",
48122 "parameters" : {
48123 "additionalProperties" : 0,
48124 "properties" : {
48125 "acme" : {
48126 "description" : "Node specific ACME settings.",
48127 "format" : {
48128 "account" : {
48129 "default" : "default",
48130 "description" : "ACME account config file name.",
48131 "format" : "pve-configid",
48132 "format_description" : "name",
48133 "optional" : 1,
48134 "type" : "string"
48135 },
48136 "domains" : {
48137 "description" : "List of domains for this node's ACME certificate",
48138 "format" : "pve-acme-domain-list",
48139 "format_description" : "domain[;domain;...]",
48140 "optional" : 1,
48141 "type" : "string"
48142 }
48143 },
48144 "optional" : 1,
48145 "type" : "string",
48146 "typetext" : "[account=<name>] [,domains=<domain[;domain;...]>]"
48147 },
48148 "acmedomain[n]" : {
48149 "description" : "ACME domain and validation plugin",
48150 "format" : {
48151 "alias" : {
48152 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
ac70d7d1 48153 "format" : "pve-acme-alias",
c5aa7e14
TL
48154 "format_description" : "domain",
48155 "optional" : 1,
48156 "type" : "string"
48157 },
48158 "domain" : {
48159 "default_key" : 1,
48160 "description" : "domain for this node's ACME certificate",
48161 "format" : "pve-acme-domain",
48162 "format_description" : "domain",
48163 "type" : "string"
48164 },
48165 "plugin" : {
48166 "default" : "standalone",
48167 "description" : "The ACME plugin ID",
48168 "format" : "pve-configid",
48169 "format_description" : "name of the plugin configuration",
48170 "optional" : 1,
48171 "type" : "string"
48172 }
48173 },
48174 "optional" : 1,
48175 "type" : "string",
48176 "typetext" : "[domain=]<domain> [,alias=<domain>] [,plugin=<name of the plugin configuration>]"
48177 },
48178 "delete" : {
48179 "description" : "A list of settings you want to delete.",
48180 "format" : "pve-configid-list",
48181 "optional" : 1,
48182 "type" : "string",
48183 "typetext" : "<string>"
48184 },
48185 "description" : {
0695fdaf
TL
48186 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
48187 "maxLength" : 65536,
c5aa7e14
TL
48188 "optional" : 1,
48189 "type" : "string",
48190 "typetext" : "<string>"
48191 },
48192 "digest" : {
48193 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
48194 "maxLength" : 40,
48195 "optional" : 1,
48196 "type" : "string",
48197 "typetext" : "<string>"
48198 },
48199 "node" : {
48200 "description" : "The cluster node name.",
48201 "format" : "pve-node",
48202 "type" : "string",
48203 "typetext" : "<string>"
48204 },
48205 "startall-onboot-delay" : {
48206 "default" : 0,
48207 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
48208 "maximum" : 300,
48209 "minimum" : 0,
48210 "optional" : 1,
48211 "type" : "integer",
48212 "typetext" : "<integer> (0 - 300)"
48213 },
48214 "wakeonlan" : {
48215 "description" : "MAC address for wake on LAN",
48216 "format" : "mac-addr",
48217 "optional" : 1,
48218 "type" : "string",
48219 "typetext" : "<string>"
48220 }
48221 }
48222 },
48223 "permissions" : {
48224 "check" : [
48225 "perm",
48226 "/",
48227 [
48228 "Sys.Modify"
48229 ]
48230 ]
48231 },
48232 "protected" : 1,
48233 "proxyto" : "node",
48234 "returns" : {
48235 "type" : "null"
48236 }
48237 }
48238 },
48239 "leaf" : 1,
48240 "path" : "/nodes/{node}/config",
48241 "text" : "config"
48242 },
48243 {
48244 "children" : [
48245 {
48246 "children" : [
48247 {
48248 "children" : [
48249 {
48250 "info" : {
48251 "GET" : {
48252 "allowtoken" : 1,
48253 "description" : "List zone content.",
48254 "method" : "GET",
48255 "name" : "index",
48256 "parameters" : {
48257 "additionalProperties" : 0,
48258 "properties" : {
48259 "node" : {
48260 "description" : "The cluster node name.",
48261 "format" : "pve-node",
48262 "type" : "string",
48263 "typetext" : "<string>"
48264 },
48265 "zone" : {
48266 "description" : "The SDN zone object identifier.",
48267 "format" : "pve-sdn-zone-id",
48268 "type" : "string",
48269 "typetext" : "<string>"
48270 }
48271 }
48272 },
48273 "permissions" : {
48274 "check" : [
48275 "perm",
48276 "/sdn/zones/{zone}",
48277 [
48278 "SDN.Audit"
48279 ],
48280 "any",
48281 1
48282 ]
48283 },
48284 "protected" : 1,
48285 "proxyto" : "node",
48286 "returns" : {
48287 "items" : {
48288 "properties" : {
48289 "status" : {
48290 "description" : "Status.",
48291 "optional" : 1,
48292 "type" : "string"
48293 },
48294 "statusmsg" : {
48295 "description" : "Status details",
48296 "optional" : 1,
48297 "type" : "string"
48298 },
48299 "vnet" : {
48300 "description" : "Vnet identifier.",
48301 "type" : "string"
48302 }
48303 },
48304 "type" : "object"
48305 },
48306 "links" : [
48307 {
48308 "href" : "{vnet}",
48309 "rel" : "child"
48310 }
48311 ],
48312 "type" : "array"
48313 }
48314 }
48315 },
48316 "leaf" : 1,
48317 "path" : "/nodes/{node}/sdn/zones/{zone}/content",
48318 "text" : "content"
48319 }
48320 ],
48321 "info" : {
48322 "GET" : {
48323 "allowtoken" : 1,
48324 "description" : "",
48325 "method" : "GET",
48326 "name" : "diridx",
48327 "parameters" : {
48328 "additionalProperties" : 0,
48329 "properties" : {
48330 "node" : {
48331 "description" : "The cluster node name.",
48332 "format" : "pve-node",
48333 "type" : "string",
48334 "typetext" : "<string>"
48335 },
48336 "zone" : {
48337 "description" : "The SDN zone object identifier.",
48338 "format" : "pve-sdn-zone-id",
48339 "type" : "string",
48340 "typetext" : "<string>"
48341 }
48342 }
48343 },
48344 "permissions" : {
48345 "check" : [
48346 "perm",
48347 "/sdn/zones/{zone}",
48348 [
48349 "SDN.Audit"
48350 ],
48351 "any",
48352 1
48353 ]
48354 },
48355 "returns" : {
48356 "items" : {
48357 "properties" : {
48358 "subdir" : {
48359 "type" : "string"
48360 }
48361 },
48362 "type" : "object"
48363 },
48364 "links" : [
48365 {
48366 "href" : "{subdir}",
48367 "rel" : "child"
48368 }
48369 ],
48370 "type" : "array"
48371 }
48372 }
48373 },
48374 "leaf" : 0,
48375 "path" : "/nodes/{node}/sdn/zones/{zone}",
48376 "text" : "{zone}"
48377 }
48378 ],
48379 "info" : {
48380 "GET" : {
48381 "allowtoken" : 1,
48382 "description" : "Get status for all zones.",
48383 "method" : "GET",
48384 "name" : "index",
48385 "parameters" : {
48386 "additionalProperties" : 0,
48387 "properties" : {
48388 "node" : {
48389 "description" : "The cluster node name.",
48390 "format" : "pve-node",
48391 "type" : "string",
48392 "typetext" : "<string>"
48393 }
48394 }
48395 },
48396 "permissions" : {
48397 "description" : "Only list entries where you have 'SDN.Audit'",
48398 "user" : "all"
48399 },
48400 "protected" : 1,
48401 "proxyto" : "node",
48402 "returns" : {
48403 "items" : {
48404 "properties" : {
48405 "status" : {
48406 "description" : "Status of zone",
ac70d7d1
TL
48407 "enum" : [
48408 "available",
48409 "pending",
48410 "error"
48411 ],
c5aa7e14
TL
48412 "type" : "string"
48413 },
48414 "zone" : {
48415 "description" : "The SDN zone object identifier.",
48416 "format" : "pve-sdn-zone-id",
48417 "type" : "string"
48418 }
48419 },
48420 "type" : "object"
48421 },
48422 "links" : [
48423 {
48424 "href" : "{zone}",
48425 "rel" : "child"
48426 }
48427 ],
48428 "type" : "array"
48429 }
48430 }
48431 },
48432 "leaf" : 0,
48433 "path" : "/nodes/{node}/sdn/zones",
48434 "text" : "zones"
48435 }
48436 ],
48437 "info" : {
48438 "GET" : {
48439 "allowtoken" : 1,
48440 "description" : "SDN index.",
48441 "method" : "GET",
48442 "name" : "sdnindex",
48443 "parameters" : {
48444 "additionalProperties" : 0,
48445 "properties" : {
48446 "node" : {
48447 "description" : "The cluster node name.",
48448 "format" : "pve-node",
48449 "type" : "string",
48450 "typetext" : "<string>"
48451 }
48452 }
48453 },
48454 "permissions" : {
48455 "user" : "all"
48456 },
48457 "returns" : {
48458 "items" : {
48459 "properties" : {},
48460 "type" : "object"
48461 },
48462 "links" : [
48463 {
48464 "href" : "{name}",
48465 "rel" : "child"
48466 }
48467 ],
48468 "type" : "array"
48469 }
48470 }
48471 },
48472 "leaf" : 0,
48473 "path" : "/nodes/{node}/sdn",
48474 "text" : "sdn"
a9a8e3d1 48475 },
56122987 48476 {
56122987
DM
48477 "info" : {
48478 "GET" : {
e9cd3bd4 48479 "allowtoken" : 1,
44660702
DM
48480 "description" : "API version details",
48481 "method" : "GET",
48482 "name" : "version",
56122987 48483 "parameters" : {
44660702 48484 "additionalProperties" : 0,
56122987
DM
48485 "properties" : {
48486 "node" : {
56122987 48487 "description" : "The cluster node name.",
44660702 48488 "format" : "pve-node",
013dc89f
DM
48489 "type" : "string",
48490 "typetext" : "<string>"
56122987 48491 }
44660702 48492 }
56122987 48493 },
56122987 48494 "permissions" : {
7aacca6f 48495 "user" : "all"
56122987 48496 },
56122987 48497 "proxyto" : "node",
56122987 48498 "returns" : {
56122987 48499 "properties" : {
44660702 48500 "release" : {
1e3f8156 48501 "description" : "The current installed Proxmox VE Release",
56122987
DM
48502 "type" : "string"
48503 },
44660702 48504 "repoid" : {
1e3f8156 48505 "description" : "The short git commit hash ID from which this version was build",
7aacca6f
DM
48506 "type" : "string"
48507 },
48508 "version" : {
1e3f8156 48509 "description" : "The current installed pve-manager package version",
7aacca6f
DM
48510 "type" : "string"
48511 }
44660702
DM
48512 },
48513 "type" : "object"
7aacca6f 48514 }
56122987
DM
48515 }
48516 },
56122987 48517 "leaf" : 1,
44660702
DM
48518 "path" : "/nodes/{node}/version",
48519 "text" : "version"
56122987
DM
48520 },
48521 {
56122987
DM
48522 "info" : {
48523 "GET" : {
e9cd3bd4 48524 "allowtoken" : 1,
7aacca6f 48525 "description" : "Read node status",
44660702 48526 "method" : "GET",
7aacca6f 48527 "name" : "status",
56122987 48528 "parameters" : {
44660702 48529 "additionalProperties" : 0,
56122987
DM
48530 "properties" : {
48531 "node" : {
7aacca6f 48532 "description" : "The cluster node name.",
44660702 48533 "format" : "pve-node",
013dc89f
DM
48534 "type" : "string",
48535 "typetext" : "<string>"
56122987 48536 }
44660702 48537 }
56122987 48538 },
56122987
DM
48539 "permissions" : {
48540 "check" : [
48541 "perm",
48542 "/nodes/{node}",
48543 [
48544 "Sys.Audit"
48545 ]
48546 ]
44660702
DM
48547 },
48548 "proxyto" : "node",
48549 "returns" : {
44660702 48550 "type" : "object"
7aacca6f
DM
48551 }
48552 },
48553 "POST" : {
e9cd3bd4 48554 "allowtoken" : 1,
44660702
DM
48555 "description" : "Reboot or shutdown a node.",
48556 "method" : "POST",
7aacca6f 48557 "name" : "node_cmd",
56122987 48558 "parameters" : {
44660702 48559 "additionalProperties" : 0,
56122987 48560 "properties" : {
7aacca6f
DM
48561 "command" : {
48562 "description" : "Specify the command.",
56122987 48563 "enum" : [
7aacca6f
DM
48564 "reboot",
48565 "shutdown"
56122987
DM
48566 ],
48567 "type" : "string"
44660702
DM
48568 },
48569 "node" : {
48570 "description" : "The cluster node name.",
48571 "format" : "pve-node",
013dc89f
DM
48572 "type" : "string",
48573 "typetext" : "<string>"
56122987 48574 }
44660702 48575 }
7aacca6f 48576 },
7aacca6f
DM
48577 "permissions" : {
48578 "check" : [
48579 "perm",
48580 "/nodes/{node}",
48581 [
48582 "Sys.PowerMgmt"
48583 ]
48584 ]
48585 },
44660702 48586 "protected" : 1,
7aacca6f 48587 "proxyto" : "node",
7aacca6f
DM
48588 "returns" : {
48589 "type" : "null"
56122987
DM
48590 }
48591 }
48592 },
7aacca6f 48593 "leaf" : 1,
44660702
DM
48594 "path" : "/nodes/{node}/status",
48595 "text" : "status"
56122987
DM
48596 },
48597 {
56122987
DM
48598 "info" : {
48599 "GET" : {
e9cd3bd4 48600 "allowtoken" : 1,
44660702
DM
48601 "description" : "Read tap/vm network device interface counters",
48602 "method" : "GET",
48603 "name" : "netstat",
48604 "parameters" : {
48605 "additionalProperties" : 0,
48606 "properties" : {
48607 "node" : {
48608 "description" : "The cluster node name.",
48609 "format" : "pve-node",
013dc89f
DM
48610 "type" : "string",
48611 "typetext" : "<string>"
44660702 48612 }
56122987
DM
48613 }
48614 },
48615 "permissions" : {
48616 "check" : [
48617 "perm",
48618 "/nodes/{node}",
48619 [
7aacca6f 48620 "Sys.Audit"
56122987
DM
48621 ]
48622 ]
48623 },
7aacca6f 48624 "proxyto" : "node",
44660702
DM
48625 "returns" : {
48626 "items" : {
48627 "properties" : {},
48628 "type" : "object"
48629 },
48630 "type" : "array"
48631 }
7aacca6f
DM
48632 }
48633 },
44660702
DM
48634 "leaf" : 1,
48635 "path" : "/nodes/{node}/netstat",
7aacca6f
DM
48636 "text" : "netstat"
48637 },
48638 {
48639 "info" : {
48640 "POST" : {
e9cd3bd4 48641 "allowtoken" : 1,
159464a9 48642 "description" : "Execute multiple commands in order, root only.",
7aacca6f 48643 "method" : "POST",
7aacca6f 48644 "name" : "execute",
56122987
DM
48645 "parameters" : {
48646 "additionalProperties" : 0,
48647 "properties" : {
7aacca6f
DM
48648 "commands" : {
48649 "description" : "JSON encoded array of commands.",
de786b48 48650 "format" : "pve-command-batch",
013dc89f 48651 "type" : "string",
de786b48 48652 "typetext" : "<string>",
4a407cfd 48653 "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
48654 },
48655 "node" : {
44660702 48656 "description" : "The cluster node name.",
56122987 48657 "format" : "pve-node",
013dc89f
DM
48658 "type" : "string",
48659 "typetext" : "<string>"
56122987
DM
48660 }
48661 }
44660702 48662 },
44660702
DM
48663 "protected" : 1,
48664 "proxyto" : "node",
48665 "returns" : {
de786b48
TL
48666 "items" : {
48667 "properties" : {},
48668 "type" : "object"
48669 },
44660702 48670 "type" : "array"
56122987
DM
48671 }
48672 }
48673 },
56122987 48674 "leaf" : 1,
44660702
DM
48675 "path" : "/nodes/{node}/execute",
48676 "text" : "execute"
56122987 48677 },
5f26e15b
TL
48678 {
48679 "info" : {
48680 "POST" : {
e9cd3bd4 48681 "allowtoken" : 1,
5f26e15b
TL
48682 "description" : "Try to wake a node via 'wake on LAN' network packet.",
48683 "method" : "POST",
48684 "name" : "wakeonlan",
48685 "parameters" : {
48686 "additionalProperties" : 0,
48687 "properties" : {
48688 "node" : {
48689 "description" : "target node for wake on LAN packet",
48690 "format" : "pve-node",
48691 "type" : "string",
48692 "typetext" : "<string>"
48693 }
48694 }
48695 },
48696 "permissions" : {
48697 "check" : [
48698 "perm",
48699 "/nodes/{node}",
48700 [
48701 "Sys.PowerMgmt"
48702 ]
48703 ]
48704 },
48705 "protected" : 1,
48706 "returns" : {
48707 "description" : "MAC address used to assemble the WoL magic packet.",
48708 "format" : "mac-addr",
48709 "type" : "string"
48710 }
48711 }
48712 },
48713 "leaf" : 1,
48714 "path" : "/nodes/{node}/wakeonlan",
48715 "text" : "wakeonlan"
48716 },
56122987
DM
48717 {
48718 "info" : {
7aacca6f 48719 "GET" : {
e9cd3bd4 48720 "allowtoken" : 1,
44660702
DM
48721 "description" : "Read node RRD statistics (returns PNG)",
48722 "method" : "GET",
7aacca6f 48723 "name" : "rrd",
56122987 48724 "parameters" : {
7aacca6f 48725 "additionalProperties" : 0,
56122987 48726 "properties" : {
44660702
DM
48727 "cf" : {
48728 "description" : "The RRD consolidation function",
48729 "enum" : [
48730 "AVERAGE",
48731 "MAX"
48732 ],
48733 "optional" : 1,
48734 "type" : "string"
48735 },
7aacca6f 48736 "ds" : {
7aacca6f 48737 "description" : "The list of datasources you want to display.",
44660702 48738 "format" : "pve-configid-list",
013dc89f
DM
48739 "type" : "string",
48740 "typetext" : "<string>"
44660702
DM
48741 },
48742 "node" : {
48743 "description" : "The cluster node name.",
48744 "format" : "pve-node",
013dc89f
DM
48745 "type" : "string",
48746 "typetext" : "<string>"
7aacca6f
DM
48747 },
48748 "timeframe" : {
48749 "description" : "Specify the time frame you are interested in.",
48750 "enum" : [
48751 "hour",
48752 "day",
48753 "week",
48754 "month",
48755 "year"
48756 ],
48757 "type" : "string"
56122987 48758 }
7aacca6f 48759 }
56122987 48760 },
56122987 48761 "permissions" : {
56122987
DM
48762 "check" : [
48763 "perm",
48764 "/nodes/{node}",
48765 [
7aacca6f 48766 "Sys.Audit"
56122987
DM
48767 ]
48768 ]
48769 },
7aacca6f 48770 "protected" : 1,
56122987 48771 "returns" : {
56122987 48772 "properties" : {
7aacca6f 48773 "filename" : {
56122987
DM
48774 "type" : "string"
48775 }
44660702
DM
48776 },
48777 "type" : "object"
48778 }
56122987
DM
48779 }
48780 },
44660702 48781 "leaf" : 1,
7aacca6f 48782 "path" : "/nodes/{node}/rrd",
44660702 48783 "text" : "rrd"
56122987
DM
48784 },
48785 {
48786 "info" : {
7aacca6f 48787 "GET" : {
e9cd3bd4 48788 "allowtoken" : 1,
44660702
DM
48789 "description" : "Read node RRD statistics",
48790 "method" : "GET",
7aacca6f 48791 "name" : "rrddata",
56122987 48792 "parameters" : {
44660702 48793 "additionalProperties" : 0,
56122987 48794 "properties" : {
7aacca6f 48795 "cf" : {
7aacca6f
DM
48796 "description" : "The RRD consolidation function",
48797 "enum" : [
48798 "AVERAGE",
48799 "MAX"
44660702
DM
48800 ],
48801 "optional" : 1,
48802 "type" : "string"
56122987
DM
48803 },
48804 "node" : {
44660702 48805 "description" : "The cluster node name.",
56122987 48806 "format" : "pve-node",
013dc89f
DM
48807 "type" : "string",
48808 "typetext" : "<string>"
56122987 48809 },
7aacca6f 48810 "timeframe" : {
7aacca6f
DM
48811 "description" : "Specify the time frame you are interested in.",
48812 "enum" : [
48813 "hour",
48814 "day",
48815 "week",
48816 "month",
48817 "year"
44660702
DM
48818 ],
48819 "type" : "string"
56122987 48820 }
56122987
DM
48821 }
48822 },
56122987
DM
48823 "permissions" : {
48824 "check" : [
48825 "perm",
48826 "/nodes/{node}",
48827 [
44660702 48828 "Sys.Audit"
56122987
DM
48829 ]
48830 ]
7aacca6f 48831 },
44660702 48832 "protected" : 1,
56122987 48833 "returns" : {
7aacca6f 48834 "items" : {
44660702 48835 "properties" : {},
7aacca6f
DM
48836 "type" : "object"
48837 },
48838 "type" : "array"
44660702
DM
48839 }
48840 }
48841 },
48842 "leaf" : 1,
48843 "path" : "/nodes/{node}/rrddata",
48844 "text" : "rrddata"
48845 },
48846 {
48847 "info" : {
48848 "GET" : {
e9cd3bd4 48849 "allowtoken" : 1,
44660702
DM
48850 "description" : "Read system log",
48851 "method" : "GET",
48852 "name" : "syslog",
56122987 48853 "parameters" : {
44660702 48854 "additionalProperties" : 0,
56122987 48855 "properties" : {
44660702
DM
48856 "limit" : {
48857 "minimum" : 0,
7aacca6f 48858 "optional" : 1,
4bd7df8b 48859 "type" : "integer",
013dc89f 48860 "typetext" : "<integer> (0 - N)"
7aacca6f 48861 },
56122987 48862 "node" : {
7aacca6f 48863 "description" : "The cluster node name.",
44660702 48864 "format" : "pve-node",
013dc89f
DM
48865 "type" : "string",
48866 "typetext" : "<string>"
56122987 48867 },
35a75dd3
DM
48868 "service" : {
48869 "description" : "Service ID",
48870 "maxLength" : 128,
48871 "optional" : 1,
48872 "type" : "string",
48873 "typetext" : "<string>"
48874 },
44660702
DM
48875 "since" : {
48876 "description" : "Display all log since this date-time string.",
48877 "optional" : 1,
48878 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
48879 "type" : "string"
48880 },
48881 "start" : {
7aacca6f
DM
48882 "minimum" : 0,
48883 "optional" : 1,
4bd7df8b 48884 "type" : "integer",
013dc89f 48885 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
48886 },
48887 "until" : {
48888 "description" : "Display all log until this date-time string.",
7aacca6f 48889 "optional" : 1,
44660702 48890 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
56122987
DM
48891 "type" : "string"
48892 }
44660702 48893 }
56122987 48894 },
44660702
DM
48895 "permissions" : {
48896 "check" : [
48897 "perm",
48898 "/nodes/{node}",
48899 [
48900 "Sys.Syslog"
48901 ]
48902 ]
48903 },
48904 "protected" : 1,
48905 "proxyto" : "node",
48906 "returns" : {
48907 "items" : {
48908 "properties" : {
48909 "n" : {
48910 "description" : "Line number",
48911 "type" : "integer"
48912 },
48913 "t" : {
48914 "description" : "Line text",
48915 "type" : "string"
48916 }
48917 },
48918 "type" : "object"
48919 },
48920 "type" : "array"
48921 }
56122987
DM
48922 }
48923 },
44660702
DM
48924 "leaf" : 1,
48925 "path" : "/nodes/{node}/syslog",
7aacca6f 48926 "text" : "syslog"
56122987 48927 },
bb4c8cf8
TL
48928 {
48929 "info" : {
48930 "GET" : {
e9cd3bd4 48931 "allowtoken" : 1,
bb4c8cf8
TL
48932 "description" : "Read Journal",
48933 "method" : "GET",
48934 "name" : "journal",
48935 "parameters" : {
48936 "additionalProperties" : 0,
48937 "properties" : {
48938 "endcursor" : {
48939 "description" : "End before the given Cursor. Conflicts with 'until'",
48940 "optional" : 1,
48941 "type" : "string",
48942 "typetext" : "<string>"
48943 },
48944 "lastentries" : {
48945 "description" : "Limit to the last X lines. Conflicts with a range.",
48946 "minimum" : 0,
48947 "optional" : 1,
48948 "type" : "integer",
48949 "typetext" : "<integer> (0 - N)"
48950 },
48951 "node" : {
48952 "description" : "The cluster node name.",
48953 "format" : "pve-node",
48954 "type" : "string",
48955 "typetext" : "<string>"
48956 },
48957 "since" : {
48958 "description" : "Display all log since this UNIX epoch. Conflicts with 'startcursor'.",
48959 "minimum" : 0,
48960 "optional" : 1,
48961 "type" : "integer",
48962 "typetext" : "<integer> (0 - N)"
48963 },
48964 "startcursor" : {
48965 "description" : "Start after the given Cursor. Conflicts with 'since'",
48966 "optional" : 1,
48967 "type" : "string",
48968 "typetext" : "<string>"
48969 },
48970 "until" : {
48971 "description" : "Display all log until this UNIX epoch. Conflicts with 'endcursor'.",
48972 "minimum" : 0,
48973 "optional" : 1,
48974 "type" : "integer",
48975 "typetext" : "<integer> (0 - N)"
48976 }
48977 }
48978 },
48979 "permissions" : {
48980 "check" : [
48981 "perm",
48982 "/nodes/{node}",
48983 [
48984 "Sys.Syslog"
48985 ]
48986 ]
48987 },
48988 "protected" : 1,
48989 "proxyto" : "node",
48990 "returns" : {
48991 "items" : {
48992 "type" : "string"
48993 },
48994 "type" : "array"
48995 }
48996 }
48997 },
48998 "leaf" : 1,
48999 "path" : "/nodes/{node}/journal",
49000 "text" : "journal"
49001 },
56122987 49002 {
56122987
DM
49003 "info" : {
49004 "POST" : {
e9cd3bd4 49005 "allowtoken" : 1,
44660702
DM
49006 "description" : "Creates a VNC Shell proxy.",
49007 "method" : "POST",
49008 "name" : "vncshell",
49009 "parameters" : {
49010 "additionalProperties" : 0,
56122987 49011 "properties" : {
95895385
TL
49012 "cmd" : {
49013 "default" : "login",
fa22697b 49014 "description" : "Run specific command or default to login (requires 'root@pam')",
95895385 49015 "enum" : [
fa22697b 49016 "ceph_install",
82551b2b 49017 "login",
fa22697b 49018 "upgrade"
95895385
TL
49019 ],
49020 "optional" : 1,
49021 "type" : "string"
49022 },
4772952b
TL
49023 "cmd-opts" : {
49024 "default" : "",
49025 "description" : "Add parameters to a command. Encoded as null terminated strings.",
49026 "optional" : 1,
49027 "requires" : "cmd",
49028 "type" : "string",
49029 "typetext" : "<string>"
49030 },
5d9c884c
DM
49031 "height" : {
49032 "description" : "sets the height of the console in pixels.",
49033 "maximum" : 2160,
49034 "minimum" : 16,
49035 "optional" : 1,
49036 "type" : "integer",
49037 "typetext" : "<integer> (16 - 2160)"
49038 },
44660702
DM
49039 "node" : {
49040 "description" : "The cluster node name.",
49041 "format" : "pve-node",
013dc89f
DM
49042 "type" : "string",
49043 "typetext" : "<string>"
7aacca6f 49044 },
44660702
DM
49045 "websocket" : {
49046 "description" : "use websocket instead of standard vnc.",
49047 "optional" : 1,
013dc89f
DM
49048 "type" : "boolean",
49049 "typetext" : "<boolean>"
5d9c884c
DM
49050 },
49051 "width" : {
49052 "description" : "sets the width of the console in pixels.",
49053 "maximum" : 4096,
49054 "minimum" : 16,
49055 "optional" : 1,
49056 "type" : "integer",
49057 "typetext" : "<integer> (16 - 4096)"
56122987 49058 }
44660702 49059 }
56122987 49060 },
56122987
DM
49061 "permissions" : {
49062 "check" : [
49063 "perm",
7aacca6f 49064 "/nodes/{node}",
56122987 49065 [
7aacca6f 49066 "Sys.Console"
56122987 49067 ]
fa22697b 49068 ]
56122987 49069 },
44660702
DM
49070 "protected" : 1,
49071 "returns" : {
49072 "additionalProperties" : 0,
56122987 49073 "properties" : {
44660702
DM
49074 "cert" : {
49075 "type" : "string"
7aacca6f 49076 },
44660702
DM
49077 "port" : {
49078 "type" : "integer"
7aacca6f 49079 },
44660702
DM
49080 "ticket" : {
49081 "type" : "string"
49082 },
49083 "upid" : {
49084 "type" : "string"
49085 },
49086 "user" : {
49087 "type" : "string"
56122987 49088 }
44660702
DM
49089 }
49090 }
56122987
DM
49091 }
49092 },
7aacca6f 49093 "leaf" : 1,
44660702
DM
49094 "path" : "/nodes/{node}/vncshell",
49095 "text" : "vncshell"
56122987 49096 },
35a75dd3
DM
49097 {
49098 "info" : {
49099 "POST" : {
e9cd3bd4 49100 "allowtoken" : 1,
35a75dd3
DM
49101 "description" : "Creates a VNC Shell proxy.",
49102 "method" : "POST",
49103 "name" : "termproxy",
49104 "parameters" : {
49105 "additionalProperties" : 0,
49106 "properties" : {
95895385
TL
49107 "cmd" : {
49108 "default" : "login",
fa22697b 49109 "description" : "Run specific command or default to login (requires 'root@pam')",
95895385 49110 "enum" : [
fa22697b 49111 "ceph_install",
82551b2b 49112 "login",
fa22697b 49113 "upgrade"
95895385
TL
49114 ],
49115 "optional" : 1,
49116 "type" : "string"
49117 },
4772952b
TL
49118 "cmd-opts" : {
49119 "default" : "",
49120 "description" : "Add parameters to a command. Encoded as null terminated strings.",
49121 "optional" : 1,
49122 "requires" : "cmd",
49123 "type" : "string",
49124 "typetext" : "<string>"
49125 },
35a75dd3
DM
49126 "node" : {
49127 "description" : "The cluster node name.",
49128 "format" : "pve-node",
49129 "type" : "string",
49130 "typetext" : "<string>"
35a75dd3
DM
49131 }
49132 }
49133 },
49134 "permissions" : {
49135 "check" : [
49136 "perm",
49137 "/nodes/{node}",
49138 [
49139 "Sys.Console"
49140 ]
fa22697b 49141 ]
35a75dd3
DM
49142 },
49143 "protected" : 1,
49144 "returns" : {
49145 "additionalProperties" : 0,
49146 "properties" : {
49147 "port" : {
49148 "type" : "integer"
49149 },
49150 "ticket" : {
49151 "type" : "string"
49152 },
49153 "upid" : {
49154 "type" : "string"
49155 },
49156 "user" : {
49157 "type" : "string"
49158 }
49159 }
49160 }
49161 }
49162 },
49163 "leaf" : 1,
49164 "path" : "/nodes/{node}/termproxy",
49165 "text" : "termproxy"
49166 },
56122987
DM
49167 {
49168 "info" : {
49169 "GET" : {
e9cd3bd4 49170 "allowtoken" : 1,
0695fdaf 49171 "description" : "Opens a websocket for VNC traffic.",
44660702
DM
49172 "method" : "GET",
49173 "name" : "vncwebsocket",
56122987 49174 "parameters" : {
44660702 49175 "additionalProperties" : 0,
56122987
DM
49176 "properties" : {
49177 "node" : {
49178 "description" : "The cluster node name.",
44660702 49179 "format" : "pve-node",
013dc89f
DM
49180 "type" : "string",
49181 "typetext" : "<string>"
7aacca6f
DM
49182 },
49183 "port" : {
7aacca6f
DM
49184 "description" : "Port number returned by previous vncproxy call.",
49185 "maximum" : 5999,
44660702 49186 "minimum" : 5900,
4bd7df8b 49187 "type" : "integer",
013dc89f 49188 "typetext" : "<integer> (5900 - 5999)"
44660702
DM
49189 },
49190 "vncticket" : {
49191 "description" : "Ticket from previous call to vncproxy.",
49192 "maxLength" : 512,
013dc89f
DM
49193 "type" : "string",
49194 "typetext" : "<string>"
56122987 49195 }
44660702 49196 }
56122987 49197 },
56122987
DM
49198 "permissions" : {
49199 "check" : [
49200 "perm",
49201 "/nodes/{node}",
49202 [
7aacca6f 49203 "Sys.Console"
56122987 49204 ]
44660702 49205 ],
fa22697b 49206 "description" : "You also need to pass a valid ticket (vncticket)."
44660702
DM
49207 },
49208 "returns" : {
49209 "properties" : {
49210 "port" : {
49211 "type" : "string"
49212 }
49213 },
49214 "type" : "object"
7aacca6f 49215 }
56122987
DM
49216 }
49217 },
44660702 49218 "leaf" : 1,
7aacca6f 49219 "path" : "/nodes/{node}/vncwebsocket",
44660702 49220 "text" : "vncwebsocket"
56122987
DM
49221 },
49222 {
49223 "info" : {
49224 "POST" : {
e9cd3bd4 49225 "allowtoken" : 1,
44660702 49226 "description" : "Creates a SPICE shell.",
7aacca6f 49227 "method" : "POST",
44660702 49228 "name" : "spiceshell",
56122987 49229 "parameters" : {
7aacca6f 49230 "additionalProperties" : 0,
56122987 49231 "properties" : {
95895385
TL
49232 "cmd" : {
49233 "default" : "login",
fa22697b 49234 "description" : "Run specific command or default to login (requires 'root@pam')",
95895385 49235 "enum" : [
fa22697b 49236 "ceph_install",
82551b2b 49237 "login",
fa22697b 49238 "upgrade"
95895385
TL
49239 ],
49240 "optional" : 1,
49241 "type" : "string"
49242 },
4772952b
TL
49243 "cmd-opts" : {
49244 "default" : "",
49245 "description" : "Add parameters to a command. Encoded as null terminated strings.",
49246 "optional" : 1,
49247 "requires" : "cmd",
49248 "type" : "string",
49249 "typetext" : "<string>"
49250 },
7aacca6f 49251 "node" : {
44660702 49252 "description" : "The cluster node name.",
56122987 49253 "format" : "pve-node",
013dc89f
DM
49254 "type" : "string",
49255 "typetext" : "<string>"
7aacca6f 49256 },
44660702 49257 "proxy" : {
4d47f125 49258 "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
49259 "format" : "address",
49260 "optional" : 1,
013dc89f
DM
49261 "type" : "string",
49262 "typetext" : "<string>"
56122987 49263 }
7aacca6f 49264 }
56122987 49265 },
56122987
DM
49266 "permissions" : {
49267 "check" : [
49268 "perm",
7aacca6f 49269 "/nodes/{node}",
56122987 49270 [
7aacca6f 49271 "Sys.Console"
56122987 49272 ]
fa22697b 49273 ]
44660702
DM
49274 },
49275 "protected" : 1,
49276 "proxyto" : "node",
49277 "returns" : {
49278 "additionalProperties" : 1,
49279 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
49280 "properties" : {
49281 "host" : {
49282 "type" : "string"
49283 },
49284 "password" : {
49285 "type" : "string"
49286 },
49287 "proxy" : {
49288 "type" : "string"
49289 },
49290 "tls-port" : {
49291 "type" : "integer"
49292 },
49293 "type" : {
49294 "type" : "string"
49295 }
49296 }
7aacca6f 49297 }
56122987
DM
49298 }
49299 },
56122987 49300 "leaf" : 1,
44660702
DM
49301 "path" : "/nodes/{node}/spiceshell",
49302 "text" : "spiceshell"
56122987
DM
49303 },
49304 {
56122987 49305 "info" : {
7aacca6f 49306 "GET" : {
e9cd3bd4 49307 "allowtoken" : 1,
44660702 49308 "description" : "Read DNS settings.",
7aacca6f 49309 "method" : "GET",
44660702
DM
49310 "name" : "dns",
49311 "parameters" : {
7aacca6f
DM
49312 "additionalProperties" : 0,
49313 "properties" : {
44660702
DM
49314 "node" : {
49315 "description" : "The cluster node name.",
49316 "format" : "pve-node",
013dc89f
DM
49317 "type" : "string",
49318 "typetext" : "<string>"
7aacca6f
DM
49319 }
49320 }
49321 },
7aacca6f
DM
49322 "permissions" : {
49323 "check" : [
49324 "perm",
49325 "/nodes/{node}",
49326 [
49327 "Sys.Audit"
49328 ]
49329 ]
49330 },
44660702
DM
49331 "proxyto" : "node",
49332 "returns" : {
56122987
DM
49333 "additionalProperties" : 0,
49334 "properties" : {
44660702
DM
49335 "dns1" : {
49336 "description" : "First name server IP address.",
49337 "optional" : 1,
49338 "type" : "string"
49339 },
49340 "dns2" : {
49341 "description" : "Second name server IP address.",
49342 "optional" : 1,
49343 "type" : "string"
49344 },
49345 "dns3" : {
49346 "description" : "Third name server IP address.",
49347 "optional" : 1,
49348 "type" : "string"
49349 },
49350 "search" : {
49351 "description" : "Search domain for host-name lookup.",
49352 "optional" : 1,
49353 "type" : "string"
7aacca6f 49354 }
44660702
DM
49355 },
49356 "type" : "object"
49357 }
7aacca6f
DM
49358 },
49359 "PUT" : {
e9cd3bd4 49360 "allowtoken" : 1,
44660702
DM
49361 "description" : "Write DNS settings.",
49362 "method" : "PUT",
7aacca6f
DM
49363 "name" : "update_dns",
49364 "parameters" : {
49365 "additionalProperties" : 0,
49366 "properties" : {
44660702
DM
49367 "dns1" : {
49368 "description" : "First name server IP address.",
49369 "format" : "ip",
49370 "optional" : 1,
013dc89f
DM
49371 "type" : "string",
49372 "typetext" : "<string>"
7aacca6f 49373 },
44660702
DM
49374 "dns2" : {
49375 "description" : "Second name server IP address.",
49376 "format" : "ip",
7aacca6f 49377 "optional" : 1,
013dc89f
DM
49378 "type" : "string",
49379 "typetext" : "<string>"
7aacca6f 49380 },
44660702
DM
49381 "dns3" : {
49382 "description" : "Third name server IP address.",
49383 "format" : "ip",
7aacca6f 49384 "optional" : 1,
013dc89f
DM
49385 "type" : "string",
49386 "typetext" : "<string>"
7aacca6f
DM
49387 },
49388 "node" : {
44660702 49389 "description" : "The cluster node name.",
56122987 49390 "format" : "pve-node",
013dc89f
DM
49391 "type" : "string",
49392 "typetext" : "<string>"
7aacca6f 49393 },
44660702
DM
49394 "search" : {
49395 "description" : "Search domain for host-name lookup.",
013dc89f
DM
49396 "type" : "string",
49397 "typetext" : "<string>"
56122987
DM
49398 }
49399 }
49400 },
49401 "permissions" : {
49402 "check" : [
49403 "perm",
7aacca6f 49404 "/nodes/{node}",
56122987 49405 [
7aacca6f 49406 "Sys.Modify"
56122987
DM
49407 ]
49408 ]
49409 },
44660702 49410 "protected" : 1,
7aacca6f 49411 "proxyto" : "node",
56122987 49412 "returns" : {
7aacca6f
DM
49413 "type" : "null"
49414 }
56122987 49415 }
44660702
DM
49416 },
49417 "leaf" : 1,
49418 "path" : "/nodes/{node}/dns",
49419 "text" : "dns"
56122987
DM
49420 },
49421 {
49422 "info" : {
7aacca6f 49423 "GET" : {
e9cd3bd4 49424 "allowtoken" : 1,
7aacca6f 49425 "description" : "Read server time and time zone settings.",
44660702
DM
49426 "method" : "GET",
49427 "name" : "time",
56122987 49428 "parameters" : {
44660702 49429 "additionalProperties" : 0,
56122987
DM
49430 "properties" : {
49431 "node" : {
44660702 49432 "description" : "The cluster node name.",
56122987 49433 "format" : "pve-node",
013dc89f
DM
49434 "type" : "string",
49435 "typetext" : "<string>"
56122987 49436 }
44660702 49437 }
56122987
DM
49438 },
49439 "permissions" : {
49440 "check" : [
49441 "perm",
7aacca6f 49442 "/nodes/{node}",
56122987 49443 [
7aacca6f 49444 "Sys.Audit"
56122987
DM
49445 ]
49446 ]
44660702
DM
49447 },
49448 "proxyto" : "node",
49449 "returns" : {
49450 "additionalProperties" : 0,
49451 "properties" : {
49452 "localtime" : {
49453 "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
49454 "minimum" : 1297163644,
4d47f125 49455 "renderer" : "timestamp_gmt",
44660702
DM
49456 "type" : "integer"
49457 },
49458 "time" : {
49459 "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
49460 "minimum" : 1297163644,
4d47f125 49461 "renderer" : "timestamp",
44660702
DM
49462 "type" : "integer"
49463 },
49464 "timezone" : {
49465 "description" : "Time zone",
49466 "type" : "string"
49467 }
49468 },
49469 "type" : "object"
7aacca6f
DM
49470 }
49471 },
49472 "PUT" : {
e9cd3bd4 49473 "allowtoken" : 1,
7aacca6f 49474 "description" : "Set time zone.",
44660702
DM
49475 "method" : "PUT",
49476 "name" : "set_timezone",
49477 "parameters" : {
49478 "additionalProperties" : 0,
49479 "properties" : {
49480 "node" : {
49481 "description" : "The cluster node name.",
49482 "format" : "pve-node",
013dc89f
DM
49483 "type" : "string",
49484 "typetext" : "<string>"
44660702
DM
49485 },
49486 "timezone" : {
49487 "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
013dc89f
DM
49488 "type" : "string",
49489 "typetext" : "<string>"
44660702
DM
49490 }
49491 }
49492 },
7aacca6f
DM
49493 "permissions" : {
49494 "check" : [
49495 "perm",
49496 "/nodes/{node}",
49497 [
49498 "Sys.Modify"
49499 ]
49500 ]
56122987 49501 },
7aacca6f 49502 "protected" : 1,
44660702
DM
49503 "proxyto" : "node",
49504 "returns" : {
49505 "type" : "null"
49506 }
7aacca6f
DM
49507 }
49508 },
7aacca6f 49509 "leaf" : 1,
44660702
DM
49510 "path" : "/nodes/{node}/time",
49511 "text" : "time"
7aacca6f
DM
49512 },
49513 {
49514 "info" : {
44660702 49515 "GET" : {
e9cd3bd4 49516 "allowtoken" : 1,
44660702
DM
49517 "description" : "Get list of appliances.",
49518 "method" : "GET",
49519 "name" : "aplinfo",
7aacca6f
DM
49520 "parameters" : {
49521 "additionalProperties" : 0,
49522 "properties" : {
7aacca6f 49523 "node" : {
44660702 49524 "description" : "The cluster node name.",
7aacca6f 49525 "format" : "pve-node",
013dc89f
DM
49526 "type" : "string",
49527 "typetext" : "<string>"
7aacca6f
DM
49528 }
49529 }
56122987 49530 },
7aacca6f 49531 "permissions" : {
44660702 49532 "user" : "all"
56122987 49533 },
44660702 49534 "proxyto" : "node",
7aacca6f
DM
49535 "returns" : {
49536 "items" : {
44660702
DM
49537 "properties" : {},
49538 "type" : "object"
7aacca6f
DM
49539 },
49540 "type" : "array"
44660702
DM
49541 }
49542 },
49543 "POST" : {
e9cd3bd4 49544 "allowtoken" : 1,
44660702
DM
49545 "description" : "Download appliance templates.",
49546 "method" : "POST",
49547 "name" : "apl_download",
7aacca6f
DM
49548 "parameters" : {
49549 "additionalProperties" : 0,
49550 "properties" : {
49551 "node" : {
7aacca6f 49552 "description" : "The cluster node name.",
44660702 49553 "format" : "pve-node",
013dc89f
DM
49554 "type" : "string",
49555 "typetext" : "<string>"
44660702
DM
49556 },
49557 "storage" : {
4bd7df8b 49558 "description" : "The storage where the template will be stored",
44660702 49559 "format" : "pve-storage-id",
013dc89f
DM
49560 "type" : "string",
49561 "typetext" : "<string>"
44660702
DM
49562 },
49563 "template" : {
1e3f8156 49564 "description" : "The template which will downloaded",
44660702 49565 "maxLength" : 255,
013dc89f
DM
49566 "type" : "string",
49567 "typetext" : "<string>"
7aacca6f
DM
49568 }
49569 }
56122987 49570 },
7aacca6f 49571 "permissions" : {
44660702
DM
49572 "check" : [
49573 "perm",
49574 "/storage/{storage}",
49575 [
49576 "Datastore.AllocateTemplate"
49577 ]
49578 ]
49579 },
49580 "protected" : 1,
49581 "proxyto" : "node",
49582 "returns" : {
49583 "type" : "string"
7aacca6f
DM
49584 }
49585 }
49586 },
7aacca6f 49587 "leaf" : 1,
44660702
DM
49588 "path" : "/nodes/{node}/aplinfo",
49589 "text" : "aplinfo"
7aacca6f 49590 },
5370fa8c
TL
49591 {
49592 "info" : {
49593 "GET" : {
49594 "allowtoken" : 1,
49595 "description" : "Query metadata of an URL: file size, file name and mime type.",
49596 "method" : "GET",
49597 "name" : "query_url_metadata",
49598 "parameters" : {
49599 "additionalProperties" : 0,
49600 "properties" : {
49601 "node" : {
49602 "description" : "The cluster node name.",
49603 "format" : "pve-node",
49604 "type" : "string",
49605 "typetext" : "<string>"
49606 },
49607 "url" : {
49608 "description" : "The URL to query the metadata from.",
49609 "pattern" : "https?://.*",
49610 "type" : "string"
49611 },
49612 "verify-certificates" : {
49613 "default" : 1,
49614 "description" : "If false, no SSL/TLS certificates will be verified.",
49615 "optional" : 1,
49616 "type" : "boolean",
49617 "typetext" : "<boolean>"
49618 }
49619 }
49620 },
49621 "permissions" : {
49622 "check" : [
49623 "perm",
49624 "/",
49625 [
49626 "Sys.Audit",
49627 "Sys.Modify"
49628 ]
49629 ]
49630 },
49631 "proxyto" : "node",
49632 "returns" : {
49633 "properties" : {
49634 "filename" : {
49635 "optional" : 1,
49636 "type" : "string"
49637 },
49638 "mimetype" : {
49639 "optional" : 1,
49640 "type" : "string"
49641 },
49642 "size" : {
49643 "optional" : 1,
49644 "renderer" : "bytes",
49645 "type" : "integer"
49646 }
49647 },
49648 "type" : "object"
49649 }
49650 }
49651 },
49652 "leaf" : 1,
49653 "path" : "/nodes/{node}/query-url-metadata",
49654 "text" : "query-url-metadata"
49655 },
7aacca6f
DM
49656 {
49657 "info" : {
49658 "GET" : {
e9cd3bd4 49659 "allowtoken" : 1,
44660702
DM
49660 "description" : "Gather various systems information about a node",
49661 "method" : "GET",
49662 "name" : "report",
7aacca6f 49663 "parameters" : {
44660702 49664 "additionalProperties" : 0,
7aacca6f
DM
49665 "properties" : {
49666 "node" : {
7aacca6f 49667 "description" : "The cluster node name.",
44660702 49668 "format" : "pve-node",
013dc89f
DM
49669 "type" : "string",
49670 "typetext" : "<string>"
7aacca6f 49671 }
44660702 49672 }
56122987 49673 },
7aacca6f
DM
49674 "permissions" : {
49675 "check" : [
49676 "perm",
49677 "/nodes/{node}",
49678 [
49679 "Sys.Audit"
49680 ]
49681 ]
56122987 49682 },
44660702 49683 "protected" : 1,
7aacca6f
DM
49684 "proxyto" : "node",
49685 "returns" : {
56122987 49686 "type" : "string"
7aacca6f
DM
49687 }
49688 }
49689 },
7aacca6f 49690 "leaf" : 1,
44660702
DM
49691 "path" : "/nodes/{node}/report",
49692 "text" : "report"
7aacca6f
DM
49693 },
49694 {
7aacca6f
DM
49695 "info" : {
49696 "POST" : {
e9cd3bd4 49697 "allowtoken" : 1,
1c532546 49698 "description" : "Start all VMs and containers located on this node (by default only those with onboot=1).",
7aacca6f 49699 "method" : "POST",
44660702 49700 "name" : "startall",
7aacca6f 49701 "parameters" : {
44660702 49702 "additionalProperties" : 0,
7aacca6f
DM
49703 "properties" : {
49704 "force" : {
1c532546
TL
49705 "default" : "off",
49706 "description" : "Issue start command even if virtual guest have 'onboot' not set or set to off.",
7aacca6f 49707 "optional" : 1,
013dc89f
DM
49708 "type" : "boolean",
49709 "typetext" : "<boolean>"
7aacca6f
DM
49710 },
49711 "node" : {
7aacca6f 49712 "description" : "The cluster node name.",
44660702 49713 "format" : "pve-node",
013dc89f
DM
49714 "type" : "string",
49715 "typetext" : "<string>"
52e44c50
FG
49716 },
49717 "vms" : {
1c532546 49718 "description" : "Only consider guests from this comma separated list of VMIDs.",
52e44c50
FG
49719 "format" : "pve-vmid-list",
49720 "optional" : 1,
49721 "type" : "string",
49722 "typetext" : "<string>"
7aacca6f 49723 }
44660702 49724 }
56122987 49725 },
7aacca6f 49726 "permissions" : {
9d2e98ed
TL
49727 "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
49728 "user" : "all"
44660702
DM
49729 },
49730 "protected" : 1,
49731 "proxyto" : "node",
49732 "returns" : {
49733 "type" : "string"
7aacca6f
DM
49734 }
49735 }
49736 },
44660702 49737 "leaf" : 1,
7aacca6f 49738 "path" : "/nodes/{node}/startall",
44660702 49739 "text" : "startall"
7aacca6f
DM
49740 },
49741 {
7aacca6f
DM
49742 "info" : {
49743 "POST" : {
e9cd3bd4 49744 "allowtoken" : 1,
7aacca6f 49745 "description" : "Stop all VMs and Containers.",
44660702
DM
49746 "method" : "POST",
49747 "name" : "stopall",
7aacca6f 49748 "parameters" : {
44660702 49749 "additionalProperties" : 0,
7aacca6f 49750 "properties" : {
9d2e98ed
TL
49751 "force-stop" : {
49752 "default" : 1,
49753 "description" : "Force a hard-stop after the timeout.",
49754 "optional" : 1,
49755 "type" : "boolean",
49756 "typetext" : "<boolean>"
49757 },
7aacca6f 49758 "node" : {
44660702 49759 "description" : "The cluster node name.",
7aacca6f 49760 "format" : "pve-node",
013dc89f
DM
49761 "type" : "string",
49762 "typetext" : "<string>"
52e44c50 49763 },
9d2e98ed
TL
49764 "timeout" : {
49765 "default" : 180,
49766 "description" : "Timeout for each guest shutdown task. Depending on `force-stop`, the shutdown gets then simply aborted or a hard-stop is forced.",
49767 "maximum" : 7200,
49768 "minimum" : 0,
49769 "optional" : 1,
49770 "type" : "integer",
49771 "typetext" : "<integer> (0 - 7200)"
49772 },
52e44c50
FG
49773 "vms" : {
49774 "description" : "Only consider Guests with these IDs.",
49775 "format" : "pve-vmid-list",
49776 "optional" : 1,
49777 "type" : "string",
49778 "typetext" : "<string>"
7aacca6f 49779 }
44660702 49780 }
56122987 49781 },
7aacca6f 49782 "permissions" : {
9d2e98ed
TL
49783 "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
49784 "user" : "all"
56122987 49785 },
44660702 49786 "protected" : 1,
7aacca6f 49787 "proxyto" : "node",
44660702
DM
49788 "returns" : {
49789 "type" : "string"
49790 }
49791 }
56122987 49792 },
44660702
DM
49793 "leaf" : 1,
49794 "path" : "/nodes/{node}/stopall",
49795 "text" : "stopall"
49796 },
fa22697b
TL
49797 {
49798 "info" : {
49799 "POST" : {
49800 "allowtoken" : 1,
49801 "description" : "Suspend all VMs.",
49802 "method" : "POST",
49803 "name" : "suspendall",
49804 "parameters" : {
49805 "additionalProperties" : 0,
49806 "properties" : {
49807 "node" : {
49808 "description" : "The cluster node name.",
49809 "format" : "pve-node",
49810 "type" : "string",
49811 "typetext" : "<string>"
49812 },
49813 "vms" : {
49814 "description" : "Only consider Guests with these IDs.",
49815 "format" : "pve-vmid-list",
49816 "optional" : 1,
49817 "type" : "string",
49818 "typetext" : "<string>"
49819 }
49820 }
49821 },
49822 "permissions" : {
49823 "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)",
49824 "user" : "all"
49825 },
49826 "protected" : 1,
49827 "proxyto" : "node",
49828 "returns" : {
49829 "type" : "string"
49830 }
49831 }
49832 },
49833 "leaf" : 1,
49834 "path" : "/nodes/{node}/suspendall",
49835 "text" : "suspendall"
49836 },
44660702
DM
49837 {
49838 "info" : {
49839 "POST" : {
e9cd3bd4 49840 "allowtoken" : 1,
44660702
DM
49841 "description" : "Migrate all VMs and Containers.",
49842 "method" : "POST",
49843 "name" : "migrateall",
49844 "parameters" : {
49845 "additionalProperties" : 0,
49846 "properties" : {
49847 "maxworkers" : {
9d2e98ed 49848 "description" : "Maximal number of parallel migration job. If not set, uses'max_workers' from datacenter.cfg. One of both must be set!",
44660702
DM
49849 "minimum" : 1,
49850 "optional" : 1,
4bd7df8b 49851 "type" : "integer",
013dc89f 49852 "typetext" : "<integer> (1 - N)"
44660702
DM
49853 },
49854 "node" : {
49855 "description" : "The cluster node name.",
49856 "format" : "pve-node",
013dc89f
DM
49857 "type" : "string",
49858 "typetext" : "<string>"
44660702
DM
49859 },
49860 "target" : {
49861 "description" : "Target node.",
49862 "format" : "pve-node",
013dc89f
DM
49863 "type" : "string",
49864 "typetext" : "<string>"
52e44c50
FG
49865 },
49866 "vms" : {
49867 "description" : "Only consider Guests with these IDs.",
49868 "format" : "pve-vmid-list",
49869 "optional" : 1,
49870 "type" : "string",
49871 "typetext" : "<string>"
e9cd3bd4
TL
49872 },
49873 "with-local-disks" : {
49874 "description" : "Enable live storage migration for local disk",
49875 "optional" : 1,
49876 "type" : "boolean",
49877 "typetext" : "<boolean>"
44660702
DM
49878 }
49879 }
49880 },
49881 "permissions" : {
9d2e98ed
TL
49882 "description" : "The 'VM.Migrate' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
49883 "user" : "all"
44660702
DM
49884 },
49885 "protected" : 1,
49886 "proxyto" : "node",
49887 "returns" : {
49888 "type" : "string"
49889 }
49890 }
56122987 49891 },
44660702
DM
49892 "leaf" : 1,
49893 "path" : "/nodes/{node}/migrateall",
49894 "text" : "migrateall"
4d47f125
TL
49895 },
49896 {
49897 "info" : {
49898 "GET" : {
e9cd3bd4 49899 "allowtoken" : 1,
4d47f125
TL
49900 "description" : "Get the content of /etc/hosts.",
49901 "method" : "GET",
49902 "name" : "get_etc_hosts",
49903 "parameters" : {
49904 "additionalProperties" : 0,
49905 "properties" : {
49906 "node" : {
49907 "description" : "The cluster node name.",
49908 "format" : "pve-node",
49909 "type" : "string",
49910 "typetext" : "<string>"
49911 }
49912 }
49913 },
49914 "permissions" : {
49915 "check" : [
49916 "perm",
49917 "/",
49918 [
49919 "Sys.Audit"
49920 ]
49921 ]
49922 },
49923 "protected" : 1,
49924 "proxyto" : "node",
49925 "returns" : {
49926 "properties" : {
49927 "data" : {
49928 "description" : "The content of /etc/hosts.",
49929 "type" : "string"
49930 },
49931 "digest" : {
82551b2b
TL
49932 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
49933 "maxLength" : 64,
4d47f125
TL
49934 "optional" : 1,
49935 "type" : "string"
49936 }
49937 },
49938 "type" : "object"
49939 }
49940 },
49941 "POST" : {
e9cd3bd4 49942 "allowtoken" : 1,
4d47f125
TL
49943 "description" : "Write /etc/hosts.",
49944 "method" : "POST",
49945 "name" : "write_etc_hosts",
49946 "parameters" : {
49947 "additionalProperties" : 0,
49948 "properties" : {
49949 "data" : {
49950 "description" : "The target content of /etc/hosts.",
49951 "type" : "string",
49952 "typetext" : "<string>"
49953 },
49954 "digest" : {
82551b2b
TL
49955 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
49956 "maxLength" : 64,
4d47f125
TL
49957 "optional" : 1,
49958 "type" : "string",
49959 "typetext" : "<string>"
49960 },
49961 "node" : {
49962 "description" : "The cluster node name.",
49963 "format" : "pve-node",
49964 "type" : "string",
49965 "typetext" : "<string>"
49966 }
49967 }
49968 },
49969 "permissions" : {
49970 "check" : [
49971 "perm",
49972 "/nodes/{node}",
49973 [
49974 "Sys.Modify"
49975 ]
49976 ]
49977 },
49978 "protected" : 1,
49979 "proxyto" : "node",
49980 "returns" : {
49981 "type" : "null"
49982 }
49983 }
49984 },
49985 "leaf" : 1,
49986 "path" : "/nodes/{node}/hosts",
49987 "text" : "hosts"
44660702
DM
49988 }
49989 ],
49990 "info" : {
49991 "GET" : {
e9cd3bd4 49992 "allowtoken" : 1,
44660702
DM
49993 "description" : "Node index.",
49994 "method" : "GET",
49995 "name" : "index",
49996 "parameters" : {
49997 "additionalProperties" : 0,
49998 "properties" : {
49999 "node" : {
50000 "description" : "The cluster node name.",
50001 "format" : "pve-node",
013dc89f
DM
50002 "type" : "string",
50003 "typetext" : "<string>"
44660702
DM
50004 }
50005 }
56122987 50006 },
44660702
DM
50007 "permissions" : {
50008 "user" : "all"
56122987 50009 },
44660702
DM
50010 "returns" : {
50011 "items" : {
50012 "properties" : {},
50013 "type" : "object"
50014 },
50015 "links" : [
50016 {
50017 "href" : "{name}",
50018 "rel" : "child"
50019 }
56122987 50020 ],
44660702 50021 "type" : "array"
7aacca6f
DM
50022 }
50023 }
50024 },
44660702
DM
50025 "leaf" : 0,
50026 "path" : "/nodes/{node}",
50027 "text" : "{node}"
50028 }
50029 ],
50030 "info" : {
7aacca6f 50031 "GET" : {
e9cd3bd4 50032 "allowtoken" : 1,
44660702 50033 "description" : "Cluster node index.",
7aacca6f 50034 "method" : "GET",
44660702 50035 "name" : "index",
7aacca6f 50036 "parameters" : {
7aacca6f
DM
50037 "additionalProperties" : 0
50038 },
50039 "permissions" : {
7aacca6f
DM
50040 "user" : "all"
50041 },
44660702
DM
50042 "returns" : {
50043 "items" : {
4d47f125
TL
50044 "properties" : {
50045 "cpu" : {
50046 "description" : "CPU utilization.",
50047 "optional" : 1,
50048 "renderer" : "fraction_as_percentage",
50049 "type" : "number"
50050 },
50051 "level" : {
50052 "description" : "Support level.",
50053 "optional" : 1,
50054 "type" : "string"
50055 },
50056 "maxcpu" : {
50057 "description" : "Number of available CPUs.",
50058 "optional" : 1,
50059 "type" : "integer"
50060 },
50061 "maxmem" : {
50062 "description" : "Number of available memory in bytes.",
50063 "optional" : 1,
50064 "renderer" : "bytes",
50065 "type" : "integer"
50066 },
50067 "mem" : {
50068 "description" : "Used memory in bytes.",
50069 "optional" : 1,
50070 "renderer" : "bytes",
1c532546 50071 "type" : "integer"
4d47f125
TL
50072 },
50073 "node" : {
50074 "description" : "The cluster node name.",
50075 "format" : "pve-node",
50076 "type" : "string"
50077 },
50078 "ssl_fingerprint" : {
50079 "description" : "The SSL fingerprint for the node certificate.",
50080 "optional" : 1,
50081 "type" : "string"
50082 },
50083 "status" : {
50084 "description" : "Node status.",
50085 "enum" : [
50086 "unknown",
50087 "online",
50088 "offline"
50089 ],
50090 "type" : "string"
50091 },
50092 "uptime" : {
50093 "description" : "Node uptime in seconds.",
50094 "optional" : 1,
50095 "renderer" : "duration",
50096 "type" : "integer"
50097 }
50098 },
44660702
DM
50099 "type" : "object"
50100 },
50101 "links" : [
50102 {
50103 "href" : "{node}",
50104 "rel" : "child"
50105 }
50106 ],
50107 "type" : "array"
50108 }
7aacca6f
DM
50109 }
50110 },
44660702
DM
50111 "leaf" : 0,
50112 "path" : "/nodes",
50113 "text" : "nodes"
50114 },
50115 {
7aacca6f
DM
50116 "children" : [
50117 {
7aacca6f 50118 "info" : {
44660702 50119 "DELETE" : {
e9cd3bd4 50120 "allowtoken" : 1,
44660702
DM
50121 "description" : "Delete storage configuration.",
50122 "method" : "DELETE",
50123 "name" : "delete",
7aacca6f
DM
50124 "parameters" : {
50125 "additionalProperties" : 0,
50126 "properties" : {
50127 "storage" : {
7aacca6f 50128 "description" : "The storage identifier.",
44660702 50129 "format" : "pve-storage-id",
013dc89f
DM
50130 "type" : "string",
50131 "typetext" : "<string>"
7aacca6f
DM
50132 }
50133 }
56122987 50134 },
7aacca6f
DM
50135 "permissions" : {
50136 "check" : [
50137 "perm",
50138 "/storage",
50139 [
50140 "Datastore.Allocate"
50141 ]
50142 ]
56122987 50143 },
44660702
DM
50144 "protected" : 1,
50145 "returns" : {
50146 "type" : "null"
50147 }
50148 },
50149 "GET" : {
e9cd3bd4 50150 "allowtoken" : 1,
44660702
DM
50151 "description" : "Read storage configuration.",
50152 "method" : "GET",
50153 "name" : "read",
7aacca6f
DM
50154 "parameters" : {
50155 "additionalProperties" : 0,
50156 "properties" : {
50157 "storage" : {
44660702 50158 "description" : "The storage identifier.",
7aacca6f 50159 "format" : "pve-storage-id",
013dc89f
DM
50160 "type" : "string",
50161 "typetext" : "<string>"
7aacca6f
DM
50162 }
50163 }
50164 },
44660702
DM
50165 "permissions" : {
50166 "check" : [
50167 "perm",
50168 "/storage/{storage}",
50169 [
50170 "Datastore.Allocate"
50171 ]
50172 ]
50173 },
5da3d723
TL
50174 "returns" : {
50175 "type" : "object"
50176 }
7aacca6f
DM
50177 },
50178 "PUT" : {
e9cd3bd4 50179 "allowtoken" : 1,
44660702
DM
50180 "description" : "Update storage configuration.",
50181 "method" : "PUT",
50182 "name" : "update",
50183 "parameters" : {
50184 "additionalProperties" : 0,
50185 "properties" : {
50186 "blocksize" : {
50187 "description" : "block size",
7aacca6f 50188 "optional" : 1,
013dc89f
DM
50189 "type" : "string",
50190 "typetext" : "<string>"
7aacca6f 50191 },
27a7acb2 50192 "bwlimit" : {
4a407cfd 50193 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
50194 "format" : {
50195 "clone" : {
95895385 50196 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
50197 "format_description" : "LIMIT",
50198 "minimum" : "0",
50199 "optional" : 1,
50200 "type" : "number"
50201 },
50202 "default" : {
95895385 50203 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
50204 "format_description" : "LIMIT",
50205 "minimum" : "0",
50206 "optional" : 1,
50207 "type" : "number"
50208 },
50209 "migration" : {
95895385 50210 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
50211 "format_description" : "LIMIT",
50212 "minimum" : "0",
50213 "optional" : 1,
50214 "type" : "number"
50215 },
50216 "move" : {
95895385 50217 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
50218 "format_description" : "LIMIT",
50219 "minimum" : "0",
50220 "optional" : 1,
50221 "type" : "number"
50222 },
50223 "restore" : {
95895385 50224 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
50225 "format_description" : "LIMIT",
50226 "minimum" : "0",
50227 "optional" : 1,
50228 "type" : "number"
50229 }
50230 },
50231 "optional" : 1,
50232 "type" : "string",
50233 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
50234 },
44660702
DM
50235 "comstar_hg" : {
50236 "description" : "host group for comstar views",
50237 "optional" : 1,
013dc89f
DM
50238 "type" : "string",
50239 "typetext" : "<string>"
7aacca6f 50240 },
44660702
DM
50241 "comstar_tg" : {
50242 "description" : "target group for comstar views",
7aacca6f 50243 "optional" : 1,
013dc89f
DM
50244 "type" : "string",
50245 "typetext" : "<string>"
7aacca6f 50246 },
44660702
DM
50247 "content" : {
50248 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
50249 "format" : "pve-storage-content-list",
7aacca6f 50250 "optional" : 1,
013dc89f
DM
50251 "type" : "string",
50252 "typetext" : "<string>"
7aacca6f 50253 },
9d2e98ed
TL
50254 "content-dirs" : {
50255 "description" : "Overrides for default content type directories.",
50256 "format" : "pve-dir-override-list",
50257 "optional" : 1,
50258 "type" : "string",
50259 "typetext" : "<string>"
50260 },
4a407cfd
TL
50261 "create-base-path" : {
50262 "default" : "yes",
50263 "description" : "Create the base directory if it doesn't exist.",
50264 "optional" : 1,
50265 "type" : "boolean",
50266 "typetext" : "<boolean>"
50267 },
50268 "create-subdirs" : {
50269 "default" : "yes",
50270 "description" : "Populate the directory with the default structure.",
50271 "optional" : 1,
50272 "type" : "boolean",
50273 "typetext" : "<boolean>"
50274 },
c30bb419
TL
50275 "data-pool" : {
50276 "description" : "Data Pool (for erasure coding only)",
50277 "optional" : 1,
50278 "type" : "string",
50279 "typetext" : "<string>"
50280 },
44660702
DM
50281 "delete" : {
50282 "description" : "A list of settings you want to delete.",
50283 "format" : "pve-configid-list",
50284 "maxLength" : 4096,
7aacca6f 50285 "optional" : 1,
013dc89f
DM
50286 "type" : "string",
50287 "typetext" : "<string>"
7aacca6f
DM
50288 },
50289 "digest" : {
82551b2b
TL
50290 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
50291 "maxLength" : 64,
7aacca6f 50292 "optional" : 1,
013dc89f
DM
50293 "type" : "string",
50294 "typetext" : "<string>"
7aacca6f 50295 },
44660702
DM
50296 "disable" : {
50297 "description" : "Flag to disable the storage.",
50298 "optional" : 1,
013dc89f
DM
50299 "type" : "boolean",
50300 "typetext" : "<boolean>"
7aacca6f 50301 },
27a7acb2
DM
50302 "domain" : {
50303 "description" : "CIFS domain.",
50304 "maxLength" : 256,
50305 "optional" : 1,
50306 "type" : "string",
50307 "typetext" : "<string>"
50308 },
04d22a9f
TL
50309 "encryption-key" : {
50310 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
50311 "optional" : 1,
50312 "type" : "string",
50313 "typetext" : "<string>"
50314 },
c5aa7e14
TL
50315 "fingerprint" : {
50316 "description" : "Certificate SHA 256 fingerprint.",
50317 "optional" : 1,
50318 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
50319 "type" : "string"
50320 },
7aacca6f
DM
50321 "format" : {
50322 "description" : "Default image format.",
44660702 50323 "format" : "pve-storage-format",
7aacca6f 50324 "optional" : 1,
013dc89f
DM
50325 "type" : "string",
50326 "typetext" : "<string>"
7aacca6f 50327 },
5370fa8c
TL
50328 "fs-name" : {
50329 "description" : "The Ceph filesystem name.",
50330 "format" : "pve-configid",
50331 "optional" : 1,
50332 "type" : "string",
50333 "typetext" : "<string>"
50334 },
5da3d723
TL
50335 "fuse" : {
50336 "description" : "Mount CephFS through FUSE.",
50337 "optional" : 1,
50338 "type" : "boolean",
50339 "typetext" : "<boolean>"
50340 },
2c0dde61
DM
50341 "is_mountpoint" : {
50342 "default" : "no",
2489d6df 50343 "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 50344 "optional" : 1,
2489d6df
WB
50345 "type" : "string",
50346 "typetext" : "<string>"
2c0dde61 50347 },
5370fa8c
TL
50348 "keyring" : {
50349 "description" : "Client keyring contents (for external clusters).",
50350 "optional" : 1,
50351 "type" : "string",
50352 "typetext" : "<string>"
50353 },
44660702 50354 "krbd" : {
e2d681b3 50355 "description" : "Always access rbd through krbd kernel module.",
7aacca6f 50356 "optional" : 1,
013dc89f
DM
50357 "type" : "boolean",
50358 "typetext" : "<boolean>"
7aacca6f 50359 },
4d47f125
TL
50360 "lio_tpg" : {
50361 "description" : "target portal group for Linux LIO targets",
50362 "optional" : 1,
50363 "type" : "string",
50364 "typetext" : "<string>"
50365 },
d2656385 50366 "master-pubkey" : {
5f4e66fe 50367 "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
50368 "optional" : 1,
50369 "type" : "string",
50370 "typetext" : "<string>"
50371 },
7af2edf9
TL
50372 "max-protected-backups" : {
50373 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
50374 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
50375 "minimum" : -1,
50376 "optional" : 1,
50377 "type" : "integer",
50378 "typetext" : "<integer> (-1 - N)"
50379 },
44660702 50380 "maxfiles" : {
5f4e66fe 50381 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
50382 "minimum" : 0,
50383 "optional" : 1,
4bd7df8b 50384 "type" : "integer",
013dc89f 50385 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
50386 },
50387 "mkdir" : {
50388 "default" : "yes",
4a407cfd 50389 "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 50390 "optional" : 1,
013dc89f
DM
50391 "type" : "boolean",
50392 "typetext" : "<boolean>"
7aacca6f 50393 },
2489d6df
WB
50394 "monhost" : {
50395 "description" : "IP addresses of monitors (for external clusters).",
50396 "format" : "pve-storage-portal-dns-list",
50397 "optional" : 1,
50398 "type" : "string",
50399 "typetext" : "<string>"
50400 },
5c1699e5
TL
50401 "mountpoint" : {
50402 "description" : "mount point",
50403 "format" : "pve-storage-path",
50404 "optional" : 1,
50405 "type" : "string",
50406 "typetext" : "<string>"
50407 },
d2656385 50408 "namespace" : {
de786b48 50409 "description" : "Namespace.",
d2656385
TL
50410 "optional" : 1,
50411 "type" : "string",
50412 "typetext" : "<string>"
50413 },
5f4e66fe
TL
50414 "nocow" : {
50415 "default" : 0,
50416 "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.",
50417 "optional" : 1,
50418 "type" : "boolean",
50419 "typetext" : "<boolean>"
50420 },
7aacca6f 50421 "nodes" : {
44660702 50422 "description" : "List of cluster node names.",
7aacca6f
DM
50423 "format" : "pve-node-list",
50424 "optional" : 1,
013dc89f
DM
50425 "type" : "string",
50426 "typetext" : "<string>"
7aacca6f 50427 },
44660702
DM
50428 "nowritecache" : {
50429 "description" : "disable write caching on the target",
7aacca6f 50430 "optional" : 1,
013dc89f
DM
50431 "type" : "boolean",
50432 "typetext" : "<boolean>"
7aacca6f
DM
50433 },
50434 "options" : {
159464a9 50435 "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
44660702
DM
50436 "format" : "pve-storage-options",
50437 "optional" : 1,
013dc89f
DM
50438 "type" : "string",
50439 "typetext" : "<string>"
44660702 50440 },
27a7acb2 50441 "password" : {
04d22a9f 50442 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
50443 "maxLength" : 256,
50444 "optional" : 1,
50445 "type" : "string",
50446 "typetext" : "<string>"
50447 },
44660702
DM
50448 "pool" : {
50449 "description" : "Pool.",
50450 "optional" : 1,
013dc89f
DM
50451 "type" : "string",
50452 "typetext" : "<string>"
44660702 50453 },
4772952b
TL
50454 "port" : {
50455 "default" : 8007,
50456 "description" : "For non default port.",
50457 "maximum" : 65535,
50458 "minimum" : 1,
50459 "optional" : 1,
50460 "type" : "integer",
50461 "typetext" : "<integer> (1 - 65535)"
50462 },
5370fa8c
TL
50463 "preallocation" : {
50464 "default" : "metadata",
50465 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
50466 "enum" : [
50467 "off",
50468 "metadata",
50469 "falloc",
50470 "full"
50471 ],
50472 "optional" : 1,
50473 "type" : "string"
50474 },
739d4d64
TL
50475 "prune-backups" : {
50476 "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.",
50477 "format" : "prune-backups",
50478 "optional" : 1,
50479 "type" : "string",
4772952b 50480 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 50481 },
44660702
DM
50482 "saferemove" : {
50483 "description" : "Zero-out data when removing LVs.",
50484 "optional" : 1,
013dc89f
DM
50485 "type" : "boolean",
50486 "typetext" : "<boolean>"
7aacca6f
DM
50487 },
50488 "saferemove_throughput" : {
44660702 50489 "description" : "Wipe throughput (cstream -t parameter value).",
7aacca6f 50490 "optional" : 1,
013dc89f
DM
50491 "type" : "string",
50492 "typetext" : "<string>"
7aacca6f 50493 },
44660702
DM
50494 "server" : {
50495 "description" : "Server IP or DNS name.",
50496 "format" : "pve-storage-server",
7aacca6f 50497 "optional" : 1,
013dc89f
DM
50498 "type" : "string",
50499 "typetext" : "<string>"
7aacca6f 50500 },
44660702
DM
50501 "server2" : {
50502 "description" : "Backup volfile server IP or DNS name.",
50503 "format" : "pve-storage-server",
7aacca6f 50504 "optional" : 1,
44660702 50505 "requires" : "server",
013dc89f
DM
50506 "type" : "string",
50507 "typetext" : "<string>"
44660702
DM
50508 },
50509 "shared" : {
50510 "description" : "Mark storage as shared.",
50511 "optional" : 1,
013dc89f
DM
50512 "type" : "boolean",
50513 "typetext" : "<boolean>"
44660702 50514 },
27a7acb2 50515 "smbversion" : {
5370fa8c
TL
50516 "default" : "default",
50517 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 50518 "enum" : [
5370fa8c 50519 "default",
5da3d723
TL
50520 "2.0",
50521 "2.1",
5370fa8c
TL
50522 "3",
50523 "3.0",
50524 "3.11"
5da3d723 50525 ],
27a7acb2 50526 "optional" : 1,
5da3d723 50527 "type" : "string"
27a7acb2 50528 },
44660702
DM
50529 "sparse" : {
50530 "description" : "use sparse volumes",
50531 "optional" : 1,
013dc89f
DM
50532 "type" : "boolean",
50533 "typetext" : "<boolean>"
44660702
DM
50534 },
50535 "storage" : {
50536 "description" : "The storage identifier.",
50537 "format" : "pve-storage-id",
013dc89f
DM
50538 "type" : "string",
50539 "typetext" : "<string>"
44660702 50540 },
5da3d723
TL
50541 "subdir" : {
50542 "description" : "Subdir to mount.",
50543 "format" : "pve-storage-path",
50544 "optional" : 1,
50545 "type" : "string",
50546 "typetext" : "<string>"
50547 },
4bd7df8b
DM
50548 "tagged_only" : {
50549 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
50550 "optional" : 1,
013dc89f
DM
50551 "type" : "boolean",
50552 "typetext" : "<boolean>"
4bd7df8b 50553 },
44660702
DM
50554 "transport" : {
50555 "description" : "Gluster transport: tcp or rdma",
50556 "enum" : [
50557 "tcp",
50558 "rdma",
50559 "unix"
50560 ],
50561 "optional" : 1,
50562 "type" : "string"
7aacca6f
DM
50563 },
50564 "username" : {
50565 "description" : "RBD Id.",
44660702 50566 "optional" : 1,
013dc89f
DM
50567 "type" : "string",
50568 "typetext" : "<string>"
7aacca6f 50569 }
44660702
DM
50570 },
50571 "type" : "object"
50572 },
50573 "permissions" : {
50574 "check" : [
50575 "perm",
50576 "/storage",
50577 [
50578 "Datastore.Allocate"
50579 ]
50580 ]
50581 },
50582 "protected" : 1,
50583 "returns" : {
4772952b
TL
50584 "properties" : {
50585 "config" : {
50586 "additionalProperties" : 1,
50587 "description" : "Partial, possible server generated, configuration properties.",
50588 "optional" : 1,
50589 "properties" : {
50590 "encryption-key" : {
50591 "description" : "The, possible auto-generated, encryption-key.",
50592 "optional" : 1,
50593 "type" : "string"
50594 }
50595 },
50596 "type" : "object"
50597 },
50598 "storage" : {
50599 "description" : "The ID of the created storage.",
50600 "type" : "string"
50601 },
50602 "type" : {
50603 "description" : "The type of the created storage.",
50604 "enum" : [
5f4e66fe 50605 "btrfs",
4772952b
TL
50606 "cephfs",
50607 "cifs",
50608 "dir",
4772952b
TL
50609 "glusterfs",
50610 "iscsi",
50611 "iscsidirect",
50612 "lvm",
50613 "lvmthin",
50614 "nfs",
50615 "pbs",
50616 "rbd",
50617 "zfs",
50618 "zfspool"
50619 ],
50620 "type" : "string"
50621 }
50622 },
50623 "type" : "object"
44660702
DM
50624 }
50625 }
50626 },
50627 "leaf" : 1,
50628 "path" : "/storage/{storage}",
50629 "text" : "{storage}"
50630 }
50631 ],
50632 "info" : {
50633 "GET" : {
e9cd3bd4 50634 "allowtoken" : 1,
44660702
DM
50635 "description" : "Storage index.",
50636 "method" : "GET",
50637 "name" : "index",
50638 "parameters" : {
50639 "additionalProperties" : 0,
50640 "properties" : {
50641 "type" : {
50642 "description" : "Only list storage of specific type",
50643 "enum" : [
5f4e66fe 50644 "btrfs",
5da3d723 50645 "cephfs",
27a7acb2 50646 "cifs",
44660702 50647 "dir",
44660702
DM
50648 "glusterfs",
50649 "iscsi",
50650 "iscsidirect",
50651 "lvm",
50652 "lvmthin",
50653 "nfs",
c5aa7e14 50654 "pbs",
44660702 50655 "rbd",
44660702
DM
50656 "zfs",
50657 "zfspool"
50658 ],
50659 "optional" : 1,
50660 "type" : "string"
50661 }
50662 }
50663 },
50664 "permissions" : {
50665 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
50666 "user" : "all"
50667 },
50668 "returns" : {
50669 "items" : {
50670 "properties" : {
50671 "storage" : {
50672 "type" : "string"
7aacca6f 50673 }
56122987 50674 },
44660702
DM
50675 "type" : "object"
50676 },
50677 "links" : [
50678 {
50679 "href" : "{storage}",
50680 "rel" : "child"
50681 }
50682 ],
50683 "type" : "array"
50684 }
50685 },
50686 "POST" : {
e9cd3bd4 50687 "allowtoken" : 1,
44660702
DM
50688 "description" : "Create a new storage.",
50689 "method" : "POST",
50690 "name" : "create",
50691 "parameters" : {
50692 "additionalProperties" : 0,
50693 "properties" : {
50694 "authsupported" : {
50695 "description" : "Authsupported.",
50696 "optional" : 1,
013dc89f
DM
50697 "type" : "string",
50698 "typetext" : "<string>"
44660702
DM
50699 },
50700 "base" : {
50701 "description" : "Base volume. This volume is automatically activated.",
50702 "format" : "pve-volume-id",
50703 "optional" : 1,
013dc89f
DM
50704 "type" : "string",
50705 "typetext" : "<string>"
44660702
DM
50706 },
50707 "blocksize" : {
50708 "description" : "block size",
50709 "optional" : 1,
013dc89f
DM
50710 "type" : "string",
50711 "typetext" : "<string>"
44660702 50712 },
27a7acb2 50713 "bwlimit" : {
4a407cfd 50714 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
50715 "format" : {
50716 "clone" : {
95895385 50717 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
50718 "format_description" : "LIMIT",
50719 "minimum" : "0",
50720 "optional" : 1,
50721 "type" : "number"
50722 },
50723 "default" : {
95895385 50724 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
50725 "format_description" : "LIMIT",
50726 "minimum" : "0",
50727 "optional" : 1,
50728 "type" : "number"
50729 },
50730 "migration" : {
95895385 50731 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
50732 "format_description" : "LIMIT",
50733 "minimum" : "0",
50734 "optional" : 1,
50735 "type" : "number"
50736 },
50737 "move" : {
95895385 50738 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
50739 "format_description" : "LIMIT",
50740 "minimum" : "0",
50741 "optional" : 1,
50742 "type" : "number"
50743 },
50744 "restore" : {
95895385 50745 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
50746 "format_description" : "LIMIT",
50747 "minimum" : "0",
50748 "optional" : 1,
50749 "type" : "number"
50750 }
50751 },
50752 "optional" : 1,
50753 "type" : "string",
50754 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
50755 },
44660702
DM
50756 "comstar_hg" : {
50757 "description" : "host group for comstar views",
50758 "optional" : 1,
013dc89f
DM
50759 "type" : "string",
50760 "typetext" : "<string>"
44660702
DM
50761 },
50762 "comstar_tg" : {
50763 "description" : "target group for comstar views",
50764 "optional" : 1,
013dc89f
DM
50765 "type" : "string",
50766 "typetext" : "<string>"
44660702
DM
50767 },
50768 "content" : {
50769 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
50770 "format" : "pve-storage-content-list",
50771 "optional" : 1,
013dc89f
DM
50772 "type" : "string",
50773 "typetext" : "<string>"
44660702 50774 },
9d2e98ed
TL
50775 "content-dirs" : {
50776 "description" : "Overrides for default content type directories.",
50777 "format" : "pve-dir-override-list",
50778 "optional" : 1,
50779 "type" : "string",
50780 "typetext" : "<string>"
50781 },
4a407cfd
TL
50782 "create-base-path" : {
50783 "default" : "yes",
50784 "description" : "Create the base directory if it doesn't exist.",
50785 "optional" : 1,
50786 "type" : "boolean",
50787 "typetext" : "<boolean>"
50788 },
50789 "create-subdirs" : {
50790 "default" : "yes",
50791 "description" : "Populate the directory with the default structure.",
50792 "optional" : 1,
50793 "type" : "boolean",
50794 "typetext" : "<boolean>"
50795 },
c30bb419
TL
50796 "data-pool" : {
50797 "description" : "Data Pool (for erasure coding only)",
50798 "optional" : 1,
50799 "type" : "string",
50800 "typetext" : "<string>"
50801 },
c5aa7e14 50802 "datastore" : {
4772952b 50803 "description" : "Proxmox Backup Server datastore name.",
c5aa7e14
TL
50804 "optional" : 1,
50805 "type" : "string",
50806 "typetext" : "<string>"
50807 },
44660702
DM
50808 "disable" : {
50809 "description" : "Flag to disable the storage.",
50810 "optional" : 1,
013dc89f
DM
50811 "type" : "boolean",
50812 "typetext" : "<boolean>"
44660702 50813 },
27a7acb2
DM
50814 "domain" : {
50815 "description" : "CIFS domain.",
50816 "maxLength" : 256,
50817 "optional" : 1,
50818 "type" : "string",
50819 "typetext" : "<string>"
50820 },
04d22a9f
TL
50821 "encryption-key" : {
50822 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
50823 "optional" : 1,
50824 "type" : "string",
50825 "typetext" : "<string>"
50826 },
44660702
DM
50827 "export" : {
50828 "description" : "NFS export path.",
50829 "format" : "pve-storage-path",
50830 "optional" : 1,
013dc89f
DM
50831 "type" : "string",
50832 "typetext" : "<string>"
44660702 50833 },
c5aa7e14
TL
50834 "fingerprint" : {
50835 "description" : "Certificate SHA 256 fingerprint.",
50836 "optional" : 1,
50837 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
50838 "type" : "string"
50839 },
44660702
DM
50840 "format" : {
50841 "description" : "Default image format.",
50842 "format" : "pve-storage-format",
50843 "optional" : 1,
013dc89f
DM
50844 "type" : "string",
50845 "typetext" : "<string>"
44660702 50846 },
5370fa8c
TL
50847 "fs-name" : {
50848 "description" : "The Ceph filesystem name.",
50849 "format" : "pve-configid",
50850 "optional" : 1,
50851 "type" : "string",
50852 "typetext" : "<string>"
50853 },
5da3d723
TL
50854 "fuse" : {
50855 "description" : "Mount CephFS through FUSE.",
50856 "optional" : 1,
50857 "type" : "boolean",
50858 "typetext" : "<boolean>"
50859 },
2c0dde61
DM
50860 "is_mountpoint" : {
50861 "default" : "no",
2489d6df 50862 "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 50863 "optional" : 1,
2489d6df
WB
50864 "type" : "string",
50865 "typetext" : "<string>"
2c0dde61 50866 },
44660702
DM
50867 "iscsiprovider" : {
50868 "description" : "iscsi provider",
50869 "optional" : 1,
013dc89f
DM
50870 "type" : "string",
50871 "typetext" : "<string>"
44660702 50872 },
5370fa8c
TL
50873 "keyring" : {
50874 "description" : "Client keyring contents (for external clusters).",
50875 "optional" : 1,
50876 "type" : "string",
50877 "typetext" : "<string>"
50878 },
44660702 50879 "krbd" : {
e2d681b3 50880 "description" : "Always access rbd through krbd kernel module.",
44660702 50881 "optional" : 1,
013dc89f
DM
50882 "type" : "boolean",
50883 "typetext" : "<boolean>"
56122987 50884 },
4d47f125
TL
50885 "lio_tpg" : {
50886 "description" : "target portal group for Linux LIO targets",
50887 "optional" : 1,
50888 "type" : "string",
50889 "typetext" : "<string>"
50890 },
d2656385 50891 "master-pubkey" : {
5f4e66fe 50892 "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
50893 "optional" : 1,
50894 "type" : "string",
50895 "typetext" : "<string>"
50896 },
7af2edf9
TL
50897 "max-protected-backups" : {
50898 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
50899 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
50900 "minimum" : -1,
50901 "optional" : 1,
50902 "type" : "integer",
50903 "typetext" : "<integer> (-1 - N)"
50904 },
44660702 50905 "maxfiles" : {
5f4e66fe 50906 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
50907 "minimum" : 0,
50908 "optional" : 1,
4bd7df8b 50909 "type" : "integer",
013dc89f 50910 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
50911 },
50912 "mkdir" : {
50913 "default" : "yes",
4a407cfd 50914 "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 50915 "optional" : 1,
013dc89f
DM
50916 "type" : "boolean",
50917 "typetext" : "<boolean>"
7aacca6f 50918 },
44660702 50919 "monhost" : {
2489d6df 50920 "description" : "IP addresses of monitors (for external clusters).",
4bd7df8b 50921 "format" : "pve-storage-portal-dns-list",
44660702 50922 "optional" : 1,
013dc89f
DM
50923 "type" : "string",
50924 "typetext" : "<string>"
7aacca6f 50925 },
5c1699e5
TL
50926 "mountpoint" : {
50927 "description" : "mount point",
50928 "format" : "pve-storage-path",
50929 "optional" : 1,
50930 "type" : "string",
50931 "typetext" : "<string>"
50932 },
d2656385 50933 "namespace" : {
de786b48 50934 "description" : "Namespace.",
d2656385
TL
50935 "optional" : 1,
50936 "type" : "string",
50937 "typetext" : "<string>"
50938 },
5f4e66fe
TL
50939 "nocow" : {
50940 "default" : 0,
50941 "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.",
50942 "optional" : 1,
50943 "type" : "boolean",
50944 "typetext" : "<boolean>"
50945 },
44660702
DM
50946 "nodes" : {
50947 "description" : "List of cluster node names.",
50948 "format" : "pve-node-list",
50949 "optional" : 1,
013dc89f
DM
50950 "type" : "string",
50951 "typetext" : "<string>"
7aacca6f 50952 },
44660702
DM
50953 "nowritecache" : {
50954 "description" : "disable write caching on the target",
50955 "optional" : 1,
013dc89f
DM
50956 "type" : "boolean",
50957 "typetext" : "<boolean>"
44660702
DM
50958 },
50959 "options" : {
159464a9 50960 "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
44660702
DM
50961 "format" : "pve-storage-options",
50962 "optional" : 1,
013dc89f
DM
50963 "type" : "string",
50964 "typetext" : "<string>"
44660702 50965 },
27a7acb2 50966 "password" : {
04d22a9f 50967 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
50968 "maxLength" : 256,
50969 "optional" : 1,
50970 "type" : "string",
50971 "typetext" : "<string>"
50972 },
44660702
DM
50973 "path" : {
50974 "description" : "File system path.",
50975 "format" : "pve-storage-path",
50976 "optional" : 1,
013dc89f
DM
50977 "type" : "string",
50978 "typetext" : "<string>"
44660702
DM
50979 },
50980 "pool" : {
50981 "description" : "Pool.",
50982 "optional" : 1,
013dc89f
DM
50983 "type" : "string",
50984 "typetext" : "<string>"
44660702 50985 },
4772952b
TL
50986 "port" : {
50987 "default" : 8007,
50988 "description" : "For non default port.",
50989 "maximum" : 65535,
50990 "minimum" : 1,
50991 "optional" : 1,
50992 "type" : "integer",
50993 "typetext" : "<integer> (1 - 65535)"
50994 },
44660702
DM
50995 "portal" : {
50996 "description" : "iSCSI portal (IP or DNS name with optional port).",
50997 "format" : "pve-storage-portal-dns",
50998 "optional" : 1,
013dc89f
DM
50999 "type" : "string",
51000 "typetext" : "<string>"
44660702 51001 },
5370fa8c
TL
51002 "preallocation" : {
51003 "default" : "metadata",
51004 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
51005 "enum" : [
51006 "off",
51007 "metadata",
51008 "falloc",
51009 "full"
51010 ],
51011 "optional" : 1,
51012 "type" : "string"
51013 },
739d4d64
TL
51014 "prune-backups" : {
51015 "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.",
51016 "format" : "prune-backups",
51017 "optional" : 1,
51018 "type" : "string",
4772952b 51019 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 51020 },
44660702
DM
51021 "saferemove" : {
51022 "description" : "Zero-out data when removing LVs.",
51023 "optional" : 1,
013dc89f
DM
51024 "type" : "boolean",
51025 "typetext" : "<boolean>"
44660702
DM
51026 },
51027 "saferemove_throughput" : {
51028 "description" : "Wipe throughput (cstream -t parameter value).",
51029 "optional" : 1,
013dc89f
DM
51030 "type" : "string",
51031 "typetext" : "<string>"
44660702
DM
51032 },
51033 "server" : {
51034 "description" : "Server IP or DNS name.",
51035 "format" : "pve-storage-server",
51036 "optional" : 1,
013dc89f
DM
51037 "type" : "string",
51038 "typetext" : "<string>"
44660702
DM
51039 },
51040 "server2" : {
51041 "description" : "Backup volfile server IP or DNS name.",
51042 "format" : "pve-storage-server",
51043 "optional" : 1,
51044 "requires" : "server",
013dc89f
DM
51045 "type" : "string",
51046 "typetext" : "<string>"
44660702 51047 },
27a7acb2
DM
51048 "share" : {
51049 "description" : "CIFS share.",
51050 "optional" : 1,
51051 "type" : "string",
51052 "typetext" : "<string>"
51053 },
44660702
DM
51054 "shared" : {
51055 "description" : "Mark storage as shared.",
51056 "optional" : 1,
013dc89f
DM
51057 "type" : "boolean",
51058 "typetext" : "<boolean>"
44660702 51059 },
27a7acb2 51060 "smbversion" : {
5370fa8c
TL
51061 "default" : "default",
51062 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 51063 "enum" : [
5370fa8c 51064 "default",
5da3d723
TL
51065 "2.0",
51066 "2.1",
5370fa8c
TL
51067 "3",
51068 "3.0",
51069 "3.11"
5da3d723 51070 ],
27a7acb2 51071 "optional" : 1,
5da3d723 51072 "type" : "string"
27a7acb2 51073 },
44660702
DM
51074 "sparse" : {
51075 "description" : "use sparse volumes",
51076 "optional" : 1,
013dc89f
DM
51077 "type" : "boolean",
51078 "typetext" : "<boolean>"
44660702
DM
51079 },
51080 "storage" : {
51081 "description" : "The storage identifier.",
51082 "format" : "pve-storage-id",
013dc89f
DM
51083 "type" : "string",
51084 "typetext" : "<string>"
44660702 51085 },
5da3d723
TL
51086 "subdir" : {
51087 "description" : "Subdir to mount.",
51088 "format" : "pve-storage-path",
51089 "optional" : 1,
51090 "type" : "string",
51091 "typetext" : "<string>"
51092 },
4bd7df8b
DM
51093 "tagged_only" : {
51094 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
51095 "optional" : 1,
013dc89f
DM
51096 "type" : "boolean",
51097 "typetext" : "<boolean>"
4bd7df8b 51098 },
44660702
DM
51099 "target" : {
51100 "description" : "iSCSI target.",
51101 "optional" : 1,
013dc89f
DM
51102 "type" : "string",
51103 "typetext" : "<string>"
44660702
DM
51104 },
51105 "thinpool" : {
51106 "description" : "LVM thin pool LV name.",
51107 "format" : "pve-storage-vgname",
51108 "optional" : 1,
013dc89f
DM
51109 "type" : "string",
51110 "typetext" : "<string>"
44660702
DM
51111 },
51112 "transport" : {
51113 "description" : "Gluster transport: tcp or rdma",
51114 "enum" : [
51115 "tcp",
51116 "rdma",
51117 "unix"
7aacca6f 51118 ],
44660702
DM
51119 "optional" : 1,
51120 "type" : "string"
56122987 51121 },
44660702
DM
51122 "type" : {
51123 "description" : "Storage type.",
51124 "enum" : [
5f4e66fe 51125 "btrfs",
5da3d723 51126 "cephfs",
27a7acb2 51127 "cifs",
44660702 51128 "dir",
44660702
DM
51129 "glusterfs",
51130 "iscsi",
51131 "iscsidirect",
51132 "lvm",
51133 "lvmthin",
51134 "nfs",
c5aa7e14 51135 "pbs",
44660702 51136 "rbd",
44660702
DM
51137 "zfs",
51138 "zfspool"
51139 ],
51140 "type" : "string"
56122987 51141 },
44660702
DM
51142 "username" : {
51143 "description" : "RBD Id.",
51144 "optional" : 1,
013dc89f
DM
51145 "type" : "string",
51146 "typetext" : "<string>"
7aacca6f 51147 },
44660702
DM
51148 "vgname" : {
51149 "description" : "Volume group name.",
51150 "format" : "pve-storage-vgname",
51151 "optional" : 1,
013dc89f
DM
51152 "type" : "string",
51153 "typetext" : "<string>"
44660702
DM
51154 },
51155 "volume" : {
51156 "description" : "Glusterfs Volume.",
51157 "optional" : 1,
013dc89f
DM
51158 "type" : "string",
51159 "typetext" : "<string>"
44660702
DM
51160 }
51161 },
51162 "type" : "object"
51163 },
51164 "permissions" : {
51165 "check" : [
51166 "perm",
51167 "/storage",
51168 [
51169 "Datastore.Allocate"
51170 ]
51171 ]
56122987 51172 },
44660702
DM
51173 "protected" : 1,
51174 "returns" : {
4772952b
TL
51175 "properties" : {
51176 "config" : {
51177 "additionalProperties" : 1,
51178 "description" : "Partial, possible server generated, configuration properties.",
51179 "optional" : 1,
51180 "properties" : {
51181 "encryption-key" : {
51182 "description" : "The, possible auto-generated, encryption-key.",
51183 "optional" : 1,
51184 "type" : "string"
51185 }
51186 },
51187 "type" : "object"
51188 },
51189 "storage" : {
51190 "description" : "The ID of the created storage.",
51191 "type" : "string"
51192 },
51193 "type" : {
51194 "description" : "The type of the created storage.",
51195 "enum" : [
5f4e66fe 51196 "btrfs",
4772952b
TL
51197 "cephfs",
51198 "cifs",
51199 "dir",
4772952b
TL
51200 "glusterfs",
51201 "iscsi",
51202 "iscsidirect",
51203 "lvm",
51204 "lvmthin",
51205 "nfs",
51206 "pbs",
51207 "rbd",
51208 "zfs",
51209 "zfspool"
51210 ],
51211 "type" : "string"
51212 }
51213 },
51214 "type" : "object"
44660702
DM
51215 }
51216 }
51217 },
51218 "leaf" : 0,
51219 "path" : "/storage",
51220 "text" : "storage"
51221 },
51222 {
51223 "children" : [
51224 {
56122987
DM
51225 "children" : [
51226 {
bb4c8cf8
TL
51227 "children" : [
51228 {
51229 "info" : {
51230 "GET" : {
e9cd3bd4 51231 "allowtoken" : 1,
bb4c8cf8
TL
51232 "description" : "Get user TFA types (Personal and Realm).",
51233 "method" : "GET",
51234 "name" : "read_user_tfa_type",
51235 "parameters" : {
51236 "additionalProperties" : 0,
51237 "properties" : {
5370fa8c
TL
51238 "multiple" : {
51239 "default" : 0,
51240 "description" : "Request all entries as an array.",
51241 "optional" : 1,
51242 "type" : "boolean",
51243 "typetext" : "<boolean>"
51244 },
bb4c8cf8 51245 "userid" : {
9d2e98ed 51246 "description" : "Full User ID, in the `name@realm` format.",
bb4c8cf8
TL
51247 "format" : "pve-userid",
51248 "maxLength" : 64,
51249 "type" : "string",
51250 "typetext" : "<string>"
51251 }
51252 }
51253 },
51254 "permissions" : {
51255 "check" : [
51256 "or",
51257 [
51258 "userid-param",
51259 "self"
51260 ],
51261 [
51262 "userid-group",
51263 [
51264 "User.Modify",
51265 "Sys.Audit"
51266 ]
51267 ]
51268 ]
51269 },
51270 "protected" : 1,
51271 "returns" : {
51272 "additionalProperties" : 0,
51273 "properties" : {
51274 "realm" : {
51275 "description" : "The type of TFA the users realm has set, if any.",
51276 "enum" : [
51277 "oath",
51278 "yubico"
51279 ],
51280 "optional" : 1,
51281 "type" : "string"
51282 },
5370fa8c
TL
51283 "types" : {
51284 "description" : "Array of the user configured TFA types, if any. Only available if 'multiple' was not passed.",
51285 "items" : {
51286 "description" : "A TFA type.",
51287 "enum" : [
51288 "totp",
51289 "u2f",
51290 "yubico",
51291 "webauthn",
51292 "recovedry"
51293 ],
51294 "type" : "string"
51295 },
51296 "optional" : 1,
51297 "type" : "array"
51298 },
bb4c8cf8 51299 "user" : {
5370fa8c 51300 "description" : "The type of TFA the user has set, if any. Only set if 'multiple' was not passed.",
bb4c8cf8
TL
51301 "enum" : [
51302 "oath",
51303 "u2f"
51304 ],
51305 "optional" : 1,
51306 "type" : "string"
51307 }
51308 },
51309 "type" : "object"
51310 }
51311 }
51312 },
51313 "leaf" : 1,
51314 "path" : "/access/users/{userid}/tfa",
51315 "text" : "tfa"
e9cd3bd4 51316 },
4a407cfd
TL
51317 {
51318 "info" : {
51319 "PUT" : {
51320 "allowtoken" : 1,
51321 "description" : "Unlock a user's TFA authentication.",
51322 "method" : "PUT",
51323 "name" : "unlock_tfa",
51324 "parameters" : {
51325 "additionalProperties" : 0,
51326 "properties" : {
51327 "userid" : {
51328 "description" : "Full User ID, in the `name@realm` format.",
51329 "format" : "pve-userid",
51330 "maxLength" : 64,
51331 "type" : "string",
51332 "typetext" : "<string>"
51333 }
51334 }
51335 },
51336 "permissions" : {
51337 "check" : [
51338 "userid-group",
51339 [
51340 "User.Modify"
51341 ]
51342 ]
51343 },
51344 "protected" : 1,
51345 "returns" : {
51346 "type" : "boolean"
51347 }
51348 }
51349 },
51350 "leaf" : 1,
51351 "path" : "/access/users/{userid}/unlock-tfa",
51352 "text" : "unlock-tfa"
51353 },
e9cd3bd4
TL
51354 {
51355 "children" : [
51356 {
51357 "info" : {
51358 "DELETE" : {
51359 "allowtoken" : 1,
51360 "description" : "Remove API token for a specific user.",
51361 "method" : "DELETE",
51362 "name" : "remove_token",
51363 "parameters" : {
51364 "additionalProperties" : 0,
51365 "properties" : {
51366 "tokenid" : {
51367 "description" : "User-specific token identifier.",
51368 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
51369 "type" : "string"
51370 },
51371 "userid" : {
9d2e98ed 51372 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
51373 "format" : "pve-userid",
51374 "maxLength" : 64,
51375 "type" : "string",
51376 "typetext" : "<string>"
51377 }
51378 }
51379 },
51380 "permissions" : {
51381 "check" : [
51382 "or",
51383 [
51384 "userid-param",
51385 "self"
51386 ],
51387 [
de786b48 51388 "userid-group",
e9cd3bd4
TL
51389 [
51390 "User.Modify"
51391 ]
51392 ]
51393 ]
51394 },
51395 "protected" : 1,
51396 "returns" : {
c5aa7e14
TL
51397 "type" : "null"
51398 }
51399 },
51400 "GET" : {
51401 "allowtoken" : 1,
51402 "description" : "Get specific API token information.",
51403 "method" : "GET",
51404 "name" : "read_token",
51405 "parameters" : {
51406 "additionalProperties" : 0,
51407 "properties" : {
51408 "tokenid" : {
51409 "description" : "User-specific token identifier.",
51410 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
51411 "type" : "string"
51412 },
51413 "userid" : {
9d2e98ed 51414 "description" : "Full User ID, in the `name@realm` format.",
c5aa7e14
TL
51415 "format" : "pve-userid",
51416 "maxLength" : 64,
51417 "type" : "string",
51418 "typetext" : "<string>"
51419 }
51420 }
51421 },
51422 "permissions" : {
51423 "check" : [
51424 "or",
51425 [
51426 "userid-param",
51427 "self"
51428 ],
51429 [
de786b48 51430 "userid-group",
c5aa7e14
TL
51431 [
51432 "User.Modify"
51433 ]
51434 ]
51435 ]
51436 },
51437 "returns" : {
51438 "properties" : {
51439 "comment" : {
51440 "optional" : 1,
51441 "type" : "string"
51442 },
51443 "expire" : {
51444 "default" : "same as user",
51445 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
51446 "minimum" : 0,
51447 "optional" : 1,
51448 "type" : "integer"
51449 },
51450 "privsep" : {
51451 "default" : 1,
51452 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
51453 "optional" : 1,
51454 "type" : "boolean"
51455 }
51456 },
51457 "type" : "object"
51458 }
51459 },
51460 "POST" : {
51461 "allowtoken" : 1,
51462 "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!",
51463 "method" : "POST",
51464 "name" : "generate_token",
51465 "parameters" : {
51466 "additionalProperties" : 0,
51467 "properties" : {
51468 "comment" : {
51469 "optional" : 1,
51470 "type" : "string",
51471 "typetext" : "<string>"
51472 },
51473 "expire" : {
51474 "default" : "same as user",
51475 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
51476 "minimum" : 0,
51477 "optional" : 1,
51478 "type" : "integer",
51479 "typetext" : "<integer> (0 - N)"
51480 },
51481 "privsep" : {
51482 "default" : 1,
51483 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
51484 "optional" : 1,
51485 "type" : "boolean",
51486 "typetext" : "<boolean>"
51487 },
51488 "tokenid" : {
51489 "description" : "User-specific token identifier.",
51490 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
51491 "type" : "string"
51492 },
51493 "userid" : {
9d2e98ed 51494 "description" : "Full User ID, in the `name@realm` format.",
c5aa7e14
TL
51495 "format" : "pve-userid",
51496 "maxLength" : 64,
51497 "type" : "string",
51498 "typetext" : "<string>"
51499 }
51500 }
51501 },
51502 "permissions" : {
51503 "check" : [
51504 "or",
51505 [
51506 "userid-param",
51507 "self"
51508 ],
51509 [
de786b48 51510 "userid-group",
c5aa7e14
TL
51511 [
51512 "User.Modify"
51513 ]
51514 ]
51515 ]
51516 },
51517 "protected" : 1,
51518 "returns" : {
e9cd3bd4
TL
51519 "additionalProperties" : 0,
51520 "properties" : {
c5aa7e14
TL
51521 "full-tokenid" : {
51522 "description" : "The full token id.",
51523 "format_description" : "<userid>!<tokenid>",
e9cd3bd4
TL
51524 "type" : "string"
51525 },
e9cd3bd4
TL
51526 "info" : {
51527 "properties" : {
51528 "comment" : {
51529 "optional" : 1,
51530 "type" : "string"
51531 },
51532 "expire" : {
51533 "default" : "same as user",
51534 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
51535 "minimum" : 0,
51536 "optional" : 1,
51537 "type" : "integer"
51538 },
51539 "privsep" : {
51540 "default" : 1,
51541 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
51542 "optional" : 1,
51543 "type" : "boolean"
51544 }
51545 },
51546 "type" : "object"
51547 },
51548 "value" : {
51549 "description" : "API token value used for authentication.",
51550 "type" : "string"
51551 }
51552 },
51553 "type" : "object"
51554 }
51555 },
51556 "PUT" : {
51557 "allowtoken" : 1,
51558 "description" : "Update API token for a specific user.",
51559 "method" : "PUT",
51560 "name" : "update_token_info",
51561 "parameters" : {
51562 "additionalProperties" : 0,
51563 "properties" : {
51564 "comment" : {
51565 "optional" : 1,
51566 "type" : "string",
51567 "typetext" : "<string>"
51568 },
51569 "expire" : {
51570 "default" : "same as user",
51571 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
51572 "minimum" : 0,
51573 "optional" : 1,
51574 "type" : "integer",
51575 "typetext" : "<integer> (0 - N)"
51576 },
51577 "privsep" : {
51578 "default" : 1,
51579 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
51580 "optional" : 1,
51581 "type" : "boolean",
51582 "typetext" : "<boolean>"
51583 },
51584 "tokenid" : {
51585 "description" : "User-specific token identifier.",
51586 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
51587 "type" : "string"
51588 },
51589 "userid" : {
9d2e98ed 51590 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
51591 "format" : "pve-userid",
51592 "maxLength" : 64,
51593 "type" : "string",
51594 "typetext" : "<string>"
51595 }
51596 }
51597 },
51598 "permissions" : {
51599 "check" : [
51600 "or",
51601 [
51602 "userid-param",
51603 "self"
51604 ],
51605 [
de786b48 51606 "userid-group",
e9cd3bd4
TL
51607 [
51608 "User.Modify"
51609 ]
51610 ]
51611 ]
51612 },
51613 "protected" : 1,
51614 "returns" : {
51615 "description" : "Updated token information.",
51616 "properties" : {
51617 "comment" : {
51618 "optional" : 1,
51619 "type" : "string"
51620 },
51621 "expire" : {
51622 "default" : "same as user",
51623 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
51624 "minimum" : 0,
51625 "optional" : 1,
51626 "type" : "integer"
51627 },
51628 "privsep" : {
51629 "default" : 1,
51630 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
51631 "optional" : 1,
51632 "type" : "boolean"
51633 }
51634 },
51635 "type" : "object"
51636 }
51637 }
51638 },
51639 "leaf" : 1,
51640 "path" : "/access/users/{userid}/token/{tokenid}",
51641 "text" : "{tokenid}"
51642 }
51643 ],
51644 "info" : {
51645 "GET" : {
51646 "allowtoken" : 1,
51647 "description" : "Get user API tokens.",
51648 "method" : "GET",
51649 "name" : "token_index",
51650 "parameters" : {
51651 "additionalProperties" : 0,
51652 "properties" : {
51653 "userid" : {
9d2e98ed 51654 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
51655 "format" : "pve-userid",
51656 "maxLength" : 64,
51657 "type" : "string",
51658 "typetext" : "<string>"
51659 }
51660 }
51661 },
51662 "permissions" : {
51663 "check" : [
51664 "or",
51665 [
51666 "userid-param",
51667 "self"
51668 ],
51669 [
de786b48 51670 "userid-group",
e9cd3bd4
TL
51671 [
51672 "User.Modify"
51673 ]
51674 ]
51675 ]
51676 },
51677 "returns" : {
51678 "items" : {
51679 "properties" : {
51680 "comment" : {
51681 "optional" : 1,
51682 "type" : "string"
51683 },
51684 "expire" : {
51685 "default" : "same as user",
51686 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
51687 "minimum" : 0,
51688 "optional" : 1,
51689 "type" : "integer"
51690 },
51691 "privsep" : {
51692 "default" : 1,
51693 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
51694 "optional" : 1,
51695 "type" : "boolean"
51696 },
51697 "tokenid" : {
51698 "description" : "User-specific token identifier.",
51699 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
51700 "type" : "string"
51701 }
51702 },
51703 "type" : "object"
51704 },
51705 "links" : [
51706 {
51707 "href" : "{tokenid}",
51708 "rel" : "child"
51709 }
51710 ],
51711 "type" : "array"
51712 }
51713 }
51714 },
51715 "leaf" : 0,
51716 "path" : "/access/users/{userid}/token",
51717 "text" : "token"
bb4c8cf8
TL
51718 }
51719 ],
56122987 51720 "info" : {
44660702 51721 "DELETE" : {
e9cd3bd4 51722 "allowtoken" : 1,
44660702
DM
51723 "description" : "Delete user.",
51724 "method" : "DELETE",
51725 "name" : "delete_user",
56122987 51726 "parameters" : {
7aacca6f 51727 "additionalProperties" : 0,
56122987 51728 "properties" : {
56122987 51729 "userid" : {
9d2e98ed 51730 "description" : "Full User ID, in the `name@realm` format.",
56122987 51731 "format" : "pve-userid",
44660702 51732 "maxLength" : 64,
013dc89f
DM
51733 "type" : "string",
51734 "typetext" : "<string>"
56122987 51735 }
7aacca6f 51736 }
56122987 51737 },
56122987
DM
51738 "permissions" : {
51739 "check" : [
44660702 51740 "and",
56122987 51741 [
44660702
DM
51742 "userid-param",
51743 "Realm.AllocateUser"
56122987 51744 ],
44660702
DM
51745 [
51746 "userid-group",
51747 [
51748 "User.Modify"
51749 ]
51750 ]
56122987 51751 ]
7aacca6f 51752 },
44660702 51753 "protected" : 1,
56122987
DM
51754 "returns" : {
51755 "type" : "null"
44660702 51756 }
7aacca6f 51757 },
44660702 51758 "GET" : {
e9cd3bd4 51759 "allowtoken" : 1,
44660702
DM
51760 "description" : "Get user configuration.",
51761 "method" : "GET",
51762 "name" : "read_user",
56122987
DM
51763 "parameters" : {
51764 "additionalProperties" : 0,
51765 "properties" : {
51766 "userid" : {
9d2e98ed 51767 "description" : "Full User ID, in the `name@realm` format.",
56122987 51768 "format" : "pve-userid",
44660702 51769 "maxLength" : 64,
013dc89f
DM
51770 "type" : "string",
51771 "typetext" : "<string>"
56122987
DM
51772 }
51773 }
51774 },
56122987
DM
51775 "permissions" : {
51776 "check" : [
44660702 51777 "userid-group",
56122987 51778 [
44660702
DM
51779 "User.Modify",
51780 "Sys.Audit"
56122987
DM
51781 ]
51782 ]
51783 },
56122987 51784 "returns" : {
7aacca6f 51785 "additionalProperties" : 0,
56122987 51786 "properties" : {
44660702
DM
51787 "comment" : {
51788 "optional" : 1,
51789 "type" : "string"
56122987 51790 },
44660702 51791 "email" : {
e2d681b3 51792 "format" : "email-opt",
44660702
DM
51793 "optional" : 1,
51794 "type" : "string"
7aacca6f
DM
51795 },
51796 "enable" : {
e2d681b3
TL
51797 "default" : 1,
51798 "description" : "Enable the account (default). You can set this to '0' to disable the account",
51799 "optional" : 1,
7aacca6f
DM
51800 "type" : "boolean"
51801 },
44660702 51802 "expire" : {
e2d681b3
TL
51803 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
51804 "minimum" : 0,
44660702
DM
51805 "optional" : 1,
51806 "type" : "integer"
51807 },
51808 "firstname" : {
56122987
DM
51809 "optional" : 1,
51810 "type" : "string"
51811 },
44660702 51812 "groups" : {
e9cd3bd4
TL
51813 "items" : {
51814 "format" : "pve-groupid",
51815 "type" : "string"
51816 },
51817 "optional" : 1,
44660702 51818 "type" : "array"
56122987 51819 },
44660702 51820 "keys" : {
e2d681b3 51821 "description" : "Keys for two factor auth (yubico).",
44660702
DM
51822 "optional" : 1,
51823 "type" : "string"
7aacca6f 51824 },
44660702
DM
51825 "lastname" : {
51826 "optional" : 1,
51827 "type" : "string"
e9cd3bd4
TL
51828 },
51829 "tokens" : {
c30bb419
TL
51830 "additionalProperties" : {
51831 "properties" : {
51832 "comment" : {
51833 "optional" : 1,
51834 "type" : "string"
51835 },
51836 "expire" : {
51837 "default" : "same as user",
51838 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
51839 "minimum" : 0,
51840 "optional" : 1,
51841 "type" : "integer"
51842 },
51843 "privsep" : {
51844 "default" : 1,
51845 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
51846 "optional" : 1,
51847 "type" : "boolean"
51848 }
51849 },
51850 "type" : "object"
51851 },
e9cd3bd4
TL
51852 "optional" : 1,
51853 "type" : "object"
56122987 51854 }
e2d681b3
TL
51855 },
51856 "type" : "object"
44660702
DM
51857 }
51858 },
51859 "PUT" : {
e9cd3bd4 51860 "allowtoken" : 1,
44660702
DM
51861 "description" : "Update user configuration.",
51862 "method" : "PUT",
51863 "name" : "update_user",
56122987 51864 "parameters" : {
44660702 51865 "additionalProperties" : 0,
56122987 51866 "properties" : {
44660702
DM
51867 "append" : {
51868 "optional" : 1,
51869 "requires" : "groups",
013dc89f
DM
51870 "type" : "boolean",
51871 "typetext" : "<boolean>"
44660702
DM
51872 },
51873 "comment" : {
51874 "optional" : 1,
013dc89f
DM
51875 "type" : "string",
51876 "typetext" : "<string>"
44660702
DM
51877 },
51878 "email" : {
51879 "format" : "email-opt",
51880 "optional" : 1,
013dc89f
DM
51881 "type" : "string",
51882 "typetext" : "<string>"
44660702
DM
51883 },
51884 "enable" : {
e2d681b3
TL
51885 "default" : 1,
51886 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 51887 "optional" : 1,
013dc89f
DM
51888 "type" : "boolean",
51889 "typetext" : "<boolean>"
44660702
DM
51890 },
51891 "expire" : {
51892 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
51893 "minimum" : 0,
51894 "optional" : 1,
4bd7df8b 51895 "type" : "integer",
013dc89f 51896 "typetext" : "<integer> (0 - N)"
44660702
DM
51897 },
51898 "firstname" : {
51899 "optional" : 1,
013dc89f
DM
51900 "type" : "string",
51901 "typetext" : "<string>"
44660702
DM
51902 },
51903 "groups" : {
51904 "format" : "pve-groupid-list",
51905 "optional" : 1,
013dc89f
DM
51906 "type" : "string",
51907 "typetext" : "<string>"
44660702
DM
51908 },
51909 "keys" : {
51910 "description" : "Keys for two factor auth (yubico).",
51911 "optional" : 1,
013dc89f
DM
51912 "type" : "string",
51913 "typetext" : "<string>"
44660702
DM
51914 },
51915 "lastname" : {
51916 "optional" : 1,
013dc89f
DM
51917 "type" : "string",
51918 "typetext" : "<string>"
44660702 51919 },
56122987 51920 "userid" : {
9d2e98ed 51921 "description" : "Full User ID, in the `name@realm` format.",
56122987 51922 "format" : "pve-userid",
44660702 51923 "maxLength" : 64,
013dc89f
DM
51924 "type" : "string",
51925 "typetext" : "<string>"
56122987 51926 }
44660702 51927 }
56122987 51928 },
56122987
DM
51929 "permissions" : {
51930 "check" : [
51931 "userid-group",
51932 [
44660702
DM
51933 "User.Modify"
51934 ],
51935 "groups_param",
c30bb419 51936 "update"
56122987
DM
51937 ]
51938 },
44660702
DM
51939 "protected" : 1,
51940 "returns" : {
51941 "type" : "null"
51942 }
56122987
DM
51943 }
51944 },
bb4c8cf8 51945 "leaf" : 0,
44660702 51946 "path" : "/access/users/{userid}",
7aacca6f 51947 "text" : "{userid}"
56122987 51948 }
7aacca6f 51949 ],
56122987 51950 "info" : {
7aacca6f 51951 "GET" : {
e9cd3bd4 51952 "allowtoken" : 1,
44660702
DM
51953 "description" : "User index.",
51954 "method" : "GET",
7aacca6f 51955 "name" : "index",
56122987 51956 "parameters" : {
44660702
DM
51957 "additionalProperties" : 0,
51958 "properties" : {
51959 "enabled" : {
51960 "description" : "Optional filter for enable property.",
51961 "optional" : 1,
013dc89f
DM
51962 "type" : "boolean",
51963 "typetext" : "<boolean>"
e9cd3bd4
TL
51964 },
51965 "full" : {
51966 "default" : 0,
51967 "description" : "Include group and token information.",
51968 "optional" : 1,
51969 "type" : "boolean",
51970 "typetext" : "<boolean>"
44660702
DM
51971 }
51972 }
51973 },
51974 "permissions" : {
51975 "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.",
51976 "user" : "all"
56122987 51977 },
4a407cfd 51978 "protected" : 1,
7aacca6f 51979 "returns" : {
7aacca6f
DM
51980 "items" : {
51981 "properties" : {
e2d681b3
TL
51982 "comment" : {
51983 "optional" : 1,
51984 "type" : "string"
51985 },
51986 "email" : {
51987 "format" : "email-opt",
51988 "optional" : 1,
51989 "type" : "string"
51990 },
51991 "enable" : {
51992 "default" : 1,
51993 "description" : "Enable the account (default). You can set this to '0' to disable the account",
51994 "optional" : 1,
51995 "type" : "boolean"
51996 },
51997 "expire" : {
51998 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
51999 "minimum" : 0,
52000 "optional" : 1,
52001 "type" : "integer"
52002 },
52003 "firstname" : {
52004 "optional" : 1,
52005 "type" : "string"
52006 },
e9cd3bd4
TL
52007 "groups" : {
52008 "format" : "pve-groupid-list",
52009 "optional" : 1,
52010 "type" : "string"
52011 },
e2d681b3
TL
52012 "keys" : {
52013 "description" : "Keys for two factor auth (yubico).",
52014 "optional" : 1,
52015 "type" : "string"
52016 },
52017 "lastname" : {
52018 "optional" : 1,
52019 "type" : "string"
52020 },
34f3e481
TL
52021 "realm-type" : {
52022 "description" : "The type of the users realm",
52023 "format" : "pve-realm",
52024 "optional" : 1,
52025 "type" : "string"
52026 },
4a407cfd
TL
52027 "tfa-locked-until" : {
52028 "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
52029 "optional" : 1,
52030 "type" : "integer"
52031 },
e9cd3bd4
TL
52032 "tokens" : {
52033 "items" : {
52034 "properties" : {
52035 "comment" : {
52036 "optional" : 1,
52037 "type" : "string"
52038 },
52039 "expire" : {
52040 "default" : "same as user",
52041 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
52042 "minimum" : 0,
52043 "optional" : 1,
52044 "type" : "integer"
52045 },
52046 "privsep" : {
52047 "default" : 1,
52048 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
52049 "optional" : 1,
52050 "type" : "boolean"
52051 },
52052 "tokenid" : {
52053 "description" : "User-specific token identifier.",
52054 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
52055 "type" : "string"
52056 }
52057 },
52058 "type" : "object"
52059 },
52060 "optional" : 1,
52061 "type" : "array"
52062 },
4a407cfd
TL
52063 "totp-locked" : {
52064 "description" : "True if the user is currently locked out of TOTP factors.",
52065 "optional" : 1,
52066 "type" : "boolean"
52067 },
44660702 52068 "userid" : {
9d2e98ed 52069 "description" : "Full User ID, in the `name@realm` format.",
e2d681b3
TL
52070 "format" : "pve-userid",
52071 "maxLength" : 64,
7aacca6f
DM
52072 "type" : "string"
52073 }
52074 },
52075 "type" : "object"
52076 },
44660702
DM
52077 "links" : [
52078 {
52079 "href" : "{userid}",
52080 "rel" : "child"
52081 }
52082 ],
7aacca6f
DM
52083 "type" : "array"
52084 }
52085 },
52086 "POST" : {
e9cd3bd4 52087 "allowtoken" : 1,
44660702 52088 "description" : "Create new user.",
7aacca6f 52089 "method" : "POST",
44660702 52090 "name" : "create_user",
56122987 52091 "parameters" : {
7aacca6f
DM
52092 "additionalProperties" : 0,
52093 "properties" : {
44660702
DM
52094 "comment" : {
52095 "optional" : 1,
013dc89f
DM
52096 "type" : "string",
52097 "typetext" : "<string>"
7aacca6f 52098 },
44660702
DM
52099 "email" : {
52100 "format" : "email-opt",
52101 "optional" : 1,
013dc89f
DM
52102 "type" : "string",
52103 "typetext" : "<string>"
44660702
DM
52104 },
52105 "enable" : {
52106 "default" : 1,
e2d681b3 52107 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 52108 "optional" : 1,
013dc89f
DM
52109 "type" : "boolean",
52110 "typetext" : "<boolean>"
44660702
DM
52111 },
52112 "expire" : {
52113 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
52114 "minimum" : 0,
52115 "optional" : 1,
4bd7df8b 52116 "type" : "integer",
013dc89f 52117 "typetext" : "<integer> (0 - N)"
44660702
DM
52118 },
52119 "firstname" : {
52120 "optional" : 1,
013dc89f
DM
52121 "type" : "string",
52122 "typetext" : "<string>"
44660702
DM
52123 },
52124 "groups" : {
52125 "format" : "pve-groupid-list",
52126 "optional" : 1,
013dc89f
DM
52127 "type" : "string",
52128 "typetext" : "<string>"
44660702
DM
52129 },
52130 "keys" : {
52131 "description" : "Keys for two factor auth (yubico).",
52132 "optional" : 1,
013dc89f
DM
52133 "type" : "string",
52134 "typetext" : "<string>"
44660702
DM
52135 },
52136 "lastname" : {
7aacca6f 52137 "optional" : 1,
013dc89f
DM
52138 "type" : "string",
52139 "typetext" : "<string>"
44660702
DM
52140 },
52141 "password" : {
52142 "description" : "Initial password.",
52143 "maxLength" : 64,
52144 "minLength" : 5,
52145 "optional" : 1,
013dc89f
DM
52146 "type" : "string",
52147 "typetext" : "<string>"
44660702
DM
52148 },
52149 "userid" : {
9d2e98ed 52150 "description" : "Full User ID, in the `name@realm` format.",
44660702
DM
52151 "format" : "pve-userid",
52152 "maxLength" : 64,
013dc89f
DM
52153 "type" : "string",
52154 "typetext" : "<string>"
56122987 52155 }
7aacca6f 52156 }
56122987 52157 },
44660702
DM
52158 "permissions" : {
52159 "check" : [
52160 "and",
52161 [
52162 "userid-param",
52163 "Realm.AllocateUser"
52164 ],
52165 [
52166 "userid-group",
52167 [
52168 "User.Modify"
52169 ],
52170 "groups_param",
c30bb419 52171 "create"
44660702
DM
52172 ]
52173 ],
52174 "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."
52175 },
52176 "protected" : 1,
52177 "returns" : {
52178 "type" : "null"
52179 }
56122987
DM
52180 }
52181 },
44660702
DM
52182 "leaf" : 0,
52183 "path" : "/access/users",
52184 "text" : "users"
52185 },
52186 {
56122987
DM
52187 "children" : [
52188 {
56122987
DM
52189 "info" : {
52190 "DELETE" : {
e9cd3bd4 52191 "allowtoken" : 1,
44660702
DM
52192 "description" : "Delete group.",
52193 "method" : "DELETE",
52194 "name" : "delete_group",
52195 "parameters" : {
52196 "additionalProperties" : 0,
52197 "properties" : {
52198 "groupid" : {
52199 "format" : "pve-groupid",
013dc89f
DM
52200 "type" : "string",
52201 "typetext" : "<string>"
44660702
DM
52202 }
52203 }
52204 },
7aacca6f
DM
52205 "permissions" : {
52206 "check" : [
52207 "perm",
52208 "/access/groups",
52209 [
52210 "Group.Allocate"
52211 ]
52212 ]
52213 },
7aacca6f 52214 "protected" : 1,
7aacca6f
DM
52215 "returns" : {
52216 "type" : "null"
44660702 52217 }
7aacca6f 52218 },
44660702 52219 "GET" : {
e9cd3bd4 52220 "allowtoken" : 1,
44660702
DM
52221 "description" : "Get group configuration.",
52222 "method" : "GET",
52223 "name" : "read_group",
52224 "parameters" : {
52225 "additionalProperties" : 0,
52226 "properties" : {
52227 "groupid" : {
52228 "format" : "pve-groupid",
013dc89f
DM
52229 "type" : "string",
52230 "typetext" : "<string>"
44660702
DM
52231 }
52232 }
56122987 52233 },
7aacca6f
DM
52234 "permissions" : {
52235 "check" : [
52236 "perm",
52237 "/access/groups",
52238 [
44660702 52239 "Sys.Audit",
7aacca6f 52240 "Group.Allocate"
44660702
DM
52241 ],
52242 "any",
52243 1
7aacca6f
DM
52244 ]
52245 },
7aacca6f 52246 "returns" : {
44660702 52247 "additionalProperties" : 0,
7aacca6f
DM
52248 "properties" : {
52249 "comment" : {
44660702
DM
52250 "optional" : 1,
52251 "type" : "string"
7aacca6f
DM
52252 },
52253 "members" : {
52254 "items" : {
9d2e98ed 52255 "description" : "Full User ID, in the `name@realm` format.",
e2d681b3
TL
52256 "format" : "pve-userid",
52257 "maxLength" : 64,
7aacca6f
DM
52258 "type" : "string"
52259 },
52260 "type" : "array"
52261 }
52262 },
44660702
DM
52263 "type" : "object"
52264 }
52265 },
52266 "PUT" : {
e9cd3bd4 52267 "allowtoken" : 1,
44660702
DM
52268 "description" : "Update group data.",
52269 "method" : "PUT",
52270 "name" : "update_group",
56122987 52271 "parameters" : {
44660702 52272 "additionalProperties" : 0,
56122987 52273 "properties" : {
44660702
DM
52274 "comment" : {
52275 "optional" : 1,
013dc89f
DM
52276 "type" : "string",
52277 "typetext" : "<string>"
44660702 52278 },
56122987
DM
52279 "groupid" : {
52280 "format" : "pve-groupid",
013dc89f
DM
52281 "type" : "string",
52282 "typetext" : "<string>"
56122987 52283 }
44660702 52284 }
56122987 52285 },
56122987
DM
52286 "permissions" : {
52287 "check" : [
52288 "perm",
52289 "/access/groups",
52290 [
52291 "Group.Allocate"
44660702 52292 ]
56122987
DM
52293 ]
52294 },
44660702
DM
52295 "protected" : 1,
52296 "returns" : {
52297 "type" : "null"
52298 }
7aacca6f
DM
52299 }
52300 },
7aacca6f 52301 "leaf" : 1,
44660702
DM
52302 "path" : "/access/groups/{groupid}",
52303 "text" : "{groupid}"
52304 }
52305 ],
52306 "info" : {
52307 "GET" : {
e9cd3bd4 52308 "allowtoken" : 1,
44660702
DM
52309 "description" : "Group index.",
52310 "method" : "GET",
52311 "name" : "index",
52312 "parameters" : {
52313 "additionalProperties" : 0
52314 },
52315 "permissions" : {
52316 "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
52317 "user" : "all"
52318 },
52319 "returns" : {
52320 "items" : {
52321 "properties" : {
e2d681b3
TL
52322 "comment" : {
52323 "optional" : 1,
52324 "type" : "string"
52325 },
44660702 52326 "groupid" : {
e2d681b3 52327 "format" : "pve-groupid",
44660702 52328 "type" : "string"
e9cd3bd4
TL
52329 },
52330 "users" : {
52331 "description" : "list of users which form this group",
52332 "format" : "pve-userid-list",
52333 "optional" : 1,
52334 "type" : "string"
44660702
DM
52335 }
52336 },
52337 "type" : "object"
52338 },
52339 "links" : [
52340 {
52341 "href" : "{groupid}",
52342 "rel" : "child"
52343 }
52344 ],
52345 "type" : "array"
52346 }
52347 },
52348 "POST" : {
e9cd3bd4 52349 "allowtoken" : 1,
44660702
DM
52350 "description" : "Create new group.",
52351 "method" : "POST",
52352 "name" : "create_group",
52353 "parameters" : {
52354 "additionalProperties" : 0,
52355 "properties" : {
52356 "comment" : {
52357 "optional" : 1,
013dc89f
DM
52358 "type" : "string",
52359 "typetext" : "<string>"
44660702
DM
52360 },
52361 "groupid" : {
52362 "format" : "pve-groupid",
013dc89f
DM
52363 "type" : "string",
52364 "typetext" : "<string>"
44660702
DM
52365 }
52366 }
52367 },
52368 "permissions" : {
52369 "check" : [
52370 "perm",
52371 "/access/groups",
52372 [
52373 "Group.Allocate"
52374 ]
52375 ]
52376 },
52377 "protected" : 1,
52378 "returns" : {
52379 "type" : "null"
52380 }
7aacca6f 52381 }
44660702 52382 },
7aacca6f 52383 "leaf" : 0,
44660702
DM
52384 "path" : "/access/groups",
52385 "text" : "groups"
7aacca6f
DM
52386 },
52387 {
52388 "children" : [
52389 {
7aacca6f 52390 "info" : {
7aacca6f 52391 "DELETE" : {
e9cd3bd4 52392 "allowtoken" : 1,
7aacca6f 52393 "description" : "Delete role.",
44660702 52394 "method" : "DELETE",
7aacca6f 52395 "name" : "delete_role",
56122987
DM
52396 "parameters" : {
52397 "additionalProperties" : 0,
52398 "properties" : {
7aacca6f
DM
52399 "roleid" : {
52400 "format" : "pve-roleid",
013dc89f
DM
52401 "type" : "string",
52402 "typetext" : "<string>"
56122987
DM
52403 }
52404 }
52405 },
56122987
DM
52406 "permissions" : {
52407 "check" : [
52408 "perm",
7aacca6f 52409 "/access",
56122987 52410 [
7aacca6f
DM
52411 "Sys.Modify"
52412 ]
56122987 52413 ]
44660702
DM
52414 },
52415 "protected" : 1,
52416 "returns" : {
52417 "type" : "null"
56122987
DM
52418 }
52419 },
44660702 52420 "GET" : {
e9cd3bd4 52421 "allowtoken" : 1,
44660702
DM
52422 "description" : "Get role configuration.",
52423 "method" : "GET",
52424 "name" : "read_role",
52425 "parameters" : {
52426 "additionalProperties" : 0,
52427 "properties" : {
52428 "roleid" : {
52429 "format" : "pve-roleid",
013dc89f
DM
52430 "type" : "string",
52431 "typetext" : "<string>"
44660702
DM
52432 }
52433 }
52434 },
7aacca6f 52435 "permissions" : {
44660702 52436 "user" : "all"
56122987 52437 },
e2d681b3
TL
52438 "returns" : {
52439 "additionalProperties" : 0,
52440 "properties" : {
52441 "Datastore.Allocate" : {
52442 "optional" : 1,
52443 "type" : "boolean"
52444 },
52445 "Datastore.AllocateSpace" : {
52446 "optional" : 1,
52447 "type" : "boolean"
52448 },
52449 "Datastore.AllocateTemplate" : {
52450 "optional" : 1,
52451 "type" : "boolean"
52452 },
52453 "Datastore.Audit" : {
52454 "optional" : 1,
52455 "type" : "boolean"
52456 },
52457 "Group.Allocate" : {
52458 "optional" : 1,
52459 "type" : "boolean"
52460 },
159464a9
TL
52461 "Mapping.Audit" : {
52462 "optional" : 1,
52463 "type" : "boolean"
52464 },
52465 "Mapping.Modify" : {
52466 "optional" : 1,
52467 "type" : "boolean"
52468 },
52469 "Mapping.Use" : {
52470 "optional" : 1,
52471 "type" : "boolean"
52472 },
e2d681b3
TL
52473 "Permissions.Modify" : {
52474 "optional" : 1,
52475 "type" : "boolean"
52476 },
52477 "Pool.Allocate" : {
52478 "optional" : 1,
52479 "type" : "boolean"
52480 },
0695fdaf
TL
52481 "Pool.Audit" : {
52482 "optional" : 1,
52483 "type" : "boolean"
52484 },
e2d681b3
TL
52485 "Realm.Allocate" : {
52486 "optional" : 1,
52487 "type" : "boolean"
52488 },
52489 "Realm.AllocateUser" : {
52490 "optional" : 1,
52491 "type" : "boolean"
52492 },
5c1699e5
TL
52493 "SDN.Allocate" : {
52494 "optional" : 1,
52495 "type" : "boolean"
52496 },
52497 "SDN.Audit" : {
52498 "optional" : 1,
159464a9
TL
52499 "type" : "boolean"
52500 },
52501 "SDN.Use" : {
52502 "optional" : 1,
5c1699e5
TL
52503 "type" : "boolean"
52504 },
e2d681b3
TL
52505 "Sys.Audit" : {
52506 "optional" : 1,
52507 "type" : "boolean"
52508 },
52509 "Sys.Console" : {
52510 "optional" : 1,
52511 "type" : "boolean"
52512 },
81a3384d
TL
52513 "Sys.Incoming" : {
52514 "optional" : 1,
52515 "type" : "boolean"
52516 },
e2d681b3
TL
52517 "Sys.Modify" : {
52518 "optional" : 1,
52519 "type" : "boolean"
52520 },
52521 "Sys.PowerMgmt" : {
52522 "optional" : 1,
52523 "type" : "boolean"
52524 },
52525 "Sys.Syslog" : {
52526 "optional" : 1,
52527 "type" : "boolean"
52528 },
52529 "User.Modify" : {
52530 "optional" : 1,
52531 "type" : "boolean"
52532 },
52533 "VM.Allocate" : {
52534 "optional" : 1,
52535 "type" : "boolean"
52536 },
52537 "VM.Audit" : {
52538 "optional" : 1,
52539 "type" : "boolean"
52540 },
52541 "VM.Backup" : {
52542 "optional" : 1,
52543 "type" : "boolean"
52544 },
52545 "VM.Clone" : {
52546 "optional" : 1,
52547 "type" : "boolean"
52548 },
52549 "VM.Config.CDROM" : {
52550 "optional" : 1,
52551 "type" : "boolean"
52552 },
52553 "VM.Config.CPU" : {
52554 "optional" : 1,
52555 "type" : "boolean"
52556 },
ac70d7d1
TL
52557 "VM.Config.Cloudinit" : {
52558 "optional" : 1,
52559 "type" : "boolean"
52560 },
e2d681b3
TL
52561 "VM.Config.Disk" : {
52562 "optional" : 1,
52563 "type" : "boolean"
52564 },
52565 "VM.Config.HWType" : {
52566 "optional" : 1,
52567 "type" : "boolean"
52568 },
52569 "VM.Config.Memory" : {
52570 "optional" : 1,
52571 "type" : "boolean"
52572 },
52573 "VM.Config.Network" : {
52574 "optional" : 1,
52575 "type" : "boolean"
52576 },
52577 "VM.Config.Options" : {
52578 "optional" : 1,
52579 "type" : "boolean"
52580 },
52581 "VM.Console" : {
52582 "optional" : 1,
52583 "type" : "boolean"
52584 },
52585 "VM.Migrate" : {
52586 "optional" : 1,
52587 "type" : "boolean"
52588 },
52589 "VM.Monitor" : {
52590 "optional" : 1,
52591 "type" : "boolean"
52592 },
52593 "VM.PowerMgmt" : {
52594 "optional" : 1,
52595 "type" : "boolean"
52596 },
52597 "VM.Snapshot" : {
52598 "optional" : 1,
52599 "type" : "boolean"
52600 },
52601 "VM.Snapshot.Rollback" : {
52602 "optional" : 1,
52603 "type" : "boolean"
52604 }
52605 },
52606 "type" : "object"
52607 }
44660702
DM
52608 },
52609 "PUT" : {
e9cd3bd4 52610 "allowtoken" : 1,
e2d681b3 52611 "description" : "Update an existing role.",
44660702
DM
52612 "method" : "PUT",
52613 "name" : "update_role",
56122987
DM
52614 "parameters" : {
52615 "additionalProperties" : 0,
52616 "properties" : {
7aacca6f 52617 "append" : {
44660702 52618 "optional" : 1,
7aacca6f 52619 "requires" : "privs",
013dc89f
DM
52620 "type" : "boolean",
52621 "typetext" : "<boolean>"
7aacca6f
DM
52622 },
52623 "privs" : {
52624 "format" : "pve-priv-list",
e2d681b3 52625 "optional" : 1,
013dc89f
DM
52626 "type" : "string",
52627 "typetext" : "<string>"
44660702
DM
52628 },
52629 "roleid" : {
52630 "format" : "pve-roleid",
013dc89f
DM
52631 "type" : "string",
52632 "typetext" : "<string>"
56122987
DM
52633 }
52634 }
52635 },
44660702
DM
52636 "permissions" : {
52637 "check" : [
52638 "perm",
52639 "/access",
52640 [
52641 "Sys.Modify"
52642 ]
52643 ]
52644 },
56122987 52645 "protected" : 1,
7aacca6f
DM
52646 "returns" : {
52647 "type" : "null"
56122987
DM
52648 }
52649 }
52650 },
44660702 52651 "leaf" : 1,
7aacca6f 52652 "path" : "/access/roles/{roleid}",
44660702 52653 "text" : "{roleid}"
56122987
DM
52654 }
52655 ],
56122987 52656 "info" : {
7aacca6f 52657 "GET" : {
e9cd3bd4 52658 "allowtoken" : 1,
7aacca6f 52659 "description" : "Role index.",
44660702 52660 "method" : "GET",
7aacca6f 52661 "name" : "index",
56122987 52662 "parameters" : {
56122987
DM
52663 "additionalProperties" : 0
52664 },
7aacca6f
DM
52665 "permissions" : {
52666 "user" : "all"
52667 },
56122987 52668 "returns" : {
7aacca6f 52669 "items" : {
7aacca6f 52670 "properties" : {
e2d681b3
TL
52671 "privs" : {
52672 "format" : "pve-priv-list",
52673 "optional" : 1,
52674 "type" : "string"
52675 },
7aacca6f 52676 "roleid" : {
e2d681b3 52677 "format" : "pve-roleid",
7aacca6f 52678 "type" : "string"
e2d681b3
TL
52679 },
52680 "special" : {
52681 "default" : 0,
52682 "optional" : 1,
52683 "type" : "boolean"
7aacca6f 52684 }
44660702
DM
52685 },
52686 "type" : "object"
52687 },
52688 "links" : [
52689 {
52690 "href" : "{roleid}",
52691 "rel" : "child"
7aacca6f 52692 }
44660702
DM
52693 ],
52694 "type" : "array"
52695 }
7aacca6f
DM
52696 },
52697 "POST" : {
e9cd3bd4 52698 "allowtoken" : 1,
7aacca6f 52699 "description" : "Create new role.",
44660702
DM
52700 "method" : "POST",
52701 "name" : "create_role",
7aacca6f
DM
52702 "parameters" : {
52703 "additionalProperties" : 0,
52704 "properties" : {
7aacca6f
DM
52705 "privs" : {
52706 "format" : "pve-priv-list",
52707 "optional" : 1,
013dc89f
DM
52708 "type" : "string",
52709 "typetext" : "<string>"
44660702
DM
52710 },
52711 "roleid" : {
52712 "format" : "pve-roleid",
013dc89f
DM
52713 "type" : "string",
52714 "typetext" : "<string>"
7aacca6f
DM
52715 }
52716 }
52717 },
44660702
DM
52718 "permissions" : {
52719 "check" : [
52720 "perm",
52721 "/access",
52722 [
52723 "Sys.Modify"
52724 ]
52725 ]
52726 },
52727 "protected" : 1,
7aacca6f
DM
52728 "returns" : {
52729 "type" : "null"
52730 }
52731 }
52732 },
44660702 52733 "leaf" : 0,
7aacca6f 52734 "path" : "/access/roles",
44660702 52735 "text" : "roles"
7aacca6f
DM
52736 },
52737 {
52738 "info" : {
56122987 52739 "GET" : {
e9cd3bd4 52740 "allowtoken" : 1,
44660702
DM
52741 "description" : "Get Access Control List (ACLs).",
52742 "method" : "GET",
52743 "name" : "read_acl",
7aacca6f
DM
52744 "parameters" : {
52745 "additionalProperties" : 0
52746 },
44660702
DM
52747 "permissions" : {
52748 "description" : "The returned list is restricted to objects where you have rights to modify permissions.",
52749 "user" : "all"
52750 },
56122987 52751 "returns" : {
56122987 52752 "items" : {
44660702 52753 "additionalProperties" : 0,
56122987 52754 "properties" : {
7aacca6f 52755 "path" : {
e2d681b3 52756 "description" : "Access control path",
7aacca6f
DM
52757 "type" : "string"
52758 },
44660702 52759 "propagate" : {
e2d681b3
TL
52760 "default" : 1,
52761 "description" : "Allow to propagate (inherit) permissions.",
52762 "optional" : 1,
44660702
DM
52763 "type" : "boolean"
52764 },
52765 "roleid" : {
52766 "type" : "string"
52767 },
7aacca6f
DM
52768 "type" : {
52769 "enum" : [
52770 "user",
e9cd3bd4
TL
52771 "group",
52772 "token"
7aacca6f
DM
52773 ],
52774 "type" : "string"
52775 },
7aacca6f
DM
52776 "ugid" : {
52777 "type" : "string"
56122987 52778 }
7aacca6f 52779 },
44660702 52780 "type" : "object"
7aacca6f
DM
52781 },
52782 "type" : "array"
44660702 52783 }
7aacca6f
DM
52784 },
52785 "PUT" : {
e9cd3bd4 52786 "allowtoken" : 1,
44660702
DM
52787 "description" : "Update Access Control List (add or remove permissions).",
52788 "method" : "PUT",
7aacca6f
DM
52789 "name" : "update_acl",
52790 "parameters" : {
52791 "additionalProperties" : 0,
52792 "properties" : {
52793 "delete" : {
44660702 52794 "description" : "Remove permissions (instead of adding it).",
7aacca6f 52795 "optional" : 1,
013dc89f
DM
52796 "type" : "boolean",
52797 "typetext" : "<boolean>"
7aacca6f 52798 },
44660702
DM
52799 "groups" : {
52800 "description" : "List of groups.",
52801 "format" : "pve-groupid-list",
7aacca6f 52802 "optional" : 1,
013dc89f
DM
52803 "type" : "string",
52804 "typetext" : "<string>"
7aacca6f
DM
52805 },
52806 "path" : {
52807 "description" : "Access control path",
013dc89f
DM
52808 "type" : "string",
52809 "typetext" : "<string>"
7aacca6f 52810 },
7aacca6f 52811 "propagate" : {
44660702 52812 "default" : 1,
7aacca6f 52813 "description" : "Allow to propagate (inherit) permissions.",
7aacca6f 52814 "optional" : 1,
013dc89f
DM
52815 "type" : "boolean",
52816 "typetext" : "<boolean>"
7aacca6f 52817 },
44660702
DM
52818 "roles" : {
52819 "description" : "List of roles.",
52820 "format" : "pve-roleid-list",
013dc89f
DM
52821 "type" : "string",
52822 "typetext" : "<string>"
44660702 52823 },
e9cd3bd4
TL
52824 "tokens" : {
52825 "description" : "List of API tokens.",
52826 "format" : "pve-tokenid-list",
52827 "optional" : 1,
52828 "type" : "string",
52829 "typetext" : "<string>"
52830 },
44660702
DM
52831 "users" : {
52832 "description" : "List of users.",
52833 "format" : "pve-userid-list",
7aacca6f 52834 "optional" : 1,
013dc89f
DM
52835 "type" : "string",
52836 "typetext" : "<string>"
56122987
DM
52837 }
52838 }
52839 },
56122987 52840 "permissions" : {
7aacca6f
DM
52841 "check" : [
52842 "perm-modify",
52843 "{path}"
52844 ]
52845 },
7aacca6f
DM
52846 "protected" : 1,
52847 "returns" : {
52848 "type" : "null"
44660702 52849 }
56122987
DM
52850 }
52851 },
7aacca6f 52852 "leaf" : 1,
44660702
DM
52853 "path" : "/access/acl",
52854 "text" : "acl"
7aacca6f
DM
52855 },
52856 {
56122987
DM
52857 "children" : [
52858 {
c5aa7e14
TL
52859 "children" : [
52860 {
52861 "info" : {
52862 "POST" : {
52863 "allowtoken" : 1,
52864 "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.",
52865 "method" : "POST",
52866 "name" : "sync",
52867 "parameters" : {
52868 "additionalProperties" : 0,
52869 "properties" : {
52870 "dry-run" : {
52871 "default" : 0,
52872 "description" : "If set, does not write anything.",
52873 "optional" : 1,
52874 "type" : "boolean",
52875 "typetext" : "<boolean>"
52876 },
52877 "enable-new" : {
52878 "default" : "1",
52879 "description" : "Enable newly synced users immediately.",
52880 "optional" : "1",
52881 "type" : "boolean",
52882 "typetext" : "<boolean>"
52883 },
52884 "full" : {
7af2edf9 52885 "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
52886 "optional" : "1",
52887 "type" : "boolean",
52888 "typetext" : "<boolean>"
52889 },
52890 "purge" : {
7af2edf9 52891 "description" : "DEPRECATED: use 'remove-vanished' instead. Remove ACLs for users or groups which were removed from the config during a sync.",
c5aa7e14
TL
52892 "optional" : "1",
52893 "type" : "boolean",
52894 "typetext" : "<boolean>"
52895 },
52896 "realm" : {
52897 "description" : "Authentication domain ID",
52898 "format" : "pve-realm",
52899 "maxLength" : 32,
52900 "type" : "string",
52901 "typetext" : "<string>"
52902 },
7af2edf9 52903 "remove-vanished" : {
9d2e98ed
TL
52904 "default" : "none",
52905 "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 52906 "optional" : "1",
9d2e98ed 52907 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
7af2edf9 52908 "type" : "string",
9d2e98ed 52909 "typetext" : "([acl];[properties];[entry])|none"
7af2edf9 52910 },
c5aa7e14
TL
52911 "scope" : {
52912 "description" : "Select what to sync.",
52913 "enum" : [
52914 "users",
52915 "groups",
52916 "both"
52917 ],
52918 "optional" : "1",
52919 "type" : "string"
52920 }
52921 }
52922 },
52923 "permissions" : {
52924 "check" : [
52925 "and",
52926 [
c30bb419
TL
52927 "perm",
52928 "/access/realm/{realm}",
52929 [
52930 "Realm.AllocateUser"
52931 ]
c5aa7e14
TL
52932 ],
52933 [
c30bb419
TL
52934 "perm",
52935 "/access/groups",
c5aa7e14
TL
52936 [
52937 "User.Modify"
52938 ]
52939 ]
52940 ],
52941 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
52942 },
52943 "protected" : 1,
52944 "returns" : {
52945 "description" : "Worker Task-UPID",
52946 "type" : "string"
52947 }
52948 }
52949 },
52950 "leaf" : 1,
52951 "path" : "/access/domains/{realm}/sync",
52952 "text" : "sync"
52953 }
52954 ],
56122987 52955 "info" : {
44660702 52956 "DELETE" : {
e9cd3bd4 52957 "allowtoken" : 1,
44660702
DM
52958 "description" : "Delete an authentication server.",
52959 "method" : "DELETE",
52960 "name" : "delete",
52961 "parameters" : {
52962 "additionalProperties" : 0,
52963 "properties" : {
52964 "realm" : {
52965 "description" : "Authentication domain ID",
52966 "format" : "pve-realm",
52967 "maxLength" : 32,
013dc89f
DM
52968 "type" : "string",
52969 "typetext" : "<string>"
56122987 52970 }
44660702 52971 }
56122987 52972 },
56122987
DM
52973 "permissions" : {
52974 "check" : [
52975 "perm",
7aacca6f 52976 "/access/realm",
56122987 52977 [
7aacca6f 52978 "Realm.Allocate"
56122987
DM
52979 ]
52980 ]
52981 },
7aacca6f 52982 "protected" : 1,
7aacca6f
DM
52983 "returns" : {
52984 "type" : "null"
44660702 52985 }
7aacca6f 52986 },
44660702 52987 "GET" : {
e9cd3bd4 52988 "allowtoken" : 1,
44660702
DM
52989 "description" : "Get auth server configuration.",
52990 "method" : "GET",
52991 "name" : "read",
56122987 52992 "parameters" : {
44660702 52993 "additionalProperties" : 0,
56122987 52994 "properties" : {
7aacca6f 52995 "realm" : {
44660702 52996 "description" : "Authentication domain ID",
7aacca6f
DM
52997 "format" : "pve-realm",
52998 "maxLength" : 32,
013dc89f
DM
52999 "type" : "string",
53000 "typetext" : "<string>"
56122987 53001 }
44660702 53002 }
7aacca6f 53003 },
7aacca6f
DM
53004 "permissions" : {
53005 "check" : [
53006 "perm",
53007 "/access/realm",
53008 [
44660702
DM
53009 "Realm.Allocate",
53010 "Sys.Audit"
53011 ],
53012 "any",
53013 1
7aacca6f 53014 ]
44660702
DM
53015 },
53016 "returns" : {}
7aacca6f 53017 },
44660702 53018 "PUT" : {
e9cd3bd4 53019 "allowtoken" : 1,
44660702
DM
53020 "description" : "Update authentication server settings.",
53021 "method" : "PUT",
53022 "name" : "update",
7aacca6f 53023 "parameters" : {
44660702 53024 "additionalProperties" : 0,
7aacca6f 53025 "properties" : {
c30bb419
TL
53026 "acr-values" : {
53027 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
53028 "optional" : 1,
53029 "type" : "string",
53030 "typetext" : "<string>"
53031 },
34f3e481
TL
53032 "autocreate" : {
53033 "default" : 0,
53034 "description" : "Automatically create users if they do not exist.",
53035 "optional" : 1,
53036 "type" : "boolean",
53037 "typetext" : "<boolean>"
53038 },
44660702
DM
53039 "base_dn" : {
53040 "description" : "LDAP base domain name",
53041 "maxLength" : 256,
53042 "optional" : 1,
82551b2b
TL
53043 "type" : "string",
53044 "typetext" : "<string>"
44660702 53045 },
4bd7df8b
DM
53046 "bind_dn" : {
53047 "description" : "LDAP bind domain name",
53048 "maxLength" : 256,
53049 "optional" : 1,
82551b2b
TL
53050 "type" : "string",
53051 "typetext" : "<string>"
4bd7df8b 53052 },
2489d6df
WB
53053 "capath" : {
53054 "default" : "/etc/ssl/certs",
53055 "description" : "Path to the CA certificate store",
53056 "optional" : 1,
53057 "type" : "string",
53058 "typetext" : "<string>"
53059 },
4772952b
TL
53060 "case-sensitive" : {
53061 "default" : 1,
53062 "description" : "username is case-sensitive",
53063 "optional" : 1,
53064 "type" : "boolean",
53065 "typetext" : "<boolean>"
53066 },
2489d6df
WB
53067 "cert" : {
53068 "description" : "Path to the client certificate",
53069 "optional" : 1,
53070 "type" : "string",
53071 "typetext" : "<string>"
53072 },
53073 "certkey" : {
53074 "description" : "Path to the client certificate key",
53075 "optional" : 1,
53076 "type" : "string",
53077 "typetext" : "<string>"
53078 },
82551b2b
TL
53079 "check-connection" : {
53080 "default" : 0,
53081 "description" : "Check bind connection to the server.",
53082 "optional" : 1,
53083 "type" : "boolean",
53084 "typetext" : "<boolean>"
53085 },
34f3e481
TL
53086 "client-id" : {
53087 "description" : "OpenID Client ID",
53088 "maxLength" : 256,
53089 "optional" : 1,
53090 "type" : "string",
53091 "typetext" : "<string>"
53092 },
53093 "client-key" : {
53094 "description" : "OpenID Client Key",
53095 "maxLength" : 256,
53096 "optional" : 1,
53097 "type" : "string",
53098 "typetext" : "<string>"
53099 },
44660702
DM
53100 "comment" : {
53101 "description" : "Description.",
53102 "maxLength" : 4096,
53103 "optional" : 1,
013dc89f
DM
53104 "type" : "string",
53105 "typetext" : "<string>"
44660702
DM
53106 },
53107 "default" : {
53108 "description" : "Use this as default realm",
53109 "optional" : 1,
013dc89f
DM
53110 "type" : "boolean",
53111 "typetext" : "<boolean>"
44660702
DM
53112 },
53113 "delete" : {
53114 "description" : "A list of settings you want to delete.",
53115 "format" : "pve-configid-list",
53116 "maxLength" : 4096,
53117 "optional" : 1,
013dc89f
DM
53118 "type" : "string",
53119 "typetext" : "<string>"
44660702
DM
53120 },
53121 "digest" : {
82551b2b
TL
53122 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
53123 "maxLength" : 64,
44660702 53124 "optional" : 1,
013dc89f
DM
53125 "type" : "string",
53126 "typetext" : "<string>"
44660702
DM
53127 },
53128 "domain" : {
53129 "description" : "AD domain name",
53130 "maxLength" : 256,
53131 "optional" : 1,
53132 "pattern" : "\\S+",
53133 "type" : "string"
53134 },
c5aa7e14
TL
53135 "filter" : {
53136 "description" : "LDAP filter for user sync.",
53137 "maxLength" : 2048,
53138 "optional" : 1,
53139 "type" : "string",
53140 "typetext" : "<string>"
53141 },
53142 "group_classes" : {
53143 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
53144 "description" : "The objectclasses for groups.",
53145 "format" : "ldap-simple-attr-list",
53146 "optional" : 1,
53147 "type" : "string",
53148 "typetext" : "<string>"
53149 },
53150 "group_dn" : {
53151 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
53152 "maxLength" : 256,
53153 "optional" : 1,
82551b2b
TL
53154 "type" : "string",
53155 "typetext" : "<string>"
c5aa7e14
TL
53156 },
53157 "group_filter" : {
53158 "description" : "LDAP filter for group sync.",
53159 "maxLength" : 2048,
53160 "optional" : 1,
53161 "type" : "string",
53162 "typetext" : "<string>"
53163 },
53164 "group_name_attr" : {
53165 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
53166 "format" : "ldap-simple-attr",
53167 "maxLength" : 256,
53168 "optional" : 1,
53169 "type" : "string",
53170 "typetext" : "<string>"
53171 },
34f3e481
TL
53172 "issuer-url" : {
53173 "description" : "OpenID Issuer Url",
53174 "maxLength" : 256,
53175 "optional" : 1,
53176 "type" : "string",
53177 "typetext" : "<string>"
53178 },
c5aa7e14
TL
53179 "mode" : {
53180 "default" : "ldap",
53181 "description" : "LDAP protocol mode.",
53182 "enum" : [
53183 "ldap",
53184 "ldaps",
53185 "ldap+starttls"
53186 ],
53187 "optional" : 1,
53188 "type" : "string"
53189 },
53190 "password" : {
53191 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
53192 "optional" : 1,
53193 "type" : "string",
53194 "typetext" : "<string>"
53195 },
44660702
DM
53196 "port" : {
53197 "description" : "Server port.",
53198 "maximum" : 65535,
53199 "minimum" : 1,
53200 "optional" : 1,
4bd7df8b 53201 "type" : "integer",
013dc89f 53202 "typetext" : "<integer> (1 - 65535)"
44660702 53203 },
c30bb419
TL
53204 "prompt" : {
53205 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
53206 "optional" : 1,
53207 "pattern" : "(?:none|login|consent|select_account|\\S+)",
53208 "type" : "string"
53209 },
7aacca6f 53210 "realm" : {
7aacca6f
DM
53211 "description" : "Authentication domain ID",
53212 "format" : "pve-realm",
44660702 53213 "maxLength" : 32,
013dc89f
DM
53214 "type" : "string",
53215 "typetext" : "<string>"
44660702 53216 },
c30bb419
TL
53217 "scopes" : {
53218 "default" : "email profile",
53219 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
53220 "optional" : 1,
53221 "type" : "string",
53222 "typetext" : "<string>"
53223 },
44660702 53224 "secure" : {
c5aa7e14 53225 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
44660702 53226 "optional" : 1,
013dc89f
DM
53227 "type" : "boolean",
53228 "typetext" : "<boolean>"
44660702
DM
53229 },
53230 "server1" : {
53231 "description" : "Server IP address (or DNS name)",
53232 "format" : "address",
53233 "maxLength" : 256,
53234 "optional" : 1,
013dc89f
DM
53235 "type" : "string",
53236 "typetext" : "<string>"
44660702
DM
53237 },
53238 "server2" : {
53239 "description" : "Fallback Server IP address (or DNS name)",
53240 "format" : "address",
53241 "maxLength" : 256,
53242 "optional" : 1,
013dc89f
DM
53243 "type" : "string",
53244 "typetext" : "<string>"
44660702 53245 },
1c532546
TL
53246 "sslversion" : {
53247 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
53248 "enum" : [
53249 "tlsv1",
53250 "tlsv1_1",
53251 "tlsv1_2",
53252 "tlsv1_3"
53253 ],
53254 "optional" : 1,
53255 "type" : "string"
53256 },
c5aa7e14
TL
53257 "sync-defaults-options" : {
53258 "description" : "The default options for behavior of synchronizations.",
53259 "format" : "realm-sync-options",
53260 "optional" : 1,
53261 "type" : "string",
9d2e98ed 53262 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
c5aa7e14
TL
53263 },
53264 "sync_attributes" : {
53265 "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.",
53266 "optional" : 1,
53267 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
53268 "type" : "string"
53269 },
44660702
DM
53270 "tfa" : {
53271 "description" : "Use Two-factor authentication.",
53272 "format" : "pve-tfa-config",
53273 "maxLength" : 128,
53274 "optional" : 1,
013dc89f 53275 "type" : "string",
95895385 53276 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
53277 },
53278 "user_attr" : {
53279 "description" : "LDAP user attribute name",
53280 "maxLength" : 256,
53281 "optional" : 1,
53282 "pattern" : "\\S{2,}",
53283 "type" : "string"
2489d6df 53284 },
c5aa7e14
TL
53285 "user_classes" : {
53286 "default" : "inetorgperson, posixaccount, person, user",
53287 "description" : "The objectclasses for users.",
53288 "format" : "ldap-simple-attr-list",
53289 "optional" : 1,
53290 "type" : "string",
53291 "typetext" : "<string>"
53292 },
2489d6df
WB
53293 "verify" : {
53294 "default" : 0,
53295 "description" : "Verify the server's SSL certificate",
53296 "optional" : 1,
53297 "type" : "boolean",
53298 "typetext" : "<boolean>"
7aacca6f 53299 }
56122987 53300 },
44660702 53301 "type" : "object"
56122987 53302 },
7aacca6f
DM
53303 "permissions" : {
53304 "check" : [
53305 "perm",
53306 "/access/realm",
53307 [
44660702
DM
53308 "Realm.Allocate"
53309 ]
7aacca6f
DM
53310 ]
53311 },
44660702
DM
53312 "protected" : 1,
53313 "returns" : {
53314 "type" : "null"
53315 }
56122987 53316 }
44660702 53317 },
c5aa7e14 53318 "leaf" : 0,
44660702
DM
53319 "path" : "/access/domains/{realm}",
53320 "text" : "{realm}"
56122987 53321 }
7aacca6f 53322 ],
56122987
DM
53323 "info" : {
53324 "GET" : {
e9cd3bd4 53325 "allowtoken" : 1,
44660702
DM
53326 "description" : "Authentication domain index.",
53327 "method" : "GET",
53328 "name" : "index",
53329 "parameters" : {
53330 "additionalProperties" : 0
53331 },
53332 "permissions" : {
53333 "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
53334 "user" : "world"
53335 },
56122987 53336 "returns" : {
56122987
DM
53337 "items" : {
53338 "properties" : {
7aacca6f 53339 "comment" : {
52e44c50 53340 "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
7aacca6f
DM
53341 "optional" : 1,
53342 "type" : "string"
53343 },
56122987
DM
53344 "realm" : {
53345 "type" : "string"
53346 },
53347 "tfa" : {
7aacca6f 53348 "description" : "Two-factor authentication provider.",
56122987
DM
53349 "enum" : [
53350 "yubico",
53351 "oath"
53352 ],
44660702
DM
53353 "optional" : 1,
53354 "type" : "string"
c5aa7e14
TL
53355 },
53356 "type" : {
53357 "type" : "string"
56122987
DM
53358 }
53359 },
53360 "type" : "object"
44660702
DM
53361 },
53362 "links" : [
53363 {
53364 "href" : "{realm}",
53365 "rel" : "child"
53366 }
53367 ],
53368 "type" : "array"
53369 }
56122987
DM
53370 },
53371 "POST" : {
e9cd3bd4 53372 "allowtoken" : 1,
7aacca6f 53373 "description" : "Add an authentication server.",
44660702 53374 "method" : "POST",
7aacca6f 53375 "name" : "create",
56122987 53376 "parameters" : {
44660702 53377 "additionalProperties" : 0,
56122987 53378 "properties" : {
c30bb419
TL
53379 "acr-values" : {
53380 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
53381 "optional" : 1,
53382 "type" : "string",
53383 "typetext" : "<string>"
53384 },
34f3e481
TL
53385 "autocreate" : {
53386 "default" : 0,
53387 "description" : "Automatically create users if they do not exist.",
53388 "optional" : 1,
53389 "type" : "boolean",
53390 "typetext" : "<boolean>"
53391 },
44660702
DM
53392 "base_dn" : {
53393 "description" : "LDAP base domain name",
56122987 53394 "maxLength" : 256,
44660702 53395 "optional" : 1,
82551b2b
TL
53396 "type" : "string",
53397 "typetext" : "<string>"
56122987 53398 },
4bd7df8b
DM
53399 "bind_dn" : {
53400 "description" : "LDAP bind domain name",
53401 "maxLength" : 256,
53402 "optional" : 1,
82551b2b
TL
53403 "type" : "string",
53404 "typetext" : "<string>"
4bd7df8b 53405 },
2489d6df
WB
53406 "capath" : {
53407 "default" : "/etc/ssl/certs",
53408 "description" : "Path to the CA certificate store",
53409 "optional" : 1,
53410 "type" : "string",
53411 "typetext" : "<string>"
53412 },
4772952b
TL
53413 "case-sensitive" : {
53414 "default" : 1,
53415 "description" : "username is case-sensitive",
53416 "optional" : 1,
53417 "type" : "boolean",
53418 "typetext" : "<boolean>"
53419 },
2489d6df
WB
53420 "cert" : {
53421 "description" : "Path to the client certificate",
53422 "optional" : 1,
53423 "type" : "string",
53424 "typetext" : "<string>"
53425 },
53426 "certkey" : {
53427 "description" : "Path to the client certificate key",
53428 "optional" : 1,
53429 "type" : "string",
53430 "typetext" : "<string>"
53431 },
82551b2b
TL
53432 "check-connection" : {
53433 "default" : 0,
53434 "description" : "Check bind connection to the server.",
53435 "optional" : 1,
53436 "type" : "boolean",
53437 "typetext" : "<boolean>"
53438 },
34f3e481
TL
53439 "client-id" : {
53440 "description" : "OpenID Client ID",
53441 "maxLength" : 256,
53442 "optional" : 1,
53443 "type" : "string",
53444 "typetext" : "<string>"
53445 },
53446 "client-key" : {
53447 "description" : "OpenID Client Key",
53448 "maxLength" : 256,
53449 "optional" : 1,
53450 "type" : "string",
53451 "typetext" : "<string>"
53452 },
44660702
DM
53453 "comment" : {
53454 "description" : "Description.",
53455 "maxLength" : 4096,
56122987 53456 "optional" : 1,
013dc89f
DM
53457 "type" : "string",
53458 "typetext" : "<string>"
56122987 53459 },
44660702
DM
53460 "default" : {
53461 "description" : "Use this as default realm",
7aacca6f 53462 "optional" : 1,
013dc89f
DM
53463 "type" : "boolean",
53464 "typetext" : "<boolean>"
56122987 53465 },
44660702
DM
53466 "domain" : {
53467 "description" : "AD domain name",
53468 "maxLength" : 256,
7aacca6f 53469 "optional" : 1,
44660702
DM
53470 "pattern" : "\\S+",
53471 "type" : "string"
56122987 53472 },
c5aa7e14
TL
53473 "filter" : {
53474 "description" : "LDAP filter for user sync.",
53475 "maxLength" : 2048,
53476 "optional" : 1,
53477 "type" : "string",
53478 "typetext" : "<string>"
53479 },
53480 "group_classes" : {
53481 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
53482 "description" : "The objectclasses for groups.",
53483 "format" : "ldap-simple-attr-list",
53484 "optional" : 1,
53485 "type" : "string",
53486 "typetext" : "<string>"
53487 },
53488 "group_dn" : {
53489 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
53490 "maxLength" : 256,
53491 "optional" : 1,
82551b2b
TL
53492 "type" : "string",
53493 "typetext" : "<string>"
c5aa7e14
TL
53494 },
53495 "group_filter" : {
53496 "description" : "LDAP filter for group sync.",
53497 "maxLength" : 2048,
53498 "optional" : 1,
53499 "type" : "string",
53500 "typetext" : "<string>"
53501 },
53502 "group_name_attr" : {
53503 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
53504 "format" : "ldap-simple-attr",
53505 "maxLength" : 256,
53506 "optional" : 1,
53507 "type" : "string",
53508 "typetext" : "<string>"
53509 },
34f3e481
TL
53510 "issuer-url" : {
53511 "description" : "OpenID Issuer Url",
53512 "maxLength" : 256,
53513 "optional" : 1,
53514 "type" : "string",
53515 "typetext" : "<string>"
53516 },
c5aa7e14
TL
53517 "mode" : {
53518 "default" : "ldap",
53519 "description" : "LDAP protocol mode.",
53520 "enum" : [
53521 "ldap",
53522 "ldaps",
53523 "ldap+starttls"
53524 ],
53525 "optional" : 1,
53526 "type" : "string"
53527 },
53528 "password" : {
53529 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
53530 "optional" : 1,
53531 "type" : "string",
53532 "typetext" : "<string>"
53533 },
7aacca6f 53534 "port" : {
44660702 53535 "description" : "Server port.",
7aacca6f 53536 "maximum" : 65535,
44660702 53537 "minimum" : 1,
7aacca6f 53538 "optional" : 1,
4bd7df8b 53539 "type" : "integer",
013dc89f 53540 "typetext" : "<integer> (1 - 65535)"
56122987 53541 },
c30bb419
TL
53542 "prompt" : {
53543 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
53544 "optional" : 1,
53545 "pattern" : "(?:none|login|consent|select_account|\\S+)",
53546 "type" : "string"
53547 },
44660702
DM
53548 "realm" : {
53549 "description" : "Authentication domain ID",
53550 "format" : "pve-realm",
53551 "maxLength" : 32,
013dc89f
DM
53552 "type" : "string",
53553 "typetext" : "<string>"
44660702 53554 },
c30bb419
TL
53555 "scopes" : {
53556 "default" : "email profile",
53557 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
53558 "optional" : 1,
53559 "type" : "string",
53560 "typetext" : "<string>"
53561 },
44660702 53562 "secure" : {
c5aa7e14 53563 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
7aacca6f 53564 "optional" : 1,
013dc89f
DM
53565 "type" : "boolean",
53566 "typetext" : "<boolean>"
56122987 53567 },
44660702
DM
53568 "server1" : {
53569 "description" : "Server IP address (or DNS name)",
53570 "format" : "address",
53571 "maxLength" : 256,
53572 "optional" : 1,
013dc89f
DM
53573 "type" : "string",
53574 "typetext" : "<string>"
56122987 53575 },
44660702
DM
53576 "server2" : {
53577 "description" : "Fallback Server IP address (or DNS name)",
53578 "format" : "address",
7aacca6f 53579 "maxLength" : 256,
7aacca6f 53580 "optional" : 1,
013dc89f
DM
53581 "type" : "string",
53582 "typetext" : "<string>"
7aacca6f 53583 },
1c532546
TL
53584 "sslversion" : {
53585 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
53586 "enum" : [
53587 "tlsv1",
53588 "tlsv1_1",
53589 "tlsv1_2",
53590 "tlsv1_3"
53591 ],
53592 "optional" : 1,
53593 "type" : "string"
53594 },
c5aa7e14
TL
53595 "sync-defaults-options" : {
53596 "description" : "The default options for behavior of synchronizations.",
53597 "format" : "realm-sync-options",
53598 "optional" : 1,
53599 "type" : "string",
9d2e98ed 53600 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
c5aa7e14
TL
53601 },
53602 "sync_attributes" : {
53603 "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.",
53604 "optional" : 1,
53605 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
53606 "type" : "string"
53607 },
44660702
DM
53608 "tfa" : {
53609 "description" : "Use Two-factor authentication.",
53610 "format" : "pve-tfa-config",
53611 "maxLength" : 128,
53612 "optional" : 1,
013dc89f 53613 "type" : "string",
95895385 53614 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
53615 },
53616 "type" : {
53617 "description" : "Realm type.",
53618 "enum" : [
53619 "ad",
53620 "ldap",
34f3e481 53621 "openid",
44660702
DM
53622 "pam",
53623 "pve"
53624 ],
53625 "type" : "string"
53626 },
53627 "user_attr" : {
53628 "description" : "LDAP user attribute name",
7aacca6f 53629 "maxLength" : 256,
7aacca6f 53630 "optional" : 1,
44660702
DM
53631 "pattern" : "\\S{2,}",
53632 "type" : "string"
2489d6df 53633 },
c5aa7e14
TL
53634 "user_classes" : {
53635 "default" : "inetorgperson, posixaccount, person, user",
53636 "description" : "The objectclasses for users.",
53637 "format" : "ldap-simple-attr-list",
53638 "optional" : 1,
53639 "type" : "string",
53640 "typetext" : "<string>"
53641 },
34f3e481
TL
53642 "username-claim" : {
53643 "description" : "OpenID claim used to generate the unique username.",
34f3e481 53644 "optional" : 1,
c30bb419
TL
53645 "type" : "string",
53646 "typetext" : "<string>"
34f3e481 53647 },
2489d6df
WB
53648 "verify" : {
53649 "default" : 0,
53650 "description" : "Verify the server's SSL certificate",
53651 "optional" : 1,
53652 "type" : "boolean",
53653 "typetext" : "<boolean>"
7aacca6f
DM
53654 }
53655 },
7aacca6f 53656 "type" : "object"
56122987 53657 },
7aacca6f
DM
53658 "permissions" : {
53659 "check" : [
53660 "perm",
53661 "/access/realm",
53662 [
53663 "Realm.Allocate"
53664 ]
53665 ]
44660702
DM
53666 },
53667 "protected" : 1,
53668 "returns" : {
53669 "type" : "null"
7aacca6f 53670 }
56122987 53671 }
7aacca6f 53672 },
44660702 53673 "leaf" : 0,
56122987 53674 "path" : "/access/domains",
44660702 53675 "text" : "domains"
56122987 53676 },
34f3e481
TL
53677 {
53678 "children" : [
53679 {
53680 "info" : {
53681 "POST" : {
53682 "allowtoken" : 1,
53683 "description" : "Get the OpenId Authorization Url for the specified realm.",
53684 "method" : "POST",
53685 "name" : "auth_url",
53686 "parameters" : {
53687 "additionalProperties" : 0,
53688 "properties" : {
53689 "realm" : {
53690 "description" : "Authentication domain ID",
53691 "format" : "pve-realm",
53692 "maxLength" : 32,
53693 "type" : "string",
53694 "typetext" : "<string>"
53695 },
53696 "redirect-url" : {
53697 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
53698 "maxLength" : 255,
53699 "type" : "string",
53700 "typetext" : "<string>"
53701 }
53702 }
53703 },
53704 "permissions" : {
53705 "user" : "world"
53706 },
53707 "protected" : 1,
53708 "returns" : {
53709 "description" : "Redirection URL.",
53710 "type" : "string"
53711 }
53712 }
53713 },
53714 "leaf" : 1,
53715 "path" : "/access/openid/auth-url",
53716 "text" : "auth-url"
53717 },
53718 {
53719 "info" : {
53720 "POST" : {
53721 "allowtoken" : 1,
53722 "description" : " Verify OpenID authorization code and create a ticket.",
53723 "method" : "POST",
53724 "name" : "login",
53725 "parameters" : {
53726 "additionalProperties" : 0,
53727 "properties" : {
53728 "code" : {
53729 "description" : "OpenId authorization code.",
de786b48 53730 "maxLength" : 4096,
34f3e481
TL
53731 "type" : "string",
53732 "typetext" : "<string>"
53733 },
53734 "redirect-url" : {
53735 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
53736 "maxLength" : 255,
53737 "type" : "string",
53738 "typetext" : "<string>"
53739 },
53740 "state" : {
53741 "description" : "OpenId state.",
53742 "maxLength" : 1024,
53743 "type" : "string",
53744 "typetext" : "<string>"
53745 }
53746 }
53747 },
53748 "permissions" : {
53749 "user" : "world"
53750 },
53751 "protected" : 1,
53752 "returns" : {
53753 "properties" : {
53754 "CSRFPreventionToken" : {
53755 "type" : "string"
53756 },
53757 "cap" : {
53758 "type" : "object"
53759 },
53760 "clustername" : {
53761 "optional" : 1,
53762 "type" : "string"
53763 },
53764 "ticket" : {
53765 "type" : "string"
53766 },
53767 "username" : {
53768 "type" : "string"
53769 }
53770 }
53771 }
53772 }
53773 },
53774 "leaf" : 1,
53775 "path" : "/access/openid/login",
53776 "text" : "login"
53777 }
53778 ],
53779 "info" : {
53780 "GET" : {
53781 "allowtoken" : 1,
53782 "description" : "Directory index.",
53783 "method" : "GET",
53784 "name" : "index",
53785 "parameters" : {
53786 "additionalProperties" : 0
53787 },
53788 "permissions" : {
53789 "user" : "all"
53790 },
53791 "returns" : {
53792 "items" : {
53793 "properties" : {
53794 "subdir" : {
53795 "type" : "string"
53796 }
53797 },
53798 "type" : "object"
53799 },
53800 "links" : [
53801 {
53802 "href" : "{subdir}",
53803 "rel" : "child"
53804 }
53805 ],
53806 "type" : "array"
53807 }
53808 }
53809 },
53810 "leaf" : 0,
53811 "path" : "/access/openid",
53812 "text" : "openid"
53813 },
5370fa8c
TL
53814 {
53815 "children" : [
53816 {
53817 "children" : [
53818 {
53819 "info" : {
53820 "DELETE" : {
53821 "allowtoken" : 0,
53822 "description" : "Delete a TFA entry by ID.",
53823 "method" : "DELETE",
53824 "name" : "delete_tfa",
53825 "parameters" : {
53826 "additionalProperties" : 0,
53827 "properties" : {
53828 "id" : {
53829 "description" : "A TFA entry id.",
53830 "type" : "string",
53831 "typetext" : "<string>"
53832 },
53833 "password" : {
53834 "description" : "The current password.",
53835 "maxLength" : 64,
53836 "minLength" : 5,
53837 "optional" : 1,
53838 "type" : "string",
53839 "typetext" : "<string>"
53840 },
53841 "userid" : {
9d2e98ed 53842 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
53843 "format" : "pve-userid",
53844 "maxLength" : 64,
53845 "type" : "string",
53846 "typetext" : "<string>"
53847 }
53848 }
53849 },
53850 "permissions" : {
53851 "check" : [
53852 "or",
53853 [
53854 "userid-param",
53855 "self"
53856 ],
53857 [
53858 "userid-group",
53859 [
53860 "User.Modify"
53861 ]
53862 ]
53863 ]
53864 },
53865 "protected" : 1,
53866 "returns" : {
53867 "type" : "null"
53868 }
53869 },
53870 "GET" : {
07b013aa 53871 "allowtoken" : 1,
5370fa8c
TL
53872 "description" : "Fetch a requested TFA entry if present.",
53873 "method" : "GET",
53874 "name" : "get_tfa_entry",
53875 "parameters" : {
53876 "additionalProperties" : 0,
53877 "properties" : {
53878 "id" : {
53879 "description" : "A TFA entry id.",
53880 "type" : "string",
53881 "typetext" : "<string>"
53882 },
53883 "userid" : {
9d2e98ed 53884 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
53885 "format" : "pve-userid",
53886 "maxLength" : 64,
53887 "type" : "string",
53888 "typetext" : "<string>"
53889 }
53890 }
53891 },
53892 "permissions" : {
53893 "check" : [
53894 "or",
53895 [
53896 "userid-param",
53897 "self"
53898 ],
53899 [
53900 "userid-group",
53901 [
53902 "User.Modify",
53903 "Sys.Audit"
53904 ]
53905 ]
53906 ]
53907 },
53908 "protected" : 1,
53909 "returns" : {
53910 "description" : "TFA Entry.",
53911 "properties" : {
53912 "created" : {
53913 "description" : "Creation time of this entry as unix epoch.",
53914 "type" : "integer"
53915 },
53916 "description" : {
53917 "description" : "User chosen description for this entry.",
53918 "type" : "string"
53919 },
53920 "enable" : {
53921 "default" : 1,
53922 "description" : "Whether this TFA entry is currently enabled.",
53923 "optional" : 1,
53924 "type" : "boolean"
53925 },
53926 "id" : {
53927 "description" : "The id used to reference this entry.",
53928 "type" : "string"
53929 },
53930 "type" : {
53931 "description" : "TFA Entry Type.",
53932 "enum" : [
53933 "totp",
53934 "u2f",
53935 "webauthn",
53936 "recovery",
53937 "yubico"
53938 ],
53939 "type" : "string"
53940 }
53941 },
53942 "type" : "object"
53943 }
53944 },
53945 "PUT" : {
53946 "allowtoken" : 0,
53947 "description" : "Add a TFA entry for a user.",
53948 "method" : "PUT",
53949 "name" : "update_tfa_entry",
53950 "parameters" : {
53951 "additionalProperties" : 0,
53952 "properties" : {
53953 "description" : {
53954 "description" : "A description to distinguish multiple entries from one another",
53955 "maxLength" : 255,
53956 "optional" : 1,
53957 "type" : "string",
53958 "typetext" : "<string>"
53959 },
53960 "enable" : {
53961 "description" : "Whether the entry should be enabled for login.",
53962 "optional" : 1,
53963 "type" : "boolean",
53964 "typetext" : "<boolean>"
53965 },
53966 "id" : {
53967 "description" : "A TFA entry id.",
53968 "type" : "string",
53969 "typetext" : "<string>"
53970 },
53971 "password" : {
53972 "description" : "The current password.",
53973 "maxLength" : 64,
53974 "minLength" : 5,
53975 "optional" : 1,
53976 "type" : "string",
53977 "typetext" : "<string>"
53978 },
53979 "userid" : {
9d2e98ed 53980 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
53981 "format" : "pve-userid",
53982 "maxLength" : 64,
53983 "type" : "string",
53984 "typetext" : "<string>"
53985 }
53986 }
53987 },
53988 "permissions" : {
53989 "check" : [
53990 "or",
53991 [
53992 "userid-param",
53993 "self"
53994 ],
53995 [
53996 "userid-group",
53997 [
53998 "User.Modify"
53999 ]
54000 ]
54001 ]
54002 },
54003 "protected" : 1,
54004 "returns" : {
54005 "type" : "null"
54006 }
54007 }
54008 },
54009 "leaf" : 1,
54010 "path" : "/access/tfa/{userid}/{id}",
54011 "text" : "{id}"
54012 }
54013 ],
54014 "info" : {
54015 "GET" : {
07b013aa 54016 "allowtoken" : 1,
5370fa8c
TL
54017 "description" : "List TFA configurations of users.",
54018 "method" : "GET",
54019 "name" : "list_user_tfa",
54020 "parameters" : {
54021 "additionalProperties" : 0,
54022 "properties" : {
54023 "userid" : {
9d2e98ed 54024 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
54025 "format" : "pve-userid",
54026 "maxLength" : 64,
54027 "type" : "string",
54028 "typetext" : "<string>"
54029 }
54030 }
54031 },
54032 "permissions" : {
54033 "check" : [
54034 "or",
54035 [
54036 "userid-param",
54037 "self"
54038 ],
54039 [
54040 "userid-group",
54041 [
54042 "User.Modify",
54043 "Sys.Audit"
54044 ]
54045 ]
54046 ]
54047 },
54048 "protected" : 1,
54049 "returns" : {
54050 "description" : "A list of the user's TFA entries.",
54051 "items" : {
54052 "description" : "TFA Entry.",
54053 "properties" : {
54054 "created" : {
54055 "description" : "Creation time of this entry as unix epoch.",
54056 "type" : "integer"
54057 },
54058 "description" : {
54059 "description" : "User chosen description for this entry.",
54060 "type" : "string"
54061 },
54062 "enable" : {
54063 "default" : 1,
54064 "description" : "Whether this TFA entry is currently enabled.",
54065 "optional" : 1,
54066 "type" : "boolean"
54067 },
54068 "id" : {
54069 "description" : "The id used to reference this entry.",
54070 "type" : "string"
54071 },
54072 "type" : {
54073 "description" : "TFA Entry Type.",
54074 "enum" : [
54075 "totp",
54076 "u2f",
54077 "webauthn",
54078 "recovery",
54079 "yubico"
54080 ],
54081 "type" : "string"
54082 }
54083 },
54084 "type" : "object"
54085 },
07b013aa
TL
54086 "links" : [
54087 {
54088 "href" : "{id}",
54089 "rel" : "child"
54090 }
54091 ],
5370fa8c
TL
54092 "type" : "array"
54093 }
54094 },
54095 "POST" : {
54096 "allowtoken" : 0,
54097 "description" : "Add a TFA entry for a user.",
54098 "method" : "POST",
54099 "name" : "add_tfa_entry",
54100 "parameters" : {
54101 "additionalProperties" : 0,
54102 "properties" : {
54103 "challenge" : {
54104 "description" : "When responding to a u2f challenge: the original challenge string",
54105 "optional" : 1,
54106 "type" : "string",
54107 "typetext" : "<string>"
54108 },
54109 "description" : {
54110 "description" : "A description to distinguish multiple entries from one another",
54111 "maxLength" : 255,
54112 "optional" : 1,
54113 "type" : "string",
54114 "typetext" : "<string>"
54115 },
54116 "password" : {
54117 "description" : "The current password.",
54118 "maxLength" : 64,
54119 "minLength" : 5,
54120 "optional" : 1,
54121 "type" : "string",
54122 "typetext" : "<string>"
54123 },
54124 "totp" : {
54125 "description" : "A totp URI.",
54126 "optional" : 1,
54127 "type" : "string",
54128 "typetext" : "<string>"
54129 },
54130 "type" : {
54131 "description" : "TFA Entry Type.",
54132 "enum" : [
54133 "totp",
54134 "u2f",
54135 "webauthn",
54136 "recovery",
54137 "yubico"
54138 ],
54139 "type" : "string"
54140 },
54141 "userid" : {
9d2e98ed 54142 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
54143 "format" : "pve-userid",
54144 "maxLength" : 64,
54145 "type" : "string",
54146 "typetext" : "<string>"
54147 },
54148 "value" : {
54149 "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
54150 "optional" : 1,
54151 "type" : "string",
54152 "typetext" : "<string>"
54153 }
54154 }
54155 },
54156 "permissions" : {
54157 "check" : [
54158 "or",
54159 [
54160 "userid-param",
54161 "self"
54162 ],
54163 [
54164 "userid-group",
54165 [
54166 "User.Modify"
54167 ]
54168 ]
54169 ]
54170 },
54171 "protected" : 1,
54172 "returns" : {
54173 "properties" : {
54174 "challenge" : {
54175 "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
54176 "optional" : 1,
54177 "type" : "string"
54178 },
54179 "id" : {
54180 "description" : "The id of a newly added TFA entry.",
54181 "type" : "string"
54182 },
54183 "recovery" : {
54184 "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
54185 "items" : {
54186 "description" : "A recovery entry.",
54187 "type" : "string"
54188 },
54189 "optional" : 1,
54190 "type" : "array"
54191 }
54192 },
54193 "type" : "object"
54194 }
54195 }
54196 },
54197 "leaf" : 0,
54198 "path" : "/access/tfa/{userid}",
54199 "text" : "{userid}"
54200 }
54201 ],
54202 "info" : {
54203 "GET" : {
07b013aa 54204 "allowtoken" : 1,
5370fa8c
TL
54205 "description" : "List TFA configurations of users.",
54206 "method" : "GET",
54207 "name" : "list_tfa",
54208 "parameters" : {
54209 "additionalProperties" : 0
54210 },
54211 "permissions" : {
54212 "description" : "Returns all or just the logged-in user, depending on privileges.",
54213 "user" : "all"
54214 },
54215 "protected" : 1,
54216 "returns" : {
54217 "description" : "The list tuples of user and TFA entries.",
54218 "items" : {
54219 "properties" : {
54220 "entries" : {
54221 "items" : {
54222 "description" : "TFA Entry.",
54223 "properties" : {
54224 "created" : {
54225 "description" : "Creation time of this entry as unix epoch.",
54226 "type" : "integer"
54227 },
54228 "description" : {
54229 "description" : "User chosen description for this entry.",
54230 "type" : "string"
54231 },
54232 "enable" : {
54233 "default" : 1,
54234 "description" : "Whether this TFA entry is currently enabled.",
54235 "optional" : 1,
54236 "type" : "boolean"
54237 },
54238 "id" : {
54239 "description" : "The id used to reference this entry.",
54240 "type" : "string"
54241 },
54242 "type" : {
54243 "description" : "TFA Entry Type.",
54244 "enum" : [
54245 "totp",
54246 "u2f",
54247 "webauthn",
54248 "recovery",
54249 "yubico"
54250 ],
54251 "type" : "string"
54252 }
54253 },
54254 "type" : "object"
54255 },
54256 "type" : "array"
54257 },
4a407cfd
TL
54258 "tfa-locked-until" : {
54259 "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
54260 "optional" : 1,
54261 "type" : "integer"
54262 },
54263 "totp-locked" : {
54264 "description" : "True if the user is currently locked out of TOTP factors.",
54265 "optional" : 1,
54266 "type" : "boolean"
54267 },
5370fa8c
TL
54268 "userid" : {
54269 "description" : "User this entry belongs to.",
54270 "type" : "string"
54271 }
54272 },
54273 "type" : "object"
54274 },
07b013aa
TL
54275 "links" : [
54276 {
54277 "href" : "{userid}",
54278 "rel" : "child"
54279 }
54280 ],
5370fa8c
TL
54281 "type" : "array"
54282 }
5370fa8c
TL
54283 }
54284 },
54285 "leaf" : 0,
54286 "path" : "/access/tfa",
54287 "text" : "tfa"
54288 },
56122987 54289 {
56122987 54290 "info" : {
44660702 54291 "GET" : {
e9cd3bd4 54292 "allowtoken" : 1,
2489d6df 54293 "description" : "Dummy. Useful for formatters which want to provide a login page.",
44660702
DM
54294 "method" : "GET",
54295 "name" : "get_ticket",
54296 "parameters" : {
54297 "additionalProperties" : 0
54298 },
54299 "permissions" : {
54300 "user" : "world"
54301 },
54302 "returns" : {
54303 "type" : "null"
54304 }
54305 },
56122987 54306 "POST" : {
e9cd3bd4 54307 "allowtoken" : 0,
44660702 54308 "description" : "Create or verify authentication ticket.",
56122987 54309 "method" : "POST",
44660702
DM
54310 "name" : "create_ticket",
54311 "parameters" : {
54312 "additionalProperties" : 0,
56122987 54313 "properties" : {
5370fa8c 54314 "new-format" : {
4a407cfd
TL
54315 "default" : 1,
54316 "description" : "This parameter is now ignored and assumed to be 1.",
5370fa8c
TL
54317 "optional" : 1,
54318 "type" : "boolean",
54319 "typetext" : "<boolean>"
54320 },
44660702
DM
54321 "otp" : {
54322 "description" : "One-time password for Two-factor authentication.",
7aacca6f 54323 "optional" : 1,
013dc89f
DM
54324 "type" : "string",
54325 "typetext" : "<string>"
56122987 54326 },
7aacca6f
DM
54327 "password" : {
54328 "description" : "The secret password. This can also be a valid ticket.",
013dc89f
DM
54329 "type" : "string",
54330 "typetext" : "<string>"
7aacca6f 54331 },
44660702
DM
54332 "path" : {
54333 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
7aacca6f 54334 "maxLength" : 64,
56122987 54335 "optional" : 1,
56122987 54336 "requires" : "privs",
013dc89f
DM
54337 "type" : "string",
54338 "typetext" : "<string>"
44660702
DM
54339 },
54340 "privs" : {
7aacca6f 54341 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
44660702
DM
54342 "format" : "pve-priv-list",
54343 "maxLength" : 64,
56122987 54344 "optional" : 1,
44660702 54345 "requires" : "path",
013dc89f
DM
54346 "type" : "string",
54347 "typetext" : "<string>"
56122987
DM
54348 },
54349 "realm" : {
56122987 54350 "description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
44660702 54351 "format" : "pve-realm",
7aacca6f 54352 "maxLength" : 32,
44660702 54353 "optional" : 1,
013dc89f
DM
54354 "type" : "string",
54355 "typetext" : "<string>"
56122987 54356 },
5370fa8c
TL
54357 "tfa-challenge" : {
54358 "description" : "The signed TFA challenge string the user wants to respond to.",
54359 "optional" : 1,
54360 "type" : "string",
54361 "typetext" : "<string>"
54362 },
56122987
DM
54363 "username" : {
54364 "description" : "User name",
44660702 54365 "maxLength" : 64,
013dc89f
DM
54366 "type" : "string",
54367 "typetext" : "<string>"
56122987 54368 }
44660702 54369 }
7aacca6f 54370 },
56122987 54371 "permissions" : {
44660702 54372 "description" : "You need to pass valid credientials.",
56122987
DM
54373 "user" : "world"
54374 },
44660702 54375 "protected" : 1,
7aacca6f 54376 "returns" : {
56122987 54377 "properties" : {
44660702
DM
54378 "CSRFPreventionToken" : {
54379 "optional" : 1,
54380 "type" : "string"
56122987 54381 },
e2d681b3
TL
54382 "clustername" : {
54383 "optional" : 1,
54384 "type" : "string"
54385 },
44660702
DM
54386 "ticket" : {
54387 "optional" : 1,
54388 "type" : "string"
54389 },
54390 "username" : {
56122987
DM
54391 "type" : "string"
54392 }
54393 },
44660702 54394 "type" : "object"
7aacca6f 54395 }
7aacca6f
DM
54396 }
54397 },
44660702
DM
54398 "leaf" : 1,
54399 "path" : "/access/ticket",
54400 "text" : "ticket"
7aacca6f 54401 },
56122987 54402 {
56122987 54403 "info" : {
7aacca6f 54404 "PUT" : {
e9cd3bd4 54405 "allowtoken" : 0,
44660702 54406 "description" : "Change user password.",
7aacca6f 54407 "method" : "PUT",
e2d681b3 54408 "name" : "change_password",
56122987
DM
54409 "parameters" : {
54410 "additionalProperties" : 0,
54411 "properties" : {
44660702
DM
54412 "password" : {
54413 "description" : "The new password.",
54414 "maxLength" : 64,
54415 "minLength" : 5,
013dc89f
DM
54416 "type" : "string",
54417 "typetext" : "<string>"
7aacca6f 54418 },
44660702 54419 "userid" : {
9d2e98ed 54420 "description" : "Full User ID, in the `name@realm` format.",
44660702
DM
54421 "format" : "pve-userid",
54422 "maxLength" : 64,
013dc89f
DM
54423 "type" : "string",
54424 "typetext" : "<string>"
56122987 54425 }
7aacca6f 54426 }
56122987
DM
54427 },
54428 "permissions" : {
54429 "check" : [
44660702 54430 "or",
56122987 54431 [
44660702
DM
54432 "userid-param",
54433 "self"
54434 ],
54435 [
54436 "and",
54437 [
54438 "userid-param",
54439 "Realm.AllocateUser"
54440 ],
54441 [
54442 "userid-group",
54443 [
54444 "User.Modify"
54445 ]
54446 ]
56122987 54447 ]
7aacca6f 54448 ],
44660702 54449 "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 54450 },
44660702 54451 "protected" : 1,
7aacca6f
DM
54452 "returns" : {
54453 "type" : "null"
44660702
DM
54454 }
54455 }
54456 },
54457 "leaf" : 1,
54458 "path" : "/access/password",
54459 "text" : "password"
95895385 54460 },
e9cd3bd4
TL
54461 {
54462 "info" : {
54463 "GET" : {
54464 "allowtoken" : 1,
54465 "description" : "Retrieve effective permissions of given user/token.",
54466 "method" : "GET",
54467 "name" : "permissions",
54468 "parameters" : {
54469 "additionalProperties" : 0,
54470 "properties" : {
54471 "path" : {
54472 "description" : "Only dump this specific path, not the whole tree.",
54473 "optional" : 1,
54474 "type" : "string",
54475 "typetext" : "<string>"
54476 },
54477 "userid" : {
54478 "description" : "User ID or full API token ID",
54479 "optional" : 1,
54480 "pattern" : "(?^:^(?^:[^\\s:/]+)\\@(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+))?$)",
54481 "type" : "string"
54482 }
54483 }
54484 },
54485 "permissions" : {
54486 "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.",
54487 "user" : "all"
54488 },
54489 "returns" : {
54490 "description" : "Map of \"path\" => (Map of \"privilege\" => \"propagate boolean\").",
54491 "type" : "object"
54492 }
54493 }
54494 },
54495 "leaf" : 1,
54496 "path" : "/access/permissions",
54497 "text" : "permissions"
44660702
DM
54498 }
54499 ],
54500 "info" : {
54501 "GET" : {
e9cd3bd4 54502 "allowtoken" : 1,
44660702
DM
54503 "description" : "Directory index.",
54504 "method" : "GET",
54505 "name" : "index",
54506 "parameters" : {
54507 "additionalProperties" : 0
54508 },
54509 "permissions" : {
54510 "user" : "all"
54511 },
54512 "returns" : {
54513 "items" : {
54514 "properties" : {
54515 "subdir" : {
54516 "type" : "string"
54517 }
7aacca6f 54518 },
44660702
DM
54519 "type" : "object"
54520 },
54521 "links" : [
54522 {
54523 "href" : "{subdir}",
54524 "rel" : "child"
54525 }
54526 ],
54527 "type" : "array"
54528 }
54529 }
54530 },
54531 "leaf" : 0,
54532 "path" : "/access",
54533 "text" : "access"
54534 },
54535 {
54536 "children" : [
54537 {
54538 "info" : {
54539 "DELETE" : {
e9cd3bd4 54540 "allowtoken" : 1,
fa22697b 54541 "description" : "Delete pool (deprecated, no support for nested pools, use 'DELETE /pools/?poolid={poolid}').",
44660702 54542 "method" : "DELETE",
fa22697b 54543 "name" : "delete_pool_deprecated",
7aacca6f
DM
54544 "parameters" : {
54545 "additionalProperties" : 0,
54546 "properties" : {
54547 "poolid" : {
54548 "format" : "pve-poolid",
013dc89f
DM
54549 "type" : "string",
54550 "typetext" : "<string>"
7aacca6f
DM
54551 }
54552 }
54553 },
56122987
DM
54554 "permissions" : {
54555 "check" : [
54556 "perm",
54557 "/pool/{poolid}",
54558 [
54559 "Pool.Allocate"
54560 ]
44660702
DM
54561 ],
54562 "description" : "You can only delete empty pools (no members)."
54563 },
54564 "protected" : 1,
54565 "returns" : {
54566 "type" : "null"
7aacca6f
DM
54567 }
54568 },
54569 "GET" : {
e9cd3bd4 54570 "allowtoken" : 1,
fa22697b 54571 "description" : "Get pool configuration (deprecated, no support for nested pools, use 'GET /pools/?poolid={poolid}').",
44660702 54572 "method" : "GET",
7aacca6f 54573 "name" : "read_pool",
56122987 54574 "parameters" : {
44660702 54575 "additionalProperties" : 0,
56122987
DM
54576 "properties" : {
54577 "poolid" : {
44660702 54578 "format" : "pve-poolid",
013dc89f
DM
54579 "type" : "string",
54580 "typetext" : "<string>"
c30bb419
TL
54581 },
54582 "type" : {
54583 "enum" : [
54584 "qemu",
54585 "lxc",
54586 "storage"
54587 ],
54588 "optional" : 1,
54589 "type" : "string"
56122987 54590 }
44660702 54591 }
56122987 54592 },
56122987 54593 "permissions" : {
56122987
DM
54594 "check" : [
54595 "perm",
54596 "/pool/{poolid}",
54597 [
0695fdaf 54598 "Pool.Audit"
56122987
DM
54599 ]
54600 ]
54601 },
7aacca6f 54602 "returns" : {
44660702 54603 "additionalProperties" : 0,
56122987 54604 "properties" : {
44660702
DM
54605 "comment" : {
54606 "optional" : 1,
54607 "type" : "string"
54608 },
7aacca6f 54609 "members" : {
7aacca6f
DM
54610 "items" : {
54611 "additionalProperties" : 1,
7aacca6f 54612 "properties" : {
7aacca6f
DM
54613 "id" : {
54614 "type" : "string"
54615 },
54616 "node" : {
54617 "type" : "string"
54618 },
44660702
DM
54619 "storage" : {
54620 "optional" : 1,
54621 "type" : "string"
54622 },
7aacca6f 54623 "type" : {
7aacca6f
DM
54624 "enum" : [
54625 "qemu",
54626 "lxc",
54627 "openvz",
54628 "storage"
44660702
DM
54629 ],
54630 "type" : "string"
54631 },
54632 "vmid" : {
54633 "optional" : 1,
54634 "type" : "integer"
7aacca6f 54635 }
44660702
DM
54636 },
54637 "type" : "object"
54638 },
54639 "type" : "array"
54640 }
54641 },
54642 "type" : "object"
54643 }
54644 },
54645 "PUT" : {
e9cd3bd4 54646 "allowtoken" : 1,
fa22697b 54647 "description" : "Update pool data (deprecated, no support for nested pools - use 'PUT /pools/?poolid={poolid}' instead).",
44660702 54648 "method" : "PUT",
fa22697b 54649 "name" : "update_pool_deprecated",
44660702
DM
54650 "parameters" : {
54651 "additionalProperties" : 0,
54652 "properties" : {
82551b2b
TL
54653 "allow-move" : {
54654 "default" : 0,
54655 "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.",
54656 "optional" : 1,
54657 "type" : "boolean",
54658 "typetext" : "<boolean>"
54659 },
56122987
DM
54660 "comment" : {
54661 "optional" : 1,
013dc89f
DM
54662 "type" : "string",
54663 "typetext" : "<string>"
44660702
DM
54664 },
54665 "delete" : {
82551b2b
TL
54666 "default" : 0,
54667 "description" : "Remove the passed VMIDs and/or storage IDs instead of adding them.",
44660702 54668 "optional" : 1,
013dc89f
DM
54669 "type" : "boolean",
54670 "typetext" : "<boolean>"
44660702
DM
54671 },
54672 "poolid" : {
54673 "format" : "pve-poolid",
013dc89f
DM
54674 "type" : "string",
54675 "typetext" : "<string>"
44660702
DM
54676 },
54677 "storage" : {
82551b2b 54678 "description" : "List of storage IDs to add or remove from this pool.",
44660702
DM
54679 "format" : "pve-storage-id-list",
54680 "optional" : 1,
013dc89f
DM
54681 "type" : "string",
54682 "typetext" : "<string>"
44660702
DM
54683 },
54684 "vms" : {
82551b2b 54685 "description" : "List of guest VMIDs to add or remove from this pool.",
44660702
DM
54686 "format" : "pve-vmid-list",
54687 "optional" : 1,
013dc89f
DM
54688 "type" : "string",
54689 "typetext" : "<string>"
56122987 54690 }
44660702
DM
54691 }
54692 },
54693 "permissions" : {
54694 "check" : [
54695 "perm",
54696 "/pool/{poolid}",
54697 [
54698 "Pool.Allocate"
54699 ]
54700 ],
54701 "description" : "You also need the right to modify permissions on any object you add/delete."
54702 },
54703 "protected" : 1,
54704 "returns" : {
54705 "type" : "null"
56122987
DM
54706 }
54707 }
54708 },
44660702
DM
54709 "leaf" : 1,
54710 "path" : "/pools/{poolid}",
7aacca6f 54711 "text" : "{poolid}"
56122987 54712 }
7aacca6f 54713 ],
56122987 54714 "info" : {
fa22697b
TL
54715 "DELETE" : {
54716 "allowtoken" : 1,
54717 "description" : "Delete pool.",
54718 "method" : "DELETE",
54719 "name" : "delete_pool",
54720 "parameters" : {
54721 "additionalProperties" : 0,
54722 "properties" : {
54723 "poolid" : {
54724 "format" : "pve-poolid",
54725 "type" : "string",
54726 "typetext" : "<string>"
54727 }
54728 }
54729 },
54730 "permissions" : {
54731 "check" : [
54732 "perm",
54733 "/pool/{poolid}",
54734 [
54735 "Pool.Allocate"
54736 ]
54737 ],
54738 "description" : "You can only delete empty pools (no members)."
54739 },
54740 "protected" : 1,
54741 "returns" : {
54742 "type" : "null"
54743 }
54744 },
56122987 54745 "GET" : {
e9cd3bd4 54746 "allowtoken" : 1,
fa22697b 54747 "description" : "List pools or get pool configuration.",
44660702
DM
54748 "method" : "GET",
54749 "name" : "index",
54750 "parameters" : {
fa22697b
TL
54751 "additionalProperties" : 0,
54752 "properties" : {
54753 "poolid" : {
54754 "format" : "pve-poolid",
54755 "optional" : 1,
54756 "type" : "string",
54757 "typetext" : "<string>"
54758 },
54759 "type" : {
54760 "enum" : [
54761 "qemu",
54762 "lxc",
54763 "storage"
54764 ],
54765 "optional" : 1,
54766 "requires" : "poolid",
54767 "type" : "string"
54768 }
54769 }
44660702
DM
54770 },
54771 "permissions" : {
fa22697b 54772 "description" : "List all pools where you have Pool.Audit permissions on /pool/<pool>, or the pool specific with {poolid}",
44660702
DM
54773 "user" : "all"
54774 },
56122987 54775 "returns" : {
44660702
DM
54776 "items" : {
54777 "properties" : {
fa22697b
TL
54778 "comment" : {
54779 "optional" : 1,
54780 "type" : "string"
54781 },
54782 "members" : {
54783 "items" : {
54784 "additionalProperties" : 1,
54785 "properties" : {
54786 "id" : {
54787 "type" : "string"
54788 },
54789 "node" : {
54790 "type" : "string"
54791 },
54792 "storage" : {
54793 "optional" : 1,
54794 "type" : "string"
54795 },
54796 "type" : {
54797 "enum" : [
54798 "qemu",
54799 "lxc",
54800 "openvz",
54801 "storage"
54802 ],
54803 "type" : "string"
54804 },
54805 "vmid" : {
54806 "optional" : 1,
54807 "type" : "integer"
54808 }
54809 },
54810 "type" : "object"
54811 },
54812 "optional" : 1,
54813 "type" : "array"
54814 },
44660702
DM
54815 "poolid" : {
54816 "type" : "string"
54817 }
56122987 54818 },
44660702
DM
54819 "type" : "object"
54820 },
54821 "links" : [
54822 {
54823 "href" : "{poolid}",
54824 "rel" : "child"
54825 }
54826 ],
54827 "type" : "array"
54828 }
54829 },
54830 "POST" : {
e9cd3bd4 54831 "allowtoken" : 1,
44660702
DM
54832 "description" : "Create new pool.",
54833 "method" : "POST",
54834 "name" : "create_pool",
54835 "parameters" : {
54836 "additionalProperties" : 0,
54837 "properties" : {
54838 "comment" : {
54839 "optional" : 1,
013dc89f
DM
54840 "type" : "string",
54841 "typetext" : "<string>"
7aacca6f 54842 },
44660702
DM
54843 "poolid" : {
54844 "format" : "pve-poolid",
013dc89f
DM
54845 "type" : "string",
54846 "typetext" : "<string>"
56122987
DM
54847 }
54848 }
54849 },
56122987 54850 "permissions" : {
44660702
DM
54851 "check" : [
54852 "perm",
54853 "/pool/{poolid}",
54854 [
54855 "Pool.Allocate"
54856 ]
54857 ]
56122987 54858 },
44660702
DM
54859 "protected" : 1,
54860 "returns" : {
54861 "type" : "null"
54862 }
fa22697b
TL
54863 },
54864 "PUT" : {
54865 "allowtoken" : 1,
54866 "description" : "Update pool.",
54867 "method" : "PUT",
54868 "name" : "update_pool",
54869 "parameters" : {
54870 "additionalProperties" : 0,
54871 "properties" : {
54872 "allow-move" : {
54873 "default" : 0,
54874 "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.",
54875 "optional" : 1,
54876 "type" : "boolean",
54877 "typetext" : "<boolean>"
54878 },
54879 "comment" : {
54880 "optional" : 1,
54881 "type" : "string",
54882 "typetext" : "<string>"
54883 },
54884 "delete" : {
54885 "default" : 0,
54886 "description" : "Remove the passed VMIDs and/or storage IDs instead of adding them.",
54887 "optional" : 1,
54888 "type" : "boolean",
54889 "typetext" : "<boolean>"
54890 },
54891 "poolid" : {
54892 "format" : "pve-poolid",
54893 "type" : "string",
54894 "typetext" : "<string>"
54895 },
54896 "storage" : {
54897 "description" : "List of storage IDs to add or remove from this pool.",
54898 "format" : "pve-storage-id-list",
54899 "optional" : 1,
54900 "type" : "string",
54901 "typetext" : "<string>"
54902 },
54903 "vms" : {
54904 "description" : "List of guest VMIDs to add or remove from this pool.",
54905 "format" : "pve-vmid-list",
54906 "optional" : 1,
54907 "type" : "string",
54908 "typetext" : "<string>"
54909 }
54910 }
54911 },
54912 "permissions" : {
54913 "check" : [
54914 "perm",
54915 "/pool/{poolid}",
54916 [
54917 "Pool.Allocate"
54918 ]
54919 ],
54920 "description" : "You also need the right to modify permissions on any object you add/delete."
54921 },
54922 "protected" : 1,
54923 "returns" : {
54924 "type" : "null"
54925 }
44660702
DM
54926 }
54927 },
54928 "leaf" : 0,
54929 "path" : "/pools",
54930 "text" : "pools"
54931 },
54932 {
54933 "info" : {
54934 "GET" : {
e9cd3bd4 54935 "allowtoken" : 1,
5370fa8c 54936 "description" : "API version details, including some parts of the global datacenter config.",
44660702
DM
54937 "method" : "GET",
54938 "name" : "version",
7aacca6f
DM
54939 "parameters" : {
54940 "additionalProperties" : 0
54941 },
44660702
DM
54942 "permissions" : {
54943 "user" : "all"
54944 },
54945 "returns" : {
54946 "properties" : {
5370fa8c
TL
54947 "console" : {
54948 "description" : "The default console viewer to use.",
54949 "enum" : [
54950 "applet",
54951 "vv",
54952 "html5",
54953 "xtermjs"
54954 ],
54955 "optional" : 1,
54956 "type" : "string"
54957 },
44660702 54958 "release" : {
5370fa8c 54959 "description" : "The current Proxmox VE point release in `x.y` format.",
44660702
DM
54960 "type" : "string"
54961 },
54962 "repoid" : {
5370fa8c 54963 "description" : "The short git revision from which this version was build.",
4a407cfd 54964 "pattern" : "[0-9a-fA-F]{8,64}",
44660702
DM
54965 "type" : "string"
54966 },
54967 "version" : {
5370fa8c 54968 "description" : "The full pve-manager package version of this node.",
44660702
DM
54969 "type" : "string"
54970 }
54971 },
54972 "type" : "object"
54973 }
56122987
DM
54974 }
54975 },
44660702
DM
54976 "leaf" : 1,
54977 "path" : "/version",
56122987
DM
54978 "text" : "version"
54979 }
54980]
54981;
54982