]> 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",
768 "/mapping/notification",
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",
799 "/mapping/notification/{name}",
800 [
801 "Mapping.Modify"
802 ]
803 ],
804 [
805 "perm",
806 "/mapping/notification/{name}",
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 },
832 "filter" : {
833 "description" : "Name of the filter that should be applied.",
834 "format" : "pve-configid",
835 "optional" : 1,
836 "type" : "string"
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 },
907 "filter" : {
908 "description" : "Name of the filter that should be applied.",
909 "format" : "pve-configid",
910 "optional" : 1,
911 "type" : "string",
912 "typetext" : "<string>"
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",
951 "/mapping/notification/{name}",
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" : {
978 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/notification/<name>'.",
979 "user" : "all"
980 },
981 "protected" : 1,
982 "returns" : {
983 "items" : {
984 "properties" : {
985 "author" : {
986 "description" : "Author of the mail",
987 "optional" : 1,
988 "type" : "string"
989 },
990 "comment" : {
991 "description" : "Comment",
992 "optional" : 1,
993 "type" : "string"
994 },
995 "filter" : {
996 "description" : "Name of the filter that should be applied.",
997 "format" : "pve-configid",
998 "optional" : 1,
999 "type" : "string"
1000 },
1001 "from-address" : {
1002 "description" : "`From` address for the mail",
1003 "optional" : 1,
1004 "type" : "string"
1005 },
1006 "mailto" : {
1007 "description" : "List of email recipients",
1008 "items" : {
1009 "format" : "email-or-username",
1010 "type" : "string"
1011 },
1012 "optional" : 1,
1013 "type" : "array"
1014 },
1015 "mailto-user" : {
1016 "description" : "List of users",
1017 "items" : {
1018 "format" : "pve-userid",
1019 "type" : "string"
1020 },
1021 "optional" : 1,
1022 "type" : "array"
1023 },
1024 "name" : {
1025 "description" : "The name of the endpoint.",
1026 "format" : "pve-configid",
1027 "type" : "string"
1028 }
1029 },
1030 "type" : "object"
1031 },
1032 "links" : [
1033 {
1034 "href" : "{name}",
1035 "rel" : "child"
1036 }
1037 ],
1038 "type" : "array"
1039 }
1040 },
1041 "POST" : {
1042 "allowtoken" : 1,
1043 "description" : "Create a new sendmail endpoint",
1044 "method" : "POST",
1045 "name" : "create_sendmail_endpoint",
1046 "parameters" : {
1047 "additionalProperties" : 0,
1048 "properties" : {
1049 "author" : {
1050 "description" : "Author of the mail",
1051 "optional" : 1,
1052 "type" : "string",
1053 "typetext" : "<string>"
1054 },
1055 "comment" : {
1056 "description" : "Comment",
1057 "optional" : 1,
1058 "type" : "string",
1059 "typetext" : "<string>"
1060 },
1061 "filter" : {
1062 "description" : "Name of the filter that should be applied.",
1063 "format" : "pve-configid",
1064 "optional" : 1,
1065 "type" : "string",
1066 "typetext" : "<string>"
1067 },
1068 "from-address" : {
1069 "description" : "`From` address for the mail",
1070 "optional" : 1,
1071 "type" : "string",
1072 "typetext" : "<string>"
1073 },
1074 "mailto" : {
1075 "description" : "List of email recipients",
1076 "items" : {
1077 "format" : "email-or-username",
1078 "type" : "string"
1079 },
1080 "optional" : 1,
1081 "type" : "array",
1082 "typetext" : "<array>"
1083 },
1084 "mailto-user" : {
1085 "description" : "List of users",
1086 "items" : {
1087 "format" : "pve-userid",
1088 "type" : "string"
1089 },
1090 "optional" : 1,
1091 "type" : "array",
1092 "typetext" : "<array>"
1093 },
1094 "name" : {
1095 "description" : "The name of the endpoint.",
1096 "format" : "pve-configid",
1097 "type" : "string",
1098 "typetext" : "<string>"
1099 }
1100 }
1101 },
1102 "permissions" : {
1103 "check" : [
1104 "perm",
1105 "/mapping/notification",
1106 [
1107 "Mapping.Modify"
1108 ]
1109 ]
1110 },
1111 "protected" : 1,
1112 "returns" : {
1113 "type" : "null"
1114 }
1115 }
1116 },
1117 "leaf" : 0,
1118 "path" : "/cluster/notifications/endpoints/sendmail",
1119 "text" : "sendmail"
1120 },
1121 {
1122 "children" : [
1123 {
1124 "info" : {
1125 "DELETE" : {
1126 "allowtoken" : 1,
1127 "description" : "Remove gotify endpoint",
1128 "method" : "DELETE",
1129 "name" : "delete_gotify_endpoint",
1130 "parameters" : {
1131 "additionalProperties" : 0,
1132 "properties" : {
1133 "name" : {
1134 "format" : "pve-configid",
1135 "type" : "string",
1136 "typetext" : "<string>"
1137 }
1138 }
1139 },
1140 "permissions" : {
1141 "check" : [
1142 "perm",
1143 "/mapping/notification/{name}",
1144 [
1145 "Mapping.Modify"
1146 ]
1147 ]
1148 },
1149 "protected" : 1,
1150 "returns" : {
1151 "type" : "null"
1152 }
1153 },
1154 "GET" : {
1155 "allowtoken" : 1,
1156 "description" : "Return a specific gotify endpoint",
1157 "method" : "GET",
1158 "name" : "get_gotify_endpoint",
1159 "parameters" : {
1160 "additionalProperties" : 0,
1161 "properties" : {
1162 "name" : {
1163 "description" : "Name of the endpoint.",
1164 "format" : "pve-configid",
1165 "type" : "string",
1166 "typetext" : "<string>"
1167 }
1168 }
1169 },
1170 "permissions" : {
1171 "check" : [
1172 "or",
1173 [
1174 "perm",
1175 "/mapping/notification/{name}",
1176 [
1177 "Mapping.Modify"
1178 ]
1179 ],
1180 [
1181 "perm",
1182 "/mapping/notification/{name}",
1183 [
1184 "Mapping.Audit"
1185 ]
1186 ]
1187 ]
1188 },
1189 "protected" : 1,
1190 "returns" : {
1191 "properties" : {
1192 "comment" : {
1193 "description" : "Comment",
1194 "optional" : 1,
1195 "type" : "string"
1196 },
1197 "digest" : {
1198 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
1199 "maxLength" : 64,
1200 "optional" : 1,
1201 "type" : "string"
1202 },
1203 "filter" : {
1204 "description" : "Name of the filter that should be applied.",
1205 "format" : "pve-configid",
1206 "optional" : 1,
1207 "type" : "string"
1208 },
1209 "name" : {
1210 "description" : "The name of the endpoint.",
1211 "format" : "pve-configid",
1212 "type" : "string"
1213 },
1214 "server" : {
1215 "description" : "Server URL",
1216 "type" : "string"
1217 }
1218 },
1219 "type" : "object"
1220 }
1221 },
1222 "PUT" : {
1223 "allowtoken" : 1,
1224 "description" : "Update existing gotify endpoint",
1225 "method" : "PUT",
1226 "name" : "update_gotify_endpoint",
1227 "parameters" : {
1228 "additionalProperties" : 0,
1229 "properties" : {
1230 "comment" : {
1231 "description" : "Comment",
1232 "optional" : 1,
1233 "type" : "string",
1234 "typetext" : "<string>"
1235 },
1236 "delete" : {
1237 "description" : "A list of settings you want to delete.",
1238 "items" : {
1239 "format" : "pve-configid",
1240 "type" : "string"
1241 },
1242 "optional" : 1,
1243 "type" : "array",
1244 "typetext" : "<array>"
1245 },
1246 "digest" : {
1247 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
1248 "maxLength" : 64,
1249 "optional" : 1,
1250 "type" : "string",
1251 "typetext" : "<string>"
1252 },
1253 "filter" : {
1254 "description" : "Name of the filter that should be applied.",
1255 "format" : "pve-configid",
1256 "optional" : 1,
1257 "type" : "string",
1258 "typetext" : "<string>"
1259 },
1260 "name" : {
1261 "description" : "The name of the endpoint.",
1262 "format" : "pve-configid",
1263 "type" : "string",
1264 "typetext" : "<string>"
1265 },
1266 "server" : {
1267 "description" : "Server URL",
1268 "optional" : 1,
1269 "type" : "string",
1270 "typetext" : "<string>"
1271 },
1272 "token" : {
1273 "description" : "Secret token",
1274 "optional" : 1,
1275 "type" : "string",
1276 "typetext" : "<string>"
1277 }
1278 }
1279 },
1280 "permissions" : {
1281 "check" : [
1282 "perm",
1283 "/mapping/notification/{name}",
1284 [
1285 "Mapping.Modify"
1286 ]
1287 ]
1288 },
1289 "protected" : 1,
1290 "returns" : {
1291 "type" : "null"
1292 }
1293 }
1294 },
1295 "leaf" : 1,
1296 "path" : "/cluster/notifications/endpoints/gotify/{name}",
1297 "text" : "{name}"
1298 }
1299 ],
1300 "info" : {
1301 "GET" : {
1302 "allowtoken" : 1,
1303 "description" : "Returns a list of all gotify endpoints",
1304 "method" : "GET",
1305 "name" : "get_gotify_endpoints",
1306 "parameters" : {
1307 "additionalProperties" : 0
1308 },
1309 "permissions" : {
1310 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/notification/<name>'.",
1311 "user" : "all"
1312 },
1313 "protected" : 1,
1314 "returns" : {
1315 "items" : {
1316 "properties" : {
1317 "comment" : {
1318 "description" : "Comment",
1319 "optional" : 1,
1320 "type" : "string"
1321 },
1322 "filter" : {
1323 "description" : "Name of the filter that should be applied.",
1324 "format" : "pve-configid",
1325 "optional" : 1,
1326 "type" : "string"
1327 },
1328 "name" : {
1329 "description" : "The name of the endpoint.",
1330 "format" : "pve-configid",
1331 "type" : "string"
1332 },
1333 "server" : {
1334 "description" : "Server URL",
1335 "type" : "string"
1336 }
1337 },
1338 "type" : "object"
1339 },
1340 "links" : [
1341 {
1342 "href" : "{name}",
1343 "rel" : "child"
1344 }
1345 ],
1346 "type" : "array"
1347 }
1348 },
1349 "POST" : {
1350 "allowtoken" : 1,
1351 "description" : "Create a new gotify endpoint",
1352 "method" : "POST",
1353 "name" : "create_gotify_endpoint",
1354 "parameters" : {
1355 "additionalProperties" : 0,
1356 "properties" : {
1357 "comment" : {
1358 "description" : "Comment",
1359 "optional" : 1,
1360 "type" : "string",
1361 "typetext" : "<string>"
1362 },
1363 "filter" : {
1364 "description" : "Name of the filter that should be applied.",
1365 "format" : "pve-configid",
1366 "optional" : 1,
1367 "type" : "string",
1368 "typetext" : "<string>"
1369 },
1370 "name" : {
1371 "description" : "The name of the endpoint.",
1372 "format" : "pve-configid",
1373 "type" : "string",
1374 "typetext" : "<string>"
1375 },
1376 "server" : {
1377 "description" : "Server URL",
1378 "type" : "string",
1379 "typetext" : "<string>"
1380 },
1381 "token" : {
1382 "description" : "Secret token",
1383 "type" : "string",
1384 "typetext" : "<string>"
1385 }
1386 }
1387 },
1388 "permissions" : {
1389 "check" : [
1390 "perm",
1391 "/mapping/notification",
1392 [
1393 "Mapping.Modify"
1394 ]
1395 ]
1396 },
1397 "protected" : 1,
1398 "returns" : {
1399 "type" : "null"
1400 }
1401 }
1402 },
1403 "leaf" : 0,
1404 "path" : "/cluster/notifications/endpoints/gotify",
1405 "text" : "gotify"
1406 }
1407 ],
1408 "info" : {
1409 "GET" : {
1410 "allowtoken" : 1,
1411 "description" : "Index for all available endpoint types.",
1412 "method" : "GET",
1413 "name" : "endpoints_index",
1414 "parameters" : {
1415 "additionalProperties" : 0
1416 },
1417 "permissions" : {
1418 "user" : "all"
1419 },
1420 "returns" : {
1421 "items" : {
1422 "properties" : {},
1423 "type" : "object"
1424 },
1425 "links" : [
1426 {
1427 "href" : "{name}",
1428 "rel" : "child"
1429 }
1430 ],
1431 "type" : "array"
1432 }
1433 }
1434 },
1435 "leaf" : 0,
1436 "path" : "/cluster/notifications/endpoints",
1437 "text" : "endpoints"
1438 },
1439 {
1440 "children" : [
1441 {
1442 "children" : [
1443 {
1444 "info" : {
1445 "POST" : {
1446 "allowtoken" : 1,
1447 "description" : "Send a test notification to a provided target.",
1448 "method" : "POST",
1449 "name" : "test_target",
1450 "parameters" : {
1451 "additionalProperties" : 0,
1452 "properties" : {
1453 "name" : {
1454 "description" : "Name of the target.",
1455 "format" : "pve-configid",
1456 "type" : "string",
1457 "typetext" : "<string>"
1458 }
1459 }
1460 },
1461 "permissions" : {
1462 "description" : "The user requires 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/notification/<name>'. The special 'mail-to-root' target can be accessed by all users.",
1463 "user" : "all"
1464 },
1465 "protected" : 1,
1466 "returns" : {
1467 "type" : "null"
1468 }
1469 }
1470 },
1471 "leaf" : 1,
1472 "path" : "/cluster/notifications/targets/{name}/test",
1473 "text" : "test"
1474 }
1475 ],
1476 "leaf" : 0,
1477 "path" : "/cluster/notifications/targets/{name}",
1478 "text" : "{name}"
1479 }
1480 ],
1481 "info" : {
1482 "GET" : {
1483 "allowtoken" : 1,
1484 "description" : "Returns a list of all entities that can be used as notification targets (endpoints and groups).",
1485 "method" : "GET",
1486 "name" : "get_all_targets",
1487 "parameters" : {
1488 "additionalProperties" : 0
1489 },
1490 "permissions" : {
1491 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/notification/<name>'. The special 'mail-to-root' target is available to all users.",
1492 "user" : "all"
1493 },
1494 "protected" : 1,
1495 "returns" : {
1496 "items" : {
1497 "properties" : {
1498 "comment" : {
1499 "description" : "Comment",
1500 "optional" : 1,
1501 "type" : "string"
1502 },
1503 "name" : {
1504 "description" : "Name of the endpoint/group.",
1505 "format" : "pve-configid",
1506 "type" : "string"
1507 },
1508 "type" : {
1509 "description" : "Type of the endpoint or group.",
1510 "enum" : [
1511 "sendmail",
1512 "gotify",
1513 "group"
1514 ],
1515 "type" : "string"
1516 }
1517 },
1518 "type" : "object"
1519 },
1520 "links" : [
1521 {
1522 "href" : "{name}",
1523 "rel" : "child"
1524 }
1525 ],
1526 "type" : "array"
1527 }
1528 }
1529 },
1530 "leaf" : 0,
1531 "path" : "/cluster/notifications/targets",
1532 "text" : "targets"
1533 },
1534 {
1535 "children" : [
1536 {
1537 "info" : {
1538 "DELETE" : {
1539 "allowtoken" : 1,
1540 "description" : "Remove group",
1541 "method" : "DELETE",
1542 "name" : "delete_group",
1543 "parameters" : {
1544 "additionalProperties" : 0,
1545 "properties" : {
1546 "name" : {
1547 "format" : "pve-configid",
1548 "type" : "string",
1549 "typetext" : "<string>"
1550 }
1551 }
1552 },
1553 "permissions" : {
1554 "check" : [
1555 "perm",
1556 "/mapping/notification/{name}",
1557 [
1558 "Mapping.Modify"
1559 ]
1560 ]
1561 },
1562 "protected" : 1,
1563 "returns" : {
1564 "type" : "null"
1565 }
1566 },
1567 "GET" : {
1568 "allowtoken" : 1,
1569 "description" : "Return a specific group",
1570 "method" : "GET",
1571 "name" : "get_group",
1572 "parameters" : {
1573 "additionalProperties" : 0,
1574 "properties" : {
1575 "name" : {
1576 "format" : "pve-configid",
1577 "type" : "string",
1578 "typetext" : "<string>"
1579 }
1580 }
1581 },
1582 "permissions" : {
1583 "check" : [
1584 "or",
1585 [
1586 "perm",
1587 "/mapping/notification/{name}",
1588 [
1589 "Mapping.Modify"
1590 ]
1591 ],
1592 [
1593 "perm",
1594 "/mapping/notification/{name}",
1595 [
1596 "Mapping.Audit"
1597 ]
1598 ]
1599 ]
1600 },
1601 "protected" : 1,
1602 "returns" : {
1603 "properties" : {
1604 "comment" : {
1605 "description" : "Comment",
1606 "optional" : 1,
1607 "type" : "string"
1608 },
1609 "digest" : {
1610 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
1611 "maxLength" : 64,
1612 "optional" : 1,
1613 "type" : "string"
1614 },
1615 "endpoint" : {
1616 "description" : "List of included endpoints",
1617 "items" : {
1618 "format" : "pve-configid",
1619 "type" : "string"
1620 },
1621 "type" : "array"
1622 },
1623 "filter" : {
1624 "description" : "Name of the filter that should be applied.",
1625 "format" : "pve-configid",
1626 "optional" : 1,
1627 "type" : "string"
1628 },
1629 "name" : {
1630 "description" : "Name of the group.",
1631 "format" : "pve-configid",
1632 "type" : "string"
1633 }
1634 },
1635 "type" : "object"
1636 }
1637 },
1638 "PUT" : {
1639 "allowtoken" : 1,
1640 "description" : "Update existing group",
1641 "method" : "PUT",
1642 "name" : "update_group",
1643 "parameters" : {
1644 "additionalProperties" : 0,
1645 "properties" : {
1646 "comment" : {
1647 "description" : "Comment",
1648 "optional" : 1,
1649 "type" : "string",
1650 "typetext" : "<string>"
1651 },
1652 "delete" : {
1653 "description" : "A list of settings you want to delete.",
1654 "items" : {
1655 "format" : "pve-configid",
1656 "type" : "string"
1657 },
1658 "optional" : 1,
1659 "type" : "array",
1660 "typetext" : "<array>"
1661 },
1662 "digest" : {
1663 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
1664 "maxLength" : 64,
1665 "optional" : 1,
1666 "type" : "string",
1667 "typetext" : "<string>"
1668 },
1669 "endpoint" : {
1670 "description" : "List of included endpoints",
1671 "items" : {
1672 "format" : "pve-configid",
1673 "type" : "string"
1674 },
1675 "optional" : 1,
1676 "type" : "array",
1677 "typetext" : "<array>"
1678 },
1679 "filter" : {
1680 "description" : "Name of the filter that should be applied.",
1681 "format" : "pve-configid",
1682 "optional" : 1,
1683 "type" : "string",
1684 "typetext" : "<string>"
1685 },
1686 "name" : {
1687 "description" : "Name of the group.",
1688 "format" : "pve-configid",
1689 "type" : "string",
1690 "typetext" : "<string>"
1691 }
1692 }
1693 },
1694 "permissions" : {
1695 "check" : [
1696 "perm",
1697 "/mapping/notification/{name}",
1698 [
1699 "Mapping.Modify"
1700 ]
1701 ]
1702 },
1703 "protected" : 1,
1704 "returns" : {
1705 "type" : "null"
1706 }
1707 }
1708 },
1709 "leaf" : 1,
1710 "path" : "/cluster/notifications/groups/{name}",
1711 "text" : "{name}"
1712 }
1713 ],
1714 "info" : {
1715 "GET" : {
1716 "allowtoken" : 1,
1717 "description" : "Returns a list of all groups",
1718 "method" : "GET",
1719 "name" : "get_groups",
1720 "parameters" : {
1721 "additionalProperties" : 0
1722 },
1723 "permissions" : {
1724 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/notification/<name>'.",
1725 "user" : "all"
1726 },
1727 "protected" : 1,
1728 "returns" : {
1729 "items" : {
1730 "properties" : {
1731 "comment" : {
1732 "description" : "Comment",
1733 "optional" : 1,
1734 "type" : "string"
1735 },
1736 "endpoint" : {
1737 "description" : "List of included endpoints",
1738 "items" : {
1739 "format" : "pve-configid",
1740 "type" : "string"
1741 },
1742 "type" : "array"
1743 },
1744 "filter" : {
1745 "description" : "Name of the filter that should be applied.",
1746 "format" : "pve-configid",
1747 "optional" : 1,
1748 "type" : "string"
1749 },
1750 "name" : {
1751 "description" : "Name of the group.",
1752 "format" : "pve-configid",
1753 "type" : "string"
1754 }
1755 },
1756 "type" : "object"
1757 },
1758 "links" : [
1759 {
1760 "href" : "{name}",
1761 "rel" : "child"
1762 }
1763 ],
1764 "type" : "array"
5d9c884c
DM
1765 }
1766 },
82551b2b
TL
1767 "POST" : {
1768 "allowtoken" : 1,
1769 "description" : "Create a new group",
1770 "method" : "POST",
1771 "name" : "create_group",
1772 "parameters" : {
1773 "additionalProperties" : 0,
1774 "properties" : {
1775 "comment" : {
1776 "description" : "Comment",
1777 "optional" : 1,
1778 "type" : "string",
1779 "typetext" : "<string>"
1780 },
1781 "endpoint" : {
1782 "description" : "List of included endpoints",
1783 "items" : {
1784 "format" : "pve-configid",
1785 "type" : "string"
1786 },
1787 "type" : "array",
1788 "typetext" : "<array>"
1789 },
1790 "filter" : {
1791 "description" : "Name of the filter that should be applied.",
1792 "format" : "pve-configid",
1793 "optional" : 1,
1794 "type" : "string",
1795 "typetext" : "<string>"
1796 },
1797 "name" : {
1798 "description" : "Name of the group.",
1799 "format" : "pve-configid",
1800 "type" : "string",
1801 "typetext" : "<string>"
1802 }
1803 }
1804 },
1805 "permissions" : {
1806 "check" : [
1807 "perm",
1808 "/mapping/notification",
1809 [
1810 "Mapping.Modify"
1811 ]
1812 ]
1813 },
1814 "protected" : 1,
1815 "returns" : {
1816 "type" : "null"
1817 }
1818 }
5d9c884c 1819 },
82551b2b
TL
1820 "leaf" : 0,
1821 "path" : "/cluster/notifications/groups",
1822 "text" : "groups"
1823 },
4772952b
TL
1824 {
1825 "children" : [
1826 {
1827 "info" : {
1828 "DELETE" : {
1829 "allowtoken" : 1,
82551b2b 1830 "description" : "Remove filter",
4772952b 1831 "method" : "DELETE",
82551b2b 1832 "name" : "delete_filter",
4772952b
TL
1833 "parameters" : {
1834 "additionalProperties" : 0,
1835 "properties" : {
82551b2b 1836 "name" : {
4772952b
TL
1837 "format" : "pve-configid",
1838 "type" : "string",
1839 "typetext" : "<string>"
1840 }
1841 }
1842 },
1843 "permissions" : {
1844 "check" : [
1845 "perm",
82551b2b 1846 "/mapping/notification/{name}",
4772952b 1847 [
82551b2b 1848 "Mapping.Modify"
4772952b
TL
1849 ]
1850 ]
1851 },
1852 "protected" : 1,
1853 "returns" : {
1854 "type" : "null"
1855 }
1856 },
1857 "GET" : {
1858 "allowtoken" : 1,
82551b2b 1859 "description" : "Return a specific filter",
4772952b 1860 "method" : "GET",
82551b2b 1861 "name" : "get_filter",
4772952b
TL
1862 "parameters" : {
1863 "additionalProperties" : 0,
1864 "properties" : {
82551b2b 1865 "name" : {
4772952b
TL
1866 "format" : "pve-configid",
1867 "type" : "string",
1868 "typetext" : "<string>"
1869 }
1870 }
1871 },
1872 "permissions" : {
1873 "check" : [
82551b2b 1874 "or",
4772952b 1875 [
82551b2b
TL
1876 "perm",
1877 "/mapping/notification/{name}",
1878 [
1879 "Mapping.Modify"
1880 ]
1881 ],
1882 [
1883 "perm",
1884 "/mapping/notification/{name}",
1885 [
1886 "Mapping.Audit"
1887 ]
4772952b
TL
1888 ]
1889 ]
1890 },
82551b2b 1891 "protected" : 1,
4772952b 1892 "returns" : {
4772952b 1893 "properties" : {
82551b2b
TL
1894 "comment" : {
1895 "description" : "Comment",
d2656385 1896 "optional" : 1,
82551b2b 1897 "type" : "string"
d2656385 1898 },
82551b2b
TL
1899 "digest" : {
1900 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
1901 "maxLength" : 64,
d2656385 1902 "optional" : 1,
82551b2b 1903 "type" : "string"
d2656385 1904 },
82551b2b
TL
1905 "invert-match" : {
1906 "description" : "Invert match of the whole filter",
4772952b 1907 "optional" : 1,
82551b2b 1908 "type" : "boolean"
4772952b 1909 },
82551b2b
TL
1910 "min-severity" : {
1911 "description" : "Minimum severity to match",
d2656385 1912 "enum" : [
82551b2b
TL
1913 "info",
1914 "notice",
1915 "warning",
1916 "error"
d2656385
TL
1917 ],
1918 "optional" : 1,
1919 "type" : "string"
1920 },
82551b2b
TL
1921 "mode" : {
1922 "default" : "and",
1923 "description" : "Choose between 'and' and 'or' for when multiple properties are specified",
4772952b 1924 "enum" : [
82551b2b
TL
1925 "and",
1926 "or"
4772952b
TL
1927 ],
1928 "optional" : 1,
1929 "type" : "string"
1930 },
82551b2b
TL
1931 "name" : {
1932 "description" : "Name of the endpoint.",
4772952b
TL
1933 "format" : "pve-configid",
1934 "type" : "string"
1935 }
1936 },
1937 "type" : "object"
4772952b
TL
1938 }
1939 },
1940 "PUT" : {
1941 "allowtoken" : 1,
82551b2b 1942 "description" : "Update existing filter",
4772952b 1943 "method" : "PUT",
82551b2b 1944 "name" : "update_filter",
4772952b
TL
1945 "parameters" : {
1946 "additionalProperties" : 0,
1947 "properties" : {
82551b2b
TL
1948 "comment" : {
1949 "description" : "Comment",
d2656385
TL
1950 "optional" : 1,
1951 "type" : "string",
1952 "typetext" : "<string>"
1953 },
4772952b
TL
1954 "delete" : {
1955 "description" : "A list of settings you want to delete.",
82551b2b
TL
1956 "items" : {
1957 "format" : "pve-configid",
1958 "type" : "string"
1959 },
4772952b 1960 "optional" : 1,
82551b2b
TL
1961 "type" : "array",
1962 "typetext" : "<array>"
4772952b
TL
1963 },
1964 "digest" : {
82551b2b
TL
1965 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
1966 "maxLength" : 64,
4772952b
TL
1967 "optional" : 1,
1968 "type" : "string",
1969 "typetext" : "<string>"
1970 },
82551b2b
TL
1971 "invert-match" : {
1972 "description" : "Invert match of the whole filter",
4772952b
TL
1973 "optional" : 1,
1974 "type" : "boolean",
1975 "typetext" : "<boolean>"
1976 },
82551b2b
TL
1977 "min-severity" : {
1978 "description" : "Minimum severity to match",
d2656385 1979 "enum" : [
82551b2b
TL
1980 "info",
1981 "notice",
1982 "warning",
1983 "error"
d2656385
TL
1984 ],
1985 "optional" : 1,
1986 "type" : "string"
1987 },
82551b2b
TL
1988 "mode" : {
1989 "default" : "and",
1990 "description" : "Choose between 'and' and 'or' for when multiple properties are specified",
4772952b 1991 "enum" : [
82551b2b
TL
1992 "and",
1993 "or"
4772952b
TL
1994 ],
1995 "optional" : 1,
1996 "type" : "string"
1997 },
82551b2b
TL
1998 "name" : {
1999 "description" : "Name of the endpoint.",
2000 "format" : "pve-configid",
d2656385
TL
2001 "type" : "string",
2002 "typetext" : "<string>"
4772952b 2003 }
82551b2b 2004 }
4772952b
TL
2005 },
2006 "permissions" : {
2007 "check" : [
2008 "perm",
82551b2b 2009 "/mapping/notification/{name}",
4772952b 2010 [
82551b2b 2011 "Mapping.Modify"
4772952b
TL
2012 ]
2013 ]
2014 },
2015 "protected" : 1,
2016 "returns" : {
2017 "type" : "null"
2018 }
2019 }
2020 },
2021 "leaf" : 1,
82551b2b
TL
2022 "path" : "/cluster/notifications/filters/{name}",
2023 "text" : "{name}"
4772952b
TL
2024 }
2025 ],
2026 "info" : {
2027 "GET" : {
2028 "allowtoken" : 1,
82551b2b 2029 "description" : "Returns a list of all filters",
4772952b 2030 "method" : "GET",
82551b2b 2031 "name" : "get_filters",
4772952b
TL
2032 "parameters" : {
2033 "additionalProperties" : 0
2034 },
2035 "permissions" : {
82551b2b
TL
2036 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/notification/<name>'.",
2037 "user" : "all"
4772952b 2038 },
82551b2b 2039 "protected" : 1,
4772952b
TL
2040 "returns" : {
2041 "items" : {
2042 "properties" : {
82551b2b
TL
2043 "comment" : {
2044 "description" : "Comment",
2045 "optional" : 1,
2046 "type" : "string"
2047 },
2048 "invert-match" : {
2049 "description" : "Invert match of the whole filter",
2050 "optional" : 1,
4772952b
TL
2051 "type" : "boolean"
2052 },
82551b2b
TL
2053 "min-severity" : {
2054 "description" : "Minimum severity to match",
2055 "enum" : [
2056 "info",
2057 "notice",
2058 "warning",
2059 "error"
2060 ],
2061 "optional" : 1,
4772952b
TL
2062 "type" : "string"
2063 },
82551b2b
TL
2064 "mode" : {
2065 "default" : "and",
2066 "description" : "Choose between 'and' and 'or' for when multiple properties are specified",
2067 "enum" : [
2068 "and",
2069 "or"
2070 ],
2071 "optional" : 1,
4772952b
TL
2072 "type" : "string"
2073 },
82551b2b
TL
2074 "name" : {
2075 "description" : "Name of the endpoint.",
2076 "format" : "pve-configid",
4772952b
TL
2077 "type" : "string"
2078 }
2079 },
2080 "type" : "object"
2081 },
2082 "links" : [
2083 {
82551b2b 2084 "href" : "{name}",
4772952b
TL
2085 "rel" : "child"
2086 }
2087 ],
2088 "type" : "array"
2089 }
82551b2b
TL
2090 },
2091 "POST" : {
2092 "allowtoken" : 1,
2093 "description" : "Create a new filter",
2094 "method" : "POST",
2095 "name" : "create_filter",
2096 "parameters" : {
2097 "additionalProperties" : 0,
2098 "properties" : {
2099 "comment" : {
2100 "description" : "Comment",
2101 "optional" : 1,
2102 "type" : "string",
2103 "typetext" : "<string>"
2104 },
2105 "invert-match" : {
2106 "description" : "Invert match of the whole filter",
2107 "optional" : 1,
2108 "type" : "boolean",
2109 "typetext" : "<boolean>"
2110 },
2111 "min-severity" : {
2112 "description" : "Minimum severity to match",
2113 "enum" : [
2114 "info",
2115 "notice",
2116 "warning",
2117 "error"
2118 ],
2119 "optional" : 1,
2120 "type" : "string"
2121 },
2122 "mode" : {
2123 "default" : "and",
2124 "description" : "Choose between 'and' and 'or' for when multiple properties are specified",
2125 "enum" : [
2126 "and",
2127 "or"
2128 ],
2129 "optional" : 1,
2130 "type" : "string"
2131 },
2132 "name" : {
2133 "description" : "Name of the endpoint.",
2134 "format" : "pve-configid",
2135 "type" : "string",
2136 "typetext" : "<string>"
2137 }
2138 }
2139 },
2140 "permissions" : {
2141 "check" : [
2142 "perm",
2143 "/mapping/notification",
2144 [
2145 "Mapping.Modify"
2146 ]
2147 ]
2148 },
2149 "protected" : 1,
2150 "returns" : {
2151 "type" : "null"
2152 }
4772952b
TL
2153 }
2154 },
2155 "leaf" : 0,
82551b2b
TL
2156 "path" : "/cluster/notifications/filters",
2157 "text" : "filters"
4772952b
TL
2158 }
2159 ],
2160 "info" : {
2161 "GET" : {
2162 "allowtoken" : 1,
82551b2b 2163 "description" : "Index for notification-related API endpoints.",
4772952b
TL
2164 "method" : "GET",
2165 "name" : "index",
2166 "parameters" : {
2167 "additionalProperties" : 0
2168 },
2169 "permissions" : {
2170 "user" : "all"
2171 },
2172 "returns" : {
2173 "items" : {
2174 "properties" : {},
2175 "type" : "object"
2176 },
2177 "links" : [
2178 {
2179 "href" : "{name}",
2180 "rel" : "child"
2181 }
2182 ],
2183 "type" : "array"
2184 }
2185 }
2186 },
2187 "leaf" : 0,
82551b2b
TL
2188 "path" : "/cluster/notifications",
2189 "text" : "notifications"
4772952b 2190 },
32d876b5
DM
2191 {
2192 "children" : [
c5aa7e14
TL
2193 {
2194 "info" : {
2195 "GET" : {
2196 "allowtoken" : 1,
2197 "description" : "Return the version of the cluster join API available on this node.",
2198 "method" : "GET",
2199 "name" : "join_api_version",
2200 "parameters" : {
2201 "additionalProperties" : 0
2202 },
2203 "permissions" : {
2204 "check" : [
2205 "perm",
2206 "/",
2207 [
2208 "Sys.Audit"
2209 ]
2210 ]
2211 },
2212 "returns" : {
2213 "description" : "Cluster Join API version, currently 1",
2214 "minimum" : 0,
2215 "type" : "integer"
2216 }
2217 }
2218 },
2219 "leaf" : 1,
2220 "path" : "/cluster/config/apiversion",
2221 "text" : "apiversion"
2222 },
32d876b5 2223 {
27a7acb2
DM
2224 "children" : [
2225 {
2226 "info" : {
2227 "DELETE" : {
e9cd3bd4 2228 "allowtoken" : 1,
27a7acb2
DM
2229 "description" : "Removes a node from the cluster configuration.",
2230 "method" : "DELETE",
2231 "name" : "delnode",
2232 "parameters" : {
2233 "additionalProperties" : 0,
2234 "properties" : {
2235 "node" : {
2236 "description" : "The cluster node name.",
2237 "format" : "pve-node",
2238 "type" : "string",
2239 "typetext" : "<string>"
2240 }
2241 }
2242 },
2243 "protected" : 1,
2244 "returns" : {
2245 "type" : "null"
2246 }
2247 },
2248 "POST" : {
e9cd3bd4 2249 "allowtoken" : 1,
e2d681b3 2250 "description" : "Adds a node to the cluster configuration. This call is for internal use.",
27a7acb2
DM
2251 "method" : "POST",
2252 "name" : "addnode",
2253 "parameters" : {
2254 "additionalProperties" : 0,
2255 "properties" : {
c5aa7e14
TL
2256 "apiversion" : {
2257 "description" : "The JOIN_API_VERSION of the new node.",
2258 "optional" : 1,
2259 "type" : "integer",
2260 "typetext" : "<integer>"
2261 },
27a7acb2
DM
2262 "force" : {
2263 "description" : "Do not throw error if node already exists.",
2264 "optional" : 1,
2265 "type" : "boolean",
2266 "typetext" : "<boolean>"
2267 },
1e3f8156 2268 "link[n]" : {
c5aa7e14 2269 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
2270 "format" : {
2271 "address" : {
2272 "default_key" : 1,
2273 "description" : "Hostname (or IP) of this corosync link address.",
2274 "format" : "address",
2275 "format_description" : "IP",
2276 "type" : "string"
2277 },
2278 "priority" : {
2279 "default" : 0,
c5aa7e14 2280 "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
2281 "maximum" : 255,
2282 "minimum" : 0,
2283 "optional" : 1,
2284 "type" : "integer"
2285 }
2286 },
2287 "optional" : 1,
2288 "type" : "string",
2289 "typetext" : "[address=]<IP> [,priority=<integer>]"
2290 },
c5aa7e14
TL
2291 "new_node_ip" : {
2292 "description" : "IP Address of node to add. Used as fallback if no links are given.",
2293 "format" : "ip",
2294 "optional" : 1,
2295 "type" : "string",
2296 "typetext" : "<string>"
2297 },
27a7acb2
DM
2298 "node" : {
2299 "description" : "The cluster node name.",
2300 "format" : "pve-node",
2301 "type" : "string",
2302 "typetext" : "<string>"
2303 },
2304 "nodeid" : {
2305 "description" : "Node id for this node.",
2306 "minimum" : 1,
2307 "optional" : 1,
2308 "type" : "integer",
2309 "typetext" : "<integer> (1 - N)"
2310 },
27a7acb2
DM
2311 "votes" : {
2312 "description" : "Number of votes for this node",
2313 "minimum" : 0,
2314 "optional" : 1,
2315 "type" : "integer",
2316 "typetext" : "<integer> (0 - N)"
2317 }
2318 }
2319 },
2320 "protected" : 1,
2321 "returns" : {
2322 "properties" : {
2323 "corosync_authkey" : {
2324 "type" : "string"
2325 },
2326 "corosync_conf" : {
2327 "type" : "string"
c5aa7e14
TL
2328 },
2329 "warnings" : {
2330 "items" : {
2331 "type" : "string"
2332 },
2333 "type" : "array"
27a7acb2
DM
2334 }
2335 },
2336 "type" : "object"
2337 }
2338 }
2339 },
2340 "leaf" : 1,
2341 "path" : "/cluster/config/nodes/{node}",
2342 "text" : "{node}"
2343 }
2344 ],
32d876b5
DM
2345 "info" : {
2346 "GET" : {
e9cd3bd4 2347 "allowtoken" : 1,
32d876b5
DM
2348 "description" : "Corosync node list.",
2349 "method" : "GET",
2350 "name" : "nodes",
2351 "parameters" : {
2352 "additionalProperties" : 0
2353 },
5d9c884c
DM
2354 "permissions" : {
2355 "check" : [
2356 "perm",
2357 "/",
2358 [
2359 "Sys.Audit"
2360 ]
2361 ]
2362 },
32d876b5
DM
2363 "returns" : {
2364 "items" : {
2365 "properties" : {
2366 "node" : {
2367 "type" : "string"
2368 }
2369 },
2370 "type" : "object"
2371 },
2372 "links" : [
2373 {
2374 "href" : "{node}",
2375 "rel" : "child"
2376 }
2377 ],
2378 "type" : "array"
2379 }
2380 }
2381 },
27a7acb2 2382 "leaf" : 0,
32d876b5
DM
2383 "path" : "/cluster/config/nodes",
2384 "text" : "nodes"
2385 },
27a7acb2
DM
2386 {
2387 "info" : {
2388 "GET" : {
e9cd3bd4 2389 "allowtoken" : 1,
27a7acb2
DM
2390 "description" : "Get information needed to join this cluster over the connected node.",
2391 "method" : "GET",
2392 "name" : "join_info",
2393 "parameters" : {
2394 "additionalProperties" : 0,
2395 "properties" : {
2396 "node" : {
2397 "default" : "current connected node",
2398 "description" : "The node for which the joinee gets the nodeinfo. ",
2399 "format" : "pve-node",
2400 "optional" : 1,
2401 "type" : "string",
2402 "typetext" : "<string>"
2403 }
2404 }
2405 },
a9a8e3d1
DM
2406 "permissions" : {
2407 "check" : [
2408 "perm",
2409 "/",
2410 [
2411 "Sys.Audit"
2412 ]
2413 ]
2414 },
27a7acb2
DM
2415 "returns" : {
2416 "additionalProperties" : 0,
2417 "properties" : {
2418 "config_digest" : {
2419 "type" : "string"
2420 },
2421 "nodelist" : {
2422 "items" : {
2423 "additionalProperties" : 1,
2424 "properties" : {
2425 "name" : {
2426 "description" : "The cluster node name.",
2427 "format" : "pve-node",
2428 "type" : "string"
2429 },
2430 "nodeid" : {
2431 "description" : "Node id for this node.",
2432 "minimum" : 1,
2433 "optional" : 1,
2434 "type" : "integer"
2435 },
2436 "pve_addr" : {
2437 "format" : "ip",
2438 "type" : "string"
2439 },
2440 "pve_fp" : {
2441 "description" : "Certificate SHA 256 fingerprint.",
2442 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
2443 "type" : "string"
2444 },
2445 "quorum_votes" : {
2446 "minimum" : 0,
2447 "type" : "integer"
2448 },
2449 "ring0_addr" : {
c5aa7e14 2450 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
2451 "format" : {
2452 "address" : {
2453 "default_key" : 1,
2454 "description" : "Hostname (or IP) of this corosync link address.",
2455 "format" : "address",
2456 "format_description" : "IP",
2457 "type" : "string"
2458 },
2459 "priority" : {
2460 "default" : 0,
c5aa7e14 2461 "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
2462 "maximum" : 255,
2463 "minimum" : 0,
2464 "optional" : 1,
2465 "type" : "integer"
2466 }
2467 },
27a7acb2
DM
2468 "optional" : 1,
2469 "type" : "string"
2470 }
2471 },
2472 "type" : "object"
2473 },
2474 "type" : "array"
2475 },
2476 "preferred_node" : {
2477 "description" : "The cluster node name.",
2478 "format" : "pve-node",
2479 "type" : "string"
2480 },
2481 "totem" : {
2482 "type" : "object"
2483 }
2484 },
2485 "type" : "object"
2486 }
2487 },
2488 "POST" : {
e9cd3bd4 2489 "allowtoken" : 1,
c5aa7e14 2490 "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
2491 "method" : "POST",
2492 "name" : "join",
2493 "parameters" : {
2494 "additionalProperties" : 0,
2495 "properties" : {
2496 "fingerprint" : {
2497 "description" : "Certificate SHA 256 fingerprint.",
2498 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
2499 "type" : "string"
2500 },
2501 "force" : {
2502 "description" : "Do not throw error if node already exists.",
2503 "optional" : 1,
2504 "type" : "boolean",
2505 "typetext" : "<boolean>"
2506 },
2507 "hostname" : {
2508 "description" : "Hostname (or IP) of an existing cluster member.",
2509 "type" : "string",
2510 "typetext" : "<string>"
2511 },
1e3f8156 2512 "link[n]" : {
c5aa7e14 2513 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
2514 "format" : {
2515 "address" : {
2516 "default_key" : 1,
2517 "description" : "Hostname (or IP) of this corosync link address.",
2518 "format" : "address",
2519 "format_description" : "IP",
2520 "type" : "string"
2521 },
2522 "priority" : {
2523 "default" : 0,
c5aa7e14 2524 "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
2525 "maximum" : 255,
2526 "minimum" : 0,
2527 "optional" : 1,
2528 "type" : "integer"
2529 }
2530 },
2531 "optional" : 1,
2532 "type" : "string",
2533 "typetext" : "[address=]<IP> [,priority=<integer>]"
2534 },
27a7acb2
DM
2535 "nodeid" : {
2536 "description" : "Node id for this node.",
2537 "minimum" : 1,
2538 "optional" : 1,
2539 "type" : "integer",
2540 "typetext" : "<integer> (1 - N)"
2541 },
2542 "password" : {
2543 "description" : "Superuser (root) password of peer node.",
2544 "maxLength" : 128,
2545 "type" : "string",
2546 "typetext" : "<string>"
2547 },
27a7acb2
DM
2548 "votes" : {
2549 "description" : "Number of votes for this node",
2550 "minimum" : 0,
2551 "optional" : 1,
2552 "type" : "integer",
2553 "typetext" : "<integer> (0 - N)"
2554 }
2555 }
2556 },
2557 "protected" : 1,
2558 "returns" : {
2559 "type" : "string"
2560 }
2561 }
2562 },
2563 "leaf" : 1,
2564 "path" : "/cluster/config/join",
2565 "text" : "join"
2566 },
32d876b5
DM
2567 {
2568 "info" : {
2569 "GET" : {
e9cd3bd4 2570 "allowtoken" : 1,
32d876b5
DM
2571 "description" : "Get corosync totem protocol settings.",
2572 "method" : "GET",
2573 "name" : "totem",
2574 "parameters" : {
2575 "additionalProperties" : 0
2576 },
5d9c884c
DM
2577 "permissions" : {
2578 "check" : [
2579 "perm",
2580 "/",
2581 [
2582 "Sys.Audit"
2583 ]
2584 ]
2585 },
32d876b5 2586 "returns" : {
32d876b5
DM
2587 "type" : "object"
2588 }
2589 }
2590 },
2591 "leaf" : 1,
2592 "path" : "/cluster/config/totem",
2593 "text" : "totem"
9226ccbc
TL
2594 },
2595 {
2596 "info" : {
2597 "GET" : {
e9cd3bd4 2598 "allowtoken" : 1,
9226ccbc
TL
2599 "description" : "Get QDevice status",
2600 "method" : "GET",
2601 "name" : "status",
2602 "parameters" : {
2603 "additionalProperties" : 0
2604 },
2605 "permissions" : {
2606 "check" : [
2607 "perm",
2608 "/",
2609 [
2610 "Sys.Audit"
2611 ]
2612 ]
2613 },
de786b48 2614 "protected" : 1,
9226ccbc
TL
2615 "returns" : {
2616 "type" : "object"
2617 }
2618 }
2619 },
2620 "leaf" : 1,
2621 "path" : "/cluster/config/qdevice",
2622 "text" : "qdevice"
32d876b5
DM
2623 }
2624 ],
2625 "info" : {
2626 "GET" : {
e9cd3bd4 2627 "allowtoken" : 1,
32d876b5
DM
2628 "description" : "Directory index.",
2629 "method" : "GET",
2630 "name" : "index",
2631 "parameters" : {
2632 "additionalProperties" : 0
2633 },
5d9c884c
DM
2634 "permissions" : {
2635 "check" : [
2636 "perm",
2637 "/",
2638 [
2639 "Sys.Audit"
2640 ]
2641 ]
2642 },
32d876b5
DM
2643 "returns" : {
2644 "items" : {
2645 "properties" : {},
2646 "type" : "object"
2647 },
2648 "links" : [
2649 {
2650 "href" : "{name}",
2651 "rel" : "child"
2652 }
2653 ],
2654 "type" : "array"
2655 }
27a7acb2
DM
2656 },
2657 "POST" : {
e9cd3bd4 2658 "allowtoken" : 1,
c5aa7e14 2659 "description" : "Generate new cluster configuration. If no links given, default to local IP address as link0.",
27a7acb2
DM
2660 "method" : "POST",
2661 "name" : "create",
2662 "parameters" : {
2663 "additionalProperties" : 0,
2664 "properties" : {
27a7acb2
DM
2665 "clustername" : {
2666 "description" : "The name of the cluster.",
2667 "format" : "pve-node",
2668 "maxLength" : 15,
2669 "type" : "string",
2670 "typetext" : "<string>"
2671 },
1e3f8156 2672 "link[n]" : {
c5aa7e14 2673 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
2674 "format" : {
2675 "address" : {
2676 "default_key" : 1,
2677 "description" : "Hostname (or IP) of this corosync link address.",
2678 "format" : "address",
2679 "format_description" : "IP",
2680 "type" : "string"
2681 },
2682 "priority" : {
2683 "default" : 0,
c5aa7e14 2684 "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
2685 "maximum" : 255,
2686 "minimum" : 0,
2687 "optional" : 1,
2688 "type" : "integer"
2689 }
2690 },
2691 "optional" : 1,
2692 "type" : "string",
2693 "typetext" : "[address=]<IP> [,priority=<integer>]"
2694 },
27a7acb2
DM
2695 "nodeid" : {
2696 "description" : "Node id for this node.",
2697 "minimum" : 1,
2698 "optional" : 1,
2699 "type" : "integer",
2700 "typetext" : "<integer> (1 - N)"
2701 },
27a7acb2
DM
2702 "votes" : {
2703 "description" : "Number of votes for this node.",
2704 "minimum" : 1,
2705 "optional" : 1,
2706 "type" : "integer",
2707 "typetext" : "<integer> (1 - N)"
2708 }
2709 }
2710 },
2711 "protected" : 1,
2712 "returns" : {
2713 "type" : "string"
2714 }
32d876b5
DM
2715 }
2716 },
2717 "leaf" : 0,
2718 "path" : "/cluster/config",
2719 "text" : "config"
2720 },
56122987 2721 {
56122987
DM
2722 "children" : [
2723 {
56122987
DM
2724 "children" : [
2725 {
44660702
DM
2726 "children" : [
2727 {
2728 "info" : {
2729 "DELETE" : {
e9cd3bd4 2730 "allowtoken" : 1,
44660702
DM
2731 "description" : "Delete rule.",
2732 "method" : "DELETE",
2733 "name" : "delete_rule",
2734 "parameters" : {
2735 "additionalProperties" : 0,
2736 "properties" : {
2737 "digest" : {
82551b2b
TL
2738 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
2739 "maxLength" : 64,
44660702 2740 "optional" : 1,
013dc89f
DM
2741 "type" : "string",
2742 "typetext" : "<string>"
44660702
DM
2743 },
2744 "group" : {
2745 "description" : "Security Group name.",
4bd7df8b 2746 "maxLength" : 18,
44660702
DM
2747 "minLength" : 2,
2748 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2749 "type" : "string"
2750 },
2751 "pos" : {
2752 "description" : "Update rule at position <pos>.",
2753 "minimum" : 0,
2754 "optional" : 1,
4bd7df8b 2755 "type" : "integer",
013dc89f 2756 "typetext" : "<integer> (0 - N)"
44660702
DM
2757 }
2758 }
2759 },
2760 "permissions" : {
2761 "check" : [
2762 "perm",
2763 "/",
2764 [
2765 "Sys.Modify"
2766 ]
2767 ]
2768 },
2769 "protected" : 1,
2770 "proxyto" : null,
2771 "returns" : {
2772 "type" : "null"
7aacca6f
DM
2773 }
2774 },
44660702 2775 "GET" : {
e9cd3bd4 2776 "allowtoken" : 1,
44660702
DM
2777 "description" : "Get single rule data.",
2778 "method" : "GET",
2779 "name" : "get_rule",
2780 "parameters" : {
2781 "additionalProperties" : 0,
2782 "properties" : {
2783 "group" : {
2784 "description" : "Security Group name.",
4bd7df8b 2785 "maxLength" : 18,
44660702
DM
2786 "minLength" : 2,
2787 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2788 "type" : "string"
2789 },
2790 "pos" : {
2791 "description" : "Update rule at position <pos>.",
2792 "minimum" : 0,
2793 "optional" : 1,
4bd7df8b 2794 "type" : "integer",
013dc89f 2795 "typetext" : "<integer> (0 - N)"
44660702 2796 }
7aacca6f 2797 }
56122987 2798 },
44660702
DM
2799 "permissions" : {
2800 "check" : [
2801 "perm",
2802 "/",
2803 [
2804 "Sys.Audit"
2805 ]
2806 ]
2807 },
2808 "proxyto" : null,
2809 "returns" : {
2810 "properties" : {
e2d681b3
TL
2811 "action" : {
2812 "type" : "string"
2813 },
2814 "comment" : {
2815 "optional" : 1,
2816 "type" : "string"
2817 },
2818 "dest" : {
2819 "optional" : 1,
2820 "type" : "string"
2821 },
2822 "dport" : {
2823 "optional" : 1,
2824 "type" : "string"
2825 },
2826 "enable" : {
2827 "optional" : 1,
2828 "type" : "integer"
2829 },
4772952b
TL
2830 "icmp-type" : {
2831 "optional" : 1,
2832 "type" : "string"
2833 },
e2d681b3
TL
2834 "iface" : {
2835 "optional" : 1,
2836 "type" : "string"
2837 },
2838 "ipversion" : {
2839 "optional" : 1,
2840 "type" : "integer"
2841 },
95895385
TL
2842 "log" : {
2843 "description" : "Log level for firewall rule",
2844 "enum" : [
2845 "emerg",
2846 "alert",
2847 "crit",
2848 "err",
2849 "warning",
2850 "notice",
2851 "info",
2852 "debug",
2853 "nolog"
2854 ],
2855 "optional" : 1,
2856 "type" : "string"
2857 },
e2d681b3
TL
2858 "macro" : {
2859 "optional" : 1,
5f26e15b 2860 "type" : "string"
e2d681b3 2861 },
44660702
DM
2862 "pos" : {
2863 "type" : "integer"
e2d681b3
TL
2864 },
2865 "proto" : {
2866 "optional" : 1,
2867 "type" : "string"
2868 },
2869 "source" : {
2870 "optional" : 1,
2871 "type" : "string"
2872 },
2873 "sport" : {
2874 "optional" : 1,
2875 "type" : "string"
2876 },
2877 "type" : {
2878 "type" : "string"
44660702
DM
2879 }
2880 },
2881 "type" : "object"
56122987 2882 }
44660702 2883 },
7aacca6f 2884 "PUT" : {
e9cd3bd4 2885 "allowtoken" : 1,
44660702
DM
2886 "description" : "Modify rule data.",
2887 "method" : "PUT",
2888 "name" : "update_rule",
7aacca6f
DM
2889 "parameters" : {
2890 "additionalProperties" : 0,
2891 "properties" : {
44660702
DM
2892 "action" : {
2893 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
7aacca6f 2894 "maxLength" : 20,
44660702 2895 "minLength" : 2,
7aacca6f 2896 "optional" : 1,
44660702 2897 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
2898 "type" : "string"
2899 },
44660702 2900 "comment" : {
e94f0d56 2901 "description" : "Descriptive comment.",
7aacca6f 2902 "optional" : 1,
013dc89f
DM
2903 "type" : "string",
2904 "typetext" : "<string>"
7aacca6f 2905 },
44660702
DM
2906 "delete" : {
2907 "description" : "A list of settings you want to delete.",
2908 "format" : "pve-configid-list",
7aacca6f 2909 "optional" : 1,
013dc89f
DM
2910 "type" : "string",
2911 "typetext" : "<string>"
7aacca6f 2912 },
44660702
DM
2913 "dest" : {
2914 "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.",
2915 "format" : "pve-fw-addr-spec",
0695fdaf 2916 "maxLength" : 512,
7aacca6f 2917 "optional" : 1,
013dc89f
DM
2918 "type" : "string",
2919 "typetext" : "<string>"
7aacca6f
DM
2920 },
2921 "digest" : {
82551b2b
TL
2922 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
2923 "maxLength" : 64,
7aacca6f 2924 "optional" : 1,
013dc89f
DM
2925 "type" : "string",
2926 "typetext" : "<string>"
7aacca6f 2927 },
44660702
DM
2928 "dport" : {
2929 "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.",
2930 "format" : "pve-fw-dport-spec",
7aacca6f 2931 "optional" : 1,
013dc89f
DM
2932 "type" : "string",
2933 "typetext" : "<string>"
7aacca6f 2934 },
44660702 2935 "enable" : {
e94f0d56 2936 "description" : "Flag to enable/disable a rule.",
44660702 2937 "minimum" : 0,
7aacca6f 2938 "optional" : 1,
4bd7df8b 2939 "type" : "integer",
013dc89f 2940 "typetext" : "<integer> (0 - N)"
7aacca6f 2941 },
44660702
DM
2942 "group" : {
2943 "description" : "Security Group name.",
4bd7df8b 2944 "maxLength" : 18,
44660702
DM
2945 "minLength" : 2,
2946 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2947 "type" : "string"
2948 },
4772952b 2949 "icmp-type" : {
287a95cf 2950 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
2951 "format" : "pve-fw-icmp-type-spec",
2952 "optional" : 1,
2953 "type" : "string",
2954 "typetext" : "<string>"
2955 },
44660702
DM
2956 "iface" : {
2957 "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.",
2958 "format" : "pve-iface",
2959 "maxLength" : 20,
2960 "minLength" : 2,
7aacca6f 2961 "optional" : 1,
013dc89f
DM
2962 "type" : "string",
2963 "typetext" : "<string>"
7aacca6f 2964 },
95895385
TL
2965 "log" : {
2966 "description" : "Log level for firewall rule.",
2967 "enum" : [
2968 "emerg",
2969 "alert",
2970 "crit",
2971 "err",
2972 "warning",
2973 "notice",
2974 "info",
2975 "debug",
2976 "nolog"
2977 ],
2978 "optional" : 1,
2979 "type" : "string"
2980 },
44660702 2981 "macro" : {
e94f0d56 2982 "description" : "Use predefined standard macro.",
44660702
DM
2983 "maxLength" : 128,
2984 "optional" : 1,
013dc89f
DM
2985 "type" : "string",
2986 "typetext" : "<string>"
7aacca6f
DM
2987 },
2988 "moveto" : {
2989 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
44660702 2990 "minimum" : 0,
7aacca6f 2991 "optional" : 1,
4bd7df8b 2992 "type" : "integer",
013dc89f 2993 "typetext" : "<integer> (0 - N)"
7aacca6f 2994 },
44660702
DM
2995 "pos" : {
2996 "description" : "Update rule at position <pos>.",
2997 "minimum" : 0,
2998 "optional" : 1,
4bd7df8b 2999 "type" : "integer",
013dc89f 3000 "typetext" : "<integer> (0 - N)"
7aacca6f 3001 },
44660702
DM
3002 "proto" : {
3003 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
3004 "format" : "pve-fw-protocol-spec",
7aacca6f 3005 "optional" : 1,
013dc89f
DM
3006 "type" : "string",
3007 "typetext" : "<string>"
44660702
DM
3008 },
3009 "source" : {
3010 "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.",
3011 "format" : "pve-fw-addr-spec",
0695fdaf 3012 "maxLength" : 512,
44660702 3013 "optional" : 1,
013dc89f
DM
3014 "type" : "string",
3015 "typetext" : "<string>"
44660702
DM
3016 },
3017 "sport" : {
3018 "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.",
3019 "format" : "pve-fw-sport-spec",
3020 "optional" : 1,
013dc89f
DM
3021 "type" : "string",
3022 "typetext" : "<string>"
7aacca6f
DM
3023 },
3024 "type" : {
e94f0d56 3025 "description" : "Rule type.",
7aacca6f
DM
3026 "enum" : [
3027 "in",
3028 "out",
3029 "group"
3030 ],
3031 "optional" : 1,
3032 "type" : "string"
3033 }
3034 }
3035 },
7aacca6f
DM
3036 "permissions" : {
3037 "check" : [
3038 "perm",
3039 "/",
3040 [
3041 "Sys.Modify"
3042 ]
3043 ]
3044 },
44660702 3045 "protected" : 1,
7aacca6f
DM
3046 "proxyto" : null,
3047 "returns" : {
3048 "type" : "null"
3049 }
7aacca6f
DM
3050 }
3051 },
44660702 3052 "leaf" : 1,
7aacca6f 3053 "path" : "/cluster/firewall/groups/{group}/{pos}",
44660702 3054 "text" : "{pos}"
7aacca6f
DM
3055 }
3056 ],
44660702
DM
3057 "info" : {
3058 "DELETE" : {
e9cd3bd4 3059 "allowtoken" : 1,
44660702
DM
3060 "description" : "Delete security group.",
3061 "method" : "DELETE",
3062 "name" : "delete_security_group",
3063 "parameters" : {
3064 "additionalProperties" : 0,
3065 "properties" : {
3066 "group" : {
3067 "description" : "Security Group name.",
4bd7df8b 3068 "maxLength" : 18,
44660702
DM
3069 "minLength" : 2,
3070 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3071 "type" : "string"
3072 }
56122987 3073 }
7aacca6f 3074 },
44660702
DM
3075 "permissions" : {
3076 "check" : [
3077 "perm",
3078 "/",
3079 [
3080 "Sys.Modify"
3081 ]
7aacca6f 3082 ]
56122987 3083 },
44660702
DM
3084 "protected" : 1,
3085 "returns" : {
3086 "type" : "null"
56122987 3087 }
7aacca6f 3088 },
7aacca6f 3089 "GET" : {
e9cd3bd4 3090 "allowtoken" : 1,
44660702 3091 "description" : "List rules.",
7aacca6f 3092 "method" : "GET",
44660702
DM
3093 "name" : "get_rules",
3094 "parameters" : {
3095 "additionalProperties" : 0,
7aacca6f 3096 "properties" : {
44660702
DM
3097 "group" : {
3098 "description" : "Security Group name.",
4bd7df8b 3099 "maxLength" : 18,
44660702
DM
3100 "minLength" : 2,
3101 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3102 "type" : "string"
7aacca6f 3103 }
44660702 3104 }
7aacca6f
DM
3105 },
3106 "permissions" : {
3107 "check" : [
3108 "perm",
3109 "/",
3110 [
3111 "Sys.Audit"
3112 ]
3113 ]
3114 },
44660702
DM
3115 "proxyto" : null,
3116 "returns" : {
3117 "items" : {
3118 "properties" : {
3119 "pos" : {
3120 "type" : "integer"
3121 }
3122 },
3123 "type" : "object"
3124 },
3125 "links" : [
3126 {
3127 "href" : "{pos}",
3128 "rel" : "child"
3129 }
3130 ],
3131 "type" : "array"
3132 }
3133 },
3134 "POST" : {
e9cd3bd4 3135 "allowtoken" : 1,
44660702
DM
3136 "description" : "Create new rule.",
3137 "method" : "POST",
3138 "name" : "create_rule",
7aacca6f
DM
3139 "parameters" : {
3140 "additionalProperties" : 0,
3141 "properties" : {
44660702
DM
3142 "action" : {
3143 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
3144 "maxLength" : 20,
56122987 3145 "minLength" : 2,
44660702
DM
3146 "optional" : 0,
3147 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 3148 "type" : "string"
56122987 3149 },
44660702 3150 "comment" : {
e94f0d56 3151 "description" : "Descriptive comment.",
56122987 3152 "optional" : 1,
013dc89f
DM
3153 "type" : "string",
3154 "typetext" : "<string>"
56122987 3155 },
44660702
DM
3156 "dest" : {
3157 "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 3158 "format" : "pve-fw-addr-spec",
0695fdaf 3159 "maxLength" : 512,
56122987 3160 "optional" : 1,
013dc89f
DM
3161 "type" : "string",
3162 "typetext" : "<string>"
56122987 3163 },
44660702 3164 "digest" : {
82551b2b
TL
3165 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3166 "maxLength" : 64,
7aacca6f 3167 "optional" : 1,
013dc89f
DM
3168 "type" : "string",
3169 "typetext" : "<string>"
56122987 3170 },
44660702
DM
3171 "dport" : {
3172 "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.",
3173 "format" : "pve-fw-dport-spec",
56122987 3174 "optional" : 1,
013dc89f
DM
3175 "type" : "string",
3176 "typetext" : "<string>"
56122987 3177 },
7aacca6f 3178 "enable" : {
e94f0d56 3179 "description" : "Flag to enable/disable a rule.",
44660702 3180 "minimum" : 0,
7aacca6f 3181 "optional" : 1,
4bd7df8b 3182 "type" : "integer",
013dc89f 3183 "typetext" : "<integer> (0 - N)"
56122987 3184 },
44660702
DM
3185 "group" : {
3186 "description" : "Security Group name.",
4bd7df8b 3187 "maxLength" : 18,
44660702 3188 "minLength" : 2,
7aacca6f 3189 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
3190 "type" : "string"
3191 },
4772952b 3192 "icmp-type" : {
287a95cf 3193 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
3194 "format" : "pve-fw-icmp-type-spec",
3195 "optional" : 1,
3196 "type" : "string",
3197 "typetext" : "<string>"
3198 },
44660702
DM
3199 "iface" : {
3200 "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.",
3201 "format" : "pve-iface",
3202 "maxLength" : 20,
7aacca6f 3203 "minLength" : 2,
44660702 3204 "optional" : 1,
013dc89f
DM
3205 "type" : "string",
3206 "typetext" : "<string>"
56122987 3207 },
95895385
TL
3208 "log" : {
3209 "description" : "Log level for firewall rule.",
3210 "enum" : [
3211 "emerg",
3212 "alert",
3213 "crit",
3214 "err",
3215 "warning",
3216 "notice",
3217 "info",
3218 "debug",
3219 "nolog"
3220 ],
3221 "optional" : 1,
3222 "type" : "string"
3223 },
7aacca6f 3224 "macro" : {
e94f0d56 3225 "description" : "Use predefined standard macro.",
44660702 3226 "maxLength" : 128,
7aacca6f 3227 "optional" : 1,
013dc89f
DM
3228 "type" : "string",
3229 "typetext" : "<string>"
7aacca6f
DM
3230 },
3231 "pos" : {
3232 "description" : "Update rule at position <pos>.",
44660702 3233 "minimum" : 0,
56122987 3234 "optional" : 1,
4bd7df8b 3235 "type" : "integer",
013dc89f 3236 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
3237 },
3238 "proto" : {
3239 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
44660702 3240 "format" : "pve-fw-protocol-spec",
7aacca6f 3241 "optional" : 1,
013dc89f
DM
3242 "type" : "string",
3243 "typetext" : "<string>"
44660702
DM
3244 },
3245 "source" : {
3246 "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.",
3247 "format" : "pve-fw-addr-spec",
0695fdaf 3248 "maxLength" : 512,
44660702 3249 "optional" : 1,
013dc89f
DM
3250 "type" : "string",
3251 "typetext" : "<string>"
44660702
DM
3252 },
3253 "sport" : {
3254 "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.",
3255 "format" : "pve-fw-sport-spec",
3256 "optional" : 1,
013dc89f
DM
3257 "type" : "string",
3258 "typetext" : "<string>"
44660702
DM
3259 },
3260 "type" : {
e94f0d56 3261 "description" : "Rule type.",
44660702
DM
3262 "enum" : [
3263 "in",
3264 "out",
3265 "group"
3266 ],
3267 "optional" : 0,
3268 "type" : "string"
56122987 3269 }
44660702 3270 }
56122987 3271 },
56122987
DM
3272 "permissions" : {
3273 "check" : [
3274 "perm",
3275 "/",
3276 [
3277 "Sys.Modify"
3278 ]
3279 ]
3280 },
44660702
DM
3281 "protected" : 1,
3282 "proxyto" : null,
56122987
DM
3283 "returns" : {
3284 "type" : "null"
7aacca6f 3285 }
44660702
DM
3286 }
3287 },
3288 "leaf" : 0,
3289 "path" : "/cluster/firewall/groups/{group}",
3290 "text" : "{group}"
3291 }
3292 ],
3293 "info" : {
3294 "GET" : {
e9cd3bd4 3295 "allowtoken" : 1,
44660702
DM
3296 "description" : "List security groups.",
3297 "method" : "GET",
3298 "name" : "list_security_groups",
3299 "parameters" : {
3300 "additionalProperties" : 0
3301 },
3302 "permissions" : {
3303 "user" : "all"
3304 },
3305 "returns" : {
3306 "items" : {
3307 "properties" : {
3308 "comment" : {
3309 "optional" : 1,
3310 "type" : "string"
3311 },
3312 "digest" : {
82551b2b
TL
3313 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3314 "maxLength" : 64,
44660702
DM
3315 "optional" : 0,
3316 "type" : "string"
3317 },
3318 "group" : {
3319 "description" : "Security Group name.",
4bd7df8b 3320 "maxLength" : 18,
44660702
DM
3321 "minLength" : 2,
3322 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3323 "type" : "string"
3324 }
3325 },
3326 "type" : "object"
56122987 3327 },
44660702
DM
3328 "links" : [
3329 {
3330 "href" : "{group}",
3331 "rel" : "child"
3332 }
3333 ],
3334 "type" : "array"
3335 }
3336 },
3337 "POST" : {
e9cd3bd4 3338 "allowtoken" : 1,
44660702
DM
3339 "description" : "Create new security group.",
3340 "method" : "POST",
3341 "name" : "create_security_group",
3342 "parameters" : {
3343 "additionalProperties" : 0,
3344 "properties" : {
3345 "comment" : {
3346 "optional" : 1,
013dc89f
DM
3347 "type" : "string",
3348 "typetext" : "<string>"
44660702
DM
3349 },
3350 "digest" : {
82551b2b
TL
3351 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3352 "maxLength" : 64,
44660702 3353 "optional" : 1,
013dc89f
DM
3354 "type" : "string",
3355 "typetext" : "<string>"
44660702
DM
3356 },
3357 "group" : {
3358 "description" : "Security Group name.",
4bd7df8b 3359 "maxLength" : 18,
44660702
DM
3360 "minLength" : 2,
3361 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3362 "type" : "string"
3363 },
3364 "rename" : {
3365 "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 3366 "maxLength" : 18,
44660702
DM
3367 "minLength" : 2,
3368 "optional" : 1,
3369 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3370 "type" : "string"
3371 }
3372 }
3373 },
3374 "permissions" : {
3375 "check" : [
3376 "perm",
3377 "/",
3378 [
3379 "Sys.Modify"
3380 ]
3381 ]
3382 },
3383 "protected" : 1,
3384 "returns" : {
3385 "type" : "null"
3386 }
3387 }
3388 },
3389 "leaf" : 0,
3390 "path" : "/cluster/firewall/groups",
3391 "text" : "groups"
3392 },
3393 {
3394 "children" : [
3395 {
3396 "info" : {
7aacca6f 3397 "DELETE" : {
e9cd3bd4 3398 "allowtoken" : 1,
44660702
DM
3399 "description" : "Delete rule.",
3400 "method" : "DELETE",
3401 "name" : "delete_rule",
3402 "parameters" : {
3403 "additionalProperties" : 0,
3404 "properties" : {
3405 "digest" : {
82551b2b
TL
3406 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3407 "maxLength" : 64,
44660702 3408 "optional" : 1,
013dc89f
DM
3409 "type" : "string",
3410 "typetext" : "<string>"
44660702
DM
3411 },
3412 "pos" : {
3413 "description" : "Update rule at position <pos>.",
3414 "minimum" : 0,
3415 "optional" : 1,
4bd7df8b 3416 "type" : "integer",
013dc89f 3417 "typetext" : "<integer> (0 - N)"
44660702
DM
3418 }
3419 }
3420 },
56122987
DM
3421 "permissions" : {
3422 "check" : [
3423 "perm",
3424 "/",
3425 [
7aacca6f 3426 "Sys.Modify"
56122987
DM
3427 ]
3428 ]
3429 },
44660702 3430 "protected" : 1,
56122987
DM
3431 "proxyto" : null,
3432 "returns" : {
7aacca6f 3433 "type" : "null"
44660702
DM
3434 }
3435 },
3436 "GET" : {
e9cd3bd4 3437 "allowtoken" : 1,
44660702
DM
3438 "description" : "Get single rule data.",
3439 "method" : "GET",
3440 "name" : "get_rule",
56122987
DM
3441 "parameters" : {
3442 "additionalProperties" : 0,
3443 "properties" : {
3444 "pos" : {
7aacca6f 3445 "description" : "Update rule at position <pos>.",
44660702 3446 "minimum" : 0,
56122987 3447 "optional" : 1,
4bd7df8b 3448 "type" : "integer",
013dc89f 3449 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
3450 }
3451 }
3452 },
7aacca6f
DM
3453 "permissions" : {
3454 "check" : [
3455 "perm",
3456 "/",
3457 [
3458 "Sys.Audit"
3459 ]
3460 ]
56122987 3461 },
44660702
DM
3462 "proxyto" : null,
3463 "returns" : {
7aacca6f 3464 "properties" : {
e2d681b3
TL
3465 "action" : {
3466 "type" : "string"
3467 },
3468 "comment" : {
3469 "optional" : 1,
3470 "type" : "string"
3471 },
3472 "dest" : {
3473 "optional" : 1,
3474 "type" : "string"
3475 },
3476 "dport" : {
3477 "optional" : 1,
3478 "type" : "string"
3479 },
3480 "enable" : {
3481 "optional" : 1,
3482 "type" : "integer"
3483 },
4772952b
TL
3484 "icmp-type" : {
3485 "optional" : 1,
3486 "type" : "string"
3487 },
e2d681b3
TL
3488 "iface" : {
3489 "optional" : 1,
3490 "type" : "string"
3491 },
3492 "ipversion" : {
3493 "optional" : 1,
3494 "type" : "integer"
3495 },
95895385
TL
3496 "log" : {
3497 "description" : "Log level for firewall rule",
3498 "enum" : [
3499 "emerg",
3500 "alert",
3501 "crit",
3502 "err",
3503 "warning",
3504 "notice",
3505 "info",
3506 "debug",
3507 "nolog"
3508 ],
3509 "optional" : 1,
3510 "type" : "string"
3511 },
e2d681b3
TL
3512 "macro" : {
3513 "optional" : 1,
5f26e15b 3514 "type" : "string"
e2d681b3 3515 },
44660702
DM
3516 "pos" : {
3517 "type" : "integer"
e2d681b3
TL
3518 },
3519 "proto" : {
3520 "optional" : 1,
3521 "type" : "string"
3522 },
3523 "source" : {
3524 "optional" : 1,
3525 "type" : "string"
3526 },
3527 "sport" : {
3528 "optional" : 1,
3529 "type" : "string"
3530 },
3531 "type" : {
3532 "type" : "string"
7aacca6f 3533 }
44660702
DM
3534 },
3535 "type" : "object"
3536 }
56122987 3537 },
44660702 3538 "PUT" : {
e9cd3bd4 3539 "allowtoken" : 1,
44660702
DM
3540 "description" : "Modify rule data.",
3541 "method" : "PUT",
3542 "name" : "update_rule",
7aacca6f
DM
3543 "parameters" : {
3544 "additionalProperties" : 0,
3545 "properties" : {
44660702
DM
3546 "action" : {
3547 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
3548 "maxLength" : 20,
3549 "minLength" : 2,
3550 "optional" : 1,
3551 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3552 "type" : "string"
7aacca6f 3553 },
44660702 3554 "comment" : {
e94f0d56 3555 "description" : "Descriptive comment.",
44660702 3556 "optional" : 1,
013dc89f
DM
3557 "type" : "string",
3558 "typetext" : "<string>"
7aacca6f 3559 },
44660702
DM
3560 "delete" : {
3561 "description" : "A list of settings you want to delete.",
3562 "format" : "pve-configid-list",
3563 "optional" : 1,
013dc89f
DM
3564 "type" : "string",
3565 "typetext" : "<string>"
44660702
DM
3566 },
3567 "dest" : {
3568 "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.",
3569 "format" : "pve-fw-addr-spec",
0695fdaf 3570 "maxLength" : 512,
44660702 3571 "optional" : 1,
013dc89f
DM
3572 "type" : "string",
3573 "typetext" : "<string>"
44660702
DM
3574 },
3575 "digest" : {
82551b2b
TL
3576 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3577 "maxLength" : 64,
44660702 3578 "optional" : 1,
013dc89f
DM
3579 "type" : "string",
3580 "typetext" : "<string>"
44660702
DM
3581 },
3582 "dport" : {
3583 "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.",
3584 "format" : "pve-fw-dport-spec",
3585 "optional" : 1,
013dc89f
DM
3586 "type" : "string",
3587 "typetext" : "<string>"
44660702
DM
3588 },
3589 "enable" : {
e94f0d56 3590 "description" : "Flag to enable/disable a rule.",
44660702
DM
3591 "minimum" : 0,
3592 "optional" : 1,
4bd7df8b 3593 "type" : "integer",
013dc89f 3594 "typetext" : "<integer> (0 - N)"
44660702 3595 },
4772952b 3596 "icmp-type" : {
287a95cf 3597 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
3598 "format" : "pve-fw-icmp-type-spec",
3599 "optional" : 1,
3600 "type" : "string",
3601 "typetext" : "<string>"
3602 },
44660702
DM
3603 "iface" : {
3604 "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.",
3605 "format" : "pve-iface",
3606 "maxLength" : 20,
7aacca6f 3607 "minLength" : 2,
44660702 3608 "optional" : 1,
013dc89f
DM
3609 "type" : "string",
3610 "typetext" : "<string>"
7aacca6f 3611 },
95895385
TL
3612 "log" : {
3613 "description" : "Log level for firewall rule.",
3614 "enum" : [
3615 "emerg",
3616 "alert",
3617 "crit",
3618 "err",
3619 "warning",
3620 "notice",
3621 "info",
3622 "debug",
3623 "nolog"
3624 ],
3625 "optional" : 1,
3626 "type" : "string"
3627 },
44660702 3628 "macro" : {
e94f0d56 3629 "description" : "Use predefined standard macro.",
44660702
DM
3630 "maxLength" : 128,
3631 "optional" : 1,
013dc89f
DM
3632 "type" : "string",
3633 "typetext" : "<string>"
44660702
DM
3634 },
3635 "moveto" : {
3636 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
3637 "minimum" : 0,
3638 "optional" : 1,
4bd7df8b 3639 "type" : "integer",
013dc89f 3640 "typetext" : "<integer> (0 - N)"
44660702
DM
3641 },
3642 "pos" : {
3643 "description" : "Update rule at position <pos>.",
3644 "minimum" : 0,
3645 "optional" : 1,
4bd7df8b 3646 "type" : "integer",
013dc89f 3647 "typetext" : "<integer> (0 - N)"
44660702
DM
3648 },
3649 "proto" : {
3650 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
3651 "format" : "pve-fw-protocol-spec",
3652 "optional" : 1,
013dc89f
DM
3653 "type" : "string",
3654 "typetext" : "<string>"
44660702
DM
3655 },
3656 "source" : {
3657 "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.",
3658 "format" : "pve-fw-addr-spec",
0695fdaf 3659 "maxLength" : 512,
44660702 3660 "optional" : 1,
013dc89f
DM
3661 "type" : "string",
3662 "typetext" : "<string>"
44660702
DM
3663 },
3664 "sport" : {
3665 "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.",
3666 "format" : "pve-fw-sport-spec",
3667 "optional" : 1,
013dc89f
DM
3668 "type" : "string",
3669 "typetext" : "<string>"
44660702
DM
3670 },
3671 "type" : {
e94f0d56 3672 "description" : "Rule type.",
44660702
DM
3673 "enum" : [
3674 "in",
3675 "out",
3676 "group"
3677 ],
3678 "optional" : 1,
3679 "type" : "string"
7aacca6f 3680 }
56122987
DM
3681 }
3682 },
7aacca6f
DM
3683 "permissions" : {
3684 "check" : [
3685 "perm",
3686 "/",
3687 [
3688 "Sys.Modify"
3689 ]
3690 ]
3691 },
44660702
DM
3692 "protected" : 1,
3693 "proxyto" : null,
3694 "returns" : {
3695 "type" : "null"
3696 }
7aacca6f 3697 }
56122987 3698 },
44660702
DM
3699 "leaf" : 1,
3700 "path" : "/cluster/firewall/rules/{pos}",
3701 "text" : "{pos}"
7aacca6f
DM
3702 }
3703 ],
7aacca6f 3704 "info" : {
44660702 3705 "GET" : {
e9cd3bd4 3706 "allowtoken" : 1,
44660702
DM
3707 "description" : "List rules.",
3708 "method" : "GET",
3709 "name" : "get_rules",
7aacca6f 3710 "parameters" : {
44660702 3711 "additionalProperties" : 0
7aacca6f
DM
3712 },
3713 "permissions" : {
3714 "check" : [
3715 "perm",
3716 "/",
3717 [
44660702 3718 "Sys.Audit"
7aacca6f
DM
3719 ]
3720 ]
3721 },
44660702 3722 "proxyto" : null,
7aacca6f 3723 "returns" : {
7aacca6f
DM
3724 "items" : {
3725 "properties" : {
44660702
DM
3726 "pos" : {
3727 "type" : "integer"
7aacca6f
DM
3728 }
3729 },
3730 "type" : "object"
56122987 3731 },
7aacca6f
DM
3732 "links" : [
3733 {
44660702 3734 "href" : "{pos}",
7aacca6f
DM
3735 "rel" : "child"
3736 }
44660702
DM
3737 ],
3738 "type" : "array"
7aacca6f 3739 }
44660702 3740 },
7aacca6f 3741 "POST" : {
e9cd3bd4 3742 "allowtoken" : 1,
44660702 3743 "description" : "Create new rule.",
7aacca6f 3744 "method" : "POST",
44660702 3745 "name" : "create_rule",
7aacca6f
DM
3746 "parameters" : {
3747 "additionalProperties" : 0,
3748 "properties" : {
44660702
DM
3749 "action" : {
3750 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
3751 "maxLength" : 20,
7aacca6f 3752 "minLength" : 2,
44660702
DM
3753 "optional" : 0,
3754 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3755 "type" : "string"
7aacca6f
DM
3756 },
3757 "comment" : {
e94f0d56 3758 "description" : "Descriptive comment.",
7aacca6f 3759 "optional" : 1,
013dc89f
DM
3760 "type" : "string",
3761 "typetext" : "<string>"
44660702
DM
3762 },
3763 "dest" : {
3764 "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.",
3765 "format" : "pve-fw-addr-spec",
0695fdaf 3766 "maxLength" : 512,
44660702 3767 "optional" : 1,
013dc89f
DM
3768 "type" : "string",
3769 "typetext" : "<string>"
44660702
DM
3770 },
3771 "digest" : {
82551b2b
TL
3772 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3773 "maxLength" : 64,
44660702 3774 "optional" : 1,
013dc89f
DM
3775 "type" : "string",
3776 "typetext" : "<string>"
44660702
DM
3777 },
3778 "dport" : {
3779 "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.",
3780 "format" : "pve-fw-dport-spec",
3781 "optional" : 1,
013dc89f
DM
3782 "type" : "string",
3783 "typetext" : "<string>"
44660702
DM
3784 },
3785 "enable" : {
e94f0d56 3786 "description" : "Flag to enable/disable a rule.",
44660702
DM
3787 "minimum" : 0,
3788 "optional" : 1,
4bd7df8b 3789 "type" : "integer",
013dc89f 3790 "typetext" : "<integer> (0 - N)"
44660702 3791 },
4772952b 3792 "icmp-type" : {
287a95cf 3793 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
3794 "format" : "pve-fw-icmp-type-spec",
3795 "optional" : 1,
3796 "type" : "string",
3797 "typetext" : "<string>"
3798 },
44660702
DM
3799 "iface" : {
3800 "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.",
3801 "format" : "pve-iface",
3802 "maxLength" : 20,
3803 "minLength" : 2,
3804 "optional" : 1,
013dc89f
DM
3805 "type" : "string",
3806 "typetext" : "<string>"
44660702 3807 },
95895385
TL
3808 "log" : {
3809 "description" : "Log level for firewall rule.",
3810 "enum" : [
3811 "emerg",
3812 "alert",
3813 "crit",
3814 "err",
3815 "warning",
3816 "notice",
3817 "info",
3818 "debug",
3819 "nolog"
3820 ],
3821 "optional" : 1,
3822 "type" : "string"
3823 },
44660702 3824 "macro" : {
e94f0d56 3825 "description" : "Use predefined standard macro.",
44660702
DM
3826 "maxLength" : 128,
3827 "optional" : 1,
013dc89f
DM
3828 "type" : "string",
3829 "typetext" : "<string>"
44660702
DM
3830 },
3831 "pos" : {
3832 "description" : "Update rule at position <pos>.",
3833 "minimum" : 0,
3834 "optional" : 1,
4bd7df8b 3835 "type" : "integer",
013dc89f 3836 "typetext" : "<integer> (0 - N)"
44660702
DM
3837 },
3838 "proto" : {
3839 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
3840 "format" : "pve-fw-protocol-spec",
3841 "optional" : 1,
013dc89f
DM
3842 "type" : "string",
3843 "typetext" : "<string>"
44660702
DM
3844 },
3845 "source" : {
3846 "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.",
3847 "format" : "pve-fw-addr-spec",
0695fdaf 3848 "maxLength" : 512,
44660702 3849 "optional" : 1,
013dc89f
DM
3850 "type" : "string",
3851 "typetext" : "<string>"
44660702
DM
3852 },
3853 "sport" : {
3854 "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.",
3855 "format" : "pve-fw-sport-spec",
3856 "optional" : 1,
013dc89f
DM
3857 "type" : "string",
3858 "typetext" : "<string>"
44660702
DM
3859 },
3860 "type" : {
e94f0d56 3861 "description" : "Rule type.",
44660702
DM
3862 "enum" : [
3863 "in",
3864 "out",
3865 "group"
3866 ],
3867 "optional" : 0,
3868 "type" : "string"
7aacca6f
DM
3869 }
3870 }
3871 },
3872 "permissions" : {
3873 "check" : [
3874 "perm",
3875 "/",
3876 [
3877 "Sys.Modify"
3878 ]
3879 ]
3880 },
44660702
DM
3881 "protected" : 1,
3882 "proxyto" : null,
7aacca6f 3883 "returns" : {
44660702
DM
3884 "type" : "null"
3885 }
3886 }
3887 },
3888 "leaf" : 0,
3889 "path" : "/cluster/firewall/rules",
3890 "text" : "rules"
3891 },
3892 {
3893 "children" : [
3894 {
3895 "children" : [
3896 {
3897 "info" : {
3898 "DELETE" : {
e9cd3bd4 3899 "allowtoken" : 1,
44660702
DM
3900 "description" : "Remove IP or Network from IPSet.",
3901 "method" : "DELETE",
3902 "name" : "remove_ip",
3903 "parameters" : {
3904 "additionalProperties" : 0,
3905 "properties" : {
3906 "cidr" : {
3907 "description" : "Network/IP specification in CIDR format.",
3908 "format" : "IPorCIDRorAlias",
013dc89f
DM
3909 "type" : "string",
3910 "typetext" : "<string>"
44660702
DM
3911 },
3912 "digest" : {
82551b2b
TL
3913 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
3914 "maxLength" : 64,
44660702 3915 "optional" : 1,
013dc89f
DM
3916 "type" : "string",
3917 "typetext" : "<string>"
44660702
DM
3918 },
3919 "name" : {
3920 "description" : "IP set name.",
3921 "maxLength" : 64,
3922 "minLength" : 2,
3923 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3924 "type" : "string"
3925 }
3926 }
3927 },
3928 "permissions" : {
3929 "check" : [
3930 "perm",
3931 "/",
3932 [
3933 "Sys.Modify"
3934 ]
3935 ]
3936 },
3937 "protected" : 1,
3938 "returns" : {
3939 "type" : "null"
3940 }
7aacca6f 3941 },
44660702 3942 "GET" : {
e9cd3bd4 3943 "allowtoken" : 1,
44660702
DM
3944 "description" : "Read IP or Network settings from IPSet.",
3945 "method" : "GET",
3946 "name" : "read_ip",
3947 "parameters" : {
3948 "additionalProperties" : 0,
3949 "properties" : {
3950 "cidr" : {
3951 "description" : "Network/IP specification in CIDR format.",
3952 "format" : "IPorCIDRorAlias",
013dc89f
DM
3953 "type" : "string",
3954 "typetext" : "<string>"
44660702
DM
3955 },
3956 "name" : {
3957 "description" : "IP set name.",
3958 "maxLength" : 64,
3959 "minLength" : 2,
3960 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3961 "type" : "string"
3962 }
3963 }
3964 },
3965 "permissions" : {
3966 "check" : [
3967 "perm",
3968 "/",
3969 [
3970 "Sys.Audit"
3971 ]
3972 ]
3973 },
3974 "protected" : 1,
3975 "returns" : {
3976 "type" : "object"
3977 }
7aacca6f 3978 },
44660702 3979 "PUT" : {
e9cd3bd4 3980 "allowtoken" : 1,
44660702
DM
3981 "description" : "Update IP or Network settings",
3982 "method" : "PUT",
3983 "name" : "update_ip",
3984 "parameters" : {
3985 "additionalProperties" : 0,
3986 "properties" : {
3987 "cidr" : {
3988 "description" : "Network/IP specification in CIDR format.",
3989 "format" : "IPorCIDRorAlias",
013dc89f
DM
3990 "type" : "string",
3991 "typetext" : "<string>"
44660702
DM
3992 },
3993 "comment" : {
3994 "optional" : 1,
013dc89f
DM
3995 "type" : "string",
3996 "typetext" : "<string>"
44660702
DM
3997 },
3998 "digest" : {
82551b2b
TL
3999 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4000 "maxLength" : 64,
44660702 4001 "optional" : 1,
013dc89f
DM
4002 "type" : "string",
4003 "typetext" : "<string>"
44660702
DM
4004 },
4005 "name" : {
4006 "description" : "IP set name.",
4007 "maxLength" : 64,
4008 "minLength" : 2,
4009 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4010 "type" : "string"
4011 },
4012 "nomatch" : {
4013 "optional" : 1,
013dc89f
DM
4014 "type" : "boolean",
4015 "typetext" : "<boolean>"
44660702
DM
4016 }
4017 }
4018 },
4019 "permissions" : {
4020 "check" : [
4021 "perm",
4022 "/",
4023 [
4024 "Sys.Modify"
4025 ]
4026 ]
4027 },
4028 "protected" : 1,
4029 "returns" : {
4030 "type" : "null"
4031 }
7aacca6f
DM
4032 }
4033 },
44660702
DM
4034 "leaf" : 1,
4035 "path" : "/cluster/firewall/ipset/{name}/{cidr}",
4036 "text" : "{cidr}"
7aacca6f 4037 }
44660702 4038 ],
7aacca6f
DM
4039 "info" : {
4040 "DELETE" : {
e9cd3bd4 4041 "allowtoken" : 1,
44660702
DM
4042 "description" : "Delete IPSet",
4043 "method" : "DELETE",
4044 "name" : "delete_ipset",
56122987 4045 "parameters" : {
44660702 4046 "additionalProperties" : 0,
56122987 4047 "properties" : {
81a3384d
TL
4048 "force" : {
4049 "description" : "Delete all members of the IPSet, if there are any.",
4050 "optional" : 1,
4051 "type" : "boolean",
4052 "typetext" : "<boolean>"
4053 },
56122987 4054 "name" : {
44660702 4055 "description" : "IP set name.",
56122987 4056 "maxLength" : 64,
44660702 4057 "minLength" : 2,
56122987 4058 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 4059 "type" : "string"
56122987 4060 }
44660702 4061 }
7aacca6f 4062 },
56122987
DM
4063 "permissions" : {
4064 "check" : [
4065 "perm",
4066 "/",
4067 [
4068 "Sys.Modify"
4069 ]
4070 ]
4071 },
7aacca6f
DM
4072 "protected" : 1,
4073 "returns" : {
4074 "type" : "null"
44660702 4075 }
7aacca6f 4076 },
44660702 4077 "GET" : {
e9cd3bd4 4078 "allowtoken" : 1,
44660702
DM
4079 "description" : "List IPSet content",
4080 "method" : "GET",
4081 "name" : "get_ipset",
56122987
DM
4082 "parameters" : {
4083 "additionalProperties" : 0,
4084 "properties" : {
7aacca6f 4085 "name" : {
44660702 4086 "description" : "IP set name.",
7aacca6f 4087 "maxLength" : 64,
7aacca6f 4088 "minLength" : 2,
44660702 4089 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 4090 "type" : "string"
56122987 4091 }
7aacca6f 4092 }
56122987 4093 },
56122987
DM
4094 "permissions" : {
4095 "check" : [
4096 "perm",
4097 "/",
4098 [
44660702 4099 "Sys.Audit"
56122987
DM
4100 ]
4101 ]
44660702
DM
4102 },
4103 "returns" : {
4104 "items" : {
4105 "properties" : {
4106 "cidr" : {
4107 "type" : "string"
4108 },
4109 "comment" : {
4110 "optional" : 1,
4111 "type" : "string"
4112 },
4113 "digest" : {
82551b2b
TL
4114 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4115 "maxLength" : 64,
44660702
DM
4116 "optional" : 0,
4117 "type" : "string"
4118 },
4119 "nomatch" : {
4120 "optional" : 1,
4121 "type" : "boolean"
4122 }
4123 },
4124 "type" : "object"
4125 },
4126 "links" : [
4127 {
4128 "href" : "{cidr}",
4129 "rel" : "child"
4130 }
4131 ],
4132 "type" : "array"
7aacca6f
DM
4133 }
4134 },
44660702 4135 "POST" : {
e9cd3bd4 4136 "allowtoken" : 1,
44660702
DM
4137 "description" : "Add IP or Network to IPSet.",
4138 "method" : "POST",
4139 "name" : "create_ip",
56122987
DM
4140 "parameters" : {
4141 "additionalProperties" : 0,
4142 "properties" : {
44660702
DM
4143 "cidr" : {
4144 "description" : "Network/IP specification in CIDR format.",
4145 "format" : "IPorCIDRorAlias",
013dc89f
DM
4146 "type" : "string",
4147 "typetext" : "<string>"
44660702
DM
4148 },
4149 "comment" : {
4150 "optional" : 1,
013dc89f
DM
4151 "type" : "string",
4152 "typetext" : "<string>"
44660702
DM
4153 },
4154 "name" : {
4155 "description" : "IP set name.",
4156 "maxLength" : 64,
4157 "minLength" : 2,
4158 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4159 "type" : "string"
4160 },
4161 "nomatch" : {
4162 "optional" : 1,
013dc89f
DM
4163 "type" : "boolean",
4164 "typetext" : "<boolean>"
56122987
DM
4165 }
4166 }
4167 },
56122987
DM
4168 "permissions" : {
4169 "check" : [
4170 "perm",
4171 "/",
4172 [
44660702 4173 "Sys.Modify"
56122987
DM
4174 ]
4175 ]
4176 },
44660702 4177 "protected" : 1,
56122987 4178 "returns" : {
44660702
DM
4179 "type" : "null"
4180 }
56122987
DM
4181 }
4182 },
44660702
DM
4183 "leaf" : 0,
4184 "path" : "/cluster/firewall/ipset/{name}",
4185 "text" : "{name}"
56122987
DM
4186 }
4187 ],
56122987 4188 "info" : {
44660702 4189 "GET" : {
e9cd3bd4 4190 "allowtoken" : 1,
44660702
DM
4191 "description" : "List IPSets",
4192 "method" : "GET",
4193 "name" : "ipset_index",
56122987 4194 "parameters" : {
7aacca6f 4195 "additionalProperties" : 0
56122987 4196 },
56122987
DM
4197 "permissions" : {
4198 "check" : [
4199 "perm",
4200 "/",
4201 [
7aacca6f 4202 "Sys.Audit"
56122987
DM
4203 ]
4204 ]
4205 },
56122987
DM
4206 "returns" : {
4207 "items" : {
4208 "properties" : {
44660702
DM
4209 "comment" : {
4210 "optional" : 1,
4211 "type" : "string"
56122987 4212 },
44660702 4213 "digest" : {
82551b2b
TL
4214 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4215 "maxLength" : 64,
44660702
DM
4216 "optional" : 0,
4217 "type" : "string"
4218 },
4219 "name" : {
4220 "description" : "IP set name.",
4221 "maxLength" : 64,
4222 "minLength" : 2,
4223 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 4224 "type" : "string"
56122987
DM
4225 }
4226 },
4227 "type" : "object"
44660702
DM
4228 },
4229 "links" : [
4230 {
4231 "href" : "{name}",
4232 "rel" : "child"
4233 }
4234 ],
4235 "type" : "array"
56122987 4236 }
44660702
DM
4237 },
4238 "POST" : {
e9cd3bd4 4239 "allowtoken" : 1,
44660702
DM
4240 "description" : "Create new IPSet",
4241 "method" : "POST",
4242 "name" : "create_ipset",
7aacca6f
DM
4243 "parameters" : {
4244 "additionalProperties" : 0,
4245 "properties" : {
44660702
DM
4246 "comment" : {
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 "name" : {
4259 "description" : "IP set name.",
4260 "maxLength" : 64,
4261 "minLength" : 2,
4262 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4263 "type" : "string"
4264 },
4265 "rename" : {
4266 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
4267 "maxLength" : 64,
4268 "minLength" : 2,
4269 "optional" : 1,
4270 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4271 "type" : "string"
7aacca6f
DM
4272 }
4273 }
4274 },
56122987
DM
4275 "permissions" : {
4276 "check" : [
4277 "perm",
4278 "/",
4279 [
44660702 4280 "Sys.Modify"
56122987
DM
4281 ]
4282 ]
4283 },
44660702 4284 "protected" : 1,
56122987 4285 "returns" : {
44660702
DM
4286 "type" : "null"
4287 }
56122987 4288 }
7aacca6f 4289 },
44660702
DM
4290 "leaf" : 0,
4291 "path" : "/cluster/firewall/ipset",
4292 "text" : "ipset"
4293 },
56122987 4294 {
44660702
DM
4295 "children" : [
4296 {
4297 "info" : {
4298 "DELETE" : {
e9cd3bd4 4299 "allowtoken" : 1,
44660702
DM
4300 "description" : "Remove IP or Network alias.",
4301 "method" : "DELETE",
4302 "name" : "remove_alias",
4303 "parameters" : {
4304 "additionalProperties" : 0,
4305 "properties" : {
4306 "digest" : {
82551b2b
TL
4307 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4308 "maxLength" : 64,
44660702 4309 "optional" : 1,
013dc89f
DM
4310 "type" : "string",
4311 "typetext" : "<string>"
44660702
DM
4312 },
4313 "name" : {
4314 "description" : "Alias name.",
4315 "maxLength" : 64,
4316 "minLength" : 2,
4317 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4318 "type" : "string"
4319 }
4320 }
4321 },
4322 "permissions" : {
4323 "check" : [
4324 "perm",
4325 "/",
4326 [
4327 "Sys.Modify"
4328 ]
4329 ]
4330 },
4331 "protected" : 1,
4332 "returns" : {
4333 "type" : "null"
4334 }
4335 },
4336 "GET" : {
e9cd3bd4 4337 "allowtoken" : 1,
44660702
DM
4338 "description" : "Read alias.",
4339 "method" : "GET",
4340 "name" : "read_alias",
4341 "parameters" : {
4342 "additionalProperties" : 0,
4343 "properties" : {
4344 "name" : {
4345 "description" : "Alias name.",
4346 "maxLength" : 64,
4347 "minLength" : 2,
4348 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4349 "type" : "string"
4350 }
4351 }
4352 },
4353 "permissions" : {
4354 "check" : [
4355 "perm",
4356 "/",
4357 [
4358 "Sys.Audit"
4359 ]
4360 ]
4361 },
4362 "returns" : {
4363 "type" : "object"
4364 }
4365 },
4366 "PUT" : {
e9cd3bd4 4367 "allowtoken" : 1,
44660702
DM
4368 "description" : "Update IP or Network alias.",
4369 "method" : "PUT",
4370 "name" : "update_alias",
4371 "parameters" : {
4372 "additionalProperties" : 0,
4373 "properties" : {
4374 "cidr" : {
4375 "description" : "Network/IP specification in CIDR format.",
4376 "format" : "IPorCIDR",
013dc89f
DM
4377 "type" : "string",
4378 "typetext" : "<string>"
44660702
DM
4379 },
4380 "comment" : {
4381 "optional" : 1,
013dc89f
DM
4382 "type" : "string",
4383 "typetext" : "<string>"
44660702
DM
4384 },
4385 "digest" : {
82551b2b
TL
4386 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4387 "maxLength" : 64,
44660702 4388 "optional" : 1,
013dc89f
DM
4389 "type" : "string",
4390 "typetext" : "<string>"
44660702
DM
4391 },
4392 "name" : {
4393 "description" : "Alias name.",
4394 "maxLength" : 64,
4395 "minLength" : 2,
4396 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4397 "type" : "string"
4398 },
4399 "rename" : {
4400 "description" : "Rename an existing alias.",
4401 "maxLength" : 64,
4402 "minLength" : 2,
4403 "optional" : 1,
4404 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4405 "type" : "string"
4406 }
4407 }
4408 },
4409 "permissions" : {
4410 "check" : [
4411 "perm",
4412 "/",
4413 [
4414 "Sys.Modify"
4415 ]
4416 ]
4417 },
4418 "protected" : 1,
4419 "returns" : {
4420 "type" : "null"
4421 }
4422 }
4423 },
4424 "leaf" : 1,
4425 "path" : "/cluster/firewall/aliases/{name}",
4426 "text" : "{name}"
4427 }
4428 ],
4429 "info" : {
4430 "GET" : {
e9cd3bd4 4431 "allowtoken" : 1,
44660702
DM
4432 "description" : "List aliases",
4433 "method" : "GET",
4434 "name" : "get_aliases",
4435 "parameters" : {
4436 "additionalProperties" : 0
4437 },
4438 "permissions" : {
4439 "check" : [
4440 "perm",
4441 "/",
4442 [
4443 "Sys.Audit"
4444 ]
4445 ]
4446 },
4447 "returns" : {
4448 "items" : {
4449 "properties" : {
4450 "cidr" : {
4451 "type" : "string"
4452 },
4453 "comment" : {
4454 "optional" : 1,
4455 "type" : "string"
4456 },
4457 "digest" : {
82551b2b
TL
4458 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4459 "maxLength" : 64,
44660702
DM
4460 "optional" : 0,
4461 "type" : "string"
4462 },
4463 "name" : {
4464 "type" : "string"
4465 }
4466 },
4467 "type" : "object"
4468 },
4469 "links" : [
4470 {
4471 "href" : "{name}",
4472 "rel" : "child"
4473 }
4474 ],
4475 "type" : "array"
4476 }
4477 },
4478 "POST" : {
e9cd3bd4 4479 "allowtoken" : 1,
44660702
DM
4480 "description" : "Create IP or Network Alias.",
4481 "method" : "POST",
4482 "name" : "create_alias",
56122987
DM
4483 "parameters" : {
4484 "additionalProperties" : 0,
4485 "properties" : {
44660702
DM
4486 "cidr" : {
4487 "description" : "Network/IP specification in CIDR format.",
4488 "format" : "IPorCIDR",
013dc89f
DM
4489 "type" : "string",
4490 "typetext" : "<string>"
44660702
DM
4491 },
4492 "comment" : {
4493 "optional" : 1,
013dc89f
DM
4494 "type" : "string",
4495 "typetext" : "<string>"
44660702
DM
4496 },
4497 "name" : {
4498 "description" : "Alias name.",
4499 "maxLength" : 64,
4500 "minLength" : 2,
4501 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
4502 "type" : "string"
56122987
DM
4503 }
4504 }
4505 },
56122987
DM
4506 "permissions" : {
4507 "check" : [
4508 "perm",
4509 "/",
4510 [
4511 "Sys.Modify"
4512 ]
4513 ]
4514 },
44660702 4515 "protected" : 1,
56122987
DM
4516 "returns" : {
4517 "type" : "null"
4518 }
44660702
DM
4519 }
4520 },
4521 "leaf" : 0,
4522 "path" : "/cluster/firewall/aliases",
4523 "text" : "aliases"
4524 },
4525 {
4526 "info" : {
4527 "GET" : {
e9cd3bd4 4528 "allowtoken" : 1,
44660702
DM
4529 "description" : "Get Firewall options.",
4530 "method" : "GET",
4531 "name" : "get_options",
4532 "parameters" : {
4533 "additionalProperties" : 0
7aacca6f 4534 },
56122987
DM
4535 "permissions" : {
4536 "check" : [
4537 "perm",
4538 "/",
4539 [
44660702 4540 "Sys.Audit"
56122987
DM
4541 ]
4542 ]
4543 },
44660702 4544 "returns" : {
56122987 4545 "properties" : {
5da3d723
TL
4546 "ebtables" : {
4547 "default" : 1,
4548 "description" : "Enable ebtables rules cluster wide.",
4549 "optional" : 1,
4550 "type" : "boolean"
4551 },
44660702
DM
4552 "enable" : {
4553 "description" : "Enable or disable the firewall cluster wide.",
4554 "minimum" : 0,
56122987 4555 "optional" : 1,
7aacca6f 4556 "type" : "integer"
56122987 4557 },
95895385
TL
4558 "log_ratelimit" : {
4559 "description" : "Log ratelimiting settings",
4560 "format" : {
4561 "burst" : {
4562 "default" : 5,
4772952b 4563 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
4564 "minimum" : 0,
4565 "optional" : 1,
4566 "type" : "integer"
4567 },
4568 "enable" : {
4569 "default" : "1",
4570 "default_key" : 1,
4571 "description" : "Enable or disable log rate limiting",
4572 "type" : "boolean"
4573 },
4574 "rate" : {
4575 "default" : "1/second",
4576 "description" : "Frequency with which the burst bucket gets refilled",
4577 "format_description" : "rate",
4578 "optional" : 1,
4579 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
4580 "type" : "string"
4581 }
4582 },
4583 "optional" : 1,
4584 "type" : "string"
4585 },
44660702
DM
4586 "policy_in" : {
4587 "description" : "Input policy.",
4588 "enum" : [
4589 "ACCEPT",
4590 "REJECT",
4591 "DROP"
4592 ],
56122987 4593 "optional" : 1,
44660702 4594 "type" : "string"
7aacca6f 4595 },
44660702
DM
4596 "policy_out" : {
4597 "description" : "Output policy.",
4598 "enum" : [
4599 "ACCEPT",
4600 "REJECT",
4601 "DROP"
4602 ],
7aacca6f 4603 "optional" : 1,
44660702
DM
4604 "type" : "string"
4605 }
4606 },
4607 "type" : "object"
4608 }
4609 },
4610 "PUT" : {
e9cd3bd4 4611 "allowtoken" : 1,
44660702
DM
4612 "description" : "Set Firewall options.",
4613 "method" : "PUT",
4614 "name" : "set_options",
4615 "parameters" : {
4616 "additionalProperties" : 0,
4617 "properties" : {
4618 "delete" : {
4619 "description" : "A list of settings you want to delete.",
4620 "format" : "pve-configid-list",
56122987 4621 "optional" : 1,
013dc89f
DM
4622 "type" : "string",
4623 "typetext" : "<string>"
56122987 4624 },
44660702 4625 "digest" : {
82551b2b
TL
4626 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
4627 "maxLength" : 64,
56122987 4628 "optional" : 1,
013dc89f
DM
4629 "type" : "string",
4630 "typetext" : "<string>"
56122987 4631 },
5da3d723
TL
4632 "ebtables" : {
4633 "default" : 1,
4634 "description" : "Enable ebtables rules cluster wide.",
4635 "optional" : 1,
4636 "type" : "boolean",
4637 "typetext" : "<boolean>"
4638 },
44660702
DM
4639 "enable" : {
4640 "description" : "Enable or disable the firewall cluster wide.",
7aacca6f 4641 "minimum" : 0,
56122987 4642 "optional" : 1,
4bd7df8b 4643 "type" : "integer",
013dc89f 4644 "typetext" : "<integer> (0 - N)"
56122987 4645 },
95895385
TL
4646 "log_ratelimit" : {
4647 "description" : "Log ratelimiting settings",
4648 "format" : {
4649 "burst" : {
4650 "default" : 5,
4772952b 4651 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
4652 "minimum" : 0,
4653 "optional" : 1,
4654 "type" : "integer"
4655 },
4656 "enable" : {
4657 "default" : "1",
4658 "default_key" : 1,
4659 "description" : "Enable or disable log rate limiting",
4660 "type" : "boolean"
4661 },
4662 "rate" : {
4663 "default" : "1/second",
4664 "description" : "Frequency with which the burst bucket gets refilled",
4665 "format_description" : "rate",
4666 "optional" : 1,
4667 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
4668 "type" : "string"
4669 }
4670 },
4671 "optional" : 1,
4672 "type" : "string",
4673 "typetext" : "[enable=]<1|0> [,burst=<integer>] [,rate=<rate>]"
4674 },
44660702
DM
4675 "policy_in" : {
4676 "description" : "Input policy.",
56122987 4677 "enum" : [
44660702
DM
4678 "ACCEPT",
4679 "REJECT",
4680 "DROP"
56122987 4681 ],
56122987 4682 "optional" : 1,
44660702 4683 "type" : "string"
56122987 4684 },
44660702
DM
4685 "policy_out" : {
4686 "description" : "Output policy.",
56122987 4687 "enum" : [
44660702
DM
4688 "ACCEPT",
4689 "REJECT",
4690 "DROP"
56122987 4691 ],
7aacca6f 4692 "optional" : 1,
44660702 4693 "type" : "string"
56122987 4694 }
44660702
DM
4695 }
4696 },
4697 "permissions" : {
4698 "check" : [
4699 "perm",
4700 "/",
4701 [
4702 "Sys.Modify"
4703 ]
4704 ]
7aacca6f
DM
4705 },
4706 "protected" : 1,
44660702
DM
4707 "returns" : {
4708 "type" : "null"
4709 }
4710 }
4711 },
4712 "leaf" : 1,
4713 "path" : "/cluster/firewall/options",
4714 "text" : "options"
4715 },
4716 {
4717 "info" : {
7aacca6f 4718 "GET" : {
e9cd3bd4 4719 "allowtoken" : 1,
44660702 4720 "description" : "List available macros",
7aacca6f 4721 "method" : "GET",
44660702
DM
4722 "name" : "get_macros",
4723 "parameters" : {
4724 "additionalProperties" : 0
7aacca6f 4725 },
44660702
DM
4726 "permissions" : {
4727 "user" : "all"
4728 },
4729 "returns" : {
4730 "items" : {
4731 "properties" : {
4732 "descr" : {
4733 "description" : "More verbose description (if available).",
4734 "type" : "string"
4735 },
4736 "macro" : {
4737 "description" : "Macro name.",
4738 "type" : "string"
4739 }
4740 },
4741 "type" : "object"
4742 },
4743 "type" : "array"
4744 }
4745 }
4746 },
4747 "leaf" : 1,
4748 "path" : "/cluster/firewall/macros",
4749 "text" : "macros"
4750 },
4751 {
4752 "info" : {
4753 "GET" : {
e9cd3bd4 4754 "allowtoken" : 1,
44660702
DM
4755 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
4756 "method" : "GET",
4757 "name" : "refs",
7aacca6f 4758 "parameters" : {
44660702 4759 "additionalProperties" : 0,
7aacca6f 4760 "properties" : {
44660702
DM
4761 "type" : {
4762 "description" : "Only list references of specified type.",
4763 "enum" : [
4764 "alias",
4765 "ipset"
4766 ],
4767 "optional" : 1,
4768 "type" : "string"
7aacca6f 4769 }
44660702 4770 }
7aacca6f
DM
4771 },
4772 "permissions" : {
4773 "check" : [
4774 "perm",
4775 "/",
4776 [
4777 "Sys.Audit"
4778 ]
4779 ]
4780 },
44660702
DM
4781 "returns" : {
4782 "items" : {
4783 "properties" : {
4784 "comment" : {
4785 "optional" : 1,
4786 "type" : "string"
4787 },
4788 "name" : {
4789 "type" : "string"
4790 },
4791 "ref" : {
4792 "type" : "string"
4793 },
07b013aa
TL
4794 "scope" : {
4795 "type" : "string"
4796 },
44660702
DM
4797 "type" : {
4798 "enum" : [
4799 "alias",
4800 "ipset"
4801 ],
4802 "type" : "string"
4803 }
4804 },
4805 "type" : "object"
4806 },
4807 "type" : "array"
4808 }
56122987
DM
4809 }
4810 },
7aacca6f 4811 "leaf" : 1,
44660702
DM
4812 "path" : "/cluster/firewall/refs",
4813 "text" : "refs"
56122987
DM
4814 }
4815 ],
56122987 4816 "info" : {
44660702 4817 "GET" : {
e9cd3bd4 4818 "allowtoken" : 1,
44660702
DM
4819 "description" : "Directory index.",
4820 "method" : "GET",
4821 "name" : "index",
56122987 4822 "parameters" : {
56122987
DM
4823 "additionalProperties" : 0
4824 },
44660702
DM
4825 "permissions" : {
4826 "user" : "all"
4827 },
56122987 4828 "returns" : {
44660702
DM
4829 "items" : {
4830 "properties" : {},
4831 "type" : "object"
4832 },
7aacca6f
DM
4833 "links" : [
4834 {
44660702
DM
4835 "href" : "{name}",
4836 "rel" : "child"
7aacca6f
DM
4837 }
4838 ],
7aacca6f 4839 "type" : "array"
7aacca6f 4840 }
56122987
DM
4841 }
4842 },
44660702
DM
4843 "leaf" : 0,
4844 "path" : "/cluster/firewall",
4845 "text" : "firewall"
7aacca6f
DM
4846 },
4847 {
56122987
DM
4848 "children" : [
4849 {
04d22a9f
TL
4850 "children" : [
4851 {
4852 "info" : {
4853 "GET" : {
4854 "allowtoken" : 1,
4855 "description" : "Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.",
4856 "method" : "GET",
4857 "name" : "get_volume_backup_included",
4858 "parameters" : {
4859 "additionalProperties" : 0,
4860 "properties" : {
4861 "id" : {
4862 "description" : "The job ID.",
4863 "maxLength" : 50,
4864 "type" : "string",
4865 "typetext" : "<string>"
4866 }
4867 }
4868 },
4869 "permissions" : {
4870 "check" : [
4871 "perm",
4872 "/",
4873 [
4874 "Sys.Audit"
4875 ]
4876 ]
4877 },
4878 "protected" : 1,
4879 "returns" : {
4880 "description" : "Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest.",
4881 "properties" : {
4882 "children" : {
4883 "items" : {
4884 "properties" : {
4885 "children" : {
4886 "description" : "The volumes of the guest with the information if they will be included in backups.",
4887 "items" : {
4888 "properties" : {
4889 "id" : {
4890 "description" : "Configuration key of the volume.",
4891 "type" : "string"
4892 },
4893 "included" : {
4894 "description" : "Whether the volume is included in the backup or not.",
4895 "type" : "boolean"
4896 },
4897 "name" : {
4898 "description" : "Name of the volume.",
4899 "type" : "string"
4900 },
4901 "reason" : {
4902 "description" : "The reason why the volume is included (or excluded).",
4903 "type" : "string"
4904 }
4905 },
4906 "type" : "object"
4907 },
4908 "optional" : 1,
4909 "type" : "array"
4910 },
4911 "id" : {
4912 "description" : "VMID of the guest.",
4913 "type" : "integer"
4914 },
4915 "name" : {
4916 "description" : "Name of the guest",
4917 "optional" : 1,
4918 "type" : "string"
4919 },
4920 "type" : {
4921 "description" : "Type of the guest, VM, CT or unknown for removed but not purged guests.",
4922 "enum" : [
4923 "qemu",
4924 "lxc",
4925 "unknown"
4926 ],
4927 "type" : "string"
4928 }
4929 },
4930 "type" : "object"
4931 },
4932 "type" : "array"
4933 }
4934 },
4935 "type" : "object"
4936 }
4937 }
4938 },
4939 "leaf" : 1,
4940 "path" : "/cluster/backup/{id}/included_volumes",
4941 "text" : "included_volumes"
4942 }
4943 ],
56122987 4944 "info" : {
44660702 4945 "DELETE" : {
e9cd3bd4 4946 "allowtoken" : 1,
44660702
DM
4947 "description" : "Delete vzdump backup job definition.",
4948 "method" : "DELETE",
4949 "name" : "delete_job",
4950 "parameters" : {
4951 "additionalProperties" : 0,
4952 "properties" : {
4953 "id" : {
4954 "description" : "The job ID.",
4955 "maxLength" : 50,
013dc89f
DM
4956 "type" : "string",
4957 "typetext" : "<string>"
44660702
DM
4958 }
4959 }
4960 },
4961 "permissions" : {
4962 "check" : [
4963 "perm",
4964 "/",
4965 [
4966 "Sys.Modify"
4967 ]
4968 ]
4969 },
4970 "protected" : 1,
56122987
DM
4971 "returns" : {
4972 "type" : "null"
44660702
DM
4973 }
4974 },
4975 "GET" : {
e9cd3bd4 4976 "allowtoken" : 1,
44660702
DM
4977 "description" : "Read vzdump backup job definition.",
4978 "method" : "GET",
4979 "name" : "read_job",
4980 "parameters" : {
4981 "additionalProperties" : 0,
4982 "properties" : {
4983 "id" : {
4984 "description" : "The job ID.",
4985 "maxLength" : 50,
013dc89f
DM
4986 "type" : "string",
4987 "typetext" : "<string>"
44660702
DM
4988 }
4989 }
56122987 4990 },
7aacca6f
DM
4991 "permissions" : {
4992 "check" : [
4993 "perm",
4994 "/",
4995 [
44660702 4996 "Sys.Audit"
7aacca6f
DM
4997 ]
4998 ]
4999 },
44660702
DM
5000 "returns" : {
5001 "type" : "object"
5002 }
5003 },
5004 "PUT" : {
e9cd3bd4 5005 "allowtoken" : 1,
44660702
DM
5006 "description" : "Update vzdump backup job definition.",
5007 "method" : "PUT",
5008 "name" : "update_job",
56122987 5009 "parameters" : {
44660702 5010 "additionalProperties" : 0,
56122987 5011 "properties" : {
44660702
DM
5012 "all" : {
5013 "default" : 0,
5014 "description" : "Backup all known guest systems on this host.",
7aacca6f 5015 "optional" : 1,
013dc89f
DM
5016 "type" : "boolean",
5017 "typetext" : "<boolean>"
7aacca6f 5018 },
44660702
DM
5019 "bwlimit" : {
5020 "default" : 0,
4a407cfd 5021 "description" : "Limit I/O bandwidth (in KiB/s).",
44660702
DM
5022 "minimum" : 0,
5023 "optional" : 1,
4bd7df8b 5024 "type" : "integer",
013dc89f 5025 "typetext" : "<integer> (0 - N)"
44660702 5026 },
5370fa8c
TL
5027 "comment" : {
5028 "description" : "Description for the Job.",
5029 "maxLength" : 512,
5030 "optional" : 1,
5031 "type" : "string",
5032 "typetext" : "<string>"
5033 },
44660702
DM
5034 "compress" : {
5035 "default" : "0",
5036 "description" : "Compress dump file.",
7aacca6f 5037 "enum" : [
44660702
DM
5038 "0",
5039 "1",
5040 "gzip",
c5aa7e14
TL
5041 "lzo",
5042 "zstd"
7aacca6f 5043 ],
44660702
DM
5044 "optional" : 1,
5045 "type" : "string"
7aacca6f 5046 },
44660702
DM
5047 "delete" : {
5048 "description" : "A list of settings you want to delete.",
5049 "format" : "pve-configid-list",
7aacca6f 5050 "optional" : 1,
013dc89f
DM
5051 "type" : "string",
5052 "typetext" : "<string>"
56122987 5053 },
44660702
DM
5054 "dow" : {
5055 "description" : "Day of week selection.",
5056 "format" : "pve-day-of-week-list",
7aacca6f 5057 "optional" : 1,
5370fa8c 5058 "requires" : "starttime",
013dc89f
DM
5059 "type" : "string",
5060 "typetext" : "<string>"
56122987 5061 },
44660702
DM
5062 "dumpdir" : {
5063 "description" : "Store resulting files to specified directory.",
56122987 5064 "optional" : 1,
013dc89f
DM
5065 "type" : "string",
5066 "typetext" : "<string>"
56122987 5067 },
44660702
DM
5068 "enabled" : {
5069 "default" : "1",
5070 "description" : "Enable or disable the job.",
5071 "optional" : 1,
013dc89f
DM
5072 "type" : "boolean",
5073 "typetext" : "<boolean>"
44660702
DM
5074 },
5075 "exclude" : {
5076 "description" : "Exclude specified guest systems (assumes --all)",
5077 "format" : "pve-vmid-list",
5078 "optional" : 1,
013dc89f
DM
5079 "type" : "string",
5080 "typetext" : "<string>"
44660702
DM
5081 },
5082 "exclude-path" : {
d2656385 5083 "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
5084 "items" : {
5085 "type" : "string"
5086 },
44660702 5087 "optional" : 1,
4a407cfd
TL
5088 "type" : "array",
5089 "typetext" : "<array>"
44660702
DM
5090 },
5091 "id" : {
5092 "description" : "The job ID.",
5093 "maxLength" : 50,
013dc89f
DM
5094 "type" : "string",
5095 "typetext" : "<string>"
44660702
DM
5096 },
5097 "ionice" : {
5098 "default" : 7,
159464a9 5099 "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
5100 "maximum" : 8,
5101 "minimum" : 0,
5102 "optional" : 1,
4bd7df8b 5103 "type" : "integer",
013dc89f 5104 "typetext" : "<integer> (0 - 8)"
44660702
DM
5105 },
5106 "lockwait" : {
5107 "default" : 180,
5108 "description" : "Maximal time to wait for the global lock (minutes).",
5109 "minimum" : 0,
5110 "optional" : 1,
4bd7df8b 5111 "type" : "integer",
013dc89f 5112 "typetext" : "<integer> (0 - N)"
44660702
DM
5113 },
5114 "mailnotification" : {
5115 "default" : "always",
82551b2b 5116 "description" : "Deprecated: use 'notification-policy' instead.",
56122987 5117 "enum" : [
44660702
DM
5118 "always",
5119 "failure"
56122987 5120 ],
44660702
DM
5121 "optional" : 1,
5122 "type" : "string"
5123 },
5124 "mailto" : {
82551b2b 5125 "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 5126 "format" : "email-or-username-list",
44660702 5127 "optional" : 1,
013dc89f
DM
5128 "type" : "string",
5129 "typetext" : "<string>"
44660702
DM
5130 },
5131 "maxfiles" : {
0695fdaf 5132 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
5133 "minimum" : 1,
5134 "optional" : 1,
4bd7df8b 5135 "type" : "integer",
013dc89f 5136 "typetext" : "<integer> (1 - N)"
44660702
DM
5137 },
5138 "mode" : {
5139 "default" : "snapshot",
5140 "description" : "Backup mode.",
5141 "enum" : [
5142 "snapshot",
5143 "suspend",
5144 "stop"
5145 ],
5146 "optional" : 1,
5147 "type" : "string"
5148 },
5149 "node" : {
5150 "description" : "Only run if executed on this node.",
5151 "format" : "pve-node",
5152 "optional" : 1,
013dc89f
DM
5153 "type" : "string",
5154 "typetext" : "<string>"
44660702 5155 },
7af2edf9 5156 "notes-template" : {
4e7f60c2
TL
5157 "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.",
5158 "maxLength" : 1024,
7af2edf9
TL
5159 "optional" : 1,
5160 "requires" : "storage",
5161 "type" : "string",
5162 "typetext" : "<string>"
5163 },
82551b2b
TL
5164 "notification-policy" : {
5165 "default" : "always",
5166 "description" : "Specify when to send a notification",
5167 "enum" : [
5168 "always",
5169 "failure",
5170 "never"
5171 ],
5172 "optional" : 1,
5173 "type" : "string"
5174 },
5175 "notification-target" : {
5176 "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.",
5177 "format" : "pve-configid",
5178 "optional" : 1,
5179 "type" : "string",
5180 "typetext" : "<string>"
5181 },
4e7f60c2
TL
5182 "performance" : {
5183 "description" : "Other performance-related settings.",
5184 "format" : "backup-performance",
5185 "optional" : 1,
5186 "type" : "string",
82551b2b 5187 "typetext" : "[max-workers=<integer>] [,pbs-entries-max=<integer>]"
4e7f60c2 5188 },
44660702
DM
5189 "pigz" : {
5190 "default" : 0,
5191 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
5192 "optional" : 1,
013dc89f
DM
5193 "type" : "integer",
5194 "typetext" : "<integer>"
44660702 5195 },
9226ccbc
TL
5196 "pool" : {
5197 "description" : "Backup all known guest systems included in the specified pool.",
5198 "optional" : 1,
5199 "type" : "string",
5200 "typetext" : "<string>"
5201 },
7af2edf9
TL
5202 "protected" : {
5203 "description" : "If true, mark backup(s) as protected.",
5204 "optional" : 1,
5205 "requires" : "storage",
5206 "type" : "boolean",
5207 "typetext" : "<boolean>"
5208 },
739d4d64 5209 "prune-backups" : {
0695fdaf 5210 "default" : "keep-all=1",
739d4d64
TL
5211 "description" : "Use these retention options instead of those from the storage configuration.",
5212 "format" : "prune-backups",
5213 "optional" : 1,
5214 "type" : "string",
4772952b 5215 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 5216 },
44660702
DM
5217 "quiet" : {
5218 "default" : 0,
5219 "description" : "Be quiet.",
5220 "optional" : 1,
013dc89f
DM
5221 "type" : "boolean",
5222 "typetext" : "<boolean>"
44660702
DM
5223 },
5224 "remove" : {
5225 "default" : 1,
0695fdaf 5226 "description" : "Prune older backups according to 'prune-backups'.",
44660702 5227 "optional" : 1,
013dc89f
DM
5228 "type" : "boolean",
5229 "typetext" : "<boolean>"
44660702 5230 },
de786b48
TL
5231 "repeat-missed" : {
5232 "default" : 0,
5233 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
5234 "optional" : 1,
5235 "type" : "boolean",
5236 "typetext" : "<boolean>"
5237 },
5370fa8c
TL
5238 "schedule" : {
5239 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
5240 "format" : "pve-calendar-event",
5241 "maxLength" : 128,
5242 "optional" : 1,
5243 "type" : "string",
5244 "typetext" : "<string>"
5245 },
44660702
DM
5246 "script" : {
5247 "description" : "Use specified hook script.",
5248 "optional" : 1,
013dc89f
DM
5249 "type" : "string",
5250 "typetext" : "<string>"
44660702 5251 },
44660702
DM
5252 "starttime" : {
5253 "description" : "Job Start time.",
5370fa8c 5254 "optional" : 1,
44660702 5255 "pattern" : "\\d{1,2}:\\d{1,2}",
56122987 5256 "type" : "string",
44660702 5257 "typetext" : "HH:MM"
7aacca6f 5258 },
44660702
DM
5259 "stdexcludes" : {
5260 "default" : 1,
5261 "description" : "Exclude temporary files and logs.",
5262 "optional" : 1,
013dc89f
DM
5263 "type" : "boolean",
5264 "typetext" : "<boolean>"
44660702
DM
5265 },
5266 "stop" : {
5267 "default" : 0,
1e3f8156 5268 "description" : "Stop running backup jobs on this host.",
44660702 5269 "optional" : 1,
013dc89f
DM
5270 "type" : "boolean",
5271 "typetext" : "<boolean>"
44660702
DM
5272 },
5273 "stopwait" : {
5274 "default" : 10,
5275 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
5276 "minimum" : 0,
5277 "optional" : 1,
4bd7df8b 5278 "type" : "integer",
013dc89f 5279 "typetext" : "<integer> (0 - N)"
44660702
DM
5280 },
5281 "storage" : {
5282 "description" : "Store resulting file to this storage.",
5283 "format" : "pve-storage-id",
5284 "optional" : 1,
013dc89f
DM
5285 "type" : "string",
5286 "typetext" : "<string>"
56122987 5287 },
44660702
DM
5288 "tmpdir" : {
5289 "description" : "Store temporary files to specified directory.",
5290 "optional" : 1,
013dc89f
DM
5291 "type" : "string",
5292 "typetext" : "<string>"
44660702
DM
5293 },
5294 "vmid" : {
5295 "description" : "The ID of the guest system you want to backup.",
5296 "format" : "pve-vmid-list",
5297 "optional" : 1,
013dc89f
DM
5298 "type" : "string",
5299 "typetext" : "<string>"
c5aa7e14
TL
5300 },
5301 "zstd" : {
5302 "default" : 1,
5303 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
5304 "optional" : 1,
5305 "type" : "integer",
5306 "typetext" : "<integer>"
56122987 5307 }
44660702 5308 }
56122987
DM
5309 },
5310 "permissions" : {
5311 "check" : [
5312 "perm",
5313 "/",
5314 [
44660702 5315 "Sys.Modify"
56122987 5316 ]
04d22a9f
TL
5317 ],
5318 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
56122987 5319 },
44660702
DM
5320 "protected" : 1,
5321 "returns" : {
5322 "type" : "null"
7aacca6f 5323 }
56122987
DM
5324 }
5325 },
04d22a9f 5326 "leaf" : 0,
44660702
DM
5327 "path" : "/cluster/backup/{id}",
5328 "text" : "{id}"
5329 }
5330 ],
5331 "info" : {
5332 "GET" : {
e9cd3bd4 5333 "allowtoken" : 1,
44660702
DM
5334 "description" : "List vzdump backup schedule.",
5335 "method" : "GET",
5336 "name" : "index",
5337 "parameters" : {
5338 "additionalProperties" : 0
5339 },
5340 "permissions" : {
5341 "check" : [
5342 "perm",
5343 "/",
5344 [
5345 "Sys.Audit"
5346 ]
5347 ]
5348 },
5349 "returns" : {
5350 "items" : {
5351 "properties" : {
5352 "id" : {
1c532546
TL
5353 "description" : "The job ID.",
5354 "maxLength" : 50,
44660702
DM
5355 "type" : "string"
5356 }
5357 },
5358 "type" : "object"
5359 },
5360 "links" : [
5361 {
5362 "href" : "{id}",
5363 "rel" : "child"
5364 }
5365 ],
5366 "type" : "array"
5367 }
5368 },
5369 "POST" : {
e9cd3bd4 5370 "allowtoken" : 1,
44660702
DM
5371 "description" : "Create new vzdump backup job.",
5372 "method" : "POST",
5373 "name" : "create_job",
5374 "parameters" : {
5375 "additionalProperties" : 0,
5376 "properties" : {
5377 "all" : {
5378 "default" : 0,
5379 "description" : "Backup all known guest systems on this host.",
5380 "optional" : 1,
013dc89f
DM
5381 "type" : "boolean",
5382 "typetext" : "<boolean>"
44660702
DM
5383 },
5384 "bwlimit" : {
5385 "default" : 0,
4a407cfd 5386 "description" : "Limit I/O bandwidth (in KiB/s).",
44660702
DM
5387 "minimum" : 0,
5388 "optional" : 1,
4bd7df8b 5389 "type" : "integer",
013dc89f 5390 "typetext" : "<integer> (0 - N)"
44660702 5391 },
5370fa8c
TL
5392 "comment" : {
5393 "description" : "Description for the Job.",
5394 "maxLength" : 512,
5395 "optional" : 1,
5396 "type" : "string",
5397 "typetext" : "<string>"
5398 },
44660702
DM
5399 "compress" : {
5400 "default" : "0",
5401 "description" : "Compress dump file.",
5402 "enum" : [
5403 "0",
5404 "1",
5405 "gzip",
c5aa7e14
TL
5406 "lzo",
5407 "zstd"
44660702
DM
5408 ],
5409 "optional" : 1,
5410 "type" : "string"
5411 },
5412 "dow" : {
5413 "default" : "mon,tue,wed,thu,fri,sat,sun",
5414 "description" : "Day of week selection.",
5415 "format" : "pve-day-of-week-list",
5416 "optional" : 1,
5370fa8c 5417 "requires" : "starttime",
013dc89f
DM
5418 "type" : "string",
5419 "typetext" : "<string>"
44660702
DM
5420 },
5421 "dumpdir" : {
5422 "description" : "Store resulting files to specified directory.",
5423 "optional" : 1,
013dc89f
DM
5424 "type" : "string",
5425 "typetext" : "<string>"
44660702
DM
5426 },
5427 "enabled" : {
5428 "default" : "1",
5429 "description" : "Enable or disable the job.",
5430 "optional" : 1,
013dc89f
DM
5431 "type" : "boolean",
5432 "typetext" : "<boolean>"
44660702
DM
5433 },
5434 "exclude" : {
5435 "description" : "Exclude specified guest systems (assumes --all)",
5436 "format" : "pve-vmid-list",
5437 "optional" : 1,
013dc89f
DM
5438 "type" : "string",
5439 "typetext" : "<string>"
44660702
DM
5440 },
5441 "exclude-path" : {
d2656385 5442 "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
5443 "items" : {
5444 "type" : "string"
5445 },
44660702 5446 "optional" : 1,
4a407cfd
TL
5447 "type" : "array",
5448 "typetext" : "<array>"
44660702 5449 },
5370fa8c
TL
5450 "id" : {
5451 "description" : "Job ID (will be autogenerated).",
5452 "format" : "pve-configid",
5453 "optional" : 1,
5454 "type" : "string",
5455 "typetext" : "<string>"
5456 },
44660702
DM
5457 "ionice" : {
5458 "default" : 7,
159464a9 5459 "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
5460 "maximum" : 8,
5461 "minimum" : 0,
5462 "optional" : 1,
4bd7df8b 5463 "type" : "integer",
013dc89f 5464 "typetext" : "<integer> (0 - 8)"
44660702
DM
5465 },
5466 "lockwait" : {
5467 "default" : 180,
5468 "description" : "Maximal time to wait for the global lock (minutes).",
5469 "minimum" : 0,
5470 "optional" : 1,
4bd7df8b 5471 "type" : "integer",
013dc89f 5472 "typetext" : "<integer> (0 - N)"
44660702
DM
5473 },
5474 "mailnotification" : {
5475 "default" : "always",
82551b2b 5476 "description" : "Deprecated: use 'notification-policy' instead.",
44660702
DM
5477 "enum" : [
5478 "always",
5479 "failure"
5480 ],
5481 "optional" : 1,
5482 "type" : "string"
5483 },
5484 "mailto" : {
82551b2b 5485 "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 5486 "format" : "email-or-username-list",
44660702 5487 "optional" : 1,
013dc89f
DM
5488 "type" : "string",
5489 "typetext" : "<string>"
44660702
DM
5490 },
5491 "maxfiles" : {
0695fdaf 5492 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
5493 "minimum" : 1,
5494 "optional" : 1,
4bd7df8b 5495 "type" : "integer",
013dc89f 5496 "typetext" : "<integer> (1 - N)"
44660702
DM
5497 },
5498 "mode" : {
5499 "default" : "snapshot",
5500 "description" : "Backup mode.",
5501 "enum" : [
5502 "snapshot",
5503 "suspend",
5504 "stop"
5505 ],
5506 "optional" : 1,
5507 "type" : "string"
5508 },
5509 "node" : {
5510 "description" : "Only run if executed on this node.",
5511 "format" : "pve-node",
5512 "optional" : 1,
013dc89f
DM
5513 "type" : "string",
5514 "typetext" : "<string>"
44660702 5515 },
7af2edf9 5516 "notes-template" : {
4e7f60c2
TL
5517 "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.",
5518 "maxLength" : 1024,
7af2edf9
TL
5519 "optional" : 1,
5520 "requires" : "storage",
5521 "type" : "string",
5522 "typetext" : "<string>"
5523 },
82551b2b
TL
5524 "notification-policy" : {
5525 "default" : "always",
5526 "description" : "Specify when to send a notification",
5527 "enum" : [
5528 "always",
5529 "failure",
5530 "never"
5531 ],
5532 "optional" : 1,
5533 "type" : "string"
5534 },
5535 "notification-target" : {
5536 "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.",
5537 "format" : "pve-configid",
5538 "optional" : 1,
5539 "type" : "string",
5540 "typetext" : "<string>"
5541 },
4e7f60c2
TL
5542 "performance" : {
5543 "description" : "Other performance-related settings.",
5544 "format" : "backup-performance",
5545 "optional" : 1,
5546 "type" : "string",
82551b2b 5547 "typetext" : "[max-workers=<integer>] [,pbs-entries-max=<integer>]"
4e7f60c2 5548 },
44660702
DM
5549 "pigz" : {
5550 "default" : 0,
5551 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
5552 "optional" : 1,
013dc89f
DM
5553 "type" : "integer",
5554 "typetext" : "<integer>"
44660702 5555 },
9226ccbc
TL
5556 "pool" : {
5557 "description" : "Backup all known guest systems included in the specified pool.",
5558 "optional" : 1,
5559 "type" : "string",
5560 "typetext" : "<string>"
5561 },
7af2edf9
TL
5562 "protected" : {
5563 "description" : "If true, mark backup(s) as protected.",
5564 "optional" : 1,
5565 "requires" : "storage",
5566 "type" : "boolean",
5567 "typetext" : "<boolean>"
5568 },
739d4d64 5569 "prune-backups" : {
0695fdaf 5570 "default" : "keep-all=1",
739d4d64
TL
5571 "description" : "Use these retention options instead of those from the storage configuration.",
5572 "format" : "prune-backups",
5573 "optional" : 1,
5574 "type" : "string",
4772952b 5575 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 5576 },
44660702
DM
5577 "quiet" : {
5578 "default" : 0,
5579 "description" : "Be quiet.",
5580 "optional" : 1,
013dc89f
DM
5581 "type" : "boolean",
5582 "typetext" : "<boolean>"
44660702
DM
5583 },
5584 "remove" : {
5585 "default" : 1,
0695fdaf 5586 "description" : "Prune older backups according to 'prune-backups'.",
44660702 5587 "optional" : 1,
013dc89f
DM
5588 "type" : "boolean",
5589 "typetext" : "<boolean>"
44660702 5590 },
de786b48
TL
5591 "repeat-missed" : {
5592 "default" : 0,
5593 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
5594 "optional" : 1,
5595 "type" : "boolean",
5596 "typetext" : "<boolean>"
5597 },
5370fa8c
TL
5598 "schedule" : {
5599 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
5600 "format" : "pve-calendar-event",
5601 "maxLength" : 128,
5602 "optional" : 1,
5603 "type" : "string",
5604 "typetext" : "<string>"
5605 },
44660702
DM
5606 "script" : {
5607 "description" : "Use specified hook script.",
5608 "optional" : 1,
013dc89f
DM
5609 "type" : "string",
5610 "typetext" : "<string>"
44660702 5611 },
44660702
DM
5612 "starttime" : {
5613 "description" : "Job Start time.",
5370fa8c 5614 "optional" : 1,
44660702
DM
5615 "pattern" : "\\d{1,2}:\\d{1,2}",
5616 "type" : "string",
5617 "typetext" : "HH:MM"
5618 },
5619 "stdexcludes" : {
5620 "default" : 1,
5621 "description" : "Exclude temporary files and logs.",
5622 "optional" : 1,
013dc89f
DM
5623 "type" : "boolean",
5624 "typetext" : "<boolean>"
44660702
DM
5625 },
5626 "stop" : {
5627 "default" : 0,
1e3f8156 5628 "description" : "Stop running backup jobs on this host.",
44660702 5629 "optional" : 1,
013dc89f
DM
5630 "type" : "boolean",
5631 "typetext" : "<boolean>"
44660702
DM
5632 },
5633 "stopwait" : {
5634 "default" : 10,
5635 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
5636 "minimum" : 0,
5637 "optional" : 1,
4bd7df8b 5638 "type" : "integer",
013dc89f 5639 "typetext" : "<integer> (0 - N)"
44660702
DM
5640 },
5641 "storage" : {
5642 "description" : "Store resulting file to this storage.",
5643 "format" : "pve-storage-id",
5644 "optional" : 1,
013dc89f
DM
5645 "type" : "string",
5646 "typetext" : "<string>"
44660702
DM
5647 },
5648 "tmpdir" : {
5649 "description" : "Store temporary files to specified directory.",
5650 "optional" : 1,
013dc89f
DM
5651 "type" : "string",
5652 "typetext" : "<string>"
44660702
DM
5653 },
5654 "vmid" : {
5655 "description" : "The ID of the guest system you want to backup.",
5656 "format" : "pve-vmid-list",
5657 "optional" : 1,
013dc89f
DM
5658 "type" : "string",
5659 "typetext" : "<string>"
c5aa7e14
TL
5660 },
5661 "zstd" : {
5662 "default" : 1,
5663 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
5664 "optional" : 1,
5665 "type" : "integer",
5666 "typetext" : "<integer>"
44660702
DM
5667 }
5668 }
5669 },
5670 "permissions" : {
5671 "check" : [
5672 "perm",
5673 "/",
5674 [
5675 "Sys.Modify"
5676 ]
de0983cb
DM
5677 ],
5678 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
44660702
DM
5679 },
5680 "protected" : 1,
5681 "returns" : {
5682 "type" : "null"
5683 }
5684 }
5685 },
5686 "leaf" : 0,
5687 "path" : "/cluster/backup",
5688 "text" : "backup"
5689 },
04d22a9f
TL
5690 {
5691 "children" : [
5692 {
5693 "info" : {
5694 "GET" : {
5695 "allowtoken" : 1,
5696 "description" : "Shows all guests which are not covered by any backup job.",
5697 "method" : "GET",
5698 "name" : "get_guests_not_in_backup",
5699 "parameters" : {
5700 "additionalProperties" : 0
5701 },
5702 "permissions" : {
5703 "check" : [
5704 "perm",
5705 "/",
5706 [
5707 "Sys.Audit"
5708 ]
5709 ]
5710 },
5711 "protected" : 1,
5712 "returns" : {
5713 "description" : "Contains the guest objects.",
5714 "items" : {
5715 "properties" : {
5716 "name" : {
5717 "description" : "Name of the guest",
5718 "optional" : 1,
5719 "type" : "string"
5720 },
5721 "type" : {
5722 "description" : "Type of the guest.",
5723 "enum" : [
5724 "qemu",
5725 "lxc"
5726 ],
5727 "type" : "string"
5728 },
5729 "vmid" : {
5730 "description" : "VMID of the guest.",
5731 "type" : "integer"
5732 }
5733 },
5734 "type" : "object"
5735 },
5736 "type" : "array"
5737 }
5738 }
5739 },
5740 "leaf" : 1,
34f3e481
TL
5741 "path" : "/cluster/backup-info/not-backed-up",
5742 "text" : "not-backed-up"
04d22a9f
TL
5743 }
5744 ],
5745 "info" : {
5746 "GET" : {
5747 "allowtoken" : 1,
34f3e481 5748 "description" : "Index for backup info related endpoints",
04d22a9f 5749 "method" : "GET",
34f3e481 5750 "name" : "index",
04d22a9f
TL
5751 "parameters" : {
5752 "additionalProperties" : 0
5753 },
04d22a9f 5754 "returns" : {
34f3e481
TL
5755 "description" : "Directory index.",
5756 "items" : {
5757 "properties" : {
5758 "subdir" : {
5759 "description" : "API sub-directory endpoint",
5760 "type" : "string"
5761 }
5762 },
5763 "type" : "object"
5764 },
5765 "links" : [
5766 {
5767 "href" : "{subdir}",
5768 "rel" : "child"
5769 }
5770 ],
5771 "type" : "array"
04d22a9f
TL
5772 }
5773 }
5774 },
5775 "leaf" : 0,
34f3e481
TL
5776 "path" : "/cluster/backup-info",
5777 "text" : "backup-info"
04d22a9f 5778 },
44660702
DM
5779 {
5780 "children" : [
5781 {
5782 "children" : [
5783 {
5784 "children" : [
56122987 5785 {
56122987
DM
5786 "info" : {
5787 "POST" : {
e9cd3bd4 5788 "allowtoken" : 1,
44660702
DM
5789 "description" : "Request resource migration (online) to another node.",
5790 "method" : "POST",
5791 "name" : "migrate",
56122987 5792 "parameters" : {
7aacca6f 5793 "additionalProperties" : 0,
56122987
DM
5794 "properties" : {
5795 "node" : {
95895385 5796 "description" : "Target node.",
44660702 5797 "format" : "pve-node",
013dc89f
DM
5798 "type" : "string",
5799 "typetext" : "<string>"
56122987
DM
5800 },
5801 "sid" : {
44660702 5802 "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 5803 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 5804 "type" : "string",
44660702 5805 "typetext" : "<type>:<name>"
56122987 5806 }
7aacca6f 5807 }
56122987 5808 },
56122987
DM
5809 "permissions" : {
5810 "check" : [
5811 "perm",
5812 "/",
5813 [
5814 "Sys.Console"
5815 ]
5816 ]
5817 },
7aacca6f 5818 "protected" : 1,
7aacca6f
DM
5819 "returns" : {
5820 "type" : "null"
44660702 5821 }
56122987 5822 }
44660702
DM
5823 },
5824 "leaf" : 1,
5825 "path" : "/cluster/ha/resources/{sid}/migrate",
5826 "text" : "migrate"
5827 },
5828 {
5829 "info" : {
5830 "POST" : {
e9cd3bd4 5831 "allowtoken" : 1,
44660702
DM
5832 "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
5833 "method" : "POST",
5834 "name" : "relocate",
5835 "parameters" : {
5836 "additionalProperties" : 0,
5837 "properties" : {
5838 "node" : {
95895385 5839 "description" : "Target node.",
44660702 5840 "format" : "pve-node",
013dc89f
DM
5841 "type" : "string",
5842 "typetext" : "<string>"
44660702
DM
5843 },
5844 "sid" : {
5845 "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).",
5846 "format" : "pve-ha-resource-or-vm-id",
5847 "type" : "string",
5848 "typetext" : "<type>:<name>"
5849 }
5850 }
5851 },
5852 "permissions" : {
5853 "check" : [
5854 "perm",
5855 "/",
5856 [
5857 "Sys.Console"
5858 ]
5859 ]
5860 },
5861 "protected" : 1,
5862 "returns" : {
5863 "type" : "null"
5864 }
5865 }
5866 },
5867 "leaf" : 1,
5868 "path" : "/cluster/ha/resources/{sid}/relocate",
5869 "text" : "relocate"
5870 }
5871 ],
5872 "info" : {
5873 "DELETE" : {
e9cd3bd4 5874 "allowtoken" : 1,
44660702
DM
5875 "description" : "Delete resource configuration.",
5876 "method" : "DELETE",
5877 "name" : "delete",
7aacca6f 5878 "parameters" : {
44660702 5879 "additionalProperties" : 0,
7aacca6f
DM
5880 "properties" : {
5881 "sid" : {
5882 "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 5883 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 5884 "type" : "string",
44660702
DM
5885 "typetext" : "<type>:<name>"
5886 }
5887 }
5888 },
5889 "permissions" : {
5890 "check" : [
5891 "perm",
5892 "/",
5893 [
5894 "Sys.Console"
5895 ]
5896 ]
5897 },
5898 "protected" : 1,
5899 "returns" : {
5900 "type" : "null"
5901 }
5902 },
5903 "GET" : {
e9cd3bd4 5904 "allowtoken" : 1,
44660702
DM
5905 "description" : "Read resource configuration.",
5906 "method" : "GET",
5907 "name" : "read",
5908 "parameters" : {
5909 "additionalProperties" : 0,
5910 "properties" : {
5911 "sid" : {
5912 "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 5913 "format" : "pve-ha-resource-or-vm-id",
44660702 5914 "type" : "string",
7aacca6f
DM
5915 "typetext" : "<type>:<name>"
5916 }
44660702 5917 }
7aacca6f
DM
5918 },
5919 "permissions" : {
5920 "check" : [
5921 "perm",
5922 "/",
5923 [
5924 "Sys.Audit"
5925 ]
5926 ]
5927 },
5f26e15b
TL
5928 "returns" : {
5929 "properties" : {
5930 "comment" : {
5931 "description" : "Description.",
5932 "optional" : 1,
5933 "type" : "string"
5934 },
5935 "digest" : {
5936 "description" : "Can be used to prevent concurrent modifications.",
5937 "type" : "string"
5938 },
5939 "group" : {
5940 "description" : "The HA group identifier.",
5941 "format" : "pve-configid",
5942 "optional" : 1,
5943 "type" : "string"
5944 },
5945 "max_relocate" : {
5946 "description" : "Maximal number of service relocate tries when a service failes to start.",
5947 "optional" : 1,
5948 "type" : "integer"
5949 },
5950 "max_restart" : {
5951 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
5952 "optional" : 1,
5953 "type" : "integer"
5954 },
5955 "sid" : {
5956 "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).",
5957 "format" : "pve-ha-resource-or-vm-id",
5958 "type" : "string",
5959 "typetext" : "<type>:<name>"
5960 },
5961 "state" : {
5962 "description" : "Requested resource state.",
5963 "enum" : [
5964 "started",
5965 "stopped",
5966 "enabled",
5967 "disabled",
5968 "ignored"
5969 ],
5970 "optional" : 1,
5971 "type" : "string"
5972 },
5973 "type" : {
5974 "description" : "The type of the resources.",
5975 "type" : "string"
5976 }
5977 },
5978 "type" : "object"
5979 }
7aacca6f 5980 },
56122987 5981 "PUT" : {
e9cd3bd4 5982 "allowtoken" : 1,
44660702 5983 "description" : "Update resource configuration.",
7aacca6f 5984 "method" : "PUT",
44660702 5985 "name" : "update",
56122987
DM
5986 "parameters" : {
5987 "additionalProperties" : 0,
5988 "properties" : {
44660702
DM
5989 "comment" : {
5990 "description" : "Description.",
5991 "maxLength" : 4096,
56122987 5992 "optional" : 1,
013dc89f
DM
5993 "type" : "string",
5994 "typetext" : "<string>"
56122987 5995 },
7aacca6f
DM
5996 "delete" : {
5997 "description" : "A list of settings you want to delete.",
7aacca6f 5998 "format" : "pve-configid-list",
44660702
DM
5999 "maxLength" : 4096,
6000 "optional" : 1,
013dc89f
DM
6001 "type" : "string",
6002 "typetext" : "<string>"
56122987 6003 },
44660702 6004 "digest" : {
82551b2b
TL
6005 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
6006 "maxLength" : 64,
44660702 6007 "optional" : 1,
013dc89f
DM
6008 "type" : "string",
6009 "typetext" : "<string>"
56122987 6010 },
44660702
DM
6011 "group" : {
6012 "description" : "The HA group identifier.",
6013 "format" : "pve-configid",
7aacca6f 6014 "optional" : 1,
013dc89f
DM
6015 "type" : "string",
6016 "typetext" : "<string>"
56122987
DM
6017 },
6018 "max_relocate" : {
7aacca6f 6019 "default" : 1,
56122987 6020 "description" : "Maximal number of service relocate tries when a service failes to start.",
44660702
DM
6021 "minimum" : 0,
6022 "optional" : 1,
4bd7df8b 6023 "type" : "integer",
013dc89f 6024 "typetext" : "<integer> (0 - N)"
7aacca6f 6025 },
44660702
DM
6026 "max_restart" : {
6027 "default" : 1,
6028 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
6029 "minimum" : 0,
7aacca6f 6030 "optional" : 1,
4bd7df8b 6031 "type" : "integer",
013dc89f 6032 "typetext" : "<integer> (0 - N)"
44660702
DM
6033 },
6034 "sid" : {
6035 "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).",
6036 "format" : "pve-ha-resource-or-vm-id",
6037 "type" : "string",
6038 "typetext" : "<type>:<name>"
7aacca6f
DM
6039 },
6040 "state" : {
f13c1238
DM
6041 "default" : "started",
6042 "description" : "Requested resource state.",
7aacca6f 6043 "enum" : [
f13c1238
DM
6044 "started",
6045 "stopped",
7aacca6f 6046 "enabled",
2489d6df
WB
6047 "disabled",
6048 "ignored"
7aacca6f 6049 ],
7aacca6f 6050 "optional" : 1,
f13c1238 6051 "type" : "string",
2489d6df 6052 "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 6053 }
44660702
DM
6054 },
6055 "type" : "object"
56122987 6056 },
56122987
DM
6057 "permissions" : {
6058 "check" : [
6059 "perm",
6060 "/",
6061 [
6062 "Sys.Console"
6063 ]
6064 ]
6065 },
7aacca6f 6066 "protected" : 1,
56122987
DM
6067 "returns" : {
6068 "type" : "null"
6069 }
6070 }
6071 },
44660702 6072 "leaf" : 0,
7aacca6f 6073 "path" : "/cluster/ha/resources/{sid}",
44660702 6074 "text" : "{sid}"
56122987
DM
6075 }
6076 ],
7aacca6f
DM
6077 "info" : {
6078 "GET" : {
e9cd3bd4 6079 "allowtoken" : 1,
44660702
DM
6080 "description" : "List HA resources.",
6081 "method" : "GET",
6082 "name" : "index",
7aacca6f 6083 "parameters" : {
44660702
DM
6084 "additionalProperties" : 0,
6085 "properties" : {
6086 "type" : {
6087 "description" : "Only list resources of specific type",
6088 "enum" : [
6089 "ct",
6090 "vm"
6091 ],
6092 "optional" : 1,
6093 "type" : "string"
6094 }
6095 }
7aacca6f 6096 },
7aacca6f
DM
6097 "permissions" : {
6098 "check" : [
6099 "perm",
6100 "/",
6101 [
6102 "Sys.Audit"
6103 ]
6104 ]
6105 },
7aacca6f 6106 "returns" : {
7aacca6f 6107 "items" : {
7aacca6f 6108 "properties" : {
44660702 6109 "sid" : {
7aacca6f
DM
6110 "type" : "string"
6111 }
44660702
DM
6112 },
6113 "type" : "object"
7aacca6f
DM
6114 },
6115 "links" : [
6116 {
44660702 6117 "href" : "{sid}",
7aacca6f
DM
6118 "rel" : "child"
6119 }
44660702
DM
6120 ],
6121 "type" : "array"
7aacca6f
DM
6122 }
6123 },
6124 "POST" : {
e9cd3bd4 6125 "allowtoken" : 1,
44660702 6126 "description" : "Create a new HA resource.",
7aacca6f 6127 "method" : "POST",
44660702 6128 "name" : "create",
7aacca6f 6129 "parameters" : {
44660702 6130 "additionalProperties" : 0,
7aacca6f
DM
6131 "properties" : {
6132 "comment" : {
7aacca6f 6133 "description" : "Description.",
44660702 6134 "maxLength" : 4096,
7aacca6f 6135 "optional" : 1,
013dc89f
DM
6136 "type" : "string",
6137 "typetext" : "<string>"
7aacca6f 6138 },
44660702
DM
6139 "group" : {
6140 "description" : "The HA group identifier.",
6141 "format" : "pve-configid",
7aacca6f 6142 "optional" : 1,
013dc89f
DM
6143 "type" : "string",
6144 "typetext" : "<string>"
7aacca6f 6145 },
44660702
DM
6146 "max_relocate" : {
6147 "default" : 1,
6148 "description" : "Maximal number of service relocate tries when a service failes to start.",
6149 "minimum" : 0,
7aacca6f 6150 "optional" : 1,
4bd7df8b 6151 "type" : "integer",
013dc89f 6152 "typetext" : "<integer> (0 - N)"
7aacca6f 6153 },
44660702
DM
6154 "max_restart" : {
6155 "default" : 1,
6156 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
6157 "minimum" : 0,
6158 "optional" : 1,
4bd7df8b 6159 "type" : "integer",
013dc89f 6160 "typetext" : "<integer> (0 - N)"
44660702
DM
6161 },
6162 "sid" : {
6163 "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).",
6164 "format" : "pve-ha-resource-or-vm-id",
6165 "type" : "string",
6166 "typetext" : "<type>:<name>"
6167 },
6168 "state" : {
f13c1238
DM
6169 "default" : "started",
6170 "description" : "Requested resource state.",
7aacca6f 6171 "enum" : [
f13c1238
DM
6172 "started",
6173 "stopped",
44660702 6174 "enabled",
2489d6df
WB
6175 "disabled",
6176 "ignored"
7aacca6f 6177 ],
7aacca6f 6178 "optional" : 1,
f13c1238 6179 "type" : "string",
2489d6df 6180 "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 6181 },
44660702
DM
6182 "type" : {
6183 "description" : "Resource type.",
6184 "enum" : [
6185 "ct",
6186 "vm"
6187 ],
6188 "optional" : 1,
6189 "type" : "string"
6190 }
7aacca6f 6191 },
44660702 6192 "type" : "object"
7aacca6f
DM
6193 },
6194 "permissions" : {
6195 "check" : [
6196 "perm",
6197 "/",
6198 [
6199 "Sys.Console"
6200 ]
6201 ]
6202 },
44660702
DM
6203 "protected" : 1,
6204 "returns" : {
6205 "type" : "null"
6206 }
7aacca6f
DM
6207 }
6208 },
44660702
DM
6209 "leaf" : 0,
6210 "path" : "/cluster/ha/resources",
6211 "text" : "resources"
6212 },
6213 {
56122987
DM
6214 "children" : [
6215 {
56122987 6216 "info" : {
44660702 6217 "DELETE" : {
e9cd3bd4 6218 "allowtoken" : 1,
44660702
DM
6219 "description" : "Delete ha group configuration.",
6220 "method" : "DELETE",
6221 "name" : "delete",
56122987 6222 "parameters" : {
7aacca6f 6223 "additionalProperties" : 0,
56122987 6224 "properties" : {
7aacca6f
DM
6225 "group" : {
6226 "description" : "The HA group identifier.",
44660702 6227 "format" : "pve-configid",
013dc89f
DM
6228 "type" : "string",
6229 "typetext" : "<string>"
56122987 6230 }
7aacca6f 6231 }
56122987 6232 },
56122987
DM
6233 "permissions" : {
6234 "check" : [
6235 "perm",
6236 "/",
6237 [
7aacca6f 6238 "Sys.Console"
56122987
DM
6239 ]
6240 ]
6241 },
44660702 6242 "protected" : 1,
7aacca6f
DM
6243 "returns" : {
6244 "type" : "null"
56122987
DM
6245 }
6246 },
44660702 6247 "GET" : {
e9cd3bd4 6248 "allowtoken" : 1,
44660702
DM
6249 "description" : "Read ha group configuration.",
6250 "method" : "GET",
6251 "name" : "read",
56122987 6252 "parameters" : {
44660702 6253 "additionalProperties" : 0,
56122987
DM
6254 "properties" : {
6255 "group" : {
6256 "description" : "The HA group identifier.",
44660702 6257 "format" : "pve-configid",
013dc89f
DM
6258 "type" : "string",
6259 "typetext" : "<string>"
56122987 6260 }
44660702 6261 }
56122987 6262 },
56122987
DM
6263 "permissions" : {
6264 "check" : [
6265 "perm",
6266 "/",
6267 [
44660702 6268 "Sys.Audit"
56122987
DM
6269 ]
6270 ]
6271 },
44660702 6272 "returns" : {}
7aacca6f 6273 },
44660702 6274 "PUT" : {
e9cd3bd4 6275 "allowtoken" : 1,
44660702
DM
6276 "description" : "Update ha group configuration.",
6277 "method" : "PUT",
6278 "name" : "update",
7aacca6f 6279 "parameters" : {
44660702 6280 "additionalProperties" : 0,
7aacca6f 6281 "properties" : {
44660702
DM
6282 "comment" : {
6283 "description" : "Description.",
6284 "maxLength" : 4096,
6285 "optional" : 1,
013dc89f
DM
6286 "type" : "string",
6287 "typetext" : "<string>"
44660702
DM
6288 },
6289 "delete" : {
6290 "description" : "A list of settings you want to delete.",
6291 "format" : "pve-configid-list",
6292 "maxLength" : 4096,
6293 "optional" : 1,
013dc89f
DM
6294 "type" : "string",
6295 "typetext" : "<string>"
44660702
DM
6296 },
6297 "digest" : {
82551b2b
TL
6298 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
6299 "maxLength" : 64,
44660702 6300 "optional" : 1,
013dc89f
DM
6301 "type" : "string",
6302 "typetext" : "<string>"
44660702 6303 },
7aacca6f
DM
6304 "group" : {
6305 "description" : "The HA group identifier.",
44660702 6306 "format" : "pve-configid",
013dc89f
DM
6307 "type" : "string",
6308 "typetext" : "<string>"
44660702
DM
6309 },
6310 "nodes" : {
f13c1238 6311 "description" : "List of cluster node names with optional priority.",
44660702
DM
6312 "format" : "pve-ha-group-node-list",
6313 "optional" : 1,
7aacca6f 6314 "type" : "string",
f13c1238
DM
6315 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
6316 "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
6317 },
6318 "nofailback" : {
6319 "default" : 0,
6320 "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.",
6321 "optional" : 1,
013dc89f
DM
6322 "type" : "boolean",
6323 "typetext" : "<boolean>"
44660702
DM
6324 },
6325 "restricted" : {
6326 "default" : 0,
c4808e75 6327 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 6328 "optional" : 1,
013dc89f 6329 "type" : "boolean",
c4808e75
DM
6330 "typetext" : "<boolean>",
6331 "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
6332 }
6333 },
44660702 6334 "type" : "object"
7aacca6f 6335 },
7aacca6f
DM
6336 "permissions" : {
6337 "check" : [
6338 "perm",
6339 "/",
6340 [
44660702 6341 "Sys.Console"
7aacca6f
DM
6342 ]
6343 ]
6344 },
44660702
DM
6345 "protected" : 1,
6346 "returns" : {
6347 "type" : "null"
6348 }
56122987
DM
6349 }
6350 },
6351 "leaf" : 1,
44660702
DM
6352 "path" : "/cluster/ha/groups/{group}",
6353 "text" : "{group}"
56122987 6354 }
44660702
DM
6355 ],
6356 "info" : {
6357 "GET" : {
e9cd3bd4 6358 "allowtoken" : 1,
44660702
DM
6359 "description" : "Get HA groups.",
6360 "method" : "GET",
6361 "name" : "index",
6362 "parameters" : {
6363 "additionalProperties" : 0
6364 },
6365 "permissions" : {
6366 "check" : [
6367 "perm",
6368 "/",
6369 [
6370 "Sys.Audit"
6371 ]
6372 ]
6373 },
6374 "returns" : {
6375 "items" : {
6376 "properties" : {
6377 "group" : {
6378 "type" : "string"
6379 }
6380 },
6381 "type" : "object"
6382 },
6383 "links" : [
6384 {
6385 "href" : "{group}",
6386 "rel" : "child"
6387 }
6388 ],
6389 "type" : "array"
6390 }
6391 },
6392 "POST" : {
e9cd3bd4 6393 "allowtoken" : 1,
44660702
DM
6394 "description" : "Create a new HA group.",
6395 "method" : "POST",
6396 "name" : "create",
6397 "parameters" : {
6398 "additionalProperties" : 0,
6399 "properties" : {
6400 "comment" : {
6401 "description" : "Description.",
6402 "maxLength" : 4096,
6403 "optional" : 1,
013dc89f
DM
6404 "type" : "string",
6405 "typetext" : "<string>"
44660702
DM
6406 },
6407 "group" : {
6408 "description" : "The HA group identifier.",
6409 "format" : "pve-configid",
013dc89f
DM
6410 "type" : "string",
6411 "typetext" : "<string>"
44660702
DM
6412 },
6413 "nodes" : {
f13c1238 6414 "description" : "List of cluster node names with optional priority.",
44660702
DM
6415 "format" : "pve-ha-group-node-list",
6416 "optional" : 0,
6417 "type" : "string",
f13c1238
DM
6418 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
6419 "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
6420 },
6421 "nofailback" : {
6422 "default" : 0,
6423 "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.",
6424 "optional" : 1,
013dc89f
DM
6425 "type" : "boolean",
6426 "typetext" : "<boolean>"
44660702
DM
6427 },
6428 "restricted" : {
6429 "default" : 0,
c4808e75 6430 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 6431 "optional" : 1,
013dc89f 6432 "type" : "boolean",
c4808e75
DM
6433 "typetext" : "<boolean>",
6434 "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
6435 },
6436 "type" : {
6437 "description" : "Group type.",
6438 "enum" : [
6439 "group"
6440 ],
6441 "optional" : 1,
6442 "type" : "string"
6443 }
6444 },
6445 "type" : "object"
6446 },
6447 "permissions" : {
6448 "check" : [
6449 "perm",
6450 "/",
6451 [
6452 "Sys.Console"
6453 ]
6454 ]
6455 },
6456 "protected" : 1,
6457 "returns" : {
6458 "type" : "null"
6459 }
6460 }
6461 },
6462 "leaf" : 0,
6463 "path" : "/cluster/ha/groups",
6464 "text" : "groups"
7aacca6f
DM
6465 },
6466 {
7aacca6f
DM
6467 "children" : [
6468 {
6469 "info" : {
6470 "GET" : {
e9cd3bd4 6471 "allowtoken" : 1,
56122987 6472 "description" : "Get HA manger status.",
44660702 6473 "method" : "GET",
7aacca6f 6474 "name" : "status",
44660702
DM
6475 "parameters" : {
6476 "additionalProperties" : 0
6477 },
56122987
DM
6478 "permissions" : {
6479 "check" : [
6480 "perm",
6481 "/",
6482 [
6483 "Sys.Audit"
6484 ]
6485 ]
7aacca6f 6486 },
44660702 6487 "returns" : {
159464a9
TL
6488 "items" : {
6489 "properties" : {
6490 "crm_state" : {
6491 "description" : "For type 'service'. Service state as seen by the CRM.",
6492 "optional" : 1,
6493 "type" : "string"
6494 },
6495 "id" : {
6496 "description" : "Status entry ID (quorum, master, lrm:<node>, service:<sid>).",
6497 "type" : "string"
6498 },
6499 "max_relocate" : {
6500 "description" : "For type 'service'.",
6501 "optional" : 1,
6502 "type" : "integer"
6503 },
6504 "max_restart" : {
6505 "description" : "For type 'service'.",
6506 "optional" : 1,
6507 "type" : "integer"
6508 },
6509 "node" : {
6510 "description" : "Node associated to status entry.",
6511 "type" : "string"
6512 },
6513 "quorate" : {
6514 "description" : "For type 'quorum'. Whether the cluster is quorate or not.",
6515 "optional" : 1,
6516 "type" : "boolean"
6517 },
6518 "request_state" : {
6519 "description" : "For type 'service'. Requested service state.",
6520 "optional" : 1,
6521 "type" : "string"
6522 },
6523 "sid" : {
6524 "description" : "For type 'service'. Service ID.",
6525 "optional" : 1,
6526 "type" : "string"
6527 },
6528 "state" : {
6529 "description" : "For type 'service'. Verbose service state.",
6530 "optional" : 1,
6531 "type" : "string"
6532 },
6533 "status" : {
6534 "description" : "Status of the entry (value depends on type).",
6535 "type" : "string"
6536 },
6537 "timestamp" : {
6538 "description" : "For type 'lrm','master'. Timestamp of the status information.",
6539 "optional" : 1,
6540 "type" : "integer"
6541 },
6542 "type" : {
6543 "description" : "Type of status entry.",
6544 "enum" : [
6545 "quorum",
6546 "master",
6547 "lrm",
6548 "service"
6549 ]
6550 }
6551 },
6552 "type" : "object"
6553 },
44660702 6554 "type" : "array"
56122987
DM
6555 }
6556 }
7aacca6f 6557 },
7aacca6f 6558 "leaf" : 1,
44660702
DM
6559 "path" : "/cluster/ha/status/current",
6560 "text" : "current"
56122987
DM
6561 },
6562 {
6563 "info" : {
6564 "GET" : {
e9cd3bd4 6565 "allowtoken" : 1,
7aacca6f 6566 "description" : "Get full HA manger status, including LRM status.",
44660702
DM
6567 "method" : "GET",
6568 "name" : "manager_status",
7aacca6f
DM
6569 "parameters" : {
6570 "additionalProperties" : 0
6571 },
56122987
DM
6572 "permissions" : {
6573 "check" : [
6574 "perm",
6575 "/",
6576 [
6577 "Sys.Audit"
6578 ]
6579 ]
44660702
DM
6580 },
6581 "returns" : {
6582 "type" : "object"
7aacca6f 6583 }
56122987
DM
6584 }
6585 },
56122987 6586 "leaf" : 1,
44660702
DM
6587 "path" : "/cluster/ha/status/manager_status",
6588 "text" : "manager_status"
56122987
DM
6589 }
6590 ],
56122987
DM
6591 "info" : {
6592 "GET" : {
e9cd3bd4 6593 "allowtoken" : 1,
44660702 6594 "description" : "Directory index.",
7aacca6f 6595 "method" : "GET",
44660702
DM
6596 "name" : "index",
6597 "parameters" : {
6598 "additionalProperties" : 0
6599 },
6600 "permissions" : {
6601 "user" : "all"
6602 },
56122987 6603 "returns" : {
56122987
DM
6604 "items" : {
6605 "properties" : {},
6606 "type" : "object"
6607 },
6608 "links" : [
6609 {
44660702
DM
6610 "href" : "{name}",
6611 "rel" : "child"
56122987 6612 }
7aacca6f
DM
6613 ],
6614 "type" : "array"
44660702 6615 }
56122987 6616 }
7aacca6f 6617 },
44660702 6618 "leaf" : 0,
7aacca6f 6619 "path" : "/cluster/ha/status",
44660702 6620 "text" : "status"
56122987
DM
6621 }
6622 ],
56122987
DM
6623 "info" : {
6624 "GET" : {
e9cd3bd4 6625 "allowtoken" : 1,
7aacca6f 6626 "description" : "Directory index.",
44660702
DM
6627 "method" : "GET",
6628 "name" : "index",
6629 "parameters" : {
6630 "additionalProperties" : 0
6631 },
7aacca6f
DM
6632 "permissions" : {
6633 "check" : [
6634 "perm",
6635 "/",
6636 [
6637 "Sys.Audit"
6638 ]
6639 ]
6640 },
56122987 6641 "returns" : {
56122987 6642 "items" : {
7aacca6f
DM
6643 "properties" : {
6644 "id" : {
6645 "type" : "string"
6646 }
44660702
DM
6647 },
6648 "type" : "object"
7aacca6f
DM
6649 },
6650 "links" : [
6651 {
6652 "href" : "{id}",
6653 "rel" : "child"
6654 }
44660702
DM
6655 ],
6656 "type" : "array"
7aacca6f
DM
6657 }
6658 }
44660702
DM
6659 },
6660 "leaf" : 0,
6661 "path" : "/cluster/ha",
6662 "text" : "ha"
7aacca6f 6663 },
a9a8e3d1
DM
6664 {
6665 "children" : [
c5aa7e14
TL
6666 {
6667 "children" : [
6668 {
6669 "info" : {
6670 "DELETE" : {
6671 "allowtoken" : 1,
6672 "description" : "Delete ACME plugin configuration.",
6673 "method" : "DELETE",
6674 "name" : "delete_plugin",
6675 "parameters" : {
6676 "additionalProperties" : 0,
6677 "properties" : {
6678 "id" : {
6679 "description" : "Unique identifier for ACME plugin instance.",
6680 "format" : "pve-configid",
6681 "type" : "string",
6682 "typetext" : "<string>"
6683 }
6684 }
6685 },
6686 "permissions" : {
6687 "check" : [
6688 "perm",
6689 "/",
6690 [
6691 "Sys.Modify"
6692 ]
6693 ]
6694 },
6695 "protected" : 1,
6696 "returns" : {
6697 "type" : "null"
6698 }
6699 },
6700 "GET" : {
6701 "allowtoken" : 1,
6702 "description" : "Get ACME plugin configuration.",
6703 "method" : "GET",
6704 "name" : "get_plugin_config",
6705 "parameters" : {
6706 "additionalProperties" : 0,
6707 "properties" : {
6708 "id" : {
6709 "description" : "Unique identifier for ACME plugin instance.",
6710 "format" : "pve-configid",
6711 "type" : "string",
6712 "typetext" : "<string>"
6713 }
6714 }
6715 },
6716 "permissions" : {
6717 "check" : [
6718 "perm",
6719 "/",
6720 [
6721 "Sys.Modify"
6722 ]
6723 ]
6724 },
6725 "protected" : 1,
6726 "returns" : {
6727 "type" : "object"
6728 }
6729 },
6730 "PUT" : {
6731 "allowtoken" : 1,
6732 "description" : "Update ACME plugin configuration.",
6733 "method" : "PUT",
6734 "name" : "update_plugin",
6735 "parameters" : {
6736 "additionalProperties" : 0,
6737 "properties" : {
6738 "api" : {
6739 "description" : "API plugin name",
6740 "enum" : [
d2656385 6741 "1984hosting",
c5aa7e14
TL
6742 "acmedns",
6743 "acmeproxy",
6744 "active24",
6745 "ad",
6746 "ali",
d2656385 6747 "anx",
bd92b745 6748 "artfiles",
d2656385 6749 "arvan",
e7084ef7 6750 "aurora",
c5aa7e14
TL
6751 "autodns",
6752 "aws",
5370fa8c 6753 "azion",
c5aa7e14 6754 "azure",
bd92b745 6755 "bookmyname",
9d2e98ed 6756 "bunny",
c5aa7e14
TL
6757 "cf",
6758 "clouddns",
6759 "cloudns",
6760 "cn",
6761 "conoha",
6762 "constellix",
9d2e98ed
TL
6763 "cpanel",
6764 "curanet",
c5aa7e14
TL
6765 "cyon",
6766 "da",
6767 "ddnss",
6768 "desec",
ac70d7d1 6769 "df",
c5aa7e14 6770 "dgon",
bd92b745 6771 "dnsexit",
9d2e98ed 6772 "dnshome",
c5aa7e14 6773 "dnsimple",
9d2e98ed 6774 "dnsservices",
c5aa7e14
TL
6775 "do",
6776 "doapi",
6777 "domeneshop",
6778 "dp",
6779 "dpi",
6780 "dreamhost",
6781 "duckdns",
6782 "durabledns",
6783 "dyn",
6784 "dynu",
6785 "dynv6",
6786 "easydns",
d2656385 6787 "edgedns",
c5aa7e14
TL
6788 "euserv",
6789 "exoscale",
9d2e98ed 6790 "fornex",
c5aa7e14
TL
6791 "freedns",
6792 "gandi_livedns",
6793 "gcloud",
8dd66e12 6794 "gcore",
c5aa7e14 6795 "gd",
9d2e98ed 6796 "geoscaling",
8dd66e12 6797 "googledomains",
c5aa7e14 6798 "he",
d2656385 6799 "hetzner",
c5aa7e14
TL
6800 "hexonet",
6801 "hostingde",
d2656385 6802 "huaweicloud",
c5aa7e14 6803 "infoblox",
d2656385 6804 "infomaniak",
c5aa7e14
TL
6805 "internetbs",
6806 "inwx",
d2656385 6807 "ionos",
8dd66e12 6808 "ipv64",
c5aa7e14
TL
6809 "ispconfig",
6810 "jd",
d2656385
TL
6811 "joker",
6812 "kappernet",
c5aa7e14
TL
6813 "kas",
6814 "kinghost",
6815 "knot",
9d2e98ed 6816 "la",
c5aa7e14
TL
6817 "leaseweb",
6818 "lexicon",
6819 "linode",
6820 "linode_v4",
6821 "loopia",
6822 "lua",
6823 "maradns",
6824 "me",
6825 "miab",
6826 "misaka",
6827 "myapi",
6828 "mydevil",
6829 "mydnsjp",
9d2e98ed 6830 "mythic_beasts",
c5aa7e14
TL
6831 "namecheap",
6832 "namecom",
6833 "namesilo",
8dd66e12 6834 "nanelo",
c5aa7e14
TL
6835 "nederhost",
6836 "neodigit",
6837 "netcup",
d2656385 6838 "netlify",
c5aa7e14 6839 "nic",
d2656385
TL
6840 "njalla",
6841 "nm",
c5aa7e14
TL
6842 "nsd",
6843 "nsone",
6844 "nsupdate",
6845 "nw",
5370fa8c 6846 "oci",
c5aa7e14
TL
6847 "one",
6848 "online",
6849 "openprovider",
d2656385 6850 "openstack",
c5aa7e14
TL
6851 "opnsense",
6852 "ovh",
6853 "pdns",
6854 "pleskxml",
6855 "pointhq",
e7084ef7 6856 "porkbun",
d2656385 6857 "rackcorp",
c5aa7e14 6858 "rackspace",
9d2e98ed 6859 "rage4",
c5aa7e14
TL
6860 "rcode0",
6861 "regru",
d2656385 6862 "scaleway",
c5aa7e14
TL
6863 "schlundtech",
6864 "selectel",
9d2e98ed 6865 "selfhost",
c5aa7e14 6866 "servercow",
d2656385 6867 "simply",
c5aa7e14 6868 "tele3",
bd92b745 6869 "tencent",
d2656385 6870 "transip",
9d2e98ed 6871 "udr",
c5aa7e14
TL
6872 "ultra",
6873 "unoeuro",
6874 "variomedia",
5370fa8c 6875 "veesp",
9d2e98ed 6876 "vercel",
c5aa7e14
TL
6877 "vscale",
6878 "vultr",
e7084ef7 6879 "websupport",
d2656385 6880 "world4you",
c5aa7e14 6881 "yandex",
9d2e98ed 6882 "yc",
c5aa7e14
TL
6883 "zilore",
6884 "zone",
6885 "zonomi"
6886 ],
6887 "optional" : 1,
6888 "type" : "string"
6889 },
6890 "data" : {
6891 "description" : "DNS plugin data. (base64 encoded)",
6892 "optional" : 1,
6893 "type" : "string",
6894 "typetext" : "<string>"
6895 },
6896 "delete" : {
6897 "description" : "A list of settings you want to delete.",
6898 "format" : "pve-configid-list",
6899 "maxLength" : 4096,
6900 "optional" : 1,
6901 "type" : "string",
6902 "typetext" : "<string>"
6903 },
6904 "digest" : {
82551b2b
TL
6905 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
6906 "maxLength" : 64,
c5aa7e14
TL
6907 "optional" : 1,
6908 "type" : "string",
6909 "typetext" : "<string>"
6910 },
6911 "disable" : {
6912 "description" : "Flag to disable the config.",
6913 "optional" : 1,
6914 "type" : "boolean",
6915 "typetext" : "<boolean>"
6916 },
6917 "id" : {
6918 "description" : "ACME Plugin ID name",
6919 "format" : "pve-configid",
6920 "type" : "string",
6921 "typetext" : "<string>"
6922 },
6923 "nodes" : {
6924 "description" : "List of cluster node names.",
6925 "format" : "pve-node-list",
6926 "optional" : 1,
6927 "type" : "string",
6928 "typetext" : "<string>"
6929 },
6930 "validation-delay" : {
6931 "default" : 30,
6932 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
6933 "maximum" : 172800,
6934 "minimum" : 0,
6935 "optional" : 1,
6936 "type" : "integer",
6937 "typetext" : "<integer> (0 - 172800)"
6938 }
6939 },
6940 "type" : "object"
6941 },
6942 "permissions" : {
6943 "check" : [
6944 "perm",
6945 "/",
6946 [
6947 "Sys.Modify"
6948 ]
6949 ]
6950 },
6951 "protected" : 1,
6952 "returns" : {
6953 "type" : "null"
6954 }
6955 }
6956 },
6957 "leaf" : 1,
6958 "path" : "/cluster/acme/plugins/{id}",
6959 "text" : "{id}"
6960 }
6961 ],
6962 "info" : {
6963 "GET" : {
6964 "allowtoken" : 1,
6965 "description" : "ACME plugin index.",
6966 "method" : "GET",
6967 "name" : "index",
6968 "parameters" : {
6969 "additionalProperties" : 0,
6970 "properties" : {
6971 "type" : {
6972 "description" : "Only list ACME plugins of a specific type",
6973 "enum" : [
6974 "dns",
6975 "standalone"
6976 ],
6977 "optional" : 1,
6978 "type" : "string"
6979 }
6980 }
6981 },
6982 "permissions" : {
6983 "check" : [
6984 "perm",
6985 "/",
6986 [
6987 "Sys.Modify"
6988 ]
6989 ]
6990 },
6991 "protected" : 1,
6992 "returns" : {
6993 "items" : {
6994 "properties" : {
6995 "plugin" : {
6996 "description" : "Unique identifier for ACME plugin instance.",
6997 "format" : "pve-configid",
6998 "type" : "string"
6999 }
7000 },
7001 "type" : "object"
7002 },
7003 "links" : [
7004 {
7005 "href" : "{plugin}",
7006 "rel" : "child"
7007 }
7008 ],
7009 "type" : "array"
7010 }
7011 },
7012 "POST" : {
7013 "allowtoken" : 1,
7014 "description" : "Add ACME plugin configuration.",
7015 "method" : "POST",
7016 "name" : "add_plugin",
7017 "parameters" : {
7018 "additionalProperties" : 0,
7019 "properties" : {
7020 "api" : {
7021 "description" : "API plugin name",
7022 "enum" : [
d2656385 7023 "1984hosting",
c5aa7e14
TL
7024 "acmedns",
7025 "acmeproxy",
7026 "active24",
7027 "ad",
7028 "ali",
d2656385 7029 "anx",
bd92b745 7030 "artfiles",
d2656385 7031 "arvan",
e7084ef7 7032 "aurora",
c5aa7e14
TL
7033 "autodns",
7034 "aws",
5370fa8c 7035 "azion",
c5aa7e14 7036 "azure",
bd92b745 7037 "bookmyname",
9d2e98ed 7038 "bunny",
c5aa7e14
TL
7039 "cf",
7040 "clouddns",
7041 "cloudns",
7042 "cn",
7043 "conoha",
7044 "constellix",
9d2e98ed
TL
7045 "cpanel",
7046 "curanet",
c5aa7e14
TL
7047 "cyon",
7048 "da",
7049 "ddnss",
7050 "desec",
ac70d7d1 7051 "df",
c5aa7e14 7052 "dgon",
bd92b745 7053 "dnsexit",
9d2e98ed 7054 "dnshome",
c5aa7e14 7055 "dnsimple",
9d2e98ed 7056 "dnsservices",
c5aa7e14
TL
7057 "do",
7058 "doapi",
7059 "domeneshop",
7060 "dp",
7061 "dpi",
7062 "dreamhost",
7063 "duckdns",
7064 "durabledns",
7065 "dyn",
7066 "dynu",
7067 "dynv6",
7068 "easydns",
d2656385 7069 "edgedns",
c5aa7e14
TL
7070 "euserv",
7071 "exoscale",
9d2e98ed 7072 "fornex",
c5aa7e14
TL
7073 "freedns",
7074 "gandi_livedns",
7075 "gcloud",
8dd66e12 7076 "gcore",
c5aa7e14 7077 "gd",
9d2e98ed 7078 "geoscaling",
8dd66e12 7079 "googledomains",
c5aa7e14 7080 "he",
d2656385 7081 "hetzner",
c5aa7e14
TL
7082 "hexonet",
7083 "hostingde",
d2656385 7084 "huaweicloud",
c5aa7e14 7085 "infoblox",
d2656385 7086 "infomaniak",
c5aa7e14
TL
7087 "internetbs",
7088 "inwx",
d2656385 7089 "ionos",
8dd66e12 7090 "ipv64",
c5aa7e14
TL
7091 "ispconfig",
7092 "jd",
d2656385
TL
7093 "joker",
7094 "kappernet",
c5aa7e14
TL
7095 "kas",
7096 "kinghost",
7097 "knot",
9d2e98ed 7098 "la",
c5aa7e14
TL
7099 "leaseweb",
7100 "lexicon",
7101 "linode",
7102 "linode_v4",
7103 "loopia",
7104 "lua",
7105 "maradns",
7106 "me",
7107 "miab",
7108 "misaka",
7109 "myapi",
7110 "mydevil",
7111 "mydnsjp",
9d2e98ed 7112 "mythic_beasts",
c5aa7e14
TL
7113 "namecheap",
7114 "namecom",
7115 "namesilo",
8dd66e12 7116 "nanelo",
c5aa7e14
TL
7117 "nederhost",
7118 "neodigit",
7119 "netcup",
d2656385 7120 "netlify",
c5aa7e14 7121 "nic",
d2656385
TL
7122 "njalla",
7123 "nm",
c5aa7e14
TL
7124 "nsd",
7125 "nsone",
7126 "nsupdate",
7127 "nw",
5370fa8c 7128 "oci",
c5aa7e14
TL
7129 "one",
7130 "online",
7131 "openprovider",
d2656385 7132 "openstack",
c5aa7e14
TL
7133 "opnsense",
7134 "ovh",
7135 "pdns",
7136 "pleskxml",
7137 "pointhq",
e7084ef7 7138 "porkbun",
d2656385 7139 "rackcorp",
c5aa7e14 7140 "rackspace",
9d2e98ed 7141 "rage4",
c5aa7e14
TL
7142 "rcode0",
7143 "regru",
d2656385 7144 "scaleway",
c5aa7e14
TL
7145 "schlundtech",
7146 "selectel",
9d2e98ed 7147 "selfhost",
c5aa7e14 7148 "servercow",
d2656385 7149 "simply",
c5aa7e14 7150 "tele3",
bd92b745 7151 "tencent",
d2656385 7152 "transip",
9d2e98ed 7153 "udr",
c5aa7e14
TL
7154 "ultra",
7155 "unoeuro",
7156 "variomedia",
5370fa8c 7157 "veesp",
9d2e98ed 7158 "vercel",
c5aa7e14
TL
7159 "vscale",
7160 "vultr",
e7084ef7 7161 "websupport",
d2656385 7162 "world4you",
c5aa7e14 7163 "yandex",
9d2e98ed 7164 "yc",
c5aa7e14
TL
7165 "zilore",
7166 "zone",
7167 "zonomi"
7168 ],
7169 "optional" : 1,
7170 "type" : "string"
7171 },
7172 "data" : {
7173 "description" : "DNS plugin data. (base64 encoded)",
7174 "optional" : 1,
7175 "type" : "string",
7176 "typetext" : "<string>"
7177 },
7178 "disable" : {
7179 "description" : "Flag to disable the config.",
7180 "optional" : 1,
7181 "type" : "boolean",
7182 "typetext" : "<boolean>"
7183 },
7184 "id" : {
7185 "description" : "ACME Plugin ID name",
7186 "format" : "pve-configid",
7187 "type" : "string",
7188 "typetext" : "<string>"
7189 },
7190 "nodes" : {
7191 "description" : "List of cluster node names.",
7192 "format" : "pve-node-list",
7193 "optional" : 1,
7194 "type" : "string",
7195 "typetext" : "<string>"
7196 },
7197 "type" : {
7198 "description" : "ACME challenge type.",
7199 "enum" : [
7200 "dns",
7201 "standalone"
7202 ],
7203 "type" : "string"
7204 },
7205 "validation-delay" : {
7206 "default" : 30,
7207 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
7208 "maximum" : 172800,
7209 "minimum" : 0,
7210 "optional" : 1,
7211 "type" : "integer",
7212 "typetext" : "<integer> (0 - 172800)"
7213 }
7214 },
7215 "type" : "object"
7216 },
7217 "permissions" : {
7218 "check" : [
7219 "perm",
7220 "/",
7221 [
7222 "Sys.Modify"
7223 ]
7224 ]
7225 },
7226 "protected" : 1,
7227 "returns" : {
7228 "type" : "null"
7229 }
7230 }
7231 },
7232 "leaf" : 0,
7233 "path" : "/cluster/acme/plugins",
7234 "text" : "plugins"
7235 },
a9a8e3d1
DM
7236 {
7237 "children" : [
7238 {
7239 "info" : {
7240 "DELETE" : {
e9cd3bd4 7241 "allowtoken" : 1,
a9a8e3d1
DM
7242 "description" : "Deactivate existing ACME account at CA.",
7243 "method" : "DELETE",
7244 "name" : "deactivate_account",
7245 "parameters" : {
7246 "additionalProperties" : 0,
7247 "properties" : {
7248 "name" : {
7249 "default" : "default",
7250 "description" : "ACME account config file name.",
7251 "format" : "pve-configid",
7252 "format_description" : "name",
7253 "optional" : 1,
7254 "type" : "string",
7255 "typetext" : "<name>"
7256 }
7257 }
7258 },
7259 "protected" : 1,
7260 "returns" : {
7261 "type" : "string"
7262 }
7263 },
7264 "GET" : {
e9cd3bd4 7265 "allowtoken" : 1,
a9a8e3d1
DM
7266 "description" : "Return existing ACME account information.",
7267 "method" : "GET",
7268 "name" : "get_account",
7269 "parameters" : {
7270 "additionalProperties" : 0,
7271 "properties" : {
7272 "name" : {
7273 "default" : "default",
7274 "description" : "ACME account config file name.",
7275 "format" : "pve-configid",
7276 "format_description" : "name",
7277 "optional" : 1,
7278 "type" : "string",
7279 "typetext" : "<name>"
7280 }
7281 }
7282 },
7283 "protected" : 1,
7284 "returns" : {
7285 "additionalProperties" : 0,
7286 "properties" : {
7287 "account" : {
7288 "optional" : 1,
4d47f125 7289 "renderer" : "yaml",
a9a8e3d1
DM
7290 "type" : "object"
7291 },
7292 "directory" : {
7293 "description" : "URL of ACME CA directory endpoint.",
7294 "optional" : 1,
7295 "pattern" : "^https?://.*",
7296 "type" : "string"
7297 },
7298 "location" : {
7299 "optional" : 1,
7300 "type" : "string"
7301 },
7302 "tos" : {
7303 "optional" : 1,
7304 "type" : "string"
7305 }
7306 },
7307 "type" : "object"
7308 }
7309 },
7310 "PUT" : {
e9cd3bd4 7311 "allowtoken" : 1,
a9a8e3d1
DM
7312 "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
7313 "method" : "PUT",
7314 "name" : "update_account",
7315 "parameters" : {
7316 "additionalProperties" : 0,
7317 "properties" : {
7318 "contact" : {
7319 "description" : "Contact email addresses.",
7320 "format" : "email-list",
7321 "optional" : 1,
7322 "type" : "string",
7323 "typetext" : "<string>"
7324 },
7325 "name" : {
7326 "default" : "default",
7327 "description" : "ACME account config file name.",
7328 "format" : "pve-configid",
7329 "format_description" : "name",
7330 "optional" : 1,
7331 "type" : "string",
7332 "typetext" : "<name>"
7333 }
7334 }
7335 },
7336 "protected" : 1,
7337 "returns" : {
7338 "type" : "string"
7339 }
7340 }
7341 },
7342 "leaf" : 1,
7343 "path" : "/cluster/acme/account/{name}",
7344 "text" : "{name}"
7345 }
7346 ],
7347 "info" : {
7348 "GET" : {
e9cd3bd4 7349 "allowtoken" : 1,
a9a8e3d1
DM
7350 "description" : "ACMEAccount index.",
7351 "method" : "GET",
7352 "name" : "account_index",
7353 "parameters" : {
7354 "additionalProperties" : 0
7355 },
7356 "permissions" : {
7357 "user" : "all"
7358 },
7359 "protected" : 1,
7360 "returns" : {
7361 "items" : {
7362 "properties" : {},
7363 "type" : "object"
7364 },
7365 "links" : [
7366 {
7367 "href" : "{name}",
7368 "rel" : "child"
7369 }
7370 ],
7371 "type" : "array"
7372 }
7373 },
7374 "POST" : {
e9cd3bd4 7375 "allowtoken" : 1,
a9a8e3d1
DM
7376 "description" : "Register a new ACME account with CA.",
7377 "method" : "POST",
7378 "name" : "register_account",
7379 "parameters" : {
7380 "additionalProperties" : 0,
7381 "properties" : {
7382 "contact" : {
7383 "description" : "Contact email addresses.",
7384 "format" : "email-list",
7385 "type" : "string",
7386 "typetext" : "<string>"
7387 },
7388 "directory" : {
7389 "default" : "https://acme-v02.api.letsencrypt.org/directory",
7390 "description" : "URL of ACME CA directory endpoint.",
7391 "optional" : 1,
7392 "pattern" : "^https?://.*",
7393 "type" : "string"
7394 },
7395 "name" : {
7396 "default" : "default",
7397 "description" : "ACME account config file name.",
7398 "format" : "pve-configid",
7399 "format_description" : "name",
7400 "optional" : 1,
7401 "type" : "string",
7402 "typetext" : "<name>"
7403 },
7404 "tos_url" : {
7405 "description" : "URL of CA TermsOfService - setting this indicates agreement.",
7406 "optional" : 1,
7407 "type" : "string",
7408 "typetext" : "<string>"
7409 }
7410 }
7411 },
7412 "protected" : 1,
7413 "returns" : {
7414 "type" : "string"
7415 }
7416 }
7417 },
7418 "leaf" : 0,
7419 "path" : "/cluster/acme/account",
7420 "text" : "account"
7421 },
7422 {
7423 "info" : {
7424 "GET" : {
e9cd3bd4 7425 "allowtoken" : 1,
a9a8e3d1
DM
7426 "description" : "Retrieve ACME TermsOfService URL from CA.",
7427 "method" : "GET",
7428 "name" : "get_tos",
7429 "parameters" : {
7430 "additionalProperties" : 0,
7431 "properties" : {
7432 "directory" : {
7433 "default" : "https://acme-v02.api.letsencrypt.org/directory",
7434 "description" : "URL of ACME CA directory endpoint.",
7435 "optional" : 1,
7436 "pattern" : "^https?://.*",
7437 "type" : "string"
7438 }
7439 }
7440 },
5da3d723
TL
7441 "permissions" : {
7442 "user" : "all"
7443 },
a9a8e3d1
DM
7444 "returns" : {
7445 "description" : "ACME TermsOfService URL.",
5c1699e5 7446 "optional" : 1,
a9a8e3d1
DM
7447 "type" : "string"
7448 }
7449 }
7450 },
7451 "leaf" : 1,
7452 "path" : "/cluster/acme/tos",
7453 "text" : "tos"
7454 },
7455 {
7456 "info" : {
7457 "GET" : {
e9cd3bd4 7458 "allowtoken" : 1,
a9a8e3d1
DM
7459 "description" : "Get named known ACME directory endpoints.",
7460 "method" : "GET",
7461 "name" : "get_directories",
7462 "parameters" : {
7463 "additionalProperties" : 0
7464 },
5da3d723
TL
7465 "permissions" : {
7466 "user" : "all"
7467 },
a9a8e3d1
DM
7468 "returns" : {
7469 "items" : {
7470 "additionalProperties" : 0,
7471 "properties" : {
7472 "name" : {
7473 "type" : "string"
7474 },
7475 "url" : {
7476 "description" : "URL of ACME CA directory endpoint.",
7477 "pattern" : "^https?://.*",
7478 "type" : "string"
7479 }
7480 },
7481 "type" : "object"
7482 },
7483 "type" : "array"
7484 }
7485 }
7486 },
7487 "leaf" : 1,
7488 "path" : "/cluster/acme/directories",
7489 "text" : "directories"
ac70d7d1
TL
7490 },
7491 {
7492 "info" : {
7493 "GET" : {
7494 "allowtoken" : 1,
7495 "description" : "Get schema of ACME challenge types.",
7496 "method" : "GET",
7497 "name" : "challengeschema",
7498 "parameters" : {
7499 "additionalProperties" : 0
7500 },
7501 "permissions" : {
7502 "user" : "all"
7503 },
7504 "returns" : {
7505 "items" : {
7506 "additionalProperties" : 0,
7507 "properties" : {
7508 "id" : {
7509 "type" : "string"
7510 },
7511 "name" : {
7512 "description" : "Human readable name, falls back to id",
7513 "type" : "string"
7514 },
7515 "schema" : {
7516 "type" : "object"
7517 },
7518 "type" : {
7519 "type" : "string"
7520 }
7521 },
7522 "type" : "object"
7523 },
7524 "type" : "array"
7525 }
7526 }
7527 },
7528 "leaf" : 1,
7529 "path" : "/cluster/acme/challenge-schema",
7530 "text" : "challenge-schema"
a9a8e3d1
DM
7531 }
7532 ],
7533 "info" : {
7534 "GET" : {
e9cd3bd4 7535 "allowtoken" : 1,
a9a8e3d1
DM
7536 "description" : "ACMEAccount index.",
7537 "method" : "GET",
7538 "name" : "index",
7539 "parameters" : {
7540 "additionalProperties" : 0
7541 },
7542 "permissions" : {
7543 "user" : "all"
7544 },
7545 "returns" : {
7546 "items" : {
7547 "properties" : {},
7548 "type" : "object"
7549 },
7550 "links" : [
7551 {
7552 "href" : "{name}",
7553 "rel" : "child"
7554 }
7555 ],
7556 "type" : "array"
7557 }
7558 }
7559 },
7560 "leaf" : 0,
7561 "path" : "/cluster/acme",
7562 "text" : "acme"
7563 },
1c532546
TL
7564 {
7565 "children" : [
7566 {
7567 "info" : {
7568 "GET" : {
e9cd3bd4 7569 "allowtoken" : 1,
1c532546
TL
7570 "description" : "Get ceph metadata.",
7571 "method" : "GET",
7572 "name" : "metadata",
7573 "parameters" : {
c5aa7e14
TL
7574 "additionalProperties" : 0,
7575 "properties" : {
7576 "scope" : {
7577 "default" : "all",
7578 "enum" : [
7579 "all",
7580 "versions"
7581 ],
7582 "optional" : 1,
7583 "type" : "string"
7584 }
7585 }
1c532546
TL
7586 },
7587 "permissions" : {
7588 "check" : [
7589 "perm",
7590 "/",
7591 [
7592 "Sys.Audit",
7593 "Datastore.Audit"
7594 ],
7595 "any",
7596 1
7597 ]
7598 },
7599 "protected" : 1,
7600 "returns" : {
9d2e98ed
TL
7601 "description" : "Items for each type of service containing objects for each instance.",
7602 "properties" : {
7603 "mds" : {
7604 "description" : "Metadata servers configured in the cluster and their properties.",
7605 "properties" : {
7606 "{id}" : {
7607 "description" : "Useful properties are listed, but not the full list.",
7608 "properties" : {
7609 "addr" : {
7610 "description" : "Bind addresses and ports.",
7611 "type" : "string"
7612 },
7613 "ceph_release" : {
7614 "description" : "Ceph release codename currently used.",
7615 "type" : "string"
7616 },
7617 "ceph_version" : {
7618 "description" : "Version info currently used by the service.",
7619 "type" : "string"
7620 },
7621 "ceph_version_short" : {
7622 "description" : "Short version (numerical) info currently used by the service.",
7623 "type" : "string"
7624 },
7625 "hostname" : {
7626 "description" : "Hostname on which the service is running.",
7627 "type" : "string"
7628 },
7629 "mem_swap_kb" : {
7630 "description" : "Memory of the service currently in swap.",
7631 "type" : "integer"
7632 },
7633 "mem_total_kb" : {
7634 "description" : "Memory consumption of the service.",
7635 "type" : "integer"
7636 },
7637 "name" : {
7638 "description" : "Name of the service instance.",
7639 "type" : "string"
7640 }
7641 },
7642 "type" : "object"
7643 }
7644 },
7645 "type" : "object"
7646 },
7647 "mgr" : {
7648 "description" : "Managers configured in the cluster and their properties.",
7649 "properties" : {
7650 "{id}" : {
7651 "description" : "Useful properties are listed, but not the full list.",
7652 "properties" : {
7653 "addr" : {
7654 "description" : "Bind address",
7655 "type" : "string"
7656 },
7657 "ceph_release" : {
7658 "description" : "Ceph release codename currently used.",
7659 "type" : "string"
7660 },
7661 "ceph_version" : {
7662 "description" : "Version info currently used by the service.",
7663 "type" : "string"
7664 },
7665 "ceph_version_short" : {
7666 "description" : "Short version (numerical) info currently used by the service.",
7667 "type" : "string"
7668 },
7669 "hostname" : {
7670 "description" : "Hostname on which the service is running.",
7671 "type" : "string"
7672 },
7673 "mem_swap_kb" : {
7674 "description" : "Memory of the service currently in swap.",
7675 "type" : "integer"
7676 },
7677 "mem_total_kb" : {
7678 "description" : "Memory consumption of the service.",
7679 "type" : "integer"
7680 },
7681 "name" : {
7682 "description" : "Name of the service instance.",
7683 "type" : "string"
7684 }
7685 },
7686 "type" : "object"
7687 }
7688 },
7689 "type" : "object"
7690 },
7691 "mon" : {
7692 "description" : "Monitors configured in the cluster and their properties.",
7693 "properties" : {
7694 "{id}" : {
7695 "description" : "Useful properties are listed, but not the full list.",
7696 "properties" : {
7697 "addrs" : {
7698 "description" : "Bind addresses and ports.",
7699 "type" : "string"
7700 },
7701 "ceph_release" : {
7702 "description" : "Ceph release codename currently used.",
7703 "type" : "string"
7704 },
7705 "ceph_version" : {
7706 "description" : "Version info currently used by the service.",
7707 "type" : "string"
7708 },
7709 "ceph_version_short" : {
7710 "description" : "Short version (numerical) info currently used by the service.",
7711 "type" : "string"
7712 },
7713 "hostname" : {
7714 "description" : "Hostname on which the service is running.",
7715 "type" : "string"
7716 },
7717 "mem_swap_kb" : {
7718 "description" : "Memory of the service currently in swap.",
7719 "type" : "integer"
7720 },
7721 "mem_total_kb" : {
7722 "description" : "Memory consumption of the service.",
7723 "type" : "integer"
7724 },
7725 "name" : {
7726 "description" : "Name of the service instance.",
7727 "type" : "string"
7728 }
7729 },
7730 "type" : "object"
7731 }
7732 },
7733 "type" : "object"
7734 },
7735 "node" : {
7736 "description" : "Ceph version installed on the nodes.",
7737 "properties" : {
7738 "{node}" : {
7739 "properties" : {
7740 "buildcommit" : {
7741 "description" : "GIT commit used for the build.",
7742 "type" : "string"
7743 },
7744 "version" : {
7745 "description" : "Version info.",
7746 "properties" : {
7747 "parts" : {
7748 "description" : "major, minor & patch",
7749 "type" : "array"
7750 },
7751 "str" : {
7752 "description" : "Version as single string.",
7753 "type" : "string"
7754 }
7755 },
7756 "type" : "object"
7757 }
7758 },
7759 "type" : "object"
7760 }
7761 },
7762 "type" : "object"
7763 },
7764 "osd" : {
7765 "description" : "OSDs configured in the cluster and their properties.",
7766 "properties" : {
7767 "{id}" : {
7768 "description" : "Useful properties are listed, but not the full list.",
7769 "properties" : {
7770 "back_addr" : {
7771 "description" : "Bind addresses and ports for backend inter OSD traffic.",
7772 "type" : "string"
7773 },
7774 "ceph_release" : {
7775 "description" : "Ceph release codename currently used.",
7776 "type" : "string"
7777 },
7778 "ceph_version" : {
7779 "description" : "Version info currently used by the service.",
7780 "type" : "string"
7781 },
7782 "ceph_version_short" : {
7783 "description" : "Short version (numerical) info currently used by the service.",
7784 "type" : "string"
7785 },
7786 "device_id" : {
7787 "description" : "Devices used by the OSD.",
7788 "type" : "string"
7789 },
7790 "front_addr" : {
7791 "description" : "Bind addresses and ports for frontend traffic to OSDs.",
7792 "type" : "string"
7793 },
7794 "hostname" : {
7795 "description" : "Hostname on which the service is running.",
7796 "type" : "string"
7797 },
7798 "id" : {
7799 "description" : "OSD ID.",
7800 "type" : "integer"
7801 },
7802 "mem_swap_kb" : {
7803 "description" : "Memory of the service currently in swap.",
7804 "type" : "integer"
7805 },
7806 "mem_total_kb" : {
7807 "description" : "Memory consumption of the service.",
7808 "type" : "integer"
7809 },
7810 "osd_data" : {
7811 "description" : "Path to the OSD data directory.",
7812 "type" : "string"
7813 },
7814 "osd_objectstore" : {
7815 "description" : "OSD objectstore type.",
7816 "type" : "string"
7817 }
7818 },
7819 "type" : "object"
7820 }
7821 },
7822 "type" : "array"
7823 }
7824 },
1c532546
TL
7825 "type" : "object"
7826 }
7827 }
7828 },
7829 "leaf" : 1,
7830 "path" : "/cluster/ceph/metadata",
7831 "text" : "metadata"
7832 },
7833 {
7834 "info" : {
7835 "GET" : {
e9cd3bd4 7836 "allowtoken" : 1,
1c532546
TL
7837 "description" : "Get ceph status.",
7838 "method" : "GET",
7839 "name" : "status",
7840 "parameters" : {
7841 "additionalProperties" : 0
7842 },
7843 "permissions" : {
7844 "check" : [
7845 "perm",
7846 "/",
7847 [
7848 "Sys.Audit",
7849 "Datastore.Audit"
7850 ],
7851 "any",
7852 1
7853 ]
7854 },
7855 "protected" : 1,
7856 "returns" : {
7857 "type" : "object"
7858 }
7859 }
7860 },
7861 "leaf" : 1,
7862 "path" : "/cluster/ceph/status",
7863 "text" : "status"
7864 },
7865 {
7866 "children" : [
7867 {
7868 "info" : {
7869 "GET" : {
e9cd3bd4 7870 "allowtoken" : 1,
1c532546
TL
7871 "description" : "Get the status of a specific ceph flag.",
7872 "method" : "GET",
7873 "name" : "get_flag",
7874 "parameters" : {
7875 "additionalProperties" : 0,
7876 "properties" : {
7877 "flag" : {
7878 "description" : "The name of the flag name to get.",
7879 "enum" : [
7880 "nobackfill",
7881 "nodeep-scrub",
7882 "nodown",
7883 "noin",
7884 "noout",
7885 "norebalance",
7886 "norecover",
7887 "noscrub",
7888 "notieragent",
7889 "noup",
7890 "pause"
7891 ],
7892 "type" : "string"
7893 }
7894 }
7895 },
7896 "permissions" : {
7897 "check" : [
7898 "perm",
7899 "/",
7900 [
7901 "Sys.Audit"
7902 ]
7903 ]
7904 },
7905 "protected" : 1,
7906 "returns" : {
7907 "type" : "boolean"
7908 }
7909 },
7910 "PUT" : {
e9cd3bd4 7911 "allowtoken" : 1,
1c532546
TL
7912 "description" : "Set or clear (unset) a specific ceph flag",
7913 "method" : "PUT",
7914 "name" : "update_flag",
7915 "parameters" : {
7916 "additionalProperties" : 0,
7917 "properties" : {
7918 "flag" : {
7919 "description" : "The ceph flag to update",
7920 "enum" : [
7921 "nobackfill",
7922 "nodeep-scrub",
7923 "nodown",
7924 "noin",
7925 "noout",
7926 "norebalance",
7927 "norecover",
7928 "noscrub",
7929 "notieragent",
7930 "noup",
7931 "pause"
7932 ],
7933 "type" : "string"
7934 },
7935 "value" : {
7936 "description" : "The new value of the flag",
7937 "type" : "boolean",
7938 "typetext" : "<boolean>"
7939 }
7940 }
7941 },
7942 "permissions" : {
7943 "check" : [
7944 "perm",
7945 "/",
7946 [
7947 "Sys.Modify"
7948 ]
7949 ]
7950 },
7951 "protected" : 1,
7952 "returns" : {
7953 "type" : "null"
7954 }
7955 }
7956 },
7957 "leaf" : 1,
7958 "path" : "/cluster/ceph/flags/{flag}",
7959 "text" : "{flag}"
7960 }
7961 ],
7962 "info" : {
7963 "GET" : {
e9cd3bd4 7964 "allowtoken" : 1,
1c532546
TL
7965 "description" : "get the status of all ceph flags",
7966 "method" : "GET",
7967 "name" : "get_all_flags",
7968 "parameters" : {
7969 "additionalProperties" : 0
7970 },
7971 "permissions" : {
7972 "check" : [
7973 "perm",
7974 "/",
7975 [
7976 "Sys.Audit"
7977 ]
7978 ]
7979 },
7980 "protected" : 1,
7981 "returns" : {
7982 "items" : {
7983 "additionalProperties" : 1,
7984 "properties" : {
9d2e98ed
TL
7985 "description" : {
7986 "description" : "Flag description.",
7987 "type" : "string"
7988 },
1c532546
TL
7989 "name" : {
7990 "description" : "Flag name.",
7991 "enum" : [
7992 "nobackfill",
7993 "nodeep-scrub",
7994 "nodown",
7995 "noin",
7996 "noout",
7997 "norebalance",
7998 "norecover",
7999 "noscrub",
8000 "notieragent",
8001 "noup",
8002 "pause"
8003 ],
8004 "type" : "string"
9d2e98ed
TL
8005 },
8006 "value" : {
8007 "description" : "Flag value.",
8008 "type" : "boolean"
1c532546
TL
8009 }
8010 },
8011 "type" : "object"
8012 },
8013 "links" : [
8014 {
8015 "href" : "{name}",
8016 "rel" : "child"
8017 }
8018 ],
8019 "type" : "array"
8020 }
8021 },
8022 "PUT" : {
e9cd3bd4 8023 "allowtoken" : 1,
1c532546
TL
8024 "description" : "Set/Unset multiple ceph flags at once.",
8025 "method" : "PUT",
8026 "name" : "set_flags",
8027 "parameters" : {
8028 "additionalProperties" : 0,
8029 "properties" : {
8030 "nobackfill" : {
8031 "description" : "Backfilling of PGs is suspended.",
8032 "optional" : 1,
8033 "type" : "boolean",
8034 "typetext" : "<boolean>"
8035 },
8036 "nodeep-scrub" : {
8037 "description" : "Deep Scrubbing is disabled.",
8038 "optional" : 1,
8039 "type" : "boolean",
8040 "typetext" : "<boolean>"
8041 },
8042 "nodown" : {
8043 "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
8044 "optional" : 1,
8045 "type" : "boolean",
8046 "typetext" : "<boolean>"
8047 },
8048 "noin" : {
8049 "description" : "OSDs that were previously marked out will not be marked back in when they start.",
8050 "optional" : 1,
8051 "type" : "boolean",
8052 "typetext" : "<boolean>"
8053 },
8054 "noout" : {
8055 "description" : "OSDs will not automatically be marked out after the configured interval.",
8056 "optional" : 1,
8057 "type" : "boolean",
8058 "typetext" : "<boolean>"
8059 },
8060 "norebalance" : {
8061 "description" : "Rebalancing of PGs is suspended.",
8062 "optional" : 1,
8063 "type" : "boolean",
8064 "typetext" : "<boolean>"
8065 },
8066 "norecover" : {
8067 "description" : "Recovery of PGs is suspended.",
8068 "optional" : 1,
8069 "type" : "boolean",
8070 "typetext" : "<boolean>"
8071 },
8072 "noscrub" : {
8073 "description" : "Scrubbing is disabled.",
8074 "optional" : 1,
8075 "type" : "boolean",
8076 "typetext" : "<boolean>"
8077 },
8078 "notieragent" : {
8079 "description" : "Cache tiering activity is suspended.",
8080 "optional" : 1,
8081 "type" : "boolean",
8082 "typetext" : "<boolean>"
8083 },
8084 "noup" : {
8085 "description" : "OSDs are not allowed to start.",
8086 "optional" : 1,
8087 "type" : "boolean",
8088 "typetext" : "<boolean>"
8089 },
8090 "pause" : {
8091 "description" : "Pauses read and writes.",
8092 "optional" : 1,
8093 "type" : "boolean",
8094 "typetext" : "<boolean>"
8095 }
8096 }
8097 },
8098 "permissions" : {
8099 "check" : [
8100 "perm",
8101 "/",
8102 [
8103 "Sys.Modify"
8104 ]
8105 ]
8106 },
8107 "protected" : 1,
8108 "returns" : {
8109 "type" : "string"
8110 }
8111 }
8112 },
8113 "leaf" : 0,
8114 "path" : "/cluster/ceph/flags",
8115 "text" : "flags"
8116 }
8117 ],
8118 "info" : {
8119 "GET" : {
e9cd3bd4 8120 "allowtoken" : 1,
1c532546
TL
8121 "description" : "Cluster ceph index.",
8122 "method" : "GET",
8123 "name" : "cephindex",
8124 "parameters" : {
8125 "additionalProperties" : 0
8126 },
8127 "permissions" : {
8128 "user" : "all"
8129 },
8130 "returns" : {
8131 "items" : {
8132 "properties" : {},
8133 "type" : "object"
8134 },
8135 "links" : [
8136 {
8137 "href" : "{name}",
8138 "rel" : "child"
8139 }
8140 ],
8141 "type" : "array"
8142 }
8143 }
8144 },
8145 "leaf" : 0,
8146 "path" : "/cluster/ceph",
8147 "text" : "ceph"
8148 },
5370fa8c
TL
8149 {
8150 "children" : [
159464a9
TL
8151 {
8152 "children" : [
8153 {
8154 "info" : {
8155 "DELETE" : {
8156 "allowtoken" : 1,
8157 "description" : "Delete realm-sync job definition.",
8158 "method" : "DELETE",
8159 "name" : "delete_job",
8160 "parameters" : {
8161 "additionalProperties" : 0,
8162 "properties" : {
8163 "id" : {
8164 "format" : "pve-configid",
8165 "type" : "string",
8166 "typetext" : "<string>"
8167 }
8168 }
8169 },
8170 "permissions" : {
8171 "check" : [
8172 "perm",
8173 "/",
8174 [
8175 "Sys.Modify"
8176 ]
8177 ]
8178 },
8179 "protected" : 1,
8180 "returns" : {
8181 "type" : "null"
8182 }
8183 },
8184 "GET" : {
8185 "allowtoken" : 1,
8186 "description" : "Read realm-sync job definition.",
8187 "method" : "GET",
8188 "name" : "read_job",
8189 "parameters" : {
8190 "additionalProperties" : 0,
8191 "properties" : {
8192 "id" : {
8193 "format" : "pve-configid",
8194 "type" : "string",
8195 "typetext" : "<string>"
8196 }
8197 }
8198 },
8199 "permissions" : {
8200 "check" : [
8201 "perm",
8202 "/",
8203 [
8204 "Sys.Audit"
8205 ]
8206 ]
8207 },
8208 "returns" : {
8209 "type" : "object"
8210 }
8211 },
8212 "POST" : {
8213 "allowtoken" : 1,
8214 "description" : "Create new realm-sync job.",
8215 "method" : "POST",
8216 "name" : "create_job",
8217 "parameters" : {
8218 "additionalProperties" : 0,
8219 "properties" : {
8220 "comment" : {
8221 "description" : "Description for the Job.",
8222 "maxLength" : 512,
8223 "optional" : 1,
8224 "type" : "string",
8225 "typetext" : "<string>"
8226 },
8227 "enable-new" : {
8228 "default" : "1",
8229 "description" : "Enable newly synced users immediately.",
8230 "optional" : 1,
8231 "type" : "boolean",
8232 "typetext" : "<boolean>"
8233 },
8234 "enabled" : {
8235 "default" : 1,
8236 "description" : "Determines if the job is enabled.",
8237 "optional" : 1,
8238 "type" : "boolean",
8239 "typetext" : "<boolean>"
8240 },
8241 "id" : {
8242 "description" : "The ID of the job.",
8243 "format" : "pve-configid",
8244 "maxLength" : 64,
8245 "type" : "string",
8246 "typetext" : "<string>"
8247 },
8248 "realm" : {
8249 "description" : "Authentication domain ID",
8250 "format" : "pve-realm",
8251 "maxLength" : 32,
8252 "optional" : 1,
8253 "type" : "string",
8254 "typetext" : "<string>"
8255 },
8256 "remove-vanished" : {
8257 "default" : "none",
8258 "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).",
8259 "optional" : 1,
8260 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
8261 "type" : "string",
8262 "typetext" : "([acl];[properties];[entry])|none"
8263 },
8264 "schedule" : {
8265 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
8266 "format" : "pve-calendar-event",
8267 "maxLength" : 128,
8268 "type" : "string",
8269 "typetext" : "<string>"
8270 },
8271 "scope" : {
8272 "description" : "Select what to sync.",
8273 "enum" : [
8274 "users",
8275 "groups",
8276 "both"
8277 ],
8278 "optional" : 1,
8279 "type" : "string"
8280 }
8281 },
8282 "type" : "object"
8283 },
8284 "permissions" : {
8285 "check" : [
8286 "and",
8287 [
8288 "perm",
8289 "/access/realm/{realm}",
8290 [
8291 "Realm.AllocateUser"
8292 ]
8293 ],
8294 [
8295 "perm",
8296 "/access/groups",
8297 [
8298 "User.Modify"
8299 ]
8300 ]
8301 ],
8302 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
8303 },
8304 "protected" : 1,
8305 "returns" : {
8306 "type" : "null"
8307 }
8308 },
8309 "PUT" : {
8310 "allowtoken" : 1,
8311 "description" : "Update realm-sync job definition.",
8312 "method" : "PUT",
8313 "name" : "update_job",
8314 "parameters" : {
8315 "additionalProperties" : 0,
8316 "properties" : {
8317 "comment" : {
8318 "description" : "Description for the Job.",
8319 "maxLength" : 512,
8320 "optional" : 1,
8321 "type" : "string",
8322 "typetext" : "<string>"
8323 },
8324 "delete" : {
8325 "description" : "A list of settings you want to delete.",
8326 "format" : "pve-configid-list",
8327 "maxLength" : 4096,
8328 "optional" : 1,
8329 "type" : "string",
8330 "typetext" : "<string>"
8331 },
8332 "enable-new" : {
8333 "default" : "1",
8334 "description" : "Enable newly synced users immediately.",
8335 "optional" : 1,
8336 "type" : "boolean",
8337 "typetext" : "<boolean>"
8338 },
8339 "enabled" : {
8340 "default" : 1,
8341 "description" : "Determines if the job is enabled.",
8342 "optional" : 1,
8343 "type" : "boolean",
8344 "typetext" : "<boolean>"
8345 },
8346 "id" : {
8347 "description" : "The ID of the job.",
8348 "format" : "pve-configid",
8349 "maxLength" : 64,
8350 "type" : "string",
8351 "typetext" : "<string>"
8352 },
8353 "remove-vanished" : {
8354 "default" : "none",
8355 "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).",
8356 "optional" : 1,
8357 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
8358 "type" : "string",
8359 "typetext" : "([acl];[properties];[entry])|none"
8360 },
8361 "schedule" : {
8362 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
8363 "format" : "pve-calendar-event",
8364 "maxLength" : 128,
8365 "type" : "string",
8366 "typetext" : "<string>"
8367 },
8368 "scope" : {
8369 "description" : "Select what to sync.",
8370 "enum" : [
8371 "users",
8372 "groups",
8373 "both"
8374 ],
8375 "optional" : 1,
8376 "type" : "string"
8377 }
8378 },
8379 "type" : "object"
8380 },
8381 "permissions" : {
8382 "check" : [
8383 "and",
8384 [
8385 "perm",
8386 "/access/realm/{realm}",
8387 [
8388 "Realm.AllocateUser"
8389 ]
8390 ],
8391 [
8392 "perm",
8393 "/access/groups",
8394 [
8395 "User.Modify"
8396 ]
8397 ]
8398 ],
8399 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
8400 },
8401 "protected" : 1,
8402 "returns" : {
8403 "type" : "null"
8404 }
8405 }
8406 },
8407 "leaf" : 1,
8408 "path" : "/cluster/jobs/realm-sync/{id}",
8409 "text" : "{id}"
8410 }
8411 ],
8412 "info" : {
8413 "GET" : {
8414 "allowtoken" : 1,
8415 "description" : "List configured realm-sync-jobs.",
8416 "method" : "GET",
8417 "name" : "syncjob_index",
8418 "parameters" : {
8419 "additionalProperties" : 0
8420 },
8421 "permissions" : {
8422 "check" : [
8423 "perm",
8424 "/",
8425 [
8426 "Sys.Audit"
8427 ]
8428 ]
8429 },
8430 "returns" : {
8431 "items" : {
8432 "properties" : {
8433 "comment" : {
8434 "description" : "A comment for the job.",
8435 "optional" : 1,
8436 "type" : "string"
8437 },
8438 "enabled" : {
8439 "description" : "If the job is enabled or not.",
8440 "type" : "boolean"
8441 },
8442 "id" : {
8443 "description" : "The ID of the entry.",
8444 "type" : "string"
8445 },
8446 "last-run" : {
8447 "description" : "Last execution time of the job in seconds since the beginning of the UNIX epoch",
8448 "optional" : 1,
8449 "type" : "integer"
8450 },
8451 "next-run" : {
8452 "description" : "Next planned execution time of the job in seconds since the beginning of the UNIX epoch.",
8453 "optional" : 1,
8454 "type" : "integer"
8455 },
8456 "realm" : {
8457 "description" : "Authentication domain ID",
8458 "format" : "pve-realm",
8459 "maxLength" : 32,
8460 "type" : "string"
8461 },
8462 "remove-vanished" : {
8463 "default" : "none",
8464 "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).",
8465 "optional" : "1",
8466 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
8467 "type" : "string",
8468 "typetext" : "([acl];[properties];[entry])|none"
8469 },
8470 "schedule" : {
8471 "description" : "The configured sync schedule.",
8472 "type" : "string"
8473 },
8474 "scope" : {
8475 "description" : "Select what to sync.",
8476 "enum" : [
8477 "users",
8478 "groups",
8479 "both"
8480 ],
8481 "optional" : "1",
8482 "type" : "string"
8483 }
8484 },
8485 "type" : "object"
8486 },
8487 "links" : [
8488 {
8489 "href" : "{id}",
8490 "rel" : "child"
8491 }
8492 ],
8493 "type" : "array"
8494 }
8495 }
8496 },
8497 "leaf" : 0,
8498 "path" : "/cluster/jobs/realm-sync",
8499 "text" : "realm-sync"
8500 },
5370fa8c
TL
8501 {
8502 "info" : {
8503 "GET" : {
8504 "allowtoken" : 1,
8505 "description" : "Returns a list of future schedule runtimes.",
8506 "method" : "GET",
8507 "name" : "schedule-analyze",
8508 "parameters" : {
8509 "additionalProperties" : 0,
8510 "properties" : {
8511 "iterations" : {
8512 "default" : 10,
8513 "description" : "Number of event-iteration to simulate and return.",
8514 "maximum" : 100,
8515 "minimum" : 1,
8516 "optional" : 1,
8517 "type" : "integer",
8518 "typetext" : "<integer> (1 - 100)"
8519 },
8520 "schedule" : {
8521 "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
8522 "format" : "pve-calendar-event",
8523 "maxLength" : 128,
8524 "type" : "string",
8525 "typetext" : "<string>"
8526 },
8527 "starttime" : {
8528 "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
8529 "optional" : 1,
8530 "type" : "integer",
8531 "typetext" : "<integer>"
8532 }
8533 }
8534 },
8535 "permissions" : {
8536 "user" : "all"
8537 },
8538 "returns" : {
8539 "description" : "An array of the next <iterations> events since <starttime>.",
8540 "items" : {
8541 "properties" : {
8542 "timestamp" : {
8543 "description" : "UNIX timestamp for the run.",
8544 "type" : "integer"
8545 },
8546 "utc" : {
8547 "description" : "UTC timestamp for the run.",
8548 "type" : "string"
8549 }
8550 },
8551 "type" : "object"
8552 },
8553 "type" : "array"
8554 }
8555 }
8556 },
8557 "leaf" : 1,
8558 "path" : "/cluster/jobs/schedule-analyze",
8559 "text" : "schedule-analyze"
8560 }
8561 ],
8562 "info" : {
8563 "GET" : {
8564 "allowtoken" : 1,
8565 "description" : "Index for jobs related endpoints.",
8566 "method" : "GET",
8567 "name" : "index",
8568 "parameters" : {
8569 "additionalProperties" : 0
8570 },
8571 "permissions" : {
8572 "user" : "all"
8573 },
8574 "returns" : {
8575 "description" : "Directory index.",
8576 "items" : {
8577 "properties" : {
8578 "subdir" : {
8579 "description" : "API sub-directory endpoint",
8580 "type" : "string"
8581 }
8582 },
8583 "type" : "object"
8584 },
8585 "links" : [
8586 {
8587 "href" : "{subdir}",
8588 "rel" : "child"
8589 }
8590 ],
8591 "type" : "array"
8592 }
8593 }
8594 },
8595 "leaf" : 0,
8596 "path" : "/cluster/jobs",
8597 "text" : "jobs"
8598 },
499c9b7f
TL
8599 {
8600 "children" : [
8601 {
8602 "children" : [
8603 {
8604 "info" : {
8605 "DELETE" : {
8606 "allowtoken" : 1,
8607 "description" : "Remove Hardware Mapping.",
8608 "method" : "DELETE",
8609 "name" : "delete",
8610 "parameters" : {
8611 "additionalProperties" : 0,
8612 "properties" : {
8613 "id" : {
8614 "format" : "pve-configid",
8615 "type" : "string",
8616 "typetext" : "<string>"
8617 }
8618 }
8619 },
8620 "permissions" : {
8621 "check" : [
8622 "perm",
8623 "/mapping/pci",
8624 [
8625 "Mapping.Modify"
8626 ]
8627 ]
8628 },
8629 "protected" : 1,
8630 "returns" : {
8631 "type" : "null"
8632 }
8633 },
8634 "GET" : {
8635 "allowtoken" : 1,
8636 "description" : "Get PCI Mapping.",
8637 "method" : "GET",
8638 "name" : "get",
8639 "parameters" : {
8640 "additionalProperties" : 0,
8641 "properties" : {
8642 "id" : {
8643 "format" : "pve-configid",
8644 "type" : "string",
8645 "typetext" : "<string>"
8646 }
8647 }
8648 },
8649 "permissions" : {
8650 "check" : [
8651 "or",
8652 [
8653 "perm",
8654 "/mapping/pci/{id}",
8655 [
8656 "Mapping.Use"
8657 ]
8658 ],
8659 [
8660 "perm",
8661 "/mapping/pci/{id}",
8662 [
8663 "Mapping.Modify"
8664 ]
8665 ],
8666 [
8667 "perm",
8668 "/mapping/pci/{id}",
8669 [
8670 "Mapping.Audit"
8671 ]
8672 ]
8673 ]
8674 },
8675 "protected" : 1,
8676 "returns" : {
8677 "type" : "object"
8678 }
8679 },
8680 "PUT" : {
8681 "allowtoken" : 1,
8682 "description" : "Update a hardware mapping.",
8683 "method" : "PUT",
8684 "name" : "update",
8685 "parameters" : {
8686 "additionalProperties" : 0,
8687 "properties" : {
8688 "delete" : {
8689 "description" : "A list of settings you want to delete.",
8690 "format" : "pve-configid-list",
8691 "maxLength" : 4096,
8692 "optional" : 1,
8693 "type" : "string",
8694 "typetext" : "<string>"
8695 },
8696 "description" : {
8697 "description" : "Description of the logical PCI device.",
8698 "maxLength" : 4096,
8699 "optional" : 1,
8700 "type" : "string",
8701 "typetext" : "<string>"
8702 },
8703 "digest" : {
82551b2b
TL
8704 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
8705 "maxLength" : 64,
499c9b7f
TL
8706 "optional" : 1,
8707 "type" : "string",
8708 "typetext" : "<string>"
8709 },
8710 "id" : {
8711 "description" : "The ID of the logical PCI mapping.",
8712 "format" : "pve-configid",
8713 "type" : "string",
8714 "typetext" : "<string>"
8715 },
8716 "map" : {
8717 "description" : "A list of maps for the cluster nodes.",
8718 "items" : {
8719 "format" : {
8720 "description" : {
8721 "description" : "Description of the node specific device.",
8722 "maxLength" : 4096,
8723 "optional" : 1,
8724 "type" : "string"
8725 },
8726 "id" : {
8727 "description" : "The vendor and device ID that is expected. Used for detecting hardware changes",
8728 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
8729 "type" : "string"
8730 },
8731 "iommugroup" : {
82551b2b 8732 "description" : "The IOMMU group in which the device is to be expected in. Used for detecting hardware changes.",
499c9b7f
TL
8733 "optional" : 1,
8734 "type" : "integer"
8735 },
8736 "node" : {
8737 "description" : "The cluster node name.",
8738 "format" : "pve-node",
8739 "type" : "string"
8740 },
8741 "path" : {
8742 "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.",
8743 "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])?",
8744 "type" : "string"
8745 },
8746 "subsystem-id" : {
8747 "description" : "The subsystem vendor and device ID that is expected. Used for detecting hardware changes.",
8748 "optional" : 1,
8749 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
8750 "type" : "string"
8751 }
8752 },
8753 "type" : "string"
8754 },
8755 "optional" : 1,
8756 "type" : "array",
8757 "typetext" : "<array>"
8758 },
8759 "mdev" : {
8760 "optional" : 1,
8761 "type" : "boolean",
8762 "typetext" : "<boolean>"
8763 }
8764 },
8765 "type" : "object"
8766 },
8767 "permissions" : {
8768 "check" : [
8769 "perm",
8770 "/mapping/pci/{id}",
8771 [
8772 "Mapping.Modify"
8773 ]
8774 ]
8775 },
8776 "protected" : 1,
8777 "returns" : {
8778 "type" : "null"
8779 }
8780 }
8781 },
8782 "leaf" : 1,
8783 "path" : "/cluster/mapping/pci/{id}",
8784 "text" : "{id}"
8785 }
8786 ],
8787 "info" : {
8788 "GET" : {
8789 "allowtoken" : 1,
8790 "description" : "List PCI Hardware Mapping",
8791 "method" : "GET",
8792 "name" : "index",
8793 "parameters" : {
8794 "additionalProperties" : 0,
8795 "properties" : {
8796 "check-node" : {
8797 "description" : "If given, checks the configurations on the given node for correctness, and adds relevant diagnostics for the devices to the response.",
8798 "format" : "pve-node",
8799 "optional" : 1,
8800 "type" : "string",
8801 "typetext" : "<string>"
8802 }
8803 }
8804 },
8805 "permissions" : {
8806 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/pci/<id>'.",
8807 "user" : "all"
8808 },
8809 "returns" : {
8810 "items" : {
8811 "properties" : {
8812 "checks" : {
8813 "description" : "A list of checks, only present if 'check_node' is set.",
8814 "items" : {
8815 "properties" : {
8816 "message" : {
8817 "description" : "The message of the error",
8818 "type" : "string"
8819 },
8820 "severity" : {
8821 "description" : "The severity of the error",
8822 "enum" : [
8823 "warning",
8824 "error"
8825 ],
8826 "type" : "string"
8827 }
8828 },
8829 "type" : "object"
8830 },
8831 "optional" : 1,
8832 "type" : "array"
8833 },
8834 "description" : {
8835 "description" : "A description of the logical mapping.",
8836 "type" : "string"
8837 },
8838 "id" : {
8839 "description" : "The logical ID of the mapping.",
8840 "type" : "string"
8841 },
8842 "map" : {
8843 "description" : "The entries of the mapping.",
8844 "items" : {
8845 "description" : "A mapping for a node.",
8846 "type" : "string"
8847 },
8848 "type" : "array"
8849 }
8850 },
8851 "type" : "object"
8852 },
8853 "links" : [
8854 {
8855 "href" : "{id}",
8856 "rel" : "child"
8857 }
8858 ],
8859 "type" : "array"
8860 }
8861 },
8862 "POST" : {
8863 "allowtoken" : 1,
8864 "description" : "Create a new hardware mapping.",
8865 "method" : "POST",
8866 "name" : "create",
8867 "parameters" : {
8868 "additionalProperties" : 0,
8869 "properties" : {
8870 "description" : {
8871 "description" : "Description of the logical PCI device.",
8872 "maxLength" : 4096,
8873 "optional" : 1,
8874 "type" : "string",
8875 "typetext" : "<string>"
8876 },
8877 "id" : {
8878 "description" : "The ID of the logical PCI mapping.",
8879 "format" : "pve-configid",
8880 "type" : "string",
8881 "typetext" : "<string>"
8882 },
8883 "map" : {
8884 "description" : "A list of maps for the cluster nodes.",
8885 "items" : {
8886 "format" : {
8887 "description" : {
8888 "description" : "Description of the node specific device.",
8889 "maxLength" : 4096,
8890 "optional" : 1,
8891 "type" : "string"
8892 },
8893 "id" : {
82551b2b
TL
8894 "description" : "The vendor and device ID that is expected. Used for detecting hardware changes",
8895 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
8896 "type" : "string"
8897 },
8898 "iommugroup" : {
8899 "description" : "The IOMMU group in which the device is to be expected in. Used for detecting hardware changes.",
8900 "optional" : 1,
8901 "type" : "integer"
8902 },
8903 "node" : {
8904 "description" : "The cluster node name.",
8905 "format" : "pve-node",
8906 "type" : "string"
8907 },
8908 "path" : {
8909 "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.",
8910 "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])?",
8911 "type" : "string"
8912 },
8913 "subsystem-id" : {
8914 "description" : "The subsystem vendor and device ID that is expected. Used for detecting hardware changes.",
8915 "optional" : 1,
8916 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
8917 "type" : "string"
8918 }
8919 },
8920 "type" : "string"
8921 },
8922 "optional" : 0,
8923 "type" : "array",
8924 "typetext" : "<array>"
8925 },
8926 "mdev" : {
8927 "optional" : 1,
8928 "type" : "boolean",
8929 "typetext" : "<boolean>"
8930 }
8931 },
8932 "type" : "object"
8933 },
8934 "permissions" : {
8935 "check" : [
8936 "perm",
8937 "/mapping/pci",
8938 [
8939 "Mapping.Modify"
8940 ]
8941 ]
8942 },
8943 "protected" : 1,
8944 "returns" : {
8945 "type" : "null"
8946 }
8947 }
8948 },
8949 "leaf" : 0,
8950 "path" : "/cluster/mapping/pci",
8951 "text" : "pci"
8952 },
8953 {
8954 "children" : [
8955 {
8956 "info" : {
8957 "DELETE" : {
8958 "allowtoken" : 1,
8959 "description" : "Remove Hardware Mapping.",
8960 "method" : "DELETE",
8961 "name" : "delete",
8962 "parameters" : {
8963 "additionalProperties" : 0,
8964 "properties" : {
8965 "id" : {
8966 "format" : "pve-configid",
8967 "type" : "string",
8968 "typetext" : "<string>"
8969 }
8970 }
8971 },
8972 "permissions" : {
8973 "check" : [
8974 "perm",
8975 "/mapping/usb",
8976 [
8977 "Mapping.Modify"
8978 ]
8979 ]
8980 },
8981 "protected" : 1,
8982 "returns" : {
8983 "type" : "null"
8984 }
8985 },
8986 "GET" : {
8987 "allowtoken" : 1,
8988 "description" : "Get USB Mapping.",
8989 "method" : "GET",
8990 "name" : "get",
8991 "parameters" : {
8992 "additionalProperties" : 0,
8993 "properties" : {
8994 "id" : {
8995 "format" : "pve-configid",
8996 "type" : "string",
8997 "typetext" : "<string>"
8998 }
8999 }
9000 },
9001 "permissions" : {
9002 "check" : [
9003 "or",
9004 [
9005 "perm",
9006 "/mapping/usb/{id}",
9007 [
9008 "Mapping.Audit"
9009 ]
9010 ],
9011 [
9012 "perm",
9013 "/mapping/usb/{id}",
9014 [
9015 "Mapping.Use"
9016 ]
9017 ],
9018 [
9019 "perm",
9020 "/mapping/usb/{id}",
9021 [
9022 "Mapping.Modify"
9023 ]
9024 ]
9025 ]
9026 },
9027 "protected" : 1,
9028 "returns" : {
9029 "type" : "object"
9030 }
9031 },
9032 "PUT" : {
9033 "allowtoken" : 1,
9034 "description" : "Update a hardware mapping.",
9035 "method" : "PUT",
9036 "name" : "update",
9037 "parameters" : {
9038 "additionalProperties" : 0,
9039 "properties" : {
9040 "delete" : {
9041 "description" : "A list of settings you want to delete.",
9042 "format" : "pve-configid-list",
9043 "maxLength" : 4096,
9044 "optional" : 1,
9045 "type" : "string",
9046 "typetext" : "<string>"
9047 },
9048 "description" : {
9049 "description" : "Description of the logical USB device.",
9050 "maxLength" : 4096,
9051 "optional" : 1,
9052 "type" : "string",
9053 "typetext" : "<string>"
9054 },
9055 "digest" : {
9056 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
9057 "maxLength" : 64,
9058 "optional" : 1,
9059 "type" : "string",
9060 "typetext" : "<string>"
9061 },
9062 "id" : {
9063 "description" : "The ID of the logical USB mapping.",
9064 "format" : "pve-configid",
9065 "type" : "string",
9066 "typetext" : "<string>"
9067 },
9068 "map" : {
9069 "description" : "A list of maps for the cluster nodes.",
9070 "items" : {
9071 "format" : {
9072 "description" : {
9073 "description" : "Description of the node specific device.",
9074 "maxLength" : 4096,
9075 "optional" : 1,
9076 "type" : "string"
9077 },
9078 "id" : {
9079 "description" : "The vendor and device ID that is expected. If a USB path is given, it is only used for detecting hardware changes",
9080 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9081 "type" : "string"
9082 },
9083 "node" : {
9084 "description" : "The cluster node name.",
9085 "format" : "pve-node",
9086 "type" : "string"
9087 },
9088 "path" : {
9089 "description" : "The path to the usb device.",
9090 "optional" : 1,
9091 "pattern" : "(?^:^(\\d+)\\-(\\d+(\\.\\d+)*)$)",
9092 "type" : "string"
9093 }
9094 },
9095 "type" : "string"
9096 },
9097 "type" : "array",
9098 "typetext" : "<array>"
9099 }
9100 },
9101 "type" : "object"
9102 },
9103 "permissions" : {
9104 "check" : [
9105 "perm",
9106 "/mapping/usb/{id}",
9107 [
9108 "Mapping.Modify"
9109 ]
9110 ]
9111 },
9112 "protected" : 1,
9113 "returns" : {
9114 "type" : "null"
9115 }
9116 }
9117 },
9118 "leaf" : 1,
9119 "path" : "/cluster/mapping/usb/{id}",
9120 "text" : "{id}"
9121 }
9122 ],
9123 "info" : {
9124 "GET" : {
9125 "allowtoken" : 1,
9126 "description" : "List USB Hardware Mappings",
9127 "method" : "GET",
9128 "name" : "index",
9129 "parameters" : {
9130 "additionalProperties" : 0,
9131 "properties" : {
9132 "check-node" : {
9133 "description" : "If given, checks the configurations on the given node for correctness, and adds relevant errors to the devices.",
9134 "format" : "pve-node",
9135 "optional" : 1,
9136 "type" : "string",
9137 "typetext" : "<string>"
9138 }
9139 }
9140 },
9141 "permissions" : {
9142 "description" : "Only lists entries where you have 'Mapping.Modify', 'Mapping.Use' or 'Mapping.Audit' permissions on '/mapping/usb/<id>'.",
9143 "user" : "all"
9144 },
9145 "returns" : {
9146 "items" : {
9147 "properties" : {
9148 "description" : {
9149 "description" : "A description of the logical mapping.",
9150 "type" : "string"
9151 },
9152 "error" : {
9153 "description" : "A list of errors when 'check_node' is given.",
9154 "items" : {
9155 "properties" : {
9156 "message" : {
9157 "description" : "The message of the error",
9158 "type" : "string"
9159 },
9160 "severity" : {
9161 "description" : "The severity of the error",
9162 "type" : "string"
9163 }
9164 },
9165 "type" : "object"
9166 }
9167 },
9168 "id" : {
9169 "description" : "The logical ID of the mapping.",
9170 "type" : "string"
9171 },
9172 "map" : {
9173 "description" : "The entries of the mapping.",
9174 "items" : {
9175 "description" : "A mapping for a node.",
9176 "type" : "string"
9177 },
9178 "type" : "array"
9179 }
9180 },
9181 "type" : "object"
9182 },
9183 "links" : [
9184 {
9185 "href" : "{id}",
9186 "rel" : "child"
9187 }
9188 ],
9189 "type" : "array"
9190 }
9191 },
9192 "POST" : {
9193 "allowtoken" : 1,
9194 "description" : "Create a new hardware mapping.",
9195 "method" : "POST",
9196 "name" : "create",
9197 "parameters" : {
9198 "additionalProperties" : 0,
9199 "properties" : {
9200 "description" : {
9201 "description" : "Description of the logical USB device.",
9202 "maxLength" : 4096,
9203 "optional" : 1,
9204 "type" : "string",
9205 "typetext" : "<string>"
9206 },
9207 "id" : {
9208 "description" : "The ID of the logical USB mapping.",
9209 "format" : "pve-configid",
9210 "type" : "string",
9211 "typetext" : "<string>"
9212 },
9213 "map" : {
9214 "description" : "A list of maps for the cluster nodes.",
9215 "items" : {
9216 "format" : {
9217 "description" : {
9218 "description" : "Description of the node specific device.",
9219 "maxLength" : 4096,
9220 "optional" : 1,
9221 "type" : "string"
9222 },
9223 "id" : {
499c9b7f
TL
9224 "description" : "The vendor and device ID that is expected. If a USB path is given, it is only used for detecting hardware changes",
9225 "pattern" : "(?^:^[0-9A-Fa-f]{4}:[0-9A-Fa-f]{4}$)",
9226 "type" : "string"
9227 },
9228 "node" : {
9229 "description" : "The cluster node name.",
9230 "format" : "pve-node",
9231 "type" : "string"
9232 },
9233 "path" : {
9234 "description" : "The path to the usb device.",
9235 "optional" : 1,
9236 "pattern" : "(?^:^(\\d+)\\-(\\d+(\\.\\d+)*)$)",
9237 "type" : "string"
9238 }
9239 },
9240 "type" : "string"
9241 },
9242 "type" : "array",
9243 "typetext" : "<array>"
9244 }
9245 },
9246 "type" : "object"
9247 },
9248 "permissions" : {
9249 "check" : [
9250 "perm",
9251 "/mapping/usb",
9252 [
9253 "Mapping.Modify"
9254 ]
9255 ]
9256 },
9257 "protected" : 1,
9258 "returns" : {
9259 "type" : "null"
9260 }
9261 }
9262 },
9263 "leaf" : 0,
9264 "path" : "/cluster/mapping/usb",
9265 "text" : "usb"
9266 }
9267 ],
9268 "info" : {
9269 "GET" : {
9270 "allowtoken" : 1,
9271 "description" : "List resource types.",
9272 "method" : "GET",
9273 "name" : "index",
9274 "parameters" : {
9275 "additionalProperties" : 0
9276 },
9277 "permissions" : {
9278 "user" : "all"
9279 },
9280 "returns" : {
9281 "items" : {
9282 "type" : "object"
9283 },
9284 "links" : [
9285 {
9286 "href" : "{name}",
9287 "rel" : "child"
9288 }
9289 ],
9290 "type" : "array"
9291 }
9292 }
9293 },
9294 "leaf" : 0,
9295 "path" : "/cluster/mapping",
9296 "text" : "mapping"
9297 },
c5aa7e14
TL
9298 {
9299 "children" : [
9300 {
9301 "children" : [
9302 {
d2656385
TL
9303 "children" : [
9304 {
9305 "children" : [
9306 {
9307 "info" : {
9308 "DELETE" : {
9309 "allowtoken" : 1,
9310 "description" : "Delete sdn subnet object configuration.",
9311 "method" : "DELETE",
9312 "name" : "delete",
9313 "parameters" : {
9314 "additionalProperties" : 0,
9315 "properties" : {
9316 "subnet" : {
9317 "description" : "The SDN subnet object identifier.",
9318 "format" : "pve-sdn-subnet-id",
9319 "type" : "string",
9320 "typetext" : "<string>"
9321 },
9322 "vnet" : {
9323 "description" : "The SDN vnet object identifier.",
9324 "format" : "pve-sdn-vnet-id",
9325 "type" : "string",
9326 "typetext" : "<string>"
9327 }
9328 }
9329 },
9330 "permissions" : {
bd92b745
TL
9331 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
9332 "user" : "all"
d2656385
TL
9333 },
9334 "protected" : 1,
9335 "returns" : {
9336 "type" : "null"
9337 }
9338 },
9339 "GET" : {
9340 "allowtoken" : 1,
9341 "description" : "Read sdn subnet configuration.",
9342 "method" : "GET",
9343 "name" : "read",
9344 "parameters" : {
9345 "additionalProperties" : 0,
9346 "properties" : {
9347 "pending" : {
9348 "description" : "Display pending config.",
9349 "optional" : 1,
9350 "type" : "boolean",
9351 "typetext" : "<boolean>"
9352 },
9353 "running" : {
9354 "description" : "Display running config.",
9355 "optional" : 1,
9356 "type" : "boolean",
9357 "typetext" : "<boolean>"
9358 },
9359 "subnet" : {
9360 "description" : "The SDN subnet object identifier.",
9361 "format" : "pve-sdn-subnet-id",
9362 "type" : "string",
9363 "typetext" : "<string>"
9364 },
9365 "vnet" : {
9366 "description" : "The SDN vnet object identifier.",
9367 "format" : "pve-sdn-vnet-id",
9368 "type" : "string",
9369 "typetext" : "<string>"
9370 }
9371 }
9372 },
9373 "permissions" : {
bd92b745
TL
9374 "description" : "Require 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
9375 "user" : "all"
d2656385
TL
9376 },
9377 "returns" : {
9378 "type" : "object"
9379 }
9380 },
9381 "PUT" : {
9382 "allowtoken" : 1,
9383 "description" : "Update sdn subnet object configuration.",
9384 "method" : "PUT",
9385 "name" : "update",
9386 "parameters" : {
9387 "additionalProperties" : 0,
9388 "properties" : {
9389 "delete" : {
9390 "description" : "A list of settings you want to delete.",
9391 "format" : "pve-configid-list",
9392 "maxLength" : 4096,
9393 "optional" : 1,
9394 "type" : "string",
9395 "typetext" : "<string>"
9396 },
9397 "digest" : {
82551b2b
TL
9398 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
9399 "maxLength" : 64,
d2656385
TL
9400 "optional" : 1,
9401 "type" : "string",
9402 "typetext" : "<string>"
9403 },
9404 "dnszoneprefix" : {
9405 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
9406 "format" : "dns-name",
9407 "optional" : 1,
9408 "type" : "string",
9409 "typetext" : "<string>"
9410 },
9411 "gateway" : {
9412 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
9413 "format" : "ip",
9414 "optional" : 1,
9415 "type" : "string",
9416 "typetext" : "<string>"
9417 },
9418 "snat" : {
9419 "description" : "enable masquerade for this subnet if pve-firewall",
9420 "optional" : 1,
9421 "type" : "boolean",
9422 "typetext" : "<boolean>"
9423 },
9424 "subnet" : {
9425 "description" : "The SDN subnet object identifier.",
9426 "format" : "pve-sdn-subnet-id",
9427 "type" : "string",
9428 "typetext" : "<string>"
9429 },
9430 "vnet" : {
9431 "description" : "associated vnet",
9432 "optional" : 1,
9433 "type" : "string",
9434 "typetext" : "<string>"
9435 }
9436 },
9437 "type" : "object"
9438 },
9439 "permissions" : {
bd92b745
TL
9440 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
9441 "user" : "all"
d2656385
TL
9442 },
9443 "protected" : 1,
9444 "returns" : {
9445 "type" : "null"
9446 }
9447 }
9448 },
9449 "leaf" : 1,
9450 "path" : "/cluster/sdn/vnets/{vnet}/subnets/{subnet}",
9451 "text" : "{subnet}"
9452 }
9453 ],
9454 "info" : {
9455 "GET" : {
9456 "allowtoken" : 1,
9457 "description" : "SDN subnets index.",
9458 "method" : "GET",
9459 "name" : "index",
9460 "parameters" : {
9461 "additionalProperties" : 0,
9462 "properties" : {
9463 "pending" : {
9464 "description" : "Display pending config.",
9465 "optional" : 1,
9466 "type" : "boolean",
9467 "typetext" : "<boolean>"
9468 },
9469 "running" : {
9470 "description" : "Display running config.",
9471 "optional" : 1,
9472 "type" : "boolean",
9473 "typetext" : "<boolean>"
9474 },
9475 "vnet" : {
9476 "description" : "The SDN vnet object identifier.",
9477 "format" : "pve-sdn-vnet-id",
9478 "type" : "string",
9479 "typetext" : "<string>"
9480 }
9481 }
9482 },
9483 "permissions" : {
bd92b745 9484 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
d2656385
TL
9485 "user" : "all"
9486 },
9487 "returns" : {
9488 "items" : {
9489 "properties" : {},
9490 "type" : "object"
9491 },
9492 "links" : [
9493 {
9494 "href" : "{subnet}",
9495 "rel" : "child"
9496 }
9497 ],
9498 "type" : "array"
9499 }
9500 },
9501 "POST" : {
9502 "allowtoken" : 1,
9503 "description" : "Create a new sdn subnet object.",
9504 "method" : "POST",
9505 "name" : "create",
9506 "parameters" : {
9507 "additionalProperties" : 0,
9508 "properties" : {
9509 "dnszoneprefix" : {
9510 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
9511 "format" : "dns-name",
9512 "optional" : 1,
9513 "type" : "string",
9514 "typetext" : "<string>"
9515 },
9516 "gateway" : {
9517 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
9518 "format" : "ip",
9519 "optional" : 1,
9520 "type" : "string",
9521 "typetext" : "<string>"
9522 },
9523 "snat" : {
9524 "description" : "enable masquerade for this subnet if pve-firewall",
9525 "optional" : 1,
9526 "type" : "boolean",
9527 "typetext" : "<boolean>"
9528 },
9529 "subnet" : {
9530 "description" : "The SDN subnet object identifier.",
9531 "format" : "pve-sdn-subnet-id",
9532 "type" : "string",
9533 "typetext" : "<string>"
9534 },
9535 "type" : {
9536 "enum" : [
9537 "subnet"
9538 ],
9539 "type" : "string"
9540 },
9541 "vnet" : {
9542 "description" : "associated vnet",
9543 "optional" : 0,
9544 "type" : "string",
9545 "typetext" : "<string>"
9546 }
9547 },
9548 "type" : "object"
9549 },
9550 "permissions" : {
bd92b745
TL
9551 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
9552 "user" : "all"
d2656385
TL
9553 },
9554 "protected" : 1,
9555 "returns" : {
9556 "type" : "null"
9557 }
9558 }
9559 },
9560 "leaf" : 0,
9561 "path" : "/cluster/sdn/vnets/{vnet}/subnets",
9562 "text" : "subnets"
9563 }
9564 ],
c5aa7e14
TL
9565 "info" : {
9566 "DELETE" : {
9567 "allowtoken" : 1,
9568 "description" : "Delete sdn vnet object configuration.",
9569 "method" : "DELETE",
9570 "name" : "delete",
9571 "parameters" : {
9572 "additionalProperties" : 0,
9573 "properties" : {
9574 "vnet" : {
9575 "description" : "The SDN vnet object identifier.",
9576 "format" : "pve-sdn-vnet-id",
9577 "type" : "string",
9578 "typetext" : "<string>"
9579 }
9580 }
9581 },
9582 "permissions" : {
bd92b745
TL
9583 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
9584 "user" : "all"
c5aa7e14
TL
9585 },
9586 "protected" : 1,
9587 "returns" : {
9588 "type" : "null"
9589 }
9590 },
9591 "GET" : {
9592 "allowtoken" : 1,
9593 "description" : "Read sdn vnet configuration.",
9594 "method" : "GET",
9595 "name" : "read",
9596 "parameters" : {
9597 "additionalProperties" : 0,
9598 "properties" : {
d2656385
TL
9599 "pending" : {
9600 "description" : "Display pending config.",
9601 "optional" : 1,
9602 "type" : "boolean",
9603 "typetext" : "<boolean>"
9604 },
9605 "running" : {
9606 "description" : "Display running config.",
9607 "optional" : 1,
9608 "type" : "boolean",
9609 "typetext" : "<boolean>"
9610 },
c5aa7e14
TL
9611 "vnet" : {
9612 "description" : "The SDN vnet object identifier.",
9613 "format" : "pve-sdn-vnet-id",
9614 "type" : "string",
9615 "typetext" : "<string>"
9616 }
9617 }
9618 },
9619 "permissions" : {
bd92b745
TL
9620 "description" : "Require 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
9621 "user" : "all"
c5aa7e14
TL
9622 },
9623 "returns" : {
9624 "type" : "object"
9625 }
9626 },
9627 "PUT" : {
9628 "allowtoken" : 1,
9629 "description" : "Update sdn vnet object configuration.",
9630 "method" : "PUT",
9631 "name" : "update",
9632 "parameters" : {
9633 "additionalProperties" : 0,
9634 "properties" : {
9635 "alias" : {
9636 "description" : "alias name of the vnet",
5370fa8c 9637 "maxLength" : 256,
c5aa7e14 9638 "optional" : 1,
5370fa8c
TL
9639 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
9640 "type" : "string"
c5aa7e14
TL
9641 },
9642 "delete" : {
9643 "description" : "A list of settings you want to delete.",
9644 "format" : "pve-configid-list",
9645 "maxLength" : 4096,
9646 "optional" : 1,
9647 "type" : "string",
9648 "typetext" : "<string>"
9649 },
9650 "digest" : {
82551b2b
TL
9651 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
9652 "maxLength" : 64,
c5aa7e14
TL
9653 "optional" : 1,
9654 "type" : "string",
9655 "typetext" : "<string>"
9656 },
c5aa7e14
TL
9657 "tag" : {
9658 "description" : "vlan or vxlan id",
9659 "optional" : 1,
9660 "type" : "integer",
9661 "typetext" : "<integer>"
9662 },
ac70d7d1
TL
9663 "vlanaware" : {
9664 "description" : "Allow vm VLANs to pass through this vnet.",
9665 "optional" : 1,
9666 "type" : "boolean",
9667 "typetext" : "<boolean>"
9668 },
c5aa7e14
TL
9669 "vnet" : {
9670 "description" : "The SDN vnet object identifier.",
9671 "format" : "pve-sdn-vnet-id",
9672 "type" : "string",
9673 "typetext" : "<string>"
9674 },
9675 "zone" : {
9676 "description" : "zone id",
9677 "optional" : 1,
9678 "type" : "string",
9679 "typetext" : "<string>"
9680 }
9681 },
9682 "type" : "object"
9683 },
9684 "permissions" : {
bd92b745
TL
9685 "description" : "Require 'SDN.Allocate' permission on '/sdn/zones/<zone>/<vnet>'",
9686 "user" : "all"
c5aa7e14
TL
9687 },
9688 "protected" : 1,
9689 "returns" : {
9690 "type" : "null"
9691 }
9692 }
9693 },
d2656385 9694 "leaf" : 0,
c5aa7e14
TL
9695 "path" : "/cluster/sdn/vnets/{vnet}",
9696 "text" : "{vnet}"
9697 }
9698 ],
9699 "info" : {
9700 "GET" : {
9701 "allowtoken" : 1,
9702 "description" : "SDN vnets index.",
9703 "method" : "GET",
9704 "name" : "index",
9705 "parameters" : {
d2656385
TL
9706 "additionalProperties" : 0,
9707 "properties" : {
9708 "pending" : {
9709 "description" : "Display pending config.",
9710 "optional" : 1,
9711 "type" : "boolean",
9712 "typetext" : "<boolean>"
9713 },
9714 "running" : {
9715 "description" : "Display running config.",
9716 "optional" : 1,
9717 "type" : "boolean",
9718 "typetext" : "<boolean>"
9719 }
9720 }
c5aa7e14
TL
9721 },
9722 "permissions" : {
bd92b745 9723 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>/<vnet>'",
c5aa7e14
TL
9724 "user" : "all"
9725 },
9726 "returns" : {
9727 "items" : {
9728 "properties" : {},
9729 "type" : "object"
9730 },
9731 "links" : [
9732 {
9733 "href" : "{vnet}",
9734 "rel" : "child"
9735 }
9736 ],
9737 "type" : "array"
9738 }
9739 },
9740 "POST" : {
9741 "allowtoken" : 1,
9742 "description" : "Create a new sdn vnet object.",
9743 "method" : "POST",
9744 "name" : "create",
9745 "parameters" : {
9746 "additionalProperties" : 0,
9747 "properties" : {
9748 "alias" : {
9749 "description" : "alias name of the vnet",
5370fa8c 9750 "maxLength" : 256,
c5aa7e14 9751 "optional" : 1,
5370fa8c
TL
9752 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
9753 "type" : "string"
c5aa7e14 9754 },
c5aa7e14
TL
9755 "tag" : {
9756 "description" : "vlan or vxlan id",
ac70d7d1 9757 "optional" : 1,
c5aa7e14
TL
9758 "type" : "integer",
9759 "typetext" : "<integer>"
9760 },
9761 "type" : {
9762 "description" : "Type",
9763 "enum" : [
9764 "vnet"
9765 ],
9766 "optional" : 1,
9767 "type" : "string"
9768 },
ac70d7d1
TL
9769 "vlanaware" : {
9770 "description" : "Allow vm VLANs to pass through this vnet.",
9771 "optional" : 1,
9772 "type" : "boolean",
9773 "typetext" : "<boolean>"
9774 },
c5aa7e14
TL
9775 "vnet" : {
9776 "description" : "The SDN vnet object identifier.",
9777 "format" : "pve-sdn-vnet-id",
9778 "type" : "string",
9779 "typetext" : "<string>"
9780 },
9781 "zone" : {
9782 "description" : "zone id",
9783 "optional" : 0,
9784 "type" : "string",
9785 "typetext" : "<string>"
9786 }
9787 },
9788 "type" : "object"
9789 },
9790 "permissions" : {
9791 "check" : [
9792 "perm",
bd92b745 9793 "/sdn/zones/{zone}",
c5aa7e14
TL
9794 [
9795 "SDN.Allocate"
9796 ]
9797 ]
9798 },
9799 "protected" : 1,
9800 "returns" : {
9801 "type" : "null"
9802 }
9803 }
9804 },
9805 "leaf" : 0,
9806 "path" : "/cluster/sdn/vnets",
9807 "text" : "vnets"
9808 },
9809 {
9810 "children" : [
9811 {
9812 "info" : {
9813 "DELETE" : {
9814 "allowtoken" : 1,
9815 "description" : "Delete sdn zone object configuration.",
9816 "method" : "DELETE",
9817 "name" : "delete",
9818 "parameters" : {
9819 "additionalProperties" : 0,
9820 "properties" : {
9821 "zone" : {
9822 "description" : "The SDN zone object identifier.",
9823 "format" : "pve-sdn-zone-id",
9824 "type" : "string",
9825 "typetext" : "<string>"
9826 }
9827 }
9828 },
9829 "permissions" : {
9830 "check" : [
9831 "perm",
bd92b745 9832 "/sdn/zones/{zone}",
c5aa7e14
TL
9833 [
9834 "SDN.Allocate"
9835 ]
9836 ]
9837 },
9838 "protected" : 1,
9839 "returns" : {
9840 "type" : "null"
9841 }
9842 },
9843 "GET" : {
9844 "allowtoken" : 1,
9845 "description" : "Read sdn zone configuration.",
9846 "method" : "GET",
9847 "name" : "read",
9848 "parameters" : {
9849 "additionalProperties" : 0,
9850 "properties" : {
d2656385
TL
9851 "pending" : {
9852 "description" : "Display pending config.",
9853 "optional" : 1,
9854 "type" : "boolean",
9855 "typetext" : "<boolean>"
9856 },
9857 "running" : {
9858 "description" : "Display running config.",
9859 "optional" : 1,
9860 "type" : "boolean",
9861 "typetext" : "<boolean>"
9862 },
c5aa7e14
TL
9863 "zone" : {
9864 "description" : "The SDN zone object identifier.",
9865 "format" : "pve-sdn-zone-id",
9866 "type" : "string",
9867 "typetext" : "<string>"
9868 }
9869 }
9870 },
9871 "permissions" : {
9872 "check" : [
9873 "perm",
9874 "/sdn/zones/{zone}",
9875 [
9876 "SDN.Allocate"
9877 ]
9878 ]
9879 },
9880 "returns" : {
9881 "type" : "object"
9882 }
9883 },
9884 "PUT" : {
9885 "allowtoken" : 1,
9886 "description" : "Update sdn zone object configuration.",
9887 "method" : "PUT",
9888 "name" : "update",
9889 "parameters" : {
9890 "additionalProperties" : 0,
9891 "properties" : {
5370fa8c
TL
9892 "advertise-subnets" : {
9893 "description" : "Advertise evpn subnets if you have silent hosts",
9894 "optional" : 1,
9895 "type" : "boolean",
9896 "typetext" : "<boolean>"
9897 },
c5aa7e14
TL
9898 "bridge" : {
9899 "optional" : 1,
9900 "type" : "string",
9901 "typetext" : "<string>"
9902 },
7af2edf9
TL
9903 "bridge-disable-mac-learning" : {
9904 "description" : "Disable auto mac learning.",
9905 "optional" : 1,
9906 "type" : "boolean",
9907 "typetext" : "<boolean>"
9908 },
c5aa7e14
TL
9909 "controller" : {
9910 "description" : "Frr router name",
9911 "optional" : 1,
9912 "type" : "string",
9913 "typetext" : "<string>"
9914 },
9915 "delete" : {
9916 "description" : "A list of settings you want to delete.",
9917 "format" : "pve-configid-list",
9918 "maxLength" : 4096,
9919 "optional" : 1,
9920 "type" : "string",
9921 "typetext" : "<string>"
9922 },
9923 "digest" : {
82551b2b
TL
9924 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
9925 "maxLength" : 64,
c5aa7e14
TL
9926 "optional" : 1,
9927 "type" : "string",
9928 "typetext" : "<string>"
9929 },
5370fa8c
TL
9930 "disable-arp-nd-suppression" : {
9931 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
9932 "optional" : 1,
9933 "type" : "boolean",
9934 "typetext" : "<boolean>"
9935 },
d2656385
TL
9936 "dns" : {
9937 "description" : "dns api server",
9938 "optional" : 1,
9939 "type" : "string",
9940 "typetext" : "<string>"
9941 },
9942 "dnszone" : {
9943 "description" : "dns domain zone ex: mydomain.com",
9944 "format" : "dns-name",
9945 "optional" : 1,
9946 "type" : "string",
9947 "typetext" : "<string>"
9948 },
c5aa7e14
TL
9949 "dp-id" : {
9950 "description" : "Faucet dataplane id",
9951 "optional" : 1,
9952 "type" : "integer",
9953 "typetext" : "<integer>"
9954 },
d2656385
TL
9955 "exitnodes" : {
9956 "description" : "List of cluster node names.",
9957 "format" : "pve-node-list",
9958 "optional" : 1,
9959 "type" : "string",
9960 "typetext" : "<string>"
9961 },
5370fa8c
TL
9962 "exitnodes-local-routing" : {
9963 "description" : "Allow exitnodes to connect to evpn guests",
9964 "optional" : 1,
9965 "type" : "boolean",
9966 "typetext" : "<boolean>"
9967 },
c30bb419
TL
9968 "exitnodes-primary" : {
9969 "description" : "Force traffic to this exitnode first.",
9970 "format" : "pve-node",
9971 "optional" : 1,
9972 "type" : "string",
9973 "typetext" : "<string>"
9974 },
d2656385
TL
9975 "ipam" : {
9976 "description" : "use a specific ipam",
e7084ef7 9977 "optional" : 1,
d2656385
TL
9978 "type" : "string",
9979 "typetext" : "<string>"
9980 },
9981 "mac" : {
9982 "description" : "Anycast logical router mac address",
9983 "format" : "mac-addr",
9984 "optional" : 1,
9985 "type" : "string",
9986 "typetext" : "<string>"
9987 },
c5aa7e14 9988 "mtu" : {
ac70d7d1 9989 "description" : "MTU",
c5aa7e14
TL
9990 "optional" : 1,
9991 "type" : "integer",
9992 "typetext" : "<integer>"
9993 },
9994 "nodes" : {
9995 "description" : "List of cluster node names.",
9996 "format" : "pve-node-list",
9997 "optional" : 1,
9998 "type" : "string",
9999 "typetext" : "<string>"
10000 },
10001 "peers" : {
10002 "description" : "peers address list.",
10003 "format" : "ip-list",
10004 "optional" : 1,
10005 "type" : "string",
10006 "typetext" : "<string>"
10007 },
d2656385
TL
10008 "reversedns" : {
10009 "description" : "reverse dns api server",
10010 "optional" : 1,
10011 "type" : "string",
10012 "typetext" : "<string>"
10013 },
c30bb419
TL
10014 "rt-import" : {
10015 "description" : "Route-Target import",
10016 "format" : "pve-sdn-bgp-rt-list",
10017 "optional" : 1,
10018 "type" : "string",
10019 "typetext" : "<string>"
10020 },
c5aa7e14 10021 "tag" : {
ac70d7d1
TL
10022 "description" : "Service-VLAN Tag",
10023 "minimum" : 0,
c5aa7e14
TL
10024 "optional" : 1,
10025 "type" : "integer",
ac70d7d1
TL
10026 "typetext" : "<integer> (0 - N)"
10027 },
10028 "vlan-protocol" : {
10029 "default" : "802.1q",
10030 "enum" : [
10031 "802.1q",
10032 "802.1ad"
10033 ],
10034 "optional" : 1,
10035 "type" : "string"
c5aa7e14
TL
10036 },
10037 "vrf-vxlan" : {
10038 "description" : "l3vni.",
10039 "optional" : 1,
10040 "type" : "integer",
10041 "typetext" : "<integer>"
10042 },
4a407cfd
TL
10043 "vxlan-port" : {
10044 "description" : "Vxlan tunnel udp port (default 4789).",
10045 "maximum" : 65536,
10046 "minimum" : 1,
10047 "optional" : 1,
10048 "type" : "integer",
10049 "typetext" : "<integer> (1 - 65536)"
10050 },
c5aa7e14
TL
10051 "zone" : {
10052 "description" : "The SDN zone object identifier.",
10053 "format" : "pve-sdn-zone-id",
10054 "type" : "string",
10055 "typetext" : "<string>"
10056 }
10057 },
10058 "type" : "object"
10059 },
10060 "permissions" : {
10061 "check" : [
10062 "perm",
bd92b745 10063 "/sdn/zones/{zone}",
c5aa7e14
TL
10064 [
10065 "SDN.Allocate"
10066 ]
10067 ]
10068 },
10069 "protected" : 1,
10070 "returns" : {
10071 "type" : "null"
10072 }
10073 }
10074 },
10075 "leaf" : 1,
10076 "path" : "/cluster/sdn/zones/{zone}",
10077 "text" : "{zone}"
10078 }
10079 ],
10080 "info" : {
10081 "GET" : {
10082 "allowtoken" : 1,
10083 "description" : "SDN zones index.",
10084 "method" : "GET",
10085 "name" : "index",
10086 "parameters" : {
10087 "additionalProperties" : 0,
10088 "properties" : {
d2656385
TL
10089 "pending" : {
10090 "description" : "Display pending config.",
10091 "optional" : 1,
10092 "type" : "boolean",
10093 "typetext" : "<boolean>"
10094 },
10095 "running" : {
10096 "description" : "Display running config.",
10097 "optional" : 1,
10098 "type" : "boolean",
10099 "typetext" : "<boolean>"
10100 },
c5aa7e14 10101 "type" : {
e7084ef7 10102 "description" : "Only list SDN zones of specific type",
c5aa7e14
TL
10103 "enum" : [
10104 "evpn",
10105 "faucet",
10106 "qinq",
ac70d7d1 10107 "simple",
c5aa7e14
TL
10108 "vlan",
10109 "vxlan"
10110 ],
10111 "optional" : 1,
10112 "type" : "string"
10113 }
10114 }
10115 },
10116 "permissions" : {
10117 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>'",
10118 "user" : "all"
10119 },
10120 "returns" : {
10121 "items" : {
10122 "properties" : {
d2656385
TL
10123 "dns" : {
10124 "optional" : 1,
10125 "type" : "string"
10126 },
10127 "dnszone" : {
10128 "optional" : 1,
10129 "type" : "string"
10130 },
10131 "ipam" : {
10132 "optional" : 1,
10133 "type" : "string"
10134 },
10135 "mtu" : {
10136 "optional" : 1,
10137 "type" : "integer"
10138 },
10139 "nodes" : {
10140 "optional" : 1,
10141 "type" : "string"
10142 },
10143 "pending" : {
10144 "optional" : 1
10145 },
10146 "reversedns" : {
10147 "optional" : 1,
10148 "type" : "string"
10149 },
10150 "state" : {
10151 "optional" : 1,
10152 "type" : "string"
10153 },
c5aa7e14
TL
10154 "type" : {
10155 "type" : "string"
10156 },
10157 "zone" : {
10158 "type" : "string"
10159 }
10160 },
10161 "type" : "object"
10162 },
10163 "links" : [
10164 {
10165 "href" : "{zone}",
10166 "rel" : "child"
10167 }
10168 ],
10169 "type" : "array"
10170 }
10171 },
10172 "POST" : {
10173 "allowtoken" : 1,
10174 "description" : "Create a new sdn zone object.",
10175 "method" : "POST",
10176 "name" : "create",
10177 "parameters" : {
10178 "additionalProperties" : 0,
10179 "properties" : {
5370fa8c
TL
10180 "advertise-subnets" : {
10181 "description" : "Advertise evpn subnets if you have silent hosts",
10182 "optional" : 1,
10183 "type" : "boolean",
10184 "typetext" : "<boolean>"
10185 },
c5aa7e14
TL
10186 "bridge" : {
10187 "optional" : 1,
10188 "type" : "string",
10189 "typetext" : "<string>"
10190 },
7af2edf9
TL
10191 "bridge-disable-mac-learning" : {
10192 "description" : "Disable auto mac learning.",
10193 "optional" : 1,
10194 "type" : "boolean",
10195 "typetext" : "<boolean>"
10196 },
c5aa7e14
TL
10197 "controller" : {
10198 "description" : "Frr router name",
10199 "optional" : 1,
10200 "type" : "string",
10201 "typetext" : "<string>"
10202 },
5370fa8c
TL
10203 "disable-arp-nd-suppression" : {
10204 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
10205 "optional" : 1,
10206 "type" : "boolean",
10207 "typetext" : "<boolean>"
10208 },
d2656385
TL
10209 "dns" : {
10210 "description" : "dns api server",
10211 "optional" : 1,
10212 "type" : "string",
10213 "typetext" : "<string>"
10214 },
10215 "dnszone" : {
10216 "description" : "dns domain zone ex: mydomain.com",
10217 "format" : "dns-name",
10218 "optional" : 1,
10219 "type" : "string",
10220 "typetext" : "<string>"
10221 },
c5aa7e14
TL
10222 "dp-id" : {
10223 "description" : "Faucet dataplane id",
10224 "optional" : 1,
10225 "type" : "integer",
10226 "typetext" : "<integer>"
10227 },
d2656385
TL
10228 "exitnodes" : {
10229 "description" : "List of cluster node names.",
10230 "format" : "pve-node-list",
10231 "optional" : 1,
10232 "type" : "string",
10233 "typetext" : "<string>"
10234 },
5370fa8c
TL
10235 "exitnodes-local-routing" : {
10236 "description" : "Allow exitnodes to connect to evpn guests",
10237 "optional" : 1,
10238 "type" : "boolean",
10239 "typetext" : "<boolean>"
10240 },
c30bb419
TL
10241 "exitnodes-primary" : {
10242 "description" : "Force traffic to this exitnode first.",
10243 "format" : "pve-node",
10244 "optional" : 1,
10245 "type" : "string",
10246 "typetext" : "<string>"
10247 },
d2656385
TL
10248 "ipam" : {
10249 "description" : "use a specific ipam",
e7084ef7 10250 "optional" : 1,
d2656385
TL
10251 "type" : "string",
10252 "typetext" : "<string>"
10253 },
10254 "mac" : {
10255 "description" : "Anycast logical router mac address",
10256 "format" : "mac-addr",
10257 "optional" : 1,
10258 "type" : "string",
10259 "typetext" : "<string>"
10260 },
c5aa7e14 10261 "mtu" : {
ac70d7d1 10262 "description" : "MTU",
c5aa7e14
TL
10263 "optional" : 1,
10264 "type" : "integer",
10265 "typetext" : "<integer>"
10266 },
10267 "nodes" : {
10268 "description" : "List of cluster node names.",
10269 "format" : "pve-node-list",
10270 "optional" : 1,
10271 "type" : "string",
10272 "typetext" : "<string>"
10273 },
10274 "peers" : {
10275 "description" : "peers address list.",
10276 "format" : "ip-list",
10277 "optional" : 1,
10278 "type" : "string",
10279 "typetext" : "<string>"
10280 },
d2656385
TL
10281 "reversedns" : {
10282 "description" : "reverse dns api server",
10283 "optional" : 1,
10284 "type" : "string",
10285 "typetext" : "<string>"
10286 },
c30bb419
TL
10287 "rt-import" : {
10288 "description" : "Route-Target import",
10289 "format" : "pve-sdn-bgp-rt-list",
10290 "optional" : 1,
10291 "type" : "string",
10292 "typetext" : "<string>"
10293 },
c5aa7e14 10294 "tag" : {
ac70d7d1
TL
10295 "description" : "Service-VLAN Tag",
10296 "minimum" : 0,
c5aa7e14
TL
10297 "optional" : 1,
10298 "type" : "integer",
ac70d7d1 10299 "typetext" : "<integer> (0 - N)"
c5aa7e14
TL
10300 },
10301 "type" : {
10302 "description" : "Plugin type.",
10303 "enum" : [
10304 "evpn",
10305 "faucet",
10306 "qinq",
ac70d7d1 10307 "simple",
c5aa7e14
TL
10308 "vlan",
10309 "vxlan"
10310 ],
10311 "format" : "pve-configid",
10312 "type" : "string"
10313 },
ac70d7d1
TL
10314 "vlan-protocol" : {
10315 "default" : "802.1q",
10316 "enum" : [
10317 "802.1q",
10318 "802.1ad"
10319 ],
10320 "optional" : 1,
10321 "type" : "string"
10322 },
c5aa7e14
TL
10323 "vrf-vxlan" : {
10324 "description" : "l3vni.",
10325 "optional" : 1,
10326 "type" : "integer",
10327 "typetext" : "<integer>"
10328 },
4a407cfd
TL
10329 "vxlan-port" : {
10330 "description" : "Vxlan tunnel udp port (default 4789).",
10331 "maximum" : 65536,
10332 "minimum" : 1,
10333 "optional" : 1,
10334 "type" : "integer",
10335 "typetext" : "<integer> (1 - 65536)"
10336 },
c5aa7e14
TL
10337 "zone" : {
10338 "description" : "The SDN zone object identifier.",
10339 "format" : "pve-sdn-zone-id",
10340 "type" : "string",
10341 "typetext" : "<string>"
10342 }
10343 },
10344 "type" : "object"
10345 },
10346 "permissions" : {
10347 "check" : [
10348 "perm",
10349 "/sdn/zones",
10350 [
10351 "SDN.Allocate"
10352 ]
10353 ]
10354 },
10355 "protected" : 1,
10356 "returns" : {
10357 "type" : "null"
10358 }
10359 }
10360 },
10361 "leaf" : 0,
10362 "path" : "/cluster/sdn/zones",
10363 "text" : "zones"
10364 },
10365 {
10366 "children" : [
10367 {
10368 "info" : {
10369 "DELETE" : {
10370 "allowtoken" : 1,
10371 "description" : "Delete sdn controller object configuration.",
10372 "method" : "DELETE",
10373 "name" : "delete",
10374 "parameters" : {
10375 "additionalProperties" : 0,
10376 "properties" : {
10377 "controller" : {
10378 "description" : "The SDN controller object identifier.",
10379 "format" : "pve-sdn-controller-id",
10380 "type" : "string",
10381 "typetext" : "<string>"
10382 }
10383 }
10384 },
10385 "permissions" : {
10386 "check" : [
10387 "perm",
10388 "/sdn/controllers",
10389 [
10390 "SDN.Allocate"
10391 ]
10392 ]
10393 },
10394 "protected" : 1,
10395 "returns" : {
10396 "type" : "null"
10397 }
10398 },
10399 "GET" : {
10400 "allowtoken" : 1,
10401 "description" : "Read sdn controller configuration.",
10402 "method" : "GET",
10403 "name" : "read",
10404 "parameters" : {
10405 "additionalProperties" : 0,
10406 "properties" : {
10407 "controller" : {
10408 "description" : "The SDN controller object identifier.",
10409 "format" : "pve-sdn-controller-id",
10410 "type" : "string",
10411 "typetext" : "<string>"
d2656385
TL
10412 },
10413 "pending" : {
10414 "description" : "Display pending config.",
10415 "optional" : 1,
10416 "type" : "boolean",
10417 "typetext" : "<boolean>"
10418 },
10419 "running" : {
10420 "description" : "Display running config.",
10421 "optional" : 1,
10422 "type" : "boolean",
10423 "typetext" : "<boolean>"
c5aa7e14
TL
10424 }
10425 }
10426 },
10427 "permissions" : {
10428 "check" : [
10429 "perm",
10430 "/sdn/controllers/{controller}",
10431 [
10432 "SDN.Allocate"
10433 ]
10434 ]
10435 },
10436 "returns" : {
10437 "type" : "object"
10438 }
10439 },
10440 "PUT" : {
10441 "allowtoken" : 1,
10442 "description" : "Update sdn controller object configuration.",
10443 "method" : "PUT",
10444 "name" : "update",
10445 "parameters" : {
10446 "additionalProperties" : 0,
10447 "properties" : {
10448 "asn" : {
10449 "description" : "autonomous system number",
c30bb419
TL
10450 "maximum" : 4294967296,
10451 "minimum" : 0,
c5aa7e14
TL
10452 "optional" : 1,
10453 "type" : "integer",
c30bb419
TL
10454 "typetext" : "<integer> (0 - 4294967296)"
10455 },
10456 "bgp-multipath-as-path-relax" : {
10457 "optional" : 1,
10458 "type" : "boolean",
10459 "typetext" : "<boolean>"
c5aa7e14
TL
10460 },
10461 "controller" : {
10462 "description" : "The SDN controller object identifier.",
10463 "format" : "pve-sdn-controller-id",
10464 "type" : "string",
10465 "typetext" : "<string>"
10466 },
10467 "delete" : {
10468 "description" : "A list of settings you want to delete.",
10469 "format" : "pve-configid-list",
10470 "maxLength" : 4096,
10471 "optional" : 1,
10472 "type" : "string",
10473 "typetext" : "<string>"
10474 },
10475 "digest" : {
82551b2b
TL
10476 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
10477 "maxLength" : 64,
c5aa7e14
TL
10478 "optional" : 1,
10479 "type" : "string",
10480 "typetext" : "<string>"
10481 },
d2656385
TL
10482 "ebgp" : {
10483 "description" : "Enable ebgp. (remote-as external)",
10484 "optional" : 1,
10485 "type" : "boolean",
10486 "typetext" : "<boolean>"
10487 },
10488 "ebgp-multihop" : {
10489 "optional" : 1,
10490 "type" : "integer",
10491 "typetext" : "<integer>"
10492 },
bd92b745
TL
10493 "isis-domain" : {
10494 "description" : "ISIS domain.",
10495 "optional" : 1,
10496 "type" : "string",
10497 "typetext" : "<string>"
10498 },
10499 "isis-ifaces" : {
10500 "description" : "ISIS interface.",
10501 "format" : "pve-iface-list",
10502 "optional" : 1,
10503 "type" : "string",
10504 "typetext" : "<string>"
10505 },
10506 "isis-net" : {
10507 "description" : "ISIS network entity title.",
10508 "optional" : 1,
10509 "type" : "string",
10510 "typetext" : "<string>"
10511 },
d2656385
TL
10512 "loopback" : {
10513 "description" : "source loopback interface.",
c5aa7e14
TL
10514 "optional" : 1,
10515 "type" : "string",
10516 "typetext" : "<string>"
10517 },
d2656385
TL
10518 "node" : {
10519 "description" : "The cluster node name.",
10520 "format" : "pve-node",
c5aa7e14
TL
10521 "optional" : 1,
10522 "type" : "string",
10523 "typetext" : "<string>"
10524 },
10525 "peers" : {
10526 "description" : "peers address list.",
10527 "format" : "ip-list",
10528 "optional" : 1,
10529 "type" : "string",
10530 "typetext" : "<string>"
10531 }
10532 },
10533 "type" : "object"
10534 },
10535 "permissions" : {
10536 "check" : [
10537 "perm",
10538 "/sdn/controllers",
10539 [
10540 "SDN.Allocate"
10541 ]
10542 ]
10543 },
10544 "protected" : 1,
10545 "returns" : {
10546 "type" : "null"
10547 }
10548 }
10549 },
10550 "leaf" : 1,
10551 "path" : "/cluster/sdn/controllers/{controller}",
10552 "text" : "{controller}"
10553 }
10554 ],
10555 "info" : {
10556 "GET" : {
10557 "allowtoken" : 1,
10558 "description" : "SDN controllers index.",
10559 "method" : "GET",
10560 "name" : "index",
10561 "parameters" : {
10562 "additionalProperties" : 0,
10563 "properties" : {
d2656385
TL
10564 "pending" : {
10565 "description" : "Display pending config.",
10566 "optional" : 1,
10567 "type" : "boolean",
10568 "typetext" : "<boolean>"
10569 },
10570 "running" : {
10571 "description" : "Display running config.",
10572 "optional" : 1,
10573 "type" : "boolean",
10574 "typetext" : "<boolean>"
10575 },
c5aa7e14
TL
10576 "type" : {
10577 "description" : "Only list sdn controllers of specific type",
10578 "enum" : [
d2656385 10579 "bgp",
c5aa7e14 10580 "evpn",
bd92b745
TL
10581 "faucet",
10582 "isis"
c5aa7e14
TL
10583 ],
10584 "optional" : 1,
10585 "type" : "string"
10586 }
10587 }
10588 },
10589 "permissions" : {
10590 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/controllers/<controller>'",
10591 "user" : "all"
10592 },
10593 "returns" : {
10594 "items" : {
10595 "properties" : {
10596 "controller" : {
10597 "type" : "string"
10598 },
d2656385
TL
10599 "pending" : {
10600 "optional" : 1
10601 },
10602 "state" : {
10603 "optional" : 1,
10604 "type" : "string"
10605 },
c5aa7e14
TL
10606 "type" : {
10607 "type" : "string"
10608 }
10609 },
10610 "type" : "object"
10611 },
10612 "links" : [
10613 {
10614 "href" : "{controller}",
10615 "rel" : "child"
10616 }
10617 ],
10618 "type" : "array"
10619 }
10620 },
10621 "POST" : {
10622 "allowtoken" : 1,
10623 "description" : "Create a new sdn controller object.",
10624 "method" : "POST",
10625 "name" : "create",
10626 "parameters" : {
10627 "additionalProperties" : 0,
10628 "properties" : {
10629 "asn" : {
10630 "description" : "autonomous system number",
c30bb419
TL
10631 "maximum" : 4294967296,
10632 "minimum" : 0,
c5aa7e14
TL
10633 "optional" : 1,
10634 "type" : "integer",
c30bb419
TL
10635 "typetext" : "<integer> (0 - 4294967296)"
10636 },
10637 "bgp-multipath-as-path-relax" : {
10638 "optional" : 1,
10639 "type" : "boolean",
10640 "typetext" : "<boolean>"
c5aa7e14
TL
10641 },
10642 "controller" : {
10643 "description" : "The SDN controller object identifier.",
10644 "format" : "pve-sdn-controller-id",
10645 "type" : "string",
10646 "typetext" : "<string>"
10647 },
d2656385
TL
10648 "ebgp" : {
10649 "description" : "Enable ebgp. (remote-as external)",
10650 "optional" : 1,
10651 "type" : "boolean",
10652 "typetext" : "<boolean>"
10653 },
10654 "ebgp-multihop" : {
10655 "optional" : 1,
10656 "type" : "integer",
10657 "typetext" : "<integer>"
10658 },
bd92b745
TL
10659 "isis-domain" : {
10660 "description" : "ISIS domain.",
10661 "optional" : 1,
10662 "type" : "string",
10663 "typetext" : "<string>"
10664 },
10665 "isis-ifaces" : {
10666 "description" : "ISIS interface.",
10667 "format" : "pve-iface-list",
10668 "optional" : 1,
10669 "type" : "string",
10670 "typetext" : "<string>"
10671 },
10672 "isis-net" : {
10673 "description" : "ISIS network entity title.",
10674 "optional" : 1,
10675 "type" : "string",
10676 "typetext" : "<string>"
10677 },
d2656385
TL
10678 "loopback" : {
10679 "description" : "source loopback interface.",
c5aa7e14
TL
10680 "optional" : 1,
10681 "type" : "string",
10682 "typetext" : "<string>"
10683 },
d2656385
TL
10684 "node" : {
10685 "description" : "The cluster node name.",
10686 "format" : "pve-node",
c5aa7e14
TL
10687 "optional" : 1,
10688 "type" : "string",
10689 "typetext" : "<string>"
10690 },
10691 "peers" : {
10692 "description" : "peers address list.",
10693 "format" : "ip-list",
10694 "optional" : 1,
10695 "type" : "string",
10696 "typetext" : "<string>"
10697 },
10698 "type" : {
10699 "description" : "Plugin type.",
10700 "enum" : [
d2656385 10701 "bgp",
c5aa7e14 10702 "evpn",
bd92b745
TL
10703 "faucet",
10704 "isis"
c5aa7e14
TL
10705 ],
10706 "format" : "pve-configid",
10707 "type" : "string"
10708 }
10709 },
10710 "type" : "object"
10711 },
10712 "permissions" : {
10713 "check" : [
10714 "perm",
10715 "/sdn/controllers",
10716 [
10717 "SDN.Allocate"
10718 ]
10719 ]
10720 },
10721 "protected" : 1,
10722 "returns" : {
10723 "type" : "null"
10724 }
10725 }
10726 },
10727 "leaf" : 0,
10728 "path" : "/cluster/sdn/controllers",
10729 "text" : "controllers"
d2656385
TL
10730 },
10731 {
10732 "children" : [
10733 {
10734 "info" : {
10735 "DELETE" : {
10736 "allowtoken" : 1,
10737 "description" : "Delete sdn ipam object configuration.",
10738 "method" : "DELETE",
10739 "name" : "delete",
10740 "parameters" : {
10741 "additionalProperties" : 0,
10742 "properties" : {
10743 "ipam" : {
10744 "description" : "The SDN ipam object identifier.",
10745 "format" : "pve-sdn-ipam-id",
10746 "type" : "string",
10747 "typetext" : "<string>"
10748 }
10749 }
10750 },
10751 "permissions" : {
10752 "check" : [
10753 "perm",
10754 "/sdn/ipams",
10755 [
10756 "SDN.Allocate"
10757 ]
10758 ]
10759 },
10760 "protected" : 1,
10761 "returns" : {
10762 "type" : "null"
10763 }
10764 },
10765 "GET" : {
10766 "allowtoken" : 1,
10767 "description" : "Read sdn ipam configuration.",
10768 "method" : "GET",
10769 "name" : "read",
10770 "parameters" : {
10771 "additionalProperties" : 0,
10772 "properties" : {
10773 "ipam" : {
10774 "description" : "The SDN ipam object identifier.",
10775 "format" : "pve-sdn-ipam-id",
10776 "type" : "string",
10777 "typetext" : "<string>"
10778 }
10779 }
10780 },
10781 "permissions" : {
10782 "check" : [
10783 "perm",
10784 "/sdn/ipams/{ipam}",
10785 [
10786 "SDN.Allocate"
10787 ]
10788 ]
10789 },
10790 "returns" : {
10791 "type" : "object"
10792 }
10793 },
10794 "PUT" : {
10795 "allowtoken" : 1,
10796 "description" : "Update sdn ipam object configuration.",
10797 "method" : "PUT",
10798 "name" : "update",
10799 "parameters" : {
10800 "additionalProperties" : 0,
10801 "properties" : {
10802 "delete" : {
10803 "description" : "A list of settings you want to delete.",
10804 "format" : "pve-configid-list",
10805 "maxLength" : 4096,
10806 "optional" : 1,
10807 "type" : "string",
10808 "typetext" : "<string>"
10809 },
10810 "digest" : {
82551b2b
TL
10811 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
10812 "maxLength" : 64,
d2656385
TL
10813 "optional" : 1,
10814 "type" : "string",
10815 "typetext" : "<string>"
10816 },
10817 "ipam" : {
10818 "description" : "The SDN ipam object identifier.",
10819 "format" : "pve-sdn-ipam-id",
10820 "type" : "string",
10821 "typetext" : "<string>"
10822 },
10823 "section" : {
10824 "optional" : 1,
10825 "type" : "integer",
10826 "typetext" : "<integer>"
10827 },
10828 "token" : {
10829 "optional" : 1,
10830 "type" : "string",
10831 "typetext" : "<string>"
10832 },
10833 "url" : {
10834 "optional" : 1,
10835 "type" : "string",
10836 "typetext" : "<string>"
10837 }
10838 },
10839 "type" : "object"
10840 },
10841 "permissions" : {
10842 "check" : [
10843 "perm",
10844 "/sdn/ipams",
10845 [
10846 "SDN.Allocate"
10847 ]
10848 ]
10849 },
10850 "protected" : 1,
10851 "returns" : {
10852 "type" : "null"
10853 }
c5aa7e14
TL
10854 }
10855 },
d2656385
TL
10856 "leaf" : 1,
10857 "path" : "/cluster/sdn/ipams/{ipam}",
10858 "text" : "{ipam}"
7aacca6f 10859 }
d2656385
TL
10860 ],
10861 "info" : {
10862 "GET" : {
10863 "allowtoken" : 1,
10864 "description" : "SDN ipams index.",
10865 "method" : "GET",
10866 "name" : "index",
10867 "parameters" : {
10868 "additionalProperties" : 0,
10869 "properties" : {
10870 "type" : {
10871 "description" : "Only list sdn ipams of specific type",
10872 "enum" : [
10873 "netbox",
10874 "phpipam",
10875 "pve"
10876 ],
10877 "optional" : 1,
10878 "type" : "string"
10879 }
10880 }
10881 },
10882 "permissions" : {
10883 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/ipams/<ipam>'",
10884 "user" : "all"
10885 },
10886 "returns" : {
10887 "items" : {
10888 "properties" : {
10889 "ipam" : {
10890 "type" : "string"
10891 },
10892 "type" : {
10893 "type" : "string"
10894 }
10895 },
10896 "type" : "object"
10897 },
10898 "links" : [
10899 {
10900 "href" : "{ipam}",
10901 "rel" : "child"
10902 }
44660702 10903 ],
d2656385
TL
10904 "type" : "array"
10905 }
10906 },
10907 "POST" : {
10908 "allowtoken" : 1,
10909 "description" : "Create a new sdn ipam object.",
10910 "method" : "POST",
10911 "name" : "create",
10912 "parameters" : {
10913 "additionalProperties" : 0,
10914 "properties" : {
10915 "ipam" : {
10916 "description" : "The SDN ipam object identifier.",
10917 "format" : "pve-sdn-ipam-id",
10918 "type" : "string",
10919 "typetext" : "<string>"
10920 },
10921 "section" : {
10922 "optional" : 1,
10923 "type" : "integer",
10924 "typetext" : "<integer>"
10925 },
10926 "token" : {
10927 "optional" : 1,
10928 "type" : "string",
10929 "typetext" : "<string>"
10930 },
10931 "type" : {
10932 "description" : "Plugin type.",
10933 "enum" : [
10934 "netbox",
10935 "phpipam",
10936 "pve"
10937 ],
10938 "format" : "pve-configid",
10939 "type" : "string"
10940 },
10941 "url" : {
10942 "optional" : 1,
10943 "type" : "string",
10944 "typetext" : "<string>"
10945 }
10946 },
10947 "type" : "object"
10948 },
10949 "permissions" : {
10950 "check" : [
10951 "perm",
10952 "/sdn/ipams",
10953 [
10954 "SDN.Allocate"
10955 ]
10956 ]
10957 },
10958 "protected" : 1,
10959 "returns" : {
10960 "type" : "null"
56122987
DM
10961 }
10962 }
10963 },
d2656385
TL
10964 "leaf" : 0,
10965 "path" : "/cluster/sdn/ipams",
10966 "text" : "ipams"
10967 },
10968 {
10969 "children" : [
10970 {
10971 "info" : {
10972 "DELETE" : {
10973 "allowtoken" : 1,
10974 "description" : "Delete sdn dns object configuration.",
10975 "method" : "DELETE",
10976 "name" : "delete",
10977 "parameters" : {
10978 "additionalProperties" : 0,
10979 "properties" : {
10980 "dns" : {
10981 "description" : "The SDN dns object identifier.",
10982 "format" : "pve-sdn-dns-id",
10983 "type" : "string",
10984 "typetext" : "<string>"
10985 }
10986 }
10987 },
10988 "permissions" : {
10989 "check" : [
10990 "perm",
10991 "/sdn/dns",
10992 [
10993 "SDN.Allocate"
10994 ]
10995 ]
10996 },
10997 "protected" : 1,
10998 "returns" : {
10999 "type" : "null"
11000 }
11001 },
11002 "GET" : {
11003 "allowtoken" : 1,
11004 "description" : "Read sdn dns configuration.",
11005 "method" : "GET",
11006 "name" : "read",
11007 "parameters" : {
11008 "additionalProperties" : 0,
11009 "properties" : {
11010 "dns" : {
11011 "description" : "The SDN dns object identifier.",
11012 "format" : "pve-sdn-dns-id",
11013 "type" : "string",
11014 "typetext" : "<string>"
11015 }
11016 }
11017 },
11018 "permissions" : {
11019 "check" : [
11020 "perm",
11021 "/sdn/dns/{dns}",
11022 [
11023 "SDN.Allocate"
11024 ]
11025 ]
11026 },
11027 "returns" : {
11028 "type" : "object"
11029 }
11030 },
11031 "PUT" : {
11032 "allowtoken" : 1,
11033 "description" : "Update sdn dns object configuration.",
11034 "method" : "PUT",
11035 "name" : "update",
11036 "parameters" : {
11037 "additionalProperties" : 0,
11038 "properties" : {
11039 "delete" : {
11040 "description" : "A list of settings you want to delete.",
11041 "format" : "pve-configid-list",
11042 "maxLength" : 4096,
11043 "optional" : 1,
11044 "type" : "string",
11045 "typetext" : "<string>"
11046 },
11047 "digest" : {
82551b2b
TL
11048 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
11049 "maxLength" : 64,
d2656385
TL
11050 "optional" : 1,
11051 "type" : "string",
11052 "typetext" : "<string>"
11053 },
11054 "dns" : {
11055 "description" : "The SDN dns object identifier.",
11056 "format" : "pve-sdn-dns-id",
11057 "type" : "string",
11058 "typetext" : "<string>"
11059 },
11060 "key" : {
11061 "optional" : 1,
11062 "type" : "string",
11063 "typetext" : "<string>"
11064 },
11065 "reversemaskv6" : {
11066 "optional" : 1,
11067 "type" : "integer",
11068 "typetext" : "<integer>"
11069 },
11070 "ttl" : {
11071 "optional" : 1,
11072 "type" : "integer",
11073 "typetext" : "<integer>"
11074 },
11075 "url" : {
11076 "optional" : 1,
11077 "type" : "string",
11078 "typetext" : "<string>"
11079 }
11080 },
11081 "type" : "object"
11082 },
11083 "permissions" : {
11084 "check" : [
11085 "perm",
11086 "/sdn/dns",
11087 [
11088 "SDN.Allocate"
11089 ]
11090 ]
11091 },
11092 "protected" : 1,
11093 "returns" : {
11094 "type" : "null"
11095 }
11096 }
11097 },
11098 "leaf" : 1,
11099 "path" : "/cluster/sdn/dns/{dns}",
11100 "text" : "{dns}"
11101 }
11102 ],
11103 "info" : {
11104 "GET" : {
11105 "allowtoken" : 1,
11106 "description" : "SDN dns index.",
11107 "method" : "GET",
11108 "name" : "index",
11109 "parameters" : {
11110 "additionalProperties" : 0,
11111 "properties" : {
11112 "type" : {
11113 "description" : "Only list sdn dns of specific type",
11114 "enum" : [
11115 "powerdns"
11116 ],
11117 "optional" : 1,
11118 "type" : "string"
11119 }
11120 }
11121 },
11122 "permissions" : {
11123 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/dns/<dns>'",
11124 "user" : "all"
11125 },
11126 "returns" : {
11127 "items" : {
11128 "properties" : {
11129 "dns" : {
11130 "type" : "string"
11131 },
11132 "type" : {
11133 "type" : "string"
11134 }
11135 },
11136 "type" : "object"
11137 },
11138 "links" : [
11139 {
11140 "href" : "{dns}",
11141 "rel" : "child"
11142 }
11143 ],
11144 "type" : "array"
11145 }
11146 },
11147 "POST" : {
11148 "allowtoken" : 1,
11149 "description" : "Create a new sdn dns object.",
11150 "method" : "POST",
11151 "name" : "create",
11152 "parameters" : {
11153 "additionalProperties" : 0,
11154 "properties" : {
11155 "dns" : {
11156 "description" : "The SDN dns object identifier.",
11157 "format" : "pve-sdn-dns-id",
11158 "type" : "string",
11159 "typetext" : "<string>"
11160 },
11161 "key" : {
11162 "optional" : 0,
11163 "type" : "string",
11164 "typetext" : "<string>"
11165 },
11166 "reversemaskv6" : {
11167 "optional" : 1,
11168 "type" : "integer",
11169 "typetext" : "<integer>"
11170 },
11171 "reversev6mask" : {
11172 "optional" : 1,
11173 "type" : "integer",
11174 "typetext" : "<integer>"
11175 },
11176 "ttl" : {
11177 "optional" : 1,
11178 "type" : "integer",
11179 "typetext" : "<integer>"
11180 },
11181 "type" : {
11182 "description" : "Plugin type.",
11183 "enum" : [
11184 "powerdns"
11185 ],
11186 "format" : "pve-configid",
11187 "type" : "string"
11188 },
11189 "url" : {
11190 "optional" : 0,
11191 "type" : "string",
11192 "typetext" : "<string>"
11193 }
11194 },
11195 "type" : "object"
11196 },
11197 "permissions" : {
11198 "check" : [
11199 "perm",
11200 "/sdn/dns",
11201 [
11202 "SDN.Allocate"
11203 ]
11204 ]
11205 },
11206 "protected" : 1,
11207 "returns" : {
11208 "type" : "null"
11209 }
11210 }
11211 },
11212 "leaf" : 0,
11213 "path" : "/cluster/sdn/dns",
11214 "text" : "dns"
11215 }
11216 ],
11217 "info" : {
11218 "GET" : {
11219 "allowtoken" : 1,
11220 "description" : "Directory index.",
11221 "method" : "GET",
11222 "name" : "index",
11223 "parameters" : {
11224 "additionalProperties" : 0
11225 },
11226 "permissions" : {
11227 "check" : [
11228 "perm",
bd92b745 11229 "/sdn",
d2656385
TL
11230 [
11231 "SDN.Audit"
11232 ]
11233 ]
11234 },
11235 "returns" : {
11236 "items" : {
11237 "properties" : {
11238 "id" : {
11239 "type" : "string"
11240 }
11241 },
11242 "type" : "object"
11243 },
11244 "links" : [
11245 {
11246 "href" : "{id}",
11247 "rel" : "child"
11248 }
11249 ],
11250 "type" : "array"
11251 }
11252 },
11253 "PUT" : {
11254 "allowtoken" : 1,
11255 "description" : "Apply sdn controller changes && reload.",
11256 "method" : "PUT",
11257 "name" : "reload",
11258 "parameters" : {
11259 "additionalProperties" : 0
11260 },
11261 "permissions" : {
11262 "check" : [
11263 "perm",
11264 "/sdn",
11265 [
11266 "SDN.Allocate"
11267 ]
11268 ]
11269 },
11270 "protected" : 1,
11271 "returns" : {
11272 "type" : "string"
11273 }
11274 }
11275 },
11276 "leaf" : 0,
11277 "path" : "/cluster/sdn",
11278 "text" : "sdn"
11279 },
11280 {
11281 "info" : {
11282 "GET" : {
11283 "allowtoken" : 1,
11284 "description" : "Read cluster log",
11285 "method" : "GET",
11286 "name" : "log",
11287 "parameters" : {
11288 "additionalProperties" : 0,
11289 "properties" : {
11290 "max" : {
11291 "description" : "Maximum number of entries.",
11292 "minimum" : 1,
11293 "optional" : 1,
11294 "type" : "integer",
11295 "typetext" : "<integer> (1 - N)"
11296 }
11297 }
11298 },
11299 "permissions" : {
11300 "user" : "all"
11301 },
11302 "returns" : {
11303 "items" : {
11304 "properties" : {},
11305 "type" : "object"
11306 },
11307 "type" : "array"
11308 }
11309 }
11310 },
11311 "leaf" : 1,
11312 "path" : "/cluster/log",
11313 "text" : "log"
11314 },
11315 {
11316 "info" : {
11317 "GET" : {
11318 "allowtoken" : 1,
11319 "description" : "Resources index (cluster wide).",
11320 "method" : "GET",
11321 "name" : "resources",
11322 "parameters" : {
11323 "additionalProperties" : 0,
11324 "properties" : {
11325 "type" : {
11326 "enum" : [
11327 "vm",
11328 "storage",
11329 "node",
11330 "sdn"
11331 ],
11332 "optional" : 1,
11333 "type" : "string"
11334 }
11335 }
11336 },
11337 "permissions" : {
11338 "user" : "all"
11339 },
11340 "returns" : {
11341 "items" : {
11342 "properties" : {
81a3384d
TL
11343 "cgroup-mode" : {
11344 "description" : "The cgroup mode the node operates under (when type == node).",
11345 "optional" : 1,
11346 "type" : "integer"
11347 },
d2656385
TL
11348 "content" : {
11349 "description" : "Allowed storage content types (when type == storage).",
11350 "format" : "pve-storage-content-list",
11351 "optional" : 1,
11352 "type" : "string"
11353 },
11354 "cpu" : {
11355 "description" : "CPU utilization (when type in node,qemu,lxc).",
4e7f60c2 11356 "minimum" : 0,
4d47f125
TL
11357 "optional" : 1,
11358 "renderer" : "fraction_as_percentage",
11359 "type" : "number"
11360 },
11361 "disk" : {
11362 "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
4e7f60c2 11363 "minimum" : 0,
4d47f125
TL
11364 "optional" : 1,
11365 "renderer" : "bytes",
4e7f60c2 11366 "type" : "integer"
4d47f125
TL
11367 },
11368 "hastate" : {
11369 "description" : "HA service status (for HA managed VMs).",
11370 "optional" : 1,
11371 "type" : "string"
11372 },
11373 "id" : {
287a95cf 11374 "description" : "Resource id.",
4d47f125
TL
11375 "type" : "string"
11376 },
11377 "level" : {
11378 "description" : "Support level (when type == node).",
11379 "optional" : 1,
11380 "type" : "string"
11381 },
11382 "maxcpu" : {
11383 "description" : "Number of available CPUs (when type in node,qemu,lxc).",
4e7f60c2 11384 "minimum" : 0,
4d47f125
TL
11385 "optional" : 1,
11386 "type" : "number"
11387 },
11388 "maxdisk" : {
11389 "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
4e7f60c2 11390 "minimum" : 0,
4d47f125
TL
11391 "optional" : 1,
11392 "renderer" : "bytes",
11393 "type" : "integer"
11394 },
11395 "maxmem" : {
11396 "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
11397 "optional" : 1,
11398 "renderer" : "bytes",
11399 "type" : "integer"
11400 },
11401 "mem" : {
11402 "description" : "Used memory in bytes (when type in node,qemu,lxc).",
4e7f60c2 11403 "minimum" : 0,
4d47f125
TL
11404 "optional" : 1,
11405 "renderer" : "bytes",
4e7f60c2 11406 "type" : "integer"
4d47f125 11407 },
34f3e481
TL
11408 "name" : {
11409 "description" : "Name of the resource.",
11410 "optional" : 1,
11411 "type" : "string"
11412 },
4d47f125
TL
11413 "node" : {
11414 "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
11415 "format" : "pve-node",
11416 "optional" : 1,
11417 "type" : "string"
11418 },
d2656385
TL
11419 "plugintype" : {
11420 "description" : "More specific type, if available.",
11421 "optional" : 1,
11422 "type" : "string"
11423 },
4d47f125
TL
11424 "pool" : {
11425 "description" : "The pool name (when type in pool,qemu,lxc).",
11426 "optional" : 1,
11427 "type" : "string"
11428 },
11429 "status" : {
11430 "description" : "Resource type dependent status.",
11431 "optional" : 1,
11432 "type" : "string"
11433 },
11434 "storage" : {
11435 "description" : "The storage identifier (when type == storage).",
11436 "format" : "pve-storage-id",
11437 "optional" : 1,
11438 "type" : "string"
11439 },
11440 "type" : {
11441 "description" : "Resource type.",
11442 "enum" : [
11443 "node",
11444 "storage",
11445 "pool",
11446 "qemu",
11447 "lxc",
1c532546
TL
11448 "openvz",
11449 "sdn"
4d47f125
TL
11450 ],
11451 "type" : "string"
11452 },
11453 "uptime" : {
11454 "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
11455 "optional" : 1,
11456 "renderer" : "duration",
11457 "type" : "integer"
4e7f60c2
TL
11458 },
11459 "vmid" : {
11460 "description" : "The numerical vmid (when type in qemu,lxc).",
82551b2b
TL
11461 "format" : "pve-vmid",
11462 "maximum" : 999999999,
11463 "minimum" : 100,
4e7f60c2
TL
11464 "optional" : 1,
11465 "type" : "integer"
4d47f125
TL
11466 }
11467 },
44660702
DM
11468 "type" : "object"
11469 },
11470 "type" : "array"
11471 }
56122987
DM
11472 }
11473 },
7aacca6f 11474 "leaf" : 1,
44660702
DM
11475 "path" : "/cluster/resources",
11476 "text" : "resources"
56122987
DM
11477 },
11478 {
56122987
DM
11479 "info" : {
11480 "GET" : {
e9cd3bd4 11481 "allowtoken" : 1,
7aacca6f 11482 "description" : "List recent tasks (cluster wide).",
44660702 11483 "method" : "GET",
7aacca6f 11484 "name" : "tasks",
56122987
DM
11485 "parameters" : {
11486 "additionalProperties" : 0
11487 },
44660702
DM
11488 "permissions" : {
11489 "user" : "all"
11490 },
56122987
DM
11491 "returns" : {
11492 "items" : {
11493 "properties" : {
11494 "upid" : {
11495 "type" : "string"
11496 }
44660702
DM
11497 },
11498 "type" : "object"
11499 },
11500 "type" : "array"
7aacca6f 11501 }
56122987
DM
11502 }
11503 },
7aacca6f 11504 "leaf" : 1,
44660702
DM
11505 "path" : "/cluster/tasks",
11506 "text" : "tasks"
56122987
DM
11507 },
11508 {
56122987 11509 "info" : {
7aacca6f 11510 "GET" : {
e9cd3bd4 11511 "allowtoken" : 1,
81a3384d 11512 "description" : "Get datacenter options. Without 'Sys.Audit' on '/' not all options are returned.",
44660702
DM
11513 "method" : "GET",
11514 "name" : "get_options",
56122987 11515 "parameters" : {
7aacca6f
DM
11516 "additionalProperties" : 0
11517 },
11518 "permissions" : {
11519 "check" : [
11520 "perm",
11521 "/",
11522 [
11523 "Sys.Audit"
11524 ]
81a3384d
TL
11525 ],
11526 "user" : "all"
7aacca6f 11527 },
7aacca6f 11528 "returns" : {
44660702 11529 "type" : "object"
7aacca6f
DM
11530 }
11531 },
11532 "PUT" : {
e9cd3bd4 11533 "allowtoken" : 1,
44660702
DM
11534 "description" : "Set datacenter options.",
11535 "method" : "PUT",
7aacca6f
DM
11536 "name" : "set_options",
11537 "parameters" : {
11538 "additionalProperties" : 0,
11539 "properties" : {
27a7acb2 11540 "bwlimit" : {
4a407cfd 11541 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
11542 "format" : {
11543 "clone" : {
95895385 11544 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
11545 "format_description" : "LIMIT",
11546 "minimum" : "0",
11547 "optional" : 1,
11548 "type" : "number"
11549 },
11550 "default" : {
95895385 11551 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
11552 "format_description" : "LIMIT",
11553 "minimum" : "0",
11554 "optional" : 1,
11555 "type" : "number"
11556 },
11557 "migration" : {
95895385 11558 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
11559 "format_description" : "LIMIT",
11560 "minimum" : "0",
11561 "optional" : 1,
11562 "type" : "number"
11563 },
11564 "move" : {
95895385 11565 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
11566 "format_description" : "LIMIT",
11567 "minimum" : "0",
11568 "optional" : 1,
11569 "type" : "number"
11570 },
11571 "restore" : {
95895385 11572 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
11573 "format_description" : "LIMIT",
11574 "minimum" : "0",
11575 "optional" : 1,
11576 "type" : "number"
11577 }
11578 },
11579 "optional" : 1,
11580 "type" : "string",
11581 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
11582 },
56122987 11583 "console" : {
a9a8e3d1 11584 "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
11585 "enum" : [
11586 "applet",
11587 "vv",
a9a8e3d1
DM
11588 "html5",
11589 "xtermjs"
44660702
DM
11590 ],
11591 "optional" : 1,
11592 "type" : "string"
56122987 11593 },
81a3384d
TL
11594 "crs" : {
11595 "description" : "Cluster resource scheduling settings.",
11596 "format" : {
11597 "ha" : {
11598 "default" : "basic",
11599 "description" : "Use this resource scheduler mode for HA.",
11600 "enum" : [
11601 "basic",
11602 "static"
11603 ],
9d2e98ed 11604 "optional" : 1,
81a3384d
TL
11605 "type" : "string",
11606 "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
11607 },
11608 "ha-rebalance-on-start" : {
11609 "default" : 0,
11610 "description" : "Set to use CRS for selecting a suited node when a HA services request-state changes from stop to start.",
11611 "optional" : 1,
11612 "type" : "boolean"
81a3384d
TL
11613 }
11614 },
11615 "optional" : 1,
11616 "type" : "string",
9d2e98ed 11617 "typetext" : "[ha=<basic|static>] [,ha-rebalance-on-start=<1|0>]"
81a3384d 11618 },
7aacca6f 11619 "delete" : {
7aacca6f 11620 "description" : "A list of settings you want to delete.",
44660702 11621 "format" : "pve-configid-list",
7aacca6f 11622 "optional" : 1,
013dc89f
DM
11623 "type" : "string",
11624 "typetext" : "<string>"
7aacca6f 11625 },
5370fa8c
TL
11626 "description" : {
11627 "description" : "Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.",
11628 "maxLength" : 65536,
11629 "optional" : 1,
11630 "type" : "string",
11631 "typetext" : "<string>"
11632 },
44660702
DM
11633 "email_from" : {
11634 "description" : "Specify email address to send notification from (default is root@$hostname)",
11635 "format" : "email-opt",
7aacca6f 11636 "optional" : 1,
013dc89f
DM
11637 "type" : "string",
11638 "typetext" : "<string>"
44660702
DM
11639 },
11640 "fencing" : {
11641 "default" : "watchdog",
11642 "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 11643 "enum" : [
44660702
DM
11644 "watchdog",
11645 "hardware",
11646 "both"
7aacca6f 11647 ],
44660702
DM
11648 "optional" : 1,
11649 "type" : "string"
11650 },
5f26e15b
TL
11651 "ha" : {
11652 "description" : "Cluster wide HA settings.",
11653 "format" : {
11654 "shutdown_policy" : {
11655 "default" : "conditional",
5c1699e5 11656 "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
11657 "enum" : [
11658 "freeze",
11659 "failover",
5c1699e5
TL
11660 "conditional",
11661 "migrate"
5f26e15b
TL
11662 ],
11663 "type" : "string",
e9cd3bd4 11664 "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
11665 }
11666 },
11667 "optional" : 1,
11668 "type" : "string",
5c1699e5 11669 "typetext" : "shutdown_policy=<enum>"
5f26e15b 11670 },
44660702
DM
11671 "http_proxy" : {
11672 "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
11673 "optional" : 1,
11674 "pattern" : "http://.*",
11675 "type" : "string"
7aacca6f 11676 },
56122987 11677 "keyboard" : {
44660702 11678 "description" : "Default keybord layout for vnc server.",
56122987 11679 "enum" : [
44660702
DM
11680 "de",
11681 "de-ch",
7aacca6f 11682 "da",
56122987 11683 "en-gb",
44660702
DM
11684 "en-us",
11685 "es",
11686 "fi",
11687 "fr",
11688 "fr-be",
11689 "fr-ca",
11690 "fr-ch",
11691 "hu",
7aacca6f 11692 "is",
44660702
DM
11693 "it",
11694 "ja",
11695 "lt",
56122987 11696 "mk",
7aacca6f 11697 "nl",
56122987 11698 "no",
44660702 11699 "pl",
7aacca6f 11700 "pt",
44660702
DM
11701 "pt-br",
11702 "sv",
11703 "sl",
11704 "tr"
56122987 11705 ],
56122987
DM
11706 "optional" : 1,
11707 "type" : "string"
11708 },
44660702
DM
11709 "language" : {
11710 "description" : "Default GUI language.",
11711 "enum" : [
4d47f125 11712 "ca",
1c532546
TL
11713 "da",
11714 "de",
44660702 11715 "en",
1c532546 11716 "es",
4d47f125 11717 "eu",
1c532546 11718 "fa",
4d47f125 11719 "fr",
1c532546 11720 "he",
4d47f125 11721 "it",
4d47f125
TL
11722 "ja",
11723 "nb",
11724 "nn",
4d47f125
TL
11725 "pl",
11726 "pt_BR",
11727 "ru",
11728 "sl",
11729 "sv",
1c532546
TL
11730 "tr",
11731 "zh_CN",
11732 "zh_TW"
44660702 11733 ],
56122987 11734 "optional" : 1,
44660702 11735 "type" : "string"
56122987 11736 },
4bd7df8b
DM
11737 "mac_prefix" : {
11738 "description" : "Prefix for autogenerated MAC addresses.",
95895385 11739 "format" : "mac-prefix",
4bd7df8b 11740 "optional" : 1,
95895385
TL
11741 "type" : "string",
11742 "typetext" : "<string>"
4bd7df8b 11743 },
44660702
DM
11744 "max_workers" : {
11745 "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
11746 "minimum" : 1,
56122987 11747 "optional" : 1,
4bd7df8b 11748 "type" : "integer",
013dc89f 11749 "typetext" : "<integer> (1 - N)"
56122987 11750 },
de0983cb
DM
11751 "migration" : {
11752 "description" : "For cluster wide migration settings.",
11753 "format" : {
11754 "network" : {
11755 "description" : "CIDR of the (sub) network that is used for migration.",
11756 "format" : "CIDR",
11757 "format_description" : "CIDR",
11758 "optional" : 1,
11759 "type" : "string"
11760 },
11761 "type" : {
11762 "default" : "secure",
11763 "default_key" : 1,
11764 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
11765 "enum" : [
11766 "secure",
11767 "insecure"
11768 ],
11769 "type" : "string"
11770 }
11771 },
11772 "optional" : 1,
11773 "type" : "string",
11774 "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
11775 },
7aacca6f 11776 "migration_unsecure" : {
de0983cb 11777 "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 11778 "optional" : 1,
013dc89f
DM
11779 "type" : "boolean",
11780 "typetext" : "<boolean>"
95895385 11781 },
7af2edf9
TL
11782 "next-id" : {
11783 "description" : "Control the range for the free VMID auto-selection pool.",
11784 "format" : {
11785 "lower" : {
11786 "default" : 100,
11787 "description" : "Lower, inclusive boundary for free next-id API range.",
11788 "max" : 999999999,
11789 "min" : 100,
11790 "optional" : 1,
11791 "type" : "integer"
11792 },
11793 "upper" : {
11794 "default" : 1000000,
460359c5 11795 "description" : "Upper, exclusive boundary for free next-id API range.",
de786b48 11796 "max" : 1000000000,
7af2edf9
TL
11797 "min" : 100,
11798 "optional" : 1,
11799 "type" : "integer"
11800 }
11801 },
11802 "optional" : 1,
11803 "type" : "string",
11804 "typetext" : "[lower=<integer>] [,upper=<integer>]"
11805 },
9d2e98ed
TL
11806 "notify" : {
11807 "description" : "Cluster-wide notification settings.",
11808 "format" : {
82551b2b
TL
11809 "fencing" : {
11810 "default" : "always",
11811 "description" : "Control if notifications about node fencing should be sent.",
11812 "enum" : [
11813 "always",
11814 "never"
11815 ],
11816 "optional" : 1,
11817 "type" : "string",
11818 "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"
11819 },
9d2e98ed
TL
11820 "package-updates" : {
11821 "default" : "auto",
82551b2b 11822 "description" : "Control when the daily update job should send out notifications.",
9d2e98ed
TL
11823 "enum" : [
11824 "auto",
11825 "always",
11826 "never"
11827 ],
82551b2b
TL
11828 "optional" : 1,
11829 "type" : "string",
11830 "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"
11831 },
11832 "replication" : {
11833 "default" : "always",
11834 "description" : "Control if notifications for replication failures should be sent.",
11835 "enum" : [
11836 "always",
11837 "never"
11838 ],
11839 "optional" : 1,
9d2e98ed 11840 "type" : "string",
82551b2b
TL
11841 "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"
11842 },
11843 "target-fencing" : {
11844 "description" : "Control where notifications about fenced cluster nodes should be sent to.",
11845 "format_description" : "TARGET",
11846 "optional" : 1,
11847 "type" : "string",
11848 "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."
11849 },
11850 "target-package-updates" : {
11851 "description" : "Control where notifications about available updates should be sent to.",
11852 "format_description" : "TARGET",
11853 "optional" : 1,
11854 "type" : "string",
11855 "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."
11856 },
11857 "target-replication" : {
11858 "description" : "Control where notifications for failed storage replication jobs should be sent to.",
11859 "format_description" : "TARGET",
11860 "optional" : 1,
11861 "type" : "string",
11862 "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
11863 }
11864 },
11865 "optional" : 1,
11866 "type" : "string",
82551b2b 11867 "typetext" : "[fencing=<always|never>] [,package-updates=<auto|always|never>] [,replication=<always|never>] [,target-fencing=<TARGET>] [,target-package-updates=<TARGET>] [,target-replication=<TARGET>]"
9d2e98ed 11868 },
81a3384d
TL
11869 "registered-tags" : {
11870 "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`.",
11871 "optional" : 1,
11872 "pattern" : "(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*);)*(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)",
11873 "type" : "string",
11874 "typetext" : "<tag>[;<tag>...]"
11875 },
11876 "tag-style" : {
11877 "description" : "Tag style options.",
11878 "format" : {
e7e885f9
TL
11879 "case-sensitive" : {
11880 "default" : 0,
11881 "description" : "Controls if filtering for unique tags on update should check case-sensitive.",
11882 "optional" : 1,
11883 "type" : "boolean"
11884 },
81a3384d
TL
11885 "color-map" : {
11886 "description" : "Manual color mapping for tags (semicolon separated).",
11887 "optional" : 1,
11888 "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})?))*",
11889 "type" : "string",
11890 "typetext" : "<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]"
11891 },
11892 "ordering" : {
11893 "default" : "alphabetical",
e7e885f9 11894 "description" : "Controls the sorting of the tags in the web-interface and the API update.",
81a3384d
TL
11895 "enum" : [
11896 "config",
11897 "alphabetical"
11898 ],
11899 "optional" : 1,
11900 "type" : "string"
11901 },
11902 "shape" : {
11903 "default" : "circle",
11904 "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.",
11905 "enum" : [
11906 "full",
11907 "circle",
11908 "dense",
11909 "none"
11910 ],
11911 "optional" : 1,
11912 "type" : "string"
11913 }
11914 },
11915 "optional" : 1,
11916 "type" : "string",
e7e885f9 11917 "typetext" : "[case-sensitive=<1|0>] [,color-map=<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]] [,ordering=<config|alphabetical>] [,shape=<enum>]"
81a3384d 11918 },
95895385
TL
11919 "u2f" : {
11920 "description" : "u2f",
11921 "format" : {
11922 "appid" : {
11923 "description" : "U2F AppId URL override. Defaults to the origin.",
11924 "format_description" : "APPID",
11925 "optional" : 1,
11926 "type" : "string"
11927 },
11928 "origin" : {
11929 "description" : "U2F Origin override. Mostly useful for single nodes with a single URL.",
11930 "format_description" : "URL",
11931 "optional" : 1,
11932 "type" : "string"
11933 }
11934 },
11935 "optional" : 1,
11936 "type" : "string",
11937 "typetext" : "[appid=<APPID>] [,origin=<URL>]"
5370fa8c 11938 },
81a3384d
TL
11939 "user-tag-access" : {
11940 "description" : "Privilege options for user-settable tags",
11941 "format" : {
11942 "user-allow" : {
11943 "default" : "free",
11944 "description" : "Controls tag usage for users without `Sys.Modify` on `/` by either allowing `none`, a `list`, already `existing` or anything (`free`).",
11945 "enum" : [
11946 "none",
11947 "list",
11948 "existing",
11949 "free"
11950 ],
11951 "optional" : 1,
11952 "type" : "string",
9d2e98ed 11953 "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 always unrestricted. * 'none' no tags are usable. * 'list' tags from 'user-allow-list' are usable. * 'existing' like list, but already existing tags of resources are also usable.* 'free' no tag restrictions."
81a3384d
TL
11954 },
11955 "user-allow-list" : {
11956 "description" : "List of tags users are allowed to set and delete (semicolon separated) for 'user-allow' values 'list' and 'existing'.",
11957 "optional" : 1,
11958 "pattern" : "(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)(?:;(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*))*",
11959 "type" : "string",
11960 "typetext" : "<tag>[;<tag>...]"
11961 }
11962 },
11963 "optional" : 1,
11964 "type" : "string",
11965 "typetext" : "[user-allow=<enum>] [,user-allow-list=<tag>[;<tag>...]]"
11966 },
5370fa8c
TL
11967 "webauthn" : {
11968 "description" : "webauthn configuration",
11969 "format" : {
81a3384d
TL
11970 "allow-subdomains" : {
11971 "default" : 1,
11972 "description" : "Whether to allow the origin to be a subdomain, rather than the exact URL.",
11973 "optional" : 1,
11974 "type" : "boolean"
11975 },
5370fa8c 11976 "id" : {
81a3384d 11977 "description" : "Relying party ID. Must be the domain name without protocol, port or location. Changing this *will* break existing credentials.",
5370fa8c
TL
11978 "format_description" : "DOMAINNAME",
11979 "optional" : 1,
11980 "type" : "string"
11981 },
11982 "origin" : {
11983 "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.",
11984 "format_description" : "URL",
11985 "optional" : 1,
11986 "type" : "string"
11987 },
11988 "rp" : {
11989 "description" : "Relying party name. Any text identifier. Changing this *may* break existing credentials.",
11990 "format_description" : "RELYING_PARTY",
11991 "optional" : 1,
11992 "type" : "string"
11993 }
11994 },
11995 "optional" : 1,
11996 "type" : "string",
81a3384d 11997 "typetext" : "[allow-subdomains=<1|0>] [,id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>]"
56122987
DM
11998 }
11999 }
12000 },
44660702
DM
12001 "permissions" : {
12002 "check" : [
12003 "perm",
12004 "/",
12005 [
12006 "Sys.Modify"
12007 ]
12008 ]
12009 },
56122987 12010 "protected" : 1,
7aacca6f
DM
12011 "returns" : {
12012 "type" : "null"
44660702 12013 }
7aacca6f
DM
12014 }
12015 },
44660702
DM
12016 "leaf" : 1,
12017 "path" : "/cluster/options",
7aacca6f
DM
12018 "text" : "options"
12019 },
12020 {
7aacca6f 12021 "info" : {
56122987 12022 "GET" : {
e9cd3bd4 12023 "allowtoken" : 1,
1e3f8156 12024 "description" : "Get cluster status information.",
44660702
DM
12025 "method" : "GET",
12026 "name" : "get_status",
56122987
DM
12027 "parameters" : {
12028 "additionalProperties" : 0
12029 },
56122987
DM
12030 "permissions" : {
12031 "check" : [
12032 "perm",
12033 "/",
12034 [
12035 "Sys.Audit"
12036 ]
12037 ]
12038 },
7aacca6f 12039 "protected" : 1,
56122987 12040 "returns" : {
56122987 12041 "items" : {
56122987 12042 "properties" : {
e9cd3bd4
TL
12043 "id" : {
12044 "type" : "string"
12045 },
12046 "ip" : {
12047 "description" : "[node] IP of the resolved nodename.",
12048 "optional" : 1,
12049 "type" : "string"
12050 },
12051 "level" : {
12052 "description" : "[node] Proxmox VE Subscription level, indicates if eligible for enterprise support as well as access to the stable Proxmox VE Enterprise Repository.",
12053 "optional" : 1,
12054 "type" : "string"
12055 },
12056 "local" : {
12057 "description" : "[node] Indicates if this is the responding node.",
12058 "optional" : 1,
12059 "type" : "boolean"
12060 },
12061 "name" : {
12062 "type" : "string"
12063 },
12064 "nodeid" : {
12065 "description" : "[node] ID of the node from the corosync configuration.",
12066 "optional" : 1,
12067 "type" : "integer"
12068 },
12069 "nodes" : {
12070 "description" : "[cluster] Nodes count, including offline nodes.",
12071 "optional" : 1,
12072 "type" : "integer"
12073 },
12074 "online" : {
12075 "description" : "[node] Indicates if the node is online or offline.",
12076 "optional" : 1,
12077 "type" : "boolean"
12078 },
12079 "quorate" : {
12080 "description" : "[cluster] Indicates if there is a majority of nodes online to make decisions",
12081 "optional" : 1,
12082 "type" : "boolean"
12083 },
56122987 12084 "type" : {
e9cd3bd4
TL
12085 "description" : "Indicates the type, either cluster or node. The type defines the object properties e.g. quorate available for type cluster.",
12086 "enum" : [
12087 "cluster",
12088 "node"
12089 ],
56122987 12090 "type" : "string"
e9cd3bd4
TL
12091 },
12092 "version" : {
12093 "description" : "[cluster] Current version of the corosync configuration file.",
12094 "optional" : 1,
12095 "type" : "integer"
56122987 12096 }
44660702
DM
12097 },
12098 "type" : "object"
7aacca6f
DM
12099 },
12100 "type" : "array"
56122987
DM
12101 }
12102 }
12103 },
44660702 12104 "leaf" : 1,
7aacca6f 12105 "path" : "/cluster/status",
44660702 12106 "text" : "status"
56122987
DM
12107 },
12108 {
56122987
DM
12109 "info" : {
12110 "GET" : {
e9cd3bd4 12111 "allowtoken" : 1,
c30bb419 12112 "description" : "Get next free VMID. Pass a VMID to assert that its free (at time of check).",
44660702
DM
12113 "method" : "GET",
12114 "name" : "nextid",
56122987 12115 "parameters" : {
44660702 12116 "additionalProperties" : 0,
56122987
DM
12117 "properties" : {
12118 "vmid" : {
44660702 12119 "description" : "The (unique) ID of the VM.",
56122987 12120 "format" : "pve-vmid",
8dd66e12
TL
12121 "maximum" : 999999999,
12122 "minimum" : 100,
7aacca6f 12123 "optional" : 1,
4bd7df8b 12124 "type" : "integer",
8dd66e12 12125 "typetext" : "<integer> (100 - 999999999)"
56122987 12126 }
44660702 12127 }
56122987 12128 },
7aacca6f
DM
12129 "permissions" : {
12130 "user" : "all"
44660702
DM
12131 },
12132 "returns" : {
12133 "description" : "The next free VMID.",
12134 "type" : "integer"
7aacca6f 12135 }
56122987
DM
12136 }
12137 },
7aacca6f 12138 "leaf" : 1,
44660702
DM
12139 "path" : "/cluster/nextid",
12140 "text" : "nextid"
56122987
DM
12141 }
12142 ],
44660702
DM
12143 "info" : {
12144 "GET" : {
e9cd3bd4 12145 "allowtoken" : 1,
44660702
DM
12146 "description" : "Cluster index.",
12147 "method" : "GET",
12148 "name" : "index",
12149 "parameters" : {
12150 "additionalProperties" : 0
12151 },
12152 "permissions" : {
12153 "user" : "all"
12154 },
12155 "returns" : {
12156 "items" : {
12157 "properties" : {},
12158 "type" : "object"
12159 },
12160 "links" : [
12161 {
12162 "href" : "{name}",
12163 "rel" : "child"
12164 }
12165 ],
12166 "type" : "array"
12167 }
12168 }
12169 },
12170 "leaf" : 0,
12171 "path" : "/cluster",
7aacca6f 12172 "text" : "cluster"
56122987
DM
12173 },
12174 {
56122987
DM
12175 "children" : [
12176 {
7aacca6f
DM
12177 "children" : [
12178 {
12179 "children" : [
12180 {
56122987
DM
12181 "children" : [
12182 {
56122987
DM
12183 "children" : [
12184 {
12185 "children" : [
12186 {
56122987
DM
12187 "info" : {
12188 "DELETE" : {
e9cd3bd4 12189 "allowtoken" : 1,
44660702 12190 "description" : "Delete rule.",
7aacca6f 12191 "method" : "DELETE",
44660702 12192 "name" : "delete_rule",
56122987 12193 "parameters" : {
44660702 12194 "additionalProperties" : 0,
56122987 12195 "properties" : {
44660702 12196 "digest" : {
82551b2b
TL
12197 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
12198 "maxLength" : 64,
44660702 12199 "optional" : 1,
013dc89f
DM
12200 "type" : "string",
12201 "typetext" : "<string>"
44660702 12202 },
56122987 12203 "node" : {
7aacca6f 12204 "description" : "The cluster node name.",
44660702 12205 "format" : "pve-node",
013dc89f
DM
12206 "type" : "string",
12207 "typetext" : "<string>"
7aacca6f 12208 },
56122987 12209 "pos" : {
7aacca6f 12210 "description" : "Update rule at position <pos>.",
44660702 12211 "minimum" : 0,
56122987 12212 "optional" : 1,
4bd7df8b 12213 "type" : "integer",
013dc89f 12214 "typetext" : "<integer> (0 - N)"
44660702
DM
12215 },
12216 "vmid" : {
12217 "description" : "The (unique) ID of the VM.",
12218 "format" : "pve-vmid",
8dd66e12
TL
12219 "maximum" : 999999999,
12220 "minimum" : 100,
4bd7df8b 12221 "type" : "integer",
8dd66e12 12222 "typetext" : "<integer> (100 - 999999999)"
56122987 12223 }
44660702 12224 }
7aacca6f 12225 },
56122987
DM
12226 "permissions" : {
12227 "check" : [
12228 "perm",
12229 "/vms/{vmid}",
12230 [
12231 "VM.Config.Network"
12232 ]
12233 ]
12234 },
44660702
DM
12235 "protected" : 1,
12236 "proxyto" : null,
56122987
DM
12237 "returns" : {
12238 "type" : "null"
44660702
DM
12239 }
12240 },
12241 "GET" : {
e9cd3bd4 12242 "allowtoken" : 1,
44660702
DM
12243 "description" : "Get single rule data.",
12244 "method" : "GET",
12245 "name" : "get_rule",
12246 "parameters" : {
12247 "additionalProperties" : 0,
12248 "properties" : {
12249 "node" : {
12250 "description" : "The cluster node name.",
12251 "format" : "pve-node",
013dc89f
DM
12252 "type" : "string",
12253 "typetext" : "<string>"
44660702
DM
12254 },
12255 "pos" : {
12256 "description" : "Update rule at position <pos>.",
12257 "minimum" : 0,
12258 "optional" : 1,
4bd7df8b 12259 "type" : "integer",
013dc89f 12260 "typetext" : "<integer> (0 - N)"
44660702
DM
12261 },
12262 "vmid" : {
12263 "description" : "The (unique) ID of the VM.",
12264 "format" : "pve-vmid",
8dd66e12
TL
12265 "maximum" : 999999999,
12266 "minimum" : 100,
4bd7df8b 12267 "type" : "integer",
8dd66e12 12268 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
12269 }
12270 }
56122987 12271 },
56122987
DM
12272 "permissions" : {
12273 "check" : [
12274 "perm",
12275 "/vms/{vmid}",
12276 [
44660702 12277 "VM.Audit"
56122987
DM
12278 ]
12279 ]
12280 },
56122987 12281 "proxyto" : null,
44660702
DM
12282 "returns" : {
12283 "properties" : {
e2d681b3
TL
12284 "action" : {
12285 "type" : "string"
12286 },
12287 "comment" : {
12288 "optional" : 1,
12289 "type" : "string"
12290 },
12291 "dest" : {
12292 "optional" : 1,
12293 "type" : "string"
12294 },
12295 "dport" : {
12296 "optional" : 1,
12297 "type" : "string"
12298 },
12299 "enable" : {
12300 "optional" : 1,
12301 "type" : "integer"
12302 },
4772952b
TL
12303 "icmp-type" : {
12304 "optional" : 1,
12305 "type" : "string"
12306 },
e2d681b3
TL
12307 "iface" : {
12308 "optional" : 1,
12309 "type" : "string"
12310 },
12311 "ipversion" : {
12312 "optional" : 1,
12313 "type" : "integer"
12314 },
95895385
TL
12315 "log" : {
12316 "description" : "Log level for firewall rule",
12317 "enum" : [
12318 "emerg",
12319 "alert",
12320 "crit",
12321 "err",
12322 "warning",
12323 "notice",
12324 "info",
12325 "debug",
12326 "nolog"
12327 ],
12328 "optional" : 1,
12329 "type" : "string"
12330 },
e2d681b3
TL
12331 "macro" : {
12332 "optional" : 1,
5f26e15b 12333 "type" : "string"
e2d681b3 12334 },
44660702
DM
12335 "pos" : {
12336 "type" : "integer"
e2d681b3
TL
12337 },
12338 "proto" : {
12339 "optional" : 1,
12340 "type" : "string"
12341 },
12342 "source" : {
12343 "optional" : 1,
12344 "type" : "string"
12345 },
12346 "sport" : {
12347 "optional" : 1,
12348 "type" : "string"
12349 },
12350 "type" : {
12351 "type" : "string"
44660702
DM
12352 }
12353 },
12354 "type" : "object"
12355 }
12356 },
12357 "PUT" : {
e9cd3bd4 12358 "allowtoken" : 1,
7aacca6f
DM
12359 "description" : "Modify rule data.",
12360 "method" : "PUT",
44660702 12361 "name" : "update_rule",
56122987 12362 "parameters" : {
44660702 12363 "additionalProperties" : 0,
56122987 12364 "properties" : {
44660702
DM
12365 "action" : {
12366 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
12367 "maxLength" : 20,
12368 "minLength" : 2,
56122987 12369 "optional" : 1,
44660702 12370 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
12371 "type" : "string"
12372 },
7aacca6f 12373 "comment" : {
e94f0d56 12374 "description" : "Descriptive comment.",
7aacca6f 12375 "optional" : 1,
013dc89f
DM
12376 "type" : "string",
12377 "typetext" : "<string>"
7aacca6f
DM
12378 },
12379 "delete" : {
7aacca6f 12380 "description" : "A list of settings you want to delete.",
44660702
DM
12381 "format" : "pve-configid-list",
12382 "optional" : 1,
013dc89f
DM
12383 "type" : "string",
12384 "typetext" : "<string>"
7aacca6f
DM
12385 },
12386 "dest" : {
44660702 12387 "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 12388 "format" : "pve-fw-addr-spec",
0695fdaf 12389 "maxLength" : 512,
56122987 12390 "optional" : 1,
013dc89f
DM
12391 "type" : "string",
12392 "typetext" : "<string>"
56122987 12393 },
7aacca6f 12394 "digest" : {
82551b2b
TL
12395 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
12396 "maxLength" : 64,
56122987 12397 "optional" : 1,
013dc89f
DM
12398 "type" : "string",
12399 "typetext" : "<string>"
44660702
DM
12400 },
12401 "dport" : {
12402 "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.",
12403 "format" : "pve-fw-dport-spec",
12404 "optional" : 1,
013dc89f
DM
12405 "type" : "string",
12406 "typetext" : "<string>"
56122987 12407 },
7aacca6f 12408 "enable" : {
e94f0d56 12409 "description" : "Flag to enable/disable a rule.",
44660702 12410 "minimum" : 0,
56122987 12411 "optional" : 1,
4bd7df8b 12412 "type" : "integer",
013dc89f 12413 "typetext" : "<integer> (0 - N)"
7aacca6f 12414 },
4772952b 12415 "icmp-type" : {
287a95cf 12416 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
12417 "format" : "pve-fw-icmp-type-spec",
12418 "optional" : 1,
12419 "type" : "string",
12420 "typetext" : "<string>"
12421 },
44660702
DM
12422 "iface" : {
12423 "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.",
12424 "format" : "pve-iface",
12425 "maxLength" : 20,
7aacca6f 12426 "minLength" : 2,
56122987 12427 "optional" : 1,
013dc89f
DM
12428 "type" : "string",
12429 "typetext" : "<string>"
56122987 12430 },
95895385
TL
12431 "log" : {
12432 "description" : "Log level for firewall rule.",
12433 "enum" : [
12434 "emerg",
12435 "alert",
12436 "crit",
12437 "err",
12438 "warning",
12439 "notice",
12440 "info",
12441 "debug",
12442 "nolog"
12443 ],
12444 "optional" : 1,
12445 "type" : "string"
12446 },
44660702 12447 "macro" : {
e94f0d56 12448 "description" : "Use predefined standard macro.",
44660702 12449 "maxLength" : 128,
56122987 12450 "optional" : 1,
013dc89f
DM
12451 "type" : "string",
12452 "typetext" : "<string>"
56122987 12453 },
44660702
DM
12454 "moveto" : {
12455 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
12456 "minimum" : 0,
56122987 12457 "optional" : 1,
4bd7df8b 12458 "type" : "integer",
013dc89f 12459 "typetext" : "<integer> (0 - N)"
56122987 12460 },
44660702
DM
12461 "node" : {
12462 "description" : "The cluster node name.",
12463 "format" : "pve-node",
013dc89f
DM
12464 "type" : "string",
12465 "typetext" : "<string>"
44660702
DM
12466 },
12467 "pos" : {
12468 "description" : "Update rule at position <pos>.",
12469 "minimum" : 0,
12470 "optional" : 1,
4bd7df8b 12471 "type" : "integer",
013dc89f 12472 "typetext" : "<integer> (0 - N)"
56122987 12473 },
44660702
DM
12474 "proto" : {
12475 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
12476 "format" : "pve-fw-protocol-spec",
12477 "optional" : 1,
013dc89f
DM
12478 "type" : "string",
12479 "typetext" : "<string>"
7aacca6f 12480 },
44660702
DM
12481 "source" : {
12482 "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.",
12483 "format" : "pve-fw-addr-spec",
0695fdaf 12484 "maxLength" : 512,
56122987 12485 "optional" : 1,
013dc89f
DM
12486 "type" : "string",
12487 "typetext" : "<string>"
56122987
DM
12488 },
12489 "sport" : {
12490 "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
12491 "format" : "pve-fw-sport-spec",
12492 "optional" : 1,
013dc89f
DM
12493 "type" : "string",
12494 "typetext" : "<string>"
44660702
DM
12495 },
12496 "type" : {
e94f0d56 12497 "description" : "Rule type.",
44660702
DM
12498 "enum" : [
12499 "in",
12500 "out",
12501 "group"
12502 ],
56122987 12503 "optional" : 1,
56122987 12504 "type" : "string"
44660702
DM
12505 },
12506 "vmid" : {
12507 "description" : "The (unique) ID of the VM.",
12508 "format" : "pve-vmid",
8dd66e12
TL
12509 "maximum" : 999999999,
12510 "minimum" : 100,
4bd7df8b 12511 "type" : "integer",
8dd66e12 12512 "typetext" : "<integer> (100 - 999999999)"
56122987 12513 }
44660702 12514 }
56122987 12515 },
56122987
DM
12516 "permissions" : {
12517 "check" : [
12518 "perm",
12519 "/vms/{vmid}",
12520 [
44660702 12521 "VM.Config.Network"
56122987
DM
12522 ]
12523 ]
7aacca6f 12524 },
44660702 12525 "protected" : 1,
7aacca6f 12526 "proxyto" : null,
7aacca6f 12527 "returns" : {
44660702
DM
12528 "type" : "null"
12529 }
56122987 12530 }
7aacca6f 12531 },
44660702 12532 "leaf" : 1,
7aacca6f 12533 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
44660702 12534 "text" : "{pos}"
56122987
DM
12535 }
12536 ],
56122987 12537 "info" : {
44660702 12538 "GET" : {
e9cd3bd4 12539 "allowtoken" : 1,
44660702
DM
12540 "description" : "List rules.",
12541 "method" : "GET",
12542 "name" : "get_rules",
12543 "parameters" : {
12544 "additionalProperties" : 0,
12545 "properties" : {
12546 "node" : {
12547 "description" : "The cluster node name.",
12548 "format" : "pve-node",
013dc89f
DM
12549 "type" : "string",
12550 "typetext" : "<string>"
44660702
DM
12551 },
12552 "vmid" : {
12553 "description" : "The (unique) ID of the VM.",
12554 "format" : "pve-vmid",
8dd66e12
TL
12555 "maximum" : 999999999,
12556 "minimum" : 100,
4bd7df8b 12557 "type" : "integer",
8dd66e12 12558 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
12559 }
12560 }
56122987 12561 },
56122987
DM
12562 "permissions" : {
12563 "check" : [
12564 "perm",
12565 "/vms/{vmid}",
12566 [
44660702 12567 "VM.Audit"
56122987
DM
12568 ]
12569 ]
7aacca6f 12570 },
44660702
DM
12571 "proxyto" : null,
12572 "returns" : {
12573 "items" : {
12574 "properties" : {
12575 "pos" : {
12576 "type" : "integer"
12577 }
12578 },
12579 "type" : "object"
12580 },
12581 "links" : [
12582 {
12583 "href" : "{pos}",
12584 "rel" : "child"
12585 }
12586 ],
12587 "type" : "array"
12588 }
12589 },
12590 "POST" : {
e9cd3bd4 12591 "allowtoken" : 1,
44660702 12592 "description" : "Create new rule.",
7aacca6f 12593 "method" : "POST",
44660702 12594 "name" : "create_rule",
56122987 12595 "parameters" : {
44660702 12596 "additionalProperties" : 0,
56122987 12597 "properties" : {
44660702
DM
12598 "action" : {
12599 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
12600 "maxLength" : 20,
12601 "minLength" : 2,
12602 "optional" : 0,
12603 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
12604 "type" : "string"
56122987 12605 },
44660702 12606 "comment" : {
e94f0d56 12607 "description" : "Descriptive comment.",
56122987 12608 "optional" : 1,
013dc89f
DM
12609 "type" : "string",
12610 "typetext" : "<string>"
56122987 12611 },
44660702
DM
12612 "dest" : {
12613 "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.",
12614 "format" : "pve-fw-addr-spec",
0695fdaf 12615 "maxLength" : 512,
44660702 12616 "optional" : 1,
013dc89f
DM
12617 "type" : "string",
12618 "typetext" : "<string>"
56122987 12619 },
44660702 12620 "digest" : {
82551b2b
TL
12621 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
12622 "maxLength" : 64,
56122987 12623 "optional" : 1,
013dc89f
DM
12624 "type" : "string",
12625 "typetext" : "<string>"
56122987 12626 },
7aacca6f
DM
12627 "dport" : {
12628 "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 12629 "format" : "pve-fw-dport-spec",
7aacca6f 12630 "optional" : 1,
013dc89f
DM
12631 "type" : "string",
12632 "typetext" : "<string>"
56122987
DM
12633 },
12634 "enable" : {
e94f0d56 12635 "description" : "Flag to enable/disable a rule.",
56122987 12636 "minimum" : 0,
44660702 12637 "optional" : 1,
4bd7df8b 12638 "type" : "integer",
013dc89f 12639 "typetext" : "<integer> (0 - N)"
56122987 12640 },
4772952b 12641 "icmp-type" : {
287a95cf 12642 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
12643 "format" : "pve-fw-icmp-type-spec",
12644 "optional" : 1,
12645 "type" : "string",
12646 "typetext" : "<string>"
12647 },
44660702
DM
12648 "iface" : {
12649 "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.",
12650 "format" : "pve-iface",
12651 "maxLength" : 20,
7aacca6f 12652 "minLength" : 2,
44660702 12653 "optional" : 1,
013dc89f
DM
12654 "type" : "string",
12655 "typetext" : "<string>"
56122987 12656 },
95895385
TL
12657 "log" : {
12658 "description" : "Log level for firewall rule.",
12659 "enum" : [
12660 "emerg",
12661 "alert",
12662 "crit",
12663 "err",
12664 "warning",
12665 "notice",
12666 "info",
12667 "debug",
12668 "nolog"
12669 ],
12670 "optional" : 1,
12671 "type" : "string"
12672 },
44660702 12673 "macro" : {
e94f0d56 12674 "description" : "Use predefined standard macro.",
44660702 12675 "maxLength" : 128,
56122987 12676 "optional" : 1,
013dc89f
DM
12677 "type" : "string",
12678 "typetext" : "<string>"
7aacca6f 12679 },
44660702
DM
12680 "node" : {
12681 "description" : "The cluster node name.",
12682 "format" : "pve-node",
013dc89f
DM
12683 "type" : "string",
12684 "typetext" : "<string>"
44660702
DM
12685 },
12686 "pos" : {
12687 "description" : "Update rule at position <pos>.",
12688 "minimum" : 0,
12689 "optional" : 1,
4bd7df8b 12690 "type" : "integer",
013dc89f 12691 "typetext" : "<integer> (0 - N)"
44660702
DM
12692 },
12693 "proto" : {
12694 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
12695 "format" : "pve-fw-protocol-spec",
7aacca6f 12696 "optional" : 1,
013dc89f
DM
12697 "type" : "string",
12698 "typetext" : "<string>"
7aacca6f
DM
12699 },
12700 "source" : {
12701 "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 12702 "format" : "pve-fw-addr-spec",
0695fdaf 12703 "maxLength" : 512,
7aacca6f 12704 "optional" : 1,
013dc89f
DM
12705 "type" : "string",
12706 "typetext" : "<string>"
7aacca6f 12707 },
44660702
DM
12708 "sport" : {
12709 "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.",
12710 "format" : "pve-fw-sport-spec",
7aacca6f 12711 "optional" : 1,
013dc89f
DM
12712 "type" : "string",
12713 "typetext" : "<string>"
7aacca6f 12714 },
44660702 12715 "type" : {
e94f0d56 12716 "description" : "Rule type.",
44660702
DM
12717 "enum" : [
12718 "in",
12719 "out",
12720 "group"
12721 ],
12722 "optional" : 0,
12723 "type" : "string"
7aacca6f 12724 },
7aacca6f 12725 "vmid" : {
44660702 12726 "description" : "The (unique) ID of the VM.",
7aacca6f 12727 "format" : "pve-vmid",
8dd66e12
TL
12728 "maximum" : 999999999,
12729 "minimum" : 100,
4bd7df8b 12730 "type" : "integer",
8dd66e12 12731 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
12732 }
12733 }
12734 },
56122987
DM
12735 "permissions" : {
12736 "check" : [
12737 "perm",
12738 "/vms/{vmid}",
12739 [
44660702 12740 "VM.Config.Network"
56122987
DM
12741 ]
12742 ]
12743 },
44660702
DM
12744 "protected" : 1,
12745 "proxyto" : null,
56122987 12746 "returns" : {
44660702
DM
12747 "type" : "null"
12748 }
56122987
DM
12749 }
12750 },
44660702 12751 "leaf" : 0,
7aacca6f 12752 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
44660702 12753 "text" : "rules"
56122987
DM
12754 },
12755 {
12756 "children" : [
12757 {
56122987 12758 "info" : {
44660702 12759 "DELETE" : {
e9cd3bd4 12760 "allowtoken" : 1,
44660702
DM
12761 "description" : "Remove IP or Network alias.",
12762 "method" : "DELETE",
12763 "name" : "remove_alias",
56122987 12764 "parameters" : {
44660702 12765 "additionalProperties" : 0,
56122987 12766 "properties" : {
44660702 12767 "digest" : {
82551b2b
TL
12768 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
12769 "maxLength" : 64,
44660702 12770 "optional" : 1,
013dc89f
DM
12771 "type" : "string",
12772 "typetext" : "<string>"
56122987
DM
12773 },
12774 "name" : {
56122987 12775 "description" : "Alias name.",
44660702 12776 "maxLength" : 64,
7aacca6f 12777 "minLength" : 2,
44660702 12778 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987
DM
12779 "type" : "string"
12780 },
7aacca6f 12781 "node" : {
44660702 12782 "description" : "The cluster node name.",
7aacca6f 12783 "format" : "pve-node",
013dc89f
DM
12784 "type" : "string",
12785 "typetext" : "<string>"
44660702
DM
12786 },
12787 "vmid" : {
12788 "description" : "The (unique) ID of the VM.",
12789 "format" : "pve-vmid",
8dd66e12
TL
12790 "maximum" : 999999999,
12791 "minimum" : 100,
4bd7df8b 12792 "type" : "integer",
8dd66e12 12793 "typetext" : "<integer> (100 - 999999999)"
56122987 12794 }
44660702 12795 }
56122987 12796 },
7aacca6f
DM
12797 "permissions" : {
12798 "check" : [
12799 "perm",
12800 "/vms/{vmid}",
12801 [
12802 "VM.Config.Network"
12803 ]
12804 ]
56122987 12805 },
44660702
DM
12806 "protected" : 1,
12807 "returns" : {
12808 "type" : "null"
12809 }
12810 },
12811 "GET" : {
e9cd3bd4 12812 "allowtoken" : 1,
44660702
DM
12813 "description" : "Read alias.",
12814 "method" : "GET",
12815 "name" : "read_alias",
56122987 12816 "parameters" : {
44660702 12817 "additionalProperties" : 0,
56122987 12818 "properties" : {
56122987 12819 "name" : {
7aacca6f 12820 "description" : "Alias name.",
44660702 12821 "maxLength" : 64,
56122987 12822 "minLength" : 2,
44660702 12823 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 12824 "type" : "string"
7aacca6f
DM
12825 },
12826 "node" : {
12827 "description" : "The cluster node name.",
44660702 12828 "format" : "pve-node",
013dc89f
DM
12829 "type" : "string",
12830 "typetext" : "<string>"
44660702
DM
12831 },
12832 "vmid" : {
12833 "description" : "The (unique) ID of the VM.",
12834 "format" : "pve-vmid",
8dd66e12
TL
12835 "maximum" : 999999999,
12836 "minimum" : 100,
4bd7df8b 12837 "type" : "integer",
8dd66e12 12838 "typetext" : "<integer> (100 - 999999999)"
56122987 12839 }
44660702 12840 }
56122987 12841 },
44660702
DM
12842 "permissions" : {
12843 "check" : [
12844 "perm",
12845 "/vms/{vmid}",
12846 [
12847 "VM.Audit"
12848 ]
12849 ]
56122987 12850 },
44660702
DM
12851 "returns" : {
12852 "type" : "object"
12853 }
7aacca6f 12854 },
44660702 12855 "PUT" : {
e9cd3bd4 12856 "allowtoken" : 1,
44660702
DM
12857 "description" : "Update IP or Network alias.",
12858 "method" : "PUT",
12859 "name" : "update_alias",
56122987
DM
12860 "parameters" : {
12861 "additionalProperties" : 0,
12862 "properties" : {
44660702
DM
12863 "cidr" : {
12864 "description" : "Network/IP specification in CIDR format.",
12865 "format" : "IPorCIDR",
013dc89f
DM
12866 "type" : "string",
12867 "typetext" : "<string>"
44660702
DM
12868 },
12869 "comment" : {
12870 "optional" : 1,
013dc89f
DM
12871 "type" : "string",
12872 "typetext" : "<string>"
56122987
DM
12873 },
12874 "digest" : {
82551b2b
TL
12875 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
12876 "maxLength" : 64,
56122987 12877 "optional" : 1,
013dc89f
DM
12878 "type" : "string",
12879 "typetext" : "<string>"
56122987 12880 },
7aacca6f 12881 "name" : {
44660702 12882 "description" : "Alias name.",
56122987
DM
12883 "maxLength" : 64,
12884 "minLength" : 2,
12885 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 12886 "type" : "string"
7aacca6f
DM
12887 },
12888 "node" : {
7aacca6f 12889 "description" : "The cluster node name.",
44660702 12890 "format" : "pve-node",
013dc89f
DM
12891 "type" : "string",
12892 "typetext" : "<string>"
44660702
DM
12893 },
12894 "rename" : {
12895 "description" : "Rename an existing alias.",
12896 "maxLength" : 64,
12897 "minLength" : 2,
12898 "optional" : 1,
12899 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
12900 "type" : "string"
12901 },
12902 "vmid" : {
12903 "description" : "The (unique) ID of the VM.",
12904 "format" : "pve-vmid",
8dd66e12
TL
12905 "maximum" : 999999999,
12906 "minimum" : 100,
4bd7df8b 12907 "type" : "integer",
8dd66e12 12908 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
12909 }
12910 }
12911 },
7aacca6f
DM
12912 "permissions" : {
12913 "check" : [
12914 "perm",
12915 "/vms/{vmid}",
12916 [
12917 "VM.Config.Network"
12918 ]
12919 ]
12920 },
12921 "protected" : 1,
7aacca6f
DM
12922 "returns" : {
12923 "type" : "null"
44660702 12924 }
56122987
DM
12925 }
12926 },
44660702 12927 "leaf" : 1,
7aacca6f 12928 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
44660702 12929 "text" : "{name}"
56122987
DM
12930 }
12931 ],
12932 "info" : {
44660702 12933 "GET" : {
e9cd3bd4 12934 "allowtoken" : 1,
44660702
DM
12935 "description" : "List aliases",
12936 "method" : "GET",
12937 "name" : "get_aliases",
56122987 12938 "parameters" : {
44660702 12939 "additionalProperties" : 0,
56122987 12940 "properties" : {
7aacca6f 12941 "node" : {
7aacca6f 12942 "description" : "The cluster node name.",
44660702 12943 "format" : "pve-node",
013dc89f
DM
12944 "type" : "string",
12945 "typetext" : "<string>"
56122987 12946 },
44660702
DM
12947 "vmid" : {
12948 "description" : "The (unique) ID of the VM.",
12949 "format" : "pve-vmid",
8dd66e12
TL
12950 "maximum" : 999999999,
12951 "minimum" : 100,
4bd7df8b 12952 "type" : "integer",
8dd66e12 12953 "typetext" : "<integer> (100 - 999999999)"
56122987 12954 }
44660702 12955 }
56122987 12956 },
56122987
DM
12957 "permissions" : {
12958 "check" : [
12959 "perm",
12960 "/vms/{vmid}",
12961 [
44660702 12962 "VM.Audit"
56122987
DM
12963 ]
12964 ]
12965 },
56122987
DM
12966 "returns" : {
12967 "items" : {
12968 "properties" : {
44660702 12969 "cidr" : {
56122987
DM
12970 "type" : "string"
12971 },
44660702
DM
12972 "comment" : {
12973 "optional" : 1,
7aacca6f 12974 "type" : "string"
56122987
DM
12975 },
12976 "digest" : {
82551b2b
TL
12977 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
12978 "maxLength" : 64,
56122987
DM
12979 "optional" : 0,
12980 "type" : "string"
12981 },
44660702 12982 "name" : {
56122987
DM
12983 "type" : "string"
12984 }
44660702
DM
12985 },
12986 "type" : "object"
56122987 12987 },
56122987
DM
12988 "links" : [
12989 {
12990 "href" : "{name}",
12991 "rel" : "child"
12992 }
44660702
DM
12993 ],
12994 "type" : "array"
12995 }
12996 },
12997 "POST" : {
e9cd3bd4 12998 "allowtoken" : 1,
44660702
DM
12999 "description" : "Create IP or Network Alias.",
13000 "method" : "POST",
13001 "name" : "create_alias",
56122987 13002 "parameters" : {
7aacca6f 13003 "additionalProperties" : 0,
56122987 13004 "properties" : {
44660702
DM
13005 "cidr" : {
13006 "description" : "Network/IP specification in CIDR format.",
13007 "format" : "IPorCIDR",
013dc89f
DM
13008 "type" : "string",
13009 "typetext" : "<string>"
44660702
DM
13010 },
13011 "comment" : {
13012 "optional" : 1,
013dc89f
DM
13013 "type" : "string",
13014 "typetext" : "<string>"
44660702
DM
13015 },
13016 "name" : {
13017 "description" : "Alias name.",
13018 "maxLength" : 64,
13019 "minLength" : 2,
13020 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13021 "type" : "string"
56122987
DM
13022 },
13023 "node" : {
7aacca6f 13024 "description" : "The cluster node name.",
44660702 13025 "format" : "pve-node",
013dc89f
DM
13026 "type" : "string",
13027 "typetext" : "<string>"
44660702
DM
13028 },
13029 "vmid" : {
13030 "description" : "The (unique) ID of the VM.",
13031 "format" : "pve-vmid",
8dd66e12
TL
13032 "maximum" : 999999999,
13033 "minimum" : 100,
4bd7df8b 13034 "type" : "integer",
8dd66e12 13035 "typetext" : "<integer> (100 - 999999999)"
56122987 13036 }
7aacca6f 13037 }
56122987 13038 },
44660702
DM
13039 "permissions" : {
13040 "check" : [
13041 "perm",
13042 "/vms/{vmid}",
13043 [
13044 "VM.Config.Network"
13045 ]
13046 ]
13047 },
13048 "protected" : 1,
13049 "returns" : {
13050 "type" : "null"
13051 }
56122987 13052 }
44660702
DM
13053 },
13054 "leaf" : 0,
13055 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
13056 "text" : "aliases"
56122987
DM
13057 },
13058 {
56122987
DM
13059 "children" : [
13060 {
7aacca6f
DM
13061 "children" : [
13062 {
13063 "info" : {
13064 "DELETE" : {
e9cd3bd4 13065 "allowtoken" : 1,
44660702 13066 "description" : "Remove IP or Network from IPSet.",
7aacca6f 13067 "method" : "DELETE",
44660702 13068 "name" : "remove_ip",
7aacca6f 13069 "parameters" : {
44660702 13070 "additionalProperties" : 0,
7aacca6f 13071 "properties" : {
44660702
DM
13072 "cidr" : {
13073 "description" : "Network/IP specification in CIDR format.",
13074 "format" : "IPorCIDRorAlias",
013dc89f
DM
13075 "type" : "string",
13076 "typetext" : "<string>"
44660702
DM
13077 },
13078 "digest" : {
82551b2b
TL
13079 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13080 "maxLength" : 64,
44660702 13081 "optional" : 1,
013dc89f
DM
13082 "type" : "string",
13083 "typetext" : "<string>"
44660702 13084 },
7aacca6f 13085 "name" : {
7aacca6f 13086 "description" : "IP set name.",
44660702
DM
13087 "maxLength" : 64,
13088 "minLength" : 2,
7aacca6f 13089 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 13090 "type" : "string"
7aacca6f
DM
13091 },
13092 "node" : {
13093 "description" : "The cluster node name.",
44660702 13094 "format" : "pve-node",
013dc89f
DM
13095 "type" : "string",
13096 "typetext" : "<string>"
7aacca6f
DM
13097 },
13098 "vmid" : {
44660702 13099 "description" : "The (unique) ID of the VM.",
7aacca6f 13100 "format" : "pve-vmid",
8dd66e12
TL
13101 "maximum" : 999999999,
13102 "minimum" : 100,
4bd7df8b 13103 "type" : "integer",
8dd66e12 13104 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 13105 }
44660702 13106 }
7aacca6f 13107 },
7aacca6f
DM
13108 "permissions" : {
13109 "check" : [
13110 "perm",
13111 "/vms/{vmid}",
13112 [
13113 "VM.Config.Network"
13114 ]
13115 ]
13116 },
13117 "protected" : 1,
44660702
DM
13118 "returns" : {
13119 "type" : "null"
13120 }
56122987 13121 },
44660702 13122 "GET" : {
e9cd3bd4 13123 "allowtoken" : 1,
44660702
DM
13124 "description" : "Read IP or Network settings from IPSet.",
13125 "method" : "GET",
13126 "name" : "read_ip",
7aacca6f 13127 "parameters" : {
44660702 13128 "additionalProperties" : 0,
7aacca6f 13129 "properties" : {
7aacca6f 13130 "cidr" : {
44660702 13131 "description" : "Network/IP specification in CIDR format.",
7aacca6f 13132 "format" : "IPorCIDRorAlias",
013dc89f
DM
13133 "type" : "string",
13134 "typetext" : "<string>"
7aacca6f
DM
13135 },
13136 "name" : {
7aacca6f 13137 "description" : "IP set name.",
44660702 13138 "maxLength" : 64,
7aacca6f 13139 "minLength" : 2,
44660702
DM
13140 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13141 "type" : "string"
7aacca6f 13142 },
44660702
DM
13143 "node" : {
13144 "description" : "The cluster node name.",
13145 "format" : "pve-node",
013dc89f
DM
13146 "type" : "string",
13147 "typetext" : "<string>"
7aacca6f 13148 },
44660702
DM
13149 "vmid" : {
13150 "description" : "The (unique) ID of the VM.",
13151 "format" : "pve-vmid",
8dd66e12
TL
13152 "maximum" : 999999999,
13153 "minimum" : 100,
4bd7df8b 13154 "type" : "integer",
8dd66e12 13155 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 13156 }
44660702 13157 }
7aacca6f 13158 },
44660702
DM
13159 "permissions" : {
13160 "check" : [
13161 "perm",
13162 "/vms/{vmid}",
13163 [
13164 "VM.Audit"
13165 ]
13166 ]
13167 },
13168 "protected" : 1,
7aacca6f 13169 "returns" : {
44660702 13170 "type" : "object"
7aacca6f 13171 }
56122987 13172 },
44660702 13173 "PUT" : {
e9cd3bd4 13174 "allowtoken" : 1,
44660702
DM
13175 "description" : "Update IP or Network settings",
13176 "method" : "PUT",
13177 "name" : "update_ip",
7aacca6f
DM
13178 "parameters" : {
13179 "additionalProperties" : 0,
13180 "properties" : {
44660702
DM
13181 "cidr" : {
13182 "description" : "Network/IP specification in CIDR format.",
13183 "format" : "IPorCIDRorAlias",
013dc89f
DM
13184 "type" : "string",
13185 "typetext" : "<string>"
44660702
DM
13186 },
13187 "comment" : {
13188 "optional" : 1,
013dc89f
DM
13189 "type" : "string",
13190 "typetext" : "<string>"
44660702
DM
13191 },
13192 "digest" : {
82551b2b
TL
13193 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13194 "maxLength" : 64,
44660702 13195 "optional" : 1,
013dc89f
DM
13196 "type" : "string",
13197 "typetext" : "<string>"
44660702 13198 },
7aacca6f 13199 "name" : {
7aacca6f 13200 "description" : "IP set name.",
44660702 13201 "maxLength" : 64,
7aacca6f 13202 "minLength" : 2,
44660702
DM
13203 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13204 "type" : "string"
7aacca6f
DM
13205 },
13206 "node" : {
7aacca6f 13207 "description" : "The cluster node name.",
44660702 13208 "format" : "pve-node",
013dc89f
DM
13209 "type" : "string",
13210 "typetext" : "<string>"
7aacca6f 13211 },
44660702
DM
13212 "nomatch" : {
13213 "optional" : 1,
013dc89f
DM
13214 "type" : "boolean",
13215 "typetext" : "<boolean>"
7aacca6f
DM
13216 },
13217 "vmid" : {
13218 "description" : "The (unique) ID of the VM.",
44660702 13219 "format" : "pve-vmid",
8dd66e12
TL
13220 "maximum" : 999999999,
13221 "minimum" : 100,
4bd7df8b 13222 "type" : "integer",
8dd66e12 13223 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
13224 }
13225 }
13226 },
13227 "permissions" : {
13228 "check" : [
13229 "perm",
13230 "/vms/{vmid}",
13231 [
44660702 13232 "VM.Config.Network"
7aacca6f
DM
13233 ]
13234 ]
13235 },
7aacca6f 13236 "protected" : 1,
7aacca6f 13237 "returns" : {
44660702 13238 "type" : "null"
7aacca6f 13239 }
56122987 13240 }
7aacca6f 13241 },
7aacca6f 13242 "leaf" : 1,
44660702
DM
13243 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
13244 "text" : "{cidr}"
7aacca6f 13245 }
44660702
DM
13246 ],
13247 "info" : {
13248 "DELETE" : {
e9cd3bd4 13249 "allowtoken" : 1,
44660702
DM
13250 "description" : "Delete IPSet",
13251 "method" : "DELETE",
13252 "name" : "delete_ipset",
13253 "parameters" : {
13254 "additionalProperties" : 0,
13255 "properties" : {
81a3384d
TL
13256 "force" : {
13257 "description" : "Delete all members of the IPSet, if there are any.",
13258 "optional" : 1,
13259 "type" : "boolean",
13260 "typetext" : "<boolean>"
13261 },
44660702
DM
13262 "name" : {
13263 "description" : "IP set name.",
13264 "maxLength" : 64,
13265 "minLength" : 2,
13266 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13267 "type" : "string"
13268 },
13269 "node" : {
13270 "description" : "The cluster node name.",
13271 "format" : "pve-node",
013dc89f
DM
13272 "type" : "string",
13273 "typetext" : "<string>"
44660702
DM
13274 },
13275 "vmid" : {
13276 "description" : "The (unique) ID of the VM.",
13277 "format" : "pve-vmid",
8dd66e12
TL
13278 "maximum" : 999999999,
13279 "minimum" : 100,
4bd7df8b 13280 "type" : "integer",
8dd66e12 13281 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
13282 }
13283 }
7aacca6f 13284 },
44660702
DM
13285 "permissions" : {
13286 "check" : [
13287 "perm",
13288 "/vms/{vmid}",
13289 [
13290 "VM.Config.Network"
13291 ]
13292 ]
7aacca6f 13293 },
44660702
DM
13294 "protected" : 1,
13295 "returns" : {
13296 "type" : "null"
13297 }
13298 },
13299 "GET" : {
e9cd3bd4 13300 "allowtoken" : 1,
44660702
DM
13301 "description" : "List IPSet content",
13302 "method" : "GET",
13303 "name" : "get_ipset",
13304 "parameters" : {
13305 "additionalProperties" : 0,
13306 "properties" : {
13307 "name" : {
13308 "description" : "IP set name.",
13309 "maxLength" : 64,
13310 "minLength" : 2,
13311 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13312 "type" : "string"
13313 },
13314 "node" : {
13315 "description" : "The cluster node name.",
13316 "format" : "pve-node",
013dc89f
DM
13317 "type" : "string",
13318 "typetext" : "<string>"
44660702
DM
13319 },
13320 "vmid" : {
13321 "description" : "The (unique) ID of the VM.",
13322 "format" : "pve-vmid",
8dd66e12
TL
13323 "maximum" : 999999999,
13324 "minimum" : 100,
4bd7df8b 13325 "type" : "integer",
8dd66e12 13326 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
13327 }
13328 }
7aacca6f 13329 },
44660702
DM
13330 "permissions" : {
13331 "check" : [
13332 "perm",
13333 "/vms/{vmid}",
13334 [
13335 "VM.Audit"
13336 ]
13337 ]
7aacca6f 13338 },
44660702
DM
13339 "returns" : {
13340 "items" : {
13341 "properties" : {
13342 "cidr" : {
13343 "type" : "string"
13344 },
13345 "comment" : {
13346 "optional" : 1,
13347 "type" : "string"
13348 },
13349 "digest" : {
82551b2b
TL
13350 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13351 "maxLength" : 64,
44660702
DM
13352 "optional" : 0,
13353 "type" : "string"
13354 },
13355 "nomatch" : {
13356 "optional" : 1,
13357 "type" : "boolean"
13358 }
13359 },
13360 "type" : "object"
13361 },
13362 "links" : [
13363 {
13364 "href" : "{cidr}",
13365 "rel" : "child"
13366 }
13367 ],
13368 "type" : "array"
56122987
DM
13369 }
13370 },
44660702 13371 "POST" : {
e9cd3bd4 13372 "allowtoken" : 1,
44660702
DM
13373 "description" : "Add IP or Network to IPSet.",
13374 "method" : "POST",
13375 "name" : "create_ip",
13376 "parameters" : {
13377 "additionalProperties" : 0,
13378 "properties" : {
13379 "cidr" : {
13380 "description" : "Network/IP specification in CIDR format.",
13381 "format" : "IPorCIDRorAlias",
013dc89f
DM
13382 "type" : "string",
13383 "typetext" : "<string>"
44660702
DM
13384 },
13385 "comment" : {
13386 "optional" : 1,
013dc89f
DM
13387 "type" : "string",
13388 "typetext" : "<string>"
44660702
DM
13389 },
13390 "name" : {
13391 "description" : "IP set name.",
13392 "maxLength" : 64,
13393 "minLength" : 2,
13394 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13395 "type" : "string"
13396 },
13397 "node" : {
13398 "description" : "The cluster node name.",
13399 "format" : "pve-node",
013dc89f
DM
13400 "type" : "string",
13401 "typetext" : "<string>"
44660702
DM
13402 },
13403 "nomatch" : {
13404 "optional" : 1,
013dc89f
DM
13405 "type" : "boolean",
13406 "typetext" : "<boolean>"
44660702
DM
13407 },
13408 "vmid" : {
13409 "description" : "The (unique) ID of the VM.",
13410 "format" : "pve-vmid",
8dd66e12
TL
13411 "maximum" : 999999999,
13412 "minimum" : 100,
4bd7df8b 13413 "type" : "integer",
8dd66e12 13414 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
13415 }
13416 }
13417 },
13418 "permissions" : {
13419 "check" : [
13420 "perm",
13421 "/vms/{vmid}",
13422 [
13423 "VM.Config.Network"
13424 ]
13425 ]
13426 },
13427 "protected" : 1,
13428 "returns" : {
13429 "type" : "null"
13430 }
13431 }
13432 },
13433 "leaf" : 0,
13434 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
13435 "text" : "{name}"
13436 }
13437 ],
13438 "info" : {
13439 "GET" : {
e9cd3bd4 13440 "allowtoken" : 1,
44660702
DM
13441 "description" : "List IPSets",
13442 "method" : "GET",
13443 "name" : "ipset_index",
13444 "parameters" : {
13445 "additionalProperties" : 0,
13446 "properties" : {
13447 "node" : {
13448 "description" : "The cluster node name.",
13449 "format" : "pve-node",
013dc89f
DM
13450 "type" : "string",
13451 "typetext" : "<string>"
44660702
DM
13452 },
13453 "vmid" : {
13454 "description" : "The (unique) ID of the VM.",
13455 "format" : "pve-vmid",
8dd66e12
TL
13456 "maximum" : 999999999,
13457 "minimum" : 100,
4bd7df8b 13458 "type" : "integer",
8dd66e12 13459 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
13460 }
13461 }
56122987
DM
13462 },
13463 "permissions" : {
13464 "check" : [
13465 "perm",
13466 "/vms/{vmid}",
13467 [
44660702 13468 "VM.Audit"
56122987
DM
13469 ]
13470 ]
13471 },
7aacca6f 13472 "returns" : {
7aacca6f
DM
13473 "items" : {
13474 "properties" : {
7aacca6f
DM
13475 "comment" : {
13476 "optional" : 1,
13477 "type" : "string"
13478 },
13479 "digest" : {
82551b2b
TL
13480 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13481 "maxLength" : 64,
44660702
DM
13482 "optional" : 0,
13483 "type" : "string"
13484 },
13485 "name" : {
13486 "description" : "IP set name.",
13487 "maxLength" : 64,
13488 "minLength" : 2,
13489 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13490 "type" : "string"
7aacca6f
DM
13491 }
13492 },
13493 "type" : "object"
13494 },
13495 "links" : [
13496 {
44660702
DM
13497 "href" : "{name}",
13498 "rel" : "child"
7aacca6f 13499 }
44660702
DM
13500 ],
13501 "type" : "array"
13502 }
13503 },
13504 "POST" : {
e9cd3bd4 13505 "allowtoken" : 1,
44660702
DM
13506 "description" : "Create new IPSet",
13507 "method" : "POST",
13508 "name" : "create_ipset",
56122987
DM
13509 "parameters" : {
13510 "additionalProperties" : 0,
13511 "properties" : {
44660702
DM
13512 "comment" : {
13513 "optional" : 1,
013dc89f
DM
13514 "type" : "string",
13515 "typetext" : "<string>"
56122987 13516 },
44660702 13517 "digest" : {
82551b2b
TL
13518 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13519 "maxLength" : 64,
44660702 13520 "optional" : 1,
013dc89f
DM
13521 "type" : "string",
13522 "typetext" : "<string>"
44660702
DM
13523 },
13524 "name" : {
13525 "description" : "IP set name.",
13526 "maxLength" : 64,
13527 "minLength" : 2,
13528 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13529 "type" : "string"
13530 },
13531 "node" : {
13532 "description" : "The cluster node name.",
13533 "format" : "pve-node",
013dc89f
DM
13534 "type" : "string",
13535 "typetext" : "<string>"
44660702
DM
13536 },
13537 "rename" : {
13538 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
13539 "maxLength" : 64,
13540 "minLength" : 2,
13541 "optional" : 1,
13542 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
13543 "type" : "string"
13544 },
13545 "vmid" : {
13546 "description" : "The (unique) ID of the VM.",
13547 "format" : "pve-vmid",
8dd66e12
TL
13548 "maximum" : 999999999,
13549 "minimum" : 100,
4bd7df8b 13550 "type" : "integer",
8dd66e12 13551 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
13552 }
13553 }
13554 },
7aacca6f
DM
13555 "permissions" : {
13556 "check" : [
13557 "perm",
13558 "/vms/{vmid}",
13559 [
13560 "VM.Config.Network"
13561 ]
13562 ]
13563 },
44660702 13564 "protected" : 1,
56122987 13565 "returns" : {
7aacca6f 13566 "type" : "null"
44660702
DM
13567 }
13568 }
13569 },
13570 "leaf" : 0,
13571 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
13572 "text" : "ipset"
13573 },
13574 {
13575 "info" : {
13576 "GET" : {
e9cd3bd4 13577 "allowtoken" : 1,
44660702
DM
13578 "description" : "Get VM firewall options.",
13579 "method" : "GET",
13580 "name" : "get_options",
7aacca6f
DM
13581 "parameters" : {
13582 "additionalProperties" : 0,
56122987 13583 "properties" : {
7aacca6f
DM
13584 "node" : {
13585 "description" : "The cluster node name.",
44660702 13586 "format" : "pve-node",
013dc89f
DM
13587 "type" : "string",
13588 "typetext" : "<string>"
7aacca6f 13589 },
44660702
DM
13590 "vmid" : {
13591 "description" : "The (unique) ID of the VM.",
13592 "format" : "pve-vmid",
8dd66e12
TL
13593 "maximum" : 999999999,
13594 "minimum" : 100,
4bd7df8b 13595 "type" : "integer",
8dd66e12 13596 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
13597 }
13598 }
13599 },
13600 "permissions" : {
13601 "check" : [
13602 "perm",
13603 "/vms/{vmid}",
13604 [
13605 "VM.Audit"
13606 ]
13607 ]
13608 },
13609 "proxyto" : "node",
13610 "returns" : {
13611 "properties" : {
13612 "dhcp" : {
5c1699e5 13613 "default" : 0,
44660702 13614 "description" : "Enable DHCP.",
56122987 13615 "optional" : 1,
44660702 13616 "type" : "boolean"
56122987 13617 },
44660702 13618 "enable" : {
5c1699e5 13619 "default" : 0,
44660702 13620 "description" : "Enable/disable firewall rules.",
7aacca6f 13621 "optional" : 1,
44660702 13622 "type" : "boolean"
56122987 13623 },
44660702
DM
13624 "ipfilter" : {
13625 "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 13626 "optional" : 1,
44660702 13627 "type" : "boolean"
7aacca6f 13628 },
56122987 13629 "log_level_in" : {
7aacca6f 13630 "description" : "Log level for incoming traffic.",
56122987
DM
13631 "enum" : [
13632 "emerg",
13633 "alert",
13634 "crit",
13635 "err",
13636 "warning",
13637 "notice",
13638 "info",
13639 "debug",
13640 "nolog"
13641 ],
56122987
DM
13642 "optional" : 1,
13643 "type" : "string"
13644 },
44660702
DM
13645 "log_level_out" : {
13646 "description" : "Log level for outgoing traffic.",
13647 "enum" : [
13648 "emerg",
13649 "alert",
13650 "crit",
13651 "err",
13652 "warning",
13653 "notice",
13654 "info",
13655 "debug",
13656 "nolog"
13657 ],
13658 "optional" : 1,
13659 "type" : "string"
13660 },
13661 "macfilter" : {
de786b48 13662 "default" : 1,
44660702 13663 "description" : "Enable/disable MAC address filter.",
56122987 13664 "optional" : 1,
7aacca6f 13665 "type" : "boolean"
56122987
DM
13666 },
13667 "ndp" : {
5c1699e5
TL
13668 "default" : 0,
13669 "description" : "Enable NDP (Neighbor Discovery Protocol).",
56122987 13670 "optional" : 1,
44660702 13671 "type" : "boolean"
56122987
DM
13672 },
13673 "policy_in" : {
56122987
DM
13674 "description" : "Input policy.",
13675 "enum" : [
13676 "ACCEPT",
13677 "REJECT",
13678 "DROP"
44660702
DM
13679 ],
13680 "optional" : 1,
13681 "type" : "string"
56122987 13682 },
44660702
DM
13683 "policy_out" : {
13684 "description" : "Output policy.",
13685 "enum" : [
13686 "ACCEPT",
13687 "REJECT",
13688 "DROP"
13689 ],
13690 "optional" : 1,
13691 "type" : "string"
13692 },
13693 "radv" : {
13694 "description" : "Allow sending Router Advertisement.",
13695 "optional" : 1,
13696 "type" : "boolean"
13697 }
13698 },
13699 "type" : "object"
13700 }
13701 },
13702 "PUT" : {
e9cd3bd4 13703 "allowtoken" : 1,
44660702
DM
13704 "description" : "Set Firewall options.",
13705 "method" : "PUT",
13706 "name" : "set_options",
13707 "parameters" : {
13708 "additionalProperties" : 0,
13709 "properties" : {
13710 "delete" : {
13711 "description" : "A list of settings you want to delete.",
13712 "format" : "pve-configid-list",
13713 "optional" : 1,
013dc89f
DM
13714 "type" : "string",
13715 "typetext" : "<string>"
44660702
DM
13716 },
13717 "dhcp" : {
5c1699e5 13718 "default" : 0,
44660702 13719 "description" : "Enable DHCP.",
7aacca6f 13720 "optional" : 1,
013dc89f
DM
13721 "type" : "boolean",
13722 "typetext" : "<boolean>"
7aacca6f
DM
13723 },
13724 "digest" : {
82551b2b
TL
13725 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
13726 "maxLength" : 64,
7aacca6f 13727 "optional" : 1,
013dc89f
DM
13728 "type" : "string",
13729 "typetext" : "<string>"
7aacca6f
DM
13730 },
13731 "enable" : {
5c1699e5 13732 "default" : 0,
7aacca6f 13733 "description" : "Enable/disable firewall rules.",
56122987 13734 "optional" : 1,
013dc89f
DM
13735 "type" : "boolean",
13736 "typetext" : "<boolean>"
7aacca6f 13737 },
44660702
DM
13738 "ipfilter" : {
13739 "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.",
13740 "optional" : 1,
013dc89f
DM
13741 "type" : "boolean",
13742 "typetext" : "<boolean>"
44660702
DM
13743 },
13744 "log_level_in" : {
13745 "description" : "Log level for incoming traffic.",
56122987
DM
13746 "enum" : [
13747 "emerg",
13748 "alert",
13749 "crit",
13750 "err",
13751 "warning",
13752 "notice",
13753 "info",
13754 "debug",
13755 "nolog"
7aacca6f 13756 ],
7aacca6f 13757 "optional" : 1,
44660702 13758 "type" : "string"
7aacca6f 13759 },
44660702
DM
13760 "log_level_out" : {
13761 "description" : "Log level for outgoing traffic.",
56122987
DM
13762 "enum" : [
13763 "emerg",
13764 "alert",
13765 "crit",
13766 "err",
13767 "warning",
13768 "notice",
13769 "info",
13770 "debug",
13771 "nolog"
13772 ],
56122987 13773 "optional" : 1,
44660702 13774 "type" : "string"
56122987
DM
13775 },
13776 "macfilter" : {
de786b48 13777 "default" : 1,
56122987 13778 "description" : "Enable/disable MAC address filter.",
7aacca6f 13779 "optional" : 1,
013dc89f
DM
13780 "type" : "boolean",
13781 "typetext" : "<boolean>"
56122987 13782 },
44660702 13783 "ndp" : {
5c1699e5
TL
13784 "default" : 0,
13785 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702 13786 "optional" : 1,
013dc89f
DM
13787 "type" : "boolean",
13788 "typetext" : "<boolean>"
44660702
DM
13789 },
13790 "node" : {
13791 "description" : "The cluster node name.",
13792 "format" : "pve-node",
013dc89f
DM
13793 "type" : "string",
13794 "typetext" : "<string>"
44660702 13795 },
56122987 13796 "policy_in" : {
44660702 13797 "description" : "Input policy.",
56122987
DM
13798 "enum" : [
13799 "ACCEPT",
13800 "REJECT",
13801 "DROP"
7aacca6f 13802 ],
56122987 13803 "optional" : 1,
7aacca6f 13804 "type" : "string"
56122987 13805 },
44660702
DM
13806 "policy_out" : {
13807 "description" : "Output policy.",
13808 "enum" : [
13809 "ACCEPT",
13810 "REJECT",
13811 "DROP"
13812 ],
56122987 13813 "optional" : 1,
44660702 13814 "type" : "string"
56122987 13815 },
44660702
DM
13816 "radv" : {
13817 "description" : "Allow sending Router Advertisement.",
56122987 13818 "optional" : 1,
013dc89f
DM
13819 "type" : "boolean",
13820 "typetext" : "<boolean>"
7aacca6f
DM
13821 },
13822 "vmid" : {
13823 "description" : "The (unique) ID of the VM.",
44660702 13824 "format" : "pve-vmid",
8dd66e12
TL
13825 "maximum" : 999999999,
13826 "minimum" : 100,
4bd7df8b 13827 "type" : "integer",
8dd66e12 13828 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
13829 }
13830 }
13831 },
56122987
DM
13832 "permissions" : {
13833 "check" : [
13834 "perm",
13835 "/vms/{vmid}",
13836 [
44660702 13837 "VM.Config.Network"
56122987
DM
13838 ]
13839 ]
7aacca6f 13840 },
44660702 13841 "protected" : 1,
7aacca6f 13842 "proxyto" : "node",
44660702
DM
13843 "returns" : {
13844 "type" : "null"
13845 }
56122987
DM
13846 }
13847 },
44660702 13848 "leaf" : 1,
7aacca6f 13849 "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
44660702 13850 "text" : "options"
56122987
DM
13851 },
13852 {
56122987
DM
13853 "info" : {
13854 "GET" : {
e9cd3bd4 13855 "allowtoken" : 1,
44660702
DM
13856 "description" : "Read firewall log",
13857 "method" : "GET",
13858 "name" : "log",
13859 "parameters" : {
13860 "additionalProperties" : 0,
13861 "properties" : {
13862 "limit" : {
13863 "minimum" : 0,
13864 "optional" : 1,
4bd7df8b 13865 "type" : "integer",
013dc89f 13866 "typetext" : "<integer> (0 - N)"
56122987 13867 },
44660702
DM
13868 "node" : {
13869 "description" : "The cluster node name.",
13870 "format" : "pve-node",
013dc89f
DM
13871 "type" : "string",
13872 "typetext" : "<string>"
44660702 13873 },
9d2e98ed
TL
13874 "since" : {
13875 "description" : "Display log since this UNIX epoch.",
13876 "minimum" : 0,
13877 "optional" : 1,
13878 "type" : "integer",
13879 "typetext" : "<integer> (0 - N)"
13880 },
44660702
DM
13881 "start" : {
13882 "minimum" : 0,
13883 "optional" : 1,
4bd7df8b 13884 "type" : "integer",
013dc89f 13885 "typetext" : "<integer> (0 - N)"
44660702 13886 },
9d2e98ed
TL
13887 "until" : {
13888 "description" : "Display log until this UNIX epoch.",
13889 "minimum" : 0,
13890 "optional" : 1,
13891 "type" : "integer",
13892 "typetext" : "<integer> (0 - N)"
13893 },
44660702
DM
13894 "vmid" : {
13895 "description" : "The (unique) ID of the VM.",
13896 "format" : "pve-vmid",
8dd66e12
TL
13897 "maximum" : 999999999,
13898 "minimum" : 100,
4bd7df8b 13899 "type" : "integer",
8dd66e12 13900 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
13901 }
13902 }
7aacca6f 13903 },
7aacca6f
DM
13904 "permissions" : {
13905 "check" : [
13906 "perm",
13907 "/vms/{vmid}",
13908 [
13909 "VM.Console"
13910 ]
13911 ]
56122987 13912 },
7aacca6f 13913 "protected" : 1,
44660702
DM
13914 "proxyto" : "node",
13915 "returns" : {
13916 "items" : {
13917 "properties" : {
13918 "n" : {
13919 "description" : "Line number",
13920 "type" : "integer"
13921 },
13922 "t" : {
13923 "description" : "Line text",
13924 "type" : "string"
13925 }
56122987 13926 },
44660702 13927 "type" : "object"
7aacca6f 13928 },
44660702 13929 "type" : "array"
7aacca6f
DM
13930 }
13931 }
13932 },
44660702 13933 "leaf" : 1,
7aacca6f 13934 "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
44660702 13935 "text" : "log"
7aacca6f
DM
13936 },
13937 {
7aacca6f
DM
13938 "info" : {
13939 "GET" : {
e9cd3bd4 13940 "allowtoken" : 1,
7aacca6f 13941 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702
DM
13942 "method" : "GET",
13943 "name" : "refs",
56122987 13944 "parameters" : {
44660702 13945 "additionalProperties" : 0,
56122987
DM
13946 "properties" : {
13947 "node" : {
7aacca6f 13948 "description" : "The cluster node name.",
44660702 13949 "format" : "pve-node",
013dc89f
DM
13950 "type" : "string",
13951 "typetext" : "<string>"
56122987
DM
13952 },
13953 "type" : {
56122987
DM
13954 "description" : "Only list references of specified type.",
13955 "enum" : [
13956 "alias",
13957 "ipset"
7aacca6f 13958 ],
44660702
DM
13959 "optional" : 1,
13960 "type" : "string"
13961 },
13962 "vmid" : {
13963 "description" : "The (unique) ID of the VM.",
13964 "format" : "pve-vmid",
8dd66e12
TL
13965 "maximum" : 999999999,
13966 "minimum" : 100,
4bd7df8b 13967 "type" : "integer",
8dd66e12 13968 "typetext" : "<integer> (100 - 999999999)"
56122987 13969 }
44660702
DM
13970 }
13971 },
13972 "permissions" : {
13973 "check" : [
13974 "perm",
13975 "/vms/{vmid}",
13976 [
13977 "VM.Audit"
13978 ]
13979 ]
56122987
DM
13980 },
13981 "returns" : {
56122987
DM
13982 "items" : {
13983 "properties" : {
44660702
DM
13984 "comment" : {
13985 "optional" : 1,
56122987
DM
13986 "type" : "string"
13987 },
13988 "name" : {
13989 "type" : "string"
13990 },
07b013aa
TL
13991 "ref" : {
13992 "type" : "string"
13993 },
13994 "scope" : {
13995 "type" : "string"
13996 },
44660702
DM
13997 "type" : {
13998 "enum" : [
13999 "alias",
14000 "ipset"
14001 ],
7aacca6f 14002 "type" : "string"
56122987
DM
14003 }
14004 },
14005 "type" : "object"
7aacca6f
DM
14006 },
14007 "type" : "array"
14008 }
56122987 14009 }
44660702
DM
14010 },
14011 "leaf" : 1,
14012 "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
14013 "text" : "refs"
56122987
DM
14014 }
14015 ],
56122987
DM
14016 "info" : {
14017 "GET" : {
e9cd3bd4 14018 "allowtoken" : 1,
44660702 14019 "description" : "Directory index.",
56122987 14020 "method" : "GET",
44660702 14021 "name" : "index",
56122987 14022 "parameters" : {
44660702 14023 "additionalProperties" : 0,
56122987
DM
14024 "properties" : {
14025 "node" : {
14026 "description" : "The cluster node name.",
44660702 14027 "format" : "pve-node",
013dc89f
DM
14028 "type" : "string",
14029 "typetext" : "<string>"
56122987
DM
14030 },
14031 "vmid" : {
44660702 14032 "description" : "The (unique) ID of the VM.",
56122987 14033 "format" : "pve-vmid",
8dd66e12
TL
14034 "maximum" : 999999999,
14035 "minimum" : 100,
4bd7df8b 14036 "type" : "integer",
8dd66e12 14037 "typetext" : "<integer> (100 - 999999999)"
56122987 14038 }
44660702 14039 }
56122987 14040 },
56122987 14041 "permissions" : {
27a7acb2
DM
14042 "user" : "all"
14043 },
14044 "returns" : {
14045 "items" : {
14046 "properties" : {},
14047 "type" : "object"
14048 },
14049 "links" : [
14050 {
14051 "href" : "{name}",
14052 "rel" : "child"
14053 }
14054 ],
14055 "type" : "array"
14056 }
14057 }
14058 },
14059 "leaf" : 0,
14060 "path" : "/nodes/{node}/qemu/{vmid}/firewall",
14061 "text" : "firewall"
14062 },
14063 {
14064 "children" : [
14065 {
14066 "info" : {
14067 "POST" : {
e9cd3bd4 14068 "allowtoken" : 1,
27a7acb2
DM
14069 "description" : "Execute fsfreeze-freeze.",
14070 "method" : "POST",
14071 "name" : "fsfreeze-freeze",
14072 "parameters" : {
14073 "additionalProperties" : 0,
14074 "properties" : {
14075 "node" : {
14076 "description" : "The cluster node name.",
14077 "format" : "pve-node",
14078 "type" : "string",
14079 "typetext" : "<string>"
14080 },
14081 "vmid" : {
14082 "description" : "The (unique) ID of the VM.",
14083 "format" : "pve-vmid",
8dd66e12
TL
14084 "maximum" : 999999999,
14085 "minimum" : 100,
27a7acb2 14086 "type" : "integer",
8dd66e12 14087 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14088 }
14089 }
14090 },
14091 "permissions" : {
14092 "check" : [
14093 "perm",
14094 "/vms/{vmid}",
14095 [
14096 "VM.Monitor"
14097 ]
14098 ]
14099 },
14100 "protected" : 1,
14101 "proxyto" : "node",
14102 "returns" : {
14103 "description" : "Returns an object with a single `result` property.",
14104 "type" : "object"
14105 }
14106 }
14107 },
14108 "leaf" : 1,
14109 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze",
14110 "text" : "fsfreeze-freeze"
14111 },
14112 {
14113 "info" : {
14114 "POST" : {
e9cd3bd4 14115 "allowtoken" : 1,
27a7acb2
DM
14116 "description" : "Execute fsfreeze-status.",
14117 "method" : "POST",
14118 "name" : "fsfreeze-status",
14119 "parameters" : {
14120 "additionalProperties" : 0,
14121 "properties" : {
14122 "node" : {
14123 "description" : "The cluster node name.",
14124 "format" : "pve-node",
14125 "type" : "string",
14126 "typetext" : "<string>"
14127 },
14128 "vmid" : {
14129 "description" : "The (unique) ID of the VM.",
14130 "format" : "pve-vmid",
8dd66e12
TL
14131 "maximum" : 999999999,
14132 "minimum" : 100,
27a7acb2 14133 "type" : "integer",
8dd66e12 14134 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14135 }
14136 }
14137 },
14138 "permissions" : {
14139 "check" : [
14140 "perm",
14141 "/vms/{vmid}",
14142 [
14143 "VM.Monitor"
14144 ]
14145 ]
14146 },
14147 "protected" : 1,
14148 "proxyto" : "node",
14149 "returns" : {
14150 "description" : "Returns an object with a single `result` property.",
14151 "type" : "object"
14152 }
14153 }
14154 },
14155 "leaf" : 1,
14156 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status",
14157 "text" : "fsfreeze-status"
14158 },
14159 {
14160 "info" : {
14161 "POST" : {
e9cd3bd4 14162 "allowtoken" : 1,
27a7acb2
DM
14163 "description" : "Execute fsfreeze-thaw.",
14164 "method" : "POST",
14165 "name" : "fsfreeze-thaw",
14166 "parameters" : {
14167 "additionalProperties" : 0,
14168 "properties" : {
14169 "node" : {
14170 "description" : "The cluster node name.",
14171 "format" : "pve-node",
14172 "type" : "string",
14173 "typetext" : "<string>"
14174 },
14175 "vmid" : {
14176 "description" : "The (unique) ID of the VM.",
14177 "format" : "pve-vmid",
8dd66e12
TL
14178 "maximum" : 999999999,
14179 "minimum" : 100,
27a7acb2 14180 "type" : "integer",
8dd66e12 14181 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14182 }
14183 }
14184 },
14185 "permissions" : {
14186 "check" : [
14187 "perm",
14188 "/vms/{vmid}",
14189 [
14190 "VM.Monitor"
14191 ]
14192 ]
14193 },
14194 "protected" : 1,
14195 "proxyto" : "node",
14196 "returns" : {
14197 "description" : "Returns an object with a single `result` property.",
14198 "type" : "object"
14199 }
14200 }
14201 },
14202 "leaf" : 1,
14203 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw",
14204 "text" : "fsfreeze-thaw"
14205 },
14206 {
14207 "info" : {
14208 "POST" : {
e9cd3bd4 14209 "allowtoken" : 1,
27a7acb2
DM
14210 "description" : "Execute fstrim.",
14211 "method" : "POST",
14212 "name" : "fstrim",
14213 "parameters" : {
14214 "additionalProperties" : 0,
14215 "properties" : {
14216 "node" : {
14217 "description" : "The cluster node name.",
14218 "format" : "pve-node",
14219 "type" : "string",
14220 "typetext" : "<string>"
14221 },
14222 "vmid" : {
14223 "description" : "The (unique) ID of the VM.",
14224 "format" : "pve-vmid",
8dd66e12
TL
14225 "maximum" : 999999999,
14226 "minimum" : 100,
27a7acb2 14227 "type" : "integer",
8dd66e12 14228 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14229 }
14230 }
14231 },
14232 "permissions" : {
14233 "check" : [
14234 "perm",
14235 "/vms/{vmid}",
14236 [
14237 "VM.Monitor"
14238 ]
14239 ]
14240 },
14241 "protected" : 1,
14242 "proxyto" : "node",
14243 "returns" : {
14244 "description" : "Returns an object with a single `result` property.",
14245 "type" : "object"
14246 }
14247 }
14248 },
14249 "leaf" : 1,
14250 "path" : "/nodes/{node}/qemu/{vmid}/agent/fstrim",
14251 "text" : "fstrim"
14252 },
14253 {
14254 "info" : {
14255 "GET" : {
e9cd3bd4 14256 "allowtoken" : 1,
27a7acb2
DM
14257 "description" : "Execute get-fsinfo.",
14258 "method" : "GET",
14259 "name" : "get-fsinfo",
14260 "parameters" : {
14261 "additionalProperties" : 0,
14262 "properties" : {
14263 "node" : {
14264 "description" : "The cluster node name.",
14265 "format" : "pve-node",
14266 "type" : "string",
14267 "typetext" : "<string>"
14268 },
14269 "vmid" : {
14270 "description" : "The (unique) ID of the VM.",
14271 "format" : "pve-vmid",
8dd66e12
TL
14272 "maximum" : 999999999,
14273 "minimum" : 100,
27a7acb2 14274 "type" : "integer",
8dd66e12 14275 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14276 }
14277 }
14278 },
14279 "permissions" : {
14280 "check" : [
14281 "perm",
14282 "/vms/{vmid}",
14283 [
14284 "VM.Monitor"
14285 ]
14286 ]
14287 },
14288 "protected" : 1,
14289 "proxyto" : "node",
14290 "returns" : {
14291 "description" : "Returns an object with a single `result` property.",
14292 "type" : "object"
14293 }
14294 }
14295 },
14296 "leaf" : 1,
14297 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-fsinfo",
14298 "text" : "get-fsinfo"
14299 },
14300 {
14301 "info" : {
14302 "GET" : {
e9cd3bd4 14303 "allowtoken" : 1,
27a7acb2
DM
14304 "description" : "Execute get-host-name.",
14305 "method" : "GET",
14306 "name" : "get-host-name",
14307 "parameters" : {
14308 "additionalProperties" : 0,
14309 "properties" : {
14310 "node" : {
14311 "description" : "The cluster node name.",
14312 "format" : "pve-node",
14313 "type" : "string",
14314 "typetext" : "<string>"
14315 },
14316 "vmid" : {
14317 "description" : "The (unique) ID of the VM.",
14318 "format" : "pve-vmid",
8dd66e12
TL
14319 "maximum" : 999999999,
14320 "minimum" : 100,
27a7acb2 14321 "type" : "integer",
8dd66e12 14322 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14323 }
14324 }
14325 },
14326 "permissions" : {
14327 "check" : [
14328 "perm",
14329 "/vms/{vmid}",
14330 [
14331 "VM.Monitor"
14332 ]
14333 ]
14334 },
14335 "protected" : 1,
14336 "proxyto" : "node",
14337 "returns" : {
14338 "description" : "Returns an object with a single `result` property.",
14339 "type" : "object"
14340 }
14341 }
14342 },
14343 "leaf" : 1,
14344 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-host-name",
14345 "text" : "get-host-name"
14346 },
14347 {
14348 "info" : {
14349 "GET" : {
e9cd3bd4 14350 "allowtoken" : 1,
27a7acb2
DM
14351 "description" : "Execute get-memory-block-info.",
14352 "method" : "GET",
14353 "name" : "get-memory-block-info",
14354 "parameters" : {
14355 "additionalProperties" : 0,
14356 "properties" : {
14357 "node" : {
14358 "description" : "The cluster node name.",
14359 "format" : "pve-node",
14360 "type" : "string",
14361 "typetext" : "<string>"
14362 },
14363 "vmid" : {
14364 "description" : "The (unique) ID of the VM.",
14365 "format" : "pve-vmid",
8dd66e12
TL
14366 "maximum" : 999999999,
14367 "minimum" : 100,
27a7acb2 14368 "type" : "integer",
8dd66e12 14369 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14370 }
14371 }
14372 },
14373 "permissions" : {
14374 "check" : [
14375 "perm",
14376 "/vms/{vmid}",
14377 [
14378 "VM.Monitor"
14379 ]
14380 ]
14381 },
14382 "protected" : 1,
14383 "proxyto" : "node",
14384 "returns" : {
14385 "description" : "Returns an object with a single `result` property.",
14386 "type" : "object"
14387 }
14388 }
14389 },
14390 "leaf" : 1,
14391 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info",
14392 "text" : "get-memory-block-info"
14393 },
14394 {
14395 "info" : {
14396 "GET" : {
e9cd3bd4 14397 "allowtoken" : 1,
27a7acb2
DM
14398 "description" : "Execute get-memory-blocks.",
14399 "method" : "GET",
14400 "name" : "get-memory-blocks",
14401 "parameters" : {
14402 "additionalProperties" : 0,
14403 "properties" : {
14404 "node" : {
14405 "description" : "The cluster node name.",
14406 "format" : "pve-node",
14407 "type" : "string",
14408 "typetext" : "<string>"
14409 },
14410 "vmid" : {
14411 "description" : "The (unique) ID of the VM.",
14412 "format" : "pve-vmid",
8dd66e12
TL
14413 "maximum" : 999999999,
14414 "minimum" : 100,
27a7acb2 14415 "type" : "integer",
8dd66e12 14416 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14417 }
14418 }
14419 },
14420 "permissions" : {
14421 "check" : [
14422 "perm",
14423 "/vms/{vmid}",
14424 [
14425 "VM.Monitor"
14426 ]
14427 ]
14428 },
14429 "protected" : 1,
14430 "proxyto" : "node",
14431 "returns" : {
14432 "description" : "Returns an object with a single `result` property.",
14433 "type" : "object"
14434 }
14435 }
14436 },
14437 "leaf" : 1,
14438 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks",
14439 "text" : "get-memory-blocks"
14440 },
14441 {
14442 "info" : {
14443 "GET" : {
e9cd3bd4 14444 "allowtoken" : 1,
27a7acb2
DM
14445 "description" : "Execute get-osinfo.",
14446 "method" : "GET",
14447 "name" : "get-osinfo",
14448 "parameters" : {
14449 "additionalProperties" : 0,
14450 "properties" : {
14451 "node" : {
14452 "description" : "The cluster node name.",
14453 "format" : "pve-node",
14454 "type" : "string",
14455 "typetext" : "<string>"
14456 },
14457 "vmid" : {
14458 "description" : "The (unique) ID of the VM.",
14459 "format" : "pve-vmid",
8dd66e12
TL
14460 "maximum" : 999999999,
14461 "minimum" : 100,
27a7acb2 14462 "type" : "integer",
8dd66e12 14463 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14464 }
14465 }
14466 },
14467 "permissions" : {
14468 "check" : [
14469 "perm",
14470 "/vms/{vmid}",
14471 [
14472 "VM.Monitor"
14473 ]
14474 ]
14475 },
14476 "protected" : 1,
14477 "proxyto" : "node",
14478 "returns" : {
14479 "description" : "Returns an object with a single `result` property.",
14480 "type" : "object"
14481 }
14482 }
14483 },
14484 "leaf" : 1,
14485 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-osinfo",
14486 "text" : "get-osinfo"
14487 },
14488 {
14489 "info" : {
14490 "GET" : {
e9cd3bd4 14491 "allowtoken" : 1,
27a7acb2
DM
14492 "description" : "Execute get-time.",
14493 "method" : "GET",
14494 "name" : "get-time",
14495 "parameters" : {
14496 "additionalProperties" : 0,
14497 "properties" : {
14498 "node" : {
14499 "description" : "The cluster node name.",
14500 "format" : "pve-node",
14501 "type" : "string",
14502 "typetext" : "<string>"
14503 },
14504 "vmid" : {
14505 "description" : "The (unique) ID of the VM.",
14506 "format" : "pve-vmid",
8dd66e12
TL
14507 "maximum" : 999999999,
14508 "minimum" : 100,
27a7acb2 14509 "type" : "integer",
8dd66e12 14510 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14511 }
14512 }
14513 },
14514 "permissions" : {
14515 "check" : [
14516 "perm",
14517 "/vms/{vmid}",
14518 [
14519 "VM.Monitor"
14520 ]
14521 ]
14522 },
14523 "protected" : 1,
14524 "proxyto" : "node",
14525 "returns" : {
14526 "description" : "Returns an object with a single `result` property.",
14527 "type" : "object"
14528 }
14529 }
14530 },
14531 "leaf" : 1,
14532 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-time",
14533 "text" : "get-time"
14534 },
14535 {
14536 "info" : {
14537 "GET" : {
e9cd3bd4 14538 "allowtoken" : 1,
27a7acb2
DM
14539 "description" : "Execute get-timezone.",
14540 "method" : "GET",
14541 "name" : "get-timezone",
14542 "parameters" : {
14543 "additionalProperties" : 0,
14544 "properties" : {
14545 "node" : {
14546 "description" : "The cluster node name.",
14547 "format" : "pve-node",
14548 "type" : "string",
14549 "typetext" : "<string>"
14550 },
14551 "vmid" : {
14552 "description" : "The (unique) ID of the VM.",
14553 "format" : "pve-vmid",
8dd66e12
TL
14554 "maximum" : 999999999,
14555 "minimum" : 100,
27a7acb2 14556 "type" : "integer",
8dd66e12 14557 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14558 }
14559 }
14560 },
14561 "permissions" : {
14562 "check" : [
14563 "perm",
14564 "/vms/{vmid}",
14565 [
14566 "VM.Monitor"
14567 ]
14568 ]
14569 },
14570 "protected" : 1,
14571 "proxyto" : "node",
14572 "returns" : {
14573 "description" : "Returns an object with a single `result` property.",
14574 "type" : "object"
14575 }
14576 }
14577 },
14578 "leaf" : 1,
14579 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-timezone",
14580 "text" : "get-timezone"
14581 },
14582 {
14583 "info" : {
14584 "GET" : {
e9cd3bd4 14585 "allowtoken" : 1,
27a7acb2
DM
14586 "description" : "Execute get-users.",
14587 "method" : "GET",
14588 "name" : "get-users",
14589 "parameters" : {
14590 "additionalProperties" : 0,
14591 "properties" : {
14592 "node" : {
14593 "description" : "The cluster node name.",
14594 "format" : "pve-node",
14595 "type" : "string",
14596 "typetext" : "<string>"
14597 },
14598 "vmid" : {
14599 "description" : "The (unique) ID of the VM.",
14600 "format" : "pve-vmid",
8dd66e12
TL
14601 "maximum" : 999999999,
14602 "minimum" : 100,
27a7acb2 14603 "type" : "integer",
8dd66e12 14604 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14605 }
14606 }
14607 },
14608 "permissions" : {
14609 "check" : [
14610 "perm",
14611 "/vms/{vmid}",
14612 [
14613 "VM.Monitor"
14614 ]
14615 ]
14616 },
14617 "protected" : 1,
14618 "proxyto" : "node",
14619 "returns" : {
14620 "description" : "Returns an object with a single `result` property.",
14621 "type" : "object"
14622 }
14623 }
14624 },
14625 "leaf" : 1,
14626 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-users",
14627 "text" : "get-users"
14628 },
14629 {
14630 "info" : {
14631 "GET" : {
e9cd3bd4 14632 "allowtoken" : 1,
27a7acb2
DM
14633 "description" : "Execute get-vcpus.",
14634 "method" : "GET",
14635 "name" : "get-vcpus",
14636 "parameters" : {
14637 "additionalProperties" : 0,
14638 "properties" : {
14639 "node" : {
14640 "description" : "The cluster node name.",
14641 "format" : "pve-node",
14642 "type" : "string",
14643 "typetext" : "<string>"
14644 },
14645 "vmid" : {
14646 "description" : "The (unique) ID of the VM.",
14647 "format" : "pve-vmid",
8dd66e12
TL
14648 "maximum" : 999999999,
14649 "minimum" : 100,
27a7acb2 14650 "type" : "integer",
8dd66e12 14651 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14652 }
14653 }
14654 },
14655 "permissions" : {
14656 "check" : [
14657 "perm",
14658 "/vms/{vmid}",
14659 [
14660 "VM.Monitor"
14661 ]
14662 ]
14663 },
14664 "protected" : 1,
14665 "proxyto" : "node",
14666 "returns" : {
14667 "description" : "Returns an object with a single `result` property.",
14668 "type" : "object"
14669 }
14670 }
14671 },
14672 "leaf" : 1,
14673 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-vcpus",
14674 "text" : "get-vcpus"
14675 },
14676 {
14677 "info" : {
14678 "GET" : {
e9cd3bd4 14679 "allowtoken" : 1,
27a7acb2
DM
14680 "description" : "Execute info.",
14681 "method" : "GET",
14682 "name" : "info",
14683 "parameters" : {
14684 "additionalProperties" : 0,
14685 "properties" : {
14686 "node" : {
14687 "description" : "The cluster node name.",
14688 "format" : "pve-node",
14689 "type" : "string",
14690 "typetext" : "<string>"
14691 },
14692 "vmid" : {
14693 "description" : "The (unique) ID of the VM.",
14694 "format" : "pve-vmid",
8dd66e12
TL
14695 "maximum" : 999999999,
14696 "minimum" : 100,
27a7acb2 14697 "type" : "integer",
8dd66e12 14698 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14699 }
14700 }
14701 },
14702 "permissions" : {
14703 "check" : [
14704 "perm",
14705 "/vms/{vmid}",
14706 [
14707 "VM.Monitor"
14708 ]
14709 ]
14710 },
14711 "protected" : 1,
14712 "proxyto" : "node",
14713 "returns" : {
14714 "description" : "Returns an object with a single `result` property.",
14715 "type" : "object"
14716 }
14717 }
14718 },
14719 "leaf" : 1,
14720 "path" : "/nodes/{node}/qemu/{vmid}/agent/info",
14721 "text" : "info"
14722 },
14723 {
14724 "info" : {
14725 "GET" : {
e9cd3bd4 14726 "allowtoken" : 1,
27a7acb2
DM
14727 "description" : "Execute network-get-interfaces.",
14728 "method" : "GET",
14729 "name" : "network-get-interfaces",
14730 "parameters" : {
14731 "additionalProperties" : 0,
14732 "properties" : {
14733 "node" : {
14734 "description" : "The cluster node name.",
14735 "format" : "pve-node",
14736 "type" : "string",
14737 "typetext" : "<string>"
14738 },
14739 "vmid" : {
14740 "description" : "The (unique) ID of the VM.",
14741 "format" : "pve-vmid",
8dd66e12
TL
14742 "maximum" : 999999999,
14743 "minimum" : 100,
27a7acb2 14744 "type" : "integer",
8dd66e12 14745 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14746 }
14747 }
14748 },
14749 "permissions" : {
14750 "check" : [
14751 "perm",
14752 "/vms/{vmid}",
14753 [
14754 "VM.Monitor"
14755 ]
14756 ]
14757 },
14758 "protected" : 1,
14759 "proxyto" : "node",
14760 "returns" : {
14761 "description" : "Returns an object with a single `result` property.",
14762 "type" : "object"
14763 }
14764 }
14765 },
14766 "leaf" : 1,
14767 "path" : "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces",
14768 "text" : "network-get-interfaces"
14769 },
14770 {
14771 "info" : {
14772 "POST" : {
e9cd3bd4 14773 "allowtoken" : 1,
27a7acb2
DM
14774 "description" : "Execute ping.",
14775 "method" : "POST",
14776 "name" : "ping",
14777 "parameters" : {
14778 "additionalProperties" : 0,
14779 "properties" : {
14780 "node" : {
14781 "description" : "The cluster node name.",
14782 "format" : "pve-node",
14783 "type" : "string",
14784 "typetext" : "<string>"
14785 },
14786 "vmid" : {
14787 "description" : "The (unique) ID of the VM.",
14788 "format" : "pve-vmid",
8dd66e12
TL
14789 "maximum" : 999999999,
14790 "minimum" : 100,
27a7acb2 14791 "type" : "integer",
8dd66e12 14792 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14793 }
14794 }
14795 },
14796 "permissions" : {
14797 "check" : [
14798 "perm",
14799 "/vms/{vmid}",
14800 [
14801 "VM.Monitor"
14802 ]
14803 ]
14804 },
14805 "protected" : 1,
14806 "proxyto" : "node",
14807 "returns" : {
14808 "description" : "Returns an object with a single `result` property.",
14809 "type" : "object"
14810 }
14811 }
14812 },
14813 "leaf" : 1,
14814 "path" : "/nodes/{node}/qemu/{vmid}/agent/ping",
14815 "text" : "ping"
14816 },
14817 {
14818 "info" : {
14819 "POST" : {
e9cd3bd4 14820 "allowtoken" : 1,
27a7acb2
DM
14821 "description" : "Execute shutdown.",
14822 "method" : "POST",
14823 "name" : "shutdown",
14824 "parameters" : {
14825 "additionalProperties" : 0,
14826 "properties" : {
14827 "node" : {
14828 "description" : "The cluster node name.",
14829 "format" : "pve-node",
14830 "type" : "string",
14831 "typetext" : "<string>"
14832 },
14833 "vmid" : {
14834 "description" : "The (unique) ID of the VM.",
14835 "format" : "pve-vmid",
8dd66e12
TL
14836 "maximum" : 999999999,
14837 "minimum" : 100,
27a7acb2 14838 "type" : "integer",
8dd66e12 14839 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14840 }
14841 }
14842 },
14843 "permissions" : {
14844 "check" : [
14845 "perm",
14846 "/vms/{vmid}",
14847 [
14848 "VM.Monitor"
14849 ]
14850 ]
14851 },
14852 "protected" : 1,
14853 "proxyto" : "node",
14854 "returns" : {
14855 "description" : "Returns an object with a single `result` property.",
14856 "type" : "object"
14857 }
14858 }
14859 },
14860 "leaf" : 1,
14861 "path" : "/nodes/{node}/qemu/{vmid}/agent/shutdown",
14862 "text" : "shutdown"
14863 },
14864 {
14865 "info" : {
14866 "POST" : {
e9cd3bd4 14867 "allowtoken" : 1,
27a7acb2
DM
14868 "description" : "Execute suspend-disk.",
14869 "method" : "POST",
14870 "name" : "suspend-disk",
14871 "parameters" : {
14872 "additionalProperties" : 0,
14873 "properties" : {
14874 "node" : {
14875 "description" : "The cluster node name.",
14876 "format" : "pve-node",
14877 "type" : "string",
14878 "typetext" : "<string>"
14879 },
14880 "vmid" : {
14881 "description" : "The (unique) ID of the VM.",
14882 "format" : "pve-vmid",
8dd66e12
TL
14883 "maximum" : 999999999,
14884 "minimum" : 100,
27a7acb2 14885 "type" : "integer",
8dd66e12 14886 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14887 }
14888 }
14889 },
14890 "permissions" : {
14891 "check" : [
14892 "perm",
14893 "/vms/{vmid}",
14894 [
14895 "VM.Monitor"
14896 ]
14897 ]
14898 },
14899 "protected" : 1,
14900 "proxyto" : "node",
14901 "returns" : {
14902 "description" : "Returns an object with a single `result` property.",
14903 "type" : "object"
14904 }
14905 }
14906 },
14907 "leaf" : 1,
14908 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-disk",
14909 "text" : "suspend-disk"
14910 },
14911 {
14912 "info" : {
14913 "POST" : {
e9cd3bd4 14914 "allowtoken" : 1,
27a7acb2
DM
14915 "description" : "Execute suspend-hybrid.",
14916 "method" : "POST",
14917 "name" : "suspend-hybrid",
14918 "parameters" : {
14919 "additionalProperties" : 0,
14920 "properties" : {
14921 "node" : {
14922 "description" : "The cluster node name.",
14923 "format" : "pve-node",
14924 "type" : "string",
14925 "typetext" : "<string>"
14926 },
14927 "vmid" : {
14928 "description" : "The (unique) ID of the VM.",
14929 "format" : "pve-vmid",
8dd66e12
TL
14930 "maximum" : 999999999,
14931 "minimum" : 100,
27a7acb2 14932 "type" : "integer",
8dd66e12 14933 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14934 }
14935 }
14936 },
14937 "permissions" : {
14938 "check" : [
14939 "perm",
14940 "/vms/{vmid}",
14941 [
14942 "VM.Monitor"
14943 ]
14944 ]
14945 },
14946 "protected" : 1,
14947 "proxyto" : "node",
14948 "returns" : {
14949 "description" : "Returns an object with a single `result` property.",
14950 "type" : "object"
14951 }
14952 }
14953 },
14954 "leaf" : 1,
14955 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid",
14956 "text" : "suspend-hybrid"
14957 },
14958 {
14959 "info" : {
14960 "POST" : {
e9cd3bd4 14961 "allowtoken" : 1,
27a7acb2
DM
14962 "description" : "Execute suspend-ram.",
14963 "method" : "POST",
14964 "name" : "suspend-ram",
14965 "parameters" : {
14966 "additionalProperties" : 0,
14967 "properties" : {
14968 "node" : {
14969 "description" : "The cluster node name.",
14970 "format" : "pve-node",
14971 "type" : "string",
14972 "typetext" : "<string>"
14973 },
14974 "vmid" : {
14975 "description" : "The (unique) ID of the VM.",
14976 "format" : "pve-vmid",
8dd66e12
TL
14977 "maximum" : 999999999,
14978 "minimum" : 100,
27a7acb2 14979 "type" : "integer",
8dd66e12 14980 "typetext" : "<integer> (100 - 999999999)"
27a7acb2
DM
14981 }
14982 }
14983 },
14984 "permissions" : {
14985 "check" : [
14986 "perm",
14987 "/vms/{vmid}",
14988 [
14989 "VM.Monitor"
14990 ]
14991 ]
14992 },
14993 "protected" : 1,
14994 "proxyto" : "node",
14995 "returns" : {
14996 "description" : "Returns an object with a single `result` property.",
14997 "type" : "object"
14998 }
14999 }
15000 },
15001 "leaf" : 1,
15002 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram",
15003 "text" : "suspend-ram"
4d47f125
TL
15004 },
15005 {
15006 "info" : {
15007 "POST" : {
e9cd3bd4 15008 "allowtoken" : 1,
4d47f125
TL
15009 "description" : "Sets the password for the given user to the given password",
15010 "method" : "POST",
15011 "name" : "set-user-password",
15012 "parameters" : {
15013 "additionalProperties" : 0,
15014 "properties" : {
15015 "crypted" : {
15016 "default" : 0,
15017 "description" : "set to 1 if the password has already been passed through crypt()",
15018 "optional" : 1,
15019 "type" : "boolean",
15020 "typetext" : "<boolean>"
15021 },
15022 "node" : {
15023 "description" : "The cluster node name.",
15024 "format" : "pve-node",
15025 "type" : "string",
15026 "typetext" : "<string>"
15027 },
15028 "password" : {
15029 "description" : "The new password.",
1c532546 15030 "maxLength" : 1024,
4d47f125
TL
15031 "minLength" : 5,
15032 "type" : "string",
15033 "typetext" : "<string>"
15034 },
15035 "username" : {
15036 "description" : "The user to set the password for.",
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,
4d47f125 15045 "type" : "integer",
8dd66e12 15046 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
15047 }
15048 }
27a7acb2 15049 },
4d47f125
TL
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"
27a7acb2
DM
15064 }
15065 }
15066 },
4d47f125
TL
15067 "leaf" : 1,
15068 "path" : "/nodes/{node}/qemu/{vmid}/agent/set-user-password",
15069 "text" : "set-user-password"
27a7acb2 15070 },
4d47f125
TL
15071 {
15072 "info" : {
15073 "POST" : {
e9cd3bd4 15074 "allowtoken" : 1,
4d47f125
TL
15075 "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.",
15076 "method" : "POST",
15077 "name" : "exec",
15078 "parameters" : {
15079 "additionalProperties" : 0,
15080 "properties" : {
15081 "command" : {
4a407cfd
TL
15082 "description" : "The command as a list of program + arguments.",
15083 "items" : {
15084 "description" : "A single part of the program + arguments.",
15085 "format" : "string"
15086 },
15087 "type" : "array",
15088 "typetext" : "<array>"
c5aa7e14
TL
15089 },
15090 "input-data" : {
15091 "description" : "Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'.",
15092 "maxLength" : 65536,
15093 "optional" : 1,
4d47f125
TL
15094 "type" : "string",
15095 "typetext" : "<string>"
15096 },
15097 "node" : {
15098 "description" : "The cluster node name.",
15099 "format" : "pve-node",
15100 "type" : "string",
15101 "typetext" : "<string>"
15102 },
15103 "vmid" : {
15104 "description" : "The (unique) ID of the VM.",
15105 "format" : "pve-vmid",
8dd66e12
TL
15106 "maximum" : 999999999,
15107 "minimum" : 100,
4d47f125 15108 "type" : "integer",
8dd66e12 15109 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
15110 }
15111 }
27a7acb2 15112 },
4d47f125
TL
15113 "permissions" : {
15114 "check" : [
15115 "perm",
15116 "/vms/{vmid}",
15117 [
15118 "VM.Monitor"
15119 ]
15120 ]
27a7acb2 15121 },
4d47f125
TL
15122 "protected" : 1,
15123 "proxyto" : "node",
15124 "returns" : {
15125 "properties" : {
15126 "pid" : {
15127 "description" : "The PID of the process started by the guest-agent.",
15128 "type" : "integer"
15129 }
15130 },
15131 "type" : "object"
27a7acb2
DM
15132 }
15133 }
15134 },
4d47f125
TL
15135 "leaf" : 1,
15136 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec",
15137 "text" : "exec"
15138 },
15139 {
15140 "info" : {
15141 "GET" : {
e9cd3bd4 15142 "allowtoken" : 1,
4d47f125
TL
15143 "description" : "Gets the status of the given pid started by the guest-agent",
15144 "method" : "GET",
15145 "name" : "exec-status",
15146 "parameters" : {
15147 "additionalProperties" : 0,
15148 "properties" : {
15149 "node" : {
15150 "description" : "The cluster node name.",
15151 "format" : "pve-node",
15152 "type" : "string",
15153 "typetext" : "<string>"
15154 },
15155 "pid" : {
15156 "description" : "The PID to query",
15157 "type" : "integer",
15158 "typetext" : "<integer>"
15159 },
15160 "vmid" : {
15161 "description" : "The (unique) ID of the VM.",
15162 "format" : "pve-vmid",
8dd66e12
TL
15163 "maximum" : 999999999,
15164 "minimum" : 100,
4d47f125 15165 "type" : "integer",
8dd66e12 15166 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
15167 }
15168 }
56122987 15169 },
4d47f125
TL
15170 "permissions" : {
15171 "check" : [
15172 "perm",
15173 "/vms/{vmid}",
15174 [
15175 "VM.Monitor"
15176 ]
15177 ]
56122987 15178 },
4d47f125
TL
15179 "protected" : 1,
15180 "proxyto" : "node",
15181 "returns" : {
15182 "properties" : {
15183 "err-data" : {
15184 "description" : "stderr of the process",
15185 "optional" : 1,
15186 "type" : "string"
15187 },
15188 "err-truncated" : {
15189 "description" : "true if stderr was not fully captured",
15190 "optional" : 1,
15191 "type" : "boolean"
15192 },
15193 "exitcode" : {
15194 "description" : "process exit code if it was normally terminated.",
15195 "optional" : 1,
15196 "type" : "integer"
15197 },
15198 "exited" : {
15199 "description" : "Tells if the given command has exited yet.",
15200 "type" : "boolean"
15201 },
15202 "out-data" : {
15203 "description" : "stdout of the process",
15204 "optional" : 1,
15205 "type" : "string"
15206 },
15207 "out-truncated" : {
15208 "description" : "true if stdout was not fully captured",
15209 "optional" : 1,
15210 "type" : "boolean"
15211 },
15212 "signal" : {
15213 "description" : "signal number or exception code if the process was abnormally terminated.",
15214 "optional" : 1,
15215 "type" : "integer"
15216 }
15217 },
15218 "type" : "object"
56122987
DM
15219 }
15220 }
15221 },
4d47f125
TL
15222 "leaf" : 1,
15223 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status",
15224 "text" : "exec-status"
15225 },
15226 {
15227 "info" : {
15228 "GET" : {
e9cd3bd4 15229 "allowtoken" : 1,
4d47f125
TL
15230 "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
15231 "method" : "GET",
15232 "name" : "file-read",
15233 "parameters" : {
15234 "additionalProperties" : 0,
15235 "properties" : {
15236 "file" : {
15237 "description" : "The path to the file",
15238 "type" : "string",
15239 "typetext" : "<string>"
15240 },
15241 "node" : {
15242 "description" : "The cluster node name.",
15243 "format" : "pve-node",
15244 "type" : "string",
15245 "typetext" : "<string>"
15246 },
15247 "vmid" : {
15248 "description" : "The (unique) ID of the VM.",
15249 "format" : "pve-vmid",
8dd66e12
TL
15250 "maximum" : 999999999,
15251 "minimum" : 100,
4d47f125 15252 "type" : "integer",
8dd66e12 15253 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
15254 }
15255 }
15256 },
15257 "permissions" : {
15258 "check" : [
15259 "perm",
15260 "/vms/{vmid}",
15261 [
15262 "VM.Monitor"
15263 ]
15264 ]
15265 },
15266 "protected" : 1,
15267 "proxyto" : "node",
15268 "returns" : {
15269 "description" : "Returns an object with a `content` property.",
15270 "properties" : {
15271 "content" : {
15272 "description" : "The content of the file, maximum 16777216",
15273 "type" : "string"
15274 },
15275 "truncated" : {
15276 "description" : "If set to 1, the output is truncated and not complete",
15277 "optional" : 1,
15278 "type" : "boolean"
15279 }
15280 },
15281 "type" : "object"
15282 }
15283 }
56122987 15284 },
4d47f125
TL
15285 "leaf" : 1,
15286 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-read",
15287 "text" : "file-read"
15288 },
15289 {
15290 "info" : {
15291 "POST" : {
e9cd3bd4 15292 "allowtoken" : 1,
4d47f125
TL
15293 "description" : "Writes the given file via guest agent.",
15294 "method" : "POST",
15295 "name" : "file-write",
15296 "parameters" : {
15297 "additionalProperties" : 0,
15298 "properties" : {
15299 "content" : {
15300 "description" : "The content to write into the file.",
15301 "maxLength" : 61440,
15302 "type" : "string",
15303 "typetext" : "<string>"
15304 },
7af2edf9
TL
15305 "encode" : {
15306 "default" : 1,
15307 "description" : "If set, the content will be encoded as base64 (required by QEMU).Otherwise the content needs to be encoded beforehand - defaults to true.",
15308 "optional" : 1,
15309 "type" : "boolean",
15310 "typetext" : "<boolean>"
15311 },
4d47f125
TL
15312 "file" : {
15313 "description" : "The path to the file.",
15314 "type" : "string",
15315 "typetext" : "<string>"
15316 },
15317 "node" : {
15318 "description" : "The cluster node name.",
15319 "format" : "pve-node",
15320 "type" : "string",
15321 "typetext" : "<string>"
15322 },
15323 "vmid" : {
15324 "description" : "The (unique) ID of the VM.",
15325 "format" : "pve-vmid",
8dd66e12
TL
15326 "maximum" : 999999999,
15327 "minimum" : 100,
4d47f125 15328 "type" : "integer",
8dd66e12 15329 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
15330 }
15331 }
15332 },
15333 "permissions" : {
15334 "check" : [
15335 "perm",
15336 "/vms/{vmid}",
15337 [
15338 "VM.Monitor"
15339 ]
15340 ]
15341 },
15342 "protected" : 1,
15343 "proxyto" : "node",
15344 "returns" : {
15345 "type" : "null"
7aacca6f 15346 }
4d47f125
TL
15347 }
15348 },
15349 "leaf" : 1,
15350 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write",
15351 "text" : "file-write"
56122987 15352 }
4d47f125 15353 ],
7aacca6f 15354 "info" : {
56122987 15355 "GET" : {
e9cd3bd4 15356 "allowtoken" : 1,
9d2e98ed 15357 "description" : "QEMU Guest Agent command index.",
44660702 15358 "method" : "GET",
4d47f125 15359 "name" : "index",
56122987 15360 "parameters" : {
4d47f125 15361 "additionalProperties" : 1,
56122987
DM
15362 "properties" : {
15363 "node" : {
44660702 15364 "description" : "The cluster node name.",
56122987 15365 "format" : "pve-node",
013dc89f
DM
15366 "type" : "string",
15367 "typetext" : "<string>"
56122987 15368 },
7aacca6f 15369 "vmid" : {
7aacca6f
DM
15370 "description" : "The (unique) ID of the VM.",
15371 "format" : "pve-vmid",
8dd66e12
TL
15372 "maximum" : 999999999,
15373 "minimum" : 100,
4bd7df8b 15374 "type" : "integer",
8dd66e12 15375 "typetext" : "<integer> (100 - 999999999)"
56122987 15376 }
44660702 15377 }
56122987 15378 },
56122987 15379 "permissions" : {
4d47f125 15380 "user" : "all"
56122987 15381 },
4d47f125 15382 "proxyto" : "node",
7aacca6f 15383 "returns" : {
9d2e98ed 15384 "description" : "Returns the list of QEMU Guest Agent commands",
7aacca6f 15385 "items" : {
44660702
DM
15386 "properties" : {},
15387 "type" : "object"
15388 },
4d47f125
TL
15389 "links" : [
15390 {
15391 "href" : "{name}",
15392 "rel" : "child"
15393 }
15394 ],
44660702 15395 "type" : "array"
7aacca6f 15396 }
4d47f125
TL
15397 },
15398 "POST" : {
e9cd3bd4 15399 "allowtoken" : 1,
9d2e98ed 15400 "description" : "Execute QEMU Guest Agent commands.",
4d47f125
TL
15401 "method" : "POST",
15402 "name" : "agent",
44660702
DM
15403 "parameters" : {
15404 "additionalProperties" : 0,
15405 "properties" : {
4d47f125
TL
15406 "command" : {
15407 "description" : "The QGA command.",
15408 "enum" : [
15409 "fsfreeze-freeze",
15410 "fsfreeze-status",
15411 "fsfreeze-thaw",
15412 "fstrim",
15413 "get-fsinfo",
15414 "get-host-name",
15415 "get-memory-block-info",
15416 "get-memory-blocks",
15417 "get-osinfo",
15418 "get-time",
15419 "get-timezone",
15420 "get-users",
15421 "get-vcpus",
15422 "info",
15423 "network-get-interfaces",
15424 "ping",
15425 "shutdown",
15426 "suspend-disk",
15427 "suspend-hybrid",
15428 "suspend-ram"
15429 ],
15430 "type" : "string"
15431 },
15432 "node" : {
15433 "description" : "The cluster node name.",
15434 "format" : "pve-node",
15435 "type" : "string",
15436 "typetext" : "<string>"
15437 },
15438 "vmid" : {
15439 "description" : "The (unique) ID of the VM.",
15440 "format" : "pve-vmid",
8dd66e12
TL
15441 "maximum" : 999999999,
15442 "minimum" : 100,
4d47f125 15443 "type" : "integer",
8dd66e12 15444 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
15445 }
15446 }
15447 },
15448 "permissions" : {
15449 "check" : [
15450 "perm",
15451 "/vms/{vmid}",
15452 [
15453 "VM.Monitor"
15454 ]
15455 ]
15456 },
15457 "protected" : 1,
15458 "proxyto" : "node",
15459 "returns" : {
15460 "description" : "Returns an object with a single `result` property.",
15461 "type" : "object"
15462 }
15463 }
15464 },
15465 "leaf" : 0,
15466 "path" : "/nodes/{node}/qemu/{vmid}/agent",
15467 "text" : "agent"
15468 },
15469 {
15470 "info" : {
15471 "GET" : {
e9cd3bd4 15472 "allowtoken" : 1,
4d47f125
TL
15473 "description" : "Read VM RRD statistics (returns PNG)",
15474 "method" : "GET",
15475 "name" : "rrd",
15476 "parameters" : {
15477 "additionalProperties" : 0,
15478 "properties" : {
15479 "cf" : {
15480 "description" : "The RRD consolidation function",
15481 "enum" : [
15482 "AVERAGE",
15483 "MAX"
15484 ],
44660702 15485 "optional" : 1,
4d47f125
TL
15486 "type" : "string"
15487 },
15488 "ds" : {
15489 "description" : "The list of datasources you want to display.",
15490 "format" : "pve-configid-list",
15491 "type" : "string",
15492 "typetext" : "<string>"
44660702
DM
15493 },
15494 "node" : {
15495 "description" : "The cluster node name.",
15496 "format" : "pve-node",
013dc89f
DM
15497 "type" : "string",
15498 "typetext" : "<string>"
44660702 15499 },
4d47f125
TL
15500 "timeframe" : {
15501 "description" : "Specify the time frame you are interested in.",
15502 "enum" : [
15503 "hour",
15504 "day",
15505 "week",
15506 "month",
15507 "year"
15508 ],
15509 "type" : "string"
15510 },
44660702
DM
15511 "vmid" : {
15512 "description" : "The (unique) ID of the VM.",
15513 "format" : "pve-vmid",
8dd66e12
TL
15514 "maximum" : 999999999,
15515 "minimum" : 100,
4bd7df8b 15516 "type" : "integer",
8dd66e12 15517 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
15518 }
15519 }
7aacca6f 15520 },
56122987
DM
15521 "permissions" : {
15522 "check" : [
15523 "perm",
15524 "/vms/{vmid}",
15525 [
44660702
DM
15526 "VM.Audit"
15527 ]
56122987
DM
15528 ]
15529 },
4d47f125 15530 "protected" : 1,
44660702
DM
15531 "returns" : {
15532 "properties" : {
4d47f125 15533 "filename" : {
44660702
DM
15534 "type" : "string"
15535 }
15536 },
15537 "type" : "object"
15538 }
4d47f125
TL
15539 }
15540 },
15541 "leaf" : 1,
15542 "path" : "/nodes/{node}/qemu/{vmid}/rrd",
15543 "text" : "rrd"
15544 },
15545 {
15546 "info" : {
15547 "GET" : {
e9cd3bd4 15548 "allowtoken" : 1,
4d47f125
TL
15549 "description" : "Read VM RRD statistics",
15550 "method" : "GET",
15551 "name" : "rrddata",
15552 "parameters" : {
15553 "additionalProperties" : 0,
15554 "properties" : {
15555 "cf" : {
15556 "description" : "The RRD consolidation function",
15557 "enum" : [
15558 "AVERAGE",
15559 "MAX"
15560 ],
15561 "optional" : 1,
15562 "type" : "string"
15563 },
15564 "node" : {
15565 "description" : "The cluster node name.",
15566 "format" : "pve-node",
15567 "type" : "string",
15568 "typetext" : "<string>"
15569 },
15570 "timeframe" : {
15571 "description" : "Specify the time frame you are interested in.",
15572 "enum" : [
15573 "hour",
15574 "day",
15575 "week",
15576 "month",
15577 "year"
15578 ],
15579 "type" : "string"
15580 },
15581 "vmid" : {
15582 "description" : "The (unique) ID of the VM.",
15583 "format" : "pve-vmid",
8dd66e12
TL
15584 "maximum" : 999999999,
15585 "minimum" : 100,
4d47f125 15586 "type" : "integer",
8dd66e12 15587 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
15588 }
15589 }
15590 },
15591 "permissions" : {
15592 "check" : [
15593 "perm",
15594 "/vms/{vmid}",
15595 [
15596 "VM.Audit"
15597 ]
15598 ]
15599 },
15600 "protected" : 1,
15601 "returns" : {
15602 "items" : {
15603 "properties" : {},
15604 "type" : "object"
15605 },
15606 "type" : "array"
15607 }
15608 }
15609 },
15610 "leaf" : 1,
15611 "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
15612 "text" : "rrddata"
15613 },
15614 {
15615 "info" : {
15616 "GET" : {
e9cd3bd4
TL
15617 "allowtoken" : 1,
15618 "description" : "Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead.",
4d47f125
TL
15619 "method" : "GET",
15620 "name" : "vm_config",
56122987 15621 "parameters" : {
44660702 15622 "additionalProperties" : 0,
4d47f125
TL
15623 "properties" : {
15624 "current" : {
15625 "default" : 0,
15626 "description" : "Get current values (instead of pending values).",
15627 "optional" : 1,
15628 "type" : "boolean",
15629 "typetext" : "<boolean>"
15630 },
15631 "node" : {
15632 "description" : "The cluster node name.",
15633 "format" : "pve-node",
15634 "type" : "string",
15635 "typetext" : "<string>"
15636 },
5f26e15b
TL
15637 "snapshot" : {
15638 "description" : "Fetch config values from given snapshot.",
15639 "format" : "pve-configid",
15640 "maxLength" : 40,
15641 "optional" : 1,
15642 "type" : "string",
15643 "typetext" : "<string>"
15644 },
4d47f125
TL
15645 "vmid" : {
15646 "description" : "The (unique) ID of the VM.",
15647 "format" : "pve-vmid",
8dd66e12
TL
15648 "maximum" : 999999999,
15649 "minimum" : 100,
4d47f125 15650 "type" : "integer",
8dd66e12 15651 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
15652 }
15653 }
15654 },
15655 "permissions" : {
15656 "check" : [
15657 "perm",
15658 "/vms/{vmid}",
15659 [
15660 "VM.Audit"
15661 ]
15662 ]
15663 },
15664 "proxyto" : "node",
15665 "returns" : {
e9cd3bd4 15666 "description" : "The VM configuration.",
56122987 15667 "properties" : {
44660702
DM
15668 "acpi" : {
15669 "default" : 1,
15670 "description" : "Enable/disable ACPI.",
15671 "optional" : 1,
4d47f125 15672 "type" : "boolean"
44660702 15673 },
4e7f60c2 15674 "affinity" : {
81a3384d 15675 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
15676 "format" : "pve-cpuset",
15677 "optional" : 1,
15678 "type" : "string"
15679 },
44660702 15680 "agent" : {
9d2e98ed 15681 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
15682 "format" : {
15683 "enabled" : {
15684 "default" : 0,
15685 "default_key" : 1,
9d2e98ed
TL
15686 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
15687 "type" : "boolean"
15688 },
15689 "freeze-fs-on-backup" : {
15690 "default" : 1,
15691 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
15692 "optional" : 1,
4d47f125
TL
15693 "type" : "boolean"
15694 },
15695 "fstrim_cloned_disks" : {
15696 "default" : 0,
d2656385 15697 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
15698 "optional" : 1,
15699 "type" : "boolean"
5c1699e5
TL
15700 },
15701 "type" : {
15702 "default" : "virtio",
15703 "description" : "Select the agent type",
15704 "enum" : [
15705 "virtio",
15706 "isa"
15707 ],
15708 "optional" : 1,
15709 "type" : "string"
4d47f125
TL
15710 }
15711 },
7aacca6f 15712 "optional" : 1,
4d47f125 15713 "type" : "string"
7aacca6f 15714 },
e2d681b3
TL
15715 "arch" : {
15716 "description" : "Virtual processor architecture. Defaults to the host.",
15717 "enum" : [
15718 "x86_64",
15719 "aarch64"
15720 ],
15721 "optional" : 1,
15722 "type" : "string"
15723 },
44660702 15724 "args" : {
c2993fe5 15725 "description" : "Arbitrary arguments passed to kvm.",
44660702 15726 "optional" : 1,
c2993fe5 15727 "type" : "string",
159464a9 15728 "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 15729 },
1c532546
TL
15730 "audio0" : {
15731 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
15732 "format" : {
15733 "device" : {
15734 "description" : "Configure an audio device.",
15735 "enum" : [
15736 "ich9-intel-hda",
15737 "intel-hda",
15738 "AC97"
15739 ],
15740 "type" : "string"
15741 },
15742 "driver" : {
15743 "default" : "spice",
15744 "description" : "Driver backend for the audio device.",
15745 "enum" : [
d2656385
TL
15746 "spice",
15747 "none"
1c532546
TL
15748 ],
15749 "optional" : 1,
15750 "type" : "string"
15751 }
15752 },
15753 "optional" : 1,
15754 "type" : "string"
15755 },
44660702
DM
15756 "autostart" : {
15757 "default" : 0,
15758 "description" : "Automatic restart after crash (currently ignored).",
56122987 15759 "optional" : 1,
4d47f125 15760 "type" : "boolean"
56122987 15761 },
4d47f125 15762 "balloon" : {
9d2e98ed 15763 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
4d47f125 15764 "minimum" : 0,
7aacca6f 15765 "optional" : 1,
4d47f125 15766 "type" : "integer"
7aacca6f 15767 },
44660702
DM
15768 "bios" : {
15769 "default" : "seabios",
15770 "description" : "Select BIOS implementation.",
15771 "enum" : [
15772 "seabios",
15773 "ovmf"
15774 ],
56122987 15775 "optional" : 1,
44660702 15776 "type" : "string"
7aacca6f 15777 },
44660702 15778 "boot" : {
5370fa8c 15779 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 15780 "format" : "pve-qm-boot",
44660702 15781 "optional" : 1,
44660702
DM
15782 "type" : "string"
15783 },
15784 "bootdisk" : {
4772952b 15785 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
15786 "format" : "pve-qm-bootdisk",
15787 "optional" : 1,
15788 "pattern" : "(ide|sata|scsi|virtio)\\d+",
15789 "type" : "string"
15790 },
15791 "cdrom" : {
15792 "description" : "This is an alias for option -ide2",
de0983cb 15793 "format" : "pve-qm-ide",
44660702 15794 "optional" : 1,
7aacca6f 15795 "type" : "string",
013dc89f 15796 "typetext" : "<volume>"
44660702 15797 },
95895385
TL
15798 "cicustom" : {
15799 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
15800 "format" : "pve-qm-cicustom",
15801 "optional" : 1,
15802 "type" : "string"
15803 },
27a7acb2
DM
15804 "cipassword" : {
15805 "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.",
15806 "optional" : 1,
4d47f125 15807 "type" : "string"
27a7acb2
DM
15808 },
15809 "citype" : {
15810 "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.",
15811 "enum" : [
15812 "configdrive2",
d2656385
TL
15813 "nocloud",
15814 "opennebula"
27a7acb2
DM
15815 ],
15816 "optional" : 1,
15817 "type" : "string"
15818 },
159464a9 15819 "ciupgrade" : {
c8eee6ff 15820 "default" : 1,
159464a9
TL
15821 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
15822 "optional" : 1,
15823 "type" : "boolean"
15824 },
27a7acb2
DM
15825 "ciuser" : {
15826 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
15827 "optional" : 1,
4d47f125 15828 "type" : "string"
27a7acb2 15829 },
44660702
DM
15830 "cores" : {
15831 "default" : 1,
15832 "description" : "The number of cores per socket.",
15833 "minimum" : 1,
7aacca6f 15834 "optional" : 1,
4d47f125 15835 "type" : "integer"
7aacca6f 15836 },
44660702
DM
15837 "cpu" : {
15838 "description" : "Emulated CPU type.",
c5aa7e14 15839 "format" : "pve-vm-cpu-conf",
44660702 15840 "optional" : 1,
4d47f125 15841 "type" : "string"
44660702
DM
15842 },
15843 "cpulimit" : {
15844 "default" : 0,
c2993fe5 15845 "description" : "Limit of CPU usage.",
44660702
DM
15846 "maximum" : 128,
15847 "minimum" : 0,
15848 "optional" : 1,
c2993fe5
DM
15849 "type" : "number",
15850 "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
15851 },
15852 "cpuunits" : {
5370fa8c
TL
15853 "default" : "cgroup v1: 1024, cgroup v2: 100",
15854 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 15855 "maximum" : 262144,
7af2edf9 15856 "minimum" : 1,
44660702 15857 "optional" : 1,
c2993fe5 15858 "type" : "integer",
2489d6df 15859 "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 15860 },
44660702 15861 "description" : {
8f4d9c87
TL
15862 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
15863 "maxLength" : 8192,
44660702 15864 "optional" : 1,
4d47f125 15865 "type" : "string"
44660702
DM
15866 },
15867 "digest" : {
4d47f125
TL
15868 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
15869 "type" : "string"
44660702 15870 },
4d47f125 15871 "efidisk0" : {
9d2e98ed 15872 "description" : "Configure a disk for storing EFI vars.",
4d47f125 15873 "format" : {
5370fa8c
TL
15874 "efitype" : {
15875 "default" : "2m",
bd92b745 15876 "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
15877 "enum" : [
15878 "2m",
15879 "4m"
15880 ],
15881 "optional" : 1,
15882 "type" : "string"
15883 },
4d47f125
TL
15884 "file" : {
15885 "default_key" : 1,
15886 "description" : "The drive's backing volume.",
15887 "format" : "pve-volume-id-or-qm-path",
15888 "format_description" : "volume",
15889 "type" : "string"
15890 },
15891 "format" : {
15892 "description" : "The drive's backing file's data format.",
15893 "enum" : [
15894 "raw",
15895 "cow",
15896 "qcow",
15897 "qed",
15898 "qcow2",
15899 "vmdk",
15900 "cloop"
15901 ],
15902 "optional" : 1,
15903 "type" : "string"
15904 },
5370fa8c
TL
15905 "pre-enrolled-keys" : {
15906 "default" : 0,
15907 "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.",
15908 "optional" : 1,
15909 "type" : "boolean"
15910 },
4d47f125
TL
15911 "size" : {
15912 "description" : "Disk size. This is purely informational and has no effect.",
15913 "format" : "disk-size",
15914 "format_description" : "DiskSize",
15915 "optional" : 1,
15916 "type" : "string"
15917 },
15918 "volume" : {
15919 "alias" : "file"
15920 }
15921 },
44660702 15922 "optional" : 1,
4d47f125 15923 "type" : "string"
44660702
DM
15924 },
15925 "freeze" : {
15926 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
15927 "optional" : 1,
4d47f125 15928 "type" : "boolean"
44660702 15929 },
5f26e15b
TL
15930 "hookscript" : {
15931 "description" : "Script that will be executed during various steps in the vms lifetime.",
15932 "format" : "pve-volume-id",
15933 "optional" : 1,
15934 "type" : "string"
15935 },
44660702 15936 "hostpci[n]" : {
c2993fe5 15937 "description" : "Map host PCI devices into guest.",
44660702
DM
15938 "format" : "pve-qm-hostpci",
15939 "optional" : 1,
57b78691 15940 "type" : "string",
bb4c8cf8 15941 "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
15942 },
15943 "hotplug" : {
15944 "default" : "network,disk,usb",
4e7f60c2 15945 "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
15946 "format" : "pve-hotplug-features",
15947 "optional" : 1,
4d47f125 15948 "type" : "string"
44660702 15949 },
4bd7df8b
DM
15950 "hugepages" : {
15951 "description" : "Enable/disable hugepages memory.",
15952 "enum" : [
15953 "any",
15954 "2",
15955 "1024"
15956 ],
15957 "optional" : 1,
15958 "type" : "string"
15959 },
44660702 15960 "ide[n]" : {
7af2edf9 15961 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
44660702
DM
15962 "format" : {
15963 "aio" : {
15964 "description" : "AIO type to use.",
15965 "enum" : [
15966 "native",
8f4d9c87
TL
15967 "threads",
15968 "io_uring"
56122987 15969 ],
56122987 15970 "optional" : 1,
44660702 15971 "type" : "string"
56122987 15972 },
44660702
DM
15973 "backup" : {
15974 "description" : "Whether the drive should be included when making backups.",
56122987 15975 "optional" : 1,
44660702 15976 "type" : "boolean"
56122987 15977 },
7aacca6f 15978 "bps" : {
de0983cb 15979 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
15980 "format_description" : "bps",
15981 "optional" : 1,
15982 "type" : "integer"
15983 },
de0983cb
DM
15984 "bps_max_length" : {
15985 "description" : "Maximum length of I/O bursts in seconds.",
15986 "format_description" : "seconds",
15987 "minimum" : 1,
15988 "optional" : 1,
15989 "type" : "integer"
15990 },
44660702 15991 "bps_rd" : {
de0983cb 15992 "description" : "Maximum read speed in bytes per second.",
44660702 15993 "format_description" : "bps",
56122987 15994 "optional" : 1,
44660702 15995 "type" : "integer"
56122987 15996 },
de0983cb 15997 "bps_rd_length" : {
5d9c884c
DM
15998 "alias" : "bps_rd_max_length"
15999 },
16000 "bps_rd_max_length" : {
de0983cb
DM
16001 "description" : "Maximum length of read I/O bursts in seconds.",
16002 "format_description" : "seconds",
16003 "minimum" : 1,
16004 "optional" : 1,
16005 "type" : "integer"
16006 },
44660702 16007 "bps_wr" : {
de0983cb 16008 "description" : "Maximum write speed in bytes per second.",
44660702
DM
16009 "format_description" : "bps",
16010 "optional" : 1,
16011 "type" : "integer"
16012 },
de0983cb 16013 "bps_wr_length" : {
5d9c884c
DM
16014 "alias" : "bps_wr_max_length"
16015 },
16016 "bps_wr_max_length" : {
de0983cb
DM
16017 "description" : "Maximum length of write I/O bursts in seconds.",
16018 "format_description" : "seconds",
16019 "minimum" : 1,
16020 "optional" : 1,
16021 "type" : "integer"
16022 },
44660702
DM
16023 "cache" : {
16024 "description" : "The drive's cache mode",
16025 "enum" : [
16026 "none",
16027 "writethrough",
16028 "writeback",
16029 "unsafe",
16030 "directsync"
16031 ],
44660702
DM
16032 "optional" : 1,
16033 "type" : "string"
16034 },
16035 "cyls" : {
16036 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16037 "optional" : 1,
16038 "type" : "integer"
16039 },
16040 "detect_zeroes" : {
16041 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16042 "optional" : 1,
16043 "type" : "boolean"
16044 },
16045 "discard" : {
16046 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
16047 "enum" : [
16048 "ignore",
16049 "on"
16050 ],
56122987 16051 "optional" : 1,
44660702
DM
16052 "type" : "string"
16053 },
16054 "file" : {
16055 "default_key" : 1,
16056 "description" : "The drive's backing volume.",
16057 "format" : "pve-volume-id-or-qm-path",
16058 "format_description" : "volume",
16059 "type" : "string"
56122987 16060 },
7aacca6f 16061 "format" : {
7aacca6f 16062 "description" : "The drive's backing file's data format.",
56122987 16063 "enum" : [
7aacca6f
DM
16064 "raw",
16065 "cow",
16066 "qcow",
16067 "qed",
16068 "qcow2",
16069 "vmdk",
16070 "cloop"
56122987
DM
16071 ],
16072 "optional" : 1,
56122987
DM
16073 "type" : "string"
16074 },
44660702
DM
16075 "heads" : {
16076 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
16077 "optional" : 1,
16078 "type" : "integer"
7aacca6f 16079 },
44660702 16080 "iops" : {
de0983cb 16081 "description" : "Maximum r/w I/O in operations per second.",
44660702 16082 "format_description" : "iops",
56122987 16083 "optional" : 1,
44660702 16084 "type" : "integer"
56122987 16085 },
44660702 16086 "iops_max" : {
de0983cb 16087 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 16088 "format_description" : "iops",
56122987 16089 "optional" : 1,
44660702 16090 "type" : "integer"
56122987 16091 },
de0983cb
DM
16092 "iops_max_length" : {
16093 "description" : "Maximum length of I/O bursts in seconds.",
16094 "format_description" : "seconds",
16095 "minimum" : 1,
16096 "optional" : 1,
16097 "type" : "integer"
16098 },
44660702 16099 "iops_rd" : {
de0983cb 16100 "description" : "Maximum read I/O in operations per second.",
44660702
DM
16101 "format_description" : "iops",
16102 "optional" : 1,
16103 "type" : "integer"
16104 },
de0983cb 16105 "iops_rd_length" : {
5d9c884c 16106 "alias" : "iops_rd_max_length"
de0983cb 16107 },
44660702 16108 "iops_rd_max" : {
de0983cb 16109 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 16110 "format_description" : "iops",
44660702
DM
16111 "optional" : 1,
16112 "type" : "integer"
16113 },
5d9c884c
DM
16114 "iops_rd_max_length" : {
16115 "description" : "Maximum length of read I/O bursts in seconds.",
16116 "format_description" : "seconds",
16117 "minimum" : 1,
16118 "optional" : 1,
16119 "type" : "integer"
16120 },
44660702 16121 "iops_wr" : {
de0983cb 16122 "description" : "Maximum write I/O in operations per second.",
44660702 16123 "format_description" : "iops",
56122987 16124 "optional" : 1,
7aacca6f 16125 "type" : "integer"
56122987 16126 },
de0983cb 16127 "iops_wr_length" : {
5d9c884c 16128 "alias" : "iops_wr_max_length"
de0983cb 16129 },
44660702 16130 "iops_wr_max" : {
de0983cb 16131 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 16132 "format_description" : "iops",
7aacca6f 16133 "optional" : 1,
44660702 16134 "type" : "integer"
56122987 16135 },
5d9c884c
DM
16136 "iops_wr_max_length" : {
16137 "description" : "Maximum length of write I/O bursts in seconds.",
16138 "format_description" : "seconds",
16139 "minimum" : 1,
16140 "optional" : 1,
16141 "type" : "integer"
16142 },
44660702 16143 "mbps" : {
de0983cb 16144 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
16145 "format_description" : "mbps",
16146 "optional" : 1,
16147 "type" : "number"
16148 },
16149 "mbps_max" : {
de0983cb 16150 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
16151 "format_description" : "mbps",
16152 "optional" : 1,
16153 "type" : "number"
16154 },
16155 "mbps_rd" : {
de0983cb 16156 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
16157 "format_description" : "mbps",
16158 "optional" : 1,
16159 "type" : "number"
16160 },
16161 "mbps_rd_max" : {
de0983cb 16162 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
16163 "format_description" : "mbps",
16164 "optional" : 1,
16165 "type" : "number"
16166 },
16167 "mbps_wr" : {
de0983cb 16168 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
16169 "format_description" : "mbps",
16170 "optional" : 1,
16171 "type" : "number"
16172 },
16173 "mbps_wr_max" : {
de0983cb 16174 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 16175 "format_description" : "mbps",
56122987 16176 "optional" : 1,
44660702 16177 "type" : "number"
56122987 16178 },
7aacca6f 16179 "media" : {
7aacca6f 16180 "default" : "disk",
7aacca6f
DM
16181 "description" : "The drive's media type.",
16182 "enum" : [
16183 "cdrom",
16184 "disk"
44660702 16185 ],
44660702
DM
16186 "optional" : 1,
16187 "type" : "string"
56122987 16188 },
44660702
DM
16189 "model" : {
16190 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
16191 "format" : "urlencoded",
16192 "format_description" : "model",
16193 "maxLength" : 120,
56122987 16194 "optional" : 1,
44660702 16195 "type" : "string"
56122987 16196 },
5d9c884c
DM
16197 "replicate" : {
16198 "default" : 1,
16199 "description" : "Whether the drive should considered for replication jobs.",
16200 "optional" : 1,
16201 "type" : "boolean"
16202 },
44660702
DM
16203 "rerror" : {
16204 "description" : "Read error action.",
16205 "enum" : [
16206 "ignore",
16207 "report",
16208 "stop"
16209 ],
56122987 16210 "optional" : 1,
44660702
DM
16211 "type" : "string"
16212 },
16213 "secs" : {
16214 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
16215 "optional" : 1,
16216 "type" : "integer"
16217 },
16218 "serial" : {
16219 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16220 "format" : "urlencoded",
16221 "format_description" : "serial",
16222 "maxLength" : 60,
16223 "optional" : 1,
16224 "type" : "string"
16225 },
27a7acb2
DM
16226 "shared" : {
16227 "default" : 0,
16228 "description" : "Mark this locally-managed volume as available on all nodes",
16229 "optional" : 1,
16230 "type" : "boolean",
16231 "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!"
16232 },
44660702
DM
16233 "size" : {
16234 "description" : "Disk size. This is purely informational and has no effect.",
16235 "format" : "disk-size",
f004f5b9 16236 "format_description" : "DiskSize",
44660702
DM
16237 "optional" : 1,
16238 "type" : "string"
16239 },
16240 "snapshot" : {
27a7acb2 16241 "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
16242 "optional" : 1,
16243 "type" : "boolean"
16244 },
25203dc1
NC
16245 "ssd" : {
16246 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
16247 "optional" : 1,
16248 "type" : "boolean"
16249 },
44660702
DM
16250 "trans" : {
16251 "description" : "Force disk geometry bios translation mode.",
16252 "enum" : [
16253 "none",
16254 "lba",
16255 "auto"
16256 ],
44660702
DM
16257 "optional" : 1,
16258 "type" : "string"
16259 },
16260 "volume" : {
16261 "alias" : "file"
16262 },
16263 "werror" : {
16264 "description" : "Write error action.",
16265 "enum" : [
16266 "enospc",
16267 "ignore",
16268 "report",
16269 "stop"
16270 ],
44660702
DM
16271 "optional" : 1,
16272 "type" : "string"
95895385
TL
16273 },
16274 "wwn" : {
16275 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
16276 "format_description" : "wwn",
16277 "optional" : 1,
16278 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
16279 "type" : "string"
56122987
DM
16280 }
16281 },
44660702 16282 "optional" : 1,
4d47f125 16283 "type" : "string"
27a7acb2
DM
16284 },
16285 "ipconfig[n]" : {
d2656385 16286 "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
16287 "format" : "pve-qm-ipconfig",
16288 "optional" : 1,
4d47f125 16289 "type" : "string"
56122987 16290 },
95895385
TL
16291 "ivshmem" : {
16292 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
16293 "format" : {
16294 "name" : {
16295 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
16296 "format_description" : "string",
16297 "optional" : 1,
16298 "pattern" : "[a-zA-Z0-9\\-]+",
16299 "type" : "string"
16300 },
16301 "size" : {
16302 "description" : "The size of the file in MB.",
16303 "minimum" : 1,
16304 "type" : "integer"
16305 }
16306 },
16307 "optional" : 1,
16308 "type" : "string"
16309 },
4772952b
TL
16310 "keephugepages" : {
16311 "default" : 0,
16312 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
16313 "optional" : 1,
16314 "type" : "boolean"
16315 },
44660702 16316 "keyboard" : {
35a75dd3 16317 "default" : null,
7af2edf9 16318 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
16319 "enum" : [
16320 "de",
16321 "de-ch",
16322 "da",
16323 "en-gb",
16324 "en-us",
16325 "es",
16326 "fi",
16327 "fr",
16328 "fr-be",
16329 "fr-ca",
16330 "fr-ch",
16331 "hu",
16332 "is",
16333 "it",
16334 "ja",
16335 "lt",
16336 "mk",
16337 "nl",
16338 "no",
16339 "pl",
16340 "pt",
16341 "pt-br",
16342 "sv",
16343 "sl",
16344 "tr"
16345 ],
56122987 16346 "optional" : 1,
44660702
DM
16347 "type" : "string"
16348 },
16349 "kvm" : {
7aacca6f 16350 "default" : 1,
44660702
DM
16351 "description" : "Enable/disable KVM hardware virtualization.",
16352 "optional" : 1,
4d47f125 16353 "type" : "boolean"
56122987 16354 },
44660702 16355 "localtime" : {
5370fa8c 16356 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 16357 "optional" : 1,
4d47f125 16358 "type" : "boolean"
56122987 16359 },
44660702
DM
16360 "lock" : {
16361 "description" : "Lock/unlock the VM.",
16362 "enum" : [
44660702 16363 "backup",
5f26e15b
TL
16364 "clone",
16365 "create",
16366 "migrate",
16367 "rollback",
44660702 16368 "snapshot",
95895385
TL
16369 "snapshot-delete",
16370 "suspending",
16371 "suspended"
44660702 16372 ],
7aacca6f 16373 "optional" : 1,
44660702
DM
16374 "type" : "string"
16375 },
16376 "machine" : {
9d2e98ed 16377 "description" : "Specifies the QEMU machine type.",
44660702
DM
16378 "maxLength" : 40,
16379 "optional" : 1,
5c1699e5 16380 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
16381 "type" : "string"
16382 },
16383 "memory" : {
bd92b745
TL
16384 "description" : "Memory properties.",
16385 "format" : {
16386 "current" : {
16387 "default" : 512,
16388 "default_key" : 1,
16389 "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
16390 "minimum" : 16,
16391 "type" : "integer"
16392 }
16393 },
44660702 16394 "optional" : 1,
bd92b745 16395 "type" : "string"
44660702
DM
16396 },
16397 "migrate_downtime" : {
16398 "default" : 0.1,
16399 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
16400 "minimum" : 0,
16401 "optional" : 1,
4d47f125 16402 "type" : "number"
44660702
DM
16403 },
16404 "migrate_speed" : {
16405 "default" : 0,
16406 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
16407 "minimum" : 0,
16408 "optional" : 1,
4d47f125 16409 "type" : "integer"
44660702
DM
16410 },
16411 "name" : {
16412 "description" : "Set a name for the VM. Only used on the configuration web interface.",
16413 "format" : "dns-name",
16414 "optional" : 1,
4d47f125 16415 "type" : "string"
44660702 16416 },
27a7acb2 16417 "nameserver" : {
de786b48 16418 "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
16419 "format" : "address-list",
16420 "optional" : 1,
4d47f125 16421 "type" : "string"
27a7acb2 16422 },
44660702 16423 "net[n]" : {
c2993fe5 16424 "description" : "Specify network devices.",
f004f5b9
DM
16425 "format" : {
16426 "bridge" : {
c2993fe5 16427 "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 16428 "format" : "pve-bridge-id",
f004f5b9
DM
16429 "format_description" : "bridge",
16430 "optional" : 1,
16431 "type" : "string"
16432 },
16433 "e1000" : {
16434 "alias" : "macaddr",
16435 "keyAlias" : "model"
16436 },
16437 "e1000-82540em" : {
16438 "alias" : "macaddr",
16439 "keyAlias" : "model"
16440 },
16441 "e1000-82544gc" : {
16442 "alias" : "macaddr",
16443 "keyAlias" : "model"
16444 },
16445 "e1000-82545em" : {
16446 "alias" : "macaddr",
16447 "keyAlias" : "model"
16448 },
5370fa8c
TL
16449 "e1000e" : {
16450 "alias" : "macaddr",
16451 "keyAlias" : "model"
16452 },
f004f5b9
DM
16453 "firewall" : {
16454 "description" : "Whether this interface should be protected by the firewall.",
16455 "optional" : 1,
16456 "type" : "boolean"
16457 },
16458 "i82551" : {
16459 "alias" : "macaddr",
16460 "keyAlias" : "model"
16461 },
16462 "i82557b" : {
16463 "alias" : "macaddr",
16464 "keyAlias" : "model"
16465 },
16466 "i82559er" : {
16467 "alias" : "macaddr",
16468 "keyAlias" : "model"
16469 },
16470 "link_down" : {
c2993fe5 16471 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
16472 "optional" : 1,
16473 "type" : "boolean"
16474 },
16475 "macaddr" : {
c2993fe5 16476 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 16477 "format" : "mac-addr",
f004f5b9 16478 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 16479 "optional" : 1,
95895385
TL
16480 "type" : "string",
16481 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
16482 },
16483 "model" : {
16484 "default_key" : 1,
c2993fe5 16485 "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 16486 "enum" : [
f004f5b9 16487 "e1000",
5370fa8c
TL
16488 "e1000-82540em",
16489 "e1000-82544gc",
16490 "e1000-82545em",
16491 "e1000e",
f004f5b9
DM
16492 "i82551",
16493 "i82557b",
16494 "i82559er",
5370fa8c
TL
16495 "ne2k_isa",
16496 "ne2k_pci",
16497 "pcnet",
16498 "rtl8139",
16499 "virtio",
16500 "vmxnet3"
f004f5b9 16501 ],
f004f5b9
DM
16502 "type" : "string"
16503 },
ac70d7d1
TL
16504 "mtu" : {
16505 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
16506 "maximum" : 65520,
16507 "minimum" : 1,
16508 "optional" : 1,
16509 "type" : "integer"
16510 },
f004f5b9
DM
16511 "ne2k_isa" : {
16512 "alias" : "macaddr",
16513 "keyAlias" : "model"
16514 },
16515 "ne2k_pci" : {
16516 "alias" : "macaddr",
16517 "keyAlias" : "model"
16518 },
16519 "pcnet" : {
16520 "alias" : "macaddr",
16521 "keyAlias" : "model"
16522 },
16523 "queues" : {
16524 "description" : "Number of packet queues to be used on the device.",
81a3384d 16525 "maximum" : 64,
f004f5b9
DM
16526 "minimum" : 0,
16527 "optional" : 1,
16528 "type" : "integer"
16529 },
16530 "rate" : {
c2993fe5 16531 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
16532 "minimum" : 0,
16533 "optional" : 1,
16534 "type" : "number"
16535 },
16536 "rtl8139" : {
16537 "alias" : "macaddr",
16538 "keyAlias" : "model"
16539 },
16540 "tag" : {
16541 "description" : "VLAN tag to apply to packets on this interface.",
16542 "maximum" : 4094,
c2993fe5 16543 "minimum" : 1,
f004f5b9
DM
16544 "optional" : 1,
16545 "type" : "integer"
16546 },
16547 "trunks" : {
16548 "description" : "VLAN trunks to pass through this interface.",
16549 "format_description" : "vlanid[;vlanid...]",
16550 "optional" : 1,
16551 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
16552 "type" : "string"
16553 },
16554 "virtio" : {
16555 "alias" : "macaddr",
16556 "keyAlias" : "model"
16557 },
16558 "vmxnet3" : {
16559 "alias" : "macaddr",
16560 "keyAlias" : "model"
16561 }
16562 },
44660702 16563 "optional" : 1,
4d47f125 16564 "type" : "string"
44660702
DM
16565 },
16566 "numa" : {
16567 "default" : 0,
16568 "description" : "Enable/disable NUMA.",
16569 "optional" : 1,
4d47f125 16570 "type" : "boolean"
44660702
DM
16571 },
16572 "numa[n]" : {
c2993fe5 16573 "description" : "NUMA topology.",
56122987 16574 "format" : {
7aacca6f 16575 "cpus" : {
c2993fe5 16576 "description" : "CPUs accessing this NUMA node.",
44660702
DM
16577 "format_description" : "id[-id];...",
16578 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
16579 "type" : "string"
7aacca6f
DM
16580 },
16581 "hostnodes" : {
c2993fe5 16582 "description" : "Host NUMA nodes to use.",
44660702 16583 "format_description" : "id[-id];...",
7aacca6f 16584 "optional" : 1,
7aacca6f 16585 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
44660702 16586 "type" : "string"
7aacca6f 16587 },
44660702 16588 "memory" : {
c2993fe5 16589 "description" : "Amount of memory this NUMA node provides.",
7aacca6f 16590 "optional" : 1,
44660702
DM
16591 "type" : "number"
16592 },
16593 "policy" : {
c2993fe5 16594 "description" : "NUMA allocation policy.",
7aacca6f
DM
16595 "enum" : [
16596 "preferred",
16597 "bind",
16598 "interleave"
16599 ],
44660702
DM
16600 "optional" : 1,
16601 "type" : "string"
56122987 16602 }
44660702 16603 },
56122987 16604 "optional" : 1,
4d47f125 16605 "type" : "string"
56122987 16606 },
44660702 16607 "onboot" : {
7aacca6f 16608 "default" : 0,
44660702
DM
16609 "description" : "Specifies whether a VM will be started during system bootup.",
16610 "optional" : 1,
4d47f125 16611 "type" : "boolean"
7aacca6f
DM
16612 },
16613 "ostype" : {
c2993fe5 16614 "description" : "Specify guest operating system.",
7aacca6f
DM
16615 "enum" : [
16616 "other",
16617 "wxp",
16618 "w2k",
16619 "w2k3",
16620 "w2k8",
16621 "wvista",
16622 "win7",
16623 "win8",
32d876b5 16624 "win10",
5370fa8c 16625 "win11",
7aacca6f
DM
16626 "l24",
16627 "l26",
16628 "solaris"
16629 ],
7aacca6f 16630 "optional" : 1,
c2993fe5 16631 "type" : "string",
9d2e98ed 16632 "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 16633 },
44660702 16634 "parallel[n]" : {
c2993fe5 16635 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 16636 "optional" : 1,
44660702 16637 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 16638 "type" : "string",
4772952b 16639 "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
16640 },
16641 "protection" : {
16642 "default" : 0,
c2993fe5 16643 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 16644 "optional" : 1,
4d47f125 16645 "type" : "boolean"
7aacca6f 16646 },
44660702
DM
16647 "reboot" : {
16648 "default" : 1,
16649 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 16650 "optional" : 1,
4d47f125 16651 "type" : "boolean"
44660702 16652 },
c5aa7e14
TL
16653 "rng0" : {
16654 "description" : "Configure a VirtIO-based Random Number Generator.",
16655 "format" : {
16656 "max_bytes" : {
16657 "default" : 1024,
5370fa8c 16658 "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
16659 "optional" : 1,
16660 "type" : "integer"
16661 },
16662 "period" : {
16663 "default" : 1000,
16664 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
16665 "optional" : 1,
16666 "type" : "integer"
16667 },
16668 "source" : {
16669 "default_key" : 1,
5370fa8c 16670 "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
16671 "enum" : [
16672 "/dev/urandom",
16673 "/dev/random",
16674 "/dev/hwrng"
16675 ],
16676 "type" : "string"
16677 }
16678 },
16679 "optional" : 1,
16680 "type" : "string"
16681 },
44660702 16682 "sata[n]" : {
7af2edf9 16683 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
56122987 16684 "format" : {
44660702
DM
16685 "aio" : {
16686 "description" : "AIO type to use.",
7aacca6f 16687 "enum" : [
44660702 16688 "native",
8f4d9c87
TL
16689 "threads",
16690 "io_uring"
7aacca6f 16691 ],
44660702
DM
16692 "optional" : 1,
16693 "type" : "string"
7aacca6f 16694 },
44660702
DM
16695 "backup" : {
16696 "description" : "Whether the drive should be included when making backups.",
56122987 16697 "optional" : 1,
7aacca6f 16698 "type" : "boolean"
44660702
DM
16699 },
16700 "bps" : {
de0983cb 16701 "description" : "Maximum r/w speed in bytes per second.",
44660702 16702 "format_description" : "bps",
7aacca6f 16703 "optional" : 1,
44660702 16704 "type" : "integer"
56122987 16705 },
de0983cb
DM
16706 "bps_max_length" : {
16707 "description" : "Maximum length of I/O bursts in seconds.",
16708 "format_description" : "seconds",
16709 "minimum" : 1,
16710 "optional" : 1,
16711 "type" : "integer"
16712 },
44660702 16713 "bps_rd" : {
de0983cb 16714 "description" : "Maximum read speed in bytes per second.",
44660702 16715 "format_description" : "bps",
56122987 16716 "optional" : 1,
44660702 16717 "type" : "integer"
56122987 16718 },
de0983cb 16719 "bps_rd_length" : {
5d9c884c
DM
16720 "alias" : "bps_rd_max_length"
16721 },
16722 "bps_rd_max_length" : {
de0983cb
DM
16723 "description" : "Maximum length of read I/O bursts in seconds.",
16724 "format_description" : "seconds",
16725 "minimum" : 1,
16726 "optional" : 1,
16727 "type" : "integer"
16728 },
44660702 16729 "bps_wr" : {
de0983cb 16730 "description" : "Maximum write speed in bytes per second.",
44660702 16731 "format_description" : "bps",
56122987 16732 "optional" : 1,
44660702 16733 "type" : "integer"
56122987 16734 },
de0983cb 16735 "bps_wr_length" : {
5d9c884c
DM
16736 "alias" : "bps_wr_max_length"
16737 },
16738 "bps_wr_max_length" : {
de0983cb
DM
16739 "description" : "Maximum length of write I/O bursts in seconds.",
16740 "format_description" : "seconds",
16741 "minimum" : 1,
16742 "optional" : 1,
16743 "type" : "integer"
16744 },
56122987 16745 "cache" : {
44660702 16746 "description" : "The drive's cache mode",
56122987
DM
16747 "enum" : [
16748 "none",
16749 "writethrough",
16750 "writeback",
16751 "unsafe",
16752 "directsync"
16753 ],
56122987 16754 "optional" : 1,
44660702 16755 "type" : "string"
56122987 16756 },
44660702
DM
16757 "cyls" : {
16758 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 16759 "optional" : 1,
44660702 16760 "type" : "integer"
7aacca6f
DM
16761 },
16762 "detect_zeroes" : {
16763 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 16764 "optional" : 1,
44660702 16765 "type" : "boolean"
56122987 16766 },
44660702
DM
16767 "discard" : {
16768 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
16769 "enum" : [
16770 "ignore",
16771 "on"
16772 ],
56122987 16773 "optional" : 1,
44660702 16774 "type" : "string"
7aacca6f 16775 },
44660702
DM
16776 "file" : {
16777 "default_key" : 1,
16778 "description" : "The drive's backing volume.",
16779 "format" : "pve-volume-id-or-qm-path",
16780 "format_description" : "volume",
16781 "type" : "string"
56122987 16782 },
7aacca6f 16783 "format" : {
44660702 16784 "description" : "The drive's backing file's data format.",
7aacca6f
DM
16785 "enum" : [
16786 "raw",
16787 "cow",
16788 "qcow",
16789 "qed",
16790 "qcow2",
16791 "vmdk",
16792 "cloop"
16793 ],
7aacca6f 16794 "optional" : 1,
44660702 16795 "type" : "string"
56122987 16796 },
7aacca6f 16797 "heads" : {
7aacca6f 16798 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 16799 "optional" : 1,
7aacca6f 16800 "type" : "integer"
56122987 16801 },
44660702 16802 "iops" : {
de0983cb 16803 "description" : "Maximum r/w I/O in operations per second.",
44660702 16804 "format_description" : "iops",
56122987 16805 "optional" : 1,
44660702 16806 "type" : "integer"
56122987 16807 },
44660702 16808 "iops_max" : {
de0983cb 16809 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 16810 "format_description" : "iops",
56122987 16811 "optional" : 1,
44660702 16812 "type" : "integer"
56122987 16813 },
de0983cb
DM
16814 "iops_max_length" : {
16815 "description" : "Maximum length of I/O bursts in seconds.",
16816 "format_description" : "seconds",
16817 "minimum" : 1,
16818 "optional" : 1,
16819 "type" : "integer"
16820 },
44660702 16821 "iops_rd" : {
de0983cb 16822 "description" : "Maximum read I/O in operations per second.",
44660702 16823 "format_description" : "iops",
7aacca6f 16824 "optional" : 1,
44660702 16825 "type" : "integer"
56122987 16826 },
de0983cb 16827 "iops_rd_length" : {
5d9c884c 16828 "alias" : "iops_rd_max_length"
de0983cb 16829 },
44660702 16830 "iops_rd_max" : {
de0983cb 16831 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 16832 "format_description" : "iops",
56122987 16833 "optional" : 1,
44660702 16834 "type" : "integer"
7aacca6f 16835 },
5d9c884c
DM
16836 "iops_rd_max_length" : {
16837 "description" : "Maximum length of read I/O bursts in seconds.",
16838 "format_description" : "seconds",
16839 "minimum" : 1,
16840 "optional" : 1,
16841 "type" : "integer"
16842 },
44660702 16843 "iops_wr" : {
de0983cb 16844 "description" : "Maximum write I/O in operations per second.",
44660702 16845 "format_description" : "iops",
56122987 16846 "optional" : 1,
44660702 16847 "type" : "integer"
56122987 16848 },
de0983cb 16849 "iops_wr_length" : {
5d9c884c 16850 "alias" : "iops_wr_max_length"
de0983cb 16851 },
56122987 16852 "iops_wr_max" : {
de0983cb 16853 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 16854 "format_description" : "iops",
56122987 16855 "optional" : 1,
44660702 16856 "type" : "integer"
56122987 16857 },
5d9c884c
DM
16858 "iops_wr_max_length" : {
16859 "description" : "Maximum length of write I/O bursts in seconds.",
16860 "format_description" : "seconds",
16861 "minimum" : 1,
16862 "optional" : 1,
16863 "type" : "integer"
16864 },
44660702 16865 "mbps" : {
de0983cb 16866 "description" : "Maximum r/w speed in megabytes per second.",
44660702 16867 "format_description" : "mbps",
56122987 16868 "optional" : 1,
44660702 16869 "type" : "number"
56122987 16870 },
44660702 16871 "mbps_max" : {
de0983cb 16872 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
16873 "format_description" : "mbps",
16874 "optional" : 1,
16875 "type" : "number"
56122987 16876 },
44660702 16877 "mbps_rd" : {
de0983cb 16878 "description" : "Maximum read speed in megabytes per second.",
44660702 16879 "format_description" : "mbps",
56122987 16880 "optional" : 1,
44660702 16881 "type" : "number"
56122987 16882 },
44660702 16883 "mbps_rd_max" : {
de0983cb 16884 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 16885 "format_description" : "mbps",
56122987 16886 "optional" : 1,
44660702 16887 "type" : "number"
56122987 16888 },
44660702 16889 "mbps_wr" : {
de0983cb 16890 "description" : "Maximum write speed in megabytes per second.",
56122987 16891 "format_description" : "mbps",
44660702
DM
16892 "optional" : 1,
16893 "type" : "number"
56122987 16894 },
44660702 16895 "mbps_wr_max" : {
de0983cb 16896 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
16897 "format_description" : "mbps",
16898 "optional" : 1,
16899 "type" : "number"
7aacca6f 16900 },
44660702
DM
16901 "media" : {
16902 "default" : "disk",
16903 "description" : "The drive's media type.",
16904 "enum" : [
16905 "cdrom",
16906 "disk"
16907 ],
56122987 16908 "optional" : 1,
44660702
DM
16909 "type" : "string"
16910 },
5d9c884c
DM
16911 "replicate" : {
16912 "default" : 1,
16913 "description" : "Whether the drive should considered for replication jobs.",
16914 "optional" : 1,
16915 "type" : "boolean"
16916 },
44660702
DM
16917 "rerror" : {
16918 "description" : "Read error action.",
7aacca6f 16919 "enum" : [
44660702
DM
16920 "ignore",
16921 "report",
16922 "stop"
16923 ],
7aacca6f 16924 "optional" : 1,
44660702 16925 "type" : "string"
56122987 16926 },
44660702
DM
16927 "secs" : {
16928 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 16929 "optional" : 1,
44660702 16930 "type" : "integer"
56122987 16931 },
44660702
DM
16932 "serial" : {
16933 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16934 "format" : "urlencoded",
16935 "format_description" : "serial",
16936 "maxLength" : 60,
56122987 16937 "optional" : 1,
44660702 16938 "type" : "string"
56122987 16939 },
27a7acb2
DM
16940 "shared" : {
16941 "default" : 0,
16942 "description" : "Mark this locally-managed volume as available on all nodes",
16943 "optional" : 1,
16944 "type" : "boolean",
16945 "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!"
16946 },
44660702
DM
16947 "size" : {
16948 "description" : "Disk size. This is purely informational and has no effect.",
16949 "format" : "disk-size",
f004f5b9 16950 "format_description" : "DiskSize",
44660702
DM
16951 "optional" : 1,
16952 "type" : "string"
16953 },
16954 "snapshot" : {
27a7acb2 16955 "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 16956 "optional" : 1,
44660702
DM
16957 "type" : "boolean"
16958 },
25203dc1
NC
16959 "ssd" : {
16960 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
16961 "optional" : 1,
16962 "type" : "boolean"
16963 },
44660702
DM
16964 "trans" : {
16965 "description" : "Force disk geometry bios translation mode.",
56122987 16966 "enum" : [
7aacca6f
DM
16967 "none",
16968 "lba",
16969 "auto"
56122987 16970 ],
44660702
DM
16971 "optional" : 1,
16972 "type" : "string"
56122987 16973 },
7aacca6f
DM
16974 "volume" : {
16975 "alias" : "file"
56122987 16976 },
44660702
DM
16977 "werror" : {
16978 "description" : "Write error action.",
16979 "enum" : [
16980 "enospc",
16981 "ignore",
16982 "report",
16983 "stop"
16984 ],
7aacca6f 16985 "optional" : 1,
44660702 16986 "type" : "string"
95895385
TL
16987 },
16988 "wwn" : {
16989 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
16990 "format_description" : "wwn",
16991 "optional" : 1,
16992 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
16993 "type" : "string"
44660702
DM
16994 }
16995 },
16996 "optional" : 1,
4d47f125 16997 "type" : "string"
44660702
DM
16998 },
16999 "scsi[n]" : {
7af2edf9 17000 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).",
44660702 17001 "format" : {
56122987 17002 "aio" : {
56122987
DM
17003 "description" : "AIO type to use.",
17004 "enum" : [
17005 "native",
8f4d9c87
TL
17006 "threads",
17007 "io_uring"
56122987 17008 ],
7aacca6f 17009 "optional" : 1,
44660702 17010 "type" : "string"
56122987 17011 },
44660702
DM
17012 "backup" : {
17013 "description" : "Whether the drive should be included when making backups.",
56122987 17014 "optional" : 1,
44660702 17015 "type" : "boolean"
56122987 17016 },
44660702 17017 "bps" : {
de0983cb 17018 "description" : "Maximum r/w speed in bytes per second.",
44660702 17019 "format_description" : "bps",
56122987 17020 "optional" : 1,
44660702 17021 "type" : "integer"
56122987 17022 },
de0983cb
DM
17023 "bps_max_length" : {
17024 "description" : "Maximum length of I/O bursts in seconds.",
17025 "format_description" : "seconds",
17026 "minimum" : 1,
17027 "optional" : 1,
17028 "type" : "integer"
17029 },
44660702 17030 "bps_rd" : {
de0983cb 17031 "description" : "Maximum read speed in bytes per second.",
44660702 17032 "format_description" : "bps",
56122987 17033 "optional" : 1,
44660702 17034 "type" : "integer"
56122987 17035 },
de0983cb 17036 "bps_rd_length" : {
5d9c884c
DM
17037 "alias" : "bps_rd_max_length"
17038 },
17039 "bps_rd_max_length" : {
de0983cb
DM
17040 "description" : "Maximum length of read I/O bursts in seconds.",
17041 "format_description" : "seconds",
17042 "minimum" : 1,
17043 "optional" : 1,
17044 "type" : "integer"
17045 },
7aacca6f 17046 "bps_wr" : {
de0983cb 17047 "description" : "Maximum write speed in bytes per second.",
7aacca6f 17048 "format_description" : "bps",
56122987 17049 "optional" : 1,
44660702 17050 "type" : "integer"
56122987 17051 },
de0983cb 17052 "bps_wr_length" : {
5d9c884c
DM
17053 "alias" : "bps_wr_max_length"
17054 },
17055 "bps_wr_max_length" : {
de0983cb
DM
17056 "description" : "Maximum length of write I/O bursts in seconds.",
17057 "format_description" : "seconds",
17058 "minimum" : 1,
17059 "optional" : 1,
17060 "type" : "integer"
17061 },
44660702
DM
17062 "cache" : {
17063 "description" : "The drive's cache mode",
7aacca6f 17064 "enum" : [
44660702
DM
17065 "none",
17066 "writethrough",
17067 "writeback",
17068 "unsafe",
17069 "directsync"
7aacca6f 17070 ],
56122987 17071 "optional" : 1,
44660702 17072 "type" : "string"
56122987 17073 },
44660702
DM
17074 "cyls" : {
17075 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 17076 "optional" : 1,
44660702 17077 "type" : "integer"
56122987 17078 },
44660702
DM
17079 "detect_zeroes" : {
17080 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 17081 "optional" : 1,
44660702 17082 "type" : "boolean"
56122987 17083 },
44660702
DM
17084 "discard" : {
17085 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17086 "enum" : [
17087 "ignore",
17088 "on"
17089 ],
7aacca6f 17090 "optional" : 1,
44660702 17091 "type" : "string"
56122987 17092 },
44660702
DM
17093 "file" : {
17094 "default_key" : 1,
17095 "description" : "The drive's backing volume.",
17096 "format" : "pve-volume-id-or-qm-path",
17097 "format_description" : "volume",
17098 "type" : "string"
56122987 17099 },
7aacca6f 17100 "format" : {
44660702 17101 "description" : "The drive's backing file's data format.",
56122987 17102 "enum" : [
7aacca6f
DM
17103 "raw",
17104 "cow",
17105 "qcow",
17106 "qed",
17107 "qcow2",
17108 "vmdk",
17109 "cloop"
17110 ],
44660702
DM
17111 "optional" : 1,
17112 "type" : "string"
56122987 17113 },
44660702
DM
17114 "heads" : {
17115 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 17116 "optional" : 1,
7aacca6f 17117 "type" : "integer"
56122987 17118 },
44660702 17119 "iops" : {
de0983cb 17120 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 17121 "format_description" : "iops",
44660702
DM
17122 "optional" : 1,
17123 "type" : "integer"
7aacca6f 17124 },
44660702 17125 "iops_max" : {
de0983cb 17126 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 17127 "format_description" : "iops",
56122987 17128 "optional" : 1,
44660702 17129 "type" : "integer"
7aacca6f 17130 },
de0983cb
DM
17131 "iops_max_length" : {
17132 "description" : "Maximum length of I/O bursts in seconds.",
17133 "format_description" : "seconds",
17134 "minimum" : 1,
17135 "optional" : 1,
17136 "type" : "integer"
17137 },
44660702 17138 "iops_rd" : {
de0983cb 17139 "description" : "Maximum read I/O in operations per second.",
44660702 17140 "format_description" : "iops",
7aacca6f 17141 "optional" : 1,
44660702 17142 "type" : "integer"
56122987 17143 },
de0983cb 17144 "iops_rd_length" : {
5d9c884c 17145 "alias" : "iops_rd_max_length"
de0983cb 17146 },
44660702 17147 "iops_rd_max" : {
de0983cb 17148 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
17149 "format_description" : "iops",
17150 "optional" : 1,
17151 "type" : "integer"
17152 },
5d9c884c
DM
17153 "iops_rd_max_length" : {
17154 "description" : "Maximum length of read I/O bursts in seconds.",
17155 "format_description" : "seconds",
17156 "minimum" : 1,
17157 "optional" : 1,
17158 "type" : "integer"
17159 },
44660702 17160 "iops_wr" : {
de0983cb 17161 "description" : "Maximum write I/O in operations per second.",
44660702 17162 "format_description" : "iops",
56122987 17163 "optional" : 1,
44660702
DM
17164 "type" : "integer"
17165 },
de0983cb 17166 "iops_wr_length" : {
5d9c884c 17167 "alias" : "iops_wr_max_length"
de0983cb 17168 },
44660702 17169 "iops_wr_max" : {
de0983cb 17170 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
17171 "format_description" : "iops",
17172 "optional" : 1,
17173 "type" : "integer"
56122987 17174 },
5d9c884c
DM
17175 "iops_wr_max_length" : {
17176 "description" : "Maximum length of write I/O bursts in seconds.",
17177 "format_description" : "seconds",
17178 "minimum" : 1,
17179 "optional" : 1,
17180 "type" : "integer"
17181 },
7aacca6f 17182 "iothread" : {
7aacca6f 17183 "description" : "Whether to use iothreads for this drive",
56122987 17184 "optional" : 1,
56122987
DM
17185 "type" : "boolean"
17186 },
44660702 17187 "mbps" : {
de0983cb 17188 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
17189 "format_description" : "mbps",
17190 "optional" : 1,
17191 "type" : "number"
17192 },
17193 "mbps_max" : {
de0983cb 17194 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
17195 "format_description" : "mbps",
17196 "optional" : 1,
17197 "type" : "number"
17198 },
17199 "mbps_rd" : {
de0983cb 17200 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
17201 "format_description" : "mbps",
17202 "optional" : 1,
17203 "type" : "number"
17204 },
17205 "mbps_rd_max" : {
de0983cb 17206 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
17207 "format_description" : "mbps",
17208 "optional" : 1,
17209 "type" : "number"
17210 },
17211 "mbps_wr" : {
de0983cb 17212 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
17213 "format_description" : "mbps",
17214 "optional" : 1,
17215 "type" : "number"
17216 },
17217 "mbps_wr_max" : {
de0983cb 17218 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
17219 "format_description" : "mbps",
17220 "optional" : 1,
17221 "type" : "number"
17222 },
7aacca6f 17223 "media" : {
44660702
DM
17224 "default" : "disk",
17225 "description" : "The drive's media type.",
7aacca6f
DM
17226 "enum" : [
17227 "cdrom",
17228 "disk"
17229 ],
56122987 17230 "optional" : 1,
44660702
DM
17231 "type" : "string"
17232 },
17233 "queues" : {
17234 "description" : "Number of queues.",
44660702
DM
17235 "minimum" : 2,
17236 "optional" : 1,
17237 "type" : "integer"
17238 },
5d9c884c
DM
17239 "replicate" : {
17240 "default" : 1,
17241 "description" : "Whether the drive should considered for replication jobs.",
17242 "optional" : 1,
17243 "type" : "boolean"
17244 },
17245 "rerror" : {
17246 "description" : "Read error action.",
17247 "enum" : [
17248 "ignore",
17249 "report",
17250 "stop"
17251 ],
17252 "optional" : 1,
17253 "type" : "string"
17254 },
5370fa8c
TL
17255 "ro" : {
17256 "description" : "Whether the drive is read-only.",
17257 "optional" : 1,
17258 "type" : "boolean"
17259 },
52e44c50
FG
17260 "scsiblock" : {
17261 "default" : 0,
17262 "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",
17263 "optional" : 1,
17264 "type" : "boolean"
17265 },
44660702
DM
17266 "secs" : {
17267 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
17268 "optional" : 1,
17269 "type" : "integer"
17270 },
17271 "serial" : {
17272 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
17273 "format" : "urlencoded",
17274 "format_description" : "serial",
17275 "maxLength" : 60,
17276 "optional" : 1,
17277 "type" : "string"
17278 },
27a7acb2
DM
17279 "shared" : {
17280 "default" : 0,
17281 "description" : "Mark this locally-managed volume as available on all nodes",
17282 "optional" : 1,
17283 "type" : "boolean",
17284 "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!"
17285 },
44660702
DM
17286 "size" : {
17287 "description" : "Disk size. This is purely informational and has no effect.",
17288 "format" : "disk-size",
f004f5b9 17289 "format_description" : "DiskSize",
44660702
DM
17290 "optional" : 1,
17291 "type" : "string"
56122987 17292 },
7aacca6f 17293 "snapshot" : {
27a7acb2 17294 "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 17295 "optional" : 1,
44660702 17296 "type" : "boolean"
7aacca6f 17297 },
25203dc1
NC
17298 "ssd" : {
17299 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17300 "optional" : 1,
17301 "type" : "boolean"
17302 },
44660702
DM
17303 "trans" : {
17304 "description" : "Force disk geometry bios translation mode.",
17305 "enum" : [
17306 "none",
17307 "lba",
17308 "auto"
17309 ],
44660702
DM
17310 "optional" : 1,
17311 "type" : "string"
17312 },
17313 "volume" : {
17314 "alias" : "file"
17315 },
17316 "werror" : {
17317 "description" : "Write error action.",
17318 "enum" : [
17319 "enospc",
17320 "ignore",
17321 "report",
17322 "stop"
17323 ],
56122987 17324 "optional" : 1,
44660702 17325 "type" : "string"
95895385
TL
17326 },
17327 "wwn" : {
17328 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17329 "format_description" : "wwn",
17330 "optional" : 1,
17331 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17332 "type" : "string"
56122987 17333 }
44660702 17334 },
7aacca6f 17335 "optional" : 1,
4d47f125 17336 "type" : "string"
44660702
DM
17337 },
17338 "scsihw" : {
17339 "default" : "lsi",
c2993fe5 17340 "description" : "SCSI controller model",
7aacca6f 17341 "enum" : [
44660702
DM
17342 "lsi",
17343 "lsi53c810",
17344 "virtio-scsi-pci",
17345 "virtio-scsi-single",
17346 "megasas",
17347 "pvscsi"
7aacca6f 17348 ],
44660702
DM
17349 "optional" : 1,
17350 "type" : "string"
56122987 17351 },
27a7acb2 17352 "searchdomain" : {
de786b48 17353 "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 17354 "optional" : 1,
4d47f125 17355 "type" : "string"
27a7acb2 17356 },
44660702 17357 "serial[n]" : {
c2993fe5 17358 "description" : "Create a serial device inside the VM (n is 0 to 3)",
7aacca6f 17359 "optional" : 1,
44660702 17360 "pattern" : "(/dev/.+|socket)",
c2993fe5 17361 "type" : "string",
4772952b 17362 "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 17363 },
44660702
DM
17364 "shares" : {
17365 "default" : 1000,
5da3d723 17366 "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
17367 "maximum" : 50000,
17368 "minimum" : 0,
56122987 17369 "optional" : 1,
4d47f125 17370 "type" : "integer"
56122987 17371 },
44660702
DM
17372 "smbios1" : {
17373 "description" : "Specify SMBIOS type 1 fields.",
17374 "format" : "pve-qm-smbios1",
1e3f8156 17375 "maxLength" : 512,
56122987 17376 "optional" : 1,
4d47f125 17377 "type" : "string"
56122987 17378 },
44660702
DM
17379 "smp" : {
17380 "default" : 1,
17381 "description" : "The number of CPUs. Please use option -sockets instead.",
7aacca6f 17382 "minimum" : 1,
7aacca6f 17383 "optional" : 1,
4d47f125 17384 "type" : "integer"
7aacca6f 17385 },
44660702
DM
17386 "sockets" : {
17387 "default" : 1,
17388 "description" : "The number of CPU sockets.",
17389 "minimum" : 1,
7aacca6f 17390 "optional" : 1,
4d47f125 17391 "type" : "integer"
56122987 17392 },
1c532546
TL
17393 "spice_enhancements" : {
17394 "description" : "Configure additional enhancements for SPICE.",
17395 "format" : {
17396 "foldersharing" : {
17397 "default" : "0",
17398 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
17399 "optional" : 1,
17400 "type" : "boolean"
17401 },
17402 "videostreaming" : {
17403 "default" : "off",
17404 "description" : "Enable video streaming. Uses compression for detected video streams.",
17405 "enum" : [
17406 "off",
17407 "all",
17408 "filter"
17409 ],
17410 "optional" : 1,
17411 "type" : "string"
17412 }
17413 },
17414 "optional" : 1,
17415 "type" : "string"
17416 },
27a7acb2
DM
17417 "sshkeys" : {
17418 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
17419 "format" : "urlencoded",
17420 "optional" : 1,
4d47f125 17421 "type" : "string"
27a7acb2 17422 },
44660702
DM
17423 "startdate" : {
17424 "default" : "now",
4772952b 17425 "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 17426 "optional" : 1,
44660702 17427 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 17428 "type" : "string",
44660702 17429 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
56122987 17430 },
7aacca6f 17431 "startup" : {
7aacca6f 17432 "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 17433 "format" : "pve-startup-order",
56122987 17434 "optional" : 1,
44660702
DM
17435 "type" : "string",
17436 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
56122987 17437 },
44660702 17438 "tablet" : {
7aacca6f 17439 "default" : 1,
c2993fe5 17440 "description" : "Enable/disable the USB tablet device.",
7aacca6f 17441 "optional" : 1,
c2993fe5 17442 "type" : "boolean",
4772952b 17443 "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 17444 },
5c1699e5
TL
17445 "tags" : {
17446 "description" : "Tags of the VM. This is only meta information.",
17447 "format" : "pve-tag-list",
17448 "optional" : 1,
17449 "type" : "string"
17450 },
44660702
DM
17451 "tdf" : {
17452 "default" : 0,
17453 "description" : "Enable/disable time drift fix.",
7aacca6f 17454 "optional" : 1,
4d47f125 17455 "type" : "boolean"
7aacca6f 17456 },
44660702
DM
17457 "template" : {
17458 "default" : 0,
17459 "description" : "Enable/disable Template.",
7aacca6f 17460 "optional" : 1,
4d47f125 17461 "type" : "boolean"
7aacca6f 17462 },
5370fa8c 17463 "tpmstate0" : {
7af2edf9 17464 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'.",
5370fa8c
TL
17465 "format" : {
17466 "file" : {
17467 "default_key" : 1,
17468 "description" : "The drive's backing volume.",
17469 "format" : "pve-volume-id-or-qm-path",
17470 "format_description" : "volume",
17471 "type" : "string"
17472 },
17473 "size" : {
17474 "description" : "Disk size. This is purely informational and has no effect.",
17475 "format" : "disk-size",
17476 "format_description" : "DiskSize",
17477 "optional" : 1,
17478 "type" : "string"
17479 },
17480 "version" : {
17481 "default" : "v2.0",
17482 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
17483 "enum" : [
17484 "v1.2",
17485 "v2.0"
17486 ],
17487 "optional" : 1,
17488 "type" : "string"
17489 },
17490 "volume" : {
17491 "alias" : "file"
17492 }
17493 },
17494 "optional" : 1,
17495 "type" : "string"
17496 },
44660702 17497 "unused[n]" : {
c2993fe5 17498 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
17499 "format" : {
17500 "file" : {
17501 "default_key" : 1,
17502 "description" : "The drive's backing volume.",
17503 "format" : "pve-volume-id",
17504 "format_description" : "volume",
17505 "type" : "string"
17506 },
17507 "volume" : {
17508 "alias" : "file"
17509 }
17510 },
7aacca6f 17511 "optional" : 1,
4d47f125 17512 "type" : "string"
7aacca6f 17513 },
44660702 17514 "usb[n]" : {
4e7f60c2 17515 "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
17516 "format" : {
17517 "host" : {
17518 "default_key" : 1,
499c9b7f 17519 "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 17520 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
17521 "optional" : 1,
17522 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
17523 "type" : "string"
17524 },
17525 "mapping" : {
17526 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
17527 "format" : "pve-configid",
17528 "format_description" : "mapping-id",
17529 "optional" : 1,
44660702
DM
17530 "type" : "string"
17531 },
17532 "usb3" : {
c2993fe5 17533 "default" : 0,
4e7f60c2 17534 "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
17535 "optional" : 1,
17536 "type" : "boolean"
17537 }
17538 },
7aacca6f 17539 "optional" : 1,
4d47f125 17540 "type" : "string"
56122987 17541 },
44660702
DM
17542 "vcpus" : {
17543 "default" : 0,
17544 "description" : "Number of hotplugged vcpus.",
17545 "minimum" : 1,
56122987 17546 "optional" : 1,
4d47f125 17547 "type" : "integer"
56122987 17548 },
44660702 17549 "vga" : {
e2d681b3
TL
17550 "description" : "Configure the VGA hardware.",
17551 "format" : {
17552 "memory" : {
17553 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
17554 "maximum" : 512,
17555 "minimum" : 4,
17556 "optional" : 1,
17557 "type" : "integer"
17558 },
17559 "type" : {
17560 "default" : "std",
17561 "default_key" : 1,
17562 "description" : "Select the VGA type.",
17563 "enum" : [
17564 "cirrus",
17565 "qxl",
17566 "qxl2",
17567 "qxl3",
17568 "qxl4",
5f26e15b 17569 "none",
e2d681b3
TL
17570 "serial0",
17571 "serial1",
17572 "serial2",
17573 "serial3",
17574 "std",
17575 "virtio",
7af2edf9 17576 "virtio-gl",
e2d681b3
TL
17577 "vmware"
17578 ],
17579 "optional" : 1,
17580 "type" : "string"
17581 }
17582 },
56122987 17583 "optional" : 1,
c2993fe5 17584 "type" : "string",
e2d681b3 17585 "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 17586 },
44660702 17587 "virtio[n]" : {
7af2edf9 17588 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
56122987 17589 "format" : {
44660702
DM
17590 "aio" : {
17591 "description" : "AIO type to use.",
56122987 17592 "enum" : [
44660702 17593 "native",
8f4d9c87
TL
17594 "threads",
17595 "io_uring"
56122987 17596 ],
56122987
DM
17597 "optional" : 1,
17598 "type" : "string"
17599 },
44660702
DM
17600 "backup" : {
17601 "description" : "Whether the drive should be included when making backups.",
44660702
DM
17602 "optional" : 1,
17603 "type" : "boolean"
7aacca6f 17604 },
44660702 17605 "bps" : {
de0983cb 17606 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
17607 "format_description" : "bps",
17608 "optional" : 1,
17609 "type" : "integer"
56122987 17610 },
de0983cb
DM
17611 "bps_max_length" : {
17612 "description" : "Maximum length of I/O bursts in seconds.",
17613 "format_description" : "seconds",
17614 "minimum" : 1,
17615 "optional" : 1,
17616 "type" : "integer"
17617 },
44660702 17618 "bps_rd" : {
de0983cb 17619 "description" : "Maximum read speed in bytes per second.",
44660702 17620 "format_description" : "bps",
56122987 17621 "optional" : 1,
44660702 17622 "type" : "integer"
56122987 17623 },
de0983cb 17624 "bps_rd_length" : {
5d9c884c
DM
17625 "alias" : "bps_rd_max_length"
17626 },
17627 "bps_rd_max_length" : {
de0983cb
DM
17628 "description" : "Maximum length of read I/O bursts in seconds.",
17629 "format_description" : "seconds",
17630 "minimum" : 1,
17631 "optional" : 1,
17632 "type" : "integer"
17633 },
44660702 17634 "bps_wr" : {
de0983cb 17635 "description" : "Maximum write speed in bytes per second.",
44660702 17636 "format_description" : "bps",
56122987 17637 "optional" : 1,
44660702
DM
17638 "type" : "integer"
17639 },
de0983cb 17640 "bps_wr_length" : {
5d9c884c
DM
17641 "alias" : "bps_wr_max_length"
17642 },
17643 "bps_wr_max_length" : {
de0983cb
DM
17644 "description" : "Maximum length of write I/O bursts in seconds.",
17645 "format_description" : "seconds",
17646 "minimum" : 1,
17647 "optional" : 1,
17648 "type" : "integer"
17649 },
44660702
DM
17650 "cache" : {
17651 "description" : "The drive's cache mode",
56122987 17652 "enum" : [
44660702
DM
17653 "none",
17654 "writethrough",
17655 "writeback",
17656 "unsafe",
17657 "directsync"
56122987 17658 ],
56122987 17659 "optional" : 1,
44660702 17660 "type" : "string"
56122987 17661 },
44660702
DM
17662 "cyls" : {
17663 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 17664 "optional" : 1,
44660702 17665 "type" : "integer"
7aacca6f 17666 },
44660702
DM
17667 "detect_zeroes" : {
17668 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
17669 "optional" : 1,
17670 "type" : "boolean"
7aacca6f 17671 },
44660702
DM
17672 "discard" : {
17673 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17674 "enum" : [
17675 "ignore",
17676 "on"
17677 ],
56122987 17678 "optional" : 1,
44660702 17679 "type" : "string"
56122987
DM
17680 },
17681 "file" : {
7aacca6f 17682 "default_key" : 1,
44660702 17683 "description" : "The drive's backing volume.",
7aacca6f 17684 "format" : "pve-volume-id-or-qm-path",
44660702
DM
17685 "format_description" : "volume",
17686 "type" : "string"
7aacca6f
DM
17687 },
17688 "format" : {
7aacca6f
DM
17689 "description" : "The drive's backing file's data format.",
17690 "enum" : [
17691 "raw",
17692 "cow",
17693 "qcow",
17694 "qed",
17695 "qcow2",
17696 "vmdk",
17697 "cloop"
56122987
DM
17698 ],
17699 "optional" : 1,
56122987
DM
17700 "type" : "string"
17701 },
44660702
DM
17702 "heads" : {
17703 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 17704 "optional" : 1,
44660702 17705 "type" : "integer"
56122987 17706 },
44660702 17707 "iops" : {
de0983cb 17708 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 17709 "format_description" : "iops",
56122987 17710 "optional" : 1,
44660702 17711 "type" : "integer"
56122987 17712 },
44660702 17713 "iops_max" : {
de0983cb 17714 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 17715 "format_description" : "iops",
56122987 17716 "optional" : 1,
56122987
DM
17717 "type" : "integer"
17718 },
de0983cb
DM
17719 "iops_max_length" : {
17720 "description" : "Maximum length of I/O bursts in seconds.",
17721 "format_description" : "seconds",
17722 "minimum" : 1,
17723 "optional" : 1,
17724 "type" : "integer"
17725 },
44660702 17726 "iops_rd" : {
de0983cb 17727 "description" : "Maximum read I/O in operations per second.",
44660702 17728 "format_description" : "iops",
56122987 17729 "optional" : 1,
44660702 17730 "type" : "integer"
56122987 17731 },
de0983cb 17732 "iops_rd_length" : {
5d9c884c 17733 "alias" : "iops_rd_max_length"
de0983cb 17734 },
44660702 17735 "iops_rd_max" : {
de0983cb 17736 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 17737 "format_description" : "iops",
7aacca6f 17738 "optional" : 1,
44660702 17739 "type" : "integer"
56122987 17740 },
5d9c884c
DM
17741 "iops_rd_max_length" : {
17742 "description" : "Maximum length of read I/O bursts in seconds.",
17743 "format_description" : "seconds",
17744 "minimum" : 1,
17745 "optional" : 1,
17746 "type" : "integer"
17747 },
44660702 17748 "iops_wr" : {
de0983cb 17749 "description" : "Maximum write I/O in operations per second.",
44660702 17750 "format_description" : "iops",
7aacca6f 17751 "optional" : 1,
44660702 17752 "type" : "integer"
56122987 17753 },
de0983cb 17754 "iops_wr_length" : {
5d9c884c 17755 "alias" : "iops_wr_max_length"
de0983cb 17756 },
44660702 17757 "iops_wr_max" : {
de0983cb 17758 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 17759 "format_description" : "iops",
56122987
DM
17760 "optional" : 1,
17761 "type" : "integer"
17762 },
5d9c884c
DM
17763 "iops_wr_max_length" : {
17764 "description" : "Maximum length of write I/O bursts in seconds.",
17765 "format_description" : "seconds",
17766 "minimum" : 1,
17767 "optional" : 1,
17768 "type" : "integer"
17769 },
44660702
DM
17770 "iothread" : {
17771 "description" : "Whether to use iothreads for this drive",
44660702
DM
17772 "optional" : 1,
17773 "type" : "boolean"
17774 },
17775 "mbps" : {
de0983cb 17776 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 17777 "format_description" : "mbps",
44660702
DM
17778 "optional" : 1,
17779 "type" : "number"
17780 },
17781 "mbps_max" : {
de0983cb 17782 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
17783 "format_description" : "mbps",
17784 "optional" : 1,
17785 "type" : "number"
7aacca6f 17786 },
44660702 17787 "mbps_rd" : {
de0983cb 17788 "description" : "Maximum read speed in megabytes per second.",
44660702 17789 "format_description" : "mbps",
56122987 17790 "optional" : 1,
44660702 17791 "type" : "number"
56122987 17792 },
44660702 17793 "mbps_rd_max" : {
de0983cb 17794 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 17795 "format_description" : "mbps",
7aacca6f 17796 "optional" : 1,
44660702 17797 "type" : "number"
56122987 17798 },
44660702 17799 "mbps_wr" : {
de0983cb 17800 "description" : "Maximum write speed in megabytes per second.",
44660702 17801 "format_description" : "mbps",
56122987 17802 "optional" : 1,
44660702 17803 "type" : "number"
56122987 17804 },
44660702 17805 "mbps_wr_max" : {
de0983cb 17806 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 17807 "format_description" : "mbps",
56122987 17808 "optional" : 1,
44660702 17809 "type" : "number"
56122987
DM
17810 },
17811 "media" : {
7aacca6f 17812 "default" : "disk",
44660702 17813 "description" : "The drive's media type.",
56122987
DM
17814 "enum" : [
17815 "cdrom",
17816 "disk"
17817 ],
44660702
DM
17818 "optional" : 1,
17819 "type" : "string"
56122987 17820 },
5d9c884c
DM
17821 "replicate" : {
17822 "default" : 1,
17823 "description" : "Whether the drive should considered for replication jobs.",
17824 "optional" : 1,
17825 "type" : "boolean"
17826 },
7aacca6f 17827 "rerror" : {
44660702 17828 "description" : "Read error action.",
56122987 17829 "enum" : [
7aacca6f
DM
17830 "ignore",
17831 "report",
17832 "stop"
56122987 17833 ],
56122987 17834 "optional" : 1,
44660702 17835 "type" : "string"
56122987 17836 },
5370fa8c
TL
17837 "ro" : {
17838 "description" : "Whether the drive is read-only.",
17839 "optional" : 1,
17840 "type" : "boolean"
17841 },
44660702
DM
17842 "secs" : {
17843 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
17844 "optional" : 1,
17845 "type" : "integer"
17846 },
17847 "serial" : {
17848 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
17849 "format" : "urlencoded",
17850 "format_description" : "serial",
17851 "maxLength" : 60,
56122987 17852 "optional" : 1,
7aacca6f 17853 "type" : "string"
56122987 17854 },
27a7acb2
DM
17855 "shared" : {
17856 "default" : 0,
17857 "description" : "Mark this locally-managed volume as available on all nodes",
17858 "optional" : 1,
17859 "type" : "boolean",
17860 "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!"
17861 },
44660702
DM
17862 "size" : {
17863 "description" : "Disk size. This is purely informational and has no effect.",
17864 "format" : "disk-size",
f004f5b9 17865 "format_description" : "DiskSize",
56122987 17866 "optional" : 1,
44660702 17867 "type" : "string"
56122987 17868 },
44660702 17869 "snapshot" : {
27a7acb2 17870 "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 17871 "optional" : 1,
44660702 17872 "type" : "boolean"
56122987 17873 },
44660702
DM
17874 "trans" : {
17875 "description" : "Force disk geometry bios translation mode.",
17876 "enum" : [
17877 "none",
17878 "lba",
17879 "auto"
17880 ],
44660702
DM
17881 "optional" : 1,
17882 "type" : "string"
17883 },
17884 "volume" : {
17885 "alias" : "file"
17886 },
17887 "werror" : {
17888 "description" : "Write error action.",
17889 "enum" : [
17890 "enospc",
17891 "ignore",
17892 "report",
17893 "stop"
17894 ],
56122987 17895 "optional" : 1,
44660702 17896 "type" : "string"
56122987 17897 }
44660702 17898 },
56122987 17899 "optional" : 1,
4d47f125 17900 "type" : "string"
56122987 17901 },
4d47f125
TL
17902 "vmgenid" : {
17903 "default" : "1 (autogenerated)",
17904 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
17905 "format_description" : "UUID",
17906 "optional" : 1,
17907 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
17908 "type" : "string",
4772952b 17909 "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 17910 },
2489d6df
WB
17911 "vmstatestorage" : {
17912 "description" : "Default storage for VM state volumes/files.",
17913 "format" : "pve-storage-id",
17914 "optional" : 1,
4d47f125 17915 "type" : "string"
2489d6df 17916 },
44660702 17917 "watchdog" : {
c2993fe5 17918 "description" : "Create a virtual hardware watchdog device.",
44660702 17919 "format" : "pve-qm-watchdog",
56122987 17920 "optional" : 1,
c2993fe5
DM
17921 "type" : "string",
17922 "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 17923 }
4d47f125
TL
17924 },
17925 "type" : "object"
44660702 17926 }
56122987 17927 },
4d47f125 17928 "POST" : {
e9cd3bd4 17929 "allowtoken" : 1,
4d47f125
TL
17930 "description" : "Set virtual machine options (asynchrounous API).",
17931 "method" : "POST",
17932 "name" : "update_vm_async",
56122987 17933 "parameters" : {
7aacca6f 17934 "additionalProperties" : 0,
56122987 17935 "properties" : {
44660702
DM
17936 "acpi" : {
17937 "default" : 1,
17938 "description" : "Enable/disable ACPI.",
7aacca6f 17939 "optional" : 1,
013dc89f
DM
17940 "type" : "boolean",
17941 "typetext" : "<boolean>"
7aacca6f 17942 },
4e7f60c2 17943 "affinity" : {
81a3384d 17944 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
17945 "format" : "pve-cpuset",
17946 "optional" : 1,
17947 "type" : "string",
17948 "typetext" : "<string>"
17949 },
44660702 17950 "agent" : {
9d2e98ed 17951 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
17952 "format" : {
17953 "enabled" : {
17954 "default" : 0,
17955 "default_key" : 1,
9d2e98ed
TL
17956 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
17957 "type" : "boolean"
17958 },
17959 "freeze-fs-on-backup" : {
17960 "default" : 1,
17961 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
17962 "optional" : 1,
4d47f125
TL
17963 "type" : "boolean"
17964 },
17965 "fstrim_cloned_disks" : {
17966 "default" : 0,
d2656385 17967 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
17968 "optional" : 1,
17969 "type" : "boolean"
5c1699e5
TL
17970 },
17971 "type" : {
17972 "default" : "virtio",
17973 "description" : "Select the agent type",
17974 "enum" : [
17975 "virtio",
17976 "isa"
17977 ],
17978 "optional" : 1,
17979 "type" : "string"
4d47f125
TL
17980 }
17981 },
7aacca6f 17982 "optional" : 1,
4d47f125 17983 "type" : "string",
9d2e98ed 17984 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 17985 },
e2d681b3
TL
17986 "arch" : {
17987 "description" : "Virtual processor architecture. Defaults to the host.",
17988 "enum" : [
17989 "x86_64",
17990 "aarch64"
17991 ],
17992 "optional" : 1,
17993 "type" : "string"
17994 },
44660702 17995 "args" : {
c2993fe5 17996 "description" : "Arbitrary arguments passed to kvm.",
7aacca6f 17997 "optional" : 1,
c2993fe5 17998 "type" : "string",
013dc89f 17999 "typetext" : "<string>",
159464a9 18000 "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 18001 },
1c532546
TL
18002 "audio0" : {
18003 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
18004 "format" : {
18005 "device" : {
18006 "description" : "Configure an audio device.",
18007 "enum" : [
18008 "ich9-intel-hda",
18009 "intel-hda",
18010 "AC97"
18011 ],
18012 "type" : "string"
18013 },
18014 "driver" : {
18015 "default" : "spice",
18016 "description" : "Driver backend for the audio device.",
18017 "enum" : [
d2656385
TL
18018 "spice",
18019 "none"
1c532546
TL
18020 ],
18021 "optional" : 1,
18022 "type" : "string"
18023 }
18024 },
18025 "optional" : 1,
18026 "type" : "string",
d2656385 18027 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 18028 },
44660702
DM
18029 "autostart" : {
18030 "default" : 0,
18031 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 18032 "optional" : 1,
013dc89f
DM
18033 "type" : "boolean",
18034 "typetext" : "<boolean>"
7aacca6f 18035 },
4d47f125
TL
18036 "background_delay" : {
18037 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
18038 "maximum" : 30,
18039 "minimum" : 1,
18040 "optional" : 1,
18041 "type" : "integer",
18042 "typetext" : "<integer> (1 - 30)"
18043 },
44660702 18044 "balloon" : {
9d2e98ed 18045 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
44660702
DM
18046 "minimum" : 0,
18047 "optional" : 1,
4bd7df8b 18048 "type" : "integer",
013dc89f 18049 "typetext" : "<integer> (0 - N)"
44660702
DM
18050 },
18051 "bios" : {
18052 "default" : "seabios",
18053 "description" : "Select BIOS implementation.",
7aacca6f 18054 "enum" : [
44660702
DM
18055 "seabios",
18056 "ovmf"
7aacca6f 18057 ],
56122987 18058 "optional" : 1,
7aacca6f
DM
18059 "type" : "string"
18060 },
44660702 18061 "boot" : {
5370fa8c 18062 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 18063 "format" : "pve-qm-boot",
7aacca6f 18064 "optional" : 1,
4772952b
TL
18065 "type" : "string",
18066 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 18067 },
44660702 18068 "bootdisk" : {
4772952b 18069 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
18070 "format" : "pve-qm-bootdisk",
18071 "optional" : 1,
18072 "pattern" : "(ide|sata|scsi|virtio)\\d+",
18073 "type" : "string"
18074 },
18075 "cdrom" : {
18076 "description" : "This is an alias for option -ide2",
de0983cb 18077 "format" : "pve-qm-ide",
56122987 18078 "optional" : 1,
7aacca6f 18079 "type" : "string",
013dc89f 18080 "typetext" : "<volume>"
44660702 18081 },
95895385
TL
18082 "cicustom" : {
18083 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
18084 "format" : "pve-qm-cicustom",
18085 "optional" : 1,
18086 "type" : "string",
5370fa8c 18087 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 18088 },
27a7acb2
DM
18089 "cipassword" : {
18090 "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.",
18091 "optional" : 1,
18092 "type" : "string",
18093 "typetext" : "<string>"
18094 },
18095 "citype" : {
18096 "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.",
18097 "enum" : [
18098 "configdrive2",
d2656385
TL
18099 "nocloud",
18100 "opennebula"
27a7acb2
DM
18101 ],
18102 "optional" : 1,
18103 "type" : "string"
18104 },
159464a9 18105 "ciupgrade" : {
c8eee6ff 18106 "default" : 1,
159464a9
TL
18107 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
18108 "optional" : 1,
18109 "type" : "boolean",
18110 "typetext" : "<boolean>"
18111 },
27a7acb2
DM
18112 "ciuser" : {
18113 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
18114 "optional" : 1,
18115 "type" : "string",
18116 "typetext" : "<string>"
18117 },
44660702
DM
18118 "cores" : {
18119 "default" : 1,
18120 "description" : "The number of cores per socket.",
18121 "minimum" : 1,
18122 "optional" : 1,
4bd7df8b 18123 "type" : "integer",
013dc89f 18124 "typetext" : "<integer> (1 - N)"
44660702
DM
18125 },
18126 "cpu" : {
18127 "description" : "Emulated CPU type.",
c5aa7e14 18128 "format" : "pve-vm-cpu-conf",
44660702 18129 "optional" : 1,
4bd7df8b 18130 "type" : "string",
04d22a9f 18131 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702
DM
18132 },
18133 "cpulimit" : {
18134 "default" : 0,
c2993fe5 18135 "description" : "Limit of CPU usage.",
44660702
DM
18136 "maximum" : 128,
18137 "minimum" : 0,
18138 "optional" : 1,
c2993fe5 18139 "type" : "number",
013dc89f 18140 "typetext" : "<number> (0 - 128)",
c2993fe5 18141 "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
18142 },
18143 "cpuunits" : {
5370fa8c
TL
18144 "default" : "cgroup v1: 1024, cgroup v2: 100",
18145 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 18146 "maximum" : 262144,
7af2edf9 18147 "minimum" : 1,
44660702 18148 "optional" : 1,
c2993fe5 18149 "type" : "integer",
7af2edf9 18150 "typetext" : "<integer> (1 - 262144)",
2489d6df 18151 "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
18152 },
18153 "delete" : {
18154 "description" : "A list of settings you want to delete.",
18155 "format" : "pve-configid-list",
18156 "optional" : 1,
013dc89f
DM
18157 "type" : "string",
18158 "typetext" : "<string>"
44660702
DM
18159 },
18160 "description" : {
8f4d9c87
TL
18161 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
18162 "maxLength" : 8192,
44660702 18163 "optional" : 1,
013dc89f
DM
18164 "type" : "string",
18165 "typetext" : "<string>"
44660702
DM
18166 },
18167 "digest" : {
18168 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
18169 "maxLength" : 40,
18170 "optional" : 1,
013dc89f
DM
18171 "type" : "string",
18172 "typetext" : "<string>"
44660702 18173 },
4d47f125 18174 "efidisk0" : {
9d2e98ed 18175 "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 18176 "format" : {
5370fa8c
TL
18177 "efitype" : {
18178 "default" : "2m",
bd92b745 18179 "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
18180 "enum" : [
18181 "2m",
18182 "4m"
18183 ],
18184 "optional" : 1,
18185 "type" : "string"
18186 },
4d47f125
TL
18187 "file" : {
18188 "default_key" : 1,
18189 "description" : "The drive's backing volume.",
18190 "format" : "pve-volume-id-or-qm-path",
18191 "format_description" : "volume",
18192 "type" : "string"
18193 },
18194 "format" : {
18195 "description" : "The drive's backing file's data format.",
18196 "enum" : [
18197 "raw",
18198 "cow",
18199 "qcow",
18200 "qed",
18201 "qcow2",
18202 "vmdk",
18203 "cloop"
18204 ],
18205 "optional" : 1,
18206 "type" : "string"
18207 },
7af2edf9
TL
18208 "import-from" : {
18209 "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!",
18210 "format" : "pve-volume-id-or-absolute-path",
18211 "format_description" : "source volume",
18212 "optional" : 1,
18213 "type" : "string"
18214 },
5370fa8c
TL
18215 "pre-enrolled-keys" : {
18216 "default" : 0,
18217 "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.",
18218 "optional" : 1,
18219 "type" : "boolean"
18220 },
4d47f125
TL
18221 "size" : {
18222 "description" : "Disk size. This is purely informational and has no effect.",
18223 "format" : "disk-size",
18224 "format_description" : "DiskSize",
18225 "optional" : 1,
18226 "type" : "string"
18227 },
18228 "volume" : {
18229 "alias" : "file"
18230 }
18231 },
18232 "optional" : 1,
18233 "type" : "string",
7af2edf9 18234 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 18235 },
44660702
DM
18236 "force" : {
18237 "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.",
18238 "optional" : 1,
18239 "requires" : "delete",
013dc89f
DM
18240 "type" : "boolean",
18241 "typetext" : "<boolean>"
44660702
DM
18242 },
18243 "freeze" : {
18244 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
18245 "optional" : 1,
013dc89f
DM
18246 "type" : "boolean",
18247 "typetext" : "<boolean>"
44660702 18248 },
5f26e15b
TL
18249 "hookscript" : {
18250 "description" : "Script that will be executed during various steps in the vms lifetime.",
18251 "format" : "pve-volume-id",
18252 "optional" : 1,
18253 "type" : "string",
18254 "typetext" : "<string>"
18255 },
44660702 18256 "hostpci[n]" : {
c2993fe5 18257 "description" : "Map host PCI devices into guest.",
44660702
DM
18258 "format" : "pve-qm-hostpci",
18259 "optional" : 1,
57b78691 18260 "type" : "string",
499c9b7f 18261 "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 18262 "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 18263 },
7aacca6f 18264 "hotplug" : {
7aacca6f 18265 "default" : "network,disk,usb",
4e7f60c2 18266 "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 18267 "format" : "pve-hotplug-features",
56122987 18268 "optional" : 1,
013dc89f
DM
18269 "type" : "string",
18270 "typetext" : "<string>"
56122987 18271 },
4bd7df8b
DM
18272 "hugepages" : {
18273 "description" : "Enable/disable hugepages memory.",
18274 "enum" : [
18275 "any",
18276 "2",
18277 "1024"
18278 ],
18279 "optional" : 1,
18280 "type" : "string"
18281 },
56122987 18282 "ide[n]" : {
7af2edf9 18283 "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 18284 "format" : {
44660702
DM
18285 "aio" : {
18286 "description" : "AIO type to use.",
18287 "enum" : [
18288 "native",
8f4d9c87
TL
18289 "threads",
18290 "io_uring"
44660702 18291 ],
56122987 18292 "optional" : 1,
44660702 18293 "type" : "string"
56122987 18294 },
44660702
DM
18295 "backup" : {
18296 "description" : "Whether the drive should be included when making backups.",
44660702
DM
18297 "optional" : 1,
18298 "type" : "boolean"
18299 },
18300 "bps" : {
de0983cb 18301 "description" : "Maximum r/w speed in bytes per second.",
44660702 18302 "format_description" : "bps",
56122987 18303 "optional" : 1,
44660702 18304 "type" : "integer"
56122987 18305 },
de0983cb
DM
18306 "bps_max_length" : {
18307 "description" : "Maximum length of I/O bursts in seconds.",
18308 "format_description" : "seconds",
18309 "minimum" : 1,
18310 "optional" : 1,
18311 "type" : "integer"
18312 },
44660702 18313 "bps_rd" : {
de0983cb 18314 "description" : "Maximum read speed in bytes per second.",
44660702 18315 "format_description" : "bps",
56122987 18316 "optional" : 1,
44660702 18317 "type" : "integer"
56122987 18318 },
de0983cb 18319 "bps_rd_length" : {
5d9c884c
DM
18320 "alias" : "bps_rd_max_length"
18321 },
18322 "bps_rd_max_length" : {
de0983cb
DM
18323 "description" : "Maximum length of read I/O bursts in seconds.",
18324 "format_description" : "seconds",
18325 "minimum" : 1,
18326 "optional" : 1,
18327 "type" : "integer"
18328 },
7aacca6f 18329 "bps_wr" : {
de0983cb 18330 "description" : "Maximum write speed in bytes per second.",
44660702
DM
18331 "format_description" : "bps",
18332 "optional" : 1,
18333 "type" : "integer"
7aacca6f 18334 },
de0983cb 18335 "bps_wr_length" : {
5d9c884c
DM
18336 "alias" : "bps_wr_max_length"
18337 },
18338 "bps_wr_max_length" : {
de0983cb
DM
18339 "description" : "Maximum length of write I/O bursts in seconds.",
18340 "format_description" : "seconds",
18341 "minimum" : 1,
18342 "optional" : 1,
18343 "type" : "integer"
18344 },
44660702
DM
18345 "cache" : {
18346 "description" : "The drive's cache mode",
18347 "enum" : [
18348 "none",
18349 "writethrough",
18350 "writeback",
18351 "unsafe",
18352 "directsync"
18353 ],
56122987 18354 "optional" : 1,
44660702
DM
18355 "type" : "string"
18356 },
18357 "cyls" : {
18358 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
18359 "optional" : 1,
18360 "type" : "integer"
18361 },
18362 "detect_zeroes" : {
18363 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
18364 "optional" : 1,
18365 "type" : "boolean"
56122987 18366 },
7aacca6f 18367 "discard" : {
7aacca6f 18368 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 18369 "enum" : [
7aacca6f
DM
18370 "ignore",
18371 "on"
56122987
DM
18372 ],
18373 "optional" : 1,
44660702 18374 "type" : "string"
7aacca6f 18375 },
44660702
DM
18376 "file" : {
18377 "default_key" : 1,
18378 "description" : "The drive's backing volume.",
18379 "format" : "pve-volume-id-or-qm-path",
18380 "format_description" : "volume",
18381 "type" : "string"
7aacca6f
DM
18382 },
18383 "format" : {
44660702 18384 "description" : "The drive's backing file's data format.",
7aacca6f
DM
18385 "enum" : [
18386 "raw",
18387 "cow",
18388 "qcow",
18389 "qed",
18390 "qcow2",
18391 "vmdk",
18392 "cloop"
18393 ],
7aacca6f 18394 "optional" : 1,
44660702 18395 "type" : "string"
56122987 18396 },
7aacca6f 18397 "heads" : {
44660702 18398 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 18399 "optional" : 1,
44660702 18400 "type" : "integer"
7aacca6f 18401 },
7af2edf9
TL
18402 "import-from" : {
18403 "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!",
18404 "format" : "pve-volume-id-or-absolute-path",
18405 "format_description" : "source volume",
18406 "optional" : 1,
18407 "type" : "string"
18408 },
44660702 18409 "iops" : {
de0983cb 18410 "description" : "Maximum r/w I/O in operations per second.",
44660702 18411 "format_description" : "iops",
7aacca6f 18412 "optional" : 1,
44660702 18413 "type" : "integer"
56122987 18414 },
44660702 18415 "iops_max" : {
de0983cb 18416 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 18417 "format_description" : "iops",
56122987 18418 "optional" : 1,
44660702 18419 "type" : "integer"
56122987 18420 },
de0983cb
DM
18421 "iops_max_length" : {
18422 "description" : "Maximum length of I/O bursts in seconds.",
18423 "format_description" : "seconds",
18424 "minimum" : 1,
18425 "optional" : 1,
18426 "type" : "integer"
18427 },
44660702 18428 "iops_rd" : {
de0983cb 18429 "description" : "Maximum read I/O in operations per second.",
44660702 18430 "format_description" : "iops",
56122987 18431 "optional" : 1,
44660702 18432 "type" : "integer"
7aacca6f 18433 },
de0983cb 18434 "iops_rd_length" : {
5d9c884c 18435 "alias" : "iops_rd_max_length"
de0983cb 18436 },
44660702 18437 "iops_rd_max" : {
de0983cb 18438 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 18439 "format_description" : "iops",
7aacca6f 18440 "optional" : 1,
44660702 18441 "type" : "integer"
7aacca6f 18442 },
5d9c884c
DM
18443 "iops_rd_max_length" : {
18444 "description" : "Maximum length of read I/O bursts in seconds.",
18445 "format_description" : "seconds",
18446 "minimum" : 1,
18447 "optional" : 1,
18448 "type" : "integer"
18449 },
44660702 18450 "iops_wr" : {
de0983cb 18451 "description" : "Maximum write I/O in operations per second.",
44660702 18452 "format_description" : "iops",
7aacca6f 18453 "optional" : 1,
44660702 18454 "type" : "integer"
56122987 18455 },
de0983cb 18456 "iops_wr_length" : {
5d9c884c 18457 "alias" : "iops_wr_max_length"
de0983cb 18458 },
44660702 18459 "iops_wr_max" : {
de0983cb 18460 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 18461 "format_description" : "iops",
7aacca6f 18462 "optional" : 1,
44660702 18463 "type" : "integer"
7aacca6f 18464 },
5d9c884c
DM
18465 "iops_wr_max_length" : {
18466 "description" : "Maximum length of write I/O bursts in seconds.",
18467 "format_description" : "seconds",
18468 "minimum" : 1,
18469 "optional" : 1,
18470 "type" : "integer"
18471 },
7aacca6f 18472 "mbps" : {
de0983cb 18473 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 18474 "format_description" : "mbps",
7aacca6f 18475 "optional" : 1,
44660702 18476 "type" : "number"
7aacca6f 18477 },
44660702 18478 "mbps_max" : {
de0983cb 18479 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 18480 "format_description" : "mbps",
7aacca6f 18481 "optional" : 1,
44660702 18482 "type" : "number"
7aacca6f 18483 },
44660702 18484 "mbps_rd" : {
de0983cb 18485 "description" : "Maximum read speed in megabytes per second.",
44660702 18486 "format_description" : "mbps",
7aacca6f 18487 "optional" : 1,
44660702 18488 "type" : "number"
7aacca6f 18489 },
44660702 18490 "mbps_rd_max" : {
de0983cb 18491 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
18492 "format_description" : "mbps",
18493 "optional" : 1,
18494 "type" : "number"
7aacca6f 18495 },
44660702 18496 "mbps_wr" : {
de0983cb 18497 "description" : "Maximum write speed in megabytes per second.",
44660702 18498 "format_description" : "mbps",
7aacca6f 18499 "optional" : 1,
44660702
DM
18500 "type" : "number"
18501 },
18502 "mbps_wr_max" : {
de0983cb 18503 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
18504 "format_description" : "mbps",
18505 "optional" : 1,
18506 "type" : "number"
18507 },
18508 "media" : {
18509 "default" : "disk",
18510 "description" : "The drive's media type.",
56122987 18511 "enum" : [
44660702
DM
18512 "cdrom",
18513 "disk"
56122987 18514 ],
44660702
DM
18515 "optional" : 1,
18516 "type" : "string"
56122987 18517 },
7aacca6f 18518 "model" : {
44660702 18519 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
56122987 18520 "format" : "urlencoded",
7aacca6f 18521 "format_description" : "model",
44660702 18522 "maxLength" : 120,
56122987 18523 "optional" : 1,
44660702 18524 "type" : "string"
56122987 18525 },
5d9c884c
DM
18526 "replicate" : {
18527 "default" : 1,
18528 "description" : "Whether the drive should considered for replication jobs.",
18529 "optional" : 1,
18530 "type" : "boolean"
18531 },
44660702
DM
18532 "rerror" : {
18533 "description" : "Read error action.",
18534 "enum" : [
18535 "ignore",
18536 "report",
18537 "stop"
18538 ],
56122987 18539 "optional" : 1,
44660702 18540 "type" : "string"
56122987 18541 },
44660702
DM
18542 "secs" : {
18543 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
18544 "optional" : 1,
18545 "type" : "integer"
56122987 18546 },
44660702
DM
18547 "serial" : {
18548 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18549 "format" : "urlencoded",
18550 "format_description" : "serial",
18551 "maxLength" : 60,
56122987 18552 "optional" : 1,
44660702 18553 "type" : "string"
56122987 18554 },
27a7acb2
DM
18555 "shared" : {
18556 "default" : 0,
18557 "description" : "Mark this locally-managed volume as available on all nodes",
18558 "optional" : 1,
18559 "type" : "boolean",
18560 "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!"
18561 },
44660702
DM
18562 "size" : {
18563 "description" : "Disk size. This is purely informational and has no effect.",
18564 "format" : "disk-size",
f004f5b9 18565 "format_description" : "DiskSize",
56122987 18566 "optional" : 1,
44660702 18567 "type" : "string"
56122987 18568 },
44660702 18569 "snapshot" : {
27a7acb2 18570 "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 18571 "optional" : 1,
44660702 18572 "type" : "boolean"
56122987 18573 },
25203dc1
NC
18574 "ssd" : {
18575 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18576 "optional" : 1,
18577 "type" : "boolean"
18578 },
44660702
DM
18579 "trans" : {
18580 "description" : "Force disk geometry bios translation mode.",
18581 "enum" : [
18582 "none",
18583 "lba",
18584 "auto"
18585 ],
56122987 18586 "optional" : 1,
44660702
DM
18587 "type" : "string"
18588 },
18589 "volume" : {
18590 "alias" : "file"
56122987 18591 },
7aacca6f 18592 "werror" : {
44660702 18593 "description" : "Write error action.",
7aacca6f
DM
18594 "enum" : [
18595 "enospc",
18596 "ignore",
18597 "report",
18598 "stop"
18599 ],
56122987 18600 "optional" : 1,
44660702 18601 "type" : "string"
95895385
TL
18602 },
18603 "wwn" : {
18604 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
18605 "format_description" : "wwn",
18606 "optional" : 1,
18607 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
18608 "type" : "string"
7aacca6f 18609 }
44660702
DM
18610 },
18611 "optional" : 1,
4bd7df8b 18612 "type" : "string",
7af2edf9 18613 "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
18614 },
18615 "ipconfig[n]" : {
d2656385 18616 "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
18617 "format" : "pve-qm-ipconfig",
18618 "optional" : 1,
18619 "type" : "string",
18620 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
7aacca6f 18621 },
95895385
TL
18622 "ivshmem" : {
18623 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
18624 "format" : {
18625 "name" : {
18626 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
18627 "format_description" : "string",
18628 "optional" : 1,
18629 "pattern" : "[a-zA-Z0-9\\-]+",
18630 "type" : "string"
18631 },
18632 "size" : {
18633 "description" : "The size of the file in MB.",
18634 "minimum" : 1,
18635 "type" : "integer"
18636 }
18637 },
18638 "optional" : 1,
18639 "type" : "string",
18640 "typetext" : "size=<integer> [,name=<string>]"
18641 },
4772952b
TL
18642 "keephugepages" : {
18643 "default" : 0,
18644 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
18645 "optional" : 1,
18646 "type" : "boolean",
18647 "typetext" : "<boolean>"
18648 },
44660702 18649 "keyboard" : {
35a75dd3 18650 "default" : null,
7af2edf9 18651 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
18652 "enum" : [
18653 "de",
18654 "de-ch",
18655 "da",
18656 "en-gb",
18657 "en-us",
18658 "es",
18659 "fi",
18660 "fr",
18661 "fr-be",
18662 "fr-ca",
18663 "fr-ch",
18664 "hu",
18665 "is",
18666 "it",
18667 "ja",
18668 "lt",
18669 "mk",
18670 "nl",
18671 "no",
18672 "pl",
18673 "pt",
18674 "pt-br",
18675 "sv",
18676 "sl",
18677 "tr"
18678 ],
7aacca6f 18679 "optional" : 1,
44660702 18680 "type" : "string"
7aacca6f 18681 },
44660702 18682 "kvm" : {
7aacca6f 18683 "default" : 1,
44660702 18684 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 18685 "optional" : 1,
013dc89f
DM
18686 "type" : "boolean",
18687 "typetext" : "<boolean>"
7aacca6f 18688 },
44660702 18689 "localtime" : {
5370fa8c 18690 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
7aacca6f 18691 "optional" : 1,
013dc89f
DM
18692 "type" : "boolean",
18693 "typetext" : "<boolean>"
7aacca6f 18694 },
44660702
DM
18695 "lock" : {
18696 "description" : "Lock/unlock the VM.",
18697 "enum" : [
44660702 18698 "backup",
5f26e15b
TL
18699 "clone",
18700 "create",
18701 "migrate",
18702 "rollback",
44660702 18703 "snapshot",
95895385
TL
18704 "snapshot-delete",
18705 "suspending",
18706 "suspended"
44660702 18707 ],
7aacca6f 18708 "optional" : 1,
44660702 18709 "type" : "string"
7aacca6f 18710 },
44660702 18711 "machine" : {
9d2e98ed 18712 "description" : "Specifies the QEMU machine type.",
44660702 18713 "maxLength" : 40,
7aacca6f 18714 "optional" : 1,
5c1699e5 18715 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702 18716 "type" : "string"
7aacca6f 18717 },
44660702 18718 "memory" : {
bd92b745
TL
18719 "description" : "Memory properties.",
18720 "format" : {
18721 "current" : {
18722 "default" : 512,
18723 "default_key" : 1,
18724 "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
18725 "minimum" : 16,
18726 "type" : "integer"
18727 }
18728 },
7aacca6f 18729 "optional" : 1,
bd92b745
TL
18730 "type" : "string",
18731 "typetext" : "[current=]<integer>"
7aacca6f 18732 },
44660702
DM
18733 "migrate_downtime" : {
18734 "default" : 0.1,
18735 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
18736 "minimum" : 0,
7aacca6f 18737 "optional" : 1,
4bd7df8b 18738 "type" : "number",
013dc89f 18739 "typetext" : "<number> (0 - N)"
7aacca6f 18740 },
44660702 18741 "migrate_speed" : {
7aacca6f 18742 "default" : 0,
44660702
DM
18743 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
18744 "minimum" : 0,
18745 "optional" : 1,
4bd7df8b 18746 "type" : "integer",
013dc89f 18747 "typetext" : "<integer> (0 - N)"
7aacca6f 18748 },
44660702
DM
18749 "name" : {
18750 "description" : "Set a name for the VM. Only used on the configuration web interface.",
18751 "format" : "dns-name",
7aacca6f 18752 "optional" : 1,
013dc89f
DM
18753 "type" : "string",
18754 "typetext" : "<string>"
7aacca6f 18755 },
27a7acb2 18756 "nameserver" : {
de786b48 18757 "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
18758 "format" : "address-list",
18759 "optional" : 1,
18760 "type" : "string",
18761 "typetext" : "<string>"
18762 },
44660702 18763 "net[n]" : {
c2993fe5 18764 "description" : "Specify network devices.",
f004f5b9
DM
18765 "format" : {
18766 "bridge" : {
c2993fe5 18767 "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 18768 "format" : "pve-bridge-id",
f004f5b9
DM
18769 "format_description" : "bridge",
18770 "optional" : 1,
18771 "type" : "string"
18772 },
18773 "e1000" : {
18774 "alias" : "macaddr",
18775 "keyAlias" : "model"
18776 },
18777 "e1000-82540em" : {
18778 "alias" : "macaddr",
18779 "keyAlias" : "model"
18780 },
18781 "e1000-82544gc" : {
18782 "alias" : "macaddr",
18783 "keyAlias" : "model"
18784 },
18785 "e1000-82545em" : {
18786 "alias" : "macaddr",
18787 "keyAlias" : "model"
18788 },
5370fa8c
TL
18789 "e1000e" : {
18790 "alias" : "macaddr",
18791 "keyAlias" : "model"
18792 },
f004f5b9
DM
18793 "firewall" : {
18794 "description" : "Whether this interface should be protected by the firewall.",
18795 "optional" : 1,
18796 "type" : "boolean"
18797 },
18798 "i82551" : {
18799 "alias" : "macaddr",
18800 "keyAlias" : "model"
18801 },
18802 "i82557b" : {
18803 "alias" : "macaddr",
18804 "keyAlias" : "model"
18805 },
18806 "i82559er" : {
18807 "alias" : "macaddr",
18808 "keyAlias" : "model"
18809 },
18810 "link_down" : {
c2993fe5 18811 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
18812 "optional" : 1,
18813 "type" : "boolean"
18814 },
18815 "macaddr" : {
c2993fe5 18816 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 18817 "format" : "mac-addr",
f004f5b9 18818 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 18819 "optional" : 1,
95895385
TL
18820 "type" : "string",
18821 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
18822 },
18823 "model" : {
18824 "default_key" : 1,
c2993fe5 18825 "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 18826 "enum" : [
f004f5b9 18827 "e1000",
5370fa8c
TL
18828 "e1000-82540em",
18829 "e1000-82544gc",
18830 "e1000-82545em",
18831 "e1000e",
f004f5b9
DM
18832 "i82551",
18833 "i82557b",
18834 "i82559er",
5370fa8c
TL
18835 "ne2k_isa",
18836 "ne2k_pci",
18837 "pcnet",
18838 "rtl8139",
18839 "virtio",
18840 "vmxnet3"
f004f5b9 18841 ],
f004f5b9
DM
18842 "type" : "string"
18843 },
ac70d7d1
TL
18844 "mtu" : {
18845 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
18846 "maximum" : 65520,
18847 "minimum" : 1,
18848 "optional" : 1,
18849 "type" : "integer"
18850 },
f004f5b9
DM
18851 "ne2k_isa" : {
18852 "alias" : "macaddr",
18853 "keyAlias" : "model"
18854 },
18855 "ne2k_pci" : {
18856 "alias" : "macaddr",
18857 "keyAlias" : "model"
18858 },
18859 "pcnet" : {
18860 "alias" : "macaddr",
18861 "keyAlias" : "model"
18862 },
18863 "queues" : {
18864 "description" : "Number of packet queues to be used on the device.",
81a3384d 18865 "maximum" : 64,
f004f5b9
DM
18866 "minimum" : 0,
18867 "optional" : 1,
18868 "type" : "integer"
18869 },
18870 "rate" : {
c2993fe5 18871 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
18872 "minimum" : 0,
18873 "optional" : 1,
18874 "type" : "number"
18875 },
18876 "rtl8139" : {
18877 "alias" : "macaddr",
18878 "keyAlias" : "model"
18879 },
18880 "tag" : {
18881 "description" : "VLAN tag to apply to packets on this interface.",
18882 "maximum" : 4094,
c2993fe5 18883 "minimum" : 1,
f004f5b9
DM
18884 "optional" : 1,
18885 "type" : "integer"
18886 },
18887 "trunks" : {
18888 "description" : "VLAN trunks to pass through this interface.",
18889 "format_description" : "vlanid[;vlanid...]",
18890 "optional" : 1,
18891 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
18892 "type" : "string"
18893 },
18894 "virtio" : {
18895 "alias" : "macaddr",
18896 "keyAlias" : "model"
18897 },
18898 "vmxnet3" : {
18899 "alias" : "macaddr",
18900 "keyAlias" : "model"
18901 }
18902 },
7aacca6f 18903 "optional" : 1,
4bd7df8b 18904 "type" : "string",
ac70d7d1 18905 "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 18906 },
44660702
DM
18907 "node" : {
18908 "description" : "The cluster node name.",
18909 "format" : "pve-node",
013dc89f
DM
18910 "type" : "string",
18911 "typetext" : "<string>"
44660702
DM
18912 },
18913 "numa" : {
18914 "default" : 0,
18915 "description" : "Enable/disable NUMA.",
7aacca6f 18916 "optional" : 1,
013dc89f
DM
18917 "type" : "boolean",
18918 "typetext" : "<boolean>"
7aacca6f 18919 },
44660702 18920 "numa[n]" : {
c2993fe5 18921 "description" : "NUMA topology.",
44660702
DM
18922 "format" : {
18923 "cpus" : {
c2993fe5 18924 "description" : "CPUs accessing this NUMA node.",
44660702
DM
18925 "format_description" : "id[-id];...",
18926 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
18927 "type" : "string"
18928 },
18929 "hostnodes" : {
c2993fe5 18930 "description" : "Host NUMA nodes to use.",
44660702
DM
18931 "format_description" : "id[-id];...",
18932 "optional" : 1,
18933 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
18934 "type" : "string"
18935 },
18936 "memory" : {
c2993fe5 18937 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
18938 "optional" : 1,
18939 "type" : "number"
18940 },
18941 "policy" : {
c2993fe5 18942 "description" : "NUMA allocation policy.",
44660702
DM
18943 "enum" : [
18944 "preferred",
18945 "bind",
18946 "interleave"
18947 ],
44660702
DM
18948 "optional" : 1,
18949 "type" : "string"
18950 }
18951 },
7aacca6f 18952 "optional" : 1,
4bd7df8b
DM
18953 "type" : "string",
18954 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
7aacca6f 18955 },
44660702
DM
18956 "onboot" : {
18957 "default" : 0,
18958 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 18959 "optional" : 1,
013dc89f
DM
18960 "type" : "boolean",
18961 "typetext" : "<boolean>"
7aacca6f 18962 },
44660702 18963 "ostype" : {
c2993fe5 18964 "description" : "Specify guest operating system.",
44660702
DM
18965 "enum" : [
18966 "other",
18967 "wxp",
18968 "w2k",
18969 "w2k3",
18970 "w2k8",
18971 "wvista",
18972 "win7",
18973 "win8",
32d876b5 18974 "win10",
5370fa8c 18975 "win11",
44660702
DM
18976 "l24",
18977 "l26",
18978 "solaris"
18979 ],
7aacca6f 18980 "optional" : 1,
c2993fe5 18981 "type" : "string",
9d2e98ed 18982 "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 18983 },
44660702 18984 "parallel[n]" : {
c2993fe5 18985 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 18986 "optional" : 1,
44660702 18987 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 18988 "type" : "string",
4772952b 18989 "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 18990 },
44660702
DM
18991 "protection" : {
18992 "default" : 0,
c2993fe5 18993 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 18994 "optional" : 1,
013dc89f
DM
18995 "type" : "boolean",
18996 "typetext" : "<boolean>"
7aacca6f 18997 },
44660702
DM
18998 "reboot" : {
18999 "default" : 1,
19000 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 19001 "optional" : 1,
013dc89f
DM
19002 "type" : "boolean",
19003 "typetext" : "<boolean>"
7aacca6f 19004 },
44660702
DM
19005 "revert" : {
19006 "description" : "Revert a pending change.",
19007 "format" : "pve-configid-list",
7aacca6f 19008 "optional" : 1,
013dc89f
DM
19009 "type" : "string",
19010 "typetext" : "<string>"
7aacca6f 19011 },
c5aa7e14
TL
19012 "rng0" : {
19013 "description" : "Configure a VirtIO-based Random Number Generator.",
19014 "format" : {
19015 "max_bytes" : {
19016 "default" : 1024,
5370fa8c 19017 "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
19018 "optional" : 1,
19019 "type" : "integer"
19020 },
19021 "period" : {
19022 "default" : 1000,
19023 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
19024 "optional" : 1,
19025 "type" : "integer"
19026 },
19027 "source" : {
19028 "default_key" : 1,
5370fa8c 19029 "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
19030 "enum" : [
19031 "/dev/urandom",
19032 "/dev/random",
19033 "/dev/hwrng"
19034 ],
19035 "type" : "string"
19036 }
19037 },
19038 "optional" : 1,
19039 "type" : "string",
19040 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
19041 },
44660702 19042 "sata[n]" : {
7af2edf9 19043 "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 19044 "format" : {
44660702
DM
19045 "aio" : {
19046 "description" : "AIO type to use.",
19047 "enum" : [
19048 "native",
8f4d9c87
TL
19049 "threads",
19050 "io_uring"
44660702 19051 ],
44660702
DM
19052 "optional" : 1,
19053 "type" : "string"
19054 },
19055 "backup" : {
19056 "description" : "Whether the drive should be included when making backups.",
44660702
DM
19057 "optional" : 1,
19058 "type" : "boolean"
19059 },
19060 "bps" : {
de0983cb 19061 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 19062 "format_description" : "bps",
7aacca6f
DM
19063 "optional" : 1,
19064 "type" : "integer"
56122987 19065 },
de0983cb
DM
19066 "bps_max_length" : {
19067 "description" : "Maximum length of I/O bursts in seconds.",
19068 "format_description" : "seconds",
19069 "minimum" : 1,
19070 "optional" : 1,
19071 "type" : "integer"
19072 },
44660702 19073 "bps_rd" : {
de0983cb 19074 "description" : "Maximum read speed in bytes per second.",
44660702 19075 "format_description" : "bps",
7aacca6f 19076 "optional" : 1,
44660702 19077 "type" : "integer"
7aacca6f 19078 },
de0983cb 19079 "bps_rd_length" : {
5d9c884c
DM
19080 "alias" : "bps_rd_max_length"
19081 },
19082 "bps_rd_max_length" : {
de0983cb
DM
19083 "description" : "Maximum length of read I/O bursts in seconds.",
19084 "format_description" : "seconds",
19085 "minimum" : 1,
19086 "optional" : 1,
19087 "type" : "integer"
19088 },
44660702 19089 "bps_wr" : {
de0983cb 19090 "description" : "Maximum write speed in bytes per second.",
44660702 19091 "format_description" : "bps",
7aacca6f 19092 "optional" : 1,
44660702 19093 "type" : "integer"
7aacca6f 19094 },
de0983cb 19095 "bps_wr_length" : {
5d9c884c
DM
19096 "alias" : "bps_wr_max_length"
19097 },
19098 "bps_wr_max_length" : {
de0983cb
DM
19099 "description" : "Maximum length of write I/O bursts in seconds.",
19100 "format_description" : "seconds",
19101 "minimum" : 1,
19102 "optional" : 1,
19103 "type" : "integer"
19104 },
44660702
DM
19105 "cache" : {
19106 "description" : "The drive's cache mode",
19107 "enum" : [
19108 "none",
19109 "writethrough",
19110 "writeback",
19111 "unsafe",
19112 "directsync"
19113 ],
7aacca6f 19114 "optional" : 1,
44660702 19115 "type" : "string"
7aacca6f 19116 },
44660702
DM
19117 "cyls" : {
19118 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 19119 "optional" : 1,
44660702 19120 "type" : "integer"
7aacca6f 19121 },
44660702
DM
19122 "detect_zeroes" : {
19123 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
7aacca6f 19124 "optional" : 1,
44660702 19125 "type" : "boolean"
7aacca6f 19126 },
44660702
DM
19127 "discard" : {
19128 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
19129 "enum" : [
19130 "ignore",
19131 "on"
19132 ],
7aacca6f 19133 "optional" : 1,
44660702
DM
19134 "type" : "string"
19135 },
19136 "file" : {
19137 "default_key" : 1,
19138 "description" : "The drive's backing volume.",
19139 "format" : "pve-volume-id-or-qm-path",
19140 "format_description" : "volume",
19141 "type" : "string"
7aacca6f
DM
19142 },
19143 "format" : {
7aacca6f 19144 "description" : "The drive's backing file's data format.",
56122987
DM
19145 "enum" : [
19146 "raw",
19147 "cow",
19148 "qcow",
19149 "qed",
19150 "qcow2",
19151 "vmdk",
19152 "cloop"
19153 ],
19154 "optional" : 1,
7aacca6f 19155 "type" : "string"
56122987 19156 },
7aacca6f 19157 "heads" : {
7aacca6f 19158 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
19159 "optional" : 1,
19160 "type" : "integer"
56122987 19161 },
7af2edf9
TL
19162 "import-from" : {
19163 "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!",
19164 "format" : "pve-volume-id-or-absolute-path",
19165 "format_description" : "source volume",
19166 "optional" : 1,
19167 "type" : "string"
19168 },
44660702 19169 "iops" : {
de0983cb 19170 "description" : "Maximum r/w I/O in operations per second.",
44660702 19171 "format_description" : "iops",
56122987 19172 "optional" : 1,
44660702 19173 "type" : "integer"
7aacca6f 19174 },
44660702 19175 "iops_max" : {
de0983cb 19176 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 19177 "format_description" : "iops",
7aacca6f 19178 "optional" : 1,
44660702 19179 "type" : "integer"
56122987 19180 },
de0983cb
DM
19181 "iops_max_length" : {
19182 "description" : "Maximum length of I/O bursts in seconds.",
19183 "format_description" : "seconds",
19184 "minimum" : 1,
19185 "optional" : 1,
19186 "type" : "integer"
19187 },
44660702 19188 "iops_rd" : {
de0983cb 19189 "description" : "Maximum read I/O in operations per second.",
44660702 19190 "format_description" : "iops",
56122987 19191 "optional" : 1,
44660702 19192 "type" : "integer"
7aacca6f 19193 },
de0983cb 19194 "iops_rd_length" : {
5d9c884c 19195 "alias" : "iops_rd_max_length"
de0983cb 19196 },
44660702 19197 "iops_rd_max" : {
de0983cb 19198 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 19199 "format_description" : "iops",
56122987 19200 "optional" : 1,
44660702 19201 "type" : "integer"
56122987 19202 },
5d9c884c
DM
19203 "iops_rd_max_length" : {
19204 "description" : "Maximum length of read I/O bursts in seconds.",
19205 "format_description" : "seconds",
19206 "minimum" : 1,
19207 "optional" : 1,
19208 "type" : "integer"
19209 },
44660702 19210 "iops_wr" : {
de0983cb 19211 "description" : "Maximum write I/O in operations per second.",
44660702
DM
19212 "format_description" : "iops",
19213 "optional" : 1,
19214 "type" : "integer"
56122987 19215 },
de0983cb 19216 "iops_wr_length" : {
5d9c884c 19217 "alias" : "iops_wr_max_length"
de0983cb 19218 },
44660702 19219 "iops_wr_max" : {
de0983cb 19220 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
19221 "format_description" : "iops",
19222 "optional" : 1,
19223 "type" : "integer"
19224 },
5d9c884c
DM
19225 "iops_wr_max_length" : {
19226 "description" : "Maximum length of write I/O bursts in seconds.",
19227 "format_description" : "seconds",
19228 "minimum" : 1,
19229 "optional" : 1,
19230 "type" : "integer"
19231 },
44660702 19232 "mbps" : {
de0983cb 19233 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
19234 "format_description" : "mbps",
19235 "optional" : 1,
19236 "type" : "number"
19237 },
19238 "mbps_max" : {
de0983cb 19239 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
19240 "format_description" : "mbps",
19241 "optional" : 1,
19242 "type" : "number"
19243 },
19244 "mbps_rd" : {
de0983cb 19245 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
19246 "format_description" : "mbps",
19247 "optional" : 1,
19248 "type" : "number"
19249 },
19250 "mbps_rd_max" : {
de0983cb 19251 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
19252 "format_description" : "mbps",
19253 "optional" : 1,
19254 "type" : "number"
19255 },
19256 "mbps_wr" : {
de0983cb 19257 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
19258 "format_description" : "mbps",
19259 "optional" : 1,
19260 "type" : "number"
19261 },
19262 "mbps_wr_max" : {
de0983cb 19263 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
19264 "format_description" : "mbps",
19265 "optional" : 1,
19266 "type" : "number"
19267 },
19268 "media" : {
19269 "default" : "disk",
19270 "description" : "The drive's media type.",
19271 "enum" : [
19272 "cdrom",
19273 "disk"
19274 ],
56122987 19275 "optional" : 1,
44660702
DM
19276 "type" : "string"
19277 },
5d9c884c
DM
19278 "replicate" : {
19279 "default" : 1,
19280 "description" : "Whether the drive should considered for replication jobs.",
19281 "optional" : 1,
19282 "type" : "boolean"
19283 },
44660702 19284 "rerror" : {
7aacca6f
DM
19285 "description" : "Read error action.",
19286 "enum" : [
19287 "ignore",
19288 "report",
19289 "stop"
44660702 19290 ],
56122987 19291 "optional" : 1,
44660702 19292 "type" : "string"
56122987 19293 },
7aacca6f 19294 "secs" : {
44660702 19295 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 19296 "optional" : 1,
44660702 19297 "type" : "integer"
56122987 19298 },
44660702
DM
19299 "serial" : {
19300 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
19301 "format" : "urlencoded",
19302 "format_description" : "serial",
19303 "maxLength" : 60,
56122987 19304 "optional" : 1,
44660702 19305 "type" : "string"
56122987 19306 },
27a7acb2
DM
19307 "shared" : {
19308 "default" : 0,
19309 "description" : "Mark this locally-managed volume as available on all nodes",
19310 "optional" : 1,
19311 "type" : "boolean",
19312 "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!"
19313 },
44660702
DM
19314 "size" : {
19315 "description" : "Disk size. This is purely informational and has no effect.",
19316 "format" : "disk-size",
f004f5b9 19317 "format_description" : "DiskSize",
56122987 19318 "optional" : 1,
44660702 19319 "type" : "string"
56122987
DM
19320 },
19321 "snapshot" : {
27a7acb2 19322 "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 19323 "optional" : 1,
44660702 19324 "type" : "boolean"
56122987 19325 },
25203dc1
NC
19326 "ssd" : {
19327 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
19328 "optional" : 1,
19329 "type" : "boolean"
19330 },
56122987 19331 "trans" : {
7aacca6f 19332 "description" : "Force disk geometry bios translation mode.",
56122987
DM
19333 "enum" : [
19334 "none",
19335 "lba",
19336 "auto"
19337 ],
19338 "optional" : 1,
44660702 19339 "type" : "string"
56122987 19340 },
44660702
DM
19341 "volume" : {
19342 "alias" : "file"
56122987 19343 },
7aacca6f 19344 "werror" : {
44660702 19345 "description" : "Write error action.",
56122987 19346 "enum" : [
7aacca6f 19347 "enospc",
56122987 19348 "ignore",
7aacca6f
DM
19349 "report",
19350 "stop"
19351 ],
7aacca6f 19352 "optional" : 1,
44660702 19353 "type" : "string"
95895385
TL
19354 },
19355 "wwn" : {
19356 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
19357 "format_description" : "wwn",
19358 "optional" : 1,
19359 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
19360 "type" : "string"
44660702
DM
19361 }
19362 },
19363 "optional" : 1,
4bd7df8b 19364 "type" : "string",
7af2edf9 19365 "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
19366 },
19367 "scsi[n]" : {
7af2edf9 19368 "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
19369 "format" : {
19370 "aio" : {
7aacca6f 19371 "description" : "AIO type to use.",
56122987
DM
19372 "enum" : [
19373 "native",
8f4d9c87
TL
19374 "threads",
19375 "io_uring"
44660702 19376 ],
56122987 19377 "optional" : 1,
44660702 19378 "type" : "string"
56122987 19379 },
7aacca6f 19380 "backup" : {
7aacca6f 19381 "description" : "Whether the drive should be included when making backups.",
7aacca6f 19382 "optional" : 1,
44660702 19383 "type" : "boolean"
56122987 19384 },
44660702 19385 "bps" : {
de0983cb 19386 "description" : "Maximum r/w speed in bytes per second.",
44660702 19387 "format_description" : "bps",
7aacca6f 19388 "optional" : 1,
44660702 19389 "type" : "integer"
7aacca6f 19390 },
de0983cb
DM
19391 "bps_max_length" : {
19392 "description" : "Maximum length of I/O bursts in seconds.",
19393 "format_description" : "seconds",
19394 "minimum" : 1,
19395 "optional" : 1,
19396 "type" : "integer"
19397 },
44660702 19398 "bps_rd" : {
de0983cb 19399 "description" : "Maximum read speed in bytes per second.",
44660702 19400 "format_description" : "bps",
56122987 19401 "optional" : 1,
44660702 19402 "type" : "integer"
56122987 19403 },
de0983cb 19404 "bps_rd_length" : {
5d9c884c
DM
19405 "alias" : "bps_rd_max_length"
19406 },
19407 "bps_rd_max_length" : {
de0983cb
DM
19408 "description" : "Maximum length of read I/O bursts in seconds.",
19409 "format_description" : "seconds",
19410 "minimum" : 1,
19411 "optional" : 1,
19412 "type" : "integer"
19413 },
44660702 19414 "bps_wr" : {
de0983cb 19415 "description" : "Maximum write speed in bytes per second.",
44660702 19416 "format_description" : "bps",
56122987 19417 "optional" : 1,
44660702 19418 "type" : "integer"
56122987 19419 },
de0983cb 19420 "bps_wr_length" : {
5d9c884c
DM
19421 "alias" : "bps_wr_max_length"
19422 },
19423 "bps_wr_max_length" : {
de0983cb
DM
19424 "description" : "Maximum length of write I/O bursts in seconds.",
19425 "format_description" : "seconds",
19426 "minimum" : 1,
19427 "optional" : 1,
19428 "type" : "integer"
19429 },
44660702
DM
19430 "cache" : {
19431 "description" : "The drive's cache mode",
19432 "enum" : [
19433 "none",
19434 "writethrough",
19435 "writeback",
19436 "unsafe",
19437 "directsync"
19438 ],
56122987 19439 "optional" : 1,
44660702
DM
19440 "type" : "string"
19441 },
19442 "cyls" : {
19443 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
19444 "optional" : 1,
19445 "type" : "integer"
19446 },
19447 "detect_zeroes" : {
19448 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
19449 "optional" : 1,
19450 "type" : "boolean"
19451 },
19452 "discard" : {
19453 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
19454 "enum" : [
19455 "ignore",
19456 "on"
19457 ],
44660702
DM
19458 "optional" : 1,
19459 "type" : "string"
19460 },
19461 "file" : {
19462 "default_key" : 1,
19463 "description" : "The drive's backing volume.",
19464 "format" : "pve-volume-id-or-qm-path",
19465 "format_description" : "volume",
19466 "type" : "string"
56122987 19467 },
7aacca6f 19468 "format" : {
44660702 19469 "description" : "The drive's backing file's data format.",
7aacca6f
DM
19470 "enum" : [
19471 "raw",
19472 "cow",
19473 "qcow",
19474 "qed",
19475 "qcow2",
19476 "vmdk",
19477 "cloop"
19478 ],
56122987 19479 "optional" : 1,
44660702 19480 "type" : "string"
56122987 19481 },
44660702
DM
19482 "heads" : {
19483 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 19484 "optional" : 1,
44660702 19485 "type" : "integer"
56122987 19486 },
7af2edf9
TL
19487 "import-from" : {
19488 "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!",
19489 "format" : "pve-volume-id-or-absolute-path",
19490 "format_description" : "source volume",
19491 "optional" : 1,
19492 "type" : "string"
19493 },
44660702 19494 "iops" : {
de0983cb 19495 "description" : "Maximum r/w I/O in operations per second.",
44660702 19496 "format_description" : "iops",
7aacca6f 19497 "optional" : 1,
44660702 19498 "type" : "integer"
56122987 19499 },
44660702 19500 "iops_max" : {
de0983cb 19501 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
7aacca6f 19502 "format_description" : "iops",
7aacca6f 19503 "optional" : 1,
44660702 19504 "type" : "integer"
56122987 19505 },
de0983cb
DM
19506 "iops_max_length" : {
19507 "description" : "Maximum length of I/O bursts in seconds.",
19508 "format_description" : "seconds",
19509 "minimum" : 1,
19510 "optional" : 1,
19511 "type" : "integer"
19512 },
44660702 19513 "iops_rd" : {
de0983cb 19514 "description" : "Maximum read I/O in operations per second.",
44660702 19515 "format_description" : "iops",
56122987 19516 "optional" : 1,
44660702 19517 "type" : "integer"
56122987 19518 },
de0983cb 19519 "iops_rd_length" : {
5d9c884c 19520 "alias" : "iops_rd_max_length"
de0983cb 19521 },
44660702 19522 "iops_rd_max" : {
de0983cb 19523 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 19524 "format_description" : "iops",
56122987 19525 "optional" : 1,
44660702 19526 "type" : "integer"
56122987 19527 },
5d9c884c
DM
19528 "iops_rd_max_length" : {
19529 "description" : "Maximum length of read I/O bursts in seconds.",
19530 "format_description" : "seconds",
19531 "minimum" : 1,
19532 "optional" : 1,
19533 "type" : "integer"
19534 },
44660702 19535 "iops_wr" : {
de0983cb 19536 "description" : "Maximum write I/O in operations per second.",
44660702 19537 "format_description" : "iops",
56122987 19538 "optional" : 1,
44660702 19539 "type" : "integer"
56122987 19540 },
de0983cb 19541 "iops_wr_length" : {
5d9c884c 19542 "alias" : "iops_wr_max_length"
de0983cb 19543 },
44660702 19544 "iops_wr_max" : {
de0983cb 19545 "description" : "Maximum unthrottled write I/O pool in operations per second.",
7aacca6f 19546 "format_description" : "iops",
44660702
DM
19547 "optional" : 1,
19548 "type" : "integer"
7aacca6f 19549 },
5d9c884c
DM
19550 "iops_wr_max_length" : {
19551 "description" : "Maximum length of write I/O bursts in seconds.",
19552 "format_description" : "seconds",
19553 "minimum" : 1,
19554 "optional" : 1,
19555 "type" : "integer"
19556 },
7aacca6f 19557 "iothread" : {
44660702 19558 "description" : "Whether to use iothreads for this drive",
56122987 19559 "optional" : 1,
44660702 19560 "type" : "boolean"
56122987 19561 },
44660702 19562 "mbps" : {
de0983cb 19563 "description" : "Maximum r/w speed in megabytes per second.",
44660702 19564 "format_description" : "mbps",
56122987 19565 "optional" : 1,
44660702 19566 "type" : "number"
56122987 19567 },
44660702 19568 "mbps_max" : {
de0983cb 19569 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 19570 "format_description" : "mbps",
56122987 19571 "optional" : 1,
44660702 19572 "type" : "number"
56122987 19573 },
44660702 19574 "mbps_rd" : {
de0983cb 19575 "description" : "Maximum read speed in megabytes per second.",
44660702 19576 "format_description" : "mbps",
7aacca6f 19577 "optional" : 1,
44660702 19578 "type" : "number"
56122987 19579 },
44660702 19580 "mbps_rd_max" : {
de0983cb 19581 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 19582 "format_description" : "mbps",
7aacca6f 19583 "optional" : 1,
44660702 19584 "type" : "number"
7aacca6f 19585 },
44660702 19586 "mbps_wr" : {
de0983cb 19587 "description" : "Maximum write speed in megabytes per second.",
44660702 19588 "format_description" : "mbps",
56122987 19589 "optional" : 1,
44660702 19590 "type" : "number"
56122987 19591 },
44660702 19592 "mbps_wr_max" : {
de0983cb 19593 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 19594 "format_description" : "mbps",
56122987 19595 "optional" : 1,
44660702
DM
19596 "type" : "number"
19597 },
19598 "media" : {
19599 "default" : "disk",
19600 "description" : "The drive's media type.",
7aacca6f 19601 "enum" : [
44660702
DM
19602 "cdrom",
19603 "disk"
7aacca6f 19604 ],
56122987 19605 "optional" : 1,
44660702 19606 "type" : "string"
56122987 19607 },
7aacca6f 19608 "queues" : {
44660702 19609 "description" : "Number of queues.",
7aacca6f 19610 "minimum" : 2,
7aacca6f
DM
19611 "optional" : 1,
19612 "type" : "integer"
56122987 19613 },
5d9c884c
DM
19614 "replicate" : {
19615 "default" : 1,
19616 "description" : "Whether the drive should considered for replication jobs.",
19617 "optional" : 1,
19618 "type" : "boolean"
19619 },
19620 "rerror" : {
19621 "description" : "Read error action.",
19622 "enum" : [
19623 "ignore",
19624 "report",
19625 "stop"
19626 ],
19627 "optional" : 1,
19628 "type" : "string"
19629 },
5370fa8c
TL
19630 "ro" : {
19631 "description" : "Whether the drive is read-only.",
19632 "optional" : 1,
19633 "type" : "boolean"
19634 },
52e44c50
FG
19635 "scsiblock" : {
19636 "default" : 0,
19637 "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",
19638 "optional" : 1,
19639 "type" : "boolean"
19640 },
44660702
DM
19641 "secs" : {
19642 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 19643 "optional" : 1,
44660702 19644 "type" : "integer"
56122987 19645 },
44660702
DM
19646 "serial" : {
19647 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
19648 "format" : "urlencoded",
19649 "format_description" : "serial",
19650 "maxLength" : 60,
56122987 19651 "optional" : 1,
44660702 19652 "type" : "string"
56122987 19653 },
27a7acb2
DM
19654 "shared" : {
19655 "default" : 0,
19656 "description" : "Mark this locally-managed volume as available on all nodes",
19657 "optional" : 1,
19658 "type" : "boolean",
19659 "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!"
19660 },
44660702
DM
19661 "size" : {
19662 "description" : "Disk size. This is purely informational and has no effect.",
19663 "format" : "disk-size",
f004f5b9 19664 "format_description" : "DiskSize",
44660702
DM
19665 "optional" : 1,
19666 "type" : "string"
19667 },
19668 "snapshot" : {
27a7acb2 19669 "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 19670 "optional" : 1,
44660702
DM
19671 "type" : "boolean"
19672 },
25203dc1
NC
19673 "ssd" : {
19674 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
19675 "optional" : 1,
19676 "type" : "boolean"
19677 },
44660702
DM
19678 "trans" : {
19679 "description" : "Force disk geometry bios translation mode.",
56122987 19680 "enum" : [
44660702
DM
19681 "none",
19682 "lba",
19683 "auto"
56122987 19684 ],
44660702
DM
19685 "optional" : 1,
19686 "type" : "string"
19687 },
19688 "volume" : {
19689 "alias" : "file"
56122987 19690 },
7aacca6f 19691 "werror" : {
7aacca6f
DM
19692 "description" : "Write error action.",
19693 "enum" : [
19694 "enospc",
19695 "ignore",
19696 "report",
19697 "stop"
44660702 19698 ],
56122987 19699 "optional" : 1,
7aacca6f 19700 "type" : "string"
95895385
TL
19701 },
19702 "wwn" : {
19703 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
19704 "format_description" : "wwn",
19705 "optional" : 1,
19706 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
19707 "type" : "string"
56122987 19708 }
44660702 19709 },
56122987 19710 "optional" : 1,
4bd7df8b 19711 "type" : "string",
7af2edf9 19712 "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
19713 },
19714 "scsihw" : {
44660702 19715 "default" : "lsi",
c2993fe5 19716 "description" : "SCSI controller model",
56122987
DM
19717 "enum" : [
19718 "lsi",
19719 "lsi53c810",
19720 "virtio-scsi-pci",
19721 "virtio-scsi-single",
19722 "megasas",
19723 "pvscsi"
19724 ],
19725 "optional" : 1,
56122987
DM
19726 "type" : "string"
19727 },
27a7acb2 19728 "searchdomain" : {
de786b48 19729 "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
19730 "optional" : 1,
19731 "type" : "string",
19732 "typetext" : "<string>"
19733 },
44660702 19734 "serial[n]" : {
c2993fe5 19735 "description" : "Create a serial device inside the VM (n is 0 to 3)",
56122987 19736 "optional" : 1,
44660702 19737 "pattern" : "(/dev/.+|socket)",
c2993fe5 19738 "type" : "string",
4772952b 19739 "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 19740 },
44660702
DM
19741 "shares" : {
19742 "default" : 1000,
5da3d723 19743 "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
19744 "maximum" : 50000,
19745 "minimum" : 0,
7aacca6f 19746 "optional" : 1,
4bd7df8b 19747 "type" : "integer",
013dc89f 19748 "typetext" : "<integer> (0 - 50000)"
56122987 19749 },
7aacca6f
DM
19750 "skiplock" : {
19751 "description" : "Ignore locks - only root is allowed to use this option.",
44660702 19752 "optional" : 1,
013dc89f
DM
19753 "type" : "boolean",
19754 "typetext" : "<boolean>"
56122987 19755 },
44660702
DM
19756 "smbios1" : {
19757 "description" : "Specify SMBIOS type 1 fields.",
19758 "format" : "pve-qm-smbios1",
1e3f8156 19759 "maxLength" : 512,
56122987 19760 "optional" : 1,
4bd7df8b 19761 "type" : "string",
1e3f8156 19762 "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 19763 },
44660702
DM
19764 "smp" : {
19765 "default" : 1,
19766 "description" : "The number of CPUs. Please use option -sockets instead.",
19767 "minimum" : 1,
56122987 19768 "optional" : 1,
4bd7df8b 19769 "type" : "integer",
013dc89f 19770 "typetext" : "<integer> (1 - N)"
56122987 19771 },
44660702
DM
19772 "sockets" : {
19773 "default" : 1,
19774 "description" : "The number of CPU sockets.",
19775 "minimum" : 1,
56122987 19776 "optional" : 1,
4bd7df8b 19777 "type" : "integer",
013dc89f 19778 "typetext" : "<integer> (1 - N)"
56122987 19779 },
1c532546
TL
19780 "spice_enhancements" : {
19781 "description" : "Configure additional enhancements for SPICE.",
19782 "format" : {
19783 "foldersharing" : {
19784 "default" : "0",
19785 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
19786 "optional" : 1,
19787 "type" : "boolean"
19788 },
19789 "videostreaming" : {
19790 "default" : "off",
19791 "description" : "Enable video streaming. Uses compression for detected video streams.",
19792 "enum" : [
19793 "off",
19794 "all",
19795 "filter"
19796 ],
19797 "optional" : 1,
19798 "type" : "string"
19799 }
19800 },
19801 "optional" : 1,
19802 "type" : "string",
19803 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
19804 },
27a7acb2
DM
19805 "sshkeys" : {
19806 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
19807 "format" : "urlencoded",
19808 "optional" : 1,
19809 "type" : "string",
19810 "typetext" : "<string>"
19811 },
44660702
DM
19812 "startdate" : {
19813 "default" : "now",
4772952b 19814 "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
19815 "optional" : 1,
19816 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 19817 "type" : "string",
44660702
DM
19818 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
19819 },
19820 "startup" : {
19821 "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.",
19822 "format" : "pve-startup-order",
7aacca6f 19823 "optional" : 1,
44660702
DM
19824 "type" : "string",
19825 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
7aacca6f 19826 },
44660702
DM
19827 "tablet" : {
19828 "default" : 1,
c2993fe5 19829 "description" : "Enable/disable the USB tablet device.",
7aacca6f 19830 "optional" : 1,
c2993fe5 19831 "type" : "boolean",
013dc89f 19832 "typetext" : "<boolean>",
4772952b 19833 "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 19834 },
5c1699e5
TL
19835 "tags" : {
19836 "description" : "Tags of the VM. This is only meta information.",
19837 "format" : "pve-tag-list",
19838 "optional" : 1,
19839 "type" : "string",
19840 "typetext" : "<string>"
19841 },
44660702
DM
19842 "tdf" : {
19843 "default" : 0,
19844 "description" : "Enable/disable time drift fix.",
7aacca6f 19845 "optional" : 1,
013dc89f
DM
19846 "type" : "boolean",
19847 "typetext" : "<boolean>"
7aacca6f 19848 },
44660702
DM
19849 "template" : {
19850 "default" : 0,
19851 "description" : "Enable/disable Template.",
7aacca6f 19852 "optional" : 1,
013dc89f
DM
19853 "type" : "boolean",
19854 "typetext" : "<boolean>"
7aacca6f 19855 },
5370fa8c 19856 "tpmstate0" : {
7af2edf9 19857 "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
19858 "format" : {
19859 "file" : {
19860 "default_key" : 1,
19861 "description" : "The drive's backing volume.",
19862 "format" : "pve-volume-id-or-qm-path",
19863 "format_description" : "volume",
19864 "type" : "string"
19865 },
7af2edf9
TL
19866 "import-from" : {
19867 "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!",
19868 "format" : "pve-volume-id-or-absolute-path",
19869 "format_description" : "source volume",
19870 "optional" : 1,
19871 "type" : "string"
19872 },
5370fa8c
TL
19873 "size" : {
19874 "description" : "Disk size. This is purely informational and has no effect.",
19875 "format" : "disk-size",
19876 "format_description" : "DiskSize",
19877 "optional" : 1,
19878 "type" : "string"
19879 },
19880 "version" : {
19881 "default" : "v2.0",
19882 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
19883 "enum" : [
19884 "v1.2",
19885 "v2.0"
19886 ],
19887 "optional" : 1,
19888 "type" : "string"
19889 },
19890 "volume" : {
19891 "alias" : "file"
19892 }
19893 },
19894 "optional" : 1,
19895 "type" : "string",
7af2edf9 19896 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 19897 },
44660702 19898 "unused[n]" : {
c2993fe5 19899 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
19900 "format" : {
19901 "file" : {
19902 "default_key" : 1,
19903 "description" : "The drive's backing volume.",
19904 "format" : "pve-volume-id",
19905 "format_description" : "volume",
19906 "type" : "string"
19907 },
19908 "volume" : {
19909 "alias" : "file"
19910 }
19911 },
7aacca6f 19912 "optional" : 1,
013dc89f 19913 "type" : "string",
c5aa7e14 19914 "typetext" : "[file=]<volume>"
7aacca6f 19915 },
44660702 19916 "usb[n]" : {
4e7f60c2 19917 "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 19918 "format" : {
44660702
DM
19919 "host" : {
19920 "default_key" : 1,
499c9b7f 19921 "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 19922 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
19923 "optional" : 1,
19924 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
19925 "type" : "string"
19926 },
19927 "mapping" : {
19928 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
19929 "format" : "pve-configid",
19930 "format_description" : "mapping-id",
19931 "optional" : 1,
44660702 19932 "type" : "string"
7aacca6f 19933 },
44660702 19934 "usb3" : {
c2993fe5 19935 "default" : 0,
4e7f60c2 19936 "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 19937 "optional" : 1,
44660702 19938 "type" : "boolean"
7aacca6f 19939 }
44660702 19940 },
7aacca6f 19941 "optional" : 1,
4bd7df8b 19942 "type" : "string",
499c9b7f 19943 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
7aacca6f 19944 },
44660702 19945 "vcpus" : {
7aacca6f 19946 "default" : 0,
44660702
DM
19947 "description" : "Number of hotplugged vcpus.",
19948 "minimum" : 1,
7aacca6f 19949 "optional" : 1,
4bd7df8b 19950 "type" : "integer",
013dc89f 19951 "typetext" : "<integer> (1 - N)"
7aacca6f 19952 },
44660702 19953 "vga" : {
e2d681b3
TL
19954 "description" : "Configure the VGA hardware.",
19955 "format" : {
19956 "memory" : {
19957 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
19958 "maximum" : 512,
19959 "minimum" : 4,
19960 "optional" : 1,
19961 "type" : "integer"
19962 },
19963 "type" : {
19964 "default" : "std",
19965 "default_key" : 1,
19966 "description" : "Select the VGA type.",
19967 "enum" : [
19968 "cirrus",
19969 "qxl",
19970 "qxl2",
19971 "qxl3",
19972 "qxl4",
5f26e15b 19973 "none",
e2d681b3
TL
19974 "serial0",
19975 "serial1",
19976 "serial2",
19977 "serial3",
19978 "std",
19979 "virtio",
7af2edf9 19980 "virtio-gl",
e2d681b3
TL
19981 "vmware"
19982 ],
19983 "optional" : 1,
19984 "type" : "string"
19985 }
19986 },
7aacca6f 19987 "optional" : 1,
c2993fe5 19988 "type" : "string",
e2d681b3
TL
19989 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
19990 "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 19991 },
44660702 19992 "virtio[n]" : {
7af2edf9 19993 "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 19994 "format" : {
7aacca6f 19995 "aio" : {
7aacca6f 19996 "description" : "AIO type to use.",
56122987 19997 "enum" : [
7aacca6f 19998 "native",
8f4d9c87
TL
19999 "threads",
20000 "io_uring"
7aacca6f 20001 ],
44660702
DM
20002 "optional" : 1,
20003 "type" : "string"
56122987 20004 },
44660702
DM
20005 "backup" : {
20006 "description" : "Whether the drive should be included when making backups.",
56122987 20007 "optional" : 1,
44660702 20008 "type" : "boolean"
7aacca6f 20009 },
44660702 20010 "bps" : {
de0983cb 20011 "description" : "Maximum r/w speed in bytes per second.",
44660702 20012 "format_description" : "bps",
7aacca6f 20013 "optional" : 1,
44660702 20014 "type" : "integer"
56122987 20015 },
de0983cb
DM
20016 "bps_max_length" : {
20017 "description" : "Maximum length of I/O bursts in seconds.",
20018 "format_description" : "seconds",
20019 "minimum" : 1,
20020 "optional" : 1,
20021 "type" : "integer"
20022 },
56122987 20023 "bps_rd" : {
de0983cb 20024 "description" : "Maximum read speed in bytes per second.",
44660702 20025 "format_description" : "bps",
56122987 20026 "optional" : 1,
7aacca6f 20027 "type" : "integer"
56122987 20028 },
de0983cb 20029 "bps_rd_length" : {
5d9c884c
DM
20030 "alias" : "bps_rd_max_length"
20031 },
20032 "bps_rd_max_length" : {
de0983cb
DM
20033 "description" : "Maximum length of read I/O bursts in seconds.",
20034 "format_description" : "seconds",
20035 "minimum" : 1,
20036 "optional" : 1,
20037 "type" : "integer"
20038 },
44660702 20039 "bps_wr" : {
de0983cb 20040 "description" : "Maximum write speed in bytes per second.",
44660702 20041 "format_description" : "bps",
56122987 20042 "optional" : 1,
7aacca6f 20043 "type" : "integer"
56122987 20044 },
de0983cb 20045 "bps_wr_length" : {
5d9c884c
DM
20046 "alias" : "bps_wr_max_length"
20047 },
20048 "bps_wr_max_length" : {
de0983cb
DM
20049 "description" : "Maximum length of write I/O bursts in seconds.",
20050 "format_description" : "seconds",
20051 "minimum" : 1,
20052 "optional" : 1,
20053 "type" : "integer"
20054 },
7aacca6f 20055 "cache" : {
44660702 20056 "description" : "The drive's cache mode",
7aacca6f
DM
20057 "enum" : [
20058 "none",
20059 "writethrough",
20060 "writeback",
20061 "unsafe",
20062 "directsync"
20063 ],
56122987 20064 "optional" : 1,
44660702 20065 "type" : "string"
7aacca6f 20066 },
44660702
DM
20067 "cyls" : {
20068 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
20069 "optional" : 1,
20070 "type" : "integer"
20071 },
20072 "detect_zeroes" : {
20073 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
20074 "optional" : 1,
20075 "type" : "boolean"
20076 },
20077 "discard" : {
20078 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 20079 "enum" : [
44660702
DM
20080 "ignore",
20081 "on"
56122987
DM
20082 ],
20083 "optional" : 1,
44660702 20084 "type" : "string"
56122987 20085 },
44660702
DM
20086 "file" : {
20087 "default_key" : 1,
20088 "description" : "The drive's backing volume.",
20089 "format" : "pve-volume-id-or-qm-path",
20090 "format_description" : "volume",
20091 "type" : "string"
20092 },
20093 "format" : {
20094 "description" : "The drive's backing file's data format.",
20095 "enum" : [
20096 "raw",
20097 "cow",
20098 "qcow",
20099 "qed",
20100 "qcow2",
20101 "vmdk",
20102 "cloop"
20103 ],
56122987 20104 "optional" : 1,
44660702 20105 "type" : "string"
56122987 20106 },
44660702
DM
20107 "heads" : {
20108 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
20109 "optional" : 1,
20110 "type" : "integer"
20111 },
7af2edf9
TL
20112 "import-from" : {
20113 "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!",
20114 "format" : "pve-volume-id-or-absolute-path",
20115 "format_description" : "source volume",
20116 "optional" : 1,
20117 "type" : "string"
20118 },
44660702 20119 "iops" : {
de0983cb 20120 "description" : "Maximum r/w I/O in operations per second.",
44660702 20121 "format_description" : "iops",
56122987 20122 "optional" : 1,
44660702
DM
20123 "type" : "integer"
20124 },
20125 "iops_max" : {
de0983cb 20126 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
20127 "format_description" : "iops",
20128 "optional" : 1,
20129 "type" : "integer"
56122987 20130 },
de0983cb
DM
20131 "iops_max_length" : {
20132 "description" : "Maximum length of I/O bursts in seconds.",
20133 "format_description" : "seconds",
20134 "minimum" : 1,
20135 "optional" : 1,
20136 "type" : "integer"
20137 },
7aacca6f 20138 "iops_rd" : {
de0983cb 20139 "description" : "Maximum read I/O in operations per second.",
7aacca6f 20140 "format_description" : "iops",
7aacca6f 20141 "optional" : 1,
44660702 20142 "type" : "integer"
56122987 20143 },
de0983cb 20144 "iops_rd_length" : {
5d9c884c 20145 "alias" : "iops_rd_max_length"
de0983cb 20146 },
44660702 20147 "iops_rd_max" : {
de0983cb 20148 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
20149 "format_description" : "iops",
20150 "optional" : 1,
20151 "type" : "integer"
20152 },
5d9c884c
DM
20153 "iops_rd_max_length" : {
20154 "description" : "Maximum length of read I/O bursts in seconds.",
20155 "format_description" : "seconds",
20156 "minimum" : 1,
20157 "optional" : 1,
20158 "type" : "integer"
20159 },
44660702 20160 "iops_wr" : {
de0983cb 20161 "description" : "Maximum write I/O in operations per second.",
44660702
DM
20162 "format_description" : "iops",
20163 "optional" : 1,
20164 "type" : "integer"
20165 },
de0983cb 20166 "iops_wr_length" : {
5d9c884c 20167 "alias" : "iops_wr_max_length"
de0983cb 20168 },
44660702 20169 "iops_wr_max" : {
de0983cb 20170 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
20171 "format_description" : "iops",
20172 "optional" : 1,
20173 "type" : "integer"
20174 },
5d9c884c
DM
20175 "iops_wr_max_length" : {
20176 "description" : "Maximum length of write I/O bursts in seconds.",
20177 "format_description" : "seconds",
20178 "minimum" : 1,
20179 "optional" : 1,
20180 "type" : "integer"
20181 },
44660702
DM
20182 "iothread" : {
20183 "description" : "Whether to use iothreads for this drive",
44660702
DM
20184 "optional" : 1,
20185 "type" : "boolean"
20186 },
20187 "mbps" : {
de0983cb 20188 "description" : "Maximum r/w speed in megabytes per second.",
44660702 20189 "format_description" : "mbps",
7aacca6f 20190 "optional" : 1,
44660702 20191 "type" : "number"
7aacca6f
DM
20192 },
20193 "mbps_max" : {
de0983cb 20194 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 20195 "format_description" : "mbps",
56122987 20196 "optional" : 1,
44660702 20197 "type" : "number"
56122987 20198 },
44660702 20199 "mbps_rd" : {
de0983cb 20200 "description" : "Maximum read speed in megabytes per second.",
44660702 20201 "format_description" : "mbps",
56122987 20202 "optional" : 1,
44660702 20203 "type" : "number"
56122987 20204 },
44660702 20205 "mbps_rd_max" : {
de0983cb 20206 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
20207 "format_description" : "mbps",
20208 "optional" : 1,
20209 "type" : "number"
20210 },
20211 "mbps_wr" : {
de0983cb 20212 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
20213 "format_description" : "mbps",
20214 "optional" : 1,
20215 "type" : "number"
20216 },
20217 "mbps_wr_max" : {
de0983cb 20218 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
20219 "format_description" : "mbps",
20220 "optional" : 1,
20221 "type" : "number"
20222 },
20223 "media" : {
20224 "default" : "disk",
20225 "description" : "The drive's media type.",
56122987 20226 "enum" : [
44660702
DM
20227 "cdrom",
20228 "disk"
56122987
DM
20229 ],
20230 "optional" : 1,
44660702 20231 "type" : "string"
56122987 20232 },
5d9c884c
DM
20233 "replicate" : {
20234 "default" : 1,
20235 "description" : "Whether the drive should considered for replication jobs.",
20236 "optional" : 1,
20237 "type" : "boolean"
20238 },
44660702
DM
20239 "rerror" : {
20240 "description" : "Read error action.",
20241 "enum" : [
20242 "ignore",
20243 "report",
20244 "stop"
20245 ],
56122987 20246 "optional" : 1,
44660702 20247 "type" : "string"
56122987 20248 },
5370fa8c
TL
20249 "ro" : {
20250 "description" : "Whether the drive is read-only.",
20251 "optional" : 1,
20252 "type" : "boolean"
20253 },
44660702
DM
20254 "secs" : {
20255 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 20256 "optional" : 1,
44660702 20257 "type" : "integer"
56122987 20258 },
7aacca6f
DM
20259 "serial" : {
20260 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
7aacca6f 20261 "format" : "urlencoded",
44660702 20262 "format_description" : "serial",
7aacca6f 20263 "maxLength" : 60,
44660702
DM
20264 "optional" : 1,
20265 "type" : "string"
56122987 20266 },
27a7acb2
DM
20267 "shared" : {
20268 "default" : 0,
20269 "description" : "Mark this locally-managed volume as available on all nodes",
20270 "optional" : 1,
20271 "type" : "boolean",
20272 "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!"
20273 },
44660702
DM
20274 "size" : {
20275 "description" : "Disk size. This is purely informational and has no effect.",
20276 "format" : "disk-size",
f004f5b9 20277 "format_description" : "DiskSize",
44660702
DM
20278 "optional" : 1,
20279 "type" : "string"
56122987 20280 },
44660702 20281 "snapshot" : {
27a7acb2 20282 "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 20283 "optional" : 1,
44660702 20284 "type" : "boolean"
56122987 20285 },
44660702
DM
20286 "trans" : {
20287 "description" : "Force disk geometry bios translation mode.",
20288 "enum" : [
20289 "none",
20290 "lba",
20291 "auto"
20292 ],
7aacca6f 20293 "optional" : 1,
44660702 20294 "type" : "string"
7aacca6f 20295 },
44660702
DM
20296 "volume" : {
20297 "alias" : "file"
20298 },
20299 "werror" : {
20300 "description" : "Write error action.",
20301 "enum" : [
20302 "enospc",
20303 "ignore",
20304 "report",
20305 "stop"
20306 ],
7aacca6f 20307 "optional" : 1,
44660702 20308 "type" : "string"
56122987
DM
20309 }
20310 },
7aacca6f 20311 "optional" : 1,
4bd7df8b 20312 "type" : "string",
7af2edf9 20313 "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 20314 },
4d47f125
TL
20315 "vmgenid" : {
20316 "default" : "1 (autogenerated)",
20317 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
20318 "format_description" : "UUID",
20319 "optional" : 1,
20320 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
20321 "type" : "string",
4772952b 20322 "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 20323 },
44660702
DM
20324 "vmid" : {
20325 "description" : "The (unique) ID of the VM.",
20326 "format" : "pve-vmid",
8dd66e12
TL
20327 "maximum" : 999999999,
20328 "minimum" : 100,
4bd7df8b 20329 "type" : "integer",
8dd66e12 20330 "typetext" : "<integer> (100 - 999999999)"
56122987 20331 },
2489d6df
WB
20332 "vmstatestorage" : {
20333 "description" : "Default storage for VM state volumes/files.",
20334 "format" : "pve-storage-id",
20335 "optional" : 1,
20336 "type" : "string",
20337 "typetext" : "<string>"
20338 },
44660702 20339 "watchdog" : {
c2993fe5 20340 "description" : "Create a virtual hardware watchdog device.",
44660702 20341 "format" : "pve-qm-watchdog",
56122987 20342 "optional" : 1,
c2993fe5 20343 "type" : "string",
013dc89f 20344 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 20345 "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 20346 }
7aacca6f 20347 }
56122987 20348 },
56122987
DM
20349 "permissions" : {
20350 "check" : [
20351 "perm",
20352 "/vms/{vmid}",
20353 [
20354 "VM.Config.Disk",
20355 "VM.Config.CDROM",
20356 "VM.Config.CPU",
20357 "VM.Config.Memory",
20358 "VM.Config.Network",
20359 "VM.Config.HWType",
ac70d7d1
TL
20360 "VM.Config.Options",
20361 "VM.Config.Cloudinit"
56122987
DM
20362 ],
20363 "any",
20364 1
20365 ]
20366 },
44660702 20367 "protected" : 1,
7aacca6f 20368 "proxyto" : "node",
56122987 20369 "returns" : {
4d47f125
TL
20370 "optional" : 1,
20371 "type" : "string"
7aacca6f 20372 }
4d47f125
TL
20373 },
20374 "PUT" : {
e9cd3bd4 20375 "allowtoken" : 1,
4d47f125
TL
20376 "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
20377 "method" : "PUT",
20378 "name" : "update_vm",
7aacca6f 20379 "parameters" : {
44660702 20380 "additionalProperties" : 0,
7aacca6f 20381 "properties" : {
4d47f125
TL
20382 "acpi" : {
20383 "default" : 1,
20384 "description" : "Enable/disable ACPI.",
20385 "optional" : 1,
20386 "type" : "boolean",
20387 "typetext" : "<boolean>"
7aacca6f 20388 },
4e7f60c2 20389 "affinity" : {
81a3384d 20390 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
20391 "format" : "pve-cpuset",
20392 "optional" : 1,
20393 "type" : "string",
20394 "typetext" : "<string>"
20395 },
4d47f125 20396 "agent" : {
9d2e98ed 20397 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
20398 "format" : {
20399 "enabled" : {
20400 "default" : 0,
20401 "default_key" : 1,
9d2e98ed
TL
20402 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
20403 "type" : "boolean"
20404 },
20405 "freeze-fs-on-backup" : {
20406 "default" : 1,
20407 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
20408 "optional" : 1,
4d47f125
TL
20409 "type" : "boolean"
20410 },
20411 "fstrim_cloned_disks" : {
20412 "default" : 0,
d2656385 20413 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
20414 "optional" : 1,
20415 "type" : "boolean"
5c1699e5
TL
20416 },
20417 "type" : {
20418 "default" : "virtio",
20419 "description" : "Select the agent type",
20420 "enum" : [
20421 "virtio",
20422 "isa"
20423 ],
20424 "optional" : 1,
20425 "type" : "string"
4d47f125 20426 }
44660702 20427 },
4d47f125
TL
20428 "optional" : 1,
20429 "type" : "string",
9d2e98ed 20430 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
44660702 20431 },
e2d681b3
TL
20432 "arch" : {
20433 "description" : "Virtual processor architecture. Defaults to the host.",
20434 "enum" : [
20435 "x86_64",
20436 "aarch64"
20437 ],
20438 "optional" : 1,
20439 "type" : "string"
20440 },
4d47f125
TL
20441 "args" : {
20442 "description" : "Arbitrary arguments passed to kvm.",
20443 "optional" : 1,
20444 "type" : "string",
20445 "typetext" : "<string>",
159464a9 20446 "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 20447 },
1c532546
TL
20448 "audio0" : {
20449 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
20450 "format" : {
20451 "device" : {
20452 "description" : "Configure an audio device.",
20453 "enum" : [
20454 "ich9-intel-hda",
20455 "intel-hda",
20456 "AC97"
20457 ],
20458 "type" : "string"
20459 },
20460 "driver" : {
20461 "default" : "spice",
20462 "description" : "Driver backend for the audio device.",
20463 "enum" : [
d2656385
TL
20464 "spice",
20465 "none"
1c532546
TL
20466 ],
20467 "optional" : 1,
20468 "type" : "string"
20469 }
20470 },
20471 "optional" : 1,
20472 "type" : "string",
d2656385 20473 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 20474 },
4d47f125
TL
20475 "autostart" : {
20476 "default" : 0,
20477 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 20478 "optional" : 1,
013dc89f
DM
20479 "type" : "boolean",
20480 "typetext" : "<boolean>"
7aacca6f 20481 },
4d47f125 20482 "balloon" : {
9d2e98ed 20483 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
4d47f125
TL
20484 "minimum" : 0,
20485 "optional" : 1,
20486 "type" : "integer",
20487 "typetext" : "<integer> (0 - N)"
20488 },
20489 "bios" : {
20490 "default" : "seabios",
20491 "description" : "Select BIOS implementation.",
20492 "enum" : [
20493 "seabios",
20494 "ovmf"
20495 ],
20496 "optional" : 1,
20497 "type" : "string"
20498 },
20499 "boot" : {
5370fa8c 20500 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 20501 "format" : "pve-qm-boot",
4d47f125 20502 "optional" : 1,
4772952b
TL
20503 "type" : "string",
20504 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
4d47f125
TL
20505 },
20506 "bootdisk" : {
4772952b 20507 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
4d47f125
TL
20508 "format" : "pve-qm-bootdisk",
20509 "optional" : 1,
20510 "pattern" : "(ide|sata|scsi|virtio)\\d+",
20511 "type" : "string"
20512 },
20513 "cdrom" : {
20514 "description" : "This is an alias for option -ide2",
20515 "format" : "pve-qm-ide",
20516 "optional" : 1,
20517 "type" : "string",
20518 "typetext" : "<volume>"
20519 },
95895385
TL
20520 "cicustom" : {
20521 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
20522 "format" : "pve-qm-cicustom",
20523 "optional" : 1,
20524 "type" : "string",
5370fa8c 20525 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 20526 },
4d47f125
TL
20527 "cipassword" : {
20528 "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.",
20529 "optional" : 1,
013dc89f
DM
20530 "type" : "string",
20531 "typetext" : "<string>"
44660702 20532 },
4d47f125
TL
20533 "citype" : {
20534 "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.",
20535 "enum" : [
20536 "configdrive2",
d2656385
TL
20537 "nocloud",
20538 "opennebula"
4d47f125
TL
20539 ],
20540 "optional" : 1,
20541 "type" : "string"
20542 },
159464a9 20543 "ciupgrade" : {
c8eee6ff 20544 "default" : 1,
159464a9
TL
20545 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
20546 "optional" : 1,
20547 "type" : "boolean",
20548 "typetext" : "<boolean>"
20549 },
4d47f125
TL
20550 "ciuser" : {
20551 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
20552 "optional" : 1,
013dc89f
DM
20553 "type" : "string",
20554 "typetext" : "<string>"
56122987 20555 },
4d47f125
TL
20556 "cores" : {
20557 "default" : 1,
20558 "description" : "The number of cores per socket.",
7aacca6f 20559 "minimum" : 1,
4d47f125 20560 "optional" : 1,
4bd7df8b 20561 "type" : "integer",
013dc89f 20562 "typetext" : "<integer> (1 - N)"
4d47f125
TL
20563 },
20564 "cpu" : {
20565 "description" : "Emulated CPU type.",
c5aa7e14 20566 "format" : "pve-vm-cpu-conf",
4d47f125 20567 "optional" : 1,
013dc89f 20568 "type" : "string",
04d22a9f 20569 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702 20570 },
4d47f125
TL
20571 "cpulimit" : {
20572 "default" : 0,
20573 "description" : "Limit of CPU usage.",
20574 "maximum" : 128,
20575 "minimum" : 0,
20576 "optional" : 1,
20577 "type" : "number",
20578 "typetext" : "<number> (0 - 128)",
20579 "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."
20580 },
20581 "cpuunits" : {
5370fa8c
TL
20582 "default" : "cgroup v1: 1024, cgroup v2: 100",
20583 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
4d47f125 20584 "maximum" : 262144,
7af2edf9 20585 "minimum" : 1,
4d47f125 20586 "optional" : 1,
4bd7df8b 20587 "type" : "integer",
7af2edf9 20588 "typetext" : "<integer> (1 - 262144)",
4d47f125 20589 "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 20590 },
4d47f125
TL
20591 "delete" : {
20592 "description" : "A list of settings you want to delete.",
20593 "format" : "pve-configid-list",
20594 "optional" : 1,
20595 "type" : "string",
20596 "typetext" : "<string>"
20597 },
20598 "description" : {
8f4d9c87
TL
20599 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
20600 "maxLength" : 8192,
4d47f125
TL
20601 "optional" : 1,
20602 "type" : "string",
20603 "typetext" : "<string>"
20604 },
20605 "digest" : {
20606 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
20607 "maxLength" : 40,
44660702 20608 "optional" : 1,
4d47f125
TL
20609 "type" : "string",
20610 "typetext" : "<string>"
20611 },
20612 "efidisk0" : {
9d2e98ed 20613 "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 20614 "format" : {
5370fa8c
TL
20615 "efitype" : {
20616 "default" : "2m",
bd92b745 20617 "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
20618 "enum" : [
20619 "2m",
20620 "4m"
20621 ],
20622 "optional" : 1,
20623 "type" : "string"
20624 },
4d47f125
TL
20625 "file" : {
20626 "default_key" : 1,
20627 "description" : "The drive's backing volume.",
20628 "format" : "pve-volume-id-or-qm-path",
20629 "format_description" : "volume",
20630 "type" : "string"
20631 },
20632 "format" : {
20633 "description" : "The drive's backing file's data format.",
20634 "enum" : [
20635 "raw",
20636 "cow",
20637 "qcow",
20638 "qed",
20639 "qcow2",
20640 "vmdk",
20641 "cloop"
20642 ],
20643 "optional" : 1,
20644 "type" : "string"
20645 },
7af2edf9
TL
20646 "import-from" : {
20647 "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!",
20648 "format" : "pve-volume-id-or-absolute-path",
20649 "format_description" : "source volume",
20650 "optional" : 1,
20651 "type" : "string"
20652 },
5370fa8c
TL
20653 "pre-enrolled-keys" : {
20654 "default" : 0,
20655 "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.",
20656 "optional" : 1,
20657 "type" : "boolean"
20658 },
4d47f125
TL
20659 "size" : {
20660 "description" : "Disk size. This is purely informational and has no effect.",
20661 "format" : "disk-size",
20662 "format_description" : "DiskSize",
20663 "optional" : 1,
20664 "type" : "string"
20665 },
20666 "volume" : {
20667 "alias" : "file"
20668 }
20669 },
20670 "optional" : 1,
20671 "type" : "string",
7af2edf9 20672 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125
TL
20673 },
20674 "force" : {
20675 "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.",
20676 "optional" : 1,
20677 "requires" : "delete",
013dc89f
DM
20678 "type" : "boolean",
20679 "typetext" : "<boolean>"
56122987 20680 },
4d47f125
TL
20681 "freeze" : {
20682 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
20683 "optional" : 1,
20684 "type" : "boolean",
20685 "typetext" : "<boolean>"
7aacca6f 20686 },
5f26e15b
TL
20687 "hookscript" : {
20688 "description" : "Script that will be executed during various steps in the vms lifetime.",
20689 "format" : "pve-volume-id",
20690 "optional" : 1,
20691 "type" : "string",
20692 "typetext" : "<string>"
20693 },
4d47f125
TL
20694 "hostpci[n]" : {
20695 "description" : "Map host PCI devices into guest.",
20696 "format" : "pve-qm-hostpci",
20697 "optional" : 1,
20698 "type" : "string",
499c9b7f 20699 "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 20700 "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 20701 },
4d47f125
TL
20702 "hotplug" : {
20703 "default" : "network,disk,usb",
4e7f60c2 20704 "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
20705 "format" : "pve-hotplug-features",
20706 "optional" : 1,
35a75dd3
DM
20707 "type" : "string",
20708 "typetext" : "<string>"
20709 },
4d47f125
TL
20710 "hugepages" : {
20711 "description" : "Enable/disable hugepages memory.",
35a75dd3 20712 "enum" : [
4d47f125
TL
20713 "any",
20714 "2",
20715 "1024"
35a75dd3
DM
20716 ],
20717 "optional" : 1,
20718 "type" : "string"
20719 },
4d47f125 20720 "ide[n]" : {
7af2edf9 20721 "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
20722 "format" : {
20723 "aio" : {
20724 "description" : "AIO type to use.",
20725 "enum" : [
20726 "native",
8f4d9c87
TL
20727 "threads",
20728 "io_uring"
4d47f125 20729 ],
44660702 20730 "optional" : 1,
44660702
DM
20731 "type" : "string"
20732 },
4d47f125
TL
20733 "backup" : {
20734 "description" : "Whether the drive should be included when making backups.",
56122987 20735 "optional" : 1,
4d47f125 20736 "type" : "boolean"
56122987 20737 },
4d47f125
TL
20738 "bps" : {
20739 "description" : "Maximum r/w speed in bytes per second.",
20740 "format_description" : "bps",
de0983cb 20741 "optional" : 1,
4d47f125 20742 "type" : "integer"
de0983cb 20743 },
4d47f125
TL
20744 "bps_max_length" : {
20745 "description" : "Maximum length of I/O bursts in seconds.",
20746 "format_description" : "seconds",
20747 "minimum" : 1,
de0983cb 20748 "optional" : 1,
4d47f125 20749 "type" : "integer"
7aacca6f 20750 },
4d47f125
TL
20751 "bps_rd" : {
20752 "description" : "Maximum read speed in bytes per second.",
20753 "format_description" : "bps",
7aacca6f 20754 "optional" : 1,
4d47f125 20755 "type" : "integer"
56122987 20756 },
4d47f125
TL
20757 "bps_rd_length" : {
20758 "alias" : "bps_rd_max_length"
20759 },
20760 "bps_rd_max_length" : {
20761 "description" : "Maximum length of read I/O bursts in seconds.",
20762 "format_description" : "seconds",
20763 "minimum" : 1,
56122987 20764 "optional" : 1,
4d47f125 20765 "type" : "integer"
56122987 20766 },
4d47f125
TL
20767 "bps_wr" : {
20768 "description" : "Maximum write speed in bytes per second.",
20769 "format_description" : "bps",
52e44c50 20770 "optional" : 1,
4d47f125 20771 "type" : "integer"
52e44c50 20772 },
4d47f125
TL
20773 "bps_wr_length" : {
20774 "alias" : "bps_wr_max_length"
20775 },
20776 "bps_wr_max_length" : {
20777 "description" : "Maximum length of write I/O bursts in seconds.",
20778 "format_description" : "seconds",
44660702 20779 "minimum" : 1,
56122987 20780 "optional" : 1,
4d47f125 20781 "type" : "integer"
56122987 20782 },
4d47f125
TL
20783 "cache" : {
20784 "description" : "The drive's cache mode",
20785 "enum" : [
20786 "none",
20787 "writethrough",
20788 "writeback",
20789 "unsafe",
20790 "directsync"
20791 ],
7aacca6f 20792 "optional" : 1,
4d47f125 20793 "type" : "string"
7aacca6f 20794 },
4d47f125
TL
20795 "cyls" : {
20796 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
20797 "optional" : 1,
20798 "type" : "integer"
56122987 20799 },
4d47f125
TL
20800 "detect_zeroes" : {
20801 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 20802 "optional" : 1,
4d47f125 20803 "type" : "boolean"
56122987 20804 },
4d47f125
TL
20805 "discard" : {
20806 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
20807 "enum" : [
20808 "ignore",
20809 "on"
20810 ],
56122987 20811 "optional" : 1,
4d47f125 20812 "type" : "string"
7aacca6f 20813 },
4d47f125
TL
20814 "file" : {
20815 "default_key" : 1,
20816 "description" : "The drive's backing volume.",
20817 "format" : "pve-volume-id-or-qm-path",
20818 "format_description" : "volume",
20819 "type" : "string"
56122987 20820 },
4d47f125
TL
20821 "format" : {
20822 "description" : "The drive's backing file's data format.",
20823 "enum" : [
20824 "raw",
20825 "cow",
20826 "qcow",
20827 "qed",
20828 "qcow2",
20829 "vmdk",
20830 "cloop"
20831 ],
7aacca6f 20832 "optional" : 1,
4d47f125 20833 "type" : "string"
7aacca6f 20834 },
4d47f125
TL
20835 "heads" : {
20836 "description" : "Force the drive's physical geometry to have a specific head count.",
7aacca6f 20837 "optional" : 1,
4d47f125 20838 "type" : "integer"
56122987 20839 },
7af2edf9
TL
20840 "import-from" : {
20841 "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!",
20842 "format" : "pve-volume-id-or-absolute-path",
20843 "format_description" : "source volume",
20844 "optional" : 1,
20845 "type" : "string"
20846 },
4d47f125
TL
20847 "iops" : {
20848 "description" : "Maximum r/w I/O in operations per second.",
20849 "format_description" : "iops",
44660702 20850 "optional" : 1,
4d47f125 20851 "type" : "integer"
44660702 20852 },
4d47f125
TL
20853 "iops_max" : {
20854 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
20855 "format_description" : "iops",
44660702 20856 "optional" : 1,
4d47f125 20857 "type" : "integer"
56122987 20858 },
4d47f125
TL
20859 "iops_max_length" : {
20860 "description" : "Maximum length of I/O bursts in seconds.",
20861 "format_description" : "seconds",
20862 "minimum" : 1,
7aacca6f 20863 "optional" : 1,
4d47f125 20864 "type" : "integer"
7aacca6f 20865 },
4d47f125
TL
20866 "iops_rd" : {
20867 "description" : "Maximum read I/O in operations per second.",
20868 "format_description" : "iops",
20869 "optional" : 1,
20870 "type" : "integer"
20871 },
20872 "iops_rd_length" : {
20873 "alias" : "iops_rd_max_length"
20874 },
20875 "iops_rd_max" : {
20876 "description" : "Maximum unthrottled read I/O pool in operations per second.",
20877 "format_description" : "iops",
20878 "optional" : 1,
20879 "type" : "integer"
20880 },
20881 "iops_rd_max_length" : {
20882 "description" : "Maximum length of read I/O bursts in seconds.",
20883 "format_description" : "seconds",
44660702 20884 "minimum" : 1,
4d47f125
TL
20885 "optional" : 1,
20886 "type" : "integer"
7aacca6f 20887 },
4d47f125
TL
20888 "iops_wr" : {
20889 "description" : "Maximum write I/O in operations per second.",
20890 "format_description" : "iops",
44660702 20891 "optional" : 1,
4d47f125 20892 "type" : "integer"
44660702 20893 },
4d47f125
TL
20894 "iops_wr_length" : {
20895 "alias" : "iops_wr_max_length"
20896 },
20897 "iops_wr_max" : {
20898 "description" : "Maximum unthrottled write I/O pool in operations per second.",
20899 "format_description" : "iops",
20900 "optional" : 1,
20901 "type" : "integer"
20902 },
20903 "iops_wr_max_length" : {
20904 "description" : "Maximum length of write I/O bursts in seconds.",
20905 "format_description" : "seconds",
44660702 20906 "minimum" : 1,
44660702 20907 "optional" : 1,
4d47f125 20908 "type" : "integer"
44660702 20909 },
4d47f125
TL
20910 "mbps" : {
20911 "description" : "Maximum r/w speed in megabytes per second.",
20912 "format_description" : "mbps",
20913 "optional" : 1,
20914 "type" : "number"
56122987 20915 },
4d47f125
TL
20916 "mbps_max" : {
20917 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
20918 "format_description" : "mbps",
20919 "optional" : 1,
20920 "type" : "number"
20921 },
20922 "mbps_rd" : {
20923 "description" : "Maximum read speed in megabytes per second.",
20924 "format_description" : "mbps",
20925 "optional" : 1,
20926 "type" : "number"
20927 },
20928 "mbps_rd_max" : {
20929 "description" : "Maximum unthrottled read pool in megabytes per second.",
20930 "format_description" : "mbps",
20931 "optional" : 1,
20932 "type" : "number"
20933 },
20934 "mbps_wr" : {
20935 "description" : "Maximum write speed in megabytes per second.",
20936 "format_description" : "mbps",
20937 "optional" : 1,
20938 "type" : "number"
20939 },
20940 "mbps_wr_max" : {
20941 "description" : "Maximum unthrottled write pool in megabytes per second.",
20942 "format_description" : "mbps",
20943 "optional" : 1,
20944 "type" : "number"
20945 },
20946 "media" : {
20947 "default" : "disk",
20948 "description" : "The drive's media type.",
20949 "enum" : [
20950 "cdrom",
20951 "disk"
20952 ],
20953 "optional" : 1,
20954 "type" : "string"
20955 },
20956 "model" : {
20957 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
20958 "format" : "urlencoded",
20959 "format_description" : "model",
20960 "maxLength" : 120,
20961 "optional" : 1,
20962 "type" : "string"
20963 },
20964 "replicate" : {
20965 "default" : 1,
20966 "description" : "Whether the drive should considered for replication jobs.",
20967 "optional" : 1,
20968 "type" : "boolean"
20969 },
20970 "rerror" : {
20971 "description" : "Read error action.",
20972 "enum" : [
20973 "ignore",
20974 "report",
20975 "stop"
20976 ],
20977 "optional" : 1,
20978 "type" : "string"
20979 },
20980 "secs" : {
20981 "description" : "Force the drive's physical geometry to have a specific sector count.",
20982 "optional" : 1,
20983 "type" : "integer"
20984 },
20985 "serial" : {
20986 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
20987 "format" : "urlencoded",
20988 "format_description" : "serial",
20989 "maxLength" : 60,
20990 "optional" : 1,
20991 "type" : "string"
20992 },
20993 "shared" : {
20994 "default" : 0,
20995 "description" : "Mark this locally-managed volume as available on all nodes",
44660702 20996 "optional" : 1,
013dc89f 20997 "type" : "boolean",
4d47f125 20998 "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 20999 },
4d47f125
TL
21000 "size" : {
21001 "description" : "Disk size. This is purely informational and has no effect.",
21002 "format" : "disk-size",
21003 "format_description" : "DiskSize",
21004 "optional" : 1,
21005 "type" : "string"
21006 },
21007 "snapshot" : {
21008 "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.",
21009 "optional" : 1,
21010 "type" : "boolean"
21011 },
25203dc1
NC
21012 "ssd" : {
21013 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
21014 "optional" : 1,
21015 "type" : "boolean"
21016 },
4d47f125
TL
21017 "trans" : {
21018 "description" : "Force disk geometry bios translation mode.",
21019 "enum" : [
21020 "none",
21021 "lba",
21022 "auto"
21023 ],
21024 "optional" : 1,
21025 "type" : "string"
21026 },
21027 "volume" : {
21028 "alias" : "file"
21029 },
21030 "werror" : {
21031 "description" : "Write error action.",
21032 "enum" : [
21033 "enospc",
21034 "ignore",
21035 "report",
21036 "stop"
21037 ],
21038 "optional" : 1,
21039 "type" : "string"
95895385
TL
21040 },
21041 "wwn" : {
21042 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
21043 "format_description" : "wwn",
21044 "optional" : 1,
21045 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
21046 "type" : "string"
4d47f125
TL
21047 }
21048 },
21049 "optional" : 1,
013dc89f 21050 "type" : "string",
7af2edf9 21051 "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 21052 },
4d47f125 21053 "ipconfig[n]" : {
d2656385 21054 "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
21055 "format" : "pve-qm-ipconfig",
21056 "optional" : 1,
013dc89f 21057 "type" : "string",
4d47f125 21058 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
44660702 21059 },
95895385
TL
21060 "ivshmem" : {
21061 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
21062 "format" : {
21063 "name" : {
21064 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
21065 "format_description" : "string",
21066 "optional" : 1,
21067 "pattern" : "[a-zA-Z0-9\\-]+",
21068 "type" : "string"
21069 },
21070 "size" : {
21071 "description" : "The size of the file in MB.",
21072 "minimum" : 1,
21073 "type" : "integer"
21074 }
21075 },
21076 "optional" : 1,
21077 "type" : "string",
21078 "typetext" : "size=<integer> [,name=<string>]"
21079 },
4772952b
TL
21080 "keephugepages" : {
21081 "default" : 0,
21082 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
21083 "optional" : 1,
21084 "type" : "boolean",
21085 "typetext" : "<boolean>"
21086 },
4d47f125
TL
21087 "keyboard" : {
21088 "default" : null,
7af2edf9 21089 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
4d47f125
TL
21090 "enum" : [
21091 "de",
21092 "de-ch",
21093 "da",
21094 "en-gb",
21095 "en-us",
21096 "es",
21097 "fi",
21098 "fr",
21099 "fr-be",
21100 "fr-ca",
21101 "fr-ch",
21102 "hu",
21103 "is",
21104 "it",
21105 "ja",
21106 "lt",
21107 "mk",
21108 "nl",
21109 "no",
21110 "pl",
21111 "pt",
21112 "pt-br",
21113 "sv",
21114 "sl",
21115 "tr"
21116 ],
21117 "optional" : 1,
21118 "type" : "string"
44660702 21119 },
4d47f125
TL
21120 "kvm" : {
21121 "default" : 1,
21122 "description" : "Enable/disable KVM hardware virtualization.",
44660702 21123 "optional" : 1,
013dc89f
DM
21124 "type" : "boolean",
21125 "typetext" : "<boolean>"
7aacca6f 21126 },
4d47f125 21127 "localtime" : {
5370fa8c 21128 "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
21129 "optional" : 1,
21130 "type" : "boolean",
21131 "typetext" : "<boolean>"
21132 },
21133 "lock" : {
21134 "description" : "Lock/unlock the VM.",
56122987 21135 "enum" : [
4d47f125 21136 "backup",
5f26e15b
TL
21137 "clone",
21138 "create",
21139 "migrate",
21140 "rollback",
56122987 21141 "snapshot",
95895385
TL
21142 "snapshot-delete",
21143 "suspending",
21144 "suspended"
56122987 21145 ],
4d47f125 21146 "optional" : 1,
44660702
DM
21147 "type" : "string"
21148 },
4d47f125 21149 "machine" : {
9d2e98ed 21150 "description" : "Specifies the QEMU machine type.",
4d47f125
TL
21151 "maxLength" : 40,
21152 "optional" : 1,
5c1699e5 21153 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
21154 "type" : "string"
21155 },
21156 "memory" : {
bd92b745
TL
21157 "description" : "Memory properties.",
21158 "format" : {
21159 "current" : {
21160 "default" : 512,
21161 "default_key" : 1,
21162 "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
21163 "minimum" : 16,
21164 "type" : "integer"
21165 }
21166 },
4d47f125 21167 "optional" : 1,
bd92b745
TL
21168 "type" : "string",
21169 "typetext" : "[current=]<integer>"
4d47f125
TL
21170 },
21171 "migrate_downtime" : {
21172 "default" : 0.1,
21173 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
21174 "minimum" : 0,
21175 "optional" : 1,
21176 "type" : "number",
21177 "typetext" : "<number> (0 - N)"
21178 },
21179 "migrate_speed" : {
21180 "default" : 0,
21181 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
21182 "minimum" : 0,
21183 "optional" : 1,
21184 "type" : "integer",
21185 "typetext" : "<integer> (0 - N)"
21186 },
21187 "name" : {
21188 "description" : "Set a name for the VM. Only used on the configuration web interface.",
21189 "format" : "dns-name",
21190 "optional" : 1,
013dc89f
DM
21191 "type" : "string",
21192 "typetext" : "<string>"
56122987 21193 },
4d47f125 21194 "nameserver" : {
de786b48 21195 "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 21196 "format" : "address-list",
7aacca6f 21197 "optional" : 1,
013dc89f
DM
21198 "type" : "string",
21199 "typetext" : "<string>"
7aacca6f 21200 },
4d47f125
TL
21201 "net[n]" : {
21202 "description" : "Specify network devices.",
21203 "format" : {
21204 "bridge" : {
21205 "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 21206 "format" : "pve-bridge-id",
4d47f125
TL
21207 "format_description" : "bridge",
21208 "optional" : 1,
21209 "type" : "string"
21210 },
21211 "e1000" : {
21212 "alias" : "macaddr",
21213 "keyAlias" : "model"
21214 },
21215 "e1000-82540em" : {
21216 "alias" : "macaddr",
21217 "keyAlias" : "model"
21218 },
21219 "e1000-82544gc" : {
21220 "alias" : "macaddr",
21221 "keyAlias" : "model"
21222 },
21223 "e1000-82545em" : {
21224 "alias" : "macaddr",
21225 "keyAlias" : "model"
21226 },
5370fa8c
TL
21227 "e1000e" : {
21228 "alias" : "macaddr",
21229 "keyAlias" : "model"
21230 },
4d47f125
TL
21231 "firewall" : {
21232 "description" : "Whether this interface should be protected by the firewall.",
21233 "optional" : 1,
21234 "type" : "boolean"
21235 },
21236 "i82551" : {
21237 "alias" : "macaddr",
21238 "keyAlias" : "model"
21239 },
21240 "i82557b" : {
21241 "alias" : "macaddr",
21242 "keyAlias" : "model"
21243 },
21244 "i82559er" : {
21245 "alias" : "macaddr",
21246 "keyAlias" : "model"
21247 },
21248 "link_down" : {
21249 "description" : "Whether this interface should be disconnected (like pulling the plug).",
21250 "optional" : 1,
21251 "type" : "boolean"
21252 },
21253 "macaddr" : {
21254 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 21255 "format" : "mac-addr",
4d47f125
TL
21256 "format_description" : "XX:XX:XX:XX:XX:XX",
21257 "optional" : 1,
95895385
TL
21258 "type" : "string",
21259 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
21260 },
21261 "model" : {
21262 "default_key" : 1,
21263 "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'.",
21264 "enum" : [
4d47f125 21265 "e1000",
5370fa8c
TL
21266 "e1000-82540em",
21267 "e1000-82544gc",
21268 "e1000-82545em",
21269 "e1000e",
4d47f125
TL
21270 "i82551",
21271 "i82557b",
21272 "i82559er",
5370fa8c
TL
21273 "ne2k_isa",
21274 "ne2k_pci",
21275 "pcnet",
21276 "rtl8139",
21277 "virtio",
21278 "vmxnet3"
4d47f125
TL
21279 ],
21280 "type" : "string"
21281 },
ac70d7d1
TL
21282 "mtu" : {
21283 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
21284 "maximum" : 65520,
21285 "minimum" : 1,
21286 "optional" : 1,
21287 "type" : "integer"
21288 },
4d47f125
TL
21289 "ne2k_isa" : {
21290 "alias" : "macaddr",
21291 "keyAlias" : "model"
21292 },
21293 "ne2k_pci" : {
21294 "alias" : "macaddr",
21295 "keyAlias" : "model"
21296 },
21297 "pcnet" : {
21298 "alias" : "macaddr",
21299 "keyAlias" : "model"
21300 },
21301 "queues" : {
21302 "description" : "Number of packet queues to be used on the device.",
81a3384d 21303 "maximum" : 64,
4d47f125
TL
21304 "minimum" : 0,
21305 "optional" : 1,
21306 "type" : "integer"
21307 },
21308 "rate" : {
21309 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
21310 "minimum" : 0,
21311 "optional" : 1,
21312 "type" : "number"
21313 },
21314 "rtl8139" : {
21315 "alias" : "macaddr",
21316 "keyAlias" : "model"
21317 },
21318 "tag" : {
21319 "description" : "VLAN tag to apply to packets on this interface.",
21320 "maximum" : 4094,
21321 "minimum" : 1,
21322 "optional" : 1,
21323 "type" : "integer"
21324 },
21325 "trunks" : {
21326 "description" : "VLAN trunks to pass through this interface.",
21327 "format_description" : "vlanid[;vlanid...]",
21328 "optional" : 1,
21329 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
21330 "type" : "string"
21331 },
21332 "virtio" : {
21333 "alias" : "macaddr",
21334 "keyAlias" : "model"
21335 },
21336 "vmxnet3" : {
21337 "alias" : "macaddr",
21338 "keyAlias" : "model"
21339 }
44660702 21340 },
44660702 21341 "optional" : 1,
013dc89f 21342 "type" : "string",
ac70d7d1 21343 "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
21344 },
21345 "node" : {
21346 "description" : "The cluster node name.",
21347 "format" : "pve-node",
013dc89f
DM
21348 "type" : "string",
21349 "typetext" : "<string>"
7aacca6f 21350 },
4d47f125
TL
21351 "numa" : {
21352 "default" : 0,
21353 "description" : "Enable/disable NUMA.",
56122987 21354 "optional" : 1,
4d47f125
TL
21355 "type" : "boolean",
21356 "typetext" : "<boolean>"
56122987 21357 },
4d47f125
TL
21358 "numa[n]" : {
21359 "description" : "NUMA topology.",
21360 "format" : {
21361 "cpus" : {
21362 "description" : "CPUs accessing this NUMA node.",
21363 "format_description" : "id[-id];...",
21364 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
21365 "type" : "string"
21366 },
21367 "hostnodes" : {
21368 "description" : "Host NUMA nodes to use.",
21369 "format_description" : "id[-id];...",
21370 "optional" : 1,
21371 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
21372 "type" : "string"
21373 },
21374 "memory" : {
21375 "description" : "Amount of memory this NUMA node provides.",
21376 "optional" : 1,
21377 "type" : "number"
21378 },
21379 "policy" : {
21380 "description" : "NUMA allocation policy.",
21381 "enum" : [
21382 "preferred",
21383 "bind",
21384 "interleave"
21385 ],
21386 "optional" : 1,
21387 "type" : "string"
21388 }
21389 },
7aacca6f 21390 "optional" : 1,
013dc89f 21391 "type" : "string",
4d47f125 21392 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 21393 },
4d47f125 21394 "onboot" : {
44660702 21395 "default" : 0,
4d47f125 21396 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 21397 "optional" : 1,
013dc89f
DM
21398 "type" : "boolean",
21399 "typetext" : "<boolean>"
56122987 21400 },
4d47f125
TL
21401 "ostype" : {
21402 "description" : "Specify guest operating system.",
7aacca6f 21403 "enum" : [
4d47f125
TL
21404 "other",
21405 "wxp",
21406 "w2k",
21407 "w2k3",
21408 "w2k8",
21409 "wvista",
21410 "win7",
21411 "win8",
21412 "win10",
5370fa8c 21413 "win11",
4d47f125
TL
21414 "l24",
21415 "l26",
21416 "solaris"
7aacca6f
DM
21417 ],
21418 "optional" : 1,
013dc89f 21419 "type" : "string",
9d2e98ed 21420 "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 21421 },
4d47f125
TL
21422 "parallel[n]" : {
21423 "description" : "Map host parallel devices (n is 0 to 2).",
21424 "optional" : 1,
21425 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
013dc89f 21426 "type" : "string",
4772952b 21427 "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 21428 },
4d47f125
TL
21429 "protection" : {
21430 "default" : 0,
21431 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
44660702 21432 "optional" : 1,
013dc89f
DM
21433 "type" : "boolean",
21434 "typetext" : "<boolean>"
44660702 21435 },
4d47f125
TL
21436 "reboot" : {
21437 "default" : 1,
21438 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
56122987 21439 "optional" : 1,
013dc89f
DM
21440 "type" : "boolean",
21441 "typetext" : "<boolean>"
56122987 21442 },
4d47f125
TL
21443 "revert" : {
21444 "description" : "Revert a pending change.",
21445 "format" : "pve-configid-list",
21446 "optional" : 1,
013dc89f
DM
21447 "type" : "string",
21448 "typetext" : "<string>"
56122987 21449 },
c5aa7e14
TL
21450 "rng0" : {
21451 "description" : "Configure a VirtIO-based Random Number Generator.",
21452 "format" : {
21453 "max_bytes" : {
21454 "default" : 1024,
5370fa8c 21455 "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
21456 "optional" : 1,
21457 "type" : "integer"
21458 },
21459 "period" : {
21460 "default" : 1000,
21461 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
21462 "optional" : 1,
21463 "type" : "integer"
21464 },
21465 "source" : {
21466 "default_key" : 1,
5370fa8c 21467 "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
21468 "enum" : [
21469 "/dev/urandom",
21470 "/dev/random",
21471 "/dev/hwrng"
21472 ],
21473 "type" : "string"
21474 }
21475 },
21476 "optional" : 1,
21477 "type" : "string",
21478 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
21479 },
4d47f125 21480 "sata[n]" : {
7af2edf9 21481 "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
21482 "format" : {
21483 "aio" : {
21484 "description" : "AIO type to use.",
21485 "enum" : [
21486 "native",
8f4d9c87
TL
21487 "threads",
21488 "io_uring"
4d47f125
TL
21489 ],
21490 "optional" : 1,
21491 "type" : "string"
21492 },
21493 "backup" : {
21494 "description" : "Whether the drive should be included when making backups.",
21495 "optional" : 1,
21496 "type" : "boolean"
21497 },
21498 "bps" : {
21499 "description" : "Maximum r/w speed in bytes per second.",
21500 "format_description" : "bps",
21501 "optional" : 1,
21502 "type" : "integer"
21503 },
21504 "bps_max_length" : {
21505 "description" : "Maximum length of I/O bursts in seconds.",
21506 "format_description" : "seconds",
21507 "minimum" : 1,
21508 "optional" : 1,
21509 "type" : "integer"
21510 },
21511 "bps_rd" : {
21512 "description" : "Maximum read speed in bytes per second.",
21513 "format_description" : "bps",
21514 "optional" : 1,
21515 "type" : "integer"
21516 },
21517 "bps_rd_length" : {
21518 "alias" : "bps_rd_max_length"
21519 },
21520 "bps_rd_max_length" : {
21521 "description" : "Maximum length of read I/O bursts in seconds.",
21522 "format_description" : "seconds",
21523 "minimum" : 1,
21524 "optional" : 1,
21525 "type" : "integer"
21526 },
21527 "bps_wr" : {
21528 "description" : "Maximum write speed in bytes per second.",
21529 "format_description" : "bps",
21530 "optional" : 1,
21531 "type" : "integer"
21532 },
21533 "bps_wr_length" : {
21534 "alias" : "bps_wr_max_length"
21535 },
21536 "bps_wr_max_length" : {
21537 "description" : "Maximum length of write I/O bursts in seconds.",
21538 "format_description" : "seconds",
21539 "minimum" : 1,
21540 "optional" : 1,
21541 "type" : "integer"
21542 },
21543 "cache" : {
21544 "description" : "The drive's cache mode",
21545 "enum" : [
21546 "none",
21547 "writethrough",
21548 "writeback",
21549 "unsafe",
21550 "directsync"
21551 ],
21552 "optional" : 1,
21553 "type" : "string"
21554 },
21555 "cyls" : {
21556 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
21557 "optional" : 1,
21558 "type" : "integer"
21559 },
21560 "detect_zeroes" : {
21561 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
21562 "optional" : 1,
21563 "type" : "boolean"
21564 },
21565 "discard" : {
21566 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
21567 "enum" : [
21568 "ignore",
21569 "on"
21570 ],
21571 "optional" : 1,
21572 "type" : "string"
21573 },
21574 "file" : {
21575 "default_key" : 1,
21576 "description" : "The drive's backing volume.",
21577 "format" : "pve-volume-id-or-qm-path",
21578 "format_description" : "volume",
21579 "type" : "string"
21580 },
21581 "format" : {
21582 "description" : "The drive's backing file's data format.",
21583 "enum" : [
21584 "raw",
21585 "cow",
21586 "qcow",
21587 "qed",
21588 "qcow2",
21589 "vmdk",
21590 "cloop"
21591 ],
21592 "optional" : 1,
21593 "type" : "string"
21594 },
21595 "heads" : {
21596 "description" : "Force the drive's physical geometry to have a specific head count.",
21597 "optional" : 1,
21598 "type" : "integer"
21599 },
7af2edf9
TL
21600 "import-from" : {
21601 "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!",
21602 "format" : "pve-volume-id-or-absolute-path",
21603 "format_description" : "source volume",
21604 "optional" : 1,
21605 "type" : "string"
21606 },
4d47f125
TL
21607 "iops" : {
21608 "description" : "Maximum r/w I/O in operations per second.",
21609 "format_description" : "iops",
21610 "optional" : 1,
21611 "type" : "integer"
21612 },
21613 "iops_max" : {
21614 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
21615 "format_description" : "iops",
21616 "optional" : 1,
21617 "type" : "integer"
21618 },
21619 "iops_max_length" : {
21620 "description" : "Maximum length of I/O bursts in seconds.",
21621 "format_description" : "seconds",
21622 "minimum" : 1,
21623 "optional" : 1,
21624 "type" : "integer"
21625 },
21626 "iops_rd" : {
21627 "description" : "Maximum read I/O in operations per second.",
21628 "format_description" : "iops",
21629 "optional" : 1,
21630 "type" : "integer"
21631 },
21632 "iops_rd_length" : {
21633 "alias" : "iops_rd_max_length"
21634 },
21635 "iops_rd_max" : {
21636 "description" : "Maximum unthrottled read I/O pool in operations per second.",
21637 "format_description" : "iops",
21638 "optional" : 1,
21639 "type" : "integer"
21640 },
21641 "iops_rd_max_length" : {
21642 "description" : "Maximum length of read I/O bursts in seconds.",
21643 "format_description" : "seconds",
21644 "minimum" : 1,
21645 "optional" : 1,
21646 "type" : "integer"
21647 },
21648 "iops_wr" : {
21649 "description" : "Maximum write I/O in operations per second.",
21650 "format_description" : "iops",
21651 "optional" : 1,
21652 "type" : "integer"
21653 },
21654 "iops_wr_length" : {
21655 "alias" : "iops_wr_max_length"
21656 },
21657 "iops_wr_max" : {
21658 "description" : "Maximum unthrottled write I/O pool in operations per second.",
21659 "format_description" : "iops",
21660 "optional" : 1,
21661 "type" : "integer"
21662 },
21663 "iops_wr_max_length" : {
21664 "description" : "Maximum length of write I/O bursts in seconds.",
21665 "format_description" : "seconds",
21666 "minimum" : 1,
21667 "optional" : 1,
21668 "type" : "integer"
21669 },
21670 "mbps" : {
21671 "description" : "Maximum r/w speed in megabytes per second.",
21672 "format_description" : "mbps",
21673 "optional" : 1,
21674 "type" : "number"
21675 },
21676 "mbps_max" : {
21677 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
21678 "format_description" : "mbps",
21679 "optional" : 1,
21680 "type" : "number"
21681 },
21682 "mbps_rd" : {
21683 "description" : "Maximum read speed in megabytes per second.",
21684 "format_description" : "mbps",
21685 "optional" : 1,
21686 "type" : "number"
21687 },
21688 "mbps_rd_max" : {
21689 "description" : "Maximum unthrottled read pool in megabytes per second.",
21690 "format_description" : "mbps",
21691 "optional" : 1,
21692 "type" : "number"
21693 },
21694 "mbps_wr" : {
21695 "description" : "Maximum write speed in megabytes per second.",
21696 "format_description" : "mbps",
21697 "optional" : 1,
21698 "type" : "number"
21699 },
21700 "mbps_wr_max" : {
21701 "description" : "Maximum unthrottled write pool in megabytes per second.",
21702 "format_description" : "mbps",
21703 "optional" : 1,
21704 "type" : "number"
21705 },
21706 "media" : {
21707 "default" : "disk",
21708 "description" : "The drive's media type.",
21709 "enum" : [
21710 "cdrom",
21711 "disk"
21712 ],
21713 "optional" : 1,
21714 "type" : "string"
21715 },
21716 "replicate" : {
21717 "default" : 1,
21718 "description" : "Whether the drive should considered for replication jobs.",
21719 "optional" : 1,
21720 "type" : "boolean"
21721 },
21722 "rerror" : {
21723 "description" : "Read error action.",
21724 "enum" : [
21725 "ignore",
21726 "report",
21727 "stop"
21728 ],
21729 "optional" : 1,
21730 "type" : "string"
21731 },
21732 "secs" : {
21733 "description" : "Force the drive's physical geometry to have a specific sector count.",
21734 "optional" : 1,
21735 "type" : "integer"
21736 },
21737 "serial" : {
21738 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
21739 "format" : "urlencoded",
21740 "format_description" : "serial",
21741 "maxLength" : 60,
21742 "optional" : 1,
21743 "type" : "string"
21744 },
21745 "shared" : {
21746 "default" : 0,
21747 "description" : "Mark this locally-managed volume as available on all nodes",
21748 "optional" : 1,
21749 "type" : "boolean",
21750 "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!"
21751 },
21752 "size" : {
21753 "description" : "Disk size. This is purely informational and has no effect.",
21754 "format" : "disk-size",
21755 "format_description" : "DiskSize",
21756 "optional" : 1,
21757 "type" : "string"
21758 },
21759 "snapshot" : {
21760 "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.",
21761 "optional" : 1,
21762 "type" : "boolean"
21763 },
25203dc1
NC
21764 "ssd" : {
21765 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
21766 "optional" : 1,
21767 "type" : "boolean"
21768 },
4d47f125
TL
21769 "trans" : {
21770 "description" : "Force disk geometry bios translation mode.",
21771 "enum" : [
21772 "none",
21773 "lba",
21774 "auto"
21775 ],
21776 "optional" : 1,
21777 "type" : "string"
21778 },
21779 "volume" : {
21780 "alias" : "file"
21781 },
21782 "werror" : {
21783 "description" : "Write error action.",
21784 "enum" : [
21785 "enospc",
21786 "ignore",
21787 "report",
21788 "stop"
21789 ],
21790 "optional" : 1,
21791 "type" : "string"
95895385
TL
21792 },
21793 "wwn" : {
21794 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
21795 "format_description" : "wwn",
21796 "optional" : 1,
21797 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
21798 "type" : "string"
4d47f125
TL
21799 }
21800 },
21801 "optional" : 1,
21802 "type" : "string",
7af2edf9 21803 "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
21804 },
21805 "scsi[n]" : {
7af2edf9 21806 "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
21807 "format" : {
21808 "aio" : {
21809 "description" : "AIO type to use.",
21810 "enum" : [
21811 "native",
8f4d9c87
TL
21812 "threads",
21813 "io_uring"
4d47f125
TL
21814 ],
21815 "optional" : 1,
21816 "type" : "string"
21817 },
21818 "backup" : {
21819 "description" : "Whether the drive should be included when making backups.",
21820 "optional" : 1,
21821 "type" : "boolean"
21822 },
21823 "bps" : {
21824 "description" : "Maximum r/w speed in bytes per second.",
21825 "format_description" : "bps",
21826 "optional" : 1,
21827 "type" : "integer"
21828 },
21829 "bps_max_length" : {
21830 "description" : "Maximum length of I/O bursts in seconds.",
21831 "format_description" : "seconds",
21832 "minimum" : 1,
21833 "optional" : 1,
21834 "type" : "integer"
21835 },
21836 "bps_rd" : {
21837 "description" : "Maximum read speed in bytes per second.",
21838 "format_description" : "bps",
21839 "optional" : 1,
21840 "type" : "integer"
21841 },
21842 "bps_rd_length" : {
21843 "alias" : "bps_rd_max_length"
21844 },
21845 "bps_rd_max_length" : {
21846 "description" : "Maximum length of read I/O bursts in seconds.",
21847 "format_description" : "seconds",
21848 "minimum" : 1,
21849 "optional" : 1,
21850 "type" : "integer"
21851 },
21852 "bps_wr" : {
21853 "description" : "Maximum write speed in bytes per second.",
21854 "format_description" : "bps",
21855 "optional" : 1,
21856 "type" : "integer"
21857 },
21858 "bps_wr_length" : {
21859 "alias" : "bps_wr_max_length"
21860 },
21861 "bps_wr_max_length" : {
21862 "description" : "Maximum length of write I/O bursts in seconds.",
21863 "format_description" : "seconds",
21864 "minimum" : 1,
21865 "optional" : 1,
21866 "type" : "integer"
21867 },
21868 "cache" : {
21869 "description" : "The drive's cache mode",
21870 "enum" : [
21871 "none",
21872 "writethrough",
21873 "writeback",
21874 "unsafe",
21875 "directsync"
21876 ],
21877 "optional" : 1,
21878 "type" : "string"
21879 },
21880 "cyls" : {
21881 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
21882 "optional" : 1,
21883 "type" : "integer"
21884 },
21885 "detect_zeroes" : {
21886 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
21887 "optional" : 1,
21888 "type" : "boolean"
21889 },
21890 "discard" : {
21891 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
21892 "enum" : [
21893 "ignore",
21894 "on"
21895 ],
21896 "optional" : 1,
21897 "type" : "string"
21898 },
21899 "file" : {
21900 "default_key" : 1,
21901 "description" : "The drive's backing volume.",
21902 "format" : "pve-volume-id-or-qm-path",
21903 "format_description" : "volume",
21904 "type" : "string"
21905 },
21906 "format" : {
21907 "description" : "The drive's backing file's data format.",
21908 "enum" : [
21909 "raw",
21910 "cow",
21911 "qcow",
21912 "qed",
21913 "qcow2",
21914 "vmdk",
21915 "cloop"
21916 ],
21917 "optional" : 1,
21918 "type" : "string"
21919 },
21920 "heads" : {
21921 "description" : "Force the drive's physical geometry to have a specific head count.",
21922 "optional" : 1,
21923 "type" : "integer"
21924 },
7af2edf9
TL
21925 "import-from" : {
21926 "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!",
21927 "format" : "pve-volume-id-or-absolute-path",
21928 "format_description" : "source volume",
21929 "optional" : 1,
21930 "type" : "string"
21931 },
4d47f125
TL
21932 "iops" : {
21933 "description" : "Maximum r/w I/O in operations per second.",
21934 "format_description" : "iops",
21935 "optional" : 1,
21936 "type" : "integer"
21937 },
21938 "iops_max" : {
21939 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
21940 "format_description" : "iops",
21941 "optional" : 1,
21942 "type" : "integer"
21943 },
21944 "iops_max_length" : {
21945 "description" : "Maximum length of I/O bursts in seconds.",
21946 "format_description" : "seconds",
21947 "minimum" : 1,
21948 "optional" : 1,
21949 "type" : "integer"
21950 },
21951 "iops_rd" : {
21952 "description" : "Maximum read I/O in operations per second.",
21953 "format_description" : "iops",
21954 "optional" : 1,
21955 "type" : "integer"
21956 },
21957 "iops_rd_length" : {
21958 "alias" : "iops_rd_max_length"
21959 },
21960 "iops_rd_max" : {
21961 "description" : "Maximum unthrottled read I/O pool in operations per second.",
21962 "format_description" : "iops",
21963 "optional" : 1,
21964 "type" : "integer"
21965 },
21966 "iops_rd_max_length" : {
21967 "description" : "Maximum length of read I/O bursts in seconds.",
21968 "format_description" : "seconds",
21969 "minimum" : 1,
21970 "optional" : 1,
21971 "type" : "integer"
21972 },
21973 "iops_wr" : {
21974 "description" : "Maximum write I/O in operations per second.",
21975 "format_description" : "iops",
21976 "optional" : 1,
21977 "type" : "integer"
21978 },
21979 "iops_wr_length" : {
21980 "alias" : "iops_wr_max_length"
21981 },
21982 "iops_wr_max" : {
21983 "description" : "Maximum unthrottled write I/O pool in operations per second.",
21984 "format_description" : "iops",
21985 "optional" : 1,
21986 "type" : "integer"
21987 },
21988 "iops_wr_max_length" : {
21989 "description" : "Maximum length of write I/O bursts in seconds.",
21990 "format_description" : "seconds",
21991 "minimum" : 1,
21992 "optional" : 1,
21993 "type" : "integer"
21994 },
21995 "iothread" : {
21996 "description" : "Whether to use iothreads for this drive",
21997 "optional" : 1,
21998 "type" : "boolean"
21999 },
22000 "mbps" : {
22001 "description" : "Maximum r/w speed in megabytes per second.",
22002 "format_description" : "mbps",
22003 "optional" : 1,
22004 "type" : "number"
22005 },
22006 "mbps_max" : {
22007 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
22008 "format_description" : "mbps",
22009 "optional" : 1,
22010 "type" : "number"
22011 },
22012 "mbps_rd" : {
22013 "description" : "Maximum read speed in megabytes per second.",
22014 "format_description" : "mbps",
22015 "optional" : 1,
22016 "type" : "number"
22017 },
22018 "mbps_rd_max" : {
22019 "description" : "Maximum unthrottled read pool in megabytes per second.",
22020 "format_description" : "mbps",
22021 "optional" : 1,
22022 "type" : "number"
22023 },
22024 "mbps_wr" : {
22025 "description" : "Maximum write speed in megabytes per second.",
22026 "format_description" : "mbps",
22027 "optional" : 1,
22028 "type" : "number"
22029 },
22030 "mbps_wr_max" : {
22031 "description" : "Maximum unthrottled write pool in megabytes per second.",
22032 "format_description" : "mbps",
22033 "optional" : 1,
22034 "type" : "number"
22035 },
22036 "media" : {
22037 "default" : "disk",
22038 "description" : "The drive's media type.",
22039 "enum" : [
22040 "cdrom",
22041 "disk"
22042 ],
22043 "optional" : 1,
22044 "type" : "string"
22045 },
22046 "queues" : {
22047 "description" : "Number of queues.",
22048 "minimum" : 2,
22049 "optional" : 1,
22050 "type" : "integer"
22051 },
22052 "replicate" : {
22053 "default" : 1,
22054 "description" : "Whether the drive should considered for replication jobs.",
22055 "optional" : 1,
22056 "type" : "boolean"
22057 },
22058 "rerror" : {
22059 "description" : "Read error action.",
22060 "enum" : [
22061 "ignore",
22062 "report",
22063 "stop"
22064 ],
22065 "optional" : 1,
22066 "type" : "string"
22067 },
5370fa8c
TL
22068 "ro" : {
22069 "description" : "Whether the drive is read-only.",
22070 "optional" : 1,
22071 "type" : "boolean"
22072 },
4d47f125
TL
22073 "scsiblock" : {
22074 "default" : 0,
22075 "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",
22076 "optional" : 1,
22077 "type" : "boolean"
22078 },
22079 "secs" : {
22080 "description" : "Force the drive's physical geometry to have a specific sector count.",
22081 "optional" : 1,
22082 "type" : "integer"
22083 },
22084 "serial" : {
22085 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
22086 "format" : "urlencoded",
22087 "format_description" : "serial",
22088 "maxLength" : 60,
22089 "optional" : 1,
22090 "type" : "string"
22091 },
22092 "shared" : {
22093 "default" : 0,
22094 "description" : "Mark this locally-managed volume as available on all nodes",
22095 "optional" : 1,
22096 "type" : "boolean",
22097 "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!"
22098 },
22099 "size" : {
22100 "description" : "Disk size. This is purely informational and has no effect.",
22101 "format" : "disk-size",
22102 "format_description" : "DiskSize",
22103 "optional" : 1,
22104 "type" : "string"
22105 },
22106 "snapshot" : {
22107 "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.",
22108 "optional" : 1,
22109 "type" : "boolean"
22110 },
25203dc1
NC
22111 "ssd" : {
22112 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
22113 "optional" : 1,
22114 "type" : "boolean"
22115 },
4d47f125
TL
22116 "trans" : {
22117 "description" : "Force disk geometry bios translation mode.",
22118 "enum" : [
22119 "none",
22120 "lba",
22121 "auto"
22122 ],
22123 "optional" : 1,
22124 "type" : "string"
22125 },
22126 "volume" : {
22127 "alias" : "file"
22128 },
22129 "werror" : {
22130 "description" : "Write error action.",
22131 "enum" : [
22132 "enospc",
22133 "ignore",
22134 "report",
22135 "stop"
22136 ],
22137 "optional" : 1,
22138 "type" : "string"
95895385
TL
22139 },
22140 "wwn" : {
22141 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
22142 "format_description" : "wwn",
22143 "optional" : 1,
22144 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
22145 "type" : "string"
4d47f125
TL
22146 }
22147 },
22148 "optional" : 1,
22149 "type" : "string",
7af2edf9 22150 "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
22151 },
22152 "scsihw" : {
22153 "default" : "lsi",
22154 "description" : "SCSI controller model",
22155 "enum" : [
22156 "lsi",
22157 "lsi53c810",
22158 "virtio-scsi-pci",
22159 "virtio-scsi-single",
22160 "megasas",
22161 "pvscsi"
22162 ],
22163 "optional" : 1,
22164 "type" : "string"
22165 },
22166 "searchdomain" : {
de786b48 22167 "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
22168 "optional" : 1,
22169 "type" : "string",
22170 "typetext" : "<string>"
22171 },
22172 "serial[n]" : {
22173 "description" : "Create a serial device inside the VM (n is 0 to 3)",
22174 "optional" : 1,
22175 "pattern" : "(/dev/.+|socket)",
22176 "type" : "string",
4772952b 22177 "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
22178 },
22179 "shares" : {
22180 "default" : 1000,
22181 "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.",
22182 "maximum" : 50000,
22183 "minimum" : 0,
22184 "optional" : 1,
22185 "type" : "integer",
22186 "typetext" : "<integer> (0 - 50000)"
22187 },
22188 "skiplock" : {
22189 "description" : "Ignore locks - only root is allowed to use this option.",
22190 "optional" : 1,
22191 "type" : "boolean",
22192 "typetext" : "<boolean>"
22193 },
22194 "smbios1" : {
22195 "description" : "Specify SMBIOS type 1 fields.",
22196 "format" : "pve-qm-smbios1",
1e3f8156 22197 "maxLength" : 512,
4d47f125
TL
22198 "optional" : 1,
22199 "type" : "string",
1e3f8156 22200 "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
22201 },
22202 "smp" : {
22203 "default" : 1,
22204 "description" : "The number of CPUs. Please use option -sockets instead.",
22205 "minimum" : 1,
22206 "optional" : 1,
22207 "type" : "integer",
22208 "typetext" : "<integer> (1 - N)"
22209 },
22210 "sockets" : {
22211 "default" : 1,
22212 "description" : "The number of CPU sockets.",
22213 "minimum" : 1,
22214 "optional" : 1,
22215 "type" : "integer",
22216 "typetext" : "<integer> (1 - N)"
22217 },
1c532546
TL
22218 "spice_enhancements" : {
22219 "description" : "Configure additional enhancements for SPICE.",
22220 "format" : {
22221 "foldersharing" : {
22222 "default" : "0",
22223 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
22224 "optional" : 1,
22225 "type" : "boolean"
22226 },
22227 "videostreaming" : {
22228 "default" : "off",
22229 "description" : "Enable video streaming. Uses compression for detected video streams.",
22230 "enum" : [
22231 "off",
22232 "all",
22233 "filter"
22234 ],
22235 "optional" : 1,
22236 "type" : "string"
22237 }
22238 },
22239 "optional" : 1,
22240 "type" : "string",
22241 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
22242 },
4d47f125
TL
22243 "sshkeys" : {
22244 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
22245 "format" : "urlencoded",
22246 "optional" : 1,
22247 "type" : "string",
22248 "typetext" : "<string>"
22249 },
22250 "startdate" : {
22251 "default" : "now",
4772952b 22252 "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
22253 "optional" : 1,
22254 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
22255 "type" : "string",
22256 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
22257 },
22258 "startup" : {
22259 "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.",
22260 "format" : "pve-startup-order",
22261 "optional" : 1,
22262 "type" : "string",
22263 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
22264 },
22265 "tablet" : {
22266 "default" : 1,
22267 "description" : "Enable/disable the USB tablet device.",
22268 "optional" : 1,
22269 "type" : "boolean",
22270 "typetext" : "<boolean>",
4772952b 22271 "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 22272 },
5c1699e5
TL
22273 "tags" : {
22274 "description" : "Tags of the VM. This is only meta information.",
22275 "format" : "pve-tag-list",
22276 "optional" : 1,
22277 "type" : "string",
22278 "typetext" : "<string>"
22279 },
4d47f125
TL
22280 "tdf" : {
22281 "default" : 0,
22282 "description" : "Enable/disable time drift fix.",
22283 "optional" : 1,
22284 "type" : "boolean",
22285 "typetext" : "<boolean>"
22286 },
22287 "template" : {
22288 "default" : 0,
22289 "description" : "Enable/disable Template.",
22290 "optional" : 1,
22291 "type" : "boolean",
22292 "typetext" : "<boolean>"
22293 },
5370fa8c 22294 "tpmstate0" : {
7af2edf9 22295 "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
22296 "format" : {
22297 "file" : {
22298 "default_key" : 1,
22299 "description" : "The drive's backing volume.",
22300 "format" : "pve-volume-id-or-qm-path",
22301 "format_description" : "volume",
22302 "type" : "string"
22303 },
7af2edf9
TL
22304 "import-from" : {
22305 "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!",
22306 "format" : "pve-volume-id-or-absolute-path",
22307 "format_description" : "source volume",
22308 "optional" : 1,
22309 "type" : "string"
22310 },
5370fa8c
TL
22311 "size" : {
22312 "description" : "Disk size. This is purely informational and has no effect.",
22313 "format" : "disk-size",
22314 "format_description" : "DiskSize",
22315 "optional" : 1,
22316 "type" : "string"
22317 },
22318 "version" : {
22319 "default" : "v2.0",
22320 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
22321 "enum" : [
22322 "v1.2",
22323 "v2.0"
22324 ],
22325 "optional" : 1,
22326 "type" : "string"
22327 },
22328 "volume" : {
22329 "alias" : "file"
22330 }
22331 },
22332 "optional" : 1,
22333 "type" : "string",
7af2edf9 22334 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 22335 },
4d47f125
TL
22336 "unused[n]" : {
22337 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
22338 "format" : {
22339 "file" : {
22340 "default_key" : 1,
22341 "description" : "The drive's backing volume.",
22342 "format" : "pve-volume-id",
22343 "format_description" : "volume",
22344 "type" : "string"
22345 },
22346 "volume" : {
22347 "alias" : "file"
22348 }
22349 },
4d47f125
TL
22350 "optional" : 1,
22351 "type" : "string",
c5aa7e14 22352 "typetext" : "[file=]<volume>"
4d47f125
TL
22353 },
22354 "usb[n]" : {
4e7f60c2 22355 "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
22356 "format" : {
22357 "host" : {
22358 "default_key" : 1,
499c9b7f 22359 "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 22360 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
22361 "optional" : 1,
22362 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
22363 "type" : "string"
22364 },
22365 "mapping" : {
22366 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
22367 "format" : "pve-configid",
22368 "format_description" : "mapping-id",
22369 "optional" : 1,
4d47f125
TL
22370 "type" : "string"
22371 },
22372 "usb3" : {
22373 "default" : 0,
4e7f60c2 22374 "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
22375 "optional" : 1,
22376 "type" : "boolean"
22377 }
22378 },
22379 "optional" : 1,
22380 "type" : "string",
499c9b7f 22381 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
4d47f125
TL
22382 },
22383 "vcpus" : {
22384 "default" : 0,
22385 "description" : "Number of hotplugged vcpus.",
22386 "minimum" : 1,
22387 "optional" : 1,
22388 "type" : "integer",
22389 "typetext" : "<integer> (1 - N)"
22390 },
22391 "vga" : {
e2d681b3
TL
22392 "description" : "Configure the VGA hardware.",
22393 "format" : {
22394 "memory" : {
22395 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
22396 "maximum" : 512,
22397 "minimum" : 4,
22398 "optional" : 1,
22399 "type" : "integer"
22400 },
22401 "type" : {
22402 "default" : "std",
22403 "default_key" : 1,
22404 "description" : "Select the VGA type.",
22405 "enum" : [
22406 "cirrus",
22407 "qxl",
22408 "qxl2",
22409 "qxl3",
22410 "qxl4",
5f26e15b 22411 "none",
e2d681b3
TL
22412 "serial0",
22413 "serial1",
22414 "serial2",
22415 "serial3",
22416 "std",
22417 "virtio",
7af2edf9 22418 "virtio-gl",
e2d681b3
TL
22419 "vmware"
22420 ],
22421 "optional" : 1,
22422 "type" : "string"
22423 }
22424 },
4d47f125
TL
22425 "optional" : 1,
22426 "type" : "string",
e2d681b3
TL
22427 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
22428 "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
22429 },
22430 "virtio[n]" : {
7af2edf9 22431 "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
22432 "format" : {
22433 "aio" : {
22434 "description" : "AIO type to use.",
22435 "enum" : [
22436 "native",
8f4d9c87
TL
22437 "threads",
22438 "io_uring"
4d47f125
TL
22439 ],
22440 "optional" : 1,
22441 "type" : "string"
22442 },
22443 "backup" : {
22444 "description" : "Whether the drive should be included when making backups.",
22445 "optional" : 1,
22446 "type" : "boolean"
22447 },
22448 "bps" : {
22449 "description" : "Maximum r/w speed in bytes per second.",
22450 "format_description" : "bps",
22451 "optional" : 1,
22452 "type" : "integer"
22453 },
22454 "bps_max_length" : {
22455 "description" : "Maximum length of I/O bursts in seconds.",
22456 "format_description" : "seconds",
22457 "minimum" : 1,
22458 "optional" : 1,
22459 "type" : "integer"
22460 },
22461 "bps_rd" : {
22462 "description" : "Maximum read speed in bytes per second.",
22463 "format_description" : "bps",
22464 "optional" : 1,
22465 "type" : "integer"
22466 },
22467 "bps_rd_length" : {
22468 "alias" : "bps_rd_max_length"
22469 },
22470 "bps_rd_max_length" : {
22471 "description" : "Maximum length of read I/O bursts in seconds.",
22472 "format_description" : "seconds",
22473 "minimum" : 1,
22474 "optional" : 1,
22475 "type" : "integer"
22476 },
22477 "bps_wr" : {
22478 "description" : "Maximum write speed in bytes per second.",
22479 "format_description" : "bps",
22480 "optional" : 1,
22481 "type" : "integer"
22482 },
22483 "bps_wr_length" : {
22484 "alias" : "bps_wr_max_length"
22485 },
22486 "bps_wr_max_length" : {
22487 "description" : "Maximum length of write I/O bursts in seconds.",
22488 "format_description" : "seconds",
22489 "minimum" : 1,
22490 "optional" : 1,
22491 "type" : "integer"
22492 },
22493 "cache" : {
22494 "description" : "The drive's cache mode",
22495 "enum" : [
22496 "none",
22497 "writethrough",
22498 "writeback",
22499 "unsafe",
22500 "directsync"
22501 ],
22502 "optional" : 1,
22503 "type" : "string"
22504 },
22505 "cyls" : {
22506 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
22507 "optional" : 1,
22508 "type" : "integer"
22509 },
22510 "detect_zeroes" : {
22511 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
22512 "optional" : 1,
22513 "type" : "boolean"
22514 },
22515 "discard" : {
22516 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
22517 "enum" : [
22518 "ignore",
22519 "on"
22520 ],
22521 "optional" : 1,
22522 "type" : "string"
22523 },
22524 "file" : {
22525 "default_key" : 1,
22526 "description" : "The drive's backing volume.",
22527 "format" : "pve-volume-id-or-qm-path",
22528 "format_description" : "volume",
22529 "type" : "string"
22530 },
22531 "format" : {
22532 "description" : "The drive's backing file's data format.",
22533 "enum" : [
22534 "raw",
22535 "cow",
22536 "qcow",
22537 "qed",
22538 "qcow2",
22539 "vmdk",
22540 "cloop"
22541 ],
22542 "optional" : 1,
22543 "type" : "string"
22544 },
22545 "heads" : {
22546 "description" : "Force the drive's physical geometry to have a specific head count.",
22547 "optional" : 1,
22548 "type" : "integer"
22549 },
7af2edf9
TL
22550 "import-from" : {
22551 "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!",
22552 "format" : "pve-volume-id-or-absolute-path",
22553 "format_description" : "source volume",
22554 "optional" : 1,
22555 "type" : "string"
22556 },
4d47f125
TL
22557 "iops" : {
22558 "description" : "Maximum r/w I/O in operations per second.",
22559 "format_description" : "iops",
22560 "optional" : 1,
22561 "type" : "integer"
22562 },
22563 "iops_max" : {
22564 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
22565 "format_description" : "iops",
22566 "optional" : 1,
22567 "type" : "integer"
22568 },
22569 "iops_max_length" : {
22570 "description" : "Maximum length of I/O bursts in seconds.",
22571 "format_description" : "seconds",
22572 "minimum" : 1,
22573 "optional" : 1,
22574 "type" : "integer"
22575 },
22576 "iops_rd" : {
22577 "description" : "Maximum read I/O in operations per second.",
22578 "format_description" : "iops",
22579 "optional" : 1,
22580 "type" : "integer"
22581 },
22582 "iops_rd_length" : {
22583 "alias" : "iops_rd_max_length"
22584 },
22585 "iops_rd_max" : {
22586 "description" : "Maximum unthrottled read I/O pool in operations per second.",
22587 "format_description" : "iops",
22588 "optional" : 1,
22589 "type" : "integer"
22590 },
22591 "iops_rd_max_length" : {
22592 "description" : "Maximum length of read I/O bursts in seconds.",
22593 "format_description" : "seconds",
22594 "minimum" : 1,
22595 "optional" : 1,
22596 "type" : "integer"
22597 },
22598 "iops_wr" : {
22599 "description" : "Maximum write I/O in operations per second.",
22600 "format_description" : "iops",
22601 "optional" : 1,
22602 "type" : "integer"
22603 },
22604 "iops_wr_length" : {
22605 "alias" : "iops_wr_max_length"
22606 },
22607 "iops_wr_max" : {
22608 "description" : "Maximum unthrottled write I/O pool in operations per second.",
22609 "format_description" : "iops",
22610 "optional" : 1,
22611 "type" : "integer"
22612 },
22613 "iops_wr_max_length" : {
22614 "description" : "Maximum length of write I/O bursts in seconds.",
22615 "format_description" : "seconds",
22616 "minimum" : 1,
22617 "optional" : 1,
22618 "type" : "integer"
22619 },
22620 "iothread" : {
22621 "description" : "Whether to use iothreads for this drive",
22622 "optional" : 1,
22623 "type" : "boolean"
22624 },
22625 "mbps" : {
22626 "description" : "Maximum r/w speed in megabytes per second.",
22627 "format_description" : "mbps",
22628 "optional" : 1,
22629 "type" : "number"
22630 },
22631 "mbps_max" : {
22632 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
22633 "format_description" : "mbps",
22634 "optional" : 1,
22635 "type" : "number"
22636 },
22637 "mbps_rd" : {
22638 "description" : "Maximum read speed in megabytes per second.",
22639 "format_description" : "mbps",
22640 "optional" : 1,
22641 "type" : "number"
22642 },
22643 "mbps_rd_max" : {
22644 "description" : "Maximum unthrottled read pool in megabytes per second.",
22645 "format_description" : "mbps",
22646 "optional" : 1,
22647 "type" : "number"
22648 },
22649 "mbps_wr" : {
22650 "description" : "Maximum write speed in megabytes per second.",
22651 "format_description" : "mbps",
22652 "optional" : 1,
22653 "type" : "number"
22654 },
22655 "mbps_wr_max" : {
22656 "description" : "Maximum unthrottled write pool in megabytes per second.",
22657 "format_description" : "mbps",
22658 "optional" : 1,
22659 "type" : "number"
22660 },
22661 "media" : {
22662 "default" : "disk",
22663 "description" : "The drive's media type.",
22664 "enum" : [
22665 "cdrom",
22666 "disk"
22667 ],
22668 "optional" : 1,
22669 "type" : "string"
22670 },
22671 "replicate" : {
22672 "default" : 1,
22673 "description" : "Whether the drive should considered for replication jobs.",
22674 "optional" : 1,
22675 "type" : "boolean"
22676 },
22677 "rerror" : {
22678 "description" : "Read error action.",
22679 "enum" : [
22680 "ignore",
22681 "report",
22682 "stop"
22683 ],
22684 "optional" : 1,
22685 "type" : "string"
22686 },
5370fa8c
TL
22687 "ro" : {
22688 "description" : "Whether the drive is read-only.",
22689 "optional" : 1,
22690 "type" : "boolean"
22691 },
4d47f125
TL
22692 "secs" : {
22693 "description" : "Force the drive's physical geometry to have a specific sector count.",
22694 "optional" : 1,
22695 "type" : "integer"
22696 },
22697 "serial" : {
22698 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
22699 "format" : "urlencoded",
22700 "format_description" : "serial",
22701 "maxLength" : 60,
22702 "optional" : 1,
22703 "type" : "string"
22704 },
22705 "shared" : {
22706 "default" : 0,
22707 "description" : "Mark this locally-managed volume as available on all nodes",
22708 "optional" : 1,
22709 "type" : "boolean",
22710 "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!"
22711 },
22712 "size" : {
22713 "description" : "Disk size. This is purely informational and has no effect.",
22714 "format" : "disk-size",
22715 "format_description" : "DiskSize",
22716 "optional" : 1,
22717 "type" : "string"
22718 },
22719 "snapshot" : {
22720 "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.",
22721 "optional" : 1,
22722 "type" : "boolean"
22723 },
22724 "trans" : {
22725 "description" : "Force disk geometry bios translation mode.",
22726 "enum" : [
22727 "none",
22728 "lba",
22729 "auto"
22730 ],
22731 "optional" : 1,
22732 "type" : "string"
22733 },
22734 "volume" : {
22735 "alias" : "file"
22736 },
22737 "werror" : {
22738 "description" : "Write error action.",
22739 "enum" : [
22740 "enospc",
22741 "ignore",
22742 "report",
22743 "stop"
22744 ],
22745 "optional" : 1,
22746 "type" : "string"
22747 }
22748 },
22749 "optional" : 1,
22750 "type" : "string",
7af2edf9 22751 "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
22752 },
22753 "vmgenid" : {
22754 "default" : "1 (autogenerated)",
22755 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
22756 "format_description" : "UUID",
22757 "optional" : 1,
22758 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
22759 "type" : "string",
4772952b 22760 "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
22761 },
22762 "vmid" : {
22763 "description" : "The (unique) ID of the VM.",
22764 "format" : "pve-vmid",
8dd66e12
TL
22765 "maximum" : 999999999,
22766 "minimum" : 100,
4d47f125 22767 "type" : "integer",
8dd66e12 22768 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22769 },
22770 "vmstatestorage" : {
22771 "description" : "Default storage for VM state volumes/files.",
22772 "format" : "pve-storage-id",
22773 "optional" : 1,
22774 "type" : "string",
22775 "typetext" : "<string>"
22776 },
22777 "watchdog" : {
22778 "description" : "Create a virtual hardware watchdog device.",
22779 "format" : "pve-qm-watchdog",
22780 "optional" : 1,
22781 "type" : "string",
22782 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
22783 "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)"
22784 }
22785 }
22786 },
22787 "permissions" : {
22788 "check" : [
22789 "perm",
22790 "/vms/{vmid}",
22791 [
22792 "VM.Config.Disk",
22793 "VM.Config.CDROM",
22794 "VM.Config.CPU",
22795 "VM.Config.Memory",
22796 "VM.Config.Network",
22797 "VM.Config.HWType",
ac70d7d1
TL
22798 "VM.Config.Options",
22799 "VM.Config.Cloudinit"
4d47f125
TL
22800 ],
22801 "any",
22802 1
22803 ]
22804 },
22805 "protected" : 1,
22806 "proxyto" : "node",
22807 "returns" : {
22808 "type" : "null"
22809 }
22810 }
22811 },
22812 "leaf" : 1,
22813 "path" : "/nodes/{node}/qemu/{vmid}/config",
22814 "text" : "config"
22815 },
22816 {
22817 "info" : {
22818 "GET" : {
e9cd3bd4
TL
22819 "allowtoken" : 1,
22820 "description" : "Get the virtual machine configuration with both current and pending values.",
4d47f125
TL
22821 "method" : "GET",
22822 "name" : "vm_pending",
22823 "parameters" : {
22824 "additionalProperties" : 0,
22825 "properties" : {
22826 "node" : {
22827 "description" : "The cluster node name.",
22828 "format" : "pve-node",
22829 "type" : "string",
22830 "typetext" : "<string>"
22831 },
22832 "vmid" : {
22833 "description" : "The (unique) ID of the VM.",
22834 "format" : "pve-vmid",
8dd66e12
TL
22835 "maximum" : 999999999,
22836 "minimum" : 100,
4d47f125 22837 "type" : "integer",
8dd66e12 22838 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
22839 }
22840 }
22841 },
22842 "permissions" : {
22843 "check" : [
22844 "perm",
22845 "/vms/{vmid}",
22846 [
22847 "VM.Audit"
22848 ]
22849 ]
22850 },
22851 "proxyto" : "node",
22852 "returns" : {
22853 "items" : {
22854 "properties" : {
22855 "delete" : {
22856 "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
22857 "maximum" : 2,
22858 "minimum" : 0,
22859 "optional" : 1,
22860 "type" : "integer"
22861 },
22862 "key" : {
22863 "description" : "Configuration option name.",
22864 "type" : "string"
22865 },
22866 "pending" : {
22867 "description" : "Pending value.",
22868 "optional" : 1,
22869 "type" : "string"
22870 },
22871 "value" : {
22872 "description" : "Current value.",
22873 "optional" : 1,
22874 "type" : "string"
22875 }
22876 },
22877 "type" : "object"
22878 },
22879 "type" : "array"
22880 }
22881 }
22882 },
22883 "leaf" : 1,
22884 "path" : "/nodes/{node}/qemu/{vmid}/pending",
22885 "text" : "pending"
22886 },
4e7f60c2
TL
22887 {
22888 "children" : [
22889 {
22890 "info" : {
22891 "GET" : {
22892 "allowtoken" : 1,
22893 "description" : "Get automatically generated cloudinit config.",
22894 "method" : "GET",
22895 "name" : "cloudinit_generated_config_dump",
22896 "parameters" : {
22897 "additionalProperties" : 0,
22898 "properties" : {
22899 "node" : {
22900 "description" : "The cluster node name.",
22901 "format" : "pve-node",
22902 "type" : "string",
22903 "typetext" : "<string>"
22904 },
22905 "type" : {
22906 "description" : "Config type.",
22907 "enum" : [
22908 "user",
22909 "network",
22910 "meta"
22911 ],
22912 "type" : "string"
22913 },
22914 "vmid" : {
22915 "description" : "The (unique) ID of the VM.",
22916 "format" : "pve-vmid",
8dd66e12
TL
22917 "maximum" : 999999999,
22918 "minimum" : 100,
4e7f60c2 22919 "type" : "integer",
8dd66e12 22920 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
22921 }
22922 }
22923 },
22924 "permissions" : {
22925 "check" : [
22926 "perm",
22927 "/vms/{vmid}",
22928 [
22929 "VM.Audit"
22930 ]
22931 ]
22932 },
22933 "proxyto" : "node",
22934 "returns" : {
22935 "type" : "string"
22936 }
22937 }
22938 },
22939 "leaf" : 1,
22940 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit/dump",
22941 "text" : "dump"
22942 }
22943 ],
22944 "info" : {
22945 "GET" : {
22946 "allowtoken" : 1,
22947 "description" : "Get the cloudinit configuration with both current and pending values.",
22948 "method" : "GET",
22949 "name" : "cloudinit_pending",
22950 "parameters" : {
22951 "additionalProperties" : 0,
22952 "properties" : {
22953 "node" : {
22954 "description" : "The cluster node name.",
22955 "format" : "pve-node",
22956 "type" : "string",
22957 "typetext" : "<string>"
22958 },
22959 "vmid" : {
22960 "description" : "The (unique) ID of the VM.",
22961 "format" : "pve-vmid",
8dd66e12
TL
22962 "maximum" : 999999999,
22963 "minimum" : 100,
4e7f60c2 22964 "type" : "integer",
8dd66e12 22965 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
22966 }
22967 }
22968 },
22969 "permissions" : {
22970 "check" : [
22971 "perm",
22972 "/vms/{vmid}",
22973 [
22974 "VM.Audit"
22975 ]
22976 ]
22977 },
22978 "proxyto" : "node",
22979 "returns" : {
22980 "items" : {
22981 "properties" : {
159464a9
TL
22982 "delete" : {
22983 "description" : "Indicates a pending delete request if present and not 0. ",
22984 "maximum" : 1,
22985 "minimum" : 0,
22986 "optional" : 1,
22987 "type" : "integer"
22988 },
4e7f60c2
TL
22989 "key" : {
22990 "description" : "Configuration option name.",
22991 "type" : "string"
22992 },
159464a9 22993 "pending" : {
81a3384d 22994 "description" : "The new pending value.",
4e7f60c2
TL
22995 "optional" : 1,
22996 "type" : "string"
22997 },
159464a9 22998 "value" : {
81a3384d 22999 "description" : "Value as it was used to generate the current cloudinit image.",
4e7f60c2
TL
23000 "optional" : 1,
23001 "type" : "string"
23002 }
23003 },
23004 "type" : "object"
23005 },
23006 "type" : "array"
23007 }
23008 },
23009 "PUT" : {
23010 "allowtoken" : 1,
23011 "description" : "Regenerate and change cloudinit config drive.",
23012 "method" : "PUT",
23013 "name" : "cloudinit_update",
23014 "parameters" : {
23015 "additionalProperties" : 0,
23016 "properties" : {
23017 "node" : {
23018 "description" : "The cluster node name.",
23019 "format" : "pve-node",
23020 "type" : "string",
23021 "typetext" : "<string>"
23022 },
23023 "vmid" : {
23024 "description" : "The (unique) ID of the VM.",
23025 "format" : "pve-vmid",
8dd66e12
TL
23026 "maximum" : 999999999,
23027 "minimum" : 100,
4e7f60c2 23028 "type" : "integer",
8dd66e12 23029 "typetext" : "<integer> (100 - 999999999)"
4e7f60c2
TL
23030 }
23031 }
23032 },
23033 "permissions" : {
23034 "check" : [
23035 "perm",
23036 "/vms/{vmid}",
82551b2b
TL
23037 [
23038 "VM.Config.Cloudinit"
23039 ]
4e7f60c2
TL
23040 ]
23041 },
23042 "protected" : 1,
23043 "proxyto" : "node",
23044 "returns" : {
23045 "type" : "null"
23046 }
23047 }
23048 },
23049 "leaf" : 0,
23050 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit",
23051 "text" : "cloudinit"
23052 },
4d47f125
TL
23053 {
23054 "info" : {
23055 "PUT" : {
e9cd3bd4 23056 "allowtoken" : 1,
4d47f125
TL
23057 "description" : "Unlink/delete disk images.",
23058 "method" : "PUT",
23059 "name" : "unlink",
23060 "parameters" : {
23061 "additionalProperties" : 0,
23062 "properties" : {
23063 "force" : {
23064 "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.",
23065 "optional" : 1,
23066 "type" : "boolean",
23067 "typetext" : "<boolean>"
23068 },
23069 "idlist" : {
23070 "description" : "A list of disk IDs you want to delete.",
23071 "format" : "pve-configid-list",
23072 "type" : "string",
23073 "typetext" : "<string>"
23074 },
23075 "node" : {
23076 "description" : "The cluster node name.",
23077 "format" : "pve-node",
23078 "type" : "string",
23079 "typetext" : "<string>"
23080 },
23081 "vmid" : {
23082 "description" : "The (unique) ID of the VM.",
23083 "format" : "pve-vmid",
8dd66e12
TL
23084 "maximum" : 999999999,
23085 "minimum" : 100,
4d47f125 23086 "type" : "integer",
8dd66e12 23087 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23088 }
23089 }
23090 },
23091 "permissions" : {
23092 "check" : [
23093 "perm",
23094 "/vms/{vmid}",
23095 [
23096 "VM.Config.Disk"
23097 ]
23098 ]
23099 },
23100 "protected" : 1,
23101 "proxyto" : "node",
23102 "returns" : {
23103 "type" : "null"
23104 }
23105 }
23106 },
23107 "leaf" : 1,
23108 "path" : "/nodes/{node}/qemu/{vmid}/unlink",
23109 "text" : "unlink"
23110 },
23111 {
23112 "info" : {
23113 "POST" : {
e9cd3bd4 23114 "allowtoken" : 1,
4d47f125
TL
23115 "description" : "Creates a TCP VNC proxy connections.",
23116 "method" : "POST",
23117 "name" : "vncproxy",
23118 "parameters" : {
23119 "additionalProperties" : 0,
23120 "properties" : {
ac70d7d1
TL
23121 "generate-password" : {
23122 "default" : 0,
23123 "description" : "Generates a random password to be used as ticket instead of the API ticket.",
23124 "optional" : 1,
23125 "type" : "boolean",
23126 "typetext" : "<boolean>"
23127 },
4d47f125
TL
23128 "node" : {
23129 "description" : "The cluster node name.",
23130 "format" : "pve-node",
23131 "type" : "string",
23132 "typetext" : "<string>"
23133 },
23134 "vmid" : {
23135 "description" : "The (unique) ID of the VM.",
23136 "format" : "pve-vmid",
8dd66e12
TL
23137 "maximum" : 999999999,
23138 "minimum" : 100,
4d47f125 23139 "type" : "integer",
8dd66e12 23140 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23141 },
23142 "websocket" : {
bd92b745 23143 "description" : "Prepare for websocket upgrade (only required when using serial terminal, otherwise upgrade is always possible).",
4d47f125
TL
23144 "optional" : 1,
23145 "type" : "boolean",
23146 "typetext" : "<boolean>"
23147 }
23148 }
23149 },
23150 "permissions" : {
23151 "check" : [
23152 "perm",
23153 "/vms/{vmid}",
23154 [
23155 "VM.Console"
23156 ]
23157 ]
23158 },
23159 "protected" : 1,
23160 "returns" : {
23161 "additionalProperties" : 0,
23162 "properties" : {
23163 "cert" : {
23164 "type" : "string"
23165 },
ac70d7d1
TL
23166 "password" : {
23167 "description" : "Returned if requested with 'generate-password' param. Consists of printable ASCII characters ('!' .. '~').",
23168 "optional" : 1,
23169 "type" : "string"
23170 },
4d47f125
TL
23171 "port" : {
23172 "type" : "integer"
23173 },
23174 "ticket" : {
23175 "type" : "string"
23176 },
23177 "upid" : {
23178 "type" : "string"
23179 },
23180 "user" : {
23181 "type" : "string"
23182 }
23183 }
23184 }
23185 }
23186 },
23187 "leaf" : 1,
23188 "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
23189 "text" : "vncproxy"
23190 },
23191 {
23192 "info" : {
23193 "POST" : {
e9cd3bd4 23194 "allowtoken" : 1,
4d47f125
TL
23195 "description" : "Creates a TCP proxy connections.",
23196 "method" : "POST",
23197 "name" : "termproxy",
23198 "parameters" : {
23199 "additionalProperties" : 0,
23200 "properties" : {
23201 "node" : {
23202 "description" : "The cluster node name.",
23203 "format" : "pve-node",
23204 "type" : "string",
23205 "typetext" : "<string>"
23206 },
23207 "serial" : {
23208 "description" : "opens a serial terminal (defaults to display)",
23209 "enum" : [
23210 "serial0",
23211 "serial1",
23212 "serial2",
23213 "serial3"
23214 ],
23215 "optional" : 1,
23216 "type" : "string"
23217 },
23218 "vmid" : {
23219 "description" : "The (unique) ID of the VM.",
23220 "format" : "pve-vmid",
8dd66e12
TL
23221 "maximum" : 999999999,
23222 "minimum" : 100,
4d47f125 23223 "type" : "integer",
8dd66e12 23224 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23225 }
23226 }
23227 },
23228 "permissions" : {
23229 "check" : [
23230 "perm",
23231 "/vms/{vmid}",
23232 [
23233 "VM.Console"
23234 ]
23235 ]
23236 },
23237 "protected" : 1,
23238 "returns" : {
23239 "additionalProperties" : 0,
23240 "properties" : {
23241 "port" : {
23242 "type" : "integer"
23243 },
23244 "ticket" : {
23245 "type" : "string"
23246 },
23247 "upid" : {
23248 "type" : "string"
23249 },
23250 "user" : {
23251 "type" : "string"
23252 }
23253 }
23254 }
23255 }
23256 },
23257 "leaf" : 1,
23258 "path" : "/nodes/{node}/qemu/{vmid}/termproxy",
23259 "text" : "termproxy"
23260 },
23261 {
23262 "info" : {
23263 "GET" : {
e9cd3bd4 23264 "allowtoken" : 1,
4d47f125
TL
23265 "description" : "Opens a weksocket for VNC traffic.",
23266 "method" : "GET",
23267 "name" : "vncwebsocket",
23268 "parameters" : {
23269 "additionalProperties" : 0,
23270 "properties" : {
23271 "node" : {
23272 "description" : "The cluster node name.",
23273 "format" : "pve-node",
23274 "type" : "string",
23275 "typetext" : "<string>"
23276 },
23277 "port" : {
23278 "description" : "Port number returned by previous vncproxy call.",
23279 "maximum" : 5999,
23280 "minimum" : 5900,
23281 "type" : "integer",
23282 "typetext" : "<integer> (5900 - 5999)"
23283 },
23284 "vmid" : {
23285 "description" : "The (unique) ID of the VM.",
23286 "format" : "pve-vmid",
8dd66e12
TL
23287 "maximum" : 999999999,
23288 "minimum" : 100,
4d47f125 23289 "type" : "integer",
8dd66e12 23290 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23291 },
23292 "vncticket" : {
23293 "description" : "Ticket from previous call to vncproxy.",
23294 "maxLength" : 512,
23295 "type" : "string",
23296 "typetext" : "<string>"
23297 }
23298 }
23299 },
23300 "permissions" : {
23301 "check" : [
23302 "perm",
23303 "/vms/{vmid}",
23304 [
23305 "VM.Console"
23306 ]
23307 ],
23308 "description" : "You also need to pass a valid ticket (vncticket)."
23309 },
23310 "returns" : {
23311 "properties" : {
23312 "port" : {
23313 "type" : "string"
23314 }
23315 },
23316 "type" : "object"
23317 }
23318 }
23319 },
23320 "leaf" : 1,
23321 "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
23322 "text" : "vncwebsocket"
23323 },
23324 {
23325 "info" : {
23326 "POST" : {
e9cd3bd4 23327 "allowtoken" : 1,
4d47f125
TL
23328 "description" : "Returns a SPICE configuration to connect to the VM.",
23329 "method" : "POST",
23330 "name" : "spiceproxy",
23331 "parameters" : {
23332 "additionalProperties" : 0,
23333 "properties" : {
23334 "node" : {
23335 "description" : "The cluster node name.",
23336 "format" : "pve-node",
23337 "type" : "string",
23338 "typetext" : "<string>"
23339 },
23340 "proxy" : {
23341 "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).",
23342 "format" : "address",
23343 "optional" : 1,
23344 "type" : "string",
23345 "typetext" : "<string>"
23346 },
23347 "vmid" : {
23348 "description" : "The (unique) ID of the VM.",
23349 "format" : "pve-vmid",
8dd66e12
TL
23350 "maximum" : 999999999,
23351 "minimum" : 100,
4d47f125 23352 "type" : "integer",
8dd66e12 23353 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23354 }
23355 }
23356 },
23357 "permissions" : {
23358 "check" : [
23359 "perm",
23360 "/vms/{vmid}",
23361 [
23362 "VM.Console"
23363 ]
23364 ]
23365 },
23366 "protected" : 1,
23367 "proxyto" : "node",
23368 "returns" : {
23369 "additionalProperties" : 1,
23370 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
23371 "properties" : {
23372 "host" : {
23373 "type" : "string"
23374 },
23375 "password" : {
23376 "type" : "string"
23377 },
23378 "proxy" : {
23379 "type" : "string"
23380 },
23381 "tls-port" : {
23382 "type" : "integer"
23383 },
23384 "type" : {
23385 "type" : "string"
23386 }
23387 }
23388 }
23389 }
23390 },
23391 "leaf" : 1,
23392 "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
23393 "text" : "spiceproxy"
23394 },
23395 {
23396 "children" : [
23397 {
23398 "info" : {
23399 "GET" : {
e9cd3bd4 23400 "allowtoken" : 1,
4d47f125
TL
23401 "description" : "Get virtual machine status.",
23402 "method" : "GET",
23403 "name" : "vm_status",
23404 "parameters" : {
23405 "additionalProperties" : 0,
23406 "properties" : {
23407 "node" : {
23408 "description" : "The cluster node name.",
23409 "format" : "pve-node",
23410 "type" : "string",
23411 "typetext" : "<string>"
23412 },
23413 "vmid" : {
23414 "description" : "The (unique) ID of the VM.",
23415 "format" : "pve-vmid",
8dd66e12
TL
23416 "maximum" : 999999999,
23417 "minimum" : 100,
4d47f125 23418 "type" : "integer",
8dd66e12 23419 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23420 }
23421 }
23422 },
23423 "permissions" : {
23424 "check" : [
23425 "perm",
23426 "/vms/{vmid}",
23427 [
23428 "VM.Audit"
23429 ]
23430 ]
23431 },
23432 "protected" : 1,
23433 "proxyto" : "node",
23434 "returns" : {
23435 "properties" : {
23436 "agent" : {
9d2e98ed 23437 "description" : "QEMU Guest Agent is enabled in config.",
4d47f125
TL
23438 "optional" : 1,
23439 "type" : "boolean"
23440 },
23441 "cpus" : {
23442 "description" : "Maximum usable CPUs.",
23443 "optional" : 1,
23444 "type" : "number"
23445 },
23446 "ha" : {
23447 "description" : "HA manager service status.",
23448 "type" : "object"
23449 },
95895385
TL
23450 "lock" : {
23451 "description" : "The current config lock, if any.",
23452 "optional" : 1,
23453 "type" : "string"
23454 },
4d47f125
TL
23455 "maxdisk" : {
23456 "description" : "Root disk size in bytes.",
23457 "optional" : 1,
23458 "renderer" : "bytes",
23459 "type" : "integer"
23460 },
23461 "maxmem" : {
23462 "description" : "Maximum memory in bytes.",
23463 "optional" : 1,
23464 "renderer" : "bytes",
23465 "type" : "integer"
23466 },
23467 "name" : {
23468 "description" : "VM name.",
23469 "optional" : 1,
23470 "type" : "string"
23471 },
23472 "pid" : {
23473 "description" : "PID of running qemu process.",
23474 "optional" : 1,
23475 "type" : "integer"
23476 },
23477 "qmpstatus" : {
499c9b7f 23478 "description" : "VM run state from the 'query-status' QMP monitor command.",
4d47f125
TL
23479 "optional" : 1,
23480 "type" : "string"
23481 },
d2656385
TL
23482 "running-machine" : {
23483 "description" : "The currently running machine type (if running).",
23484 "optional" : 1,
23485 "type" : "string"
23486 },
23487 "running-qemu" : {
23488 "description" : "The currently running QEMU version (if running).",
23489 "optional" : 1,
23490 "type" : "string"
23491 },
4d47f125 23492 "spice" : {
9d2e98ed 23493 "description" : "QEMU VGA configuration supports spice.",
4d47f125
TL
23494 "optional" : 1,
23495 "type" : "boolean"
23496 },
23497 "status" : {
9d2e98ed 23498 "description" : "QEMU process status.",
4d47f125
TL
23499 "enum" : [
23500 "stopped",
23501 "running"
23502 ],
23503 "type" : "string"
23504 },
5c1699e5
TL
23505 "tags" : {
23506 "description" : "The current configured tags, if any",
23507 "optional" : 1,
23508 "type" : "string"
23509 },
4d47f125
TL
23510 "uptime" : {
23511 "description" : "Uptime.",
23512 "optional" : 1,
23513 "renderer" : "duration",
23514 "type" : "integer"
23515 },
23516 "vmid" : {
23517 "description" : "The (unique) ID of the VM.",
23518 "format" : "pve-vmid",
8dd66e12
TL
23519 "maximum" : 999999999,
23520 "minimum" : 100,
4d47f125
TL
23521 "type" : "integer"
23522 }
23523 },
23524 "type" : "object"
23525 }
23526 }
23527 },
23528 "leaf" : 1,
23529 "path" : "/nodes/{node}/qemu/{vmid}/status/current",
23530 "text" : "current"
23531 },
23532 {
23533 "info" : {
23534 "POST" : {
e9cd3bd4 23535 "allowtoken" : 1,
4d47f125
TL
23536 "description" : "Start virtual machine.",
23537 "method" : "POST",
23538 "name" : "vm_start",
23539 "parameters" : {
23540 "additionalProperties" : 0,
23541 "properties" : {
c5aa7e14
TL
23542 "force-cpu" : {
23543 "description" : "Override QEMU's -cpu argument with the given string.",
23544 "optional" : 1,
23545 "type" : "string",
23546 "typetext" : "<string>"
23547 },
4d47f125 23548 "machine" : {
9d2e98ed 23549 "description" : "Specifies the QEMU machine type.",
4d47f125
TL
23550 "maxLength" : 40,
23551 "optional" : 1,
5c1699e5 23552 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
23553 "type" : "string"
23554 },
23555 "migratedfrom" : {
23556 "description" : "The cluster node name.",
23557 "format" : "pve-node",
23558 "optional" : 1,
23559 "type" : "string",
23560 "typetext" : "<string>"
23561 },
23562 "migration_network" : {
23563 "description" : "CIDR of the (sub) network that is used for migration.",
23564 "format" : "CIDR",
23565 "optional" : 1,
23566 "type" : "string",
23567 "typetext" : "<string>"
23568 },
23569 "migration_type" : {
23570 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
23571 "enum" : [
23572 "secure",
23573 "insecure"
23574 ],
23575 "optional" : 1,
23576 "type" : "string"
23577 },
23578 "node" : {
23579 "description" : "The cluster node name.",
23580 "format" : "pve-node",
23581 "type" : "string",
23582 "typetext" : "<string>"
23583 },
23584 "skiplock" : {
23585 "description" : "Ignore locks - only root is allowed to use this option.",
23586 "optional" : 1,
23587 "type" : "boolean",
23588 "typetext" : "<boolean>"
23589 },
23590 "stateuri" : {
23591 "description" : "Some command save/restore state from this location.",
23592 "maxLength" : 128,
23593 "optional" : 1,
23594 "type" : "string",
23595 "typetext" : "<string>"
23596 },
23597 "targetstorage" : {
c5aa7e14 23598 "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 23599 "format" : "storage-pair-list",
4d47f125
TL
23600 "optional" : 1,
23601 "type" : "string",
23602 "typetext" : "<string>"
23603 },
e9cd3bd4
TL
23604 "timeout" : {
23605 "default" : "max(30, vm memory in GiB)",
23606 "description" : "Wait maximal timeout seconds.",
23607 "minimum" : 0,
23608 "optional" : 1,
23609 "type" : "integer",
23610 "typetext" : "<integer> (0 - N)"
23611 },
4d47f125
TL
23612 "vmid" : {
23613 "description" : "The (unique) ID of the VM.",
23614 "format" : "pve-vmid",
8dd66e12
TL
23615 "maximum" : 999999999,
23616 "minimum" : 100,
4d47f125 23617 "type" : "integer",
8dd66e12 23618 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23619 }
23620 }
23621 },
23622 "permissions" : {
23623 "check" : [
23624 "perm",
23625 "/vms/{vmid}",
23626 [
23627 "VM.PowerMgmt"
23628 ]
23629 ]
23630 },
23631 "protected" : 1,
23632 "proxyto" : "node",
23633 "returns" : {
23634 "type" : "string"
23635 }
23636 }
23637 },
23638 "leaf" : 1,
23639 "path" : "/nodes/{node}/qemu/{vmid}/status/start",
23640 "text" : "start"
23641 },
23642 {
23643 "info" : {
23644 "POST" : {
e9cd3bd4 23645 "allowtoken" : 1,
4d47f125
TL
23646 "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",
23647 "method" : "POST",
23648 "name" : "vm_stop",
23649 "parameters" : {
23650 "additionalProperties" : 0,
23651 "properties" : {
23652 "keepActive" : {
23653 "default" : 0,
23654 "description" : "Do not deactivate storage volumes.",
23655 "optional" : 1,
23656 "type" : "boolean",
23657 "typetext" : "<boolean>"
23658 },
23659 "migratedfrom" : {
23660 "description" : "The cluster node name.",
23661 "format" : "pve-node",
23662 "optional" : 1,
23663 "type" : "string",
23664 "typetext" : "<string>"
23665 },
23666 "node" : {
23667 "description" : "The cluster node name.",
23668 "format" : "pve-node",
23669 "type" : "string",
23670 "typetext" : "<string>"
23671 },
23672 "skiplock" : {
23673 "description" : "Ignore locks - only root is allowed to use this option.",
23674 "optional" : 1,
23675 "type" : "boolean",
23676 "typetext" : "<boolean>"
23677 },
23678 "timeout" : {
23679 "description" : "Wait maximal timeout seconds.",
23680 "minimum" : 0,
23681 "optional" : 1,
23682 "type" : "integer",
23683 "typetext" : "<integer> (0 - N)"
23684 },
23685 "vmid" : {
23686 "description" : "The (unique) ID of the VM.",
23687 "format" : "pve-vmid",
8dd66e12
TL
23688 "maximum" : 999999999,
23689 "minimum" : 100,
4d47f125 23690 "type" : "integer",
8dd66e12 23691 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23692 }
23693 }
23694 },
23695 "permissions" : {
23696 "check" : [
23697 "perm",
23698 "/vms/{vmid}",
23699 [
23700 "VM.PowerMgmt"
23701 ]
23702 ]
23703 },
23704 "protected" : 1,
23705 "proxyto" : "node",
23706 "returns" : {
23707 "type" : "string"
23708 }
23709 }
23710 },
23711 "leaf" : 1,
23712 "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
23713 "text" : "stop"
23714 },
23715 {
23716 "info" : {
23717 "POST" : {
e9cd3bd4 23718 "allowtoken" : 1,
4d47f125
TL
23719 "description" : "Reset virtual machine.",
23720 "method" : "POST",
23721 "name" : "vm_reset",
23722 "parameters" : {
23723 "additionalProperties" : 0,
23724 "properties" : {
23725 "node" : {
23726 "description" : "The cluster node name.",
23727 "format" : "pve-node",
23728 "type" : "string",
23729 "typetext" : "<string>"
23730 },
23731 "skiplock" : {
23732 "description" : "Ignore locks - only root is allowed to use this option.",
23733 "optional" : 1,
23734 "type" : "boolean",
23735 "typetext" : "<boolean>"
23736 },
23737 "vmid" : {
23738 "description" : "The (unique) ID of the VM.",
23739 "format" : "pve-vmid",
8dd66e12
TL
23740 "maximum" : 999999999,
23741 "minimum" : 100,
4d47f125 23742 "type" : "integer",
8dd66e12 23743 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23744 }
23745 }
23746 },
23747 "permissions" : {
23748 "check" : [
23749 "perm",
23750 "/vms/{vmid}",
23751 [
23752 "VM.PowerMgmt"
23753 ]
23754 ]
23755 },
23756 "protected" : 1,
23757 "proxyto" : "node",
23758 "returns" : {
23759 "type" : "string"
23760 }
23761 }
23762 },
23763 "leaf" : 1,
23764 "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
23765 "text" : "reset"
23766 },
23767 {
23768 "info" : {
23769 "POST" : {
e9cd3bd4 23770 "allowtoken" : 1,
4d47f125
TL
23771 "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.",
23772 "method" : "POST",
23773 "name" : "vm_shutdown",
23774 "parameters" : {
23775 "additionalProperties" : 0,
23776 "properties" : {
23777 "forceStop" : {
23778 "default" : 0,
23779 "description" : "Make sure the VM stops.",
23780 "optional" : 1,
23781 "type" : "boolean",
23782 "typetext" : "<boolean>"
23783 },
23784 "keepActive" : {
23785 "default" : 0,
23786 "description" : "Do not deactivate storage volumes.",
23787 "optional" : 1,
23788 "type" : "boolean",
23789 "typetext" : "<boolean>"
23790 },
23791 "node" : {
23792 "description" : "The cluster node name.",
23793 "format" : "pve-node",
23794 "type" : "string",
23795 "typetext" : "<string>"
23796 },
23797 "skiplock" : {
23798 "description" : "Ignore locks - only root is allowed to use this option.",
23799 "optional" : 1,
23800 "type" : "boolean",
23801 "typetext" : "<boolean>"
23802 },
23803 "timeout" : {
23804 "description" : "Wait maximal timeout seconds.",
23805 "minimum" : 0,
23806 "optional" : 1,
23807 "type" : "integer",
23808 "typetext" : "<integer> (0 - N)"
23809 },
23810 "vmid" : {
23811 "description" : "The (unique) ID of the VM.",
23812 "format" : "pve-vmid",
8dd66e12
TL
23813 "maximum" : 999999999,
23814 "minimum" : 100,
4d47f125 23815 "type" : "integer",
8dd66e12 23816 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23817 }
23818 }
23819 },
23820 "permissions" : {
23821 "check" : [
23822 "perm",
23823 "/vms/{vmid}",
23824 [
23825 "VM.PowerMgmt"
23826 ]
23827 ]
23828 },
23829 "protected" : 1,
23830 "proxyto" : "node",
23831 "returns" : {
23832 "type" : "string"
23833 }
23834 }
23835 },
23836 "leaf" : 1,
23837 "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
23838 "text" : "shutdown"
23839 },
1c532546
TL
23840 {
23841 "info" : {
23842 "POST" : {
e9cd3bd4 23843 "allowtoken" : 1,
1c532546
TL
23844 "description" : "Reboot the VM by shutting it down, and starting it again. Applies pending changes.",
23845 "method" : "POST",
23846 "name" : "vm_reboot",
23847 "parameters" : {
23848 "additionalProperties" : 0,
23849 "properties" : {
23850 "node" : {
23851 "description" : "The cluster node name.",
23852 "format" : "pve-node",
23853 "type" : "string",
23854 "typetext" : "<string>"
23855 },
23856 "timeout" : {
23857 "description" : "Wait maximal timeout seconds for the shutdown.",
23858 "minimum" : 0,
23859 "optional" : 1,
23860 "type" : "integer",
23861 "typetext" : "<integer> (0 - N)"
23862 },
23863 "vmid" : {
23864 "description" : "The (unique) ID of the VM.",
23865 "format" : "pve-vmid",
8dd66e12
TL
23866 "maximum" : 999999999,
23867 "minimum" : 100,
1c532546 23868 "type" : "integer",
8dd66e12 23869 "typetext" : "<integer> (100 - 999999999)"
1c532546
TL
23870 }
23871 }
23872 },
23873 "permissions" : {
23874 "check" : [
23875 "perm",
23876 "/vms/{vmid}",
23877 [
23878 "VM.PowerMgmt"
23879 ]
23880 ]
23881 },
23882 "protected" : 1,
23883 "proxyto" : "node",
23884 "returns" : {
23885 "type" : "string"
23886 }
23887 }
23888 },
23889 "leaf" : 1,
23890 "path" : "/nodes/{node}/qemu/{vmid}/status/reboot",
23891 "text" : "reboot"
23892 },
4d47f125
TL
23893 {
23894 "info" : {
23895 "POST" : {
e9cd3bd4 23896 "allowtoken" : 1,
4d47f125
TL
23897 "description" : "Suspend virtual machine.",
23898 "method" : "POST",
23899 "name" : "vm_suspend",
23900 "parameters" : {
23901 "additionalProperties" : 0,
23902 "properties" : {
23903 "node" : {
23904 "description" : "The cluster node name.",
23905 "format" : "pve-node",
23906 "type" : "string",
23907 "typetext" : "<string>"
23908 },
23909 "skiplock" : {
23910 "description" : "Ignore locks - only root is allowed to use this option.",
23911 "optional" : 1,
23912 "type" : "boolean",
23913 "typetext" : "<boolean>"
23914 },
95895385
TL
23915 "statestorage" : {
23916 "description" : "The storage for the VM state",
23917 "format" : "pve-storage-id",
23918 "optional" : 1,
23919 "requires" : "todisk",
23920 "type" : "string",
23921 "typetext" : "<string>"
23922 },
23923 "todisk" : {
23924 "default" : 0,
23925 "description" : "If set, suspends the VM to disk. Will be resumed on next VM start.",
23926 "optional" : 1,
23927 "type" : "boolean",
23928 "typetext" : "<boolean>"
23929 },
4d47f125
TL
23930 "vmid" : {
23931 "description" : "The (unique) ID of the VM.",
23932 "format" : "pve-vmid",
8dd66e12
TL
23933 "maximum" : 999999999,
23934 "minimum" : 100,
4d47f125 23935 "type" : "integer",
8dd66e12 23936 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23937 }
23938 }
23939 },
23940 "permissions" : {
23941 "check" : [
23942 "perm",
23943 "/vms/{vmid}",
23944 [
23945 "VM.PowerMgmt"
23946 ]
e9cd3bd4
TL
23947 ],
23948 "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
23949 },
23950 "protected" : 1,
23951 "proxyto" : "node",
23952 "returns" : {
23953 "type" : "string"
23954 }
23955 }
23956 },
23957 "leaf" : 1,
23958 "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
23959 "text" : "suspend"
23960 },
23961 {
23962 "info" : {
23963 "POST" : {
e9cd3bd4 23964 "allowtoken" : 1,
4d47f125
TL
23965 "description" : "Resume virtual machine.",
23966 "method" : "POST",
23967 "name" : "vm_resume",
23968 "parameters" : {
23969 "additionalProperties" : 0,
23970 "properties" : {
23971 "nocheck" : {
23972 "optional" : 1,
23973 "type" : "boolean",
23974 "typetext" : "<boolean>"
23975 },
23976 "node" : {
23977 "description" : "The cluster node name.",
23978 "format" : "pve-node",
23979 "type" : "string",
23980 "typetext" : "<string>"
23981 },
23982 "skiplock" : {
23983 "description" : "Ignore locks - only root is allowed to use this option.",
23984 "optional" : 1,
23985 "type" : "boolean",
23986 "typetext" : "<boolean>"
23987 },
23988 "vmid" : {
23989 "description" : "The (unique) ID of the VM.",
23990 "format" : "pve-vmid",
8dd66e12
TL
23991 "maximum" : 999999999,
23992 "minimum" : 100,
4d47f125 23993 "type" : "integer",
8dd66e12 23994 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
23995 }
23996 }
23997 },
23998 "permissions" : {
23999 "check" : [
24000 "perm",
24001 "/vms/{vmid}",
24002 [
24003 "VM.PowerMgmt"
24004 ]
24005 ]
24006 },
24007 "protected" : 1,
24008 "proxyto" : "node",
24009 "returns" : {
24010 "type" : "string"
24011 }
24012 }
24013 },
24014 "leaf" : 1,
24015 "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
24016 "text" : "resume"
24017 }
24018 ],
24019 "info" : {
24020 "GET" : {
e9cd3bd4 24021 "allowtoken" : 1,
4d47f125
TL
24022 "description" : "Directory index",
24023 "method" : "GET",
24024 "name" : "vmcmdidx",
24025 "parameters" : {
24026 "additionalProperties" : 0,
24027 "properties" : {
24028 "node" : {
24029 "description" : "The cluster node name.",
24030 "format" : "pve-node",
24031 "type" : "string",
24032 "typetext" : "<string>"
24033 },
24034 "vmid" : {
24035 "description" : "The (unique) ID of the VM.",
24036 "format" : "pve-vmid",
8dd66e12
TL
24037 "maximum" : 999999999,
24038 "minimum" : 100,
4d47f125 24039 "type" : "integer",
8dd66e12 24040 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24041 }
24042 }
24043 },
24044 "permissions" : {
24045 "user" : "all"
24046 },
24047 "proxyto" : "node",
24048 "returns" : {
24049 "items" : {
24050 "properties" : {
24051 "subdir" : {
24052 "type" : "string"
24053 }
24054 },
24055 "type" : "object"
24056 },
24057 "links" : [
24058 {
24059 "href" : "{subdir}",
24060 "rel" : "child"
24061 }
24062 ],
24063 "type" : "array"
24064 }
24065 }
24066 },
24067 "leaf" : 0,
24068 "path" : "/nodes/{node}/qemu/{vmid}/status",
24069 "text" : "status"
24070 },
24071 {
24072 "info" : {
24073 "PUT" : {
e9cd3bd4 24074 "allowtoken" : 1,
4d47f125
TL
24075 "description" : "Send key event to virtual machine.",
24076 "method" : "PUT",
24077 "name" : "vm_sendkey",
24078 "parameters" : {
24079 "additionalProperties" : 0,
24080 "properties" : {
24081 "key" : {
24082 "description" : "The key (qemu monitor encoding).",
24083 "type" : "string",
24084 "typetext" : "<string>"
24085 },
24086 "node" : {
24087 "description" : "The cluster node name.",
24088 "format" : "pve-node",
24089 "type" : "string",
24090 "typetext" : "<string>"
24091 },
24092 "skiplock" : {
24093 "description" : "Ignore locks - only root is allowed to use this option.",
24094 "optional" : 1,
24095 "type" : "boolean",
24096 "typetext" : "<boolean>"
24097 },
24098 "vmid" : {
24099 "description" : "The (unique) ID of the VM.",
24100 "format" : "pve-vmid",
8dd66e12
TL
24101 "maximum" : 999999999,
24102 "minimum" : 100,
4d47f125 24103 "type" : "integer",
8dd66e12 24104 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24105 }
24106 }
24107 },
24108 "permissions" : {
24109 "check" : [
24110 "perm",
24111 "/vms/{vmid}",
24112 [
24113 "VM.Console"
24114 ]
24115 ]
24116 },
24117 "protected" : 1,
24118 "proxyto" : "node",
24119 "returns" : {
24120 "type" : "null"
24121 }
24122 }
24123 },
24124 "leaf" : 1,
24125 "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
24126 "text" : "sendkey"
24127 },
24128 {
24129 "info" : {
24130 "GET" : {
e9cd3bd4 24131 "allowtoken" : 1,
4d47f125
TL
24132 "description" : "Check if feature for virtual machine is available.",
24133 "method" : "GET",
24134 "name" : "vm_feature",
24135 "parameters" : {
24136 "additionalProperties" : 0,
24137 "properties" : {
24138 "feature" : {
24139 "description" : "Feature to check.",
24140 "enum" : [
24141 "snapshot",
24142 "clone",
24143 "copy"
24144 ],
24145 "type" : "string"
24146 },
24147 "node" : {
24148 "description" : "The cluster node name.",
24149 "format" : "pve-node",
24150 "type" : "string",
24151 "typetext" : "<string>"
24152 },
24153 "snapname" : {
24154 "description" : "The name of the snapshot.",
24155 "format" : "pve-configid",
24156 "maxLength" : 40,
24157 "optional" : 1,
24158 "type" : "string",
24159 "typetext" : "<string>"
24160 },
24161 "vmid" : {
24162 "description" : "The (unique) ID of the VM.",
24163 "format" : "pve-vmid",
8dd66e12
TL
24164 "maximum" : 999999999,
24165 "minimum" : 100,
4d47f125 24166 "type" : "integer",
8dd66e12 24167 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24168 }
24169 }
24170 },
24171 "permissions" : {
24172 "check" : [
24173 "perm",
24174 "/vms/{vmid}",
24175 [
24176 "VM.Audit"
24177 ]
24178 ]
24179 },
24180 "protected" : 1,
24181 "proxyto" : "node",
24182 "returns" : {
24183 "properties" : {
24184 "hasFeature" : {
24185 "type" : "boolean"
24186 },
24187 "nodes" : {
24188 "items" : {
24189 "type" : "string"
24190 },
24191 "type" : "array"
24192 }
24193 },
24194 "type" : "object"
24195 }
24196 }
24197 },
24198 "leaf" : 1,
24199 "path" : "/nodes/{node}/qemu/{vmid}/feature",
24200 "text" : "feature"
24201 },
24202 {
24203 "info" : {
24204 "POST" : {
e9cd3bd4 24205 "allowtoken" : 1,
4d47f125
TL
24206 "description" : "Create a copy of virtual machine/template.",
24207 "method" : "POST",
24208 "name" : "clone_vm",
24209 "parameters" : {
24210 "additionalProperties" : 0,
24211 "properties" : {
95895385
TL
24212 "bwlimit" : {
24213 "default" : "clone limit from datacenter or storage config",
24214 "description" : "Override I/O bandwidth limit (in KiB/s).",
24215 "minimum" : "0",
24216 "optional" : 1,
24217 "type" : "integer",
24218 "typetext" : "<integer> (0 - N)"
24219 },
4d47f125
TL
24220 "description" : {
24221 "description" : "Description for the new VM.",
24222 "optional" : 1,
24223 "type" : "string",
24224 "typetext" : "<string>"
24225 },
24226 "format" : {
24227 "description" : "Target format for file storage. Only valid for full clone.",
24228 "enum" : [
24229 "raw",
24230 "qcow2",
24231 "vmdk"
24232 ],
24233 "optional" : 1,
24234 "type" : "string"
24235 },
24236 "full" : {
24237 "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.",
24238 "optional" : 1,
24239 "type" : "boolean",
24240 "typetext" : "<boolean>"
24241 },
24242 "name" : {
24243 "description" : "Set a name for the new VM.",
24244 "format" : "dns-name",
24245 "optional" : 1,
24246 "type" : "string",
24247 "typetext" : "<string>"
24248 },
24249 "newid" : {
24250 "description" : "VMID for the clone.",
24251 "format" : "pve-vmid",
8dd66e12
TL
24252 "maximum" : 999999999,
24253 "minimum" : 100,
4d47f125 24254 "type" : "integer",
8dd66e12 24255 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24256 },
24257 "node" : {
24258 "description" : "The cluster node name.",
24259 "format" : "pve-node",
24260 "type" : "string",
24261 "typetext" : "<string>"
24262 },
24263 "pool" : {
24264 "description" : "Add the new VM to the specified pool.",
24265 "format" : "pve-poolid",
24266 "optional" : 1,
24267 "type" : "string",
24268 "typetext" : "<string>"
24269 },
24270 "snapname" : {
24271 "description" : "The name of the snapshot.",
24272 "format" : "pve-configid",
24273 "maxLength" : 40,
24274 "optional" : 1,
24275 "type" : "string",
24276 "typetext" : "<string>"
24277 },
24278 "storage" : {
24279 "description" : "Target storage for full clone.",
24280 "format" : "pve-storage-id",
24281 "optional" : 1,
24282 "type" : "string",
24283 "typetext" : "<string>"
24284 },
24285 "target" : {
24286 "description" : "Target node. Only allowed if the original VM is on shared storage.",
24287 "format" : "pve-node",
24288 "optional" : 1,
24289 "type" : "string",
24290 "typetext" : "<string>"
24291 },
24292 "vmid" : {
24293 "description" : "The (unique) ID of the VM.",
24294 "format" : "pve-vmid",
8dd66e12
TL
24295 "maximum" : 999999999,
24296 "minimum" : 100,
4d47f125 24297 "type" : "integer",
8dd66e12 24298 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
24299 }
24300 }
24301 },
24302 "permissions" : {
24303 "check" : [
24304 "and",
24305 [
24306 "perm",
24307 "/vms/{vmid}",
24308 [
24309 "VM.Clone"
24310 ]
24311 ],
24312 [
24313 "or",
24314 [
24315 "perm",
24316 "/vms/{newid}",
24317 [
24318 "VM.Allocate"
24319 ]
24320 ],
24321 [
24322 "perm",
24323 "/pool/{pool}",
24324 [
24325 "VM.Allocate"
24326 ],
24327 "require_param",
24328 "pool"
24329 ]
24330 ]
24331 ],
159464a9 24332 "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
24333 },
24334 "protected" : 1,
24335 "proxyto" : "node",
24336 "returns" : {
24337 "type" : "string"
24338 }
24339 }
24340 },
24341 "leaf" : 1,
24342 "path" : "/nodes/{node}/qemu/{vmid}/clone",
24343 "text" : "clone"
24344 },
24345 {
24346 "info" : {
24347 "POST" : {
e9cd3bd4 24348 "allowtoken" : 1,
5370fa8c 24349 "description" : "Move volume to different storage or to a different VM.",
4d47f125
TL
24350 "method" : "POST",
24351 "name" : "move_vm_disk",
24352 "parameters" : {
24353 "additionalProperties" : 0,
24354 "properties" : {
95895385
TL
24355 "bwlimit" : {
24356 "default" : "move limit from datacenter or storage config",
24357 "description" : "Override I/O bandwidth limit (in KiB/s).",
24358 "minimum" : "0",
24359 "optional" : 1,
24360 "type" : "integer",
24361 "typetext" : "<integer> (0 - N)"
24362 },
4d47f125
TL
24363 "delete" : {
24364 "default" : 0,
24365 "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
24366 "optional" : 1,
24367 "type" : "boolean",
24368 "typetext" : "<boolean>"
24369 },
24370 "digest" : {
5370fa8c 24371 "description" : "Prevent changes if current configuration file has different SHA1\"\n\t\t .\" digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
24372 "maxLength" : 40,
24373 "optional" : 1,
24374 "type" : "string",
24375 "typetext" : "<string>"
24376 },
24377 "disk" : {
24378 "description" : "The disk you want to move.",
24379 "enum" : [
24380 "ide0",
24381 "ide1",
24382 "ide2",
24383 "ide3",
24384 "scsi0",
24385 "scsi1",
24386 "scsi2",
24387 "scsi3",
24388 "scsi4",
24389 "scsi5",
24390 "scsi6",
24391 "scsi7",
24392 "scsi8",
24393 "scsi9",
24394 "scsi10",
24395 "scsi11",
24396 "scsi12",
24397 "scsi13",
e9cd3bd4
TL
24398 "scsi14",
24399 "scsi15",
24400 "scsi16",
24401 "scsi17",
24402 "scsi18",
24403 "scsi19",
24404 "scsi20",
24405 "scsi21",
24406 "scsi22",
24407 "scsi23",
24408 "scsi24",
24409 "scsi25",
24410 "scsi26",
24411 "scsi27",
24412 "scsi28",
24413 "scsi29",
24414 "scsi30",
4d47f125
TL
24415 "virtio0",
24416 "virtio1",
24417 "virtio2",
24418 "virtio3",
24419 "virtio4",
24420 "virtio5",
24421 "virtio6",
24422 "virtio7",
24423 "virtio8",
24424 "virtio9",
24425 "virtio10",
24426 "virtio11",
24427 "virtio12",
24428 "virtio13",
24429 "virtio14",
24430 "virtio15",
24431 "sata0",
24432 "sata1",
24433 "sata2",
24434 "sata3",
24435 "sata4",
24436 "sata5",
5370fa8c
TL
24437 "efidisk0",
24438 "tpmstate0",
24439 "unused0",
24440 "unused1",
24441 "unused2",
24442 "unused3",
24443 "unused4",
24444 "unused5",
24445 "unused6",
24446 "unused7",
24447 "unused8",
24448 "unused9",
24449 "unused10",
24450 "unused11",
24451 "unused12",
24452 "unused13",
24453 "unused14",
24454 "unused15",
24455 "unused16",
24456 "unused17",
24457 "unused18",
24458 "unused19",
24459 "unused20",
24460 "unused21",
24461 "unused22",
24462 "unused23",
24463 "unused24",
24464 "unused25",
24465 "unused26",
24466 "unused27",
24467 "unused28",
24468 "unused29",
24469 "unused30",
24470 "unused31",
24471 "unused32",
24472 "unused33",
24473 "unused34",
24474 "unused35",
24475 "unused36",
24476 "unused37",
24477 "unused38",
24478 "unused39",
24479 "unused40",
24480 "unused41",
24481 "unused42",
24482 "unused43",
24483 "unused44",
24484 "unused45",
24485 "unused46",
24486 "unused47",
24487 "unused48",
24488 "unused49",
24489 "unused50",
24490 "unused51",
24491 "unused52",
24492 "unused53",
24493 "unused54",
24494 "unused55",
24495 "unused56",
24496 "unused57",
24497 "unused58",
24498 "unused59",
24499 "unused60",
24500 "unused61",
24501 "unused62",
24502 "unused63",
24503 "unused64",
24504 "unused65",
24505 "unused66",
24506 "unused67",
24507 "unused68",
24508 "unused69",
24509 "unused70",
24510 "unused71",
24511 "unused72",
24512 "unused73",
24513 "unused74",
24514 "unused75",
24515 "unused76",
24516 "unused77",
24517 "unused78",
24518 "unused79",
24519 "unused80",
24520 "unused81",
24521 "unused82",
24522 "unused83",
24523 "unused84",
24524 "unused85",
24525 "unused86",
24526 "unused87",
24527 "unused88",
24528 "unused89",
24529 "unused90",
24530 "unused91",
24531 "unused92",
24532 "unused93",
24533 "unused94",
24534 "unused95",
24535 "unused96",
24536 "unused97",
24537 "unused98",
24538 "unused99",
24539 "unused100",
24540 "unused101",
24541 "unused102",
24542 "unused103",
24543 "unused104",
24544 "unused105",
24545 "unused106",
24546 "unused107",
24547 "unused108",
24548 "unused109",
24549 "unused110",
24550 "unused111",
24551 "unused112",
24552 "unused113",
24553 "unused114",
24554 "unused115",
24555 "unused116",
24556 "unused117",
24557 "unused118",
24558 "unused119",
24559 "unused120",
24560 "unused121",
24561 "unused122",
24562 "unused123",
24563 "unused124",
24564 "unused125",
24565 "unused126",
24566 "unused127",
24567 "unused128",
24568 "unused129",
24569 "unused130",
24570 "unused131",
24571 "unused132",
24572 "unused133",
24573 "unused134",
24574 "unused135",
24575 "unused136",
24576 "unused137",
24577 "unused138",
24578 "unused139",
24579 "unused140",
24580 "unused141",
24581 "unused142",
24582 "unused143",
24583 "unused144",
24584 "unused145",
24585 "unused146",
24586 "unused147",
24587 "unused148",
24588 "unused149",
24589 "unused150",
24590 "unused151",
24591 "unused152",
24592 "unused153",
24593 "unused154",
24594 "unused155",
24595 "unused156",
24596 "unused157",
24597 "unused158",
24598 "unused159",
24599 "unused160",
24600 "unused161",
24601 "unused162",
24602 "unused163",
24603 "unused164",
24604 "unused165",
24605 "unused166",
24606 "unused167",
24607 "unused168",
24608 "unused169",
24609 "unused170",
24610 "unused171",
24611 "unused172",
24612 "unused173",
24613 "unused174",
24614 "unused175",
24615 "unused176",
24616 "unused177",
24617 "unused178",
24618 "unused179",
24619 "unused180",
24620 "unused181",
24621 "unused182",
24622 "unused183",
24623 "unused184",
24624 "unused185",
24625 "unused186",
24626 "unused187",
24627 "unused188",
24628 "unused189",
24629 "unused190",
24630 "unused191",
24631 "unused192",
24632 "unused193",
24633 "unused194",
24634 "unused195",
24635 "unused196",
24636 "unused197",
24637 "unused198",
24638 "unused199",
24639 "unused200",
24640 "unused201",
24641 "unused202",
24642 "unused203",
24643 "unused204",
24644 "unused205",
24645 "unused206",
24646 "unused207",
24647 "unused208",
24648 "unused209",
24649 "unused210",
24650 "unused211",
24651 "unused212",
24652 "unused213",
24653 "unused214",
24654 "unused215",
24655 "unused216",
24656 "unused217",
24657 "unused218",
24658 "unused219",
24659 "unused220",
24660 "unused221",
24661 "unused222",
24662 "unused223",
24663 "unused224",
24664 "unused225",
24665 "unused226",
24666 "unused227",
24667 "unused228",
24668 "unused229",
24669 "unused230",
24670 "unused231",
24671 "unused232",
24672 "unused233",
24673 "unused234",
24674 "unused235",
24675 "unused236",
24676 "unused237",
24677 "unused238",
24678 "unused239",
24679 "unused240",
24680 "unused241",
24681 "unused242",
24682 "unused243",
24683 "unused244",
24684 "unused245",
24685 "unused246",
24686 "unused247",
24687 "unused248",
24688 "unused249",
24689 "unused250",
24690 "unused251",
24691 "unused252",
24692 "unused253",
24693 "unused254",
24694 "unused255"
4d47f125
TL
24695 ],
24696 "type" : "string"
24697 },
24698 "format" : {
24699 "description" : "Target Format.",
24700 "enum" : [
24701 "raw",
24702 "qcow2",
24703 "vmdk"
24704 ],
24705 "optional" : 1,
24706 "type" : "string"
24707 },
24708 "node" : {
24709 "description" : "The cluster node name.",
24710 "format" : "pve-node",
24711 "type" : "string",
24712 "typetext" : "<string>"
24713 },
24714 "storage" : {
24715 "description" : "Target storage.",
24716 "format" : "pve-storage-id",
5370fa8c 24717 "optional" : 1,
4d47f125
TL
24718 "type" : "string",
24719 "typetext" : "<string>"
24720 },
5370fa8c
TL
24721 "target-digest" : {
24722 "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.",
24723 "maxLength" : 40,
24724 "optional" : 1,
24725 "type" : "string",
24726 "typetext" : "<string>"
24727 },
24728 "target-disk" : {
24729 "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.",
24730 "enum" : [
24731 "ide0",
24732 "ide1",
24733 "ide2",
24734 "ide3",
24735 "scsi0",
24736 "scsi1",
24737 "scsi2",
24738 "scsi3",
24739 "scsi4",
24740 "scsi5",
24741 "scsi6",
24742 "scsi7",
24743 "scsi8",
24744 "scsi9",
24745 "scsi10",
24746 "scsi11",
24747 "scsi12",
24748 "scsi13",
24749 "scsi14",
24750 "scsi15",
24751 "scsi16",
24752 "scsi17",
24753 "scsi18",
24754 "scsi19",
24755 "scsi20",
24756 "scsi21",
24757 "scsi22",
24758 "scsi23",
24759 "scsi24",
24760 "scsi25",
24761 "scsi26",
24762 "scsi27",
24763 "scsi28",
24764 "scsi29",
24765 "scsi30",
24766 "virtio0",
24767 "virtio1",
24768 "virtio2",
24769 "virtio3",
24770 "virtio4",
24771 "virtio5",
24772 "virtio6",
24773 "virtio7",
24774 "virtio8",
24775 "virtio9",
24776 "virtio10",
24777 "virtio11",
24778 "virtio12",
24779 "virtio13",
24780 "virtio14",
24781 "virtio15",
24782 "sata0",
24783 "sata1",
24784 "sata2",
24785 "sata3",
24786 "sata4",
24787 "sata5",
24788 "efidisk0",
24789 "tpmstate0",
24790 "unused0",
24791 "unused1",
24792 "unused2",
24793 "unused3",
24794 "unused4",
24795 "unused5",
24796 "unused6",
24797 "unused7",
24798 "unused8",
24799 "unused9",
24800 "unused10",
24801 "unused11",
24802 "unused12",
24803 "unused13",
24804 "unused14",
24805 "unused15",
24806 "unused16",
24807 "unused17",
24808 "unused18",
24809 "unused19",
24810 "unused20",
24811 "unused21",
24812 "unused22",
24813 "unused23",
24814 "unused24",
24815 "unused25",
24816 "unused26",
24817 "unused27",
24818 "unused28",
24819 "unused29",
24820 "unused30",
24821 "unused31",
24822 "unused32",
24823 "unused33",
24824 "unused34",
24825 "unused35",
24826 "unused36",
24827 "unused37",
24828 "unused38",
24829 "unused39",
24830 "unused40",
24831 "unused41",
24832 "unused42",
24833 "unused43",
24834 "unused44",
24835 "unused45",
24836 "unused46",
24837 "unused47",
24838 "unused48",
24839 "unused49",
24840 "unused50",
24841 "unused51",
24842 "unused52",
24843 "unused53",
24844 "unused54",
24845 "unused55",
24846 "unused56",
24847 "unused57",
24848 "unused58",
24849 "unused59",
24850 "unused60",
24851 "unused61",
24852 "unused62",
24853 "unused63",
24854 "unused64",
24855 "unused65",
24856 "unused66",
24857 "unused67",
24858 "unused68",
24859 "unused69",
24860 "unused70",
24861 "unused71",
24862 "unused72",
24863 "unused73",
24864 "unused74",
24865 "unused75",
24866 "unused76",
24867 "unused77",
24868 "unused78",
24869 "unused79",
24870 "unused80",
24871 "unused81",
24872 "unused82",
24873 "unused83",
24874 "unused84",
24875 "unused85",
24876 "unused86",
24877 "unused87",
24878 "unused88",
24879 "unused89",
24880 "unused90",
24881 "unused91",
24882 "unused92",
24883 "unused93",
24884 "unused94",
24885 "unused95",
24886 "unused96",
24887 "unused97",
24888 "unused98",
24889 "unused99",
24890 "unused100",
24891 "unused101",
24892 "unused102",
24893 "unused103",
24894 "unused104",
24895 "unused105",
24896 "unused106",
24897 "unused107",
24898 "unused108",
24899 "unused109",
24900 "unused110",
24901 "unused111",
24902 "unused112",
24903 "unused113",
24904 "unused114",
24905 "unused115",
24906 "unused116",
24907 "unused117",
24908 "unused118",
24909 "unused119",
24910 "unused120",
24911 "unused121",
24912 "unused122",
24913 "unused123",
24914 "unused124",
24915 "unused125",
24916 "unused126",
24917 "unused127",
24918 "unused128",
24919 "unused129",
24920 "unused130",
24921 "unused131",
24922 "unused132",
24923 "unused133",
24924 "unused134",
24925 "unused135",
24926 "unused136",
24927 "unused137",
24928 "unused138",
24929 "unused139",
24930 "unused140",
24931 "unused141",
24932 "unused142",
24933 "unused143",
24934 "unused144",
24935 "unused145",
24936 "unused146",
24937 "unused147",
24938 "unused148",
24939 "unused149",
24940 "unused150",
24941 "unused151",
24942 "unused152",
24943 "unused153",
24944 "unused154",
24945 "unused155",
24946 "unused156",
24947 "unused157",
24948 "unused158",
24949 "unused159",
24950 "unused160",
24951 "unused161",
24952 "unused162",
24953 "unused163",
24954 "unused164",
24955 "unused165",
24956 "unused166",
24957 "unused167",
24958 "unused168",
24959 "unused169",
24960 "unused170",
24961 "unused171",
24962 "unused172",
24963 "unused173",
24964 "unused174",
24965 "unused175",
24966 "unused176",
24967 "unused177",
24968 "unused178",
24969 "unused179",
24970 "unused180",
24971 "unused181",
24972 "unused182",
24973 "unused183",
24974 "unused184",
24975 "unused185",
24976 "unused186",
24977 "unused187",
24978 "unused188",
24979 "unused189",
24980 "unused190",
24981 "unused191",
24982 "unused192",
24983 "unused193",
24984 "unused194",
24985 "unused195",
24986 "unused196",
24987 "unused197",
24988 "unused198",
24989 "unused199",
24990 "unused200",
24991 "unused201",
24992 "unused202",
24993 "unused203",
24994 "unused204",
24995 "unused205",
24996 "unused206",
24997 "unused207",
24998 "unused208",
24999 "unused209",
25000 "unused210",
25001 "unused211",
25002 "unused212",
25003 "unused213",
25004 "unused214",
25005 "unused215",
25006 "unused216",
25007 "unused217",
25008 "unused218",
25009 "unused219",
25010 "unused220",
25011 "unused221",
25012 "unused222",
25013 "unused223",
25014 "unused224",
25015 "unused225",
25016 "unused226",
25017 "unused227",
25018 "unused228",
25019 "unused229",
25020 "unused230",
25021 "unused231",
25022 "unused232",
25023 "unused233",
25024 "unused234",
25025 "unused235",
25026 "unused236",
25027 "unused237",
25028 "unused238",
25029 "unused239",
25030 "unused240",
25031 "unused241",
25032 "unused242",
25033 "unused243",
25034 "unused244",
25035 "unused245",
25036 "unused246",
25037 "unused247",
25038 "unused248",
25039 "unused249",
25040 "unused250",
25041 "unused251",
25042 "unused252",
25043 "unused253",
25044 "unused254",
25045 "unused255"
25046 ],
25047 "optional" : 1,
25048 "type" : "string"
25049 },
25050 "target-vmid" : {
25051 "description" : "The (unique) ID of the VM.",
25052 "format" : "pve-vmid",
8dd66e12
TL
25053 "maximum" : 999999999,
25054 "minimum" : 100,
5370fa8c
TL
25055 "optional" : 1,
25056 "type" : "integer",
8dd66e12 25057 "typetext" : "<integer> (100 - 999999999)"
5370fa8c 25058 },
4d47f125
TL
25059 "vmid" : {
25060 "description" : "The (unique) ID of the VM.",
25061 "format" : "pve-vmid",
8dd66e12
TL
25062 "maximum" : 999999999,
25063 "minimum" : 100,
4d47f125 25064 "type" : "integer",
8dd66e12 25065 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
25066 }
25067 }
25068 },
25069 "permissions" : {
25070 "check" : [
5370fa8c
TL
25071 "perm",
25072 "/vms/{vmid}",
4d47f125 25073 [
5370fa8c 25074 "VM.Config.Disk"
4d47f125
TL
25075 ]
25076 ],
5370fa8c 25077 "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
25078 },
25079 "protected" : 1,
25080 "proxyto" : "node",
25081 "returns" : {
25082 "description" : "the task ID.",
25083 "type" : "string"
25084 }
25085 }
25086 },
25087 "leaf" : 1,
25088 "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
25089 "text" : "move_disk"
25090 },
25091 {
25092 "info" : {
1e3f8156 25093 "GET" : {
e9cd3bd4 25094 "allowtoken" : 1,
1e3f8156
TL
25095 "description" : "Get preconditions for migration.",
25096 "method" : "GET",
25097 "name" : "migrate_vm_precondition",
25098 "parameters" : {
25099 "additionalProperties" : 0,
25100 "properties" : {
25101 "node" : {
25102 "description" : "The cluster node name.",
25103 "format" : "pve-node",
25104 "type" : "string",
25105 "typetext" : "<string>"
25106 },
25107 "target" : {
25108 "description" : "Target node.",
25109 "format" : "pve-node",
25110 "optional" : 1,
25111 "type" : "string",
25112 "typetext" : "<string>"
25113 },
25114 "vmid" : {
25115 "description" : "The (unique) ID of the VM.",
25116 "format" : "pve-vmid",
8dd66e12
TL
25117 "maximum" : 999999999,
25118 "minimum" : 100,
1e3f8156 25119 "type" : "integer",
8dd66e12 25120 "typetext" : "<integer> (100 - 999999999)"
1e3f8156
TL
25121 }
25122 }
25123 },
25124 "permissions" : {
25125 "check" : [
25126 "perm",
25127 "/vms/{vmid}",
25128 [
25129 "VM.Migrate"
25130 ]
25131 ]
25132 },
25133 "protected" : 1,
25134 "proxyto" : "node",
25135 "returns" : {
25136 "properties" : {
25137 "allowed_nodes" : {
9226ccbc 25138 "description" : "List nodes allowed for offline migration, only passed if VM is offline",
1e3f8156
TL
25139 "optional" : 1,
25140 "type" : "array"
25141 },
25142 "local_disks" : {
25143 "description" : "List local disks including CD-Rom, unsused and not referenced disks",
25144 "type" : "array"
25145 },
25146 "local_resources" : {
25147 "description" : "List local resources e.g. pci, usb",
25148 "type" : "array"
25149 },
499c9b7f
TL
25150 "mapped-resources" : {
25151 "description" : "List of mapped resources e.g. pci, usb",
25152 "type" : "array"
25153 },
9226ccbc
TL
25154 "not_allowed_nodes" : {
25155 "description" : "List not allowed nodes with additional informations, only passed if VM is offline",
25156 "optional" : 1,
25157 "type" : "object"
25158 },
1e3f8156
TL
25159 "running" : {
25160 "type" : "boolean"
25161 }
25162 },
25163 "type" : "object"
25164 }
25165 },
4d47f125 25166 "POST" : {
e9cd3bd4 25167 "allowtoken" : 1,
4d47f125
TL
25168 "description" : "Migrate virtual machine. Creates a new migration task.",
25169 "method" : "POST",
25170 "name" : "migrate_vm",
25171 "parameters" : {
25172 "additionalProperties" : 0,
25173 "properties" : {
95895385
TL
25174 "bwlimit" : {
25175 "default" : "migrate limit from datacenter or storage config",
25176 "description" : "Override I/O bandwidth limit (in KiB/s).",
25177 "minimum" : "0",
25178 "optional" : 1,
25179 "type" : "integer",
25180 "typetext" : "<integer> (0 - N)"
25181 },
4d47f125
TL
25182 "force" : {
25183 "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
25184 "optional" : 1,
25185 "type" : "boolean",
25186 "typetext" : "<boolean>"
25187 },
25188 "migration_network" : {
25189 "description" : "CIDR of the (sub) network that is used for migration.",
25190 "format" : "CIDR",
25191 "optional" : 1,
25192 "type" : "string",
25193 "typetext" : "<string>"
25194 },
25195 "migration_type" : {
25196 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
25197 "enum" : [
25198 "secure",
25199 "insecure"
25200 ],
25201 "optional" : 1,
25202 "type" : "string"
25203 },
25204 "node" : {
25205 "description" : "The cluster node name.",
25206 "format" : "pve-node",
25207 "type" : "string",
25208 "typetext" : "<string>"
25209 },
25210 "online" : {
1c532546 25211 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
4d47f125
TL
25212 "optional" : 1,
25213 "type" : "boolean",
25214 "typetext" : "<boolean>"
25215 },
25216 "target" : {
25217 "description" : "Target node.",
25218 "format" : "pve-node",
25219 "type" : "string",
25220 "typetext" : "<string>"
25221 },
25222 "targetstorage" : {
c5aa7e14 25223 "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 25224 "format" : "storage-pair-list",
4d47f125 25225 "optional" : 1,
52e44c50
FG
25226 "type" : "string",
25227 "typetext" : "<string>"
25228 },
7aacca6f 25229 "vmid" : {
7aacca6f 25230 "description" : "The (unique) ID of the VM.",
44660702 25231 "format" : "pve-vmid",
8dd66e12
TL
25232 "maximum" : 999999999,
25233 "minimum" : 100,
4bd7df8b 25234 "type" : "integer",
8dd66e12 25235 "typetext" : "<integer> (100 - 999999999)"
52e44c50
FG
25236 },
25237 "with-local-disks" : {
25238 "description" : "Enable live storage migration for local disk",
25239 "optional" : 1,
25240 "type" : "boolean",
25241 "typetext" : "<boolean>"
56122987 25242 }
44660702
DM
25243 }
25244 },
25245 "permissions" : {
25246 "check" : [
25247 "perm",
25248 "/vms/{vmid}",
25249 [
25250 "VM.Migrate"
25251 ]
25252 ]
56122987
DM
25253 },
25254 "protected" : 1,
44660702
DM
25255 "proxyto" : "node",
25256 "returns" : {
25257 "description" : "the task ID.",
25258 "type" : "string"
25259 }
56122987 25260 }
7aacca6f 25261 },
44660702
DM
25262 "leaf" : 1,
25263 "path" : "/nodes/{node}/qemu/{vmid}/migrate",
7aacca6f 25264 "text" : "migrate"
56122987 25265 },
81a3384d
TL
25266 {
25267 "info" : {
25268 "POST" : {
25269 "allowtoken" : 1,
25270 "description" : "Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!",
25271 "method" : "POST",
25272 "name" : "remote_migrate_vm",
25273 "parameters" : {
25274 "additionalProperties" : 0,
25275 "properties" : {
25276 "bwlimit" : {
25277 "default" : "migrate limit from datacenter or storage config",
25278 "description" : "Override I/O bandwidth limit (in KiB/s).",
25279 "minimum" : "0",
25280 "optional" : 1,
25281 "type" : "integer",
25282 "typetext" : "<integer> (0 - N)"
25283 },
25284 "delete" : {
25285 "default" : 0,
25286 "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.",
25287 "optional" : 1,
25288 "type" : "boolean",
25289 "typetext" : "<boolean>"
25290 },
25291 "node" : {
25292 "description" : "The cluster node name.",
25293 "format" : "pve-node",
25294 "type" : "string",
25295 "typetext" : "<string>"
25296 },
25297 "online" : {
25298 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
25299 "optional" : 1,
25300 "type" : "boolean",
25301 "typetext" : "<boolean>"
25302 },
25303 "target-bridge" : {
25304 "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.",
25305 "format" : "bridge-pair-list",
25306 "type" : "string",
25307 "typetext" : "<string>"
25308 },
25309 "target-endpoint" : {
25310 "description" : "Remote target endpoint",
25311 "format" : "proxmox-remote",
25312 "type" : "string",
25313 "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>]"
25314 },
25315 "target-storage" : {
25316 "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.",
25317 "format" : "storage-pair-list",
25318 "optional" : 0,
25319 "type" : "string",
25320 "typetext" : "<string>"
25321 },
25322 "target-vmid" : {
25323 "description" : "The (unique) ID of the VM.",
25324 "format" : "pve-vmid",
8dd66e12
TL
25325 "maximum" : 999999999,
25326 "minimum" : 100,
81a3384d
TL
25327 "optional" : 1,
25328 "type" : "integer",
8dd66e12 25329 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
25330 },
25331 "vmid" : {
25332 "description" : "The (unique) ID of the VM.",
25333 "format" : "pve-vmid",
8dd66e12
TL
25334 "maximum" : 999999999,
25335 "minimum" : 100,
81a3384d 25336 "type" : "integer",
8dd66e12 25337 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
25338 }
25339 }
25340 },
25341 "permissions" : {
25342 "check" : [
25343 "perm",
25344 "/vms/{vmid}",
25345 [
25346 "VM.Migrate"
25347 ]
25348 ]
25349 },
25350 "protected" : 1,
25351 "proxyto" : "node",
25352 "returns" : {
25353 "description" : "the task ID.",
25354 "type" : "string"
25355 }
25356 }
25357 },
25358 "leaf" : 1,
25359 "path" : "/nodes/{node}/qemu/{vmid}/remote_migrate",
25360 "text" : "remote_migrate"
25361 },
56122987
DM
25362 {
25363 "info" : {
25364 "POST" : {
e9cd3bd4 25365 "allowtoken" : 1,
9d2e98ed 25366 "description" : "Execute QEMU monitor commands.",
56122987 25367 "method" : "POST",
44660702 25368 "name" : "monitor",
56122987 25369 "parameters" : {
7aacca6f 25370 "additionalProperties" : 0,
56122987 25371 "properties" : {
44660702
DM
25372 "command" : {
25373 "description" : "The monitor command.",
013dc89f
DM
25374 "type" : "string",
25375 "typetext" : "<string>"
44660702 25376 },
56122987 25377 "node" : {
44660702 25378 "description" : "The cluster node name.",
7aacca6f 25379 "format" : "pve-node",
013dc89f
DM
25380 "type" : "string",
25381 "typetext" : "<string>"
56122987
DM
25382 },
25383 "vmid" : {
44660702 25384 "description" : "The (unique) ID of the VM.",
56122987 25385 "format" : "pve-vmid",
8dd66e12
TL
25386 "maximum" : 999999999,
25387 "minimum" : 100,
4bd7df8b 25388 "type" : "integer",
8dd66e12 25389 "typetext" : "<integer> (100 - 999999999)"
56122987 25390 }
7aacca6f 25391 }
56122987 25392 },
56122987
DM
25393 "permissions" : {
25394 "check" : [
25395 "perm",
25396 "/vms/{vmid}",
25397 [
25398 "VM.Monitor"
25399 ]
32d876b5
DM
25400 ],
25401 "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
7aacca6f 25402 },
44660702
DM
25403 "protected" : 1,
25404 "proxyto" : "node",
25405 "returns" : {
25406 "type" : "string"
25407 }
56122987 25408 }
44660702
DM
25409 },
25410 "leaf" : 1,
25411 "path" : "/nodes/{node}/qemu/{vmid}/monitor",
25412 "text" : "monitor"
56122987
DM
25413 },
25414 {
56122987
DM
25415 "info" : {
25416 "PUT" : {
e9cd3bd4 25417 "allowtoken" : 1,
44660702
DM
25418 "description" : "Extend volume size.",
25419 "method" : "PUT",
25420 "name" : "resize_vm",
56122987 25421 "parameters" : {
44660702 25422 "additionalProperties" : 0,
56122987 25423 "properties" : {
44660702
DM
25424 "digest" : {
25425 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
25426 "maxLength" : 40,
25427 "optional" : 1,
013dc89f
DM
25428 "type" : "string",
25429 "typetext" : "<string>"
56122987 25430 },
56122987
DM
25431 "disk" : {
25432 "description" : "The disk you want to resize.",
25433 "enum" : [
25434 "ide0",
25435 "ide1",
25436 "ide2",
25437 "ide3",
25438 "scsi0",
25439 "scsi1",
25440 "scsi2",
25441 "scsi3",
25442 "scsi4",
25443 "scsi5",
25444 "scsi6",
25445 "scsi7",
25446 "scsi8",
25447 "scsi9",
25448 "scsi10",
25449 "scsi11",
25450 "scsi12",
25451 "scsi13",
e9cd3bd4
TL
25452 "scsi14",
25453 "scsi15",
25454 "scsi16",
25455 "scsi17",
25456 "scsi18",
25457 "scsi19",
25458 "scsi20",
25459 "scsi21",
25460 "scsi22",
25461 "scsi23",
25462 "scsi24",
25463 "scsi25",
25464 "scsi26",
25465 "scsi27",
25466 "scsi28",
25467 "scsi29",
25468 "scsi30",
56122987
DM
25469 "virtio0",
25470 "virtio1",
25471 "virtio2",
25472 "virtio3",
25473 "virtio4",
25474 "virtio5",
25475 "virtio6",
25476 "virtio7",
25477 "virtio8",
25478 "virtio9",
25479 "virtio10",
25480 "virtio11",
25481 "virtio12",
25482 "virtio13",
25483 "virtio14",
25484 "virtio15",
25485 "sata0",
25486 "sata1",
25487 "sata2",
25488 "sata3",
25489 "sata4",
2c0dde61 25490 "sata5",
5370fa8c
TL
25491 "efidisk0",
25492 "tpmstate0"
44660702
DM
25493 ],
25494 "type" : "string"
56122987 25495 },
44660702
DM
25496 "node" : {
25497 "description" : "The cluster node name.",
25498 "format" : "pve-node",
013dc89f
DM
25499 "type" : "string",
25500 "typetext" : "<string>"
7aacca6f 25501 },
44660702 25502 "size" : {
5d9c884c 25503 "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
25504 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
25505 "type" : "string"
56122987
DM
25506 },
25507 "skiplock" : {
25508 "description" : "Ignore locks - only root is allowed to use this option.",
25509 "optional" : 1,
013dc89f
DM
25510 "type" : "boolean",
25511 "typetext" : "<boolean>"
56122987
DM
25512 },
25513 "vmid" : {
7aacca6f 25514 "description" : "The (unique) ID of the VM.",
56122987 25515 "format" : "pve-vmid",
8dd66e12
TL
25516 "maximum" : 999999999,
25517 "minimum" : 100,
4bd7df8b 25518 "type" : "integer",
8dd66e12 25519 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
25520 }
25521 }
25522 },
25523 "permissions" : {
25524 "check" : [
25525 "perm",
25526 "/vms/{vmid}",
25527 [
44660702 25528 "VM.Config.Disk"
56122987
DM
25529 ]
25530 ]
25531 },
7aacca6f 25532 "protected" : 1,
7aacca6f 25533 "proxyto" : "node",
44660702 25534 "returns" : {
159464a9
TL
25535 "description" : "the task ID.",
25536 "type" : "string"
44660702 25537 }
7aacca6f
DM
25538 }
25539 },
44660702
DM
25540 "leaf" : 1,
25541 "path" : "/nodes/{node}/qemu/{vmid}/resize",
25542 "text" : "resize"
25543 },
25544 {
56122987
DM
25545 "children" : [
25546 {
25547 "children" : [
25548 {
56122987 25549 "info" : {
44660702 25550 "GET" : {
e9cd3bd4 25551 "allowtoken" : 1,
44660702
DM
25552 "description" : "Get snapshot configuration",
25553 "method" : "GET",
25554 "name" : "get_snapshot_config",
56122987 25555 "parameters" : {
44660702 25556 "additionalProperties" : 0,
56122987 25557 "properties" : {
56122987 25558 "node" : {
44660702 25559 "description" : "The cluster node name.",
56122987 25560 "format" : "pve-node",
013dc89f
DM
25561 "type" : "string",
25562 "typetext" : "<string>"
7aacca6f
DM
25563 },
25564 "snapname" : {
44660702 25565 "description" : "The name of the snapshot.",
7aacca6f 25566 "format" : "pve-configid",
44660702 25567 "maxLength" : 40,
013dc89f
DM
25568 "type" : "string",
25569 "typetext" : "<string>"
7aacca6f
DM
25570 },
25571 "vmid" : {
44660702 25572 "description" : "The (unique) ID of the VM.",
7aacca6f 25573 "format" : "pve-vmid",
8dd66e12
TL
25574 "maximum" : 999999999,
25575 "minimum" : 100,
4bd7df8b 25576 "type" : "integer",
8dd66e12 25577 "typetext" : "<integer> (100 - 999999999)"
56122987 25578 }
44660702 25579 }
56122987
DM
25580 },
25581 "permissions" : {
25582 "check" : [
25583 "perm",
25584 "/vms/{vmid}",
25585 [
2489d6df 25586 "VM.Snapshot",
e9cd3bd4
TL
25587 "VM.Snapshot.Rollback",
25588 "VM.Audit"
2489d6df
WB
25589 ],
25590 "any",
25591 1
56122987
DM
25592 ]
25593 },
44660702 25594 "proxyto" : "node",
56122987 25595 "returns" : {
44660702 25596 "type" : "object"
7aacca6f
DM
25597 }
25598 },
44660702 25599 "PUT" : {
e9cd3bd4 25600 "allowtoken" : 1,
44660702
DM
25601 "description" : "Update snapshot metadata.",
25602 "method" : "PUT",
25603 "name" : "update_snapshot_config",
56122987 25604 "parameters" : {
44660702 25605 "additionalProperties" : 0,
56122987 25606 "properties" : {
44660702
DM
25607 "description" : {
25608 "description" : "A textual description or comment.",
25609 "optional" : 1,
013dc89f
DM
25610 "type" : "string",
25611 "typetext" : "<string>"
44660702 25612 },
56122987 25613 "node" : {
7aacca6f 25614 "description" : "The cluster node name.",
44660702 25615 "format" : "pve-node",
013dc89f
DM
25616 "type" : "string",
25617 "typetext" : "<string>"
56122987 25618 },
56122987
DM
25619 "snapname" : {
25620 "description" : "The name of the snapshot.",
44660702 25621 "format" : "pve-configid",
7aacca6f 25622 "maxLength" : 40,
013dc89f
DM
25623 "type" : "string",
25624 "typetext" : "<string>"
7aacca6f
DM
25625 },
25626 "vmid" : {
25627 "description" : "The (unique) ID of the VM.",
44660702 25628 "format" : "pve-vmid",
8dd66e12
TL
25629 "maximum" : 999999999,
25630 "minimum" : 100,
4bd7df8b 25631 "type" : "integer",
8dd66e12 25632 "typetext" : "<integer> (100 - 999999999)"
56122987 25633 }
44660702 25634 }
56122987 25635 },
7aacca6f
DM
25636 "permissions" : {
25637 "check" : [
25638 "perm",
25639 "/vms/{vmid}",
25640 [
25641 "VM.Snapshot"
25642 ]
25643 ]
44660702
DM
25644 },
25645 "protected" : 1,
25646 "proxyto" : "node",
25647 "returns" : {
25648 "type" : "null"
7aacca6f 25649 }
56122987
DM
25650 }
25651 },
44660702 25652 "leaf" : 1,
7aacca6f 25653 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
44660702 25654 "text" : "config"
56122987
DM
25655 },
25656 {
56122987
DM
25657 "info" : {
25658 "POST" : {
e9cd3bd4 25659 "allowtoken" : 1,
44660702 25660 "description" : "Rollback VM state to specified snapshot.",
7aacca6f 25661 "method" : "POST",
44660702 25662 "name" : "rollback",
56122987
DM
25663 "parameters" : {
25664 "additionalProperties" : 0,
25665 "properties" : {
44660702
DM
25666 "node" : {
25667 "description" : "The cluster node name.",
25668 "format" : "pve-node",
013dc89f
DM
25669 "type" : "string",
25670 "typetext" : "<string>"
44660702 25671 },
56122987 25672 "snapname" : {
44660702 25673 "description" : "The name of the snapshot.",
56122987
DM
25674 "format" : "pve-configid",
25675 "maxLength" : 40,
013dc89f
DM
25676 "type" : "string",
25677 "typetext" : "<string>"
7aacca6f 25678 },
4e7f60c2
TL
25679 "start" : {
25680 "default" : 0,
9d2e98ed 25681 "description" : "Whether the VM should get started after rolling back successfully. (Note: VMs will be automatically started if the snapshot includes RAM.)",
4e7f60c2
TL
25682 "optional" : 1,
25683 "type" : "boolean",
25684 "typetext" : "<boolean>"
25685 },
56122987 25686 "vmid" : {
7aacca6f 25687 "description" : "The (unique) ID of the VM.",
44660702 25688 "format" : "pve-vmid",
8dd66e12
TL
25689 "maximum" : 999999999,
25690 "minimum" : 100,
4bd7df8b 25691 "type" : "integer",
8dd66e12 25692 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
25693 }
25694 }
25695 },
7aacca6f 25696 "permissions" : {
56122987
DM
25697 "check" : [
25698 "perm",
25699 "/vms/{vmid}",
25700 [
2489d6df
WB
25701 "VM.Snapshot",
25702 "VM.Snapshot.Rollback"
25703 ],
25704 "any",
25705 1
56122987
DM
25706 ]
25707 },
44660702 25708 "protected" : 1,
7aacca6f 25709 "proxyto" : "node",
44660702
DM
25710 "returns" : {
25711 "description" : "the task ID.",
25712 "type" : "string"
25713 }
56122987
DM
25714 }
25715 },
44660702
DM
25716 "leaf" : 1,
25717 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
7aacca6f 25718 "text" : "rollback"
56122987 25719 }
44660702
DM
25720 ],
25721 "info" : {
25722 "DELETE" : {
e9cd3bd4 25723 "allowtoken" : 1,
44660702
DM
25724 "description" : "Delete a VM snapshot.",
25725 "method" : "DELETE",
25726 "name" : "delsnapshot",
25727 "parameters" : {
25728 "additionalProperties" : 0,
25729 "properties" : {
25730 "force" : {
25731 "description" : "For removal from config file, even if removing disk snapshots fails.",
25732 "optional" : 1,
013dc89f
DM
25733 "type" : "boolean",
25734 "typetext" : "<boolean>"
44660702
DM
25735 },
25736 "node" : {
25737 "description" : "The cluster node name.",
25738 "format" : "pve-node",
013dc89f
DM
25739 "type" : "string",
25740 "typetext" : "<string>"
44660702
DM
25741 },
25742 "snapname" : {
25743 "description" : "The name of the snapshot.",
25744 "format" : "pve-configid",
25745 "maxLength" : 40,
013dc89f
DM
25746 "type" : "string",
25747 "typetext" : "<string>"
44660702
DM
25748 },
25749 "vmid" : {
25750 "description" : "The (unique) ID of the VM.",
25751 "format" : "pve-vmid",
8dd66e12
TL
25752 "maximum" : 999999999,
25753 "minimum" : 100,
4bd7df8b 25754 "type" : "integer",
8dd66e12 25755 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
25756 }
25757 }
25758 },
25759 "permissions" : {
25760 "check" : [
25761 "perm",
25762 "/vms/{vmid}",
25763 [
25764 "VM.Snapshot"
25765 ]
25766 ]
25767 },
25768 "protected" : 1,
25769 "proxyto" : "node",
25770 "returns" : {
25771 "description" : "the task ID.",
25772 "type" : "string"
25773 }
25774 },
25775 "GET" : {
e9cd3bd4 25776 "allowtoken" : 1,
44660702
DM
25777 "description" : "",
25778 "method" : "GET",
25779 "name" : "snapshot_cmd_idx",
25780 "parameters" : {
25781 "additionalProperties" : 0,
25782 "properties" : {
25783 "node" : {
25784 "description" : "The cluster node name.",
25785 "format" : "pve-node",
013dc89f
DM
25786 "type" : "string",
25787 "typetext" : "<string>"
44660702
DM
25788 },
25789 "snapname" : {
25790 "description" : "The name of the snapshot.",
25791 "format" : "pve-configid",
25792 "maxLength" : 40,
013dc89f
DM
25793 "type" : "string",
25794 "typetext" : "<string>"
44660702
DM
25795 },
25796 "vmid" : {
25797 "description" : "The (unique) ID of the VM.",
25798 "format" : "pve-vmid",
8dd66e12
TL
25799 "maximum" : 999999999,
25800 "minimum" : 100,
4bd7df8b 25801 "type" : "integer",
8dd66e12 25802 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
25803 }
25804 }
25805 },
25806 "permissions" : {
25807 "user" : "all"
25808 },
25809 "returns" : {
25810 "items" : {
25811 "properties" : {},
25812 "type" : "object"
25813 },
25814 "links" : [
25815 {
25816 "href" : "{cmd}",
25817 "rel" : "child"
25818 }
25819 ],
25820 "type" : "array"
25821 }
25822 }
25823 },
25824 "leaf" : 0,
25825 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
25826 "text" : "{snapname}"
56122987
DM
25827 }
25828 ],
44660702
DM
25829 "info" : {
25830 "GET" : {
e9cd3bd4 25831 "allowtoken" : 1,
44660702
DM
25832 "description" : "List all snapshots.",
25833 "method" : "GET",
25834 "name" : "snapshot_list",
25835 "parameters" : {
25836 "additionalProperties" : 0,
25837 "properties" : {
25838 "node" : {
25839 "description" : "The cluster node name.",
25840 "format" : "pve-node",
013dc89f
DM
25841 "type" : "string",
25842 "typetext" : "<string>"
44660702
DM
25843 },
25844 "vmid" : {
25845 "description" : "The (unique) ID of the VM.",
25846 "format" : "pve-vmid",
8dd66e12
TL
25847 "maximum" : 999999999,
25848 "minimum" : 100,
4bd7df8b 25849 "type" : "integer",
8dd66e12 25850 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
25851 }
25852 }
25853 },
25854 "permissions" : {
25855 "check" : [
25856 "perm",
25857 "/vms/{vmid}",
25858 [
25859 "VM.Audit"
25860 ]
25861 ]
25862 },
25863 "protected" : 1,
25864 "proxyto" : "node",
25865 "returns" : {
25866 "items" : {
4d47f125
TL
25867 "properties" : {
25868 "description" : {
25869 "description" : "Snapshot description.",
25870 "type" : "string"
25871 },
25872 "name" : {
25873 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
25874 "type" : "string"
25875 },
25876 "parent" : {
25877 "description" : "Parent snapshot identifier.",
25878 "optional" : 1,
25879 "type" : "string"
25880 },
25881 "snaptime" : {
25882 "description" : "Snapshot creation time",
25883 "optional" : 1,
25884 "renderer" : "timestamp",
25885 "type" : "integer"
25886 },
25887 "vmstate" : {
25888 "description" : "Snapshot includes RAM.",
25889 "optional" : 1,
25890 "type" : "boolean"
25891 }
25892 },
44660702
DM
25893 "type" : "object"
25894 },
25895 "links" : [
25896 {
25897 "href" : "{name}",
25898 "rel" : "child"
25899 }
25900 ],
25901 "type" : "array"
25902 }
25903 },
25904 "POST" : {
e9cd3bd4 25905 "allowtoken" : 1,
44660702
DM
25906 "description" : "Snapshot a VM.",
25907 "method" : "POST",
25908 "name" : "snapshot",
25909 "parameters" : {
25910 "additionalProperties" : 0,
25911 "properties" : {
25912 "description" : {
25913 "description" : "A textual description or comment.",
25914 "optional" : 1,
013dc89f
DM
25915 "type" : "string",
25916 "typetext" : "<string>"
44660702
DM
25917 },
25918 "node" : {
25919 "description" : "The cluster node name.",
25920 "format" : "pve-node",
013dc89f
DM
25921 "type" : "string",
25922 "typetext" : "<string>"
44660702
DM
25923 },
25924 "snapname" : {
25925 "description" : "The name of the snapshot.",
25926 "format" : "pve-configid",
25927 "maxLength" : 40,
013dc89f
DM
25928 "type" : "string",
25929 "typetext" : "<string>"
44660702
DM
25930 },
25931 "vmid" : {
25932 "description" : "The (unique) ID of the VM.",
25933 "format" : "pve-vmid",
8dd66e12
TL
25934 "maximum" : 999999999,
25935 "minimum" : 100,
4bd7df8b 25936 "type" : "integer",
8dd66e12 25937 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
25938 },
25939 "vmstate" : {
25940 "description" : "Save the vmstate",
25941 "optional" : 1,
013dc89f
DM
25942 "type" : "boolean",
25943 "typetext" : "<boolean>"
44660702
DM
25944 }
25945 }
25946 },
25947 "permissions" : {
25948 "check" : [
25949 "perm",
25950 "/vms/{vmid}",
25951 [
25952 "VM.Snapshot"
25953 ]
25954 ]
25955 },
25956 "protected" : 1,
25957 "proxyto" : "node",
25958 "returns" : {
25959 "description" : "the task ID.",
25960 "type" : "string"
25961 }
25962 }
25963 },
25964 "leaf" : 0,
25965 "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
7aacca6f 25966 "text" : "snapshot"
56122987
DM
25967 },
25968 {
56122987
DM
25969 "info" : {
25970 "POST" : {
e9cd3bd4 25971 "allowtoken" : 1,
44660702
DM
25972 "description" : "Create a Template.",
25973 "method" : "POST",
56122987 25974 "name" : "template",
56122987 25975 "parameters" : {
7aacca6f 25976 "additionalProperties" : 0,
56122987 25977 "properties" : {
56122987 25978 "disk" : {
56122987
DM
25979 "description" : "If you want to convert only 1 disk to base image.",
25980 "enum" : [
25981 "ide0",
25982 "ide1",
25983 "ide2",
25984 "ide3",
25985 "scsi0",
25986 "scsi1",
25987 "scsi2",
25988 "scsi3",
25989 "scsi4",
25990 "scsi5",
25991 "scsi6",
25992 "scsi7",
25993 "scsi8",
25994 "scsi9",
25995 "scsi10",
25996 "scsi11",
25997 "scsi12",
25998 "scsi13",
e9cd3bd4
TL
25999 "scsi14",
26000 "scsi15",
26001 "scsi16",
26002 "scsi17",
26003 "scsi18",
26004 "scsi19",
26005 "scsi20",
26006 "scsi21",
26007 "scsi22",
26008 "scsi23",
26009 "scsi24",
26010 "scsi25",
26011 "scsi26",
26012 "scsi27",
26013 "scsi28",
26014 "scsi29",
26015 "scsi30",
56122987
DM
26016 "virtio0",
26017 "virtio1",
26018 "virtio2",
26019 "virtio3",
26020 "virtio4",
26021 "virtio5",
26022 "virtio6",
26023 "virtio7",
26024 "virtio8",
26025 "virtio9",
26026 "virtio10",
26027 "virtio11",
26028 "virtio12",
26029 "virtio13",
26030 "virtio14",
26031 "virtio15",
26032 "sata0",
26033 "sata1",
26034 "sata2",
26035 "sata3",
26036 "sata4",
2c0dde61 26037 "sata5",
5370fa8c
TL
26038 "efidisk0",
26039 "tpmstate0"
56122987 26040 ],
7aacca6f 26041 "optional" : 1,
56122987
DM
26042 "type" : "string"
26043 },
44660702
DM
26044 "node" : {
26045 "description" : "The cluster node name.",
26046 "format" : "pve-node",
013dc89f
DM
26047 "type" : "string",
26048 "typetext" : "<string>"
44660702
DM
26049 },
26050 "vmid" : {
26051 "description" : "The (unique) ID of the VM.",
7aacca6f 26052 "format" : "pve-vmid",
8dd66e12
TL
26053 "maximum" : 999999999,
26054 "minimum" : 100,
4bd7df8b 26055 "type" : "integer",
8dd66e12 26056 "typetext" : "<integer> (100 - 999999999)"
56122987 26057 }
7aacca6f 26058 }
56122987 26059 },
7aacca6f
DM
26060 "permissions" : {
26061 "check" : [
26062 "perm",
26063 "/vms/{vmid}",
26064 [
26065 "VM.Allocate"
26066 ]
26067 ],
26068 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
26069 },
44660702 26070 "protected" : 1,
7aacca6f 26071 "proxyto" : "node",
7aacca6f 26072 "returns" : {
5370fa8c
TL
26073 "description" : "the task ID.",
26074 "type" : "string"
7aacca6f 26075 }
56122987
DM
26076 }
26077 },
44660702 26078 "leaf" : 1,
7aacca6f 26079 "path" : "/nodes/{node}/qemu/{vmid}/template",
44660702 26080 "text" : "template"
81a3384d
TL
26081 },
26082 {
26083 "info" : {
26084 "POST" : {
26085 "allowtoken" : 1,
26086 "description" : "Migration tunnel endpoint - only for internal use by VM migration.",
26087 "method" : "POST",
26088 "name" : "mtunnel",
26089 "parameters" : {
26090 "additionalProperties" : 0,
26091 "properties" : {
26092 "bridges" : {
26093 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
26094 "format" : "pve-bridge-id-list",
26095 "optional" : 1,
26096 "type" : "string",
26097 "typetext" : "<string>"
26098 },
26099 "node" : {
26100 "description" : "The cluster node name.",
26101 "format" : "pve-node",
26102 "type" : "string",
26103 "typetext" : "<string>"
26104 },
26105 "storages" : {
26106 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
26107 "format" : "pve-storage-id-list",
26108 "optional" : 1,
26109 "type" : "string",
26110 "typetext" : "<string>"
26111 },
26112 "vmid" : {
26113 "description" : "The (unique) ID of the VM.",
26114 "format" : "pve-vmid",
8dd66e12
TL
26115 "maximum" : 999999999,
26116 "minimum" : 100,
81a3384d 26117 "type" : "integer",
8dd66e12 26118 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
26119 }
26120 }
26121 },
26122 "permissions" : {
26123 "check" : [
26124 "and",
26125 [
26126 "perm",
26127 "/vms/{vmid}",
26128 [
26129 "VM.Allocate"
26130 ]
26131 ],
26132 [
26133 "perm",
26134 "/",
26135 [
26136 "Sys.Incoming"
26137 ]
26138 ]
26139 ],
26140 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
26141 },
26142 "protected" : 1,
26143 "returns" : {
26144 "additionalProperties" : 0,
26145 "properties" : {
26146 "socket" : {
26147 "type" : "string"
26148 },
26149 "ticket" : {
26150 "type" : "string"
26151 },
26152 "upid" : {
26153 "type" : "string"
26154 }
26155 }
26156 }
26157 }
26158 },
26159 "leaf" : 1,
26160 "path" : "/nodes/{node}/qemu/{vmid}/mtunnel",
26161 "text" : "mtunnel"
26162 },
26163 {
26164 "info" : {
26165 "GET" : {
26166 "allowtoken" : 1,
26167 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
26168 "method" : "GET",
26169 "name" : "mtunnelwebsocket",
26170 "parameters" : {
26171 "additionalProperties" : 0,
26172 "properties" : {
26173 "node" : {
26174 "description" : "The cluster node name.",
26175 "format" : "pve-node",
26176 "type" : "string",
26177 "typetext" : "<string>"
26178 },
26179 "socket" : {
26180 "description" : "unix socket to forward to",
26181 "type" : "string",
26182 "typetext" : "<string>"
26183 },
26184 "ticket" : {
26185 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
26186 "type" : "string",
26187 "typetext" : "<string>"
26188 },
26189 "vmid" : {
26190 "description" : "The (unique) ID of the VM.",
26191 "format" : "pve-vmid",
8dd66e12
TL
26192 "maximum" : 999999999,
26193 "minimum" : 100,
81a3384d 26194 "type" : "integer",
8dd66e12 26195 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
26196 }
26197 }
26198 },
26199 "permissions" : {
26200 "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.",
26201 "user" : "all"
26202 },
26203 "returns" : {
26204 "properties" : {
26205 "port" : {
26206 "optional" : 1,
26207 "type" : "string"
26208 },
26209 "socket" : {
26210 "optional" : 1,
26211 "type" : "string"
26212 }
26213 },
26214 "type" : "object"
26215 }
26216 }
26217 },
26218 "leaf" : 1,
26219 "path" : "/nodes/{node}/qemu/{vmid}/mtunnelwebsocket",
26220 "text" : "mtunnelwebsocket"
56122987
DM
26221 }
26222 ],
7aacca6f 26223 "info" : {
44660702 26224 "DELETE" : {
e9cd3bd4 26225 "allowtoken" : 1,
d2656385 26226 "description" : "Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules",
44660702
DM
26227 "method" : "DELETE",
26228 "name" : "destroy_vm",
7aacca6f 26229 "parameters" : {
44660702 26230 "additionalProperties" : 0,
7aacca6f 26231 "properties" : {
d2656385 26232 "destroy-unreferenced-disks" : {
8f4d9c87 26233 "default" : 0,
d2656385
TL
26234 "description" : "If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages.",
26235 "optional" : 1,
26236 "type" : "boolean",
26237 "typetext" : "<boolean>"
26238 },
7aacca6f 26239 "node" : {
44660702 26240 "description" : "The cluster node name.",
7aacca6f 26241 "format" : "pve-node",
013dc89f
DM
26242 "type" : "string",
26243 "typetext" : "<string>"
44660702 26244 },
1c532546 26245 "purge" : {
d2656385 26246 "description" : "Remove VMID from configurations, like backup & replication jobs and HA.",
1c532546
TL
26247 "optional" : 1,
26248 "type" : "boolean",
26249 "typetext" : "<boolean>"
26250 },
44660702
DM
26251 "skiplock" : {
26252 "description" : "Ignore locks - only root is allowed to use this option.",
26253 "optional" : 1,
013dc89f
DM
26254 "type" : "boolean",
26255 "typetext" : "<boolean>"
7aacca6f
DM
26256 },
26257 "vmid" : {
44660702 26258 "description" : "The (unique) ID of the VM.",
7aacca6f 26259 "format" : "pve-vmid",
8dd66e12
TL
26260 "maximum" : 999999999,
26261 "minimum" : 100,
4bd7df8b 26262 "type" : "integer",
8dd66e12 26263 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 26264 }
44660702 26265 }
7aacca6f 26266 },
7aacca6f
DM
26267 "permissions" : {
26268 "check" : [
26269 "perm",
26270 "/vms/{vmid}",
26271 [
26272 "VM.Allocate"
26273 ]
26274 ]
26275 },
44660702
DM
26276 "protected" : 1,
26277 "proxyto" : "node",
7aacca6f
DM
26278 "returns" : {
26279 "type" : "string"
44660702
DM
26280 }
26281 },
26282 "GET" : {
e9cd3bd4 26283 "allowtoken" : 1,
44660702
DM
26284 "description" : "Directory index",
26285 "method" : "GET",
26286 "name" : "vmdiridx",
7aacca6f 26287 "parameters" : {
44660702 26288 "additionalProperties" : 0,
7aacca6f 26289 "properties" : {
7aacca6f 26290 "node" : {
7aacca6f 26291 "description" : "The cluster node name.",
44660702 26292 "format" : "pve-node",
013dc89f
DM
26293 "type" : "string",
26294 "typetext" : "<string>"
44660702
DM
26295 },
26296 "vmid" : {
26297 "description" : "The (unique) ID of the VM.",
26298 "format" : "pve-vmid",
8dd66e12
TL
26299 "maximum" : 999999999,
26300 "minimum" : 100,
4bd7df8b 26301 "type" : "integer",
8dd66e12 26302 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 26303 }
44660702 26304 }
7aacca6f 26305 },
44660702
DM
26306 "permissions" : {
26307 "user" : "all"
26308 },
26309 "proxyto" : "node",
26310 "returns" : {
26311 "items" : {
26312 "properties" : {
26313 "subdir" : {
26314 "type" : "string"
26315 }
26316 },
26317 "type" : "object"
26318 },
26319 "links" : [
26320 {
26321 "href" : "{subdir}",
26322 "rel" : "child"
26323 }
26324 ],
26325 "type" : "array"
26326 }
7aacca6f 26327 }
44660702
DM
26328 },
26329 "leaf" : 0,
26330 "path" : "/nodes/{node}/qemu/{vmid}",
26331 "text" : "{vmid}"
56122987
DM
26332 }
26333 ],
26334 "info" : {
44660702 26335 "GET" : {
e9cd3bd4 26336 "allowtoken" : 1,
44660702
DM
26337 "description" : "Virtual machine index (per node).",
26338 "method" : "GET",
26339 "name" : "vmlist",
56122987 26340 "parameters" : {
44660702 26341 "additionalProperties" : 0,
56122987 26342 "properties" : {
44660702
DM
26343 "full" : {
26344 "description" : "Determine the full status of active VMs.",
56122987 26345 "optional" : 1,
013dc89f
DM
26346 "type" : "boolean",
26347 "typetext" : "<boolean>"
56122987 26348 },
44660702
DM
26349 "node" : {
26350 "description" : "The cluster node name.",
26351 "format" : "pve-node",
013dc89f
DM
26352 "type" : "string",
26353 "typetext" : "<string>"
44660702
DM
26354 }
26355 }
26356 },
26357 "permissions" : {
26358 "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
26359 "user" : "all"
26360 },
26361 "protected" : 1,
26362 "proxyto" : "node",
26363 "returns" : {
26364 "items" : {
4d47f125
TL
26365 "properties" : {
26366 "cpus" : {
26367 "description" : "Maximum usable CPUs.",
26368 "optional" : 1,
26369 "type" : "number"
26370 },
95895385
TL
26371 "lock" : {
26372 "description" : "The current config lock, if any.",
26373 "optional" : 1,
26374 "type" : "string"
26375 },
4d47f125
TL
26376 "maxdisk" : {
26377 "description" : "Root disk size in bytes.",
26378 "optional" : 1,
26379 "renderer" : "bytes",
26380 "type" : "integer"
26381 },
26382 "maxmem" : {
26383 "description" : "Maximum memory in bytes.",
26384 "optional" : 1,
26385 "renderer" : "bytes",
26386 "type" : "integer"
26387 },
26388 "name" : {
26389 "description" : "VM name.",
26390 "optional" : 1,
26391 "type" : "string"
26392 },
26393 "pid" : {
26394 "description" : "PID of running qemu process.",
26395 "optional" : 1,
26396 "type" : "integer"
26397 },
26398 "qmpstatus" : {
499c9b7f 26399 "description" : "VM run state from the 'query-status' QMP monitor command.",
4d47f125
TL
26400 "optional" : 1,
26401 "type" : "string"
26402 },
d2656385
TL
26403 "running-machine" : {
26404 "description" : "The currently running machine type (if running).",
26405 "optional" : 1,
26406 "type" : "string"
26407 },
26408 "running-qemu" : {
26409 "description" : "The currently running QEMU version (if running).",
26410 "optional" : 1,
26411 "type" : "string"
26412 },
4d47f125 26413 "status" : {
9d2e98ed 26414 "description" : "QEMU process status.",
4d47f125
TL
26415 "enum" : [
26416 "stopped",
26417 "running"
26418 ],
26419 "type" : "string"
26420 },
5c1699e5
TL
26421 "tags" : {
26422 "description" : "The current configured tags, if any",
26423 "optional" : 1,
26424 "type" : "string"
26425 },
4d47f125
TL
26426 "uptime" : {
26427 "description" : "Uptime.",
26428 "optional" : 1,
26429 "renderer" : "duration",
26430 "type" : "integer"
26431 },
26432 "vmid" : {
26433 "description" : "The (unique) ID of the VM.",
26434 "format" : "pve-vmid",
8dd66e12
TL
26435 "maximum" : 999999999,
26436 "minimum" : 100,
4d47f125
TL
26437 "type" : "integer"
26438 }
26439 },
44660702
DM
26440 "type" : "object"
26441 },
26442 "links" : [
26443 {
26444 "href" : "{vmid}",
26445 "rel" : "child"
26446 }
26447 ],
26448 "type" : "array"
26449 }
26450 },
26451 "POST" : {
e9cd3bd4 26452 "allowtoken" : 1,
44660702
DM
26453 "description" : "Create or restore a virtual machine.",
26454 "method" : "POST",
26455 "name" : "create_vm",
26456 "parameters" : {
26457 "additionalProperties" : 0,
26458 "properties" : {
7aacca6f 26459 "acpi" : {
7aacca6f 26460 "default" : 1,
44660702 26461 "description" : "Enable/disable ACPI.",
56122987 26462 "optional" : 1,
013dc89f
DM
26463 "type" : "boolean",
26464 "typetext" : "<boolean>"
56122987 26465 },
4e7f60c2 26466 "affinity" : {
81a3384d 26467 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
26468 "format" : "pve-cpuset",
26469 "optional" : 1,
26470 "type" : "string",
26471 "typetext" : "<string>"
26472 },
44660702 26473 "agent" : {
9d2e98ed 26474 "description" : "Enable/disable communication with the QEMU Guest Agent and its properties.",
4d47f125
TL
26475 "format" : {
26476 "enabled" : {
26477 "default" : 0,
26478 "default_key" : 1,
9d2e98ed
TL
26479 "description" : "Enable/disable communication with a QEMU Guest Agent (QGA) running in the VM.",
26480 "type" : "boolean"
26481 },
26482 "freeze-fs-on-backup" : {
26483 "default" : 1,
26484 "description" : "Freeze/thaw guest filesystems on backup for consistency.",
26485 "optional" : 1,
4d47f125
TL
26486 "type" : "boolean"
26487 },
26488 "fstrim_cloned_disks" : {
26489 "default" : 0,
d2656385 26490 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
26491 "optional" : 1,
26492 "type" : "boolean"
5c1699e5
TL
26493 },
26494 "type" : {
26495 "default" : "virtio",
26496 "description" : "Select the agent type",
26497 "enum" : [
26498 "virtio",
26499 "isa"
26500 ],
26501 "optional" : 1,
26502 "type" : "string"
4d47f125
TL
26503 }
26504 },
7aacca6f 26505 "optional" : 1,
4d47f125 26506 "type" : "string",
9d2e98ed 26507 "typetext" : "[enabled=]<1|0> [,freeze-fs-on-backup=<1|0>] [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 26508 },
e2d681b3
TL
26509 "arch" : {
26510 "description" : "Virtual processor architecture. Defaults to the host.",
26511 "enum" : [
26512 "x86_64",
26513 "aarch64"
26514 ],
26515 "optional" : 1,
26516 "type" : "string"
26517 },
44660702 26518 "archive" : {
c5aa7e14 26519 "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 26520 "maxLength" : 255,
56122987 26521 "optional" : 1,
013dc89f
DM
26522 "type" : "string",
26523 "typetext" : "<string>"
56122987 26524 },
44660702 26525 "args" : {
c2993fe5 26526 "description" : "Arbitrary arguments passed to kvm.",
56122987 26527 "optional" : 1,
c2993fe5 26528 "type" : "string",
013dc89f 26529 "typetext" : "<string>",
159464a9 26530 "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 26531 },
1c532546
TL
26532 "audio0" : {
26533 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
26534 "format" : {
26535 "device" : {
26536 "description" : "Configure an audio device.",
26537 "enum" : [
26538 "ich9-intel-hda",
26539 "intel-hda",
26540 "AC97"
26541 ],
26542 "type" : "string"
26543 },
26544 "driver" : {
26545 "default" : "spice",
26546 "description" : "Driver backend for the audio device.",
26547 "enum" : [
d2656385
TL
26548 "spice",
26549 "none"
1c532546
TL
26550 ],
26551 "optional" : 1,
26552 "type" : "string"
26553 }
26554 },
26555 "optional" : 1,
26556 "type" : "string",
d2656385 26557 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 26558 },
44660702 26559 "autostart" : {
7aacca6f 26560 "default" : 0,
44660702
DM
26561 "description" : "Automatic restart after crash (currently ignored).",
26562 "optional" : 1,
013dc89f
DM
26563 "type" : "boolean",
26564 "typetext" : "<boolean>"
7aacca6f 26565 },
44660702 26566 "balloon" : {
9d2e98ed 26567 "description" : "Amount of target RAM for the VM in MiB. Using zero disables the ballon driver.",
44660702 26568 "minimum" : 0,
56122987 26569 "optional" : 1,
4bd7df8b 26570 "type" : "integer",
013dc89f 26571 "typetext" : "<integer> (0 - N)"
56122987 26572 },
44660702
DM
26573 "bios" : {
26574 "default" : "seabios",
26575 "description" : "Select BIOS implementation.",
26576 "enum" : [
26577 "seabios",
26578 "ovmf"
26579 ],
56122987 26580 "optional" : 1,
44660702 26581 "type" : "string"
56122987 26582 },
44660702 26583 "boot" : {
5370fa8c 26584 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 26585 "format" : "pve-qm-boot",
56122987 26586 "optional" : 1,
4772952b
TL
26587 "type" : "string",
26588 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 26589 },
7aacca6f 26590 "bootdisk" : {
4772952b 26591 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
26592 "format" : "pve-qm-bootdisk",
26593 "optional" : 1,
7aacca6f 26594 "pattern" : "(ide|sata|scsi|virtio)\\d+",
44660702
DM
26595 "type" : "string"
26596 },
27a7acb2 26597 "bwlimit" : {
95895385
TL
26598 "default" : "restore limit from datacenter or storage config",
26599 "description" : "Override I/O bandwidth limit (in KiB/s).",
27a7acb2
DM
26600 "minimum" : "0",
26601 "optional" : 1,
26602 "type" : "integer",
26603 "typetext" : "<integer> (0 - N)"
26604 },
44660702
DM
26605 "cdrom" : {
26606 "description" : "This is an alias for option -ide2",
de0983cb 26607 "format" : "pve-qm-ide",
56122987 26608 "optional" : 1,
44660702 26609 "type" : "string",
013dc89f 26610 "typetext" : "<volume>"
56122987 26611 },
95895385
TL
26612 "cicustom" : {
26613 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
26614 "format" : "pve-qm-cicustom",
26615 "optional" : 1,
26616 "type" : "string",
5370fa8c 26617 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 26618 },
27a7acb2
DM
26619 "cipassword" : {
26620 "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.",
26621 "optional" : 1,
26622 "type" : "string",
26623 "typetext" : "<string>"
26624 },
26625 "citype" : {
26626 "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.",
26627 "enum" : [
26628 "configdrive2",
d2656385
TL
26629 "nocloud",
26630 "opennebula"
27a7acb2
DM
26631 ],
26632 "optional" : 1,
26633 "type" : "string"
26634 },
159464a9 26635 "ciupgrade" : {
c8eee6ff 26636 "default" : 1,
159464a9
TL
26637 "description" : "cloud-init: do an automatic package upgrade after the first boot.",
26638 "optional" : 1,
26639 "type" : "boolean",
26640 "typetext" : "<boolean>"
26641 },
27a7acb2
DM
26642 "ciuser" : {
26643 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
26644 "optional" : 1,
26645 "type" : "string",
26646 "typetext" : "<string>"
26647 },
44660702
DM
26648 "cores" : {
26649 "default" : 1,
26650 "description" : "The number of cores per socket.",
7aacca6f 26651 "minimum" : 1,
44660702 26652 "optional" : 1,
4bd7df8b 26653 "type" : "integer",
013dc89f 26654 "typetext" : "<integer> (1 - N)"
7aacca6f 26655 },
44660702
DM
26656 "cpu" : {
26657 "description" : "Emulated CPU type.",
c5aa7e14 26658 "format" : "pve-vm-cpu-conf",
56122987 26659 "optional" : 1,
4bd7df8b 26660 "type" : "string",
04d22a9f 26661 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
56122987 26662 },
44660702 26663 "cpulimit" : {
7aacca6f 26664 "default" : 0,
c2993fe5 26665 "description" : "Limit of CPU usage.",
44660702
DM
26666 "maximum" : 128,
26667 "minimum" : 0,
7aacca6f 26668 "optional" : 1,
c2993fe5 26669 "type" : "number",
013dc89f 26670 "typetext" : "<number> (0 - 128)",
c2993fe5 26671 "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
26672 },
26673 "cpuunits" : {
5370fa8c
TL
26674 "default" : "cgroup v1: 1024, cgroup v2: 100",
26675 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 26676 "maximum" : 262144,
7af2edf9 26677 "minimum" : 1,
44660702 26678 "optional" : 1,
c2993fe5 26679 "type" : "integer",
7af2edf9 26680 "typetext" : "<integer> (1 - 262144)",
2489d6df 26681 "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
26682 },
26683 "description" : {
8f4d9c87
TL
26684 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
26685 "maxLength" : 8192,
56122987 26686 "optional" : 1,
013dc89f
DM
26687 "type" : "string",
26688 "typetext" : "<string>"
44660702 26689 },
4d47f125 26690 "efidisk0" : {
9d2e98ed 26691 "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 26692 "format" : {
5370fa8c
TL
26693 "efitype" : {
26694 "default" : "2m",
bd92b745 26695 "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
26696 "enum" : [
26697 "2m",
26698 "4m"
26699 ],
26700 "optional" : 1,
26701 "type" : "string"
26702 },
4d47f125
TL
26703 "file" : {
26704 "default_key" : 1,
26705 "description" : "The drive's backing volume.",
26706 "format" : "pve-volume-id-or-qm-path",
26707 "format_description" : "volume",
26708 "type" : "string"
26709 },
26710 "format" : {
26711 "description" : "The drive's backing file's data format.",
26712 "enum" : [
26713 "raw",
26714 "cow",
26715 "qcow",
26716 "qed",
26717 "qcow2",
26718 "vmdk",
26719 "cloop"
26720 ],
26721 "optional" : 1,
26722 "type" : "string"
26723 },
7af2edf9
TL
26724 "import-from" : {
26725 "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!",
26726 "format" : "pve-volume-id-or-absolute-path",
26727 "format_description" : "source volume",
26728 "optional" : 1,
26729 "type" : "string"
26730 },
5370fa8c
TL
26731 "pre-enrolled-keys" : {
26732 "default" : 0,
26733 "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.",
26734 "optional" : 1,
26735 "type" : "boolean"
26736 },
4d47f125
TL
26737 "size" : {
26738 "description" : "Disk size. This is purely informational and has no effect.",
26739 "format" : "disk-size",
26740 "format_description" : "DiskSize",
26741 "optional" : 1,
26742 "type" : "string"
26743 },
26744 "volume" : {
26745 "alias" : "file"
26746 }
26747 },
26748 "optional" : 1,
26749 "type" : "string",
7af2edf9 26750 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 26751 },
44660702
DM
26752 "force" : {
26753 "description" : "Allow to overwrite existing VM.",
26754 "optional" : 1,
26755 "requires" : "archive",
013dc89f
DM
26756 "type" : "boolean",
26757 "typetext" : "<boolean>"
44660702
DM
26758 },
26759 "freeze" : {
26760 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
26761 "optional" : 1,
013dc89f
DM
26762 "type" : "boolean",
26763 "typetext" : "<boolean>"
44660702 26764 },
5f26e15b
TL
26765 "hookscript" : {
26766 "description" : "Script that will be executed during various steps in the vms lifetime.",
26767 "format" : "pve-volume-id",
26768 "optional" : 1,
26769 "type" : "string",
26770 "typetext" : "<string>"
26771 },
44660702 26772 "hostpci[n]" : {
c2993fe5 26773 "description" : "Map host PCI devices into guest.",
44660702
DM
26774 "format" : "pve-qm-hostpci",
26775 "optional" : 1,
57b78691 26776 "type" : "string",
499c9b7f 26777 "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 26778 "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
26779 },
26780 "hotplug" : {
26781 "default" : "network,disk,usb",
4e7f60c2 26782 "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
26783 "format" : "pve-hotplug-features",
26784 "optional" : 1,
013dc89f
DM
26785 "type" : "string",
26786 "typetext" : "<string>"
7aacca6f 26787 },
4bd7df8b
DM
26788 "hugepages" : {
26789 "description" : "Enable/disable hugepages memory.",
26790 "enum" : [
26791 "any",
26792 "2",
26793 "1024"
26794 ],
26795 "optional" : 1,
26796 "type" : "string"
26797 },
7aacca6f 26798 "ide[n]" : {
7af2edf9 26799 "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 26800 "format" : {
44660702
DM
26801 "aio" : {
26802 "description" : "AIO type to use.",
26803 "enum" : [
26804 "native",
8f4d9c87
TL
26805 "threads",
26806 "io_uring"
44660702 26807 ],
44660702
DM
26808 "optional" : 1,
26809 "type" : "string"
26810 },
26811 "backup" : {
26812 "description" : "Whether the drive should be included when making backups.",
44660702
DM
26813 "optional" : 1,
26814 "type" : "boolean"
26815 },
26816 "bps" : {
de0983cb 26817 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 26818 "format_description" : "bps",
56122987 26819 "optional" : 1,
44660702 26820 "type" : "integer"
56122987 26821 },
de0983cb
DM
26822 "bps_max_length" : {
26823 "description" : "Maximum length of I/O bursts in seconds.",
26824 "format_description" : "seconds",
26825 "minimum" : 1,
26826 "optional" : 1,
26827 "type" : "integer"
26828 },
44660702 26829 "bps_rd" : {
de0983cb 26830 "description" : "Maximum read speed in bytes per second.",
44660702 26831 "format_description" : "bps",
56122987 26832 "optional" : 1,
44660702 26833 "type" : "integer"
56122987 26834 },
de0983cb 26835 "bps_rd_length" : {
5d9c884c
DM
26836 "alias" : "bps_rd_max_length"
26837 },
26838 "bps_rd_max_length" : {
de0983cb
DM
26839 "description" : "Maximum length of read I/O bursts in seconds.",
26840 "format_description" : "seconds",
26841 "minimum" : 1,
26842 "optional" : 1,
26843 "type" : "integer"
26844 },
44660702 26845 "bps_wr" : {
de0983cb 26846 "description" : "Maximum write speed in bytes per second.",
44660702 26847 "format_description" : "bps",
56122987 26848 "optional" : 1,
44660702 26849 "type" : "integer"
56122987 26850 },
de0983cb 26851 "bps_wr_length" : {
5d9c884c
DM
26852 "alias" : "bps_wr_max_length"
26853 },
26854 "bps_wr_max_length" : {
de0983cb
DM
26855 "description" : "Maximum length of write I/O bursts in seconds.",
26856 "format_description" : "seconds",
26857 "minimum" : 1,
26858 "optional" : 1,
26859 "type" : "integer"
26860 },
44660702
DM
26861 "cache" : {
26862 "description" : "The drive's cache mode",
56122987 26863 "enum" : [
7aacca6f 26864 "none",
44660702
DM
26865 "writethrough",
26866 "writeback",
26867 "unsafe",
26868 "directsync"
56122987 26869 ],
56122987 26870 "optional" : 1,
44660702 26871 "type" : "string"
56122987 26872 },
44660702
DM
26873 "cyls" : {
26874 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
26875 "optional" : 1,
26876 "type" : "integer"
7aacca6f 26877 },
44660702
DM
26878 "detect_zeroes" : {
26879 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 26880 "optional" : 1,
44660702 26881 "type" : "boolean"
56122987 26882 },
44660702
DM
26883 "discard" : {
26884 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
26885 "enum" : [
26886 "ignore",
26887 "on"
26888 ],
56122987 26889 "optional" : 1,
44660702 26890 "type" : "string"
56122987 26891 },
7aacca6f 26892 "file" : {
44660702 26893 "default_key" : 1,
7aacca6f 26894 "description" : "The drive's backing volume.",
7aacca6f
DM
26895 "format" : "pve-volume-id-or-qm-path",
26896 "format_description" : "volume",
7aacca6f 26897 "type" : "string"
56122987 26898 },
44660702
DM
26899 "format" : {
26900 "description" : "The drive's backing file's data format.",
56122987 26901 "enum" : [
44660702
DM
26902 "raw",
26903 "cow",
26904 "qcow",
26905 "qed",
26906 "qcow2",
26907 "vmdk",
26908 "cloop"
7aacca6f 26909 ],
7aacca6f
DM
26910 "optional" : 1,
26911 "type" : "string"
56122987 26912 },
44660702
DM
26913 "heads" : {
26914 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 26915 "optional" : 1,
44660702 26916 "type" : "integer"
56122987 26917 },
7af2edf9
TL
26918 "import-from" : {
26919 "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!",
26920 "format" : "pve-volume-id-or-absolute-path",
26921 "format_description" : "source volume",
26922 "optional" : 1,
26923 "type" : "string"
26924 },
44660702 26925 "iops" : {
de0983cb 26926 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 26927 "format_description" : "iops",
56122987 26928 "optional" : 1,
44660702 26929 "type" : "integer"
56122987 26930 },
44660702 26931 "iops_max" : {
de0983cb 26932 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 26933 "format_description" : "iops",
56122987 26934 "optional" : 1,
44660702 26935 "type" : "integer"
56122987 26936 },
de0983cb
DM
26937 "iops_max_length" : {
26938 "description" : "Maximum length of I/O bursts in seconds.",
26939 "format_description" : "seconds",
26940 "minimum" : 1,
26941 "optional" : 1,
26942 "type" : "integer"
26943 },
7aacca6f 26944 "iops_rd" : {
de0983cb 26945 "description" : "Maximum read I/O in operations per second.",
44660702
DM
26946 "format_description" : "iops",
26947 "optional" : 1,
26948 "type" : "integer"
7aacca6f 26949 },
de0983cb 26950 "iops_rd_length" : {
5d9c884c 26951 "alias" : "iops_rd_max_length"
de0983cb 26952 },
44660702 26953 "iops_rd_max" : {
de0983cb 26954 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 26955 "format_description" : "iops",
56122987 26956 "optional" : 1,
44660702 26957 "type" : "integer"
56122987 26958 },
5d9c884c
DM
26959 "iops_rd_max_length" : {
26960 "description" : "Maximum length of read I/O bursts in seconds.",
26961 "format_description" : "seconds",
26962 "minimum" : 1,
26963 "optional" : 1,
26964 "type" : "integer"
26965 },
44660702 26966 "iops_wr" : {
de0983cb 26967 "description" : "Maximum write I/O in operations per second.",
44660702 26968 "format_description" : "iops",
56122987 26969 "optional" : 1,
44660702 26970 "type" : "integer"
7aacca6f 26971 },
de0983cb 26972 "iops_wr_length" : {
5d9c884c 26973 "alias" : "iops_wr_max_length"
de0983cb 26974 },
44660702 26975 "iops_wr_max" : {
de0983cb 26976 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 26977 "format_description" : "iops",
7aacca6f 26978 "optional" : 1,
44660702 26979 "type" : "integer"
56122987 26980 },
5d9c884c
DM
26981 "iops_wr_max_length" : {
26982 "description" : "Maximum length of write I/O bursts in seconds.",
26983 "format_description" : "seconds",
26984 "minimum" : 1,
26985 "optional" : 1,
26986 "type" : "integer"
26987 },
44660702 26988 "mbps" : {
de0983cb 26989 "description" : "Maximum r/w speed in megabytes per second.",
44660702 26990 "format_description" : "mbps",
7aacca6f 26991 "optional" : 1,
44660702 26992 "type" : "number"
56122987 26993 },
44660702 26994 "mbps_max" : {
de0983cb 26995 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
7aacca6f 26996 "format_description" : "mbps",
56122987 26997 "optional" : 1,
44660702 26998 "type" : "number"
56122987 26999 },
44660702 27000 "mbps_rd" : {
de0983cb 27001 "description" : "Maximum read speed in megabytes per second.",
44660702 27002 "format_description" : "mbps",
7aacca6f 27003 "optional" : 1,
44660702 27004 "type" : "number"
7aacca6f 27005 },
44660702 27006 "mbps_rd_max" : {
de0983cb 27007 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 27008 "format_description" : "mbps",
56122987 27009 "optional" : 1,
44660702 27010 "type" : "number"
56122987 27011 },
44660702 27012 "mbps_wr" : {
de0983cb 27013 "description" : "Maximum write speed in megabytes per second.",
44660702 27014 "format_description" : "mbps",
7aacca6f 27015 "optional" : 1,
44660702 27016 "type" : "number"
56122987 27017 },
44660702 27018 "mbps_wr_max" : {
de0983cb 27019 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 27020 "format_description" : "mbps",
56122987 27021 "optional" : 1,
44660702 27022 "type" : "number"
7aacca6f
DM
27023 },
27024 "media" : {
44660702
DM
27025 "default" : "disk",
27026 "description" : "The drive's media type.",
56122987 27027 "enum" : [
7aacca6f
DM
27028 "cdrom",
27029 "disk"
56122987 27030 ],
56122987 27031 "optional" : 1,
44660702 27032 "type" : "string"
56122987 27033 },
44660702
DM
27034 "model" : {
27035 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
27036 "format" : "urlencoded",
27037 "format_description" : "model",
27038 "maxLength" : 120,
56122987 27039 "optional" : 1,
44660702 27040 "type" : "string"
56122987 27041 },
5d9c884c
DM
27042 "replicate" : {
27043 "default" : 1,
27044 "description" : "Whether the drive should considered for replication jobs.",
27045 "optional" : 1,
27046 "type" : "boolean"
27047 },
7aacca6f 27048 "rerror" : {
7aacca6f
DM
27049 "description" : "Read error action.",
27050 "enum" : [
27051 "ignore",
27052 "report",
27053 "stop"
44660702 27054 ],
44660702
DM
27055 "optional" : 1,
27056 "type" : "string"
56122987 27057 },
44660702
DM
27058 "secs" : {
27059 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 27060 "optional" : 1,
44660702
DM
27061 "type" : "integer"
27062 },
27063 "serial" : {
27064 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
27065 "format" : "urlencoded",
27066 "format_description" : "serial",
27067 "maxLength" : 60,
27068 "optional" : 1,
27069 "type" : "string"
27070 },
27a7acb2
DM
27071 "shared" : {
27072 "default" : 0,
27073 "description" : "Mark this locally-managed volume as available on all nodes",
27074 "optional" : 1,
27075 "type" : "boolean",
27076 "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!"
27077 },
44660702
DM
27078 "size" : {
27079 "description" : "Disk size. This is purely informational and has no effect.",
27080 "format" : "disk-size",
f004f5b9 27081 "format_description" : "DiskSize",
44660702
DM
27082 "optional" : 1,
27083 "type" : "string"
7aacca6f
DM
27084 },
27085 "snapshot" : {
27a7acb2 27086 "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 27087 "optional" : 1,
44660702 27088 "type" : "boolean"
7aacca6f 27089 },
25203dc1
NC
27090 "ssd" : {
27091 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
27092 "optional" : 1,
27093 "type" : "boolean"
27094 },
44660702
DM
27095 "trans" : {
27096 "description" : "Force disk geometry bios translation mode.",
27097 "enum" : [
27098 "none",
27099 "lba",
27100 "auto"
27101 ],
7aacca6f 27102 "optional" : 1,
44660702
DM
27103 "type" : "string"
27104 },
27105 "volume" : {
27106 "alias" : "file"
27107 },
27108 "werror" : {
27109 "description" : "Write error action.",
27110 "enum" : [
27111 "enospc",
27112 "ignore",
27113 "report",
27114 "stop"
27115 ],
44660702
DM
27116 "optional" : 1,
27117 "type" : "string"
95895385
TL
27118 },
27119 "wwn" : {
27120 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
27121 "format_description" : "wwn",
27122 "optional" : 1,
27123 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
27124 "type" : "string"
56122987
DM
27125 }
27126 },
56122987 27127 "optional" : 1,
4bd7df8b 27128 "type" : "string",
7af2edf9 27129 "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
27130 },
27131 "ipconfig[n]" : {
d2656385 27132 "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
27133 "format" : "pve-qm-ipconfig",
27134 "optional" : 1,
27135 "type" : "string",
27136 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
56122987 27137 },
95895385
TL
27138 "ivshmem" : {
27139 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
27140 "format" : {
27141 "name" : {
27142 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
27143 "format_description" : "string",
27144 "optional" : 1,
27145 "pattern" : "[a-zA-Z0-9\\-]+",
27146 "type" : "string"
27147 },
27148 "size" : {
27149 "description" : "The size of the file in MB.",
27150 "minimum" : 1,
27151 "type" : "integer"
27152 }
27153 },
27154 "optional" : 1,
27155 "type" : "string",
27156 "typetext" : "size=<integer> [,name=<string>]"
27157 },
4772952b
TL
27158 "keephugepages" : {
27159 "default" : 0,
27160 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
27161 "optional" : 1,
27162 "type" : "boolean",
27163 "typetext" : "<boolean>"
27164 },
56122987 27165 "keyboard" : {
35a75dd3 27166 "default" : null,
7af2edf9 27167 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
56122987 27168 "enum" : [
44660702
DM
27169 "de",
27170 "de-ch",
7aacca6f 27171 "da",
56122987 27172 "en-gb",
44660702
DM
27173 "en-us",
27174 "es",
27175 "fi",
27176 "fr",
27177 "fr-be",
27178 "fr-ca",
27179 "fr-ch",
27180 "hu",
7aacca6f 27181 "is",
44660702
DM
27182 "it",
27183 "ja",
27184 "lt",
56122987 27185 "mk",
7aacca6f 27186 "nl",
56122987 27187 "no",
44660702 27188 "pl",
7aacca6f 27189 "pt",
44660702
DM
27190 "pt-br",
27191 "sv",
27192 "sl",
27193 "tr"
56122987 27194 ],
44660702
DM
27195 "optional" : 1,
27196 "type" : "string"
56122987 27197 },
44660702
DM
27198 "kvm" : {
27199 "default" : 1,
27200 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 27201 "optional" : 1,
013dc89f
DM
27202 "type" : "boolean",
27203 "typetext" : "<boolean>"
7aacca6f 27204 },
d2656385
TL
27205 "live-restore" : {
27206 "description" : "Start the VM immediately from the backup and restore in background. PBS only.",
27207 "optional" : 1,
27208 "requires" : "archive",
27209 "type" : "boolean",
27210 "typetext" : "<boolean>"
27211 },
44660702 27212 "localtime" : {
5370fa8c 27213 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 27214 "optional" : 1,
013dc89f
DM
27215 "type" : "boolean",
27216 "typetext" : "<boolean>"
44660702
DM
27217 },
27218 "lock" : {
27219 "description" : "Lock/unlock the VM.",
7aacca6f 27220 "enum" : [
7aacca6f 27221 "backup",
5f26e15b
TL
27222 "clone",
27223 "create",
27224 "migrate",
27225 "rollback",
7aacca6f 27226 "snapshot",
95895385
TL
27227 "snapshot-delete",
27228 "suspending",
27229 "suspended"
7aacca6f 27230 ],
44660702
DM
27231 "optional" : 1,
27232 "type" : "string"
56122987 27233 },
44660702 27234 "machine" : {
9d2e98ed 27235 "description" : "Specifies the QEMU machine type.",
44660702
DM
27236 "maxLength" : 40,
27237 "optional" : 1,
5c1699e5 27238 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
27239 "type" : "string"
27240 },
27241 "memory" : {
bd92b745
TL
27242 "description" : "Memory properties.",
27243 "format" : {
27244 "current" : {
27245 "default" : 512,
27246 "default_key" : 1,
27247 "description" : "Current amount of online RAM for the VM in MiB. This is the maximum available memory when you use the balloon device.",
27248 "minimum" : 16,
27249 "type" : "integer"
27250 }
27251 },
44660702 27252 "optional" : 1,
bd92b745
TL
27253 "type" : "string",
27254 "typetext" : "[current=]<integer>"
44660702
DM
27255 },
27256 "migrate_downtime" : {
27257 "default" : 0.1,
27258 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
27259 "minimum" : 0,
27260 "optional" : 1,
4bd7df8b 27261 "type" : "number",
013dc89f 27262 "typetext" : "<number> (0 - N)"
44660702
DM
27263 },
27264 "migrate_speed" : {
56122987 27265 "default" : 0,
44660702
DM
27266 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
27267 "minimum" : 0,
56122987 27268 "optional" : 1,
4bd7df8b 27269 "type" : "integer",
013dc89f 27270 "typetext" : "<integer> (0 - N)"
56122987 27271 },
27a7acb2
DM
27272 "name" : {
27273 "description" : "Set a name for the VM. Only used on the configuration web interface.",
27274 "format" : "dns-name",
27275 "optional" : 1,
27276 "type" : "string",
27277 "typetext" : "<string>"
27278 },
27279 "nameserver" : {
de786b48 27280 "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 27281 "format" : "address-list",
44660702 27282 "optional" : 1,
013dc89f
DM
27283 "type" : "string",
27284 "typetext" : "<string>"
44660702
DM
27285 },
27286 "net[n]" : {
c2993fe5 27287 "description" : "Specify network devices.",
f004f5b9
DM
27288 "format" : {
27289 "bridge" : {
c2993fe5 27290 "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 27291 "format" : "pve-bridge-id",
f004f5b9
DM
27292 "format_description" : "bridge",
27293 "optional" : 1,
27294 "type" : "string"
27295 },
27296 "e1000" : {
27297 "alias" : "macaddr",
27298 "keyAlias" : "model"
27299 },
27300 "e1000-82540em" : {
27301 "alias" : "macaddr",
27302 "keyAlias" : "model"
27303 },
27304 "e1000-82544gc" : {
27305 "alias" : "macaddr",
27306 "keyAlias" : "model"
27307 },
27308 "e1000-82545em" : {
27309 "alias" : "macaddr",
27310 "keyAlias" : "model"
27311 },
5370fa8c
TL
27312 "e1000e" : {
27313 "alias" : "macaddr",
27314 "keyAlias" : "model"
27315 },
f004f5b9
DM
27316 "firewall" : {
27317 "description" : "Whether this interface should be protected by the firewall.",
27318 "optional" : 1,
27319 "type" : "boolean"
27320 },
27321 "i82551" : {
27322 "alias" : "macaddr",
27323 "keyAlias" : "model"
27324 },
27325 "i82557b" : {
27326 "alias" : "macaddr",
27327 "keyAlias" : "model"
27328 },
27329 "i82559er" : {
27330 "alias" : "macaddr",
27331 "keyAlias" : "model"
27332 },
27333 "link_down" : {
c2993fe5 27334 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
27335 "optional" : 1,
27336 "type" : "boolean"
27337 },
27338 "macaddr" : {
c2993fe5 27339 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 27340 "format" : "mac-addr",
f004f5b9 27341 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 27342 "optional" : 1,
95895385
TL
27343 "type" : "string",
27344 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
27345 },
27346 "model" : {
27347 "default_key" : 1,
c2993fe5 27348 "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 27349 "enum" : [
f004f5b9 27350 "e1000",
5370fa8c
TL
27351 "e1000-82540em",
27352 "e1000-82544gc",
27353 "e1000-82545em",
27354 "e1000e",
f004f5b9
DM
27355 "i82551",
27356 "i82557b",
27357 "i82559er",
5370fa8c
TL
27358 "ne2k_isa",
27359 "ne2k_pci",
27360 "pcnet",
27361 "rtl8139",
27362 "virtio",
27363 "vmxnet3"
f004f5b9 27364 ],
f004f5b9
DM
27365 "type" : "string"
27366 },
ac70d7d1
TL
27367 "mtu" : {
27368 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
27369 "maximum" : 65520,
27370 "minimum" : 1,
27371 "optional" : 1,
27372 "type" : "integer"
27373 },
f004f5b9
DM
27374 "ne2k_isa" : {
27375 "alias" : "macaddr",
27376 "keyAlias" : "model"
27377 },
27378 "ne2k_pci" : {
27379 "alias" : "macaddr",
27380 "keyAlias" : "model"
27381 },
27382 "pcnet" : {
27383 "alias" : "macaddr",
27384 "keyAlias" : "model"
27385 },
27386 "queues" : {
27387 "description" : "Number of packet queues to be used on the device.",
81a3384d 27388 "maximum" : 64,
f004f5b9
DM
27389 "minimum" : 0,
27390 "optional" : 1,
27391 "type" : "integer"
27392 },
27393 "rate" : {
c2993fe5 27394 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
27395 "minimum" : 0,
27396 "optional" : 1,
27397 "type" : "number"
27398 },
27399 "rtl8139" : {
27400 "alias" : "macaddr",
27401 "keyAlias" : "model"
27402 },
27403 "tag" : {
27404 "description" : "VLAN tag to apply to packets on this interface.",
27405 "maximum" : 4094,
c2993fe5 27406 "minimum" : 1,
f004f5b9
DM
27407 "optional" : 1,
27408 "type" : "integer"
27409 },
27410 "trunks" : {
27411 "description" : "VLAN trunks to pass through this interface.",
27412 "format_description" : "vlanid[;vlanid...]",
27413 "optional" : 1,
27414 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
27415 "type" : "string"
27416 },
27417 "virtio" : {
27418 "alias" : "macaddr",
27419 "keyAlias" : "model"
27420 },
27421 "vmxnet3" : {
27422 "alias" : "macaddr",
27423 "keyAlias" : "model"
27424 }
27425 },
44660702 27426 "optional" : 1,
4bd7df8b 27427 "type" : "string",
ac70d7d1 27428 "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
27429 },
27430 "node" : {
27431 "description" : "The cluster node name.",
27432 "format" : "pve-node",
013dc89f
DM
27433 "type" : "string",
27434 "typetext" : "<string>"
44660702
DM
27435 },
27436 "numa" : {
7aacca6f 27437 "default" : 0,
44660702
DM
27438 "description" : "Enable/disable NUMA.",
27439 "optional" : 1,
013dc89f
DM
27440 "type" : "boolean",
27441 "typetext" : "<boolean>"
56122987 27442 },
7aacca6f 27443 "numa[n]" : {
c2993fe5 27444 "description" : "NUMA topology.",
7aacca6f 27445 "format" : {
44660702 27446 "cpus" : {
c2993fe5 27447 "description" : "CPUs accessing this NUMA node.",
44660702
DM
27448 "format_description" : "id[-id];...",
27449 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
27450 "type" : "string"
27451 },
7aacca6f 27452 "hostnodes" : {
c2993fe5 27453 "description" : "Host NUMA nodes to use.",
44660702 27454 "format_description" : "id[-id];...",
7aacca6f 27455 "optional" : 1,
44660702
DM
27456 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
27457 "type" : "string"
7aacca6f 27458 },
44660702 27459 "memory" : {
c2993fe5 27460 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
27461 "optional" : 1,
27462 "type" : "number"
7aacca6f
DM
27463 },
27464 "policy" : {
c2993fe5 27465 "description" : "NUMA allocation policy.",
7aacca6f
DM
27466 "enum" : [
27467 "preferred",
27468 "bind",
27469 "interleave"
27470 ],
7aacca6f 27471 "optional" : 1,
44660702 27472 "type" : "string"
7aacca6f
DM
27473 }
27474 },
56122987 27475 "optional" : 1,
4bd7df8b
DM
27476 "type" : "string",
27477 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 27478 },
44660702
DM
27479 "onboot" : {
27480 "default" : 0,
27481 "description" : "Specifies whether a VM will be started during system bootup.",
56122987 27482 "optional" : 1,
013dc89f
DM
27483 "type" : "boolean",
27484 "typetext" : "<boolean>"
56122987
DM
27485 },
27486 "ostype" : {
c2993fe5 27487 "description" : "Specify guest operating system.",
56122987
DM
27488 "enum" : [
27489 "other",
27490 "wxp",
27491 "w2k",
27492 "w2k3",
27493 "w2k8",
27494 "wvista",
27495 "win7",
27496 "win8",
32d876b5 27497 "win10",
5370fa8c 27498 "win11",
56122987
DM
27499 "l24",
27500 "l26",
27501 "solaris"
44660702 27502 ],
56122987 27503 "optional" : 1,
c2993fe5 27504 "type" : "string",
9d2e98ed 27505 "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 27506 },
44660702 27507 "parallel[n]" : {
c2993fe5 27508 "description" : "Map host parallel devices (n is 0 to 2).",
56122987 27509 "optional" : 1,
44660702 27510 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 27511 "type" : "string",
4772952b 27512 "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 27513 },
44660702
DM
27514 "pool" : {
27515 "description" : "Add the VM to the specified pool.",
27516 "format" : "pve-poolid",
56122987 27517 "optional" : 1,
013dc89f
DM
27518 "type" : "string",
27519 "typetext" : "<string>"
56122987 27520 },
44660702
DM
27521 "protection" : {
27522 "default" : 0,
c2993fe5 27523 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
56122987 27524 "optional" : 1,
013dc89f
DM
27525 "type" : "boolean",
27526 "typetext" : "<boolean>"
56122987 27527 },
44660702 27528 "reboot" : {
7aacca6f 27529 "default" : 1,
44660702
DM
27530 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
27531 "optional" : 1,
013dc89f
DM
27532 "type" : "boolean",
27533 "typetext" : "<boolean>"
56122987 27534 },
c5aa7e14
TL
27535 "rng0" : {
27536 "description" : "Configure a VirtIO-based Random Number Generator.",
27537 "format" : {
27538 "max_bytes" : {
27539 "default" : 1024,
5370fa8c 27540 "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
27541 "optional" : 1,
27542 "type" : "integer"
27543 },
27544 "period" : {
27545 "default" : 1000,
27546 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
27547 "optional" : 1,
27548 "type" : "integer"
27549 },
27550 "source" : {
27551 "default_key" : 1,
5370fa8c 27552 "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
27553 "enum" : [
27554 "/dev/urandom",
27555 "/dev/random",
27556 "/dev/hwrng"
27557 ],
27558 "type" : "string"
27559 }
27560 },
27561 "optional" : 1,
27562 "type" : "string",
27563 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
27564 },
56122987 27565 "sata[n]" : {
7af2edf9 27566 "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 27567 "format" : {
7aacca6f 27568 "aio" : {
44660702 27569 "description" : "AIO type to use.",
56122987 27570 "enum" : [
7aacca6f 27571 "native",
8f4d9c87
TL
27572 "threads",
27573 "io_uring"
56122987 27574 ],
7aacca6f 27575 "optional" : 1,
44660702 27576 "type" : "string"
7aacca6f
DM
27577 },
27578 "backup" : {
7aacca6f 27579 "description" : "Whether the drive should be included when making backups.",
7aacca6f 27580 "optional" : 1,
44660702 27581 "type" : "boolean"
56122987 27582 },
44660702 27583 "bps" : {
de0983cb 27584 "description" : "Maximum r/w speed in bytes per second.",
44660702 27585 "format_description" : "bps",
7aacca6f 27586 "optional" : 1,
44660702 27587 "type" : "integer"
56122987 27588 },
de0983cb
DM
27589 "bps_max_length" : {
27590 "description" : "Maximum length of I/O bursts in seconds.",
27591 "format_description" : "seconds",
27592 "minimum" : 1,
27593 "optional" : 1,
27594 "type" : "integer"
27595 },
44660702 27596 "bps_rd" : {
de0983cb 27597 "description" : "Maximum read speed in bytes per second.",
44660702 27598 "format_description" : "bps",
56122987 27599 "optional" : 1,
44660702 27600 "type" : "integer"
7aacca6f 27601 },
de0983cb 27602 "bps_rd_length" : {
5d9c884c
DM
27603 "alias" : "bps_rd_max_length"
27604 },
27605 "bps_rd_max_length" : {
de0983cb
DM
27606 "description" : "Maximum length of read I/O bursts in seconds.",
27607 "format_description" : "seconds",
27608 "minimum" : 1,
27609 "optional" : 1,
27610 "type" : "integer"
27611 },
44660702 27612 "bps_wr" : {
de0983cb 27613 "description" : "Maximum write speed in bytes per second.",
44660702 27614 "format_description" : "bps",
56122987 27615 "optional" : 1,
44660702 27616 "type" : "integer"
56122987 27617 },
de0983cb 27618 "bps_wr_length" : {
5d9c884c
DM
27619 "alias" : "bps_wr_max_length"
27620 },
27621 "bps_wr_max_length" : {
de0983cb
DM
27622 "description" : "Maximum length of write I/O bursts in seconds.",
27623 "format_description" : "seconds",
27624 "minimum" : 1,
27625 "optional" : 1,
27626 "type" : "integer"
27627 },
7aacca6f 27628 "cache" : {
7aacca6f
DM
27629 "description" : "The drive's cache mode",
27630 "enum" : [
27631 "none",
27632 "writethrough",
27633 "writeback",
27634 "unsafe",
27635 "directsync"
27636 ],
44660702
DM
27637 "optional" : 1,
27638 "type" : "string"
56122987 27639 },
44660702
DM
27640 "cyls" : {
27641 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 27642 "optional" : 1,
7aacca6f 27643 "type" : "integer"
56122987 27644 },
7aacca6f
DM
27645 "detect_zeroes" : {
27646 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 27647 "optional" : 1,
7aacca6f 27648 "type" : "boolean"
56122987 27649 },
44660702
DM
27650 "discard" : {
27651 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
27652 "enum" : [
27653 "ignore",
27654 "on"
27655 ],
56122987 27656 "optional" : 1,
44660702 27657 "type" : "string"
56122987 27658 },
44660702
DM
27659 "file" : {
27660 "default_key" : 1,
27661 "description" : "The drive's backing volume.",
27662 "format" : "pve-volume-id-or-qm-path",
27663 "format_description" : "volume",
27664 "type" : "string"
56122987
DM
27665 },
27666 "format" : {
44660702 27667 "description" : "The drive's backing file's data format.",
56122987
DM
27668 "enum" : [
27669 "raw",
27670 "cow",
27671 "qcow",
27672 "qed",
27673 "qcow2",
27674 "vmdk",
27675 "cloop"
27676 ],
56122987 27677 "optional" : 1,
44660702 27678 "type" : "string"
56122987 27679 },
7aacca6f 27680 "heads" : {
7aacca6f 27681 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
27682 "optional" : 1,
27683 "type" : "integer"
56122987 27684 },
7af2edf9
TL
27685 "import-from" : {
27686 "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!",
27687 "format" : "pve-volume-id-or-absolute-path",
27688 "format_description" : "source volume",
27689 "optional" : 1,
27690 "type" : "string"
27691 },
44660702 27692 "iops" : {
de0983cb 27693 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
27694 "format_description" : "iops",
27695 "optional" : 1,
27696 "type" : "integer"
56122987 27697 },
44660702 27698 "iops_max" : {
de0983cb 27699 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 27700 "format_description" : "iops",
56122987 27701 "optional" : 1,
44660702 27702 "type" : "integer"
56122987 27703 },
de0983cb
DM
27704 "iops_max_length" : {
27705 "description" : "Maximum length of I/O bursts in seconds.",
27706 "format_description" : "seconds",
27707 "minimum" : 1,
27708 "optional" : 1,
27709 "type" : "integer"
27710 },
44660702 27711 "iops_rd" : {
de0983cb 27712 "description" : "Maximum read I/O in operations per second.",
44660702 27713 "format_description" : "iops",
56122987 27714 "optional" : 1,
44660702 27715 "type" : "integer"
56122987 27716 },
de0983cb 27717 "iops_rd_length" : {
5d9c884c 27718 "alias" : "iops_rd_max_length"
de0983cb 27719 },
44660702 27720 "iops_rd_max" : {
de0983cb 27721 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 27722 "format_description" : "iops",
56122987 27723 "optional" : 1,
44660702 27724 "type" : "integer"
56122987 27725 },
5d9c884c
DM
27726 "iops_rd_max_length" : {
27727 "description" : "Maximum length of read I/O bursts in seconds.",
27728 "format_description" : "seconds",
27729 "minimum" : 1,
27730 "optional" : 1,
27731 "type" : "integer"
27732 },
44660702 27733 "iops_wr" : {
de0983cb 27734 "description" : "Maximum write I/O in operations per second.",
44660702 27735 "format_description" : "iops",
7aacca6f 27736 "optional" : 1,
44660702 27737 "type" : "integer"
7aacca6f 27738 },
de0983cb 27739 "iops_wr_length" : {
5d9c884c 27740 "alias" : "iops_wr_max_length"
de0983cb 27741 },
44660702 27742 "iops_wr_max" : {
de0983cb 27743 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 27744 "format_description" : "iops",
56122987 27745 "optional" : 1,
7aacca6f 27746 "type" : "integer"
56122987 27747 },
5d9c884c
DM
27748 "iops_wr_max_length" : {
27749 "description" : "Maximum length of write I/O bursts in seconds.",
27750 "format_description" : "seconds",
27751 "minimum" : 1,
27752 "optional" : 1,
27753 "type" : "integer"
27754 },
44660702 27755 "mbps" : {
de0983cb 27756 "description" : "Maximum r/w speed in megabytes per second.",
44660702 27757 "format_description" : "mbps",
56122987 27758 "optional" : 1,
44660702 27759 "type" : "number"
56122987 27760 },
44660702 27761 "mbps_max" : {
de0983cb 27762 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 27763 "format_description" : "mbps",
7aacca6f 27764 "optional" : 1,
44660702 27765 "type" : "number"
7aacca6f 27766 },
44660702 27767 "mbps_rd" : {
de0983cb 27768 "description" : "Maximum read speed in megabytes per second.",
44660702 27769 "format_description" : "mbps",
7aacca6f 27770 "optional" : 1,
44660702 27771 "type" : "number"
7aacca6f 27772 },
44660702 27773 "mbps_rd_max" : {
de0983cb 27774 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 27775 "format_description" : "mbps",
7aacca6f 27776 "optional" : 1,
44660702 27777 "type" : "number"
7aacca6f 27778 },
44660702 27779 "mbps_wr" : {
de0983cb 27780 "description" : "Maximum write speed in megabytes per second.",
44660702 27781 "format_description" : "mbps",
7aacca6f 27782 "optional" : 1,
44660702 27783 "type" : "number"
7aacca6f
DM
27784 },
27785 "mbps_wr_max" : {
de0983cb 27786 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 27787 "format_description" : "mbps",
7aacca6f 27788 "optional" : 1,
44660702 27789 "type" : "number"
7aacca6f 27790 },
44660702
DM
27791 "media" : {
27792 "default" : "disk",
27793 "description" : "The drive's media type.",
56122987 27794 "enum" : [
44660702
DM
27795 "cdrom",
27796 "disk"
56122987 27797 ],
56122987 27798 "optional" : 1,
44660702 27799 "type" : "string"
56122987 27800 },
5d9c884c
DM
27801 "replicate" : {
27802 "default" : 1,
27803 "description" : "Whether the drive should considered for replication jobs.",
27804 "optional" : 1,
27805 "type" : "boolean"
27806 },
44660702
DM
27807 "rerror" : {
27808 "description" : "Read error action.",
7aacca6f
DM
27809 "enum" : [
27810 "ignore",
44660702
DM
27811 "report",
27812 "stop"
7aacca6f 27813 ],
56122987 27814 "optional" : 1,
44660702 27815 "type" : "string"
56122987 27816 },
44660702
DM
27817 "secs" : {
27818 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 27819 "optional" : 1,
44660702 27820 "type" : "integer"
56122987 27821 },
44660702
DM
27822 "serial" : {
27823 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
27824 "format" : "urlencoded",
27825 "format_description" : "serial",
27826 "maxLength" : 60,
27827 "optional" : 1,
27828 "type" : "string"
7aacca6f 27829 },
27a7acb2
DM
27830 "shared" : {
27831 "default" : 0,
27832 "description" : "Mark this locally-managed volume as available on all nodes",
27833 "optional" : 1,
27834 "type" : "boolean",
27835 "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!"
27836 },
7aacca6f
DM
27837 "size" : {
27838 "description" : "Disk size. This is purely informational and has no effect.",
44660702 27839 "format" : "disk-size",
f004f5b9 27840 "format_description" : "DiskSize",
56122987 27841 "optional" : 1,
44660702 27842 "type" : "string"
56122987 27843 },
44660702 27844 "snapshot" : {
27a7acb2 27845 "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 27846 "optional" : 1,
44660702 27847 "type" : "boolean"
56122987 27848 },
25203dc1
NC
27849 "ssd" : {
27850 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
27851 "optional" : 1,
27852 "type" : "boolean"
27853 },
44660702
DM
27854 "trans" : {
27855 "description" : "Force disk geometry bios translation mode.",
56122987 27856 "enum" : [
44660702
DM
27857 "none",
27858 "lba",
27859 "auto"
7aacca6f 27860 ],
44660702
DM
27861 "optional" : 1,
27862 "type" : "string"
27863 },
27864 "volume" : {
27865 "alias" : "file"
56122987
DM
27866 },
27867 "werror" : {
56122987
DM
27868 "description" : "Write error action.",
27869 "enum" : [
27870 "enospc",
27871 "ignore",
27872 "report",
27873 "stop"
27874 ],
56122987 27875 "optional" : 1,
44660702 27876 "type" : "string"
95895385
TL
27877 },
27878 "wwn" : {
27879 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
27880 "format_description" : "wwn",
27881 "optional" : 1,
27882 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
27883 "type" : "string"
44660702
DM
27884 }
27885 },
27886 "optional" : 1,
4bd7df8b 27887 "type" : "string",
7af2edf9 27888 "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
27889 },
27890 "scsi[n]" : {
7af2edf9 27891 "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
27892 "format" : {
27893 "aio" : {
27894 "description" : "AIO type to use.",
27895 "enum" : [
27896 "native",
8f4d9c87
TL
27897 "threads",
27898 "io_uring"
44660702 27899 ],
44660702
DM
27900 "optional" : 1,
27901 "type" : "string"
56122987 27902 },
7aacca6f 27903 "backup" : {
44660702 27904 "description" : "Whether the drive should be included when making backups.",
7aacca6f 27905 "optional" : 1,
44660702 27906 "type" : "boolean"
7aacca6f 27907 },
44660702 27908 "bps" : {
de0983cb 27909 "description" : "Maximum r/w speed in bytes per second.",
44660702 27910 "format_description" : "bps",
7aacca6f 27911 "optional" : 1,
44660702 27912 "type" : "integer"
7aacca6f 27913 },
de0983cb
DM
27914 "bps_max_length" : {
27915 "description" : "Maximum length of I/O bursts in seconds.",
27916 "format_description" : "seconds",
27917 "minimum" : 1,
27918 "optional" : 1,
27919 "type" : "integer"
27920 },
44660702 27921 "bps_rd" : {
de0983cb 27922 "description" : "Maximum read speed in bytes per second.",
44660702 27923 "format_description" : "bps",
56122987 27924 "optional" : 1,
44660702 27925 "type" : "integer"
56122987 27926 },
de0983cb 27927 "bps_rd_length" : {
5d9c884c
DM
27928 "alias" : "bps_rd_max_length"
27929 },
27930 "bps_rd_max_length" : {
de0983cb
DM
27931 "description" : "Maximum length of read I/O bursts in seconds.",
27932 "format_description" : "seconds",
27933 "minimum" : 1,
27934 "optional" : 1,
27935 "type" : "integer"
27936 },
44660702 27937 "bps_wr" : {
de0983cb 27938 "description" : "Maximum write speed in bytes per second.",
44660702 27939 "format_description" : "bps",
7aacca6f 27940 "optional" : 1,
44660702 27941 "type" : "integer"
56122987 27942 },
de0983cb 27943 "bps_wr_length" : {
5d9c884c
DM
27944 "alias" : "bps_wr_max_length"
27945 },
27946 "bps_wr_max_length" : {
de0983cb
DM
27947 "description" : "Maximum length of write I/O bursts in seconds.",
27948 "format_description" : "seconds",
27949 "minimum" : 1,
27950 "optional" : 1,
27951 "type" : "integer"
27952 },
44660702
DM
27953 "cache" : {
27954 "description" : "The drive's cache mode",
7aacca6f
DM
27955 "enum" : [
27956 "none",
44660702
DM
27957 "writethrough",
27958 "writeback",
27959 "unsafe",
27960 "directsync"
7aacca6f 27961 ],
56122987 27962 "optional" : 1,
44660702 27963 "type" : "string"
56122987 27964 },
7aacca6f
DM
27965 "cyls" : {
27966 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
27967 "optional" : 1,
44660702 27968 "type" : "integer"
7aacca6f 27969 },
44660702
DM
27970 "detect_zeroes" : {
27971 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 27972 "optional" : 1,
44660702 27973 "type" : "boolean"
56122987 27974 },
44660702
DM
27975 "discard" : {
27976 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
7aacca6f 27977 "enum" : [
44660702
DM
27978 "ignore",
27979 "on"
7aacca6f 27980 ],
7aacca6f 27981 "optional" : 1,
44660702 27982 "type" : "string"
56122987
DM
27983 },
27984 "file" : {
7aacca6f
DM
27985 "default_key" : 1,
27986 "description" : "The drive's backing volume.",
44660702
DM
27987 "format" : "pve-volume-id-or-qm-path",
27988 "format_description" : "volume",
7aacca6f 27989 "type" : "string"
56122987 27990 },
7aacca6f 27991 "format" : {
44660702 27992 "description" : "The drive's backing file's data format.",
56122987 27993 "enum" : [
7aacca6f
DM
27994 "raw",
27995 "cow",
27996 "qcow",
27997 "qed",
27998 "qcow2",
27999 "vmdk",
28000 "cloop"
56122987 28001 ],
44660702
DM
28002 "optional" : 1,
28003 "type" : "string"
56122987 28004 },
44660702
DM
28005 "heads" : {
28006 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
28007 "optional" : 1,
28008 "type" : "integer"
28009 },
7af2edf9
TL
28010 "import-from" : {
28011 "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!",
28012 "format" : "pve-volume-id-or-absolute-path",
28013 "format_description" : "source volume",
28014 "optional" : 1,
28015 "type" : "string"
28016 },
44660702 28017 "iops" : {
de0983cb 28018 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 28019 "format_description" : "iops",
56122987 28020 "optional" : 1,
44660702 28021 "type" : "integer"
56122987 28022 },
44660702 28023 "iops_max" : {
de0983cb 28024 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 28025 "format_description" : "iops",
7aacca6f 28026 "optional" : 1,
44660702 28027 "type" : "integer"
56122987 28028 },
de0983cb
DM
28029 "iops_max_length" : {
28030 "description" : "Maximum length of I/O bursts in seconds.",
28031 "format_description" : "seconds",
28032 "minimum" : 1,
28033 "optional" : 1,
28034 "type" : "integer"
28035 },
44660702 28036 "iops_rd" : {
de0983cb 28037 "description" : "Maximum read I/O in operations per second.",
44660702 28038 "format_description" : "iops",
56122987 28039 "optional" : 1,
44660702 28040 "type" : "integer"
56122987 28041 },
de0983cb 28042 "iops_rd_length" : {
5d9c884c 28043 "alias" : "iops_rd_max_length"
de0983cb 28044 },
44660702 28045 "iops_rd_max" : {
de0983cb 28046 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
28047 "format_description" : "iops",
28048 "optional" : 1,
28049 "type" : "integer"
56122987 28050 },
5d9c884c
DM
28051 "iops_rd_max_length" : {
28052 "description" : "Maximum length of read I/O bursts in seconds.",
28053 "format_description" : "seconds",
28054 "minimum" : 1,
28055 "optional" : 1,
28056 "type" : "integer"
28057 },
44660702 28058 "iops_wr" : {
de0983cb 28059 "description" : "Maximum write I/O in operations per second.",
44660702 28060 "format_description" : "iops",
56122987 28061 "optional" : 1,
44660702 28062 "type" : "integer"
56122987 28063 },
de0983cb 28064 "iops_wr_length" : {
5d9c884c 28065 "alias" : "iops_wr_max_length"
de0983cb 28066 },
44660702 28067 "iops_wr_max" : {
de0983cb 28068 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 28069 "format_description" : "iops",
56122987 28070 "optional" : 1,
56122987
DM
28071 "type" : "integer"
28072 },
5d9c884c
DM
28073 "iops_wr_max_length" : {
28074 "description" : "Maximum length of write I/O bursts in seconds.",
28075 "format_description" : "seconds",
28076 "minimum" : 1,
28077 "optional" : 1,
28078 "type" : "integer"
28079 },
44660702
DM
28080 "iothread" : {
28081 "description" : "Whether to use iothreads for this drive",
44660702
DM
28082 "optional" : 1,
28083 "type" : "boolean"
28084 },
28085 "mbps" : {
de0983cb 28086 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
28087 "format_description" : "mbps",
28088 "optional" : 1,
28089 "type" : "number"
28090 },
7aacca6f 28091 "mbps_max" : {
de0983cb 28092 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 28093 "format_description" : "mbps",
56122987 28094 "optional" : 1,
44660702 28095 "type" : "number"
56122987 28096 },
44660702 28097 "mbps_rd" : {
de0983cb 28098 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
28099 "format_description" : "mbps",
28100 "optional" : 1,
28101 "type" : "number"
56122987 28102 },
44660702 28103 "mbps_rd_max" : {
de0983cb 28104 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 28105 "format_description" : "mbps",
56122987 28106 "optional" : 1,
44660702 28107 "type" : "number"
56122987 28108 },
44660702 28109 "mbps_wr" : {
de0983cb 28110 "description" : "Maximum write speed in megabytes per second.",
44660702 28111 "format_description" : "mbps",
56122987 28112 "optional" : 1,
44660702 28113 "type" : "number"
56122987 28114 },
44660702 28115 "mbps_wr_max" : {
de0983cb 28116 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 28117 "format_description" : "mbps",
7aacca6f 28118 "optional" : 1,
44660702 28119 "type" : "number"
56122987 28120 },
7aacca6f 28121 "media" : {
44660702 28122 "default" : "disk",
7aacca6f
DM
28123 "description" : "The drive's media type.",
28124 "enum" : [
28125 "cdrom",
28126 "disk"
28127 ],
56122987 28128 "optional" : 1,
44660702 28129 "type" : "string"
56122987 28130 },
44660702
DM
28131 "queues" : {
28132 "description" : "Number of queues.",
44660702
DM
28133 "minimum" : 2,
28134 "optional" : 1,
28135 "type" : "integer"
56122987 28136 },
5d9c884c
DM
28137 "replicate" : {
28138 "default" : 1,
28139 "description" : "Whether the drive should considered for replication jobs.",
28140 "optional" : 1,
28141 "type" : "boolean"
28142 },
28143 "rerror" : {
28144 "description" : "Read error action.",
28145 "enum" : [
28146 "ignore",
28147 "report",
28148 "stop"
28149 ],
28150 "optional" : 1,
28151 "type" : "string"
28152 },
5370fa8c
TL
28153 "ro" : {
28154 "description" : "Whether the drive is read-only.",
28155 "optional" : 1,
28156 "type" : "boolean"
28157 },
52e44c50
FG
28158 "scsiblock" : {
28159 "default" : 0,
28160 "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",
28161 "optional" : 1,
28162 "type" : "boolean"
28163 },
7aacca6f 28164 "secs" : {
7aacca6f 28165 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
28166 "optional" : 1,
28167 "type" : "integer"
28168 },
28169 "serial" : {
28170 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
28171 "format" : "urlencoded",
28172 "format_description" : "serial",
28173 "maxLength" : 60,
28174 "optional" : 1,
28175 "type" : "string"
28176 },
27a7acb2
DM
28177 "shared" : {
28178 "default" : 0,
28179 "description" : "Mark this locally-managed volume as available on all nodes",
28180 "optional" : 1,
28181 "type" : "boolean",
28182 "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!"
28183 },
44660702
DM
28184 "size" : {
28185 "description" : "Disk size. This is purely informational and has no effect.",
28186 "format" : "disk-size",
f004f5b9 28187 "format_description" : "DiskSize",
44660702
DM
28188 "optional" : 1,
28189 "type" : "string"
28190 },
28191 "snapshot" : {
27a7acb2 28192 "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
28193 "optional" : 1,
28194 "type" : "boolean"
28195 },
25203dc1
NC
28196 "ssd" : {
28197 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
28198 "optional" : 1,
28199 "type" : "boolean"
28200 },
44660702
DM
28201 "trans" : {
28202 "description" : "Force disk geometry bios translation mode.",
28203 "enum" : [
28204 "none",
28205 "lba",
28206 "auto"
28207 ],
44660702
DM
28208 "optional" : 1,
28209 "type" : "string"
28210 },
28211 "volume" : {
28212 "alias" : "file"
28213 },
28214 "werror" : {
28215 "description" : "Write error action.",
28216 "enum" : [
28217 "enospc",
28218 "ignore",
28219 "report",
28220 "stop"
28221 ],
44660702
DM
28222 "optional" : 1,
28223 "type" : "string"
95895385
TL
28224 },
28225 "wwn" : {
28226 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
28227 "format_description" : "wwn",
28228 "optional" : 1,
28229 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
28230 "type" : "string"
56122987
DM
28231 }
28232 },
7aacca6f 28233 "optional" : 1,
4bd7df8b 28234 "type" : "string",
7af2edf9 28235 "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 28236 },
44660702
DM
28237 "scsihw" : {
28238 "default" : "lsi",
c2993fe5 28239 "description" : "SCSI controller model",
44660702
DM
28240 "enum" : [
28241 "lsi",
28242 "lsi53c810",
28243 "virtio-scsi-pci",
28244 "virtio-scsi-single",
28245 "megasas",
28246 "pvscsi"
28247 ],
7aacca6f 28248 "optional" : 1,
44660702 28249 "type" : "string"
7aacca6f 28250 },
27a7acb2 28251 "searchdomain" : {
de786b48 28252 "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
28253 "optional" : 1,
28254 "type" : "string",
28255 "typetext" : "<string>"
28256 },
44660702 28257 "serial[n]" : {
c2993fe5 28258 "description" : "Create a serial device inside the VM (n is 0 to 3)",
44660702
DM
28259 "optional" : 1,
28260 "pattern" : "(/dev/.+|socket)",
c2993fe5 28261 "type" : "string",
4772952b 28262 "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
28263 },
28264 "shares" : {
28265 "default" : 1000,
5da3d723 28266 "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
28267 "maximum" : 50000,
28268 "minimum" : 0,
28269 "optional" : 1,
4bd7df8b 28270 "type" : "integer",
013dc89f 28271 "typetext" : "<integer> (0 - 50000)"
44660702
DM
28272 },
28273 "smbios1" : {
28274 "description" : "Specify SMBIOS type 1 fields.",
28275 "format" : "pve-qm-smbios1",
1e3f8156 28276 "maxLength" : 512,
7aacca6f 28277 "optional" : 1,
4bd7df8b 28278 "type" : "string",
1e3f8156 28279 "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
28280 },
28281 "smp" : {
44660702 28282 "default" : 1,
7aacca6f 28283 "description" : "The number of CPUs. Please use option -sockets instead.",
44660702 28284 "minimum" : 1,
56122987 28285 "optional" : 1,
4bd7df8b 28286 "type" : "integer",
013dc89f 28287 "typetext" : "<integer> (1 - N)"
44660702
DM
28288 },
28289 "sockets" : {
7aacca6f 28290 "default" : 1,
44660702
DM
28291 "description" : "The number of CPU sockets.",
28292 "minimum" : 1,
28293 "optional" : 1,
4bd7df8b 28294 "type" : "integer",
013dc89f 28295 "typetext" : "<integer> (1 - N)"
7aacca6f 28296 },
1c532546
TL
28297 "spice_enhancements" : {
28298 "description" : "Configure additional enhancements for SPICE.",
28299 "format" : {
28300 "foldersharing" : {
28301 "default" : "0",
28302 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
28303 "optional" : 1,
28304 "type" : "boolean"
28305 },
28306 "videostreaming" : {
28307 "default" : "off",
28308 "description" : "Enable video streaming. Uses compression for detected video streams.",
28309 "enum" : [
28310 "off",
28311 "all",
28312 "filter"
28313 ],
28314 "optional" : 1,
28315 "type" : "string"
28316 }
28317 },
28318 "optional" : 1,
28319 "type" : "string",
28320 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
28321 },
27a7acb2
DM
28322 "sshkeys" : {
28323 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
28324 "format" : "urlencoded",
28325 "optional" : 1,
28326 "type" : "string",
28327 "typetext" : "<string>"
28328 },
5da3d723
TL
28329 "start" : {
28330 "default" : 0,
28331 "description" : "Start VM after it was created successfully.",
28332 "optional" : 1,
28333 "type" : "boolean",
28334 "typetext" : "<boolean>"
28335 },
44660702
DM
28336 "startdate" : {
28337 "default" : "now",
4772952b 28338 "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
28339 "optional" : 1,
28340 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
28341 "type" : "string",
28342 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
28343 },
28344 "startup" : {
28345 "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.",
28346 "format" : "pve-startup-order",
28347 "optional" : 1,
28348 "type" : "string",
28349 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
28350 },
28351 "storage" : {
28352 "description" : "Default storage.",
28353 "format" : "pve-storage-id",
7aacca6f 28354 "optional" : 1,
013dc89f
DM
28355 "type" : "string",
28356 "typetext" : "<string>"
56122987 28357 },
44660702
DM
28358 "tablet" : {
28359 "default" : 1,
c2993fe5 28360 "description" : "Enable/disable the USB tablet device.",
56122987 28361 "optional" : 1,
c2993fe5 28362 "type" : "boolean",
013dc89f 28363 "typetext" : "<boolean>",
4772952b 28364 "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 28365 },
5c1699e5
TL
28366 "tags" : {
28367 "description" : "Tags of the VM. This is only meta information.",
28368 "format" : "pve-tag-list",
28369 "optional" : 1,
28370 "type" : "string",
28371 "typetext" : "<string>"
28372 },
44660702
DM
28373 "tdf" : {
28374 "default" : 0,
28375 "description" : "Enable/disable time drift fix.",
28376 "optional" : 1,
013dc89f
DM
28377 "type" : "boolean",
28378 "typetext" : "<boolean>"
7aacca6f
DM
28379 },
28380 "template" : {
7aacca6f 28381 "default" : 0,
44660702 28382 "description" : "Enable/disable Template.",
7aacca6f 28383 "optional" : 1,
013dc89f
DM
28384 "type" : "boolean",
28385 "typetext" : "<boolean>"
7aacca6f 28386 },
5370fa8c 28387 "tpmstate0" : {
7af2edf9 28388 "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
28389 "format" : {
28390 "file" : {
28391 "default_key" : 1,
28392 "description" : "The drive's backing volume.",
28393 "format" : "pve-volume-id-or-qm-path",
28394 "format_description" : "volume",
28395 "type" : "string"
28396 },
7af2edf9
TL
28397 "import-from" : {
28398 "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!",
28399 "format" : "pve-volume-id-or-absolute-path",
28400 "format_description" : "source volume",
28401 "optional" : 1,
28402 "type" : "string"
28403 },
5370fa8c
TL
28404 "size" : {
28405 "description" : "Disk size. This is purely informational and has no effect.",
28406 "format" : "disk-size",
28407 "format_description" : "DiskSize",
28408 "optional" : 1,
28409 "type" : "string"
28410 },
28411 "version" : {
28412 "default" : "v2.0",
28413 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
28414 "enum" : [
28415 "v1.2",
28416 "v2.0"
28417 ],
28418 "optional" : 1,
28419 "type" : "string"
28420 },
28421 "volume" : {
28422 "alias" : "file"
28423 }
28424 },
28425 "optional" : 1,
28426 "type" : "string",
7af2edf9 28427 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 28428 },
44660702
DM
28429 "unique" : {
28430 "description" : "Assign a unique random ethernet address.",
7aacca6f 28431 "optional" : 1,
44660702 28432 "requires" : "archive",
013dc89f
DM
28433 "type" : "boolean",
28434 "typetext" : "<boolean>"
56122987 28435 },
44660702 28436 "unused[n]" : {
c2993fe5 28437 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
28438 "format" : {
28439 "file" : {
28440 "default_key" : 1,
28441 "description" : "The drive's backing volume.",
28442 "format" : "pve-volume-id",
28443 "format_description" : "volume",
28444 "type" : "string"
28445 },
28446 "volume" : {
28447 "alias" : "file"
28448 }
28449 },
7aacca6f 28450 "optional" : 1,
013dc89f 28451 "type" : "string",
c5aa7e14 28452 "typetext" : "[file=]<volume>"
44660702
DM
28453 },
28454 "usb[n]" : {
4e7f60c2 28455 "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 28456 "format" : {
7aacca6f
DM
28457 "host" : {
28458 "default_key" : 1,
499c9b7f 28459 "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 28460 "format_description" : "HOSTUSBDEVICE|spice",
499c9b7f
TL
28461 "optional" : 1,
28462 "pattern" : "(?^:(?:(?:(?^:(0x)?([0-9A-Fa-f]{4}):(0x)?([0-9A-Fa-f]{4})))|(?:(?^:(\\d+)\\-(\\d+(\\.\\d+)*)))|[Ss][Pp][Ii][Cc][Ee]))",
28463 "type" : "string"
28464 },
28465 "mapping" : {
28466 "description" : "The ID of a cluster wide mapping. Either this or the default-key 'host' must be set.",
28467 "format" : "pve-configid",
28468 "format_description" : "mapping-id",
28469 "optional" : 1,
44660702 28470 "type" : "string"
7aacca6f 28471 },
56122987 28472 "usb3" : {
c2993fe5 28473 "default" : 0,
4e7f60c2 28474 "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 28475 "optional" : 1,
56122987 28476 "type" : "boolean"
7aacca6f 28477 }
56122987 28478 },
56122987 28479 "optional" : 1,
4bd7df8b 28480 "type" : "string",
499c9b7f 28481 "typetext" : "[[host=]<HOSTUSBDEVICE|spice>] [,mapping=<mapping-id>] [,usb3=<1|0>]"
56122987 28482 },
44660702
DM
28483 "vcpus" : {
28484 "default" : 0,
28485 "description" : "Number of hotplugged vcpus.",
28486 "minimum" : 1,
56122987 28487 "optional" : 1,
4bd7df8b 28488 "type" : "integer",
013dc89f 28489 "typetext" : "<integer> (1 - N)"
7aacca6f 28490 },
44660702 28491 "vga" : {
e2d681b3
TL
28492 "description" : "Configure the VGA hardware.",
28493 "format" : {
28494 "memory" : {
28495 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
28496 "maximum" : 512,
28497 "minimum" : 4,
28498 "optional" : 1,
28499 "type" : "integer"
28500 },
28501 "type" : {
28502 "default" : "std",
28503 "default_key" : 1,
28504 "description" : "Select the VGA type.",
28505 "enum" : [
28506 "cirrus",
28507 "qxl",
28508 "qxl2",
28509 "qxl3",
28510 "qxl4",
5f26e15b 28511 "none",
e2d681b3
TL
28512 "serial0",
28513 "serial1",
28514 "serial2",
28515 "serial3",
28516 "std",
28517 "virtio",
7af2edf9 28518 "virtio-gl",
e2d681b3
TL
28519 "vmware"
28520 ],
28521 "optional" : 1,
28522 "type" : "string"
28523 }
28524 },
44660702 28525 "optional" : 1,
c2993fe5 28526 "type" : "string",
e2d681b3
TL
28527 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
28528 "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 28529 },
44660702 28530 "virtio[n]" : {
7af2edf9 28531 "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
28532 "format" : {
28533 "aio" : {
28534 "description" : "AIO type to use.",
28535 "enum" : [
28536 "native",
8f4d9c87
TL
28537 "threads",
28538 "io_uring"
44660702 28539 ],
44660702
DM
28540 "optional" : 1,
28541 "type" : "string"
28542 },
28543 "backup" : {
28544 "description" : "Whether the drive should be included when making backups.",
44660702
DM
28545 "optional" : 1,
28546 "type" : "boolean"
28547 },
28548 "bps" : {
de0983cb 28549 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
28550 "format_description" : "bps",
28551 "optional" : 1,
28552 "type" : "integer"
28553 },
de0983cb
DM
28554 "bps_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 "bps_rd" : {
de0983cb 28562 "description" : "Maximum read speed in bytes per second.",
44660702
DM
28563 "format_description" : "bps",
28564 "optional" : 1,
28565 "type" : "integer"
28566 },
de0983cb 28567 "bps_rd_length" : {
5d9c884c
DM
28568 "alias" : "bps_rd_max_length"
28569 },
28570 "bps_rd_max_length" : {
de0983cb
DM
28571 "description" : "Maximum length of read I/O bursts in seconds.",
28572 "format_description" : "seconds",
28573 "minimum" : 1,
28574 "optional" : 1,
28575 "type" : "integer"
28576 },
44660702 28577 "bps_wr" : {
de0983cb 28578 "description" : "Maximum write speed in bytes per second.",
44660702
DM
28579 "format_description" : "bps",
28580 "optional" : 1,
28581 "type" : "integer"
28582 },
de0983cb 28583 "bps_wr_length" : {
5d9c884c
DM
28584 "alias" : "bps_wr_max_length"
28585 },
28586 "bps_wr_max_length" : {
de0983cb
DM
28587 "description" : "Maximum length of write I/O bursts in seconds.",
28588 "format_description" : "seconds",
28589 "minimum" : 1,
28590 "optional" : 1,
28591 "type" : "integer"
28592 },
44660702
DM
28593 "cache" : {
28594 "description" : "The drive's cache mode",
28595 "enum" : [
28596 "none",
28597 "writethrough",
28598 "writeback",
28599 "unsafe",
28600 "directsync"
28601 ],
44660702
DM
28602 "optional" : 1,
28603 "type" : "string"
28604 },
28605 "cyls" : {
28606 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
28607 "optional" : 1,
28608 "type" : "integer"
28609 },
28610 "detect_zeroes" : {
28611 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
28612 "optional" : 1,
28613 "type" : "boolean"
28614 },
28615 "discard" : {
28616 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
28617 "enum" : [
28618 "ignore",
28619 "on"
28620 ],
44660702
DM
28621 "optional" : 1,
28622 "type" : "string"
28623 },
28624 "file" : {
28625 "default_key" : 1,
28626 "description" : "The drive's backing volume.",
28627 "format" : "pve-volume-id-or-qm-path",
28628 "format_description" : "volume",
28629 "type" : "string"
28630 },
28631 "format" : {
28632 "description" : "The drive's backing file's data format.",
28633 "enum" : [
28634 "raw",
28635 "cow",
28636 "qcow",
28637 "qed",
28638 "qcow2",
28639 "vmdk",
28640 "cloop"
28641 ],
44660702
DM
28642 "optional" : 1,
28643 "type" : "string"
28644 },
28645 "heads" : {
28646 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
28647 "optional" : 1,
28648 "type" : "integer"
28649 },
7af2edf9
TL
28650 "import-from" : {
28651 "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!",
28652 "format" : "pve-volume-id-or-absolute-path",
28653 "format_description" : "source volume",
28654 "optional" : 1,
28655 "type" : "string"
28656 },
44660702 28657 "iops" : {
de0983cb 28658 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
28659 "format_description" : "iops",
28660 "optional" : 1,
28661 "type" : "integer"
28662 },
28663 "iops_max" : {
de0983cb 28664 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
28665 "format_description" : "iops",
28666 "optional" : 1,
28667 "type" : "integer"
28668 },
de0983cb
DM
28669 "iops_max_length" : {
28670 "description" : "Maximum length of I/O bursts in seconds.",
28671 "format_description" : "seconds",
28672 "minimum" : 1,
28673 "optional" : 1,
28674 "type" : "integer"
28675 },
44660702 28676 "iops_rd" : {
de0983cb 28677 "description" : "Maximum read I/O in operations per second.",
44660702
DM
28678 "format_description" : "iops",
28679 "optional" : 1,
28680 "type" : "integer"
28681 },
de0983cb 28682 "iops_rd_length" : {
5d9c884c 28683 "alias" : "iops_rd_max_length"
de0983cb 28684 },
44660702 28685 "iops_rd_max" : {
de0983cb 28686 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
28687 "format_description" : "iops",
28688 "optional" : 1,
28689 "type" : "integer"
28690 },
5d9c884c
DM
28691 "iops_rd_max_length" : {
28692 "description" : "Maximum length of read I/O bursts in seconds.",
28693 "format_description" : "seconds",
28694 "minimum" : 1,
28695 "optional" : 1,
28696 "type" : "integer"
28697 },
44660702 28698 "iops_wr" : {
de0983cb 28699 "description" : "Maximum write I/O in operations per second.",
44660702
DM
28700 "format_description" : "iops",
28701 "optional" : 1,
28702 "type" : "integer"
28703 },
de0983cb 28704 "iops_wr_length" : {
5d9c884c 28705 "alias" : "iops_wr_max_length"
de0983cb 28706 },
44660702 28707 "iops_wr_max" : {
de0983cb 28708 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
28709 "format_description" : "iops",
28710 "optional" : 1,
28711 "type" : "integer"
28712 },
5d9c884c
DM
28713 "iops_wr_max_length" : {
28714 "description" : "Maximum length of write I/O bursts in seconds.",
28715 "format_description" : "seconds",
28716 "minimum" : 1,
28717 "optional" : 1,
28718 "type" : "integer"
28719 },
44660702
DM
28720 "iothread" : {
28721 "description" : "Whether to use iothreads for this drive",
44660702
DM
28722 "optional" : 1,
28723 "type" : "boolean"
28724 },
28725 "mbps" : {
de0983cb 28726 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
28727 "format_description" : "mbps",
28728 "optional" : 1,
28729 "type" : "number"
28730 },
28731 "mbps_max" : {
de0983cb 28732 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
28733 "format_description" : "mbps",
28734 "optional" : 1,
28735 "type" : "number"
28736 },
28737 "mbps_rd" : {
de0983cb 28738 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
28739 "format_description" : "mbps",
28740 "optional" : 1,
28741 "type" : "number"
28742 },
28743 "mbps_rd_max" : {
de0983cb 28744 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
28745 "format_description" : "mbps",
28746 "optional" : 1,
28747 "type" : "number"
28748 },
28749 "mbps_wr" : {
de0983cb 28750 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
28751 "format_description" : "mbps",
28752 "optional" : 1,
28753 "type" : "number"
28754 },
28755 "mbps_wr_max" : {
de0983cb 28756 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
28757 "format_description" : "mbps",
28758 "optional" : 1,
28759 "type" : "number"
28760 },
28761 "media" : {
28762 "default" : "disk",
28763 "description" : "The drive's media type.",
28764 "enum" : [
28765 "cdrom",
28766 "disk"
28767 ],
44660702
DM
28768 "optional" : 1,
28769 "type" : "string"
28770 },
5d9c884c
DM
28771 "replicate" : {
28772 "default" : 1,
28773 "description" : "Whether the drive should considered for replication jobs.",
28774 "optional" : 1,
28775 "type" : "boolean"
28776 },
44660702
DM
28777 "rerror" : {
28778 "description" : "Read error action.",
28779 "enum" : [
28780 "ignore",
28781 "report",
28782 "stop"
28783 ],
44660702
DM
28784 "optional" : 1,
28785 "type" : "string"
28786 },
5370fa8c
TL
28787 "ro" : {
28788 "description" : "Whether the drive is read-only.",
28789 "optional" : 1,
28790 "type" : "boolean"
28791 },
44660702
DM
28792 "secs" : {
28793 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
28794 "optional" : 1,
28795 "type" : "integer"
28796 },
28797 "serial" : {
28798 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
28799 "format" : "urlencoded",
28800 "format_description" : "serial",
28801 "maxLength" : 60,
28802 "optional" : 1,
28803 "type" : "string"
28804 },
27a7acb2
DM
28805 "shared" : {
28806 "default" : 0,
28807 "description" : "Mark this locally-managed volume as available on all nodes",
28808 "optional" : 1,
28809 "type" : "boolean",
28810 "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!"
28811 },
44660702
DM
28812 "size" : {
28813 "description" : "Disk size. This is purely informational and has no effect.",
28814 "format" : "disk-size",
f004f5b9 28815 "format_description" : "DiskSize",
44660702
DM
28816 "optional" : 1,
28817 "type" : "string"
28818 },
28819 "snapshot" : {
27a7acb2 28820 "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
28821 "optional" : 1,
28822 "type" : "boolean"
28823 },
28824 "trans" : {
28825 "description" : "Force disk geometry bios translation mode.",
28826 "enum" : [
28827 "none",
28828 "lba",
28829 "auto"
28830 ],
44660702
DM
28831 "optional" : 1,
28832 "type" : "string"
28833 },
28834 "volume" : {
28835 "alias" : "file"
28836 },
28837 "werror" : {
28838 "description" : "Write error action.",
28839 "enum" : [
28840 "enospc",
28841 "ignore",
28842 "report",
28843 "stop"
28844 ],
44660702
DM
28845 "optional" : 1,
28846 "type" : "string"
28847 }
28848 },
28849 "optional" : 1,
4bd7df8b 28850 "type" : "string",
7af2edf9 28851 "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 28852 },
4d47f125
TL
28853 "vmgenid" : {
28854 "default" : "1 (autogenerated)",
28855 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
28856 "format_description" : "UUID",
28857 "optional" : 1,
28858 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
28859 "type" : "string",
4772952b 28860 "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 28861 },
44660702
DM
28862 "vmid" : {
28863 "description" : "The (unique) ID of the VM.",
28864 "format" : "pve-vmid",
8dd66e12
TL
28865 "maximum" : 999999999,
28866 "minimum" : 100,
4bd7df8b 28867 "type" : "integer",
8dd66e12 28868 "typetext" : "<integer> (100 - 999999999)"
44660702 28869 },
2489d6df
WB
28870 "vmstatestorage" : {
28871 "description" : "Default storage for VM state volumes/files.",
28872 "format" : "pve-storage-id",
28873 "optional" : 1,
28874 "type" : "string",
28875 "typetext" : "<string>"
28876 },
44660702 28877 "watchdog" : {
c2993fe5 28878 "description" : "Create a virtual hardware watchdog device.",
44660702 28879 "format" : "pve-qm-watchdog",
7aacca6f 28880 "optional" : 1,
c2993fe5 28881 "type" : "string",
013dc89f 28882 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 28883 "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 28884 }
44660702 28885 }
56122987 28886 },
56122987 28887 "permissions" : {
159464a9 28888 "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 28889 "user" : "all"
56122987 28890 },
44660702
DM
28891 "protected" : 1,
28892 "proxyto" : "node",
56122987 28893 "returns" : {
44660702 28894 "type" : "string"
7aacca6f 28895 }
56122987 28896 }
7aacca6f 28897 },
44660702 28898 "leaf" : 0,
7aacca6f 28899 "path" : "/nodes/{node}/qemu",
44660702 28900 "text" : "qemu"
56122987
DM
28901 },
28902 {
28903 "children" : [
28904 {
56122987
DM
28905 "children" : [
28906 {
56122987 28907 "info" : {
44660702 28908 "GET" : {
e9cd3bd4 28909 "allowtoken" : 1,
44660702
DM
28910 "description" : "Get container configuration.",
28911 "method" : "GET",
28912 "name" : "vm_config",
28913 "parameters" : {
28914 "additionalProperties" : 0,
28915 "properties" : {
1c532546
TL
28916 "current" : {
28917 "default" : 0,
28918 "description" : "Get current values (instead of pending values).",
28919 "optional" : 1,
28920 "type" : "boolean",
28921 "typetext" : "<boolean>"
28922 },
44660702
DM
28923 "node" : {
28924 "description" : "The cluster node name.",
28925 "format" : "pve-node",
013dc89f 28926 "type" : "string",
4d47f125
TL
28927 "typetext" : "<string>"
28928 },
5f26e15b
TL
28929 "snapshot" : {
28930 "description" : "Fetch config values from given snapshot.",
28931 "format" : "pve-configid",
28932 "maxLength" : 40,
28933 "optional" : 1,
28934 "type" : "string",
28935 "typetext" : "<string>"
28936 },
4d47f125
TL
28937 "vmid" : {
28938 "description" : "The (unique) ID of the VM.",
28939 "format" : "pve-vmid",
8dd66e12
TL
28940 "maximum" : 999999999,
28941 "minimum" : 100,
4d47f125 28942 "type" : "integer",
8dd66e12 28943 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
28944 }
28945 }
28946 },
28947 "permissions" : {
28948 "check" : [
28949 "perm",
28950 "/vms/{vmid}",
28951 [
28952 "VM.Audit"
28953 ]
28954 ]
28955 },
28956 "proxyto" : "node",
28957 "returns" : {
28958 "properties" : {
28959 "arch" : {
28960 "default" : "amd64",
28961 "description" : "OS architecture type.",
28962 "enum" : [
28963 "amd64",
28964 "i386",
28965 "arm64",
9d2e98ed
TL
28966 "armhf",
28967 "riscv32",
28968 "riscv64"
4d47f125
TL
28969 ],
28970 "optional" : 1,
28971 "type" : "string"
28972 },
28973 "cmode" : {
28974 "default" : "tty",
28975 "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).",
28976 "enum" : [
28977 "shell",
28978 "console",
28979 "tty"
28980 ],
28981 "optional" : 1,
28982 "type" : "string"
28983 },
28984 "console" : {
28985 "default" : 1,
28986 "description" : "Attach a console device (/dev/console) to the container.",
28987 "optional" : 1,
28988 "type" : "boolean"
28989 },
28990 "cores" : {
28991 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 28992 "maximum" : 8192,
4d47f125
TL
28993 "minimum" : 1,
28994 "optional" : 1,
28995 "type" : "integer"
28996 },
28997 "cpulimit" : {
28998 "default" : 0,
28999 "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 29000 "maximum" : 8192,
4d47f125
TL
29001 "minimum" : 0,
29002 "optional" : 1,
29003 "type" : "number"
29004 },
29005 "cpuunits" : {
4e7f60c2
TL
29006 "default" : "cgroup v1: 1024, cgroup v2: 100",
29007 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
29008 "maximum" : 500000,
29009 "minimum" : 0,
29010 "optional" : 1,
4e7f60c2
TL
29011 "type" : "integer",
29012 "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 29013 },
739d4d64
TL
29014 "debug" : {
29015 "default" : 0,
29016 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
29017 "optional" : 1,
29018 "type" : "boolean"
29019 },
4d47f125 29020 "description" : {
8f4d9c87
TL
29021 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
29022 "maxLength" : 8192,
4d47f125
TL
29023 "optional" : 1,
29024 "type" : "string"
29025 },
29026 "digest" : {
29027 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
29028 "type" : "string"
29029 },
29030 "features" : {
29031 "description" : "Allow containers access to advanced features.",
29032 "format" : {
c5aa7e14
TL
29033 "force_rw_sys" : {
29034 "default" : 0,
29035 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
29036 "optional" : 1,
29037 "type" : "boolean"
29038 },
e2d681b3
TL
29039 "fuse" : {
29040 "default" : 0,
29041 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
29042 "optional" : 1,
29043 "type" : "boolean"
29044 },
4d47f125
TL
29045 "keyctl" : {
29046 "default" : 0,
29047 "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.",
29048 "optional" : 1,
29049 "type" : "boolean"
29050 },
c5aa7e14
TL
29051 "mknod" : {
29052 "default" : 0,
29053 "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.",
29054 "optional" : 1,
29055 "type" : "boolean"
29056 },
4d47f125
TL
29057 "mount" : {
29058 "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.",
29059 "format_description" : "fstype;fstype;...",
29060 "optional" : 1,
95895385 29061 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
29062 "type" : "string"
29063 },
29064 "nesting" : {
29065 "default" : 0,
29066 "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.",
29067 "optional" : 1,
29068 "type" : "boolean"
29069 }
29070 },
29071 "optional" : 1,
29072 "type" : "string"
29073 },
5f26e15b
TL
29074 "hookscript" : {
29075 "description" : "Script that will be exectued during various steps in the containers lifetime.",
29076 "format" : "pve-volume-id",
29077 "optional" : 1,
29078 "type" : "string"
29079 },
4d47f125
TL
29080 "hostname" : {
29081 "description" : "Set a host name for the container.",
29082 "format" : "dns-name",
29083 "maxLength" : 255,
29084 "optional" : 1,
29085 "type" : "string"
29086 },
29087 "lock" : {
4e7f60c2 29088 "description" : "Lock/unlock the container.",
4d47f125
TL
29089 "enum" : [
29090 "backup",
bb4c8cf8 29091 "create",
1c532546 29092 "destroyed",
4d47f125 29093 "disk",
bb4c8cf8 29094 "fstrim",
4d47f125
TL
29095 "migrate",
29096 "mounted",
29097 "rollback",
29098 "snapshot",
29099 "snapshot-delete"
29100 ],
29101 "optional" : 1,
29102 "type" : "string"
29103 },
29104 "lxc" : {
29105 "description" : "Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).",
29106 "items" : {
29107 "items" : {
29108 "type" : "string"
29109 },
29110 "type" : "array"
29111 },
29112 "optional" : 1,
29113 "type" : "array"
29114 },
29115 "memory" : {
29116 "default" : 512,
4e7f60c2 29117 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
29118 "minimum" : 16,
29119 "optional" : 1,
29120 "type" : "integer"
29121 },
29122 "mp[n]" : {
d2656385 29123 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
29124 "format" : {
29125 "acl" : {
29126 "description" : "Explicitly enable or disable ACL support.",
29127 "optional" : 1,
29128 "type" : "boolean"
29129 },
29130 "backup" : {
29131 "description" : "Whether to include the mount point in backups.",
29132 "optional" : 1,
29133 "type" : "boolean",
29134 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
29135 },
7cbed89a
TL
29136 "mountoptions" : {
29137 "description" : "Extra mount options for rootfs/mps.",
29138 "format_description" : "opt[;opt...]",
29139 "optional" : 1,
c30bb419 29140 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
29141 "type" : "string"
29142 },
4d47f125
TL
29143 "mp" : {
29144 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
29145 "format" : "pve-lxc-mp-string",
29146 "format_description" : "Path",
29147 "type" : "string",
29148 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
29149 },
29150 "quota" : {
29151 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
29152 "optional" : 1,
29153 "type" : "boolean"
29154 },
29155 "replicate" : {
29156 "default" : 1,
29157 "description" : "Will include this volume to a storage replica job.",
29158 "optional" : 1,
29159 "type" : "boolean"
29160 },
29161 "ro" : {
29162 "description" : "Read-only mount point",
29163 "optional" : 1,
29164 "type" : "boolean"
29165 },
29166 "shared" : {
29167 "default" : 0,
29168 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
29169 "optional" : 1,
29170 "type" : "boolean",
29171 "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!"
29172 },
29173 "size" : {
29174 "description" : "Volume size (read only value).",
29175 "format" : "disk-size",
29176 "format_description" : "DiskSize",
29177 "optional" : 1,
29178 "type" : "string"
29179 },
29180 "volume" : {
29181 "default_key" : 1,
29182 "description" : "Volume, device or directory to mount into the container.",
29183 "format" : "pve-lxc-mp-string",
29184 "format_description" : "volume",
29185 "type" : "string"
29186 }
29187 },
29188 "optional" : 1,
29189 "type" : "string"
29190 },
29191 "nameserver" : {
29192 "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 29193 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
29194 "optional" : 1,
29195 "type" : "string"
29196 },
29197 "net[n]" : {
29198 "description" : "Specifies network interfaces for the container.",
29199 "format" : {
29200 "bridge" : {
29201 "description" : "Bridge to attach the network device to.",
29202 "format_description" : "bridge",
29203 "optional" : 1,
29204 "pattern" : "[-_.\\w\\d]+",
29205 "type" : "string"
29206 },
29207 "firewall" : {
29208 "description" : "Controls whether this interface's firewall rules should be used.",
29209 "optional" : 1,
29210 "type" : "boolean"
29211 },
29212 "gw" : {
29213 "description" : "Default gateway for IPv4 traffic.",
29214 "format" : "ipv4",
29215 "format_description" : "GatewayIPv4",
29216 "optional" : 1,
29217 "type" : "string"
29218 },
29219 "gw6" : {
29220 "description" : "Default gateway for IPv6 traffic.",
29221 "format" : "ipv6",
29222 "format_description" : "GatewayIPv6",
29223 "optional" : 1,
29224 "type" : "string"
29225 },
29226 "hwaddr" : {
29227 "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 29228 "format" : "mac-addr",
4d47f125
TL
29229 "format_description" : "XX:XX:XX:XX:XX:XX",
29230 "optional" : 1,
95895385
TL
29231 "type" : "string",
29232 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
29233 },
29234 "ip" : {
29235 "description" : "IPv4 address in CIDR format.",
29236 "format" : "pve-ipv4-config",
29237 "format_description" : "(IPv4/CIDR|dhcp|manual)",
29238 "optional" : 1,
29239 "type" : "string"
29240 },
29241 "ip6" : {
29242 "description" : "IPv6 address in CIDR format.",
29243 "format" : "pve-ipv6-config",
29244 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
29245 "optional" : 1,
29246 "type" : "string"
29247 },
9d2e98ed
TL
29248 "link_down" : {
29249 "description" : "Whether this interface should be disconnected (like pulling the plug).",
29250 "optional" : 1,
29251 "type" : "boolean"
29252 },
4d47f125
TL
29253 "mtu" : {
29254 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 29255 "maximum" : 65535,
4d47f125
TL
29256 "minimum" : 64,
29257 "optional" : 1,
29258 "type" : "integer"
29259 },
29260 "name" : {
29261 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
29262 "format_description" : "string",
29263 "pattern" : "[-_.\\w\\d]+",
29264 "type" : "string"
29265 },
29266 "rate" : {
29267 "description" : "Apply rate limiting to the interface",
29268 "format_description" : "mbps",
29269 "optional" : 1,
29270 "type" : "number"
29271 },
29272 "tag" : {
29273 "description" : "VLAN tag for this interface.",
29274 "maximum" : 4094,
29275 "minimum" : 1,
29276 "optional" : 1,
29277 "type" : "integer"
29278 },
29279 "trunks" : {
29280 "description" : "VLAN ids to pass through the interface",
29281 "format_description" : "vlanid[;vlanid...]",
29282 "optional" : 1,
29283 "pattern" : "(?^:\\d+(?:;\\d+)*)",
29284 "type" : "string"
29285 },
29286 "type" : {
29287 "description" : "Network interface type.",
29288 "enum" : [
29289 "veth"
29290 ],
29291 "optional" : 1,
29292 "type" : "string"
29293 }
29294 },
29295 "optional" : 1,
29296 "type" : "string"
29297 },
29298 "onboot" : {
29299 "default" : 0,
4e7f60c2 29300 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
29301 "optional" : 1,
29302 "type" : "boolean"
29303 },
29304 "ostype" : {
29305 "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.",
29306 "enum" : [
29307 "debian",
d2656385 29308 "devuan",
4d47f125
TL
29309 "ubuntu",
29310 "centos",
29311 "fedora",
29312 "opensuse",
29313 "archlinux",
29314 "alpine",
29315 "gentoo",
7af2edf9 29316 "nixos",
4d47f125
TL
29317 "unmanaged"
29318 ],
29319 "optional" : 1,
29320 "type" : "string"
29321 },
29322 "protection" : {
29323 "default" : 0,
29324 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
29325 "optional" : 1,
29326 "type" : "boolean"
29327 },
29328 "rootfs" : {
29329 "description" : "Use volume as container root.",
29330 "format" : {
29331 "acl" : {
29332 "description" : "Explicitly enable or disable ACL support.",
29333 "optional" : 1,
29334 "type" : "boolean"
29335 },
7cbed89a
TL
29336 "mountoptions" : {
29337 "description" : "Extra mount options for rootfs/mps.",
29338 "format_description" : "opt[;opt...]",
29339 "optional" : 1,
c30bb419 29340 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
29341 "type" : "string"
29342 },
4d47f125
TL
29343 "quota" : {
29344 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
29345 "optional" : 1,
29346 "type" : "boolean"
29347 },
29348 "replicate" : {
29349 "default" : 1,
29350 "description" : "Will include this volume to a storage replica job.",
29351 "optional" : 1,
29352 "type" : "boolean"
29353 },
29354 "ro" : {
29355 "description" : "Read-only mount point",
29356 "optional" : 1,
29357 "type" : "boolean"
29358 },
29359 "shared" : {
29360 "default" : 0,
29361 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
29362 "optional" : 1,
29363 "type" : "boolean",
29364 "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!"
29365 },
29366 "size" : {
29367 "description" : "Volume size (read only value).",
29368 "format" : "disk-size",
29369 "format_description" : "DiskSize",
29370 "optional" : 1,
29371 "type" : "string"
29372 },
29373 "volume" : {
29374 "default_key" : 1,
29375 "description" : "Volume, device or directory to mount into the container.",
29376 "format" : "pve-lxc-mp-string",
29377 "format_description" : "volume",
29378 "type" : "string"
29379 }
29380 },
29381 "optional" : 1,
29382 "type" : "string"
29383 },
29384 "searchdomain" : {
29385 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
29386 "format" : "dns-name-list",
29387 "optional" : 1,
29388 "type" : "string"
29389 },
29390 "startup" : {
29391 "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.",
29392 "format" : "pve-startup-order",
29393 "optional" : 1,
29394 "type" : "string",
29395 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
29396 },
29397 "swap" : {
29398 "default" : 512,
4e7f60c2 29399 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
29400 "minimum" : 0,
29401 "optional" : 1,
29402 "type" : "integer"
29403 },
5c1699e5
TL
29404 "tags" : {
29405 "description" : "Tags of the Container. This is only meta information.",
29406 "format" : "pve-tag-list",
29407 "optional" : 1,
29408 "type" : "string"
29409 },
4d47f125
TL
29410 "template" : {
29411 "default" : 0,
29412 "description" : "Enable/disable Template.",
29413 "optional" : 1,
29414 "type" : "boolean"
44660702 29415 },
04d22a9f
TL
29416 "timezone" : {
29417 "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",
29418 "format" : "pve-ct-timezone",
29419 "optional" : 1,
29420 "type" : "string"
29421 },
4d47f125
TL
29422 "tty" : {
29423 "default" : 2,
29424 "description" : "Specify the number of tty available to the container",
29425 "maximum" : 6,
29426 "minimum" : 0,
29427 "optional" : 1,
29428 "type" : "integer"
29429 },
29430 "unprivileged" : {
29431 "default" : 0,
29432 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
29433 "optional" : 1,
29434 "type" : "boolean"
29435 },
29436 "unused[n]" : {
29437 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
29438 "format" : {
29439 "volume" : {
29440 "default_key" : 1,
29441 "description" : "The volume that is not used currently.",
29442 "format" : "pve-volume-id",
29443 "format_description" : "volume",
29444 "type" : "string"
29445 }
29446 },
4d47f125 29447 "optional" : 1,
44660702
DM
29448 "type" : "string"
29449 }
29450 },
29451 "type" : "object"
29452 }
29453 },
56122987 29454 "PUT" : {
e9cd3bd4 29455 "allowtoken" : 1,
44660702
DM
29456 "description" : "Set container options.",
29457 "method" : "PUT",
29458 "name" : "update_vm",
56122987 29459 "parameters" : {
44660702 29460 "additionalProperties" : 0,
56122987 29461 "properties" : {
44660702
DM
29462 "arch" : {
29463 "default" : "amd64",
29464 "description" : "OS architecture type.",
29465 "enum" : [
29466 "amd64",
4d47f125
TL
29467 "i386",
29468 "arm64",
9d2e98ed
TL
29469 "armhf",
29470 "riscv32",
29471 "riscv64"
44660702 29472 ],
7aacca6f 29473 "optional" : 1,
44660702
DM
29474 "type" : "string"
29475 },
29476 "cmode" : {
7aacca6f 29477 "default" : "tty",
44660702 29478 "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
29479 "enum" : [
29480 "shell",
29481 "console",
29482 "tty"
29483 ],
44660702
DM
29484 "optional" : 1,
29485 "type" : "string"
7aacca6f 29486 },
44660702
DM
29487 "console" : {
29488 "default" : 1,
29489 "description" : "Attach a console device (/dev/console) to the container.",
7aacca6f 29490 "optional" : 1,
013dc89f
DM
29491 "type" : "boolean",
29492 "typetext" : "<boolean>"
7aacca6f 29493 },
de0983cb
DM
29494 "cores" : {
29495 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 29496 "maximum" : 8192,
de0983cb
DM
29497 "minimum" : 1,
29498 "optional" : 1,
29499 "type" : "integer",
4772952b 29500 "typetext" : "<integer> (1 - 8192)"
de0983cb 29501 },
44660702
DM
29502 "cpulimit" : {
29503 "default" : 0,
29504 "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 29505 "maximum" : 8192,
7aacca6f 29506 "minimum" : 0,
7aacca6f 29507 "optional" : 1,
4bd7df8b 29508 "type" : "number",
4772952b 29509 "typetext" : "<number> (0 - 8192)"
7aacca6f 29510 },
44660702 29511 "cpuunits" : {
4e7f60c2
TL
29512 "default" : "cgroup v1: 1024, cgroup v2: 100",
29513 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
44660702
DM
29514 "maximum" : 500000,
29515 "minimum" : 0,
29516 "optional" : 1,
4bd7df8b 29517 "type" : "integer",
4e7f60c2
TL
29518 "typetext" : "<integer> (0 - 500000)",
29519 "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 29520 },
739d4d64
TL
29521 "debug" : {
29522 "default" : 0,
29523 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
29524 "optional" : 1,
29525 "type" : "boolean",
29526 "typetext" : "<boolean>"
29527 },
44660702
DM
29528 "delete" : {
29529 "description" : "A list of settings you want to delete.",
29530 "format" : "pve-configid-list",
7aacca6f 29531 "optional" : 1,
013dc89f
DM
29532 "type" : "string",
29533 "typetext" : "<string>"
7aacca6f 29534 },
44660702 29535 "description" : {
8f4d9c87
TL
29536 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
29537 "maxLength" : 8192,
7aacca6f 29538 "optional" : 1,
013dc89f
DM
29539 "type" : "string",
29540 "typetext" : "<string>"
7aacca6f 29541 },
44660702
DM
29542 "digest" : {
29543 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29544 "maxLength" : 40,
7aacca6f 29545 "optional" : 1,
013dc89f
DM
29546 "type" : "string",
29547 "typetext" : "<string>"
7aacca6f 29548 },
4d47f125
TL
29549 "features" : {
29550 "description" : "Allow containers access to advanced features.",
29551 "format" : {
c5aa7e14
TL
29552 "force_rw_sys" : {
29553 "default" : 0,
29554 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
29555 "optional" : 1,
29556 "type" : "boolean"
29557 },
e2d681b3
TL
29558 "fuse" : {
29559 "default" : 0,
29560 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
29561 "optional" : 1,
29562 "type" : "boolean"
29563 },
4d47f125
TL
29564 "keyctl" : {
29565 "default" : 0,
29566 "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.",
29567 "optional" : 1,
29568 "type" : "boolean"
29569 },
c5aa7e14
TL
29570 "mknod" : {
29571 "default" : 0,
29572 "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.",
29573 "optional" : 1,
29574 "type" : "boolean"
29575 },
4d47f125
TL
29576 "mount" : {
29577 "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.",
29578 "format_description" : "fstype;fstype;...",
29579 "optional" : 1,
95895385 29580 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
29581 "type" : "string"
29582 },
29583 "nesting" : {
29584 "default" : 0,
29585 "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.",
29586 "optional" : 1,
29587 "type" : "boolean"
29588 }
29589 },
29590 "optional" : 1,
29591 "type" : "string",
c5aa7e14 29592 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
4d47f125 29593 },
5f26e15b
TL
29594 "hookscript" : {
29595 "description" : "Script that will be exectued during various steps in the containers lifetime.",
29596 "format" : "pve-volume-id",
29597 "optional" : 1,
29598 "type" : "string",
29599 "typetext" : "<string>"
29600 },
44660702
DM
29601 "hostname" : {
29602 "description" : "Set a host name for the container.",
29603 "format" : "dns-name",
29604 "maxLength" : 255,
56122987 29605 "optional" : 1,
013dc89f
DM
29606 "type" : "string",
29607 "typetext" : "<string>"
44660702
DM
29608 },
29609 "lock" : {
4e7f60c2 29610 "description" : "Lock/unlock the container.",
44660702 29611 "enum" : [
44660702 29612 "backup",
bb4c8cf8 29613 "create",
1c532546 29614 "destroyed",
4d47f125 29615 "disk",
bb4c8cf8 29616 "fstrim",
4d47f125
TL
29617 "migrate",
29618 "mounted",
29619 "rollback",
44660702 29620 "snapshot",
4d47f125 29621 "snapshot-delete"
44660702
DM
29622 ],
29623 "optional" : 1,
29624 "type" : "string"
29625 },
29626 "memory" : {
29627 "default" : 512,
4e7f60c2 29628 "description" : "Amount of RAM for the container in MB.",
44660702
DM
29629 "minimum" : 16,
29630 "optional" : 1,
4bd7df8b 29631 "type" : "integer",
013dc89f 29632 "typetext" : "<integer> (16 - N)"
7aacca6f
DM
29633 },
29634 "mp[n]" : {
d2656385 29635 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
7aacca6f 29636 "format" : {
7aacca6f
DM
29637 "acl" : {
29638 "description" : "Explicitly enable or disable ACL support.",
7aacca6f 29639 "optional" : 1,
44660702 29640 "type" : "boolean"
7aacca6f
DM
29641 },
29642 "backup" : {
de0983cb 29643 "description" : "Whether to include the mount point in backups.",
7aacca6f 29644 "optional" : 1,
4bd7df8b 29645 "type" : "boolean",
de0983cb 29646 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
7aacca6f 29647 },
7cbed89a
TL
29648 "mountoptions" : {
29649 "description" : "Extra mount options for rootfs/mps.",
29650 "format_description" : "opt[;opt...]",
29651 "optional" : 1,
c30bb419 29652 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
29653 "type" : "string"
29654 },
7aacca6f 29655 "mp" : {
de0983cb 29656 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
7aacca6f 29657 "format" : "pve-lxc-mp-string",
44660702 29658 "format_description" : "Path",
4bd7df8b 29659 "type" : "string",
de0983cb 29660 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
44660702 29661 },
5d9c884c
DM
29662 "quota" : {
29663 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
29664 "optional" : 1,
29665 "type" : "boolean"
29666 },
29667 "replicate" : {
29668 "default" : 1,
29669 "description" : "Will include this volume to a storage replica job.",
44660702
DM
29670 "optional" : 1,
29671 "type" : "boolean"
29672 },
29673 "ro" : {
de0983cb 29674 "description" : "Read-only mount point",
44660702
DM
29675 "optional" : 1,
29676 "type" : "boolean"
29677 },
de0983cb
DM
29678 "shared" : {
29679 "default" : 0,
29680 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
29681 "optional" : 1,
29682 "type" : "boolean",
29683 "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!"
29684 },
44660702
DM
29685 "size" : {
29686 "description" : "Volume size (read only value).",
29687 "format" : "disk-size",
29688 "format_description" : "DiskSize",
29689 "optional" : 1,
29690 "type" : "string"
29691 },
29692 "volume" : {
29693 "default_key" : 1,
29694 "description" : "Volume, device or directory to mount into the container.",
29695 "format" : "pve-lxc-mp-string",
29696 "format_description" : "volume",
29697 "type" : "string"
29698 }
29699 },
7aacca6f 29700 "optional" : 1,
4bd7df8b 29701 "type" : "string",
7cbed89a 29702 "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 29703 },
44660702
DM
29704 "nameserver" : {
29705 "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 29706 "format" : "lxc-ip-with-ll-iface-list",
56122987 29707 "optional" : 1,
013dc89f
DM
29708 "type" : "string",
29709 "typetext" : "<string>"
56122987
DM
29710 },
29711 "net[n]" : {
44660702 29712 "description" : "Specifies network interfaces for the container.",
56122987 29713 "format" : {
44660702
DM
29714 "bridge" : {
29715 "description" : "Bridge to attach the network device to.",
f004f5b9 29716 "format_description" : "bridge",
56122987 29717 "optional" : 1,
44660702
DM
29718 "pattern" : "[-_.\\w\\d]+",
29719 "type" : "string"
56122987 29720 },
44660702
DM
29721 "firewall" : {
29722 "description" : "Controls whether this interface's firewall rules should be used.",
56122987 29723 "optional" : 1,
44660702 29724 "type" : "boolean"
56122987 29725 },
44660702
DM
29726 "gw" : {
29727 "description" : "Default gateway for IPv4 traffic.",
29728 "format" : "ipv4",
29729 "format_description" : "GatewayIPv4",
56122987 29730 "optional" : 1,
44660702 29731 "type" : "string"
56122987
DM
29732 },
29733 "gw6" : {
7aacca6f 29734 "description" : "Default gateway for IPv6 traffic.",
44660702
DM
29735 "format" : "ipv6",
29736 "format_description" : "GatewayIPv6",
7aacca6f 29737 "optional" : 1,
56122987
DM
29738 "type" : "string"
29739 },
44660702 29740 "hwaddr" : {
f004f5b9 29741 "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 29742 "format" : "mac-addr",
f004f5b9 29743 "format_description" : "XX:XX:XX:XX:XX:XX",
44660702 29744 "optional" : 1,
95895385
TL
29745 "type" : "string",
29746 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
44660702
DM
29747 },
29748 "ip" : {
29749 "description" : "IPv4 address in CIDR format.",
29750 "format" : "pve-ipv4-config",
2489d6df 29751 "format_description" : "(IPv4/CIDR|dhcp|manual)",
56122987 29752 "optional" : 1,
44660702 29753 "type" : "string"
56122987 29754 },
7aacca6f 29755 "ip6" : {
7aacca6f
DM
29756 "description" : "IPv6 address in CIDR format.",
29757 "format" : "pve-ipv6-config",
2489d6df 29758 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
7aacca6f 29759 "optional" : 1,
44660702 29760 "type" : "string"
56122987 29761 },
9d2e98ed
TL
29762 "link_down" : {
29763 "description" : "Whether this interface should be disconnected (like pulling the plug).",
29764 "optional" : 1,
29765 "type" : "boolean"
29766 },
44660702
DM
29767 "mtu" : {
29768 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 29769 "maximum" : 65535,
44660702 29770 "minimum" : 64,
56122987 29771 "optional" : 1,
44660702 29772 "type" : "integer"
56122987
DM
29773 },
29774 "name" : {
44660702 29775 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
f004f5b9 29776 "format_description" : "string",
56122987 29777 "pattern" : "[-_.\\w\\d]+",
44660702 29778 "type" : "string"
56122987 29779 },
44660702
DM
29780 "rate" : {
29781 "description" : "Apply rate limiting to the interface",
29782 "format_description" : "mbps",
56122987 29783 "optional" : 1,
44660702 29784 "type" : "number"
7aacca6f 29785 },
44660702
DM
29786 "tag" : {
29787 "description" : "VLAN tag for this interface.",
4bd7df8b
DM
29788 "maximum" : 4094,
29789 "minimum" : 1,
56122987 29790 "optional" : 1,
7aacca6f 29791 "type" : "integer"
56122987 29792 },
44660702
DM
29793 "trunks" : {
29794 "description" : "VLAN ids to pass through the interface",
29795 "format_description" : "vlanid[;vlanid...]",
29796 "optional" : 1,
29797 "pattern" : "(?^:\\d+(?:;\\d+)*)",
29798 "type" : "string"
29799 },
29800 "type" : {
29801 "description" : "Network interface type.",
29802 "enum" : [
29803 "veth"
29804 ],
56122987 29805 "optional" : 1,
44660702 29806 "type" : "string"
56122987
DM
29807 }
29808 },
7aacca6f 29809 "optional" : 1,
4bd7df8b 29810 "type" : "string",
9d2e98ed 29811 "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 29812 },
44660702
DM
29813 "node" : {
29814 "description" : "The cluster node name.",
29815 "format" : "pve-node",
013dc89f
DM
29816 "type" : "string",
29817 "typetext" : "<string>"
56122987 29818 },
44660702
DM
29819 "onboot" : {
29820 "default" : 0,
4e7f60c2 29821 "description" : "Specifies whether a container will be started during system bootup.",
56122987 29822 "optional" : 1,
013dc89f
DM
29823 "type" : "boolean",
29824 "typetext" : "<boolean>"
56122987 29825 },
44660702
DM
29826 "ostype" : {
29827 "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.",
29828 "enum" : [
29829 "debian",
d2656385 29830 "devuan",
44660702
DM
29831 "ubuntu",
29832 "centos",
29833 "fedora",
29834 "opensuse",
29835 "archlinux",
29836 "alpine",
57b78691 29837 "gentoo",
7af2edf9 29838 "nixos",
44660702
DM
29839 "unmanaged"
29840 ],
56122987 29841 "optional" : 1,
44660702 29842 "type" : "string"
56122987 29843 },
44660702
DM
29844 "protection" : {
29845 "default" : 0,
29846 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
56122987 29847 "optional" : 1,
013dc89f
DM
29848 "type" : "boolean",
29849 "typetext" : "<boolean>"
56122987 29850 },
1c532546
TL
29851 "revert" : {
29852 "description" : "Revert a pending change.",
29853 "format" : "pve-configid-list",
29854 "optional" : 1,
29855 "type" : "string",
29856 "typetext" : "<string>"
29857 },
7aacca6f
DM
29858 "rootfs" : {
29859 "description" : "Use volume as container root.",
56122987
DM
29860 "format" : {
29861 "acl" : {
44660702 29862 "description" : "Explicitly enable or disable ACL support.",
7aacca6f
DM
29863 "optional" : 1,
29864 "type" : "boolean"
56122987 29865 },
7cbed89a
TL
29866 "mountoptions" : {
29867 "description" : "Extra mount options for rootfs/mps.",
29868 "format_description" : "opt[;opt...]",
29869 "optional" : 1,
c30bb419 29870 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
29871 "type" : "string"
29872 },
44660702
DM
29873 "quota" : {
29874 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
44660702
DM
29875 "optional" : 1,
29876 "type" : "boolean"
29877 },
5d9c884c
DM
29878 "replicate" : {
29879 "default" : 1,
29880 "description" : "Will include this volume to a storage replica job.",
29881 "optional" : 1,
29882 "type" : "boolean"
29883 },
44660702 29884 "ro" : {
de0983cb 29885 "description" : "Read-only mount point",
56122987 29886 "optional" : 1,
44660702
DM
29887 "type" : "boolean"
29888 },
de0983cb
DM
29889 "shared" : {
29890 "default" : 0,
29891 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
29892 "optional" : 1,
29893 "type" : "boolean",
29894 "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!"
29895 },
44660702 29896 "size" : {
7aacca6f 29897 "description" : "Volume size (read only value).",
44660702 29898 "format" : "disk-size",
56122987 29899 "format_description" : "DiskSize",
56122987 29900 "optional" : 1,
44660702 29901 "type" : "string"
7aacca6f
DM
29902 },
29903 "volume" : {
7aacca6f
DM
29904 "default_key" : 1,
29905 "description" : "Volume, device or directory to mount into the container.",
44660702
DM
29906 "format" : "pve-lxc-mp-string",
29907 "format_description" : "volume",
7aacca6f 29908 "type" : "string"
56122987 29909 }
44660702
DM
29910 },
29911 "optional" : 1,
4bd7df8b 29912 "type" : "string",
7cbed89a 29913 "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
29914 },
29915 "searchdomain" : {
29916 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
29917 "format" : "dns-name-list",
29918 "optional" : 1,
013dc89f
DM
29919 "type" : "string",
29920 "typetext" : "<string>"
44660702
DM
29921 },
29922 "startup" : {
29923 "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.",
29924 "format" : "pve-startup-order",
29925 "optional" : 1,
29926 "type" : "string",
29927 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
29928 },
29929 "swap" : {
29930 "default" : 512,
4e7f60c2 29931 "description" : "Amount of SWAP for the container in MB.",
44660702
DM
29932 "minimum" : 0,
29933 "optional" : 1,
4bd7df8b 29934 "type" : "integer",
013dc89f 29935 "typetext" : "<integer> (0 - N)"
56122987 29936 },
5c1699e5
TL
29937 "tags" : {
29938 "description" : "Tags of the Container. This is only meta information.",
29939 "format" : "pve-tag-list",
29940 "optional" : 1,
29941 "type" : "string",
29942 "typetext" : "<string>"
29943 },
56122987 29944 "template" : {
44660702 29945 "default" : 0,
7aacca6f 29946 "description" : "Enable/disable Template.",
56122987 29947 "optional" : 1,
013dc89f
DM
29948 "type" : "boolean",
29949 "typetext" : "<boolean>"
56122987 29950 },
04d22a9f
TL
29951 "timezone" : {
29952 "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",
29953 "format" : "pve-ct-timezone",
29954 "optional" : 1,
29955 "type" : "string",
29956 "typetext" : "<string>"
29957 },
44660702
DM
29958 "tty" : {
29959 "default" : 2,
29960 "description" : "Specify the number of tty available to the container",
29961 "maximum" : 6,
29962 "minimum" : 0,
29963 "optional" : 1,
4bd7df8b 29964 "type" : "integer",
013dc89f 29965 "typetext" : "<integer> (0 - 6)"
56122987 29966 },
44660702
DM
29967 "unprivileged" : {
29968 "default" : 0,
29969 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
56122987 29970 "optional" : 1,
013dc89f
DM
29971 "type" : "boolean",
29972 "typetext" : "<boolean>"
56122987 29973 },
44660702 29974 "unused[n]" : {
c2993fe5 29975 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
29976 "format" : {
29977 "volume" : {
29978 "default_key" : 1,
29979 "description" : "The volume that is not used currently.",
29980 "format" : "pve-volume-id",
29981 "format_description" : "volume",
29982 "type" : "string"
29983 }
29984 },
56122987 29985 "optional" : 1,
013dc89f 29986 "type" : "string",
c5aa7e14 29987 "typetext" : "[volume=]<volume>"
44660702
DM
29988 },
29989 "vmid" : {
29990 "description" : "The (unique) ID of the VM.",
29991 "format" : "pve-vmid",
8dd66e12
TL
29992 "maximum" : 999999999,
29993 "minimum" : 100,
4bd7df8b 29994 "type" : "integer",
8dd66e12 29995 "typetext" : "<integer> (100 - 999999999)"
56122987 29996 }
44660702 29997 }
56122987 29998 },
56122987
DM
29999 "permissions" : {
30000 "check" : [
30001 "perm",
30002 "/vms/{vmid}",
30003 [
30004 "VM.Config.Disk",
30005 "VM.Config.CPU",
30006 "VM.Config.Memory",
30007 "VM.Config.Network",
30008 "VM.Config.Options"
30009 ],
30010 "any",
30011 1
52e44c50
FG
30012 ],
30013 "description" : "non-volume mount points in rootfs and mp[n] are restricted to root@pam"
56122987 30014 },
44660702
DM
30015 "protected" : 1,
30016 "proxyto" : "node",
56122987
DM
30017 "returns" : {
30018 "type" : "null"
7aacca6f 30019 }
56122987 30020 }
7aacca6f 30021 },
44660702 30022 "leaf" : 1,
7aacca6f 30023 "path" : "/nodes/{node}/lxc/{vmid}/config",
44660702 30024 "text" : "config"
56122987
DM
30025 },
30026 {
56122987
DM
30027 "children" : [
30028 {
30029 "info" : {
30030 "GET" : {
e9cd3bd4 30031 "allowtoken" : 1,
44660702 30032 "description" : "Get virtual machine status.",
7aacca6f 30033 "method" : "GET",
44660702 30034 "name" : "vm_status",
56122987 30035 "parameters" : {
44660702 30036 "additionalProperties" : 0,
56122987 30037 "properties" : {
56122987 30038 "node" : {
44660702 30039 "description" : "The cluster node name.",
56122987 30040 "format" : "pve-node",
013dc89f
DM
30041 "type" : "string",
30042 "typetext" : "<string>"
7aacca6f
DM
30043 },
30044 "vmid" : {
30045 "description" : "The (unique) ID of the VM.",
44660702 30046 "format" : "pve-vmid",
8dd66e12
TL
30047 "maximum" : 999999999,
30048 "minimum" : 100,
4bd7df8b 30049 "type" : "integer",
8dd66e12 30050 "typetext" : "<integer> (100 - 999999999)"
56122987 30051 }
44660702 30052 }
7aacca6f
DM
30053 },
30054 "permissions" : {
30055 "check" : [
30056 "perm",
30057 "/vms/{vmid}",
30058 [
4d47f125
TL
30059 "VM.Audit"
30060 ]
30061 ]
30062 },
30063 "protected" : 1,
30064 "proxyto" : "node",
30065 "returns" : {
30066 "properties" : {
30067 "cpus" : {
30068 "description" : "Maximum usable CPUs.",
30069 "optional" : 1,
30070 "type" : "number"
30071 },
30072 "ha" : {
30073 "description" : "HA manager service status.",
30074 "type" : "object"
30075 },
95895385
TL
30076 "lock" : {
30077 "description" : "The current config lock, if any.",
30078 "optional" : 1,
30079 "type" : "string"
30080 },
4d47f125
TL
30081 "maxdisk" : {
30082 "description" : "Root disk size in bytes.",
30083 "optional" : 1,
30084 "renderer" : "bytes",
30085 "type" : "integer"
30086 },
30087 "maxmem" : {
30088 "description" : "Maximum memory in bytes.",
30089 "optional" : 1,
30090 "renderer" : "bytes",
30091 "type" : "integer"
30092 },
30093 "maxswap" : {
30094 "description" : "Maximum SWAP memory in bytes.",
30095 "optional" : 1,
30096 "renderer" : "bytes",
30097 "type" : "integer"
30098 },
30099 "name" : {
30100 "description" : "Container name.",
30101 "optional" : 1,
30102 "type" : "string"
30103 },
30104 "status" : {
30105 "description" : "LXC Container status.",
30106 "enum" : [
30107 "stopped",
30108 "running"
30109 ],
30110 "type" : "string"
30111 },
5c1699e5
TL
30112 "tags" : {
30113 "description" : "The current configured tags, if any.",
30114 "optional" : 1,
30115 "type" : "string"
30116 },
4d47f125
TL
30117 "uptime" : {
30118 "description" : "Uptime.",
30119 "optional" : 1,
30120 "renderer" : "duration",
30121 "type" : "integer"
30122 },
30123 "vmid" : {
30124 "description" : "The (unique) ID of the VM.",
30125 "format" : "pve-vmid",
8dd66e12
TL
30126 "maximum" : 999999999,
30127 "minimum" : 100,
4d47f125
TL
30128 "type" : "integer"
30129 }
30130 },
30131 "type" : "object"
30132 }
30133 }
30134 },
30135 "leaf" : 1,
30136 "path" : "/nodes/{node}/lxc/{vmid}/status/current",
30137 "text" : "current"
30138 },
30139 {
30140 "info" : {
30141 "POST" : {
e9cd3bd4 30142 "allowtoken" : 1,
4d47f125
TL
30143 "description" : "Start the container.",
30144 "method" : "POST",
30145 "name" : "vm_start",
30146 "parameters" : {
30147 "additionalProperties" : 0,
30148 "properties" : {
739d4d64
TL
30149 "debug" : {
30150 "default" : 0,
30151 "description" : "If set, enables very verbose debug log-level on start.",
30152 "optional" : 1,
30153 "type" : "boolean",
30154 "typetext" : "<boolean>"
30155 },
4d47f125
TL
30156 "node" : {
30157 "description" : "The cluster node name.",
30158 "format" : "pve-node",
30159 "type" : "string",
30160 "typetext" : "<string>"
30161 },
30162 "skiplock" : {
30163 "description" : "Ignore locks - only root is allowed to use this option.",
30164 "optional" : 1,
30165 "type" : "boolean",
30166 "typetext" : "<boolean>"
30167 },
30168 "vmid" : {
30169 "description" : "The (unique) ID of the VM.",
30170 "format" : "pve-vmid",
8dd66e12
TL
30171 "maximum" : 999999999,
30172 "minimum" : 100,
4d47f125 30173 "type" : "integer",
8dd66e12 30174 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30175 }
30176 }
30177 },
30178 "permissions" : {
30179 "check" : [
30180 "perm",
30181 "/vms/{vmid}",
30182 [
30183 "VM.PowerMgmt"
30184 ]
30185 ]
30186 },
30187 "protected" : 1,
30188 "proxyto" : "node",
30189 "returns" : {
30190 "type" : "string"
30191 }
30192 }
30193 },
30194 "leaf" : 1,
30195 "path" : "/nodes/{node}/lxc/{vmid}/status/start",
30196 "text" : "start"
30197 },
30198 {
30199 "info" : {
30200 "POST" : {
e9cd3bd4 30201 "allowtoken" : 1,
4d47f125
TL
30202 "description" : "Stop the container. This will abruptly stop all processes running in the container.",
30203 "method" : "POST",
30204 "name" : "vm_stop",
30205 "parameters" : {
30206 "additionalProperties" : 0,
30207 "properties" : {
30208 "node" : {
30209 "description" : "The cluster node name.",
30210 "format" : "pve-node",
30211 "type" : "string",
30212 "typetext" : "<string>"
30213 },
30214 "skiplock" : {
30215 "description" : "Ignore locks - only root is allowed to use this option.",
30216 "optional" : 1,
30217 "type" : "boolean",
30218 "typetext" : "<boolean>"
30219 },
30220 "vmid" : {
30221 "description" : "The (unique) ID of the VM.",
30222 "format" : "pve-vmid",
8dd66e12
TL
30223 "maximum" : 999999999,
30224 "minimum" : 100,
4d47f125 30225 "type" : "integer",
8dd66e12 30226 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30227 }
30228 }
30229 },
30230 "permissions" : {
30231 "check" : [
30232 "perm",
30233 "/vms/{vmid}",
30234 [
30235 "VM.PowerMgmt"
30236 ]
30237 ]
30238 },
30239 "protected" : 1,
30240 "proxyto" : "node",
30241 "returns" : {
30242 "type" : "string"
30243 }
30244 }
30245 },
30246 "leaf" : 1,
30247 "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
30248 "text" : "stop"
30249 },
30250 {
30251 "info" : {
30252 "POST" : {
e9cd3bd4 30253 "allowtoken" : 1,
4d47f125
TL
30254 "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
30255 "method" : "POST",
30256 "name" : "vm_shutdown",
30257 "parameters" : {
30258 "additionalProperties" : 0,
30259 "properties" : {
30260 "forceStop" : {
30261 "default" : 0,
30262 "description" : "Make sure the Container stops.",
30263 "optional" : 1,
30264 "type" : "boolean",
30265 "typetext" : "<boolean>"
30266 },
30267 "node" : {
30268 "description" : "The cluster node name.",
30269 "format" : "pve-node",
30270 "type" : "string",
30271 "typetext" : "<string>"
30272 },
30273 "timeout" : {
30274 "default" : 60,
30275 "description" : "Wait maximal timeout seconds.",
30276 "minimum" : 0,
30277 "optional" : 1,
30278 "type" : "integer",
30279 "typetext" : "<integer> (0 - N)"
30280 },
30281 "vmid" : {
30282 "description" : "The (unique) ID of the VM.",
30283 "format" : "pve-vmid",
8dd66e12
TL
30284 "maximum" : 999999999,
30285 "minimum" : 100,
4d47f125 30286 "type" : "integer",
8dd66e12 30287 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30288 }
30289 }
30290 },
30291 "permissions" : {
30292 "check" : [
30293 "perm",
30294 "/vms/{vmid}",
30295 [
30296 "VM.PowerMgmt"
7aacca6f
DM
30297 ]
30298 ]
30299 },
44660702 30300 "protected" : 1,
7aacca6f 30301 "proxyto" : "node",
44660702 30302 "returns" : {
4d47f125 30303 "type" : "string"
44660702 30304 }
56122987
DM
30305 }
30306 },
44660702 30307 "leaf" : 1,
4d47f125
TL
30308 "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
30309 "text" : "shutdown"
56122987
DM
30310 },
30311 {
56122987
DM
30312 "info" : {
30313 "POST" : {
e9cd3bd4 30314 "allowtoken" : 1,
5370fa8c 30315 "description" : "Suspend the container. This is experimental.",
44660702 30316 "method" : "POST",
4d47f125 30317 "name" : "vm_suspend",
56122987
DM
30318 "parameters" : {
30319 "additionalProperties" : 0,
30320 "properties" : {
56122987 30321 "node" : {
7aacca6f 30322 "description" : "The cluster node name.",
44660702 30323 "format" : "pve-node",
013dc89f
DM
30324 "type" : "string",
30325 "typetext" : "<string>"
56122987
DM
30326 },
30327 "vmid" : {
7aacca6f 30328 "description" : "The (unique) ID of the VM.",
44660702 30329 "format" : "pve-vmid",
8dd66e12
TL
30330 "maximum" : 999999999,
30331 "minimum" : 100,
4bd7df8b 30332 "type" : "integer",
8dd66e12 30333 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
30334 }
30335 }
30336 },
30337 "permissions" : {
30338 "check" : [
30339 "perm",
30340 "/vms/{vmid}",
30341 [
30342 "VM.PowerMgmt"
30343 ]
30344 ]
30345 },
44660702 30346 "protected" : 1,
7aacca6f 30347 "proxyto" : "node",
44660702
DM
30348 "returns" : {
30349 "type" : "string"
30350 }
30351 }
30352 },
30353 "leaf" : 1,
4d47f125
TL
30354 "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
30355 "text" : "suspend"
44660702
DM
30356 },
30357 {
30358 "info" : {
30359 "POST" : {
e9cd3bd4 30360 "allowtoken" : 1,
4d47f125 30361 "description" : "Resume the container.",
7aacca6f 30362 "method" : "POST",
4d47f125 30363 "name" : "vm_resume",
7aacca6f 30364 "parameters" : {
44660702 30365 "additionalProperties" : 0,
7aacca6f 30366 "properties" : {
44660702
DM
30367 "node" : {
30368 "description" : "The cluster node name.",
30369 "format" : "pve-node",
013dc89f
DM
30370 "type" : "string",
30371 "typetext" : "<string>"
44660702 30372 },
7aacca6f 30373 "vmid" : {
44660702 30374 "description" : "The (unique) ID of the VM.",
7aacca6f 30375 "format" : "pve-vmid",
8dd66e12
TL
30376 "maximum" : 999999999,
30377 "minimum" : 100,
4bd7df8b 30378 "type" : "integer",
8dd66e12 30379 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 30380 }
44660702
DM
30381 }
30382 },
30383 "permissions" : {
30384 "check" : [
30385 "perm",
30386 "/vms/{vmid}",
30387 [
30388 "VM.PowerMgmt"
30389 ]
30390 ]
7aacca6f 30391 },
44660702
DM
30392 "protected" : 1,
30393 "proxyto" : "node",
30394 "returns" : {
30395 "type" : "string"
30396 }
56122987 30397 }
7aacca6f 30398 },
7aacca6f 30399 "leaf" : 1,
4d47f125
TL
30400 "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
30401 "text" : "resume"
5c1699e5
TL
30402 },
30403 {
30404 "info" : {
30405 "POST" : {
e9cd3bd4 30406 "allowtoken" : 1,
5c1699e5
TL
30407 "description" : "Reboot the container by shutting it down, and starting it again. Applies pending changes.",
30408 "method" : "POST",
30409 "name" : "vm_reboot",
30410 "parameters" : {
30411 "additionalProperties" : 0,
30412 "properties" : {
30413 "node" : {
30414 "description" : "The cluster node name.",
30415 "format" : "pve-node",
30416 "type" : "string",
30417 "typetext" : "<string>"
30418 },
30419 "timeout" : {
30420 "description" : "Wait maximal timeout seconds for the shutdown.",
30421 "minimum" : 0,
30422 "optional" : 1,
30423 "type" : "integer",
30424 "typetext" : "<integer> (0 - N)"
30425 },
30426 "vmid" : {
30427 "description" : "The (unique) ID of the VM.",
30428 "format" : "pve-vmid",
8dd66e12
TL
30429 "maximum" : 999999999,
30430 "minimum" : 100,
5c1699e5 30431 "type" : "integer",
8dd66e12 30432 "typetext" : "<integer> (100 - 999999999)"
5c1699e5
TL
30433 }
30434 }
30435 },
30436 "permissions" : {
30437 "check" : [
30438 "perm",
30439 "/vms/{vmid}",
30440 [
30441 "VM.PowerMgmt"
30442 ]
30443 ]
30444 },
30445 "protected" : 1,
30446 "proxyto" : "node",
30447 "returns" : {
30448 "type" : "string"
30449 }
30450 }
30451 },
30452 "leaf" : 1,
30453 "path" : "/nodes/{node}/lxc/{vmid}/status/reboot",
30454 "text" : "reboot"
4d47f125
TL
30455 }
30456 ],
30457 "info" : {
30458 "GET" : {
e9cd3bd4 30459 "allowtoken" : 1,
4d47f125
TL
30460 "description" : "Directory index",
30461 "method" : "GET",
30462 "name" : "vmcmdidx",
30463 "parameters" : {
30464 "additionalProperties" : 0,
30465 "properties" : {
30466 "node" : {
30467 "description" : "The cluster node name.",
30468 "format" : "pve-node",
30469 "type" : "string",
30470 "typetext" : "<string>"
30471 },
30472 "vmid" : {
30473 "description" : "The (unique) ID of the VM.",
30474 "format" : "pve-vmid",
8dd66e12
TL
30475 "maximum" : 999999999,
30476 "minimum" : 100,
4d47f125 30477 "type" : "integer",
8dd66e12 30478 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30479 }
30480 }
30481 },
30482 "permissions" : {
30483 "user" : "all"
30484 },
30485 "proxyto" : "node",
30486 "returns" : {
30487 "items" : {
30488 "properties" : {
30489 "subdir" : {
30490 "type" : "string"
30491 }
30492 },
30493 "type" : "object"
30494 },
30495 "links" : [
30496 {
30497 "href" : "{subdir}",
30498 "rel" : "child"
30499 }
30500 ],
30501 "type" : "array"
30502 }
30503 }
30504 },
30505 "leaf" : 0,
30506 "path" : "/nodes/{node}/lxc/{vmid}/status",
30507 "text" : "status"
30508 },
30509 {
30510 "children" : [
56122987 30511 {
4d47f125
TL
30512 "children" : [
30513 {
30514 "info" : {
30515 "POST" : {
e9cd3bd4 30516 "allowtoken" : 1,
4d47f125
TL
30517 "description" : "Rollback LXC state to specified snapshot.",
30518 "method" : "POST",
30519 "name" : "rollback",
30520 "parameters" : {
30521 "additionalProperties" : 0,
30522 "properties" : {
30523 "node" : {
30524 "description" : "The cluster node name.",
30525 "format" : "pve-node",
30526 "type" : "string",
30527 "typetext" : "<string>"
30528 },
30529 "snapname" : {
30530 "description" : "The name of the snapshot.",
30531 "format" : "pve-configid",
30532 "maxLength" : 40,
30533 "type" : "string",
30534 "typetext" : "<string>"
30535 },
4e7f60c2
TL
30536 "start" : {
30537 "default" : 0,
30538 "description" : "Whether the container should get started after rolling back successfully",
30539 "optional" : 1,
30540 "type" : "boolean",
30541 "typetext" : "<boolean>"
30542 },
4d47f125
TL
30543 "vmid" : {
30544 "description" : "The (unique) ID of the VM.",
30545 "format" : "pve-vmid",
8dd66e12
TL
30546 "maximum" : 999999999,
30547 "minimum" : 100,
4d47f125 30548 "type" : "integer",
8dd66e12 30549 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30550 }
30551 }
30552 },
30553 "permissions" : {
30554 "check" : [
30555 "perm",
30556 "/vms/{vmid}",
30557 [
30558 "VM.Snapshot",
30559 "VM.Snapshot.Rollback"
30560 ],
30561 "any",
30562 1
30563 ]
30564 },
30565 "protected" : 1,
30566 "proxyto" : "node",
30567 "returns" : {
30568 "description" : "the task ID.",
30569 "type" : "string"
30570 }
30571 }
30572 },
30573 "leaf" : 1,
30574 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
30575 "text" : "rollback"
30576 },
30577 {
30578 "info" : {
30579 "GET" : {
e9cd3bd4 30580 "allowtoken" : 1,
4d47f125
TL
30581 "description" : "Get snapshot configuration",
30582 "method" : "GET",
30583 "name" : "get_snapshot_config",
30584 "parameters" : {
30585 "additionalProperties" : 0,
30586 "properties" : {
30587 "node" : {
30588 "description" : "The cluster node name.",
30589 "format" : "pve-node",
30590 "type" : "string",
30591 "typetext" : "<string>"
30592 },
30593 "snapname" : {
30594 "description" : "The name of the snapshot.",
30595 "format" : "pve-configid",
30596 "maxLength" : 40,
30597 "type" : "string",
30598 "typetext" : "<string>"
30599 },
30600 "vmid" : {
30601 "description" : "The (unique) ID of the VM.",
30602 "format" : "pve-vmid",
8dd66e12
TL
30603 "maximum" : 999999999,
30604 "minimum" : 100,
4d47f125 30605 "type" : "integer",
8dd66e12 30606 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30607 }
30608 }
30609 },
30610 "permissions" : {
30611 "check" : [
30612 "perm",
30613 "/vms/{vmid}",
30614 [
30615 "VM.Snapshot",
c5aa7e14
TL
30616 "VM.Snapshot.Rollback",
30617 "VM.Audit"
4d47f125
TL
30618 ],
30619 "any",
30620 1
30621 ]
30622 },
30623 "proxyto" : "node",
30624 "returns" : {
30625 "type" : "object"
30626 }
30627 },
30628 "PUT" : {
e9cd3bd4 30629 "allowtoken" : 1,
4d47f125
TL
30630 "description" : "Update snapshot metadata.",
30631 "method" : "PUT",
30632 "name" : "update_snapshot_config",
30633 "parameters" : {
30634 "additionalProperties" : 0,
30635 "properties" : {
30636 "description" : {
30637 "description" : "A textual description or comment.",
30638 "optional" : 1,
30639 "type" : "string",
30640 "typetext" : "<string>"
30641 },
30642 "node" : {
30643 "description" : "The cluster node name.",
30644 "format" : "pve-node",
30645 "type" : "string",
30646 "typetext" : "<string>"
30647 },
30648 "snapname" : {
30649 "description" : "The name of the snapshot.",
30650 "format" : "pve-configid",
30651 "maxLength" : 40,
30652 "type" : "string",
30653 "typetext" : "<string>"
30654 },
30655 "vmid" : {
30656 "description" : "The (unique) ID of the VM.",
30657 "format" : "pve-vmid",
8dd66e12
TL
30658 "maximum" : 999999999,
30659 "minimum" : 100,
4d47f125 30660 "type" : "integer",
8dd66e12 30661 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30662 }
30663 }
30664 },
30665 "permissions" : {
30666 "check" : [
30667 "perm",
30668 "/vms/{vmid}",
30669 [
30670 "VM.Snapshot"
30671 ]
30672 ]
30673 },
30674 "protected" : 1,
30675 "proxyto" : "node",
30676 "returns" : {
30677 "type" : "null"
30678 }
30679 }
30680 },
30681 "leaf" : 1,
30682 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
30683 "text" : "config"
30684 }
30685 ],
56122987 30686 "info" : {
4d47f125 30687 "DELETE" : {
e9cd3bd4 30688 "allowtoken" : 1,
4d47f125
TL
30689 "description" : "Delete a LXC snapshot.",
30690 "method" : "DELETE",
30691 "name" : "delsnapshot",
56122987 30692 "parameters" : {
44660702 30693 "additionalProperties" : 0,
56122987 30694 "properties" : {
4d47f125
TL
30695 "force" : {
30696 "description" : "For removal from config file, even if removing disk snapshots fails.",
7aacca6f 30697 "optional" : 1,
013dc89f
DM
30698 "type" : "boolean",
30699 "typetext" : "<boolean>"
44660702
DM
30700 },
30701 "node" : {
30702 "description" : "The cluster node name.",
30703 "format" : "pve-node",
013dc89f
DM
30704 "type" : "string",
30705 "typetext" : "<string>"
7aacca6f 30706 },
4d47f125
TL
30707 "snapname" : {
30708 "description" : "The name of the snapshot.",
30709 "format" : "pve-configid",
30710 "maxLength" : 40,
30711 "type" : "string",
30712 "typetext" : "<string>"
56122987
DM
30713 },
30714 "vmid" : {
7aacca6f 30715 "description" : "The (unique) ID of the VM.",
44660702 30716 "format" : "pve-vmid",
8dd66e12
TL
30717 "maximum" : 999999999,
30718 "minimum" : 100,
4bd7df8b 30719 "type" : "integer",
8dd66e12 30720 "typetext" : "<integer> (100 - 999999999)"
56122987 30721 }
44660702 30722 }
56122987
DM
30723 },
30724 "permissions" : {
30725 "check" : [
30726 "perm",
30727 "/vms/{vmid}",
30728 [
4d47f125 30729 "VM.Snapshot"
56122987
DM
30730 ]
30731 ]
30732 },
44660702
DM
30733 "protected" : 1,
30734 "proxyto" : "node",
7aacca6f 30735 "returns" : {
4d47f125 30736 "description" : "the task ID.",
7aacca6f
DM
30737 "type" : "string"
30738 }
4d47f125
TL
30739 },
30740 "GET" : {
e9cd3bd4 30741 "allowtoken" : 1,
4d47f125
TL
30742 "description" : "",
30743 "method" : "GET",
30744 "name" : "snapshot_cmd_idx",
56122987
DM
30745 "parameters" : {
30746 "additionalProperties" : 0,
30747 "properties" : {
44660702
DM
30748 "node" : {
30749 "description" : "The cluster node name.",
30750 "format" : "pve-node",
013dc89f
DM
30751 "type" : "string",
30752 "typetext" : "<string>"
44660702 30753 },
4d47f125
TL
30754 "snapname" : {
30755 "description" : "The name of the snapshot.",
30756 "format" : "pve-configid",
30757 "maxLength" : 40,
013dc89f
DM
30758 "type" : "string",
30759 "typetext" : "<string>"
56122987
DM
30760 },
30761 "vmid" : {
7aacca6f 30762 "description" : "The (unique) ID of the VM.",
56122987 30763 "format" : "pve-vmid",
8dd66e12
TL
30764 "maximum" : 999999999,
30765 "minimum" : 100,
4bd7df8b 30766 "type" : "integer",
8dd66e12 30767 "typetext" : "<integer> (100 - 999999999)"
56122987 30768 }
44660702
DM
30769 }
30770 },
30771 "permissions" : {
4d47f125 30772 "user" : "all"
56122987 30773 },
44660702 30774 "returns" : {
4d47f125
TL
30775 "items" : {
30776 "properties" : {},
30777 "type" : "object"
30778 },
30779 "links" : [
30780 {
30781 "href" : "{cmd}",
30782 "rel" : "child"
30783 }
30784 ],
30785 "type" : "array"
44660702 30786 }
7aacca6f
DM
30787 }
30788 },
4d47f125
TL
30789 "leaf" : 0,
30790 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
30791 "text" : "{snapname}"
7aacca6f
DM
30792 }
30793 ],
30794 "info" : {
30795 "GET" : {
e9cd3bd4 30796 "allowtoken" : 1,
4d47f125 30797 "description" : "List all snapshots.",
44660702 30798 "method" : "GET",
4d47f125 30799 "name" : "list",
7aacca6f
DM
30800 "parameters" : {
30801 "additionalProperties" : 0,
30802 "properties" : {
30803 "node" : {
30804 "description" : "The cluster node name.",
44660702 30805 "format" : "pve-node",
013dc89f
DM
30806 "type" : "string",
30807 "typetext" : "<string>"
56122987 30808 },
7aacca6f 30809 "vmid" : {
44660702 30810 "description" : "The (unique) ID of the VM.",
7aacca6f 30811 "format" : "pve-vmid",
8dd66e12
TL
30812 "maximum" : 999999999,
30813 "minimum" : 100,
4bd7df8b 30814 "type" : "integer",
8dd66e12 30815 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 30816 }
56122987
DM
30817 }
30818 },
44660702 30819 "permissions" : {
4d47f125
TL
30820 "check" : [
30821 "perm",
30822 "/vms/{vmid}",
30823 [
30824 "VM.Audit"
30825 ]
30826 ]
44660702 30827 },
4d47f125 30828 "protected" : 1,
44660702 30829 "proxyto" : "node",
7aacca6f 30830 "returns" : {
7aacca6f
DM
30831 "items" : {
30832 "properties" : {
4d47f125
TL
30833 "description" : {
30834 "description" : "Snapshot description.",
7aacca6f 30835 "type" : "string"
4d47f125
TL
30836 },
30837 "name" : {
30838 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
30839 "type" : "string"
30840 },
30841 "parent" : {
30842 "description" : "Parent snapshot identifier.",
30843 "optional" : 1,
30844 "type" : "string"
30845 },
30846 "snaptime" : {
30847 "description" : "Snapshot creation time",
30848 "optional" : 1,
30849 "renderer" : "timestamp",
30850 "type" : "integer"
7aacca6f
DM
30851 }
30852 },
30853 "type" : "object"
30854 },
30855 "links" : [
30856 {
4d47f125 30857 "href" : "{name}",
44660702 30858 "rel" : "child"
7aacca6f 30859 }
44660702
DM
30860 ],
30861 "type" : "array"
7aacca6f 30862 }
4d47f125
TL
30863 },
30864 "POST" : {
e9cd3bd4 30865 "allowtoken" : 1,
4d47f125
TL
30866 "description" : "Snapshot a container.",
30867 "method" : "POST",
30868 "name" : "snapshot",
30869 "parameters" : {
30870 "additionalProperties" : 0,
30871 "properties" : {
30872 "description" : {
30873 "description" : "A textual description or comment.",
30874 "optional" : 1,
30875 "type" : "string",
30876 "typetext" : "<string>"
30877 },
30878 "node" : {
30879 "description" : "The cluster node name.",
30880 "format" : "pve-node",
30881 "type" : "string",
30882 "typetext" : "<string>"
30883 },
30884 "snapname" : {
30885 "description" : "The name of the snapshot.",
30886 "format" : "pve-configid",
30887 "maxLength" : 40,
30888 "type" : "string",
30889 "typetext" : "<string>"
30890 },
30891 "vmid" : {
30892 "description" : "The (unique) ID of the VM.",
30893 "format" : "pve-vmid",
8dd66e12
TL
30894 "maximum" : 999999999,
30895 "minimum" : 100,
4d47f125 30896 "type" : "integer",
8dd66e12 30897 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
30898 }
30899 }
30900 },
30901 "permissions" : {
30902 "check" : [
30903 "perm",
30904 "/vms/{vmid}",
30905 [
30906 "VM.Snapshot"
30907 ]
30908 ]
30909 },
30910 "protected" : 1,
30911 "proxyto" : "node",
30912 "returns" : {
30913 "description" : "the task ID.",
30914 "type" : "string"
30915 }
7aacca6f 30916 }
44660702
DM
30917 },
30918 "leaf" : 0,
4d47f125
TL
30919 "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
30920 "text" : "snapshot"
7aacca6f
DM
30921 },
30922 {
7aacca6f 30923 "children" : [
56122987 30924 {
7aacca6f
DM
30925 "children" : [
30926 {
30927 "info" : {
4d47f125 30928 "DELETE" : {
e9cd3bd4 30929 "allowtoken" : 1,
4d47f125
TL
30930 "description" : "Delete rule.",
30931 "method" : "DELETE",
30932 "name" : "delete_rule",
7aacca6f 30933 "parameters" : {
44660702 30934 "additionalProperties" : 0,
7aacca6f 30935 "properties" : {
4d47f125 30936 "digest" : {
82551b2b
TL
30937 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
30938 "maxLength" : 64,
4d47f125
TL
30939 "optional" : 1,
30940 "type" : "string",
30941 "typetext" : "<string>"
30942 },
44660702
DM
30943 "node" : {
30944 "description" : "The cluster node name.",
30945 "format" : "pve-node",
013dc89f
DM
30946 "type" : "string",
30947 "typetext" : "<string>"
44660702 30948 },
4d47f125
TL
30949 "pos" : {
30950 "description" : "Update rule at position <pos>.",
30951 "minimum" : 0,
30952 "optional" : 1,
30953 "type" : "integer",
30954 "typetext" : "<integer> (0 - N)"
7aacca6f 30955 },
7aacca6f 30956 "vmid" : {
44660702 30957 "description" : "The (unique) ID of the VM.",
7aacca6f 30958 "format" : "pve-vmid",
8dd66e12
TL
30959 "maximum" : 999999999,
30960 "minimum" : 100,
4bd7df8b 30961 "type" : "integer",
8dd66e12 30962 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 30963 }
44660702
DM
30964 }
30965 },
30966 "permissions" : {
30967 "check" : [
30968 "perm",
30969 "/vms/{vmid}",
30970 [
4d47f125
TL
30971 "VM.Config.Network"
30972 ]
44660702 30973 ]
7aacca6f 30974 },
44660702 30975 "protected" : 1,
4d47f125 30976 "proxyto" : null,
44660702 30977 "returns" : {
4d47f125 30978 "type" : "null"
44660702 30979 }
4d47f125 30980 },
7aacca6f 30981 "GET" : {
e9cd3bd4 30982 "allowtoken" : 1,
4d47f125 30983 "description" : "Get single rule data.",
44660702 30984 "method" : "GET",
4d47f125 30985 "name" : "get_rule",
7aacca6f
DM
30986 "parameters" : {
30987 "additionalProperties" : 0,
4d47f125
TL
30988 "properties" : {
30989 "node" : {
30990 "description" : "The cluster node name.",
30991 "format" : "pve-node",
013dc89f
DM
30992 "type" : "string",
30993 "typetext" : "<string>"
44660702 30994 },
4d47f125
TL
30995 "pos" : {
30996 "description" : "Update rule at position <pos>.",
30997 "minimum" : 0,
30998 "optional" : 1,
30999 "type" : "integer",
31000 "typetext" : "<integer> (0 - N)"
31001 },
44660702
DM
31002 "vmid" : {
31003 "description" : "The (unique) ID of the VM.",
31004 "format" : "pve-vmid",
8dd66e12
TL
31005 "maximum" : 999999999,
31006 "minimum" : 100,
4bd7df8b 31007 "type" : "integer",
8dd66e12 31008 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
31009 }
31010 }
31011 },
31012 "permissions" : {
31013 "check" : [
31014 "perm",
31015 "/vms/{vmid}",
31016 [
4d47f125
TL
31017 "VM.Audit"
31018 ]
7aacca6f
DM
31019 ]
31020 },
4d47f125 31021 "proxyto" : null,
44660702 31022 "returns" : {
4d47f125 31023 "properties" : {
e2d681b3
TL
31024 "action" : {
31025 "type" : "string"
31026 },
31027 "comment" : {
31028 "optional" : 1,
31029 "type" : "string"
31030 },
31031 "dest" : {
31032 "optional" : 1,
31033 "type" : "string"
31034 },
31035 "dport" : {
31036 "optional" : 1,
31037 "type" : "string"
31038 },
31039 "enable" : {
31040 "optional" : 1,
31041 "type" : "integer"
31042 },
4772952b
TL
31043 "icmp-type" : {
31044 "optional" : 1,
31045 "type" : "string"
31046 },
e2d681b3
TL
31047 "iface" : {
31048 "optional" : 1,
31049 "type" : "string"
31050 },
31051 "ipversion" : {
31052 "optional" : 1,
31053 "type" : "integer"
31054 },
95895385
TL
31055 "log" : {
31056 "description" : "Log level for firewall rule",
31057 "enum" : [
31058 "emerg",
31059 "alert",
31060 "crit",
31061 "err",
31062 "warning",
31063 "notice",
31064 "info",
31065 "debug",
31066 "nolog"
31067 ],
31068 "optional" : 1,
31069 "type" : "string"
31070 },
e2d681b3
TL
31071 "macro" : {
31072 "optional" : 1,
5f26e15b 31073 "type" : "string"
e2d681b3 31074 },
4d47f125
TL
31075 "pos" : {
31076 "type" : "integer"
e2d681b3
TL
31077 },
31078 "proto" : {
31079 "optional" : 1,
31080 "type" : "string"
31081 },
31082 "source" : {
31083 "optional" : 1,
31084 "type" : "string"
31085 },
31086 "sport" : {
31087 "optional" : 1,
31088 "type" : "string"
31089 },
31090 "type" : {
31091 "type" : "string"
4d47f125
TL
31092 }
31093 },
44660702
DM
31094 "type" : "object"
31095 }
7aacca6f
DM
31096 },
31097 "PUT" : {
e9cd3bd4 31098 "allowtoken" : 1,
4d47f125 31099 "description" : "Modify rule data.",
44660702 31100 "method" : "PUT",
4d47f125 31101 "name" : "update_rule",
7aacca6f
DM
31102 "parameters" : {
31103 "additionalProperties" : 0,
31104 "properties" : {
4d47f125
TL
31105 "action" : {
31106 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
31107 "maxLength" : 20,
31108 "minLength" : 2,
31109 "optional" : 1,
31110 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
31111 "type" : "string"
31112 },
31113 "comment" : {
31114 "description" : "Descriptive comment.",
31115 "optional" : 1,
31116 "type" : "string",
31117 "typetext" : "<string>"
31118 },
31119 "delete" : {
31120 "description" : "A list of settings you want to delete.",
31121 "format" : "pve-configid-list",
31122 "optional" : 1,
31123 "type" : "string",
31124 "typetext" : "<string>"
31125 },
31126 "dest" : {
31127 "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.",
31128 "format" : "pve-fw-addr-spec",
0695fdaf 31129 "maxLength" : 512,
4d47f125
TL
31130 "optional" : 1,
31131 "type" : "string",
31132 "typetext" : "<string>"
31133 },
31134 "digest" : {
82551b2b
TL
31135 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
31136 "maxLength" : 64,
4d47f125
TL
31137 "optional" : 1,
31138 "type" : "string",
31139 "typetext" : "<string>"
31140 },
31141 "dport" : {
31142 "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.",
31143 "format" : "pve-fw-dport-spec",
31144 "optional" : 1,
31145 "type" : "string",
31146 "typetext" : "<string>"
31147 },
31148 "enable" : {
31149 "description" : "Flag to enable/disable a rule.",
31150 "minimum" : 0,
31151 "optional" : 1,
31152 "type" : "integer",
31153 "typetext" : "<integer> (0 - N)"
31154 },
4772952b 31155 "icmp-type" : {
287a95cf 31156 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
31157 "format" : "pve-fw-icmp-type-spec",
31158 "optional" : 1,
31159 "type" : "string",
31160 "typetext" : "<string>"
31161 },
4d47f125
TL
31162 "iface" : {
31163 "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.",
31164 "format" : "pve-iface",
31165 "maxLength" : 20,
31166 "minLength" : 2,
31167 "optional" : 1,
31168 "type" : "string",
31169 "typetext" : "<string>"
31170 },
95895385
TL
31171 "log" : {
31172 "description" : "Log level for firewall rule.",
31173 "enum" : [
31174 "emerg",
31175 "alert",
31176 "crit",
31177 "err",
31178 "warning",
31179 "notice",
31180 "info",
31181 "debug",
31182 "nolog"
31183 ],
31184 "optional" : 1,
31185 "type" : "string"
31186 },
4d47f125
TL
31187 "macro" : {
31188 "description" : "Use predefined standard macro.",
31189 "maxLength" : 128,
44660702 31190 "optional" : 1,
013dc89f
DM
31191 "type" : "string",
31192 "typetext" : "<string>"
44660702 31193 },
4d47f125
TL
31194 "moveto" : {
31195 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
31196 "minimum" : 0,
31197 "optional" : 1,
31198 "type" : "integer",
31199 "typetext" : "<integer> (0 - N)"
31200 },
7aacca6f 31201 "node" : {
7aacca6f 31202 "description" : "The cluster node name.",
44660702 31203 "format" : "pve-node",
013dc89f
DM
31204 "type" : "string",
31205 "typetext" : "<string>"
7aacca6f 31206 },
4d47f125
TL
31207 "pos" : {
31208 "description" : "Update rule at position <pos>.",
31209 "minimum" : 0,
31210 "optional" : 1,
31211 "type" : "integer",
31212 "typetext" : "<integer> (0 - N)"
31213 },
31214 "proto" : {
31215 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
31216 "format" : "pve-fw-protocol-spec",
31217 "optional" : 1,
31218 "type" : "string",
31219 "typetext" : "<string>"
31220 },
31221 "source" : {
31222 "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.",
31223 "format" : "pve-fw-addr-spec",
0695fdaf 31224 "maxLength" : 512,
4d47f125
TL
31225 "optional" : 1,
31226 "type" : "string",
31227 "typetext" : "<string>"
31228 },
31229 "sport" : {
31230 "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.",
31231 "format" : "pve-fw-sport-spec",
31232 "optional" : 1,
013dc89f
DM
31233 "type" : "string",
31234 "typetext" : "<string>"
7aacca6f 31235 },
4d47f125
TL
31236 "type" : {
31237 "description" : "Rule type.",
31238 "enum" : [
31239 "in",
31240 "out",
31241 "group"
31242 ],
31243 "optional" : 1,
31244 "type" : "string"
31245 },
7aacca6f 31246 "vmid" : {
44660702 31247 "description" : "The (unique) ID of the VM.",
7aacca6f 31248 "format" : "pve-vmid",
8dd66e12
TL
31249 "maximum" : 999999999,
31250 "minimum" : 100,
4bd7df8b 31251 "type" : "integer",
8dd66e12 31252 "typetext" : "<integer> (100 - 999999999)"
7aacca6f
DM
31253 }
31254 }
31255 },
7aacca6f
DM
31256 "permissions" : {
31257 "check" : [
31258 "perm",
31259 "/vms/{vmid}",
31260 [
4d47f125 31261 "VM.Config.Network"
7aacca6f
DM
31262 ]
31263 ]
31264 },
4d47f125
TL
31265 "protected" : 1,
31266 "proxyto" : null,
31267 "returns" : {
31268 "type" : "null"
31269 }
31270 }
31271 },
31272 "leaf" : 1,
31273 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
31274 "text" : "{pos}"
31275 }
31276 ],
31277 "info" : {
31278 "GET" : {
e9cd3bd4 31279 "allowtoken" : 1,
4d47f125
TL
31280 "description" : "List rules.",
31281 "method" : "GET",
31282 "name" : "get_rules",
31283 "parameters" : {
31284 "additionalProperties" : 0,
31285 "properties" : {
31286 "node" : {
31287 "description" : "The cluster node name.",
31288 "format" : "pve-node",
31289 "type" : "string",
31290 "typetext" : "<string>"
31291 },
31292 "vmid" : {
31293 "description" : "The (unique) ID of the VM.",
31294 "format" : "pve-vmid",
8dd66e12
TL
31295 "maximum" : 999999999,
31296 "minimum" : 100,
4d47f125 31297 "type" : "integer",
8dd66e12 31298 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31299 }
31300 }
31301 },
31302 "permissions" : {
31303 "check" : [
31304 "perm",
31305 "/vms/{vmid}",
31306 [
31307 "VM.Audit"
31308 ]
31309 ]
31310 },
31311 "proxyto" : null,
31312 "returns" : {
31313 "items" : {
31314 "properties" : {
31315 "pos" : {
31316 "type" : "integer"
31317 }
31318 },
31319 "type" : "object"
31320 },
31321 "links" : [
31322 {
31323 "href" : "{pos}",
31324 "rel" : "child"
31325 }
31326 ],
31327 "type" : "array"
31328 }
31329 },
31330 "POST" : {
e9cd3bd4 31331 "allowtoken" : 1,
4d47f125
TL
31332 "description" : "Create new rule.",
31333 "method" : "POST",
31334 "name" : "create_rule",
31335 "parameters" : {
31336 "additionalProperties" : 0,
31337 "properties" : {
31338 "action" : {
31339 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
31340 "maxLength" : 20,
31341 "minLength" : 2,
31342 "optional" : 0,
31343 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
31344 "type" : "string"
31345 },
31346 "comment" : {
31347 "description" : "Descriptive comment.",
31348 "optional" : 1,
31349 "type" : "string",
31350 "typetext" : "<string>"
31351 },
31352 "dest" : {
31353 "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.",
31354 "format" : "pve-fw-addr-spec",
0695fdaf 31355 "maxLength" : 512,
4d47f125
TL
31356 "optional" : 1,
31357 "type" : "string",
31358 "typetext" : "<string>"
31359 },
31360 "digest" : {
82551b2b
TL
31361 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
31362 "maxLength" : 64,
4d47f125
TL
31363 "optional" : 1,
31364 "type" : "string",
31365 "typetext" : "<string>"
31366 },
31367 "dport" : {
31368 "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.",
31369 "format" : "pve-fw-dport-spec",
31370 "optional" : 1,
31371 "type" : "string",
31372 "typetext" : "<string>"
31373 },
31374 "enable" : {
31375 "description" : "Flag to enable/disable a rule.",
31376 "minimum" : 0,
31377 "optional" : 1,
31378 "type" : "integer",
31379 "typetext" : "<integer> (0 - N)"
31380 },
4772952b 31381 "icmp-type" : {
287a95cf 31382 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
31383 "format" : "pve-fw-icmp-type-spec",
31384 "optional" : 1,
31385 "type" : "string",
31386 "typetext" : "<string>"
31387 },
4d47f125
TL
31388 "iface" : {
31389 "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.",
31390 "format" : "pve-iface",
31391 "maxLength" : 20,
31392 "minLength" : 2,
31393 "optional" : 1,
31394 "type" : "string",
31395 "typetext" : "<string>"
31396 },
95895385
TL
31397 "log" : {
31398 "description" : "Log level for firewall rule.",
31399 "enum" : [
31400 "emerg",
31401 "alert",
31402 "crit",
31403 "err",
31404 "warning",
31405 "notice",
31406 "info",
31407 "debug",
31408 "nolog"
31409 ],
31410 "optional" : 1,
31411 "type" : "string"
31412 },
4d47f125
TL
31413 "macro" : {
31414 "description" : "Use predefined standard macro.",
31415 "maxLength" : 128,
44660702 31416 "optional" : 1,
4d47f125
TL
31417 "type" : "string",
31418 "typetext" : "<string>"
44660702
DM
31419 },
31420 "node" : {
31421 "description" : "The cluster node name.",
31422 "format" : "pve-node",
013dc89f
DM
31423 "type" : "string",
31424 "typetext" : "<string>"
7aacca6f 31425 },
4d47f125
TL
31426 "pos" : {
31427 "description" : "Update rule at position <pos>.",
31428 "minimum" : 0,
31429 "optional" : 1,
31430 "type" : "integer",
31431 "typetext" : "<integer> (0 - N)"
31432 },
31433 "proto" : {
31434 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
31435 "format" : "pve-fw-protocol-spec",
31436 "optional" : 1,
31437 "type" : "string",
31438 "typetext" : "<string>"
31439 },
31440 "source" : {
31441 "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.",
31442 "format" : "pve-fw-addr-spec",
0695fdaf 31443 "maxLength" : 512,
4d47f125 31444 "optional" : 1,
013dc89f
DM
31445 "type" : "string",
31446 "typetext" : "<string>"
44660702 31447 },
4d47f125
TL
31448 "sport" : {
31449 "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.",
31450 "format" : "pve-fw-sport-spec",
31451 "optional" : 1,
31452 "type" : "string",
31453 "typetext" : "<string>"
31454 },
31455 "type" : {
31456 "description" : "Rule type.",
31457 "enum" : [
31458 "in",
31459 "out",
31460 "group"
31461 ],
31462 "optional" : 0,
31463 "type" : "string"
31464 },
44660702
DM
31465 "vmid" : {
31466 "description" : "The (unique) ID of the VM.",
31467 "format" : "pve-vmid",
8dd66e12
TL
31468 "maximum" : 999999999,
31469 "minimum" : 100,
4bd7df8b 31470 "type" : "integer",
8dd66e12 31471 "typetext" : "<integer> (100 - 999999999)"
56122987 31472 }
44660702 31473 }
7aacca6f 31474 },
56122987
DM
31475 "permissions" : {
31476 "check" : [
31477 "perm",
31478 "/vms/{vmid}",
31479 [
4d47f125 31480 "VM.Config.Network"
56122987
DM
31481 ]
31482 ]
31483 },
44660702 31484 "protected" : 1,
4d47f125 31485 "proxyto" : null,
44660702 31486 "returns" : {
4d47f125 31487 "type" : "null"
44660702
DM
31488 }
31489 }
31490 },
31491 "leaf" : 0,
4d47f125
TL
31492 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
31493 "text" : "rules"
7aacca6f 31494 },
56122987 31495 {
56122987
DM
31496 "children" : [
31497 {
56122987 31498 "info" : {
44660702 31499 "DELETE" : {
e9cd3bd4 31500 "allowtoken" : 1,
4d47f125 31501 "description" : "Remove IP or Network alias.",
44660702 31502 "method" : "DELETE",
4d47f125 31503 "name" : "remove_alias",
56122987 31504 "parameters" : {
44660702 31505 "additionalProperties" : 0,
56122987 31506 "properties" : {
44660702 31507 "digest" : {
82551b2b
TL
31508 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
31509 "maxLength" : 64,
7aacca6f 31510 "optional" : 1,
013dc89f
DM
31511 "type" : "string",
31512 "typetext" : "<string>"
7aacca6f 31513 },
4d47f125
TL
31514 "name" : {
31515 "description" : "Alias name.",
31516 "maxLength" : 64,
31517 "minLength" : 2,
31518 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
31519 "type" : "string"
31520 },
7aacca6f 31521 "node" : {
44660702 31522 "description" : "The cluster node name.",
7aacca6f 31523 "format" : "pve-node",
013dc89f
DM
31524 "type" : "string",
31525 "typetext" : "<string>"
44660702 31526 },
44660702
DM
31527 "vmid" : {
31528 "description" : "The (unique) ID of the VM.",
31529 "format" : "pve-vmid",
8dd66e12
TL
31530 "maximum" : 999999999,
31531 "minimum" : 100,
4bd7df8b 31532 "type" : "integer",
8dd66e12 31533 "typetext" : "<integer> (100 - 999999999)"
56122987 31534 }
44660702 31535 }
56122987 31536 },
56122987
DM
31537 "permissions" : {
31538 "check" : [
31539 "perm",
31540 "/vms/{vmid}",
31541 [
44660702 31542 "VM.Config.Network"
56122987
DM
31543 ]
31544 ]
31545 },
44660702 31546 "protected" : 1,
44660702
DM
31547 "returns" : {
31548 "type" : "null"
31549 }
7aacca6f 31550 },
44660702 31551 "GET" : {
e9cd3bd4 31552 "allowtoken" : 1,
4d47f125 31553 "description" : "Read alias.",
44660702 31554 "method" : "GET",
4d47f125 31555 "name" : "read_alias",
56122987 31556 "parameters" : {
44660702 31557 "additionalProperties" : 0,
56122987 31558 "properties" : {
4d47f125
TL
31559 "name" : {
31560 "description" : "Alias name.",
31561 "maxLength" : 64,
31562 "minLength" : 2,
31563 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
31564 "type" : "string"
31565 },
7aacca6f 31566 "node" : {
7aacca6f 31567 "description" : "The cluster node name.",
44660702 31568 "format" : "pve-node",
013dc89f
DM
31569 "type" : "string",
31570 "typetext" : "<string>"
56122987 31571 },
7aacca6f 31572 "vmid" : {
44660702 31573 "description" : "The (unique) ID of the VM.",
7aacca6f 31574 "format" : "pve-vmid",
8dd66e12
TL
31575 "maximum" : 999999999,
31576 "minimum" : 100,
4bd7df8b 31577 "type" : "integer",
8dd66e12 31578 "typetext" : "<integer> (100 - 999999999)"
56122987 31579 }
44660702 31580 }
56122987 31581 },
7aacca6f
DM
31582 "permissions" : {
31583 "check" : [
31584 "perm",
31585 "/vms/{vmid}",
31586 [
44660702 31587 "VM.Audit"
7aacca6f
DM
31588 ]
31589 ]
31590 },
7aacca6f 31591 "returns" : {
44660702 31592 "type" : "object"
7aacca6f 31593 }
56122987 31594 },
44660702 31595 "PUT" : {
e9cd3bd4 31596 "allowtoken" : 1,
4d47f125 31597 "description" : "Update IP or Network alias.",
44660702 31598 "method" : "PUT",
4d47f125 31599 "name" : "update_alias",
56122987
DM
31600 "parameters" : {
31601 "additionalProperties" : 0,
31602 "properties" : {
4d47f125
TL
31603 "cidr" : {
31604 "description" : "Network/IP specification in CIDR format.",
31605 "format" : "IPorCIDR",
013dc89f
DM
31606 "type" : "string",
31607 "typetext" : "<string>"
44660702 31608 },
4d47f125 31609 "comment" : {
44660702 31610 "optional" : 1,
013dc89f
DM
31611 "type" : "string",
31612 "typetext" : "<string>"
44660702
DM
31613 },
31614 "digest" : {
82551b2b
TL
31615 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
31616 "maxLength" : 64,
44660702 31617 "optional" : 1,
013dc89f
DM
31618 "type" : "string",
31619 "typetext" : "<string>"
44660702 31620 },
4d47f125
TL
31621 "name" : {
31622 "description" : "Alias name.",
31623 "maxLength" : 64,
44660702 31624 "minLength" : 2,
4d47f125
TL
31625 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
31626 "type" : "string"
44660702 31627 },
7aacca6f
DM
31628 "node" : {
31629 "description" : "The cluster node name.",
44660702 31630 "format" : "pve-node",
013dc89f
DM
31631 "type" : "string",
31632 "typetext" : "<string>"
56122987 31633 },
4d47f125
TL
31634 "rename" : {
31635 "description" : "Rename an existing alias.",
31636 "maxLength" : 64,
31637 "minLength" : 2,
7aacca6f 31638 "optional" : 1,
4d47f125 31639 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
31640 "type" : "string"
31641 },
31642 "vmid" : {
31643 "description" : "The (unique) ID of the VM.",
31644 "format" : "pve-vmid",
8dd66e12
TL
31645 "maximum" : 999999999,
31646 "minimum" : 100,
4bd7df8b 31647 "type" : "integer",
8dd66e12 31648 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
31649 }
31650 }
31651 },
56122987
DM
31652 "permissions" : {
31653 "check" : [
31654 "perm",
31655 "/vms/{vmid}",
31656 [
7aacca6f 31657 "VM.Config.Network"
56122987
DM
31658 ]
31659 ]
31660 },
44660702 31661 "protected" : 1,
56122987 31662 "returns" : {
7aacca6f
DM
31663 "type" : "null"
31664 }
56122987 31665 }
44660702
DM
31666 },
31667 "leaf" : 1,
4d47f125
TL
31668 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
31669 "text" : "{name}"
56122987
DM
31670 }
31671 ],
31672 "info" : {
7aacca6f 31673 "GET" : {
e9cd3bd4 31674 "allowtoken" : 1,
4d47f125 31675 "description" : "List aliases",
44660702 31676 "method" : "GET",
4d47f125 31677 "name" : "get_aliases",
7aacca6f 31678 "parameters" : {
44660702 31679 "additionalProperties" : 0,
7aacca6f
DM
31680 "properties" : {
31681 "node" : {
7aacca6f 31682 "description" : "The cluster node name.",
44660702 31683 "format" : "pve-node",
013dc89f
DM
31684 "type" : "string",
31685 "typetext" : "<string>"
7aacca6f
DM
31686 },
31687 "vmid" : {
31688 "description" : "The (unique) ID of the VM.",
44660702 31689 "format" : "pve-vmid",
8dd66e12
TL
31690 "maximum" : 999999999,
31691 "minimum" : 100,
4bd7df8b 31692 "type" : "integer",
8dd66e12 31693 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 31694 }
44660702 31695 }
56122987 31696 },
56122987
DM
31697 "permissions" : {
31698 "check" : [
31699 "perm",
31700 "/vms/{vmid}",
31701 [
7aacca6f 31702 "VM.Audit"
56122987
DM
31703 ]
31704 ]
31705 },
7aacca6f 31706 "returns" : {
7aacca6f
DM
31707 "items" : {
31708 "properties" : {
4d47f125
TL
31709 "cidr" : {
31710 "type" : "string"
31711 },
31712 "comment" : {
31713 "optional" : 1,
31714 "type" : "string"
31715 },
31716 "digest" : {
82551b2b
TL
31717 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
31718 "maxLength" : 64,
4d47f125
TL
31719 "optional" : 0,
31720 "type" : "string"
31721 },
31722 "name" : {
31723 "type" : "string"
7aacca6f
DM
31724 }
31725 },
31726 "type" : "object"
31727 },
31728 "links" : [
31729 {
4d47f125 31730 "href" : "{name}",
44660702 31731 "rel" : "child"
7aacca6f 31732 }
44660702
DM
31733 ],
31734 "type" : "array"
31735 }
7aacca6f
DM
31736 },
31737 "POST" : {
e9cd3bd4 31738 "allowtoken" : 1,
4d47f125 31739 "description" : "Create IP or Network Alias.",
44660702 31740 "method" : "POST",
4d47f125 31741 "name" : "create_alias",
56122987 31742 "parameters" : {
44660702 31743 "additionalProperties" : 0,
56122987 31744 "properties" : {
4d47f125
TL
31745 "cidr" : {
31746 "description" : "Network/IP specification in CIDR format.",
31747 "format" : "IPorCIDR",
013dc89f 31748 "type" : "string",
4d47f125
TL
31749 "typetext" : "<string>"
31750 },
31751 "comment" : {
44660702 31752 "optional" : 1,
013dc89f
DM
31753 "type" : "string",
31754 "typetext" : "<string>"
7aacca6f 31755 },
4d47f125
TL
31756 "name" : {
31757 "description" : "Alias name.",
31758 "maxLength" : 64,
31759 "minLength" : 2,
31760 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
31761 "type" : "string"
31762 },
4d47f125
TL
31763 "node" : {
31764 "description" : "The cluster node name.",
31765 "format" : "pve-node",
31766 "type" : "string",
31767 "typetext" : "<string>"
31768 },
44660702
DM
31769 "vmid" : {
31770 "description" : "The (unique) ID of the VM.",
31771 "format" : "pve-vmid",
8dd66e12
TL
31772 "maximum" : 999999999,
31773 "minimum" : 100,
4bd7df8b 31774 "type" : "integer",
8dd66e12 31775 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
31776 }
31777 }
31778 },
31779 "permissions" : {
31780 "check" : [
31781 "perm",
31782 "/vms/{vmid}",
31783 [
31784 "VM.Config.Network"
31785 ]
31786 ]
31787 },
31788 "protected" : 1,
44660702
DM
31789 "returns" : {
31790 "type" : "null"
31791 }
31792 }
31793 },
31794 "leaf" : 0,
4d47f125
TL
31795 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
31796 "text" : "aliases"
44660702
DM
31797 },
31798 {
31799 "children" : [
31800 {
4d47f125
TL
31801 "children" : [
31802 {
31803 "info" : {
31804 "DELETE" : {
e9cd3bd4 31805 "allowtoken" : 1,
4d47f125
TL
31806 "description" : "Remove IP or Network from IPSet.",
31807 "method" : "DELETE",
31808 "name" : "remove_ip",
31809 "parameters" : {
31810 "additionalProperties" : 0,
31811 "properties" : {
31812 "cidr" : {
31813 "description" : "Network/IP specification in CIDR format.",
31814 "format" : "IPorCIDRorAlias",
31815 "type" : "string",
31816 "typetext" : "<string>"
31817 },
31818 "digest" : {
82551b2b
TL
31819 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
31820 "maxLength" : 64,
4d47f125
TL
31821 "optional" : 1,
31822 "type" : "string",
31823 "typetext" : "<string>"
31824 },
31825 "name" : {
31826 "description" : "IP set name.",
31827 "maxLength" : 64,
31828 "minLength" : 2,
31829 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
31830 "type" : "string"
31831 },
31832 "node" : {
31833 "description" : "The cluster node name.",
31834 "format" : "pve-node",
31835 "type" : "string",
31836 "typetext" : "<string>"
31837 },
31838 "vmid" : {
31839 "description" : "The (unique) ID of the VM.",
31840 "format" : "pve-vmid",
8dd66e12
TL
31841 "maximum" : 999999999,
31842 "minimum" : 100,
4d47f125 31843 "type" : "integer",
8dd66e12 31844 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31845 }
31846 }
31847 },
31848 "permissions" : {
31849 "check" : [
31850 "perm",
31851 "/vms/{vmid}",
31852 [
31853 "VM.Config.Network"
31854 ]
31855 ]
31856 },
31857 "protected" : 1,
31858 "returns" : {
31859 "type" : "null"
31860 }
31861 },
31862 "GET" : {
e9cd3bd4 31863 "allowtoken" : 1,
4d47f125
TL
31864 "description" : "Read IP or Network settings from IPSet.",
31865 "method" : "GET",
31866 "name" : "read_ip",
31867 "parameters" : {
31868 "additionalProperties" : 0,
31869 "properties" : {
31870 "cidr" : {
31871 "description" : "Network/IP specification in CIDR format.",
31872 "format" : "IPorCIDRorAlias",
31873 "type" : "string",
31874 "typetext" : "<string>"
31875 },
31876 "name" : {
31877 "description" : "IP set name.",
31878 "maxLength" : 64,
31879 "minLength" : 2,
31880 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
31881 "type" : "string"
31882 },
31883 "node" : {
31884 "description" : "The cluster node name.",
31885 "format" : "pve-node",
31886 "type" : "string",
31887 "typetext" : "<string>"
31888 },
31889 "vmid" : {
31890 "description" : "The (unique) ID of the VM.",
31891 "format" : "pve-vmid",
8dd66e12
TL
31892 "maximum" : 999999999,
31893 "minimum" : 100,
4d47f125 31894 "type" : "integer",
8dd66e12 31895 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31896 }
31897 }
31898 },
31899 "permissions" : {
31900 "check" : [
31901 "perm",
31902 "/vms/{vmid}",
31903 [
31904 "VM.Audit"
31905 ]
31906 ]
31907 },
31908 "protected" : 1,
31909 "returns" : {
31910 "type" : "object"
31911 }
31912 },
31913 "PUT" : {
e9cd3bd4 31914 "allowtoken" : 1,
4d47f125
TL
31915 "description" : "Update IP or Network settings",
31916 "method" : "PUT",
31917 "name" : "update_ip",
31918 "parameters" : {
31919 "additionalProperties" : 0,
31920 "properties" : {
31921 "cidr" : {
31922 "description" : "Network/IP specification in CIDR format.",
31923 "format" : "IPorCIDRorAlias",
31924 "type" : "string",
31925 "typetext" : "<string>"
31926 },
31927 "comment" : {
31928 "optional" : 1,
31929 "type" : "string",
31930 "typetext" : "<string>"
31931 },
31932 "digest" : {
82551b2b
TL
31933 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
31934 "maxLength" : 64,
4d47f125
TL
31935 "optional" : 1,
31936 "type" : "string",
31937 "typetext" : "<string>"
31938 },
31939 "name" : {
31940 "description" : "IP set name.",
31941 "maxLength" : 64,
31942 "minLength" : 2,
31943 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
31944 "type" : "string"
31945 },
31946 "node" : {
31947 "description" : "The cluster node name.",
31948 "format" : "pve-node",
31949 "type" : "string",
31950 "typetext" : "<string>"
31951 },
31952 "nomatch" : {
31953 "optional" : 1,
31954 "type" : "boolean",
31955 "typetext" : "<boolean>"
31956 },
31957 "vmid" : {
31958 "description" : "The (unique) ID of the VM.",
31959 "format" : "pve-vmid",
8dd66e12
TL
31960 "maximum" : 999999999,
31961 "minimum" : 100,
4d47f125 31962 "type" : "integer",
8dd66e12 31963 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
31964 }
31965 }
31966 },
31967 "permissions" : {
31968 "check" : [
31969 "perm",
31970 "/vms/{vmid}",
31971 [
31972 "VM.Config.Network"
31973 ]
31974 ]
31975 },
31976 "protected" : 1,
31977 "returns" : {
31978 "type" : "null"
31979 }
31980 }
31981 },
31982 "leaf" : 1,
31983 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
31984 "text" : "{cidr}"
31985 }
31986 ],
44660702
DM
31987 "info" : {
31988 "DELETE" : {
e9cd3bd4 31989 "allowtoken" : 1,
4d47f125 31990 "description" : "Delete IPSet",
44660702 31991 "method" : "DELETE",
4d47f125 31992 "name" : "delete_ipset",
56122987 31993 "parameters" : {
44660702 31994 "additionalProperties" : 0,
56122987 31995 "properties" : {
81a3384d
TL
31996 "force" : {
31997 "description" : "Delete all members of the IPSet, if there are any.",
31998 "optional" : 1,
31999 "type" : "boolean",
32000 "typetext" : "<boolean>"
32001 },
7aacca6f 32002 "name" : {
4d47f125 32003 "description" : "IP set name.",
7aacca6f 32004 "maxLength" : 64,
7aacca6f
DM
32005 "minLength" : 2,
32006 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 32007 "type" : "string"
7aacca6f
DM
32008 },
32009 "node" : {
44660702 32010 "description" : "The cluster node name.",
56122987 32011 "format" : "pve-node",
013dc89f
DM
32012 "type" : "string",
32013 "typetext" : "<string>"
7aacca6f 32014 },
56122987 32015 "vmid" : {
44660702 32016 "description" : "The (unique) ID of the VM.",
56122987 32017 "format" : "pve-vmid",
8dd66e12
TL
32018 "maximum" : 999999999,
32019 "minimum" : 100,
4bd7df8b 32020 "type" : "integer",
8dd66e12 32021 "typetext" : "<integer> (100 - 999999999)"
56122987 32022 }
44660702 32023 }
56122987 32024 },
56122987
DM
32025 "permissions" : {
32026 "check" : [
32027 "perm",
32028 "/vms/{vmid}",
32029 [
7aacca6f 32030 "VM.Config.Network"
56122987
DM
32031 ]
32032 ]
32033 },
44660702 32034 "protected" : 1,
56122987 32035 "returns" : {
7aacca6f 32036 "type" : "null"
44660702 32037 }
56122987 32038 },
44660702 32039 "GET" : {
e9cd3bd4 32040 "allowtoken" : 1,
4d47f125 32041 "description" : "List IPSet content",
44660702 32042 "method" : "GET",
4d47f125 32043 "name" : "get_ipset",
44660702
DM
32044 "parameters" : {
32045 "additionalProperties" : 0,
32046 "properties" : {
32047 "name" : {
4d47f125 32048 "description" : "IP set name.",
44660702
DM
32049 "maxLength" : 64,
32050 "minLength" : 2,
32051 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32052 "type" : "string"
32053 },
32054 "node" : {
32055 "description" : "The cluster node name.",
32056 "format" : "pve-node",
013dc89f
DM
32057 "type" : "string",
32058 "typetext" : "<string>"
44660702
DM
32059 },
32060 "vmid" : {
32061 "description" : "The (unique) ID of the VM.",
32062 "format" : "pve-vmid",
8dd66e12
TL
32063 "maximum" : 999999999,
32064 "minimum" : 100,
4bd7df8b 32065 "type" : "integer",
8dd66e12 32066 "typetext" : "<integer> (100 - 999999999)"
44660702 32067 }
4d47f125
TL
32068 }
32069 },
32070 "permissions" : {
32071 "check" : [
32072 "perm",
32073 "/vms/{vmid}",
32074 [
32075 "VM.Audit"
32076 ]
32077 ]
32078 },
32079 "returns" : {
32080 "items" : {
32081 "properties" : {
32082 "cidr" : {
32083 "type" : "string"
32084 },
32085 "comment" : {
32086 "optional" : 1,
32087 "type" : "string"
32088 },
32089 "digest" : {
82551b2b
TL
32090 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32091 "maxLength" : 64,
4d47f125
TL
32092 "optional" : 0,
32093 "type" : "string"
32094 },
32095 "nomatch" : {
32096 "optional" : 1,
32097 "type" : "boolean"
32098 }
32099 },
32100 "type" : "object"
32101 },
32102 "links" : [
32103 {
32104 "href" : "{cidr}",
32105 "rel" : "child"
32106 }
32107 ],
32108 "type" : "array"
44660702
DM
32109 }
32110 },
4d47f125 32111 "POST" : {
e9cd3bd4 32112 "allowtoken" : 1,
4d47f125
TL
32113 "description" : "Add IP or Network to IPSet.",
32114 "method" : "POST",
32115 "name" : "create_ip",
56122987
DM
32116 "parameters" : {
32117 "additionalProperties" : 0,
32118 "properties" : {
44660702
DM
32119 "cidr" : {
32120 "description" : "Network/IP specification in CIDR format.",
4d47f125 32121 "format" : "IPorCIDRorAlias",
013dc89f
DM
32122 "type" : "string",
32123 "typetext" : "<string>"
44660702
DM
32124 },
32125 "comment" : {
32126 "optional" : 1,
013dc89f
DM
32127 "type" : "string",
32128 "typetext" : "<string>"
44660702 32129 },
56122987 32130 "name" : {
4d47f125 32131 "description" : "IP set name.",
44660702
DM
32132 "maxLength" : 64,
32133 "minLength" : 2,
7aacca6f 32134 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 32135 "type" : "string"
56122987
DM
32136 },
32137 "node" : {
32138 "description" : "The cluster node name.",
44660702 32139 "format" : "pve-node",
013dc89f
DM
32140 "type" : "string",
32141 "typetext" : "<string>"
44660702 32142 },
4d47f125 32143 "nomatch" : {
44660702 32144 "optional" : 1,
4d47f125
TL
32145 "type" : "boolean",
32146 "typetext" : "<boolean>"
56122987 32147 },
7aacca6f 32148 "vmid" : {
7aacca6f 32149 "description" : "The (unique) ID of the VM.",
44660702 32150 "format" : "pve-vmid",
8dd66e12
TL
32151 "maximum" : 999999999,
32152 "minimum" : 100,
4bd7df8b 32153 "type" : "integer",
8dd66e12 32154 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
32155 }
32156 }
32157 },
44660702
DM
32158 "permissions" : {
32159 "check" : [
32160 "perm",
32161 "/vms/{vmid}",
32162 [
32163 "VM.Config.Network"
32164 ]
32165 ]
7aacca6f 32166 },
44660702
DM
32167 "protected" : 1,
32168 "returns" : {
32169 "type" : "null"
7aacca6f
DM
32170 }
32171 }
32172 },
4d47f125
TL
32173 "leaf" : 0,
32174 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
44660702
DM
32175 "text" : "{name}"
32176 }
32177 ],
32178 "info" : {
32179 "GET" : {
e9cd3bd4 32180 "allowtoken" : 1,
4d47f125 32181 "description" : "List IPSets",
44660702 32182 "method" : "GET",
4d47f125 32183 "name" : "ipset_index",
56122987
DM
32184 "parameters" : {
32185 "additionalProperties" : 0,
32186 "properties" : {
32187 "node" : {
44660702 32188 "description" : "The cluster node name.",
56122987 32189 "format" : "pve-node",
013dc89f
DM
32190 "type" : "string",
32191 "typetext" : "<string>"
56122987
DM
32192 },
32193 "vmid" : {
7aacca6f 32194 "description" : "The (unique) ID of the VM.",
44660702 32195 "format" : "pve-vmid",
8dd66e12
TL
32196 "maximum" : 999999999,
32197 "minimum" : 100,
4bd7df8b 32198 "type" : "integer",
8dd66e12 32199 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
32200 }
32201 }
32202 },
44660702
DM
32203 "permissions" : {
32204 "check" : [
32205 "perm",
32206 "/vms/{vmid}",
32207 [
32208 "VM.Audit"
32209 ]
32210 ]
32211 },
56122987
DM
32212 "returns" : {
32213 "items" : {
56122987 32214 "properties" : {
44660702
DM
32215 "comment" : {
32216 "optional" : 1,
56122987
DM
32217 "type" : "string"
32218 },
56122987 32219 "digest" : {
82551b2b
TL
32220 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32221 "maxLength" : 64,
44660702
DM
32222 "optional" : 0,
32223 "type" : "string"
32224 },
32225 "name" : {
4d47f125
TL
32226 "description" : "IP set name.",
32227 "maxLength" : 64,
32228 "minLength" : 2,
32229 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 32230 "type" : "string"
56122987 32231 }
44660702
DM
32232 },
32233 "type" : "object"
32234 },
32235 "links" : [
32236 {
32237 "href" : "{name}",
32238 "rel" : "child"
56122987 32239 }
4d47f125
TL
32240 ],
32241 "type" : "array"
32242 }
32243 },
32244 "POST" : {
e9cd3bd4 32245 "allowtoken" : 1,
4d47f125
TL
32246 "description" : "Create new IPSet",
32247 "method" : "POST",
32248 "name" : "create_ipset",
32249 "parameters" : {
32250 "additionalProperties" : 0,
32251 "properties" : {
32252 "comment" : {
32253 "optional" : 1,
32254 "type" : "string",
32255 "typetext" : "<string>"
32256 },
32257 "digest" : {
82551b2b
TL
32258 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32259 "maxLength" : 64,
4d47f125
TL
32260 "optional" : 1,
32261 "type" : "string",
32262 "typetext" : "<string>"
32263 },
32264 "name" : {
32265 "description" : "IP set name.",
32266 "maxLength" : 64,
32267 "minLength" : 2,
32268 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32269 "type" : "string"
32270 },
32271 "node" : {
32272 "description" : "The cluster node name.",
32273 "format" : "pve-node",
32274 "type" : "string",
32275 "typetext" : "<string>"
32276 },
32277 "rename" : {
32278 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
32279 "maxLength" : 64,
32280 "minLength" : 2,
32281 "optional" : 1,
32282 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
32283 "type" : "string"
32284 },
32285 "vmid" : {
32286 "description" : "The (unique) ID of the VM.",
32287 "format" : "pve-vmid",
8dd66e12
TL
32288 "maximum" : 999999999,
32289 "minimum" : 100,
4d47f125 32290 "type" : "integer",
8dd66e12 32291 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
32292 }
32293 }
32294 },
32295 "permissions" : {
32296 "check" : [
32297 "perm",
32298 "/vms/{vmid}",
32299 [
32300 "VM.Config.Network"
32301 ]
32302 ]
32303 },
32304 "protected" : 1,
32305 "returns" : {
32306 "type" : "null"
32307 }
32308 }
32309 },
32310 "leaf" : 0,
32311 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
32312 "text" : "ipset"
32313 },
32314 {
32315 "info" : {
32316 "GET" : {
e9cd3bd4 32317 "allowtoken" : 1,
4d47f125
TL
32318 "description" : "Get VM firewall options.",
32319 "method" : "GET",
32320 "name" : "get_options",
32321 "parameters" : {
32322 "additionalProperties" : 0,
32323 "properties" : {
32324 "node" : {
32325 "description" : "The cluster node name.",
32326 "format" : "pve-node",
32327 "type" : "string",
32328 "typetext" : "<string>"
32329 },
32330 "vmid" : {
32331 "description" : "The (unique) ID of the VM.",
32332 "format" : "pve-vmid",
8dd66e12
TL
32333 "maximum" : 999999999,
32334 "minimum" : 100,
4d47f125 32335 "type" : "integer",
8dd66e12 32336 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
32337 }
32338 }
32339 },
32340 "permissions" : {
32341 "check" : [
32342 "perm",
32343 "/vms/{vmid}",
32344 [
32345 "VM.Audit"
32346 ]
32347 ]
32348 },
32349 "proxyto" : "node",
32350 "returns" : {
32351 "properties" : {
32352 "dhcp" : {
5c1699e5 32353 "default" : 0,
4d47f125
TL
32354 "description" : "Enable DHCP.",
32355 "optional" : 1,
32356 "type" : "boolean"
32357 },
32358 "enable" : {
5c1699e5 32359 "default" : 0,
4d47f125
TL
32360 "description" : "Enable/disable firewall rules.",
32361 "optional" : 1,
32362 "type" : "boolean"
32363 },
32364 "ipfilter" : {
32365 "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.",
32366 "optional" : 1,
32367 "type" : "boolean"
32368 },
32369 "log_level_in" : {
32370 "description" : "Log level for incoming traffic.",
32371 "enum" : [
32372 "emerg",
32373 "alert",
32374 "crit",
32375 "err",
32376 "warning",
32377 "notice",
32378 "info",
32379 "debug",
32380 "nolog"
32381 ],
32382 "optional" : 1,
32383 "type" : "string"
32384 },
32385 "log_level_out" : {
32386 "description" : "Log level for outgoing traffic.",
32387 "enum" : [
32388 "emerg",
32389 "alert",
32390 "crit",
32391 "err",
32392 "warning",
32393 "notice",
32394 "info",
32395 "debug",
32396 "nolog"
32397 ],
32398 "optional" : 1,
32399 "type" : "string"
32400 },
32401 "macfilter" : {
de786b48 32402 "default" : 1,
4d47f125
TL
32403 "description" : "Enable/disable MAC address filter.",
32404 "optional" : 1,
32405 "type" : "boolean"
32406 },
32407 "ndp" : {
5c1699e5
TL
32408 "default" : 0,
32409 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
32410 "optional" : 1,
32411 "type" : "boolean"
32412 },
32413 "policy_in" : {
32414 "description" : "Input policy.",
32415 "enum" : [
32416 "ACCEPT",
32417 "REJECT",
32418 "DROP"
32419 ],
32420 "optional" : 1,
32421 "type" : "string"
32422 },
32423 "policy_out" : {
32424 "description" : "Output policy.",
32425 "enum" : [
32426 "ACCEPT",
32427 "REJECT",
32428 "DROP"
32429 ],
32430 "optional" : 1,
32431 "type" : "string"
32432 },
32433 "radv" : {
32434 "description" : "Allow sending Router Advertisement.",
32435 "optional" : 1,
32436 "type" : "boolean"
32437 }
32438 },
32439 "type" : "object"
7aacca6f
DM
32440 }
32441 },
4d47f125 32442 "PUT" : {
e9cd3bd4 32443 "allowtoken" : 1,
4d47f125
TL
32444 "description" : "Set Firewall options.",
32445 "method" : "PUT",
32446 "name" : "set_options",
7aacca6f
DM
32447 "parameters" : {
32448 "additionalProperties" : 0,
32449 "properties" : {
4d47f125
TL
32450 "delete" : {
32451 "description" : "A list of settings you want to delete.",
32452 "format" : "pve-configid-list",
7aacca6f 32453 "optional" : 1,
013dc89f
DM
32454 "type" : "string",
32455 "typetext" : "<string>"
7aacca6f 32456 },
4d47f125 32457 "dhcp" : {
5c1699e5 32458 "default" : 0,
4d47f125
TL
32459 "description" : "Enable DHCP.",
32460 "optional" : 1,
32461 "type" : "boolean",
32462 "typetext" : "<boolean>"
7aacca6f 32463 },
4d47f125 32464 "digest" : {
82551b2b
TL
32465 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
32466 "maxLength" : 64,
4d47f125 32467 "optional" : 1,
013dc89f
DM
32468 "type" : "string",
32469 "typetext" : "<string>"
7aacca6f 32470 },
4d47f125 32471 "enable" : {
5c1699e5 32472 "default" : 0,
4d47f125
TL
32473 "description" : "Enable/disable firewall rules.",
32474 "optional" : 1,
32475 "type" : "boolean",
32476 "typetext" : "<boolean>"
32477 },
32478 "ipfilter" : {
32479 "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.",
32480 "optional" : 1,
32481 "type" : "boolean",
32482 "typetext" : "<boolean>"
56122987 32483 },
4d47f125
TL
32484 "log_level_in" : {
32485 "description" : "Log level for incoming traffic.",
32486 "enum" : [
32487 "emerg",
32488 "alert",
32489 "crit",
32490 "err",
32491 "warning",
32492 "notice",
32493 "info",
32494 "debug",
32495 "nolog"
32496 ],
32497 "optional" : 1,
32498 "type" : "string"
44660702 32499 },
4d47f125
TL
32500 "log_level_out" : {
32501 "description" : "Log level for outgoing traffic.",
32502 "enum" : [
32503 "emerg",
32504 "alert",
32505 "crit",
32506 "err",
32507 "warning",
32508 "notice",
32509 "info",
32510 "debug",
32511 "nolog"
32512 ],
32513 "optional" : 1,
32514 "type" : "string"
44660702 32515 },
4d47f125 32516 "macfilter" : {
de786b48 32517 "default" : 1,
4d47f125
TL
32518 "description" : "Enable/disable MAC address filter.",
32519 "optional" : 1,
32520 "type" : "boolean",
32521 "typetext" : "<boolean>"
7aacca6f 32522 },
4d47f125 32523 "ndp" : {
5c1699e5
TL
32524 "default" : 0,
32525 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
32526 "optional" : 1,
32527 "type" : "boolean",
32528 "typetext" : "<boolean>"
7aacca6f 32529 },
4d47f125
TL
32530 "node" : {
32531 "description" : "The cluster node name.",
32532 "format" : "pve-node",
32533 "type" : "string",
32534 "typetext" : "<string>"
32535 },
32536 "policy_in" : {
32537 "description" : "Input policy.",
32538 "enum" : [
32539 "ACCEPT",
32540 "REJECT",
32541 "DROP"
44660702 32542 ],
4d47f125
TL
32543 "optional" : 1,
32544 "type" : "string"
32545 },
32546 "policy_out" : {
32547 "description" : "Output policy.",
32548 "enum" : [
32549 "ACCEPT",
32550 "REJECT",
32551 "DROP"
32552 ],
32553 "optional" : 1,
32554 "type" : "string"
32555 },
32556 "radv" : {
32557 "description" : "Allow sending Router Advertisement.",
32558 "optional" : 1,
32559 "type" : "boolean",
32560 "typetext" : "<boolean>"
32561 },
32562 "vmid" : {
32563 "description" : "The (unique) ID of the VM.",
32564 "format" : "pve-vmid",
8dd66e12
TL
32565 "maximum" : 999999999,
32566 "minimum" : 100,
4d47f125 32567 "type" : "integer",
8dd66e12 32568 "typetext" : "<integer> (100 - 999999999)"
44660702 32569 }
4d47f125
TL
32570 }
32571 },
32572 "permissions" : {
32573 "check" : [
32574 "perm",
32575 "/vms/{vmid}",
32576 [
32577 "VM.Config.Network"
32578 ]
32579 ]
32580 },
32581 "protected" : 1,
32582 "proxyto" : "node",
32583 "returns" : {
32584 "type" : "null"
32585 }
32586 }
32587 },
32588 "leaf" : 1,
32589 "path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
32590 "text" : "options"
32591 },
32592 {
32593 "info" : {
32594 "GET" : {
e9cd3bd4 32595 "allowtoken" : 1,
4d47f125
TL
32596 "description" : "Read firewall log",
32597 "method" : "GET",
32598 "name" : "log",
32599 "parameters" : {
32600 "additionalProperties" : 0,
32601 "properties" : {
32602 "limit" : {
32603 "minimum" : 0,
32604 "optional" : 1,
32605 "type" : "integer",
32606 "typetext" : "<integer> (0 - N)"
44660702 32607 },
4d47f125
TL
32608 "node" : {
32609 "description" : "The cluster node name.",
32610 "format" : "pve-node",
32611 "type" : "string",
32612 "typetext" : "<string>"
44660702 32613 },
9d2e98ed
TL
32614 "since" : {
32615 "description" : "Display log since this UNIX epoch.",
32616 "minimum" : 0,
32617 "optional" : 1,
32618 "type" : "integer",
32619 "typetext" : "<integer> (0 - N)"
32620 },
4d47f125
TL
32621 "start" : {
32622 "minimum" : 0,
32623 "optional" : 1,
32624 "type" : "integer",
32625 "typetext" : "<integer> (0 - N)"
32626 },
9d2e98ed
TL
32627 "until" : {
32628 "description" : "Display log until this UNIX epoch.",
32629 "minimum" : 0,
32630 "optional" : 1,
32631 "type" : "integer",
32632 "typetext" : "<integer> (0 - N)"
32633 },
4d47f125
TL
32634 "vmid" : {
32635 "description" : "The (unique) ID of the VM.",
32636 "format" : "pve-vmid",
8dd66e12
TL
32637 "maximum" : 999999999,
32638 "minimum" : 100,
4d47f125 32639 "type" : "integer",
8dd66e12 32640 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
32641 }
32642 }
32643 },
4d47f125
TL
32644 "permissions" : {
32645 "check" : [
32646 "perm",
32647 "/vms/{vmid}",
32648 [
32649 "VM.Console"
32650 ]
32651 ]
32652 },
32653 "protected" : 1,
32654 "proxyto" : "node",
32655 "returns" : {
32656 "items" : {
32657 "properties" : {
32658 "n" : {
32659 "description" : "Line number",
32660 "type" : "integer"
32661 },
32662 "t" : {
32663 "description" : "Line text",
32664 "type" : "string"
32665 }
32666 },
32667 "type" : "object"
32668 },
32669 "type" : "array"
32670 }
44660702 32671 }
4d47f125
TL
32672 },
32673 "leaf" : 1,
32674 "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
32675 "text" : "log"
32676 },
32677 {
44660702
DM
32678 "info" : {
32679 "GET" : {
e9cd3bd4 32680 "allowtoken" : 1,
4d47f125 32681 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702 32682 "method" : "GET",
4d47f125 32683 "name" : "refs",
44660702
DM
32684 "parameters" : {
32685 "additionalProperties" : 0,
32686 "properties" : {
32687 "node" : {
32688 "description" : "The cluster node name.",
32689 "format" : "pve-node",
013dc89f
DM
32690 "type" : "string",
32691 "typetext" : "<string>"
44660702 32692 },
4d47f125
TL
32693 "type" : {
32694 "description" : "Only list references of specified type.",
32695 "enum" : [
32696 "alias",
32697 "ipset"
32698 ],
32699 "optional" : 1,
32700 "type" : "string"
32701 },
44660702
DM
32702 "vmid" : {
32703 "description" : "The (unique) ID of the VM.",
32704 "format" : "pve-vmid",
8dd66e12
TL
32705 "maximum" : 999999999,
32706 "minimum" : 100,
4bd7df8b 32707 "type" : "integer",
8dd66e12 32708 "typetext" : "<integer> (100 - 999999999)"
44660702
DM
32709 }
32710 }
32711 },
4d47f125
TL
32712 "permissions" : {
32713 "check" : [
32714 "perm",
32715 "/vms/{vmid}",
32716 [
32717 "VM.Audit"
32718 ]
32719 ]
32720 },
32721 "returns" : {
32722 "items" : {
32723 "properties" : {
32724 "comment" : {
32725 "optional" : 1,
32726 "type" : "string"
32727 },
32728 "name" : {
32729 "type" : "string"
32730 },
07b013aa
TL
32731 "ref" : {
32732 "type" : "string"
32733 },
32734 "scope" : {
32735 "type" : "string"
32736 },
4d47f125
TL
32737 "type" : {
32738 "enum" : [
32739 "alias",
32740 "ipset"
32741 ],
32742 "type" : "string"
32743 }
32744 },
32745 "type" : "object"
32746 },
32747 "type" : "array"
32748 }
32749 }
32750 },
32751 "leaf" : 1,
32752 "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
32753 "text" : "refs"
32754 }
32755 ],
32756 "info" : {
32757 "GET" : {
e9cd3bd4 32758 "allowtoken" : 1,
4d47f125
TL
32759 "description" : "Directory index.",
32760 "method" : "GET",
32761 "name" : "index",
32762 "parameters" : {
32763 "additionalProperties" : 0,
32764 "properties" : {
32765 "node" : {
32766 "description" : "The cluster node name.",
32767 "format" : "pve-node",
32768 "type" : "string",
32769 "typetext" : "<string>"
32770 },
32771 "vmid" : {
32772 "description" : "The (unique) ID of the VM.",
32773 "format" : "pve-vmid",
8dd66e12
TL
32774 "maximum" : 999999999,
32775 "minimum" : 100,
4d47f125 32776 "type" : "integer",
8dd66e12 32777 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
32778 }
32779 }
32780 },
32781 "permissions" : {
32782 "user" : "all"
32783 },
32784 "returns" : {
32785 "items" : {
32786 "properties" : {},
32787 "type" : "object"
32788 },
32789 "links" : [
32790 {
32791 "href" : "{name}",
32792 "rel" : "child"
32793 }
32794 ],
32795 "type" : "array"
32796 }
32797 }
32798 },
32799 "leaf" : 0,
32800 "path" : "/nodes/{node}/lxc/{vmid}/firewall",
32801 "text" : "firewall"
32802 },
32803 {
32804 "info" : {
32805 "GET" : {
e9cd3bd4 32806 "allowtoken" : 1,
4d47f125
TL
32807 "description" : "Read VM RRD statistics (returns PNG)",
32808 "method" : "GET",
32809 "name" : "rrd",
32810 "parameters" : {
32811 "additionalProperties" : 0,
32812 "properties" : {
32813 "cf" : {
32814 "description" : "The RRD consolidation function",
32815 "enum" : [
32816 "AVERAGE",
32817 "MAX"
32818 ],
32819 "optional" : 1,
32820 "type" : "string"
32821 },
32822 "ds" : {
32823 "description" : "The list of datasources you want to display.",
32824 "format" : "pve-configid-list",
32825 "type" : "string",
32826 "typetext" : "<string>"
32827 },
32828 "node" : {
32829 "description" : "The cluster node name.",
32830 "format" : "pve-node",
32831 "type" : "string",
32832 "typetext" : "<string>"
32833 },
32834 "timeframe" : {
32835 "description" : "Specify the time frame you are interested in.",
32836 "enum" : [
32837 "hour",
32838 "day",
32839 "week",
32840 "month",
32841 "year"
32842 ],
32843 "type" : "string"
32844 },
32845 "vmid" : {
32846 "description" : "The (unique) ID of the VM.",
32847 "format" : "pve-vmid",
8dd66e12
TL
32848 "maximum" : 999999999,
32849 "minimum" : 100,
4d47f125 32850 "type" : "integer",
8dd66e12 32851 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
32852 }
32853 }
32854 },
32855 "permissions" : {
32856 "check" : [
32857 "perm",
32858 "/vms/{vmid}",
32859 [
32860 "VM.Audit"
32861 ]
32862 ]
32863 },
32864 "protected" : 1,
32865 "returns" : {
32866 "properties" : {
32867 "filename" : {
32868 "type" : "string"
32869 }
32870 },
32871 "type" : "object"
32872 }
32873 }
32874 },
32875 "leaf" : 1,
32876 "path" : "/nodes/{node}/lxc/{vmid}/rrd",
32877 "text" : "rrd"
32878 },
32879 {
32880 "info" : {
32881 "GET" : {
e9cd3bd4 32882 "allowtoken" : 1,
4d47f125
TL
32883 "description" : "Read VM RRD statistics",
32884 "method" : "GET",
32885 "name" : "rrddata",
32886 "parameters" : {
32887 "additionalProperties" : 0,
32888 "properties" : {
32889 "cf" : {
32890 "description" : "The RRD consolidation function",
32891 "enum" : [
32892 "AVERAGE",
32893 "MAX"
32894 ],
32895 "optional" : 1,
32896 "type" : "string"
32897 },
32898 "node" : {
32899 "description" : "The cluster node name.",
32900 "format" : "pve-node",
32901 "type" : "string",
32902 "typetext" : "<string>"
44660702 32903 },
4d47f125
TL
32904 "timeframe" : {
32905 "description" : "Specify the time frame you are interested in.",
32906 "enum" : [
32907 "hour",
32908 "day",
32909 "week",
32910 "month",
32911 "year"
44660702 32912 ],
4d47f125
TL
32913 "type" : "string"
32914 },
32915 "vmid" : {
32916 "description" : "The (unique) ID of the VM.",
32917 "format" : "pve-vmid",
8dd66e12
TL
32918 "maximum" : 999999999,
32919 "minimum" : 100,
4d47f125 32920 "type" : "integer",
8dd66e12 32921 "typetext" : "<integer> (100 - 999999999)"
44660702 32922 }
4d47f125
TL
32923 }
32924 },
32925 "permissions" : {
32926 "check" : [
32927 "perm",
32928 "/vms/{vmid}",
32929 [
32930 "VM.Audit"
32931 ]
32932 ]
32933 },
32934 "protected" : 1,
32935 "returns" : {
32936 "items" : {
32937 "properties" : {},
32938 "type" : "object"
44660702 32939 },
4d47f125
TL
32940 "type" : "array"
32941 }
32942 }
32943 },
32944 "leaf" : 1,
32945 "path" : "/nodes/{node}/lxc/{vmid}/rrddata",
32946 "text" : "rrddata"
32947 },
32948 {
32949 "info" : {
32950 "POST" : {
e9cd3bd4 32951 "allowtoken" : 1,
4d47f125
TL
32952 "description" : "Creates a TCP VNC proxy connections.",
32953 "method" : "POST",
32954 "name" : "vncproxy",
32955 "parameters" : {
32956 "additionalProperties" : 0,
32957 "properties" : {
32958 "height" : {
32959 "description" : "sets the height of the console in pixels.",
32960 "maximum" : 2160,
32961 "minimum" : 16,
32962 "optional" : 1,
32963 "type" : "integer",
32964 "typetext" : "<integer> (16 - 2160)"
44660702 32965 },
4d47f125
TL
32966 "node" : {
32967 "description" : "The cluster node name.",
32968 "format" : "pve-node",
32969 "type" : "string",
32970 "typetext" : "<string>"
44660702 32971 },
4d47f125
TL
32972 "vmid" : {
32973 "description" : "The (unique) ID of the VM.",
32974 "format" : "pve-vmid",
8dd66e12
TL
32975 "maximum" : 999999999,
32976 "minimum" : 100,
4d47f125 32977 "type" : "integer",
8dd66e12 32978 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
32979 },
32980 "websocket" : {
32981 "description" : "use websocket instead of standard VNC.",
32982 "optional" : 1,
32983 "type" : "boolean",
32984 "typetext" : "<boolean>"
32985 },
32986 "width" : {
32987 "description" : "sets the width of the console in pixels.",
32988 "maximum" : 4096,
32989 "minimum" : 16,
32990 "optional" : 1,
32991 "type" : "integer",
32992 "typetext" : "<integer> (16 - 4096)"
56122987
DM
32993 }
32994 }
44660702 32995 },
4d47f125
TL
32996 "permissions" : {
32997 "check" : [
32998 "perm",
32999 "/vms/{vmid}",
33000 [
33001 "VM.Console"
33002 ]
33003 ]
33004 },
33005 "protected" : 1,
33006 "returns" : {
33007 "additionalProperties" : 0,
33008 "properties" : {
33009 "cert" : {
33010 "type" : "string"
44660702 33011 },
4d47f125
TL
33012 "port" : {
33013 "type" : "integer"
33014 },
33015 "ticket" : {
33016 "type" : "string"
33017 },
33018 "upid" : {
33019 "type" : "string"
33020 },
33021 "user" : {
33022 "type" : "string"
33023 }
33024 }
33025 }
33026 }
33027 },
33028 "leaf" : 1,
33029 "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
33030 "text" : "vncproxy"
33031 },
33032 {
33033 "info" : {
33034 "POST" : {
e9cd3bd4 33035 "allowtoken" : 1,
4d47f125
TL
33036 "description" : "Creates a TCP proxy connection.",
33037 "method" : "POST",
33038 "name" : "termproxy",
33039 "parameters" : {
33040 "additionalProperties" : 0,
33041 "properties" : {
33042 "node" : {
33043 "description" : "The cluster node name.",
33044 "format" : "pve-node",
33045 "type" : "string",
33046 "typetext" : "<string>"
44660702 33047 },
4d47f125
TL
33048 "vmid" : {
33049 "description" : "The (unique) ID of the VM.",
33050 "format" : "pve-vmid",
8dd66e12
TL
33051 "maximum" : 999999999,
33052 "minimum" : 100,
4d47f125 33053 "type" : "integer",
8dd66e12 33054 "typetext" : "<integer> (100 - 999999999)"
44660702 33055 }
4d47f125
TL
33056 }
33057 },
33058 "permissions" : {
33059 "check" : [
33060 "perm",
33061 "/vms/{vmid}",
33062 [
33063 "VM.Console"
33064 ]
33065 ]
33066 },
33067 "protected" : 1,
33068 "returns" : {
33069 "additionalProperties" : 0,
33070 "properties" : {
33071 "port" : {
33072 "type" : "integer"
56122987 33073 },
4d47f125
TL
33074 "ticket" : {
33075 "type" : "string"
7aacca6f 33076 },
4d47f125
TL
33077 "upid" : {
33078 "type" : "string"
33079 },
33080 "user" : {
33081 "type" : "string"
33082 }
33083 }
33084 }
33085 }
33086 },
33087 "leaf" : 1,
33088 "path" : "/nodes/{node}/lxc/{vmid}/termproxy",
33089 "text" : "termproxy"
33090 },
33091 {
33092 "info" : {
33093 "GET" : {
e9cd3bd4 33094 "allowtoken" : 1,
4d47f125
TL
33095 "description" : "Opens a weksocket for VNC traffic.",
33096 "method" : "GET",
33097 "name" : "vncwebsocket",
33098 "parameters" : {
33099 "additionalProperties" : 0,
33100 "properties" : {
33101 "node" : {
33102 "description" : "The cluster node name.",
33103 "format" : "pve-node",
33104 "type" : "string",
33105 "typetext" : "<string>"
33106 },
33107 "port" : {
33108 "description" : "Port number returned by previous vncproxy call.",
33109 "maximum" : 5999,
33110 "minimum" : 5900,
33111 "type" : "integer",
33112 "typetext" : "<integer> (5900 - 5999)"
33113 },
33114 "vmid" : {
33115 "description" : "The (unique) ID of the VM.",
33116 "format" : "pve-vmid",
8dd66e12
TL
33117 "maximum" : 999999999,
33118 "minimum" : 100,
4d47f125 33119 "type" : "integer",
8dd66e12 33120 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
33121 },
33122 "vncticket" : {
33123 "description" : "Ticket from previous call to vncproxy.",
33124 "maxLength" : 512,
33125 "type" : "string",
33126 "typetext" : "<string>"
56122987
DM
33127 }
33128 }
33129 },
4d47f125
TL
33130 "permissions" : {
33131 "check" : [
33132 "perm",
33133 "/vms/{vmid}",
33134 [
33135 "VM.Console"
33136 ]
33137 ],
33138 "description" : "You also need to pass a valid ticket (vncticket)."
33139 },
33140 "returns" : {
33141 "properties" : {
33142 "port" : {
33143 "type" : "string"
33144 }
33145 },
33146 "type" : "object"
33147 }
33148 }
33149 },
33150 "leaf" : 1,
33151 "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
33152 "text" : "vncwebsocket"
33153 },
33154 {
33155 "info" : {
33156 "POST" : {
e9cd3bd4 33157 "allowtoken" : 1,
4d47f125
TL
33158 "description" : "Returns a SPICE configuration to connect to the CT.",
33159 "method" : "POST",
33160 "name" : "spiceproxy",
33161 "parameters" : {
33162 "additionalProperties" : 0,
33163 "properties" : {
33164 "node" : {
33165 "description" : "The cluster node name.",
33166 "format" : "pve-node",
33167 "type" : "string",
33168 "typetext" : "<string>"
56122987 33169 },
4d47f125
TL
33170 "proxy" : {
33171 "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).",
33172 "format" : "address",
33173 "optional" : 1,
33174 "type" : "string",
33175 "typetext" : "<string>"
44660702 33176 },
4d47f125
TL
33177 "vmid" : {
33178 "description" : "The (unique) ID of the VM.",
33179 "format" : "pve-vmid",
8dd66e12
TL
33180 "maximum" : 999999999,
33181 "minimum" : 100,
4d47f125 33182 "type" : "integer",
8dd66e12 33183 "typetext" : "<integer> (100 - 999999999)"
44660702 33184 }
56122987
DM
33185 }
33186 },
4d47f125
TL
33187 "permissions" : {
33188 "check" : [
33189 "perm",
33190 "/vms/{vmid}",
33191 [
33192 "VM.Console"
33193 ]
33194 ]
33195 },
33196 "protected" : 1,
33197 "proxyto" : "node",
33198 "returns" : {
33199 "additionalProperties" : 1,
33200 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
33201 "properties" : {
33202 "host" : {
33203 "type" : "string"
33204 },
33205 "password" : {
33206 "type" : "string"
33207 },
33208 "proxy" : {
33209 "type" : "string"
33210 },
33211 "tls-port" : {
33212 "type" : "integer"
33213 },
33214 "type" : {
33215 "type" : "string"
33216 }
33217 }
33218 }
33219 }
33220 },
33221 "leaf" : 1,
33222 "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
33223 "text" : "spiceproxy"
33224 },
81a3384d
TL
33225 {
33226 "info" : {
33227 "POST" : {
33228 "allowtoken" : 1,
33229 "description" : "Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!",
33230 "method" : "POST",
33231 "name" : "remote_migrate_vm",
33232 "parameters" : {
33233 "additionalProperties" : 0,
33234 "properties" : {
33235 "bwlimit" : {
33236 "default" : "migrate limit from datacenter or storage config",
33237 "description" : "Override I/O bandwidth limit (in KiB/s).",
33238 "minimum" : "0",
33239 "optional" : 1,
33240 "type" : "number",
33241 "typetext" : "<number> (0 - N)"
33242 },
33243 "delete" : {
33244 "default" : 0,
33245 "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.",
33246 "optional" : 1,
33247 "type" : "boolean",
33248 "typetext" : "<boolean>"
33249 },
33250 "node" : {
33251 "description" : "The cluster node name.",
33252 "format" : "pve-node",
33253 "type" : "string",
33254 "typetext" : "<string>"
33255 },
33256 "online" : {
33257 "description" : "Use online/live migration.",
33258 "optional" : 1,
33259 "type" : "boolean",
33260 "typetext" : "<boolean>"
33261 },
33262 "restart" : {
33263 "description" : "Use restart migration",
33264 "optional" : 1,
33265 "type" : "boolean",
33266 "typetext" : "<boolean>"
33267 },
33268 "target-bridge" : {
33269 "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.",
33270 "format" : "bridge-pair-list",
33271 "type" : "string",
33272 "typetext" : "<string>"
33273 },
33274 "target-endpoint" : {
33275 "description" : "Remote target endpoint",
33276 "format" : "proxmox-remote",
33277 "type" : "string",
33278 "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>]"
33279 },
33280 "target-storage" : {
33281 "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.",
33282 "format" : "storage-pair-list",
33283 "optional" : 0,
33284 "type" : "string",
33285 "typetext" : "<string>"
33286 },
33287 "target-vmid" : {
33288 "description" : "The (unique) ID of the VM.",
33289 "format" : "pve-vmid",
8dd66e12
TL
33290 "maximum" : 999999999,
33291 "minimum" : 100,
81a3384d
TL
33292 "optional" : 1,
33293 "type" : "integer",
8dd66e12 33294 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
33295 },
33296 "timeout" : {
33297 "default" : 180,
33298 "description" : "Timeout in seconds for shutdown for restart migration",
33299 "optional" : 1,
33300 "type" : "integer",
33301 "typetext" : "<integer>"
33302 },
33303 "vmid" : {
33304 "description" : "The (unique) ID of the VM.",
33305 "format" : "pve-vmid",
8dd66e12
TL
33306 "maximum" : 999999999,
33307 "minimum" : 100,
81a3384d 33308 "type" : "integer",
8dd66e12 33309 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
33310 }
33311 }
33312 },
33313 "permissions" : {
33314 "check" : [
33315 "perm",
33316 "/vms/{vmid}",
33317 [
33318 "VM.Migrate"
33319 ]
33320 ]
33321 },
33322 "protected" : 1,
33323 "proxyto" : "node",
33324 "returns" : {
33325 "description" : "the task ID.",
33326 "type" : "string"
33327 }
33328 }
33329 },
33330 "leaf" : 1,
33331 "path" : "/nodes/{node}/lxc/{vmid}/remote_migrate",
33332 "text" : "remote_migrate"
33333 },
4d47f125
TL
33334 {
33335 "info" : {
33336 "POST" : {
e9cd3bd4 33337 "allowtoken" : 1,
4d47f125
TL
33338 "description" : "Migrate the container to another node. Creates a new migration task.",
33339 "method" : "POST",
33340 "name" : "migrate_vm",
33341 "parameters" : {
33342 "additionalProperties" : 0,
33343 "properties" : {
95895385
TL
33344 "bwlimit" : {
33345 "default" : "migrate limit from datacenter or storage config",
33346 "description" : "Override I/O bandwidth limit (in KiB/s).",
33347 "minimum" : "0",
33348 "optional" : 1,
33349 "type" : "number",
33350 "typetext" : "<number> (0 - N)"
33351 },
4d47f125
TL
33352 "node" : {
33353 "description" : "The cluster node name.",
33354 "format" : "pve-node",
33355 "type" : "string",
33356 "typetext" : "<string>"
44660702 33357 },
4d47f125
TL
33358 "online" : {
33359 "description" : "Use online/live migration.",
33360 "optional" : 1,
33361 "type" : "boolean",
33362 "typetext" : "<boolean>"
33363 },
33364 "restart" : {
33365 "description" : "Use restart migration",
33366 "optional" : 1,
33367 "type" : "boolean",
33368 "typetext" : "<boolean>"
33369 },
33370 "target" : {
33371 "description" : "Target node.",
33372 "format" : "pve-node",
33373 "type" : "string",
33374 "typetext" : "<string>"
33375 },
c30bb419
TL
33376 "target-storage" : {
33377 "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.",
33378 "format" : "storage-pair-list",
33379 "optional" : 1,
33380 "type" : "string",
33381 "typetext" : "<string>"
33382 },
4d47f125
TL
33383 "timeout" : {
33384 "default" : 180,
33385 "description" : "Timeout in seconds for shutdown for restart migration",
33386 "optional" : 1,
33387 "type" : "integer",
33388 "typetext" : "<integer>"
33389 },
33390 "vmid" : {
33391 "description" : "The (unique) ID of the VM.",
33392 "format" : "pve-vmid",
8dd66e12
TL
33393 "maximum" : 999999999,
33394 "minimum" : 100,
4d47f125 33395 "type" : "integer",
8dd66e12 33396 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
33397 }
33398 }
33399 },
4d47f125
TL
33400 "permissions" : {
33401 "check" : [
33402 "perm",
33403 "/vms/{vmid}",
33404 [
33405 "VM.Migrate"
33406 ]
33407 ]
33408 },
33409 "protected" : 1,
33410 "proxyto" : "node",
33411 "returns" : {
33412 "description" : "the task ID.",
33413 "type" : "string"
33414 }
56122987 33415 }
4d47f125
TL
33416 },
33417 "leaf" : 1,
33418 "path" : "/nodes/{node}/lxc/{vmid}/migrate",
33419 "text" : "migrate"
33420 },
33421 {
56122987
DM
33422 "info" : {
33423 "GET" : {
e9cd3bd4 33424 "allowtoken" : 1,
4d47f125 33425 "description" : "Check if feature for virtual machine is available.",
44660702 33426 "method" : "GET",
4d47f125 33427 "name" : "vm_feature",
56122987 33428 "parameters" : {
44660702 33429 "additionalProperties" : 0,
56122987 33430 "properties" : {
4d47f125
TL
33431 "feature" : {
33432 "description" : "Feature to check.",
33433 "enum" : [
33434 "snapshot",
33435 "clone",
33436 "copy"
33437 ],
33438 "type" : "string"
33439 },
56122987 33440 "node" : {
44660702 33441 "description" : "The cluster node name.",
56122987 33442 "format" : "pve-node",
013dc89f
DM
33443 "type" : "string",
33444 "typetext" : "<string>"
44660702 33445 },
4d47f125
TL
33446 "snapname" : {
33447 "description" : "The name of the snapshot.",
33448 "format" : "pve-configid",
33449 "maxLength" : 40,
33450 "optional" : 1,
33451 "type" : "string",
33452 "typetext" : "<string>"
33453 },
44660702
DM
33454 "vmid" : {
33455 "description" : "The (unique) ID of the VM.",
33456 "format" : "pve-vmid",
8dd66e12
TL
33457 "maximum" : 999999999,
33458 "minimum" : 100,
4bd7df8b 33459 "type" : "integer",
8dd66e12 33460 "typetext" : "<integer> (100 - 999999999)"
56122987 33461 }
44660702
DM
33462 }
33463 },
33464 "permissions" : {
4d47f125
TL
33465 "check" : [
33466 "perm",
33467 "/vms/{vmid}",
33468 [
33469 "VM.Audit"
33470 ]
33471 ]
56122987 33472 },
4d47f125
TL
33473 "protected" : 1,
33474 "proxyto" : "node",
56122987 33475 "returns" : {
4d47f125
TL
33476 "properties" : {
33477 "hasFeature" : {
33478 "type" : "boolean"
33479 }
7aacca6f 33480 },
4d47f125
TL
33481 "type" : "object"
33482 }
33483 }
33484 },
33485 "leaf" : 1,
33486 "path" : "/nodes/{node}/lxc/{vmid}/feature",
33487 "text" : "feature"
33488 },
33489 {
33490 "info" : {
33491 "POST" : {
e9cd3bd4 33492 "allowtoken" : 1,
4d47f125
TL
33493 "description" : "Create a Template.",
33494 "method" : "POST",
33495 "name" : "template",
33496 "parameters" : {
33497 "additionalProperties" : 0,
33498 "properties" : {
33499 "node" : {
33500 "description" : "The cluster node name.",
33501 "format" : "pve-node",
33502 "type" : "string",
33503 "typetext" : "<string>"
33504 },
33505 "vmid" : {
33506 "description" : "The (unique) ID of the VM.",
33507 "format" : "pve-vmid",
8dd66e12
TL
33508 "maximum" : 999999999,
33509 "minimum" : 100,
4d47f125 33510 "type" : "integer",
8dd66e12 33511 "typetext" : "<integer> (100 - 999999999)"
56122987 33512 }
4d47f125
TL
33513 }
33514 },
33515 "permissions" : {
33516 "check" : [
33517 "perm",
33518 "/vms/{vmid}",
33519 [
33520 "VM.Allocate"
33521 ]
44660702 33522 ],
4d47f125
TL
33523 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
33524 },
33525 "protected" : 1,
33526 "proxyto" : "node",
33527 "returns" : {
33528 "type" : "null"
56122987
DM
33529 }
33530 }
33531 },
4d47f125
TL
33532 "leaf" : 1,
33533 "path" : "/nodes/{node}/lxc/{vmid}/template",
33534 "text" : "template"
56122987
DM
33535 },
33536 {
56122987 33537 "info" : {
4d47f125 33538 "POST" : {
e9cd3bd4 33539 "allowtoken" : 1,
4d47f125
TL
33540 "description" : "Create a container clone/copy",
33541 "method" : "POST",
33542 "name" : "clone_vm",
56122987 33543 "parameters" : {
7aacca6f 33544 "additionalProperties" : 0,
56122987 33545 "properties" : {
95895385
TL
33546 "bwlimit" : {
33547 "default" : "clone limit from datacenter or storage config",
33548 "description" : "Override I/O bandwidth limit (in KiB/s).",
33549 "minimum" : "0",
33550 "optional" : 1,
33551 "type" : "number",
33552 "typetext" : "<number> (0 - N)"
33553 },
4d47f125
TL
33554 "description" : {
33555 "description" : "Description for the new CT.",
44660702 33556 "optional" : 1,
4d47f125
TL
33557 "type" : "string",
33558 "typetext" : "<string>"
44660702 33559 },
4d47f125
TL
33560 "full" : {
33561 "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.",
33562 "optional" : 1,
33563 "type" : "boolean",
33564 "typetext" : "<boolean>"
33565 },
33566 "hostname" : {
33567 "description" : "Set a hostname for the new CT.",
33568 "format" : "dns-name",
33569 "optional" : 1,
013dc89f
DM
33570 "type" : "string",
33571 "typetext" : "<string>"
44660702 33572 },
4d47f125
TL
33573 "newid" : {
33574 "description" : "VMID for the clone.",
33575 "format" : "pve-vmid",
8dd66e12
TL
33576 "maximum" : 999999999,
33577 "minimum" : 100,
4d47f125 33578 "type" : "integer",
8dd66e12 33579 "typetext" : "<integer> (100 - 999999999)"
4d47f125 33580 },
7aacca6f
DM
33581 "node" : {
33582 "description" : "The cluster node name.",
44660702 33583 "format" : "pve-node",
013dc89f
DM
33584 "type" : "string",
33585 "typetext" : "<string>"
56122987 33586 },
4d47f125
TL
33587 "pool" : {
33588 "description" : "Add the new CT to the specified pool.",
33589 "format" : "pve-poolid",
33590 "optional" : 1,
33591 "type" : "string",
33592 "typetext" : "<string>"
33593 },
33594 "snapname" : {
33595 "description" : "The name of the snapshot.",
33596 "format" : "pve-configid",
33597 "maxLength" : 40,
33598 "optional" : 1,
33599 "type" : "string",
33600 "typetext" : "<string>"
33601 },
33602 "storage" : {
33603 "description" : "Target storage for full clone.",
33604 "format" : "pve-storage-id",
33605 "optional" : 1,
33606 "type" : "string",
33607 "typetext" : "<string>"
33608 },
33609 "target" : {
33610 "description" : "Target node. Only allowed if the original VM is on shared storage.",
33611 "format" : "pve-node",
33612 "optional" : 1,
33613 "type" : "string",
33614 "typetext" : "<string>"
33615 },
7aacca6f 33616 "vmid" : {
44660702 33617 "description" : "The (unique) ID of the VM.",
7aacca6f 33618 "format" : "pve-vmid",
8dd66e12
TL
33619 "maximum" : 999999999,
33620 "minimum" : 100,
4bd7df8b 33621 "type" : "integer",
8dd66e12 33622 "typetext" : "<integer> (100 - 999999999)"
56122987 33623 }
7aacca6f
DM
33624 }
33625 },
33626 "permissions" : {
33627 "check" : [
4d47f125 33628 "and",
7aacca6f 33629 [
4d47f125
TL
33630 "perm",
33631 "/vms/{vmid}",
33632 [
33633 "VM.Clone"
33634 ]
33635 ],
33636 [
33637 "or",
33638 [
33639 "perm",
33640 "/vms/{newid}",
33641 [
33642 "VM.Allocate"
33643 ]
33644 ],
33645 [
33646 "perm",
33647 "/pool/{pool}",
33648 [
33649 "VM.Allocate"
33650 ],
33651 "require_param",
33652 "pool"
33653 ]
7aacca6f 33654 ]
4d47f125 33655 ],
159464a9 33656 "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 33657 },
44660702 33658 "protected" : 1,
4d47f125 33659 "proxyto" : "node",
7aacca6f 33660 "returns" : {
4d47f125 33661 "type" : "string"
7aacca6f 33662 }
56122987 33663 }
7aacca6f 33664 },
44660702 33665 "leaf" : 1,
4d47f125
TL
33666 "path" : "/nodes/{node}/lxc/{vmid}/clone",
33667 "text" : "clone"
56122987
DM
33668 },
33669 {
56122987 33670 "info" : {
4d47f125 33671 "PUT" : {
e9cd3bd4 33672 "allowtoken" : 1,
4d47f125
TL
33673 "description" : "Resize a container mount point.",
33674 "method" : "PUT",
33675 "name" : "resize_vm",
56122987 33676 "parameters" : {
7aacca6f 33677 "additionalProperties" : 0,
56122987 33678 "properties" : {
4d47f125
TL
33679 "digest" : {
33680 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
33681 "maxLength" : 40,
33682 "optional" : 1,
33683 "type" : "string",
33684 "typetext" : "<string>"
33685 },
33686 "disk" : {
33687 "description" : "The disk you want to resize.",
44660702 33688 "enum" : [
4d47f125
TL
33689 "rootfs",
33690 "mp0",
33691 "mp1",
33692 "mp2",
33693 "mp3",
33694 "mp4",
33695 "mp5",
33696 "mp6",
33697 "mp7",
33698 "mp8",
33699 "mp9",
33700 "mp10",
33701 "mp11",
33702 "mp12",
33703 "mp13",
33704 "mp14",
33705 "mp15",
33706 "mp16",
33707 "mp17",
33708 "mp18",
33709 "mp19",
33710 "mp20",
33711 "mp21",
33712 "mp22",
33713 "mp23",
33714 "mp24",
33715 "mp25",
33716 "mp26",
33717 "mp27",
33718 "mp28",
33719 "mp29",
33720 "mp30",
33721 "mp31",
33722 "mp32",
33723 "mp33",
33724 "mp34",
33725 "mp35",
33726 "mp36",
33727 "mp37",
33728 "mp38",
33729 "mp39",
33730 "mp40",
33731 "mp41",
33732 "mp42",
33733 "mp43",
33734 "mp44",
33735 "mp45",
33736 "mp46",
33737 "mp47",
33738 "mp48",
33739 "mp49",
33740 "mp50",
33741 "mp51",
33742 "mp52",
33743 "mp53",
33744 "mp54",
33745 "mp55",
33746 "mp56",
33747 "mp57",
33748 "mp58",
33749 "mp59",
33750 "mp60",
33751 "mp61",
33752 "mp62",
33753 "mp63",
33754 "mp64",
33755 "mp65",
33756 "mp66",
33757 "mp67",
33758 "mp68",
33759 "mp69",
33760 "mp70",
33761 "mp71",
33762 "mp72",
33763 "mp73",
33764 "mp74",
33765 "mp75",
33766 "mp76",
33767 "mp77",
33768 "mp78",
33769 "mp79",
33770 "mp80",
33771 "mp81",
33772 "mp82",
33773 "mp83",
33774 "mp84",
33775 "mp85",
33776 "mp86",
33777 "mp87",
33778 "mp88",
33779 "mp89",
33780 "mp90",
33781 "mp91",
33782 "mp92",
33783 "mp93",
33784 "mp94",
33785 "mp95",
33786 "mp96",
33787 "mp97",
33788 "mp98",
33789 "mp99",
33790 "mp100",
33791 "mp101",
33792 "mp102",
33793 "mp103",
33794 "mp104",
33795 "mp105",
33796 "mp106",
33797 "mp107",
33798 "mp108",
33799 "mp109",
33800 "mp110",
33801 "mp111",
33802 "mp112",
33803 "mp113",
33804 "mp114",
33805 "mp115",
33806 "mp116",
33807 "mp117",
33808 "mp118",
33809 "mp119",
33810 "mp120",
33811 "mp121",
33812 "mp122",
33813 "mp123",
33814 "mp124",
33815 "mp125",
33816 "mp126",
33817 "mp127",
33818 "mp128",
33819 "mp129",
33820 "mp130",
33821 "mp131",
33822 "mp132",
33823 "mp133",
33824 "mp134",
33825 "mp135",
33826 "mp136",
33827 "mp137",
33828 "mp138",
33829 "mp139",
33830 "mp140",
33831 "mp141",
33832 "mp142",
33833 "mp143",
33834 "mp144",
33835 "mp145",
33836 "mp146",
33837 "mp147",
33838 "mp148",
33839 "mp149",
33840 "mp150",
33841 "mp151",
33842 "mp152",
33843 "mp153",
33844 "mp154",
33845 "mp155",
33846 "mp156",
33847 "mp157",
33848 "mp158",
33849 "mp159",
33850 "mp160",
33851 "mp161",
33852 "mp162",
33853 "mp163",
33854 "mp164",
33855 "mp165",
33856 "mp166",
33857 "mp167",
33858 "mp168",
33859 "mp169",
33860 "mp170",
33861 "mp171",
33862 "mp172",
33863 "mp173",
33864 "mp174",
33865 "mp175",
33866 "mp176",
33867 "mp177",
33868 "mp178",
33869 "mp179",
33870 "mp180",
33871 "mp181",
33872 "mp182",
33873 "mp183",
33874 "mp184",
33875 "mp185",
33876 "mp186",
33877 "mp187",
33878 "mp188",
33879 "mp189",
33880 "mp190",
33881 "mp191",
33882 "mp192",
33883 "mp193",
33884 "mp194",
33885 "mp195",
33886 "mp196",
33887 "mp197",
33888 "mp198",
33889 "mp199",
33890 "mp200",
33891 "mp201",
33892 "mp202",
33893 "mp203",
33894 "mp204",
33895 "mp205",
33896 "mp206",
33897 "mp207",
33898 "mp208",
33899 "mp209",
33900 "mp210",
33901 "mp211",
33902 "mp212",
33903 "mp213",
33904 "mp214",
33905 "mp215",
33906 "mp216",
33907 "mp217",
33908 "mp218",
33909 "mp219",
33910 "mp220",
33911 "mp221",
33912 "mp222",
33913 "mp223",
33914 "mp224",
33915 "mp225",
33916 "mp226",
33917 "mp227",
33918 "mp228",
33919 "mp229",
33920 "mp230",
33921 "mp231",
33922 "mp232",
33923 "mp233",
33924 "mp234",
33925 "mp235",
33926 "mp236",
33927 "mp237",
33928 "mp238",
33929 "mp239",
33930 "mp240",
33931 "mp241",
33932 "mp242",
33933 "mp243",
33934 "mp244",
33935 "mp245",
33936 "mp246",
33937 "mp247",
33938 "mp248",
33939 "mp249",
33940 "mp250",
33941 "mp251",
33942 "mp252",
33943 "mp253",
33944 "mp254",
33945 "mp255"
44660702 33946 ],
44660702
DM
33947 "type" : "string"
33948 },
7aacca6f 33949 "node" : {
44660702 33950 "description" : "The cluster node name.",
7aacca6f 33951 "format" : "pve-node",
013dc89f
DM
33952 "type" : "string",
33953 "typetext" : "<string>"
7aacca6f 33954 },
4d47f125
TL
33955 "size" : {
33956 "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.",
33957 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
44660702 33958 "type" : "string"
7aacca6f
DM
33959 },
33960 "vmid" : {
33961 "description" : "The (unique) ID of the VM.",
44660702 33962 "format" : "pve-vmid",
8dd66e12
TL
33963 "maximum" : 999999999,
33964 "minimum" : 100,
4bd7df8b 33965 "type" : "integer",
8dd66e12 33966 "typetext" : "<integer> (100 - 999999999)"
56122987 33967 }
56122987
DM
33968 }
33969 },
56122987
DM
33970 "permissions" : {
33971 "check" : [
33972 "perm",
33973 "/vms/{vmid}",
33974 [
4d47f125
TL
33975 "VM.Config.Disk"
33976 ],
33977 "any",
33978 1
56122987
DM
33979 ]
33980 },
7aacca6f 33981 "protected" : 1,
4d47f125 33982 "proxyto" : "node",
7aacca6f 33983 "returns" : {
4d47f125
TL
33984 "description" : "the task ID.",
33985 "type" : "string"
44660702 33986 }
56122987
DM
33987 }
33988 },
44660702 33989 "leaf" : 1,
4d47f125
TL
33990 "path" : "/nodes/{node}/lxc/{vmid}/resize",
33991 "text" : "resize"
56122987
DM
33992 },
33993 {
33994 "info" : {
33995 "POST" : {
e9cd3bd4 33996 "allowtoken" : 1,
5370fa8c 33997 "description" : "Move a rootfs-/mp-volume to a different storage or to a different container.",
44660702 33998 "method" : "POST",
4d47f125 33999 "name" : "move_volume",
7aacca6f 34000 "parameters" : {
44660702 34001 "additionalProperties" : 0,
7aacca6f 34002 "properties" : {
95895385
TL
34003 "bwlimit" : {
34004 "default" : "clone limit from datacenter or storage config",
34005 "description" : "Override I/O bandwidth limit (in KiB/s).",
34006 "minimum" : "0",
34007 "optional" : 1,
34008 "type" : "number",
34009 "typetext" : "<number> (0 - N)"
34010 },
4d47f125
TL
34011 "delete" : {
34012 "default" : 0,
34013 "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.",
5d9c884c 34014 "optional" : 1,
4d47f125
TL
34015 "type" : "boolean",
34016 "typetext" : "<boolean>"
34017 },
34018 "digest" : {
5370fa8c 34019 "description" : "Prevent changes if current configuration file has different SHA1 \" .\n\t\t \"digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
34020 "maxLength" : 40,
34021 "optional" : 1,
34022 "type" : "string",
34023 "typetext" : "<string>"
5d9c884c 34024 },
44660702
DM
34025 "node" : {
34026 "description" : "The cluster node name.",
34027 "format" : "pve-node",
013dc89f
DM
34028 "type" : "string",
34029 "typetext" : "<string>"
44660702 34030 },
4d47f125
TL
34031 "storage" : {
34032 "description" : "Target Storage.",
34033 "format" : "pve-storage-id",
5370fa8c 34034 "optional" : 1,
4d47f125
TL
34035 "type" : "string",
34036 "typetext" : "<string>"
34037 },
5370fa8c
TL
34038 "target-digest" : {
34039 "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.",
34040 "maxLength" : 40,
34041 "optional" : 1,
34042 "type" : "string",
34043 "typetext" : "<string>"
34044 },
34045 "target-vmid" : {
44660702 34046 "description" : "The (unique) ID of the VM.",
7aacca6f 34047 "format" : "pve-vmid",
8dd66e12
TL
34048 "maximum" : 999999999,
34049 "minimum" : 100,
5370fa8c 34050 "optional" : 1,
4bd7df8b 34051 "type" : "integer",
8dd66e12 34052 "typetext" : "<integer> (100 - 999999999)"
7aacca6f 34053 },
5370fa8c
TL
34054 "target-volume" : {
34055 "description" : "The config key the volume will be moved to. Default is the source volume key.",
4d47f125
TL
34056 "enum" : [
34057 "rootfs",
34058 "mp0",
34059 "mp1",
34060 "mp2",
34061 "mp3",
34062 "mp4",
34063 "mp5",
34064 "mp6",
34065 "mp7",
34066 "mp8",
34067 "mp9",
34068 "mp10",
34069 "mp11",
34070 "mp12",
34071 "mp13",
34072 "mp14",
34073 "mp15",
34074 "mp16",
34075 "mp17",
34076 "mp18",
34077 "mp19",
34078 "mp20",
34079 "mp21",
34080 "mp22",
34081 "mp23",
34082 "mp24",
34083 "mp25",
34084 "mp26",
34085 "mp27",
34086 "mp28",
34087 "mp29",
34088 "mp30",
34089 "mp31",
34090 "mp32",
34091 "mp33",
34092 "mp34",
34093 "mp35",
34094 "mp36",
34095 "mp37",
34096 "mp38",
34097 "mp39",
34098 "mp40",
34099 "mp41",
34100 "mp42",
34101 "mp43",
34102 "mp44",
34103 "mp45",
34104 "mp46",
34105 "mp47",
34106 "mp48",
34107 "mp49",
34108 "mp50",
34109 "mp51",
34110 "mp52",
34111 "mp53",
34112 "mp54",
34113 "mp55",
34114 "mp56",
34115 "mp57",
34116 "mp58",
34117 "mp59",
34118 "mp60",
34119 "mp61",
34120 "mp62",
34121 "mp63",
34122 "mp64",
34123 "mp65",
34124 "mp66",
34125 "mp67",
34126 "mp68",
34127 "mp69",
34128 "mp70",
34129 "mp71",
34130 "mp72",
34131 "mp73",
34132 "mp74",
34133 "mp75",
34134 "mp76",
34135 "mp77",
34136 "mp78",
34137 "mp79",
34138 "mp80",
34139 "mp81",
34140 "mp82",
34141 "mp83",
34142 "mp84",
34143 "mp85",
34144 "mp86",
34145 "mp87",
34146 "mp88",
34147 "mp89",
34148 "mp90",
34149 "mp91",
34150 "mp92",
34151 "mp93",
34152 "mp94",
34153 "mp95",
34154 "mp96",
34155 "mp97",
34156 "mp98",
34157 "mp99",
34158 "mp100",
34159 "mp101",
34160 "mp102",
34161 "mp103",
34162 "mp104",
34163 "mp105",
34164 "mp106",
34165 "mp107",
34166 "mp108",
34167 "mp109",
34168 "mp110",
34169 "mp111",
34170 "mp112",
34171 "mp113",
34172 "mp114",
34173 "mp115",
34174 "mp116",
34175 "mp117",
34176 "mp118",
34177 "mp119",
34178 "mp120",
34179 "mp121",
34180 "mp122",
34181 "mp123",
34182 "mp124",
34183 "mp125",
34184 "mp126",
34185 "mp127",
34186 "mp128",
34187 "mp129",
34188 "mp130",
34189 "mp131",
34190 "mp132",
34191 "mp133",
34192 "mp134",
34193 "mp135",
34194 "mp136",
34195 "mp137",
34196 "mp138",
34197 "mp139",
34198 "mp140",
34199 "mp141",
34200 "mp142",
34201 "mp143",
34202 "mp144",
34203 "mp145",
34204 "mp146",
34205 "mp147",
34206 "mp148",
34207 "mp149",
34208 "mp150",
34209 "mp151",
34210 "mp152",
34211 "mp153",
34212 "mp154",
34213 "mp155",
34214 "mp156",
34215 "mp157",
34216 "mp158",
34217 "mp159",
34218 "mp160",
34219 "mp161",
34220 "mp162",
34221 "mp163",
34222 "mp164",
34223 "mp165",
34224 "mp166",
34225 "mp167",
34226 "mp168",
34227 "mp169",
34228 "mp170",
34229 "mp171",
34230 "mp172",
34231 "mp173",
34232 "mp174",
34233 "mp175",
34234 "mp176",
34235 "mp177",
34236 "mp178",
34237 "mp179",
34238 "mp180",
34239 "mp181",
34240 "mp182",
34241 "mp183",
34242 "mp184",
34243 "mp185",
34244 "mp186",
34245 "mp187",
34246 "mp188",
34247 "mp189",
34248 "mp190",
34249 "mp191",
34250 "mp192",
34251 "mp193",
34252 "mp194",
34253 "mp195",
34254 "mp196",
34255 "mp197",
34256 "mp198",
34257 "mp199",
34258 "mp200",
34259 "mp201",
34260 "mp202",
34261 "mp203",
34262 "mp204",
34263 "mp205",
34264 "mp206",
34265 "mp207",
34266 "mp208",
34267 "mp209",
34268 "mp210",
34269 "mp211",
34270 "mp212",
34271 "mp213",
34272 "mp214",
34273 "mp215",
34274 "mp216",
34275 "mp217",
34276 "mp218",
34277 "mp219",
34278 "mp220",
34279 "mp221",
34280 "mp222",
34281 "mp223",
34282 "mp224",
34283 "mp225",
34284 "mp226",
34285 "mp227",
34286 "mp228",
34287 "mp229",
34288 "mp230",
34289 "mp231",
34290 "mp232",
34291 "mp233",
34292 "mp234",
34293 "mp235",
34294 "mp236",
34295 "mp237",
34296 "mp238",
34297 "mp239",
34298 "mp240",
34299 "mp241",
34300 "mp242",
34301 "mp243",
34302 "mp244",
34303 "mp245",
34304 "mp246",
34305 "mp247",
34306 "mp248",
34307 "mp249",
34308 "mp250",
34309 "mp251",
34310 "mp252",
34311 "mp253",
34312 "mp254",
5370fa8c
TL
34313 "mp255",
34314 "unused0",
34315 "unused1",
34316 "unused2",
34317 "unused3",
34318 "unused4",
34319 "unused5",
34320 "unused6",
34321 "unused7",
34322 "unused8",
34323 "unused9",
34324 "unused10",
34325 "unused11",
34326 "unused12",
34327 "unused13",
34328 "unused14",
34329 "unused15",
34330 "unused16",
34331 "unused17",
34332 "unused18",
34333 "unused19",
34334 "unused20",
34335 "unused21",
34336 "unused22",
34337 "unused23",
34338 "unused24",
34339 "unused25",
34340 "unused26",
34341 "unused27",
34342 "unused28",
34343 "unused29",
34344 "unused30",
34345 "unused31",
34346 "unused32",
34347 "unused33",
34348 "unused34",
34349 "unused35",
34350 "unused36",
34351 "unused37",
34352 "unused38",
34353 "unused39",
34354 "unused40",
34355 "unused41",
34356 "unused42",
34357 "unused43",
34358 "unused44",
34359 "unused45",
34360 "unused46",
34361 "unused47",
34362 "unused48",
34363 "unused49",
34364 "unused50",
34365 "unused51",
34366 "unused52",
34367 "unused53",
34368 "unused54",
34369 "unused55",
34370 "unused56",
34371 "unused57",
34372 "unused58",
34373 "unused59",
34374 "unused60",
34375 "unused61",
34376 "unused62",
34377 "unused63",
34378 "unused64",
34379 "unused65",
34380 "unused66",
34381 "unused67",
34382 "unused68",
34383 "unused69",
34384 "unused70",
34385 "unused71",
34386 "unused72",
34387 "unused73",
34388 "unused74",
34389 "unused75",
34390 "unused76",
34391 "unused77",
34392 "unused78",
34393 "unused79",
34394 "unused80",
34395 "unused81",
34396 "unused82",
34397 "unused83",
34398 "unused84",
34399 "unused85",
34400 "unused86",
34401 "unused87",
34402 "unused88",
34403 "unused89",
34404 "unused90",
34405 "unused91",
34406 "unused92",
34407 "unused93",
34408 "unused94",
34409 "unused95",
34410 "unused96",
34411 "unused97",
34412 "unused98",
34413 "unused99",
34414 "unused100",
34415 "unused101",
34416 "unused102",
34417 "unused103",
34418 "unused104",
34419 "unused105",
34420 "unused106",
34421 "unused107",
34422 "unused108",
34423 "unused109",
34424 "unused110",
34425 "unused111",
34426 "unused112",
34427 "unused113",
34428 "unused114",
34429 "unused115",
34430 "unused116",
34431 "unused117",
34432 "unused118",
34433 "unused119",
34434 "unused120",
34435 "unused121",
34436 "unused122",
34437 "unused123",
34438 "unused124",
34439 "unused125",
34440 "unused126",
34441 "unused127",
34442 "unused128",
34443 "unused129",
34444 "unused130",
34445 "unused131",
34446 "unused132",
34447 "unused133",
34448 "unused134",
34449 "unused135",
34450 "unused136",
34451 "unused137",
34452 "unused138",
34453 "unused139",
34454 "unused140",
34455 "unused141",
34456 "unused142",
34457 "unused143",
34458 "unused144",
34459 "unused145",
34460 "unused146",
34461 "unused147",
34462 "unused148",
34463 "unused149",
34464 "unused150",
34465 "unused151",
34466 "unused152",
34467 "unused153",
34468 "unused154",
34469 "unused155",
34470 "unused156",
34471 "unused157",
34472 "unused158",
34473 "unused159",
34474 "unused160",
34475 "unused161",
34476 "unused162",
34477 "unused163",
34478 "unused164",
34479 "unused165",
34480 "unused166",
34481 "unused167",
34482 "unused168",
34483 "unused169",
34484 "unused170",
34485 "unused171",
34486 "unused172",
34487 "unused173",
34488 "unused174",
34489 "unused175",
34490 "unused176",
34491 "unused177",
34492 "unused178",
34493 "unused179",
34494 "unused180",
34495 "unused181",
34496 "unused182",
34497 "unused183",
34498 "unused184",
34499 "unused185",
34500 "unused186",
34501 "unused187",
34502 "unused188",
34503 "unused189",
34504 "unused190",
34505 "unused191",
34506 "unused192",
34507 "unused193",
34508 "unused194",
34509 "unused195",
34510 "unused196",
34511 "unused197",
34512 "unused198",
34513 "unused199",
34514 "unused200",
34515 "unused201",
34516 "unused202",
34517 "unused203",
34518 "unused204",
34519 "unused205",
34520 "unused206",
34521 "unused207",
34522 "unused208",
34523 "unused209",
34524 "unused210",
34525 "unused211",
34526 "unused212",
34527 "unused213",
34528 "unused214",
34529 "unused215",
34530 "unused216",
34531 "unused217",
34532 "unused218",
34533 "unused219",
34534 "unused220",
34535 "unused221",
34536 "unused222",
34537 "unused223",
34538 "unused224",
34539 "unused225",
34540 "unused226",
34541 "unused227",
34542 "unused228",
34543 "unused229",
34544 "unused230",
34545 "unused231",
34546 "unused232",
34547 "unused233",
34548 "unused234",
34549 "unused235",
34550 "unused236",
34551 "unused237",
34552 "unused238",
34553 "unused239",
34554 "unused240",
34555 "unused241",
34556 "unused242",
34557 "unused243",
34558 "unused244",
34559 "unused245",
34560 "unused246",
34561 "unused247",
34562 "unused248",
34563 "unused249",
34564 "unused250",
34565 "unused251",
34566 "unused252",
34567 "unused253",
34568 "unused254",
34569 "unused255"
34570 ],
34571 "optional" : 1,
34572 "type" : "string"
34573 },
34574 "vmid" : {
34575 "description" : "The (unique) ID of the VM.",
34576 "format" : "pve-vmid",
8dd66e12
TL
34577 "maximum" : 999999999,
34578 "minimum" : 100,
5370fa8c 34579 "type" : "integer",
8dd66e12 34580 "typetext" : "<integer> (100 - 999999999)"
5370fa8c
TL
34581 },
34582 "volume" : {
34583 "description" : "Volume which will be moved.",
34584 "enum" : [
34585 "rootfs",
34586 "mp0",
34587 "mp1",
34588 "mp2",
34589 "mp3",
34590 "mp4",
34591 "mp5",
34592 "mp6",
34593 "mp7",
34594 "mp8",
34595 "mp9",
34596 "mp10",
34597 "mp11",
34598 "mp12",
34599 "mp13",
34600 "mp14",
34601 "mp15",
34602 "mp16",
34603 "mp17",
34604 "mp18",
34605 "mp19",
34606 "mp20",
34607 "mp21",
34608 "mp22",
34609 "mp23",
34610 "mp24",
34611 "mp25",
34612 "mp26",
34613 "mp27",
34614 "mp28",
34615 "mp29",
34616 "mp30",
34617 "mp31",
34618 "mp32",
34619 "mp33",
34620 "mp34",
34621 "mp35",
34622 "mp36",
34623 "mp37",
34624 "mp38",
34625 "mp39",
34626 "mp40",
34627 "mp41",
34628 "mp42",
34629 "mp43",
34630 "mp44",
34631 "mp45",
34632 "mp46",
34633 "mp47",
34634 "mp48",
34635 "mp49",
34636 "mp50",
34637 "mp51",
34638 "mp52",
34639 "mp53",
34640 "mp54",
34641 "mp55",
34642 "mp56",
34643 "mp57",
34644 "mp58",
34645 "mp59",
34646 "mp60",
34647 "mp61",
34648 "mp62",
34649 "mp63",
34650 "mp64",
34651 "mp65",
34652 "mp66",
34653 "mp67",
34654 "mp68",
34655 "mp69",
34656 "mp70",
34657 "mp71",
34658 "mp72",
34659 "mp73",
34660 "mp74",
34661 "mp75",
34662 "mp76",
34663 "mp77",
34664 "mp78",
34665 "mp79",
34666 "mp80",
34667 "mp81",
34668 "mp82",
34669 "mp83",
34670 "mp84",
34671 "mp85",
34672 "mp86",
34673 "mp87",
34674 "mp88",
34675 "mp89",
34676 "mp90",
34677 "mp91",
34678 "mp92",
34679 "mp93",
34680 "mp94",
34681 "mp95",
34682 "mp96",
34683 "mp97",
34684 "mp98",
34685 "mp99",
34686 "mp100",
34687 "mp101",
34688 "mp102",
34689 "mp103",
34690 "mp104",
34691 "mp105",
34692 "mp106",
34693 "mp107",
34694 "mp108",
34695 "mp109",
34696 "mp110",
34697 "mp111",
34698 "mp112",
34699 "mp113",
34700 "mp114",
34701 "mp115",
34702 "mp116",
34703 "mp117",
34704 "mp118",
34705 "mp119",
34706 "mp120",
34707 "mp121",
34708 "mp122",
34709 "mp123",
34710 "mp124",
34711 "mp125",
34712 "mp126",
34713 "mp127",
34714 "mp128",
34715 "mp129",
34716 "mp130",
34717 "mp131",
34718 "mp132",
34719 "mp133",
34720 "mp134",
34721 "mp135",
34722 "mp136",
34723 "mp137",
34724 "mp138",
34725 "mp139",
34726 "mp140",
34727 "mp141",
34728 "mp142",
34729 "mp143",
34730 "mp144",
34731 "mp145",
34732 "mp146",
34733 "mp147",
34734 "mp148",
34735 "mp149",
34736 "mp150",
34737 "mp151",
34738 "mp152",
34739 "mp153",
34740 "mp154",
34741 "mp155",
34742 "mp156",
34743 "mp157",
34744 "mp158",
34745 "mp159",
34746 "mp160",
34747 "mp161",
34748 "mp162",
34749 "mp163",
34750 "mp164",
34751 "mp165",
34752 "mp166",
34753 "mp167",
34754 "mp168",
34755 "mp169",
34756 "mp170",
34757 "mp171",
34758 "mp172",
34759 "mp173",
34760 "mp174",
34761 "mp175",
34762 "mp176",
34763 "mp177",
34764 "mp178",
34765 "mp179",
34766 "mp180",
34767 "mp181",
34768 "mp182",
34769 "mp183",
34770 "mp184",
34771 "mp185",
34772 "mp186",
34773 "mp187",
34774 "mp188",
34775 "mp189",
34776 "mp190",
34777 "mp191",
34778 "mp192",
34779 "mp193",
34780 "mp194",
34781 "mp195",
34782 "mp196",
34783 "mp197",
34784 "mp198",
34785 "mp199",
34786 "mp200",
34787 "mp201",
34788 "mp202",
34789 "mp203",
34790 "mp204",
34791 "mp205",
34792 "mp206",
34793 "mp207",
34794 "mp208",
34795 "mp209",
34796 "mp210",
34797 "mp211",
34798 "mp212",
34799 "mp213",
34800 "mp214",
34801 "mp215",
34802 "mp216",
34803 "mp217",
34804 "mp218",
34805 "mp219",
34806 "mp220",
34807 "mp221",
34808 "mp222",
34809 "mp223",
34810 "mp224",
34811 "mp225",
34812 "mp226",
34813 "mp227",
34814 "mp228",
34815 "mp229",
34816 "mp230",
34817 "mp231",
34818 "mp232",
34819 "mp233",
34820 "mp234",
34821 "mp235",
34822 "mp236",
34823 "mp237",
34824 "mp238",
34825 "mp239",
34826 "mp240",
34827 "mp241",
34828 "mp242",
34829 "mp243",
34830 "mp244",
34831 "mp245",
34832 "mp246",
34833 "mp247",
34834 "mp248",
34835 "mp249",
34836 "mp250",
34837 "mp251",
34838 "mp252",
34839 "mp253",
34840 "mp254",
34841 "mp255",
34842 "unused0",
34843 "unused1",
34844 "unused2",
34845 "unused3",
34846 "unused4",
34847 "unused5",
34848 "unused6",
34849 "unused7",
34850 "unused8",
34851 "unused9",
34852 "unused10",
34853 "unused11",
34854 "unused12",
34855 "unused13",
34856 "unused14",
34857 "unused15",
34858 "unused16",
34859 "unused17",
34860 "unused18",
34861 "unused19",
34862 "unused20",
34863 "unused21",
34864 "unused22",
34865 "unused23",
34866 "unused24",
34867 "unused25",
34868 "unused26",
34869 "unused27",
34870 "unused28",
34871 "unused29",
34872 "unused30",
34873 "unused31",
34874 "unused32",
34875 "unused33",
34876 "unused34",
34877 "unused35",
34878 "unused36",
34879 "unused37",
34880 "unused38",
34881 "unused39",
34882 "unused40",
34883 "unused41",
34884 "unused42",
34885 "unused43",
34886 "unused44",
34887 "unused45",
34888 "unused46",
34889 "unused47",
34890 "unused48",
34891 "unused49",
34892 "unused50",
34893 "unused51",
34894 "unused52",
34895 "unused53",
34896 "unused54",
34897 "unused55",
34898 "unused56",
34899 "unused57",
34900 "unused58",
34901 "unused59",
34902 "unused60",
34903 "unused61",
34904 "unused62",
34905 "unused63",
34906 "unused64",
34907 "unused65",
34908 "unused66",
34909 "unused67",
34910 "unused68",
34911 "unused69",
34912 "unused70",
34913 "unused71",
34914 "unused72",
34915 "unused73",
34916 "unused74",
34917 "unused75",
34918 "unused76",
34919 "unused77",
34920 "unused78",
34921 "unused79",
34922 "unused80",
34923 "unused81",
34924 "unused82",
34925 "unused83",
34926 "unused84",
34927 "unused85",
34928 "unused86",
34929 "unused87",
34930 "unused88",
34931 "unused89",
34932 "unused90",
34933 "unused91",
34934 "unused92",
34935 "unused93",
34936 "unused94",
34937 "unused95",
34938 "unused96",
34939 "unused97",
34940 "unused98",
34941 "unused99",
34942 "unused100",
34943 "unused101",
34944 "unused102",
34945 "unused103",
34946 "unused104",
34947 "unused105",
34948 "unused106",
34949 "unused107",
34950 "unused108",
34951 "unused109",
34952 "unused110",
34953 "unused111",
34954 "unused112",
34955 "unused113",
34956 "unused114",
34957 "unused115",
34958 "unused116",
34959 "unused117",
34960 "unused118",
34961 "unused119",
34962 "unused120",
34963 "unused121",
34964 "unused122",
34965 "unused123",
34966 "unused124",
34967 "unused125",
34968 "unused126",
34969 "unused127",
34970 "unused128",
34971 "unused129",
34972 "unused130",
34973 "unused131",
34974 "unused132",
34975 "unused133",
34976 "unused134",
34977 "unused135",
34978 "unused136",
34979 "unused137",
34980 "unused138",
34981 "unused139",
34982 "unused140",
34983 "unused141",
34984 "unused142",
34985 "unused143",
34986 "unused144",
34987 "unused145",
34988 "unused146",
34989 "unused147",
34990 "unused148",
34991 "unused149",
34992 "unused150",
34993 "unused151",
34994 "unused152",
34995 "unused153",
34996 "unused154",
34997 "unused155",
34998 "unused156",
34999 "unused157",
35000 "unused158",
35001 "unused159",
35002 "unused160",
35003 "unused161",
35004 "unused162",
35005 "unused163",
35006 "unused164",
35007 "unused165",
35008 "unused166",
35009 "unused167",
35010 "unused168",
35011 "unused169",
35012 "unused170",
35013 "unused171",
35014 "unused172",
35015 "unused173",
35016 "unused174",
35017 "unused175",
35018 "unused176",
35019 "unused177",
35020 "unused178",
35021 "unused179",
35022 "unused180",
35023 "unused181",
35024 "unused182",
35025 "unused183",
35026 "unused184",
35027 "unused185",
35028 "unused186",
35029 "unused187",
35030 "unused188",
35031 "unused189",
35032 "unused190",
35033 "unused191",
35034 "unused192",
35035 "unused193",
35036 "unused194",
35037 "unused195",
35038 "unused196",
35039 "unused197",
35040 "unused198",
35041 "unused199",
35042 "unused200",
35043 "unused201",
35044 "unused202",
35045 "unused203",
35046 "unused204",
35047 "unused205",
35048 "unused206",
35049 "unused207",
35050 "unused208",
35051 "unused209",
35052 "unused210",
35053 "unused211",
35054 "unused212",
35055 "unused213",
35056 "unused214",
35057 "unused215",
35058 "unused216",
35059 "unused217",
35060 "unused218",
35061 "unused219",
35062 "unused220",
35063 "unused221",
35064 "unused222",
35065 "unused223",
35066 "unused224",
35067 "unused225",
35068 "unused226",
35069 "unused227",
35070 "unused228",
35071 "unused229",
35072 "unused230",
35073 "unused231",
35074 "unused232",
35075 "unused233",
35076 "unused234",
35077 "unused235",
35078 "unused236",
35079 "unused237",
35080 "unused238",
35081 "unused239",
35082 "unused240",
35083 "unused241",
35084 "unused242",
35085 "unused243",
35086 "unused244",
35087 "unused245",
35088 "unused246",
35089 "unused247",
35090 "unused248",
35091 "unused249",
35092 "unused250",
35093 "unused251",
35094 "unused252",
35095 "unused253",
35096 "unused254",
35097 "unused255"
4d47f125
TL
35098 ],
35099 "type" : "string"
7aacca6f 35100 }
44660702 35101 }
7aacca6f 35102 },
56122987
DM
35103 "permissions" : {
35104 "check" : [
5370fa8c
TL
35105 "perm",
35106 "/vms/{vmid}",
4d47f125 35107 [
5370fa8c 35108 "VM.Config.Disk"
56122987 35109 ]
4d47f125 35110 ],
5370fa8c 35111 "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
35112 },
35113 "protected" : 1,
35114 "proxyto" : "node",
35115 "returns" : {
35116 "type" : "string"
35117 }
35118 }
35119 },
35120 "leaf" : 1,
35121 "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
35122 "text" : "move_volume"
1c532546
TL
35123 },
35124 {
35125 "info" : {
35126 "GET" : {
e9cd3bd4 35127 "allowtoken" : 1,
1c532546
TL
35128 "description" : "Get container configuration, including pending changes.",
35129 "method" : "GET",
35130 "name" : "vm_pending",
35131 "parameters" : {
35132 "additionalProperties" : 0,
35133 "properties" : {
35134 "node" : {
35135 "description" : "The cluster node name.",
35136 "format" : "pve-node",
35137 "type" : "string",
35138 "typetext" : "<string>"
35139 },
35140 "vmid" : {
35141 "description" : "The (unique) ID of the VM.",
35142 "format" : "pve-vmid",
8dd66e12
TL
35143 "maximum" : 999999999,
35144 "minimum" : 100,
1c532546 35145 "type" : "integer",
8dd66e12 35146 "typetext" : "<integer> (100 - 999999999)"
1c532546
TL
35147 }
35148 }
35149 },
35150 "permissions" : {
35151 "check" : [
35152 "perm",
35153 "/vms/{vmid}",
35154 [
35155 "VM.Audit"
35156 ]
35157 ]
35158 },
35159 "proxyto" : "node",
35160 "returns" : {
35161 "items" : {
35162 "properties" : {
35163 "delete" : {
35164 "description" : "Indicates a pending delete request if present and not 0.",
35165 "maximum" : 2,
35166 "minimum" : 0,
35167 "optional" : 1,
35168 "type" : "integer"
35169 },
35170 "key" : {
35171 "description" : "Configuration option name.",
35172 "type" : "string"
35173 },
35174 "pending" : {
35175 "description" : "Pending value.",
35176 "optional" : 1,
35177 "type" : "string"
35178 },
35179 "value" : {
35180 "description" : "Current value.",
35181 "optional" : 1,
35182 "type" : "string"
35183 }
35184 },
35185 "type" : "object"
35186 },
35187 "type" : "array"
35188 }
35189 }
35190 },
35191 "leaf" : 1,
35192 "path" : "/nodes/{node}/lxc/{vmid}/pending",
35193 "text" : "pending"
81a3384d 35194 },
bd92b745
TL
35195 {
35196 "info" : {
35197 "GET" : {
35198 "allowtoken" : 1,
35199 "description" : "Get IP addresses of the specified container interface.",
35200 "method" : "GET",
35201 "name" : "ip",
35202 "parameters" : {
35203 "additionalProperties" : 0,
35204 "properties" : {
35205 "node" : {
35206 "description" : "The cluster node name.",
35207 "format" : "pve-node",
35208 "type" : "string",
35209 "typetext" : "<string>"
35210 },
35211 "vmid" : {
35212 "description" : "The (unique) ID of the VM.",
35213 "format" : "pve-vmid",
35214 "maximum" : 999999999,
35215 "minimum" : 100,
35216 "type" : "integer",
35217 "typetext" : "<integer> (100 - 999999999)"
35218 }
35219 }
35220 },
35221 "permissions" : {
35222 "check" : [
35223 "perm",
35224 "/vms/{vmid}",
35225 [
35226 "VM.Audit"
35227 ]
35228 ]
35229 },
35230 "protected" : 1,
35231 "returns" : {
35232 "items" : {
35233 "properties" : {
35234 "hwaddr" : {
35235 "description" : "The MAC address of the interface",
35236 "optional" : 0,
35237 "type" : "string"
35238 },
35239 "inet" : {
35240 "description" : "The IPv4 address of the interface",
35241 "optional" : 1,
35242 "type" : "string"
35243 },
35244 "inet6" : {
35245 "description" : "The IPv6 address of the interface",
35246 "optional" : 1,
35247 "type" : "string"
35248 },
35249 "name" : {
35250 "description" : "The name of the interface",
35251 "optional" : 0,
35252 "type" : "string"
35253 }
35254 },
35255 "type" : "object"
35256 },
35257 "type" : "array"
35258 }
35259 }
35260 },
35261 "leaf" : 1,
35262 "path" : "/nodes/{node}/lxc/{vmid}/interfaces",
35263 "text" : "interfaces"
35264 },
81a3384d
TL
35265 {
35266 "info" : {
35267 "POST" : {
35268 "allowtoken" : 1,
35269 "description" : "Migration tunnel endpoint - only for internal use by CT migration.",
35270 "method" : "POST",
35271 "name" : "mtunnel",
35272 "parameters" : {
35273 "additionalProperties" : 0,
35274 "properties" : {
35275 "bridges" : {
35276 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
35277 "format" : "pve-bridge-id-list",
35278 "optional" : 1,
35279 "type" : "string",
35280 "typetext" : "<string>"
35281 },
35282 "node" : {
35283 "description" : "The cluster node name.",
35284 "format" : "pve-node",
35285 "type" : "string",
35286 "typetext" : "<string>"
35287 },
35288 "storages" : {
35289 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
35290 "format" : "pve-storage-id-list",
35291 "optional" : 1,
35292 "type" : "string",
35293 "typetext" : "<string>"
35294 },
35295 "vmid" : {
35296 "description" : "The (unique) ID of the VM.",
35297 "format" : "pve-vmid",
8dd66e12
TL
35298 "maximum" : 999999999,
35299 "minimum" : 100,
81a3384d 35300 "type" : "integer",
8dd66e12 35301 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
35302 }
35303 }
35304 },
35305 "permissions" : {
35306 "check" : [
35307 "and",
35308 [
35309 "perm",
35310 "/vms/{vmid}",
35311 [
35312 "VM.Allocate"
35313 ]
35314 ],
35315 [
35316 "perm",
35317 "/",
35318 [
35319 "Sys.Incoming"
35320 ]
35321 ]
35322 ],
35323 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
35324 },
35325 "protected" : 1,
35326 "returns" : {
35327 "additionalProperties" : 0,
35328 "properties" : {
35329 "socket" : {
35330 "type" : "string"
35331 },
35332 "ticket" : {
35333 "type" : "string"
35334 },
35335 "upid" : {
35336 "type" : "string"
35337 }
35338 }
35339 }
35340 }
35341 },
35342 "leaf" : 1,
35343 "path" : "/nodes/{node}/lxc/{vmid}/mtunnel",
35344 "text" : "mtunnel"
35345 },
35346 {
35347 "info" : {
35348 "GET" : {
35349 "allowtoken" : 1,
35350 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
35351 "method" : "GET",
35352 "name" : "mtunnelwebsocket",
35353 "parameters" : {
35354 "additionalProperties" : 0,
35355 "properties" : {
35356 "node" : {
35357 "description" : "The cluster node name.",
35358 "format" : "pve-node",
35359 "type" : "string",
35360 "typetext" : "<string>"
35361 },
35362 "socket" : {
35363 "description" : "unix socket to forward to",
35364 "type" : "string",
35365 "typetext" : "<string>"
35366 },
35367 "ticket" : {
35368 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
35369 "type" : "string",
35370 "typetext" : "<string>"
35371 },
35372 "vmid" : {
35373 "description" : "The (unique) ID of the VM.",
35374 "format" : "pve-vmid",
8dd66e12
TL
35375 "maximum" : 999999999,
35376 "minimum" : 100,
81a3384d 35377 "type" : "integer",
8dd66e12 35378 "typetext" : "<integer> (100 - 999999999)"
81a3384d
TL
35379 }
35380 }
35381 },
35382 "permissions" : {
35383 "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.",
35384 "user" : "all"
35385 },
35386 "returns" : {
35387 "properties" : {
35388 "port" : {
35389 "optional" : 1,
35390 "type" : "string"
35391 },
35392 "socket" : {
35393 "optional" : 1,
35394 "type" : "string"
35395 }
35396 },
35397 "type" : "object"
35398 }
35399 }
35400 },
35401 "leaf" : 1,
35402 "path" : "/nodes/{node}/lxc/{vmid}/mtunnelwebsocket",
35403 "text" : "mtunnelwebsocket"
4d47f125
TL
35404 }
35405 ],
35406 "info" : {
35407 "DELETE" : {
e9cd3bd4 35408 "allowtoken" : 1,
4d47f125
TL
35409 "description" : "Destroy the container (also delete all uses files).",
35410 "method" : "DELETE",
35411 "name" : "destroy_vm",
35412 "parameters" : {
35413 "additionalProperties" : 0,
35414 "properties" : {
d2656385
TL
35415 "destroy-unreferenced-disks" : {
35416 "description" : "If set, destroy additionally all disks with the VMID from all enabled storages which are not referenced in the config.",
35417 "optional" : 1,
35418 "type" : "boolean",
35419 "typetext" : "<boolean>"
35420 },
c5aa7e14
TL
35421 "force" : {
35422 "default" : 0,
35423 "description" : "Force destroy, even if running.",
35424 "optional" : 1,
35425 "type" : "boolean",
35426 "typetext" : "<boolean>"
35427 },
4d47f125
TL
35428 "node" : {
35429 "description" : "The cluster node name.",
35430 "format" : "pve-node",
35431 "type" : "string",
35432 "typetext" : "<string>"
35433 },
1c532546 35434 "purge" : {
c5aa7e14
TL
35435 "default" : 0,
35436 "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
35437 "optional" : 1,
35438 "type" : "boolean",
35439 "typetext" : "<boolean>"
35440 },
4d47f125
TL
35441 "vmid" : {
35442 "description" : "The (unique) ID of the VM.",
35443 "format" : "pve-vmid",
8dd66e12
TL
35444 "maximum" : 999999999,
35445 "minimum" : 100,
4d47f125 35446 "type" : "integer",
8dd66e12 35447 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
35448 }
35449 }
35450 },
35451 "permissions" : {
35452 "check" : [
35453 "perm",
35454 "/vms/{vmid}",
35455 [
35456 "VM.Allocate"
35457 ]
35458 ]
35459 },
35460 "protected" : 1,
35461 "proxyto" : "node",
35462 "returns" : {
35463 "type" : "string"
35464 }
35465 },
35466 "GET" : {
e9cd3bd4 35467 "allowtoken" : 1,
4d47f125
TL
35468 "description" : "Directory index",
35469 "method" : "GET",
35470 "name" : "vmdiridx",
35471 "parameters" : {
35472 "additionalProperties" : 0,
35473 "properties" : {
35474 "node" : {
35475 "description" : "The cluster node name.",
35476 "format" : "pve-node",
35477 "type" : "string",
35478 "typetext" : "<string>"
56122987 35479 },
4d47f125
TL
35480 "vmid" : {
35481 "description" : "The (unique) ID of the VM.",
35482 "format" : "pve-vmid",
8dd66e12
TL
35483 "maximum" : 999999999,
35484 "minimum" : 100,
4d47f125 35485 "type" : "integer",
8dd66e12 35486 "typetext" : "<integer> (100 - 999999999)"
56122987
DM
35487 }
35488 }
35489 },
4d47f125
TL
35490 "permissions" : {
35491 "user" : "all"
35492 },
35493 "proxyto" : "node",
35494 "returns" : {
35495 "items" : {
35496 "properties" : {
35497 "subdir" : {
35498 "type" : "string"
35a75dd3
DM
35499 }
35500 },
4d47f125
TL
35501 "type" : "object"
35502 },
35503 "links" : [
35504 {
35505 "href" : "{subdir}",
35506 "rel" : "child"
35a75dd3 35507 }
4d47f125
TL
35508 ],
35509 "type" : "array"
35510 }
35511 }
35512 },
35513 "leaf" : 0,
35514 "path" : "/nodes/{node}/lxc/{vmid}",
35515 "text" : "{vmid}"
35516 }
35517 ],
35518 "info" : {
35519 "GET" : {
e9cd3bd4 35520 "allowtoken" : 1,
4d47f125
TL
35521 "description" : "LXC container index (per node).",
35522 "method" : "GET",
35523 "name" : "vmlist",
35524 "parameters" : {
35525 "additionalProperties" : 0,
35526 "properties" : {
35527 "node" : {
35528 "description" : "The cluster node name.",
35529 "format" : "pve-node",
35530 "type" : "string",
35531 "typetext" : "<string>"
35532 }
35533 }
35534 },
35535 "permissions" : {
35536 "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
35537 "user" : "all"
35538 },
35539 "protected" : 1,
35540 "proxyto" : "node",
35541 "returns" : {
35542 "items" : {
35543 "properties" : {
35544 "cpus" : {
35545 "description" : "Maximum usable CPUs.",
35546 "optional" : 1,
35547 "type" : "number"
35548 },
95895385
TL
35549 "lock" : {
35550 "description" : "The current config lock, if any.",
35551 "optional" : 1,
35552 "type" : "string"
35553 },
4d47f125
TL
35554 "maxdisk" : {
35555 "description" : "Root disk size in bytes.",
35556 "optional" : 1,
35557 "renderer" : "bytes",
35558 "type" : "integer"
35559 },
35560 "maxmem" : {
35561 "description" : "Maximum memory in bytes.",
35562 "optional" : 1,
35563 "renderer" : "bytes",
35564 "type" : "integer"
35565 },
35566 "maxswap" : {
35567 "description" : "Maximum SWAP memory in bytes.",
35568 "optional" : 1,
35569 "renderer" : "bytes",
35570 "type" : "integer"
35571 },
35572 "name" : {
35573 "description" : "Container name.",
35574 "optional" : 1,
35575 "type" : "string"
35576 },
35577 "status" : {
35578 "description" : "LXC Container status.",
35579 "enum" : [
35580 "stopped",
35581 "running"
35582 ],
35583 "type" : "string"
35584 },
5c1699e5
TL
35585 "tags" : {
35586 "description" : "The current configured tags, if any.",
35587 "optional" : 1,
35588 "type" : "string"
35589 },
4d47f125
TL
35590 "uptime" : {
35591 "description" : "Uptime.",
35592 "optional" : 1,
35593 "renderer" : "duration",
35594 "type" : "integer"
35595 },
35596 "vmid" : {
35597 "description" : "The (unique) ID of the VM.",
35598 "format" : "pve-vmid",
8dd66e12
TL
35599 "maximum" : 999999999,
35600 "minimum" : 100,
4d47f125 35601 "type" : "integer"
35a75dd3
DM
35602 }
35603 },
4d47f125 35604 "type" : "object"
35a75dd3 35605 },
4d47f125
TL
35606 "links" : [
35607 {
35608 "href" : "{vmid}",
35609 "rel" : "child"
35610 }
35611 ],
35612 "type" : "array"
35613 }
35614 },
35615 "POST" : {
e9cd3bd4 35616 "allowtoken" : 1,
4d47f125
TL
35617 "description" : "Create or restore a container.",
35618 "method" : "POST",
35619 "name" : "create_vm",
35620 "parameters" : {
35621 "additionalProperties" : 0,
35622 "properties" : {
35623 "arch" : {
35624 "default" : "amd64",
35625 "description" : "OS architecture type.",
35626 "enum" : [
35627 "amd64",
35628 "i386",
35629 "arm64",
9d2e98ed
TL
35630 "armhf",
35631 "riscv32",
35632 "riscv64"
4d47f125
TL
35633 ],
35634 "optional" : 1,
35635 "type" : "string"
35636 },
35637 "bwlimit" : {
95895385
TL
35638 "default" : "restore limit from datacenter or storage config",
35639 "description" : "Override I/O bandwidth limit (in KiB/s).",
4d47f125
TL
35640 "minimum" : "0",
35641 "optional" : 1,
35642 "type" : "number",
35643 "typetext" : "<number> (0 - N)"
35644 },
35645 "cmode" : {
35646 "default" : "tty",
35647 "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).",
35648 "enum" : [
35649 "shell",
35650 "console",
35651 "tty"
35652 ],
35653 "optional" : 1,
35654 "type" : "string"
35655 },
35656 "console" : {
35657 "default" : 1,
35658 "description" : "Attach a console device (/dev/console) to the container.",
35659 "optional" : 1,
35660 "type" : "boolean",
35661 "typetext" : "<boolean>"
35662 },
35663 "cores" : {
35664 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 35665 "maximum" : 8192,
4d47f125
TL
35666 "minimum" : 1,
35667 "optional" : 1,
35668 "type" : "integer",
4772952b 35669 "typetext" : "<integer> (1 - 8192)"
4d47f125
TL
35670 },
35671 "cpulimit" : {
35672 "default" : 0,
35673 "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 35674 "maximum" : 8192,
4d47f125
TL
35675 "minimum" : 0,
35676 "optional" : 1,
35677 "type" : "number",
4772952b 35678 "typetext" : "<number> (0 - 8192)"
4d47f125
TL
35679 },
35680 "cpuunits" : {
4e7f60c2
TL
35681 "default" : "cgroup v1: 1024, cgroup v2: 100",
35682 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
35683 "maximum" : 500000,
35684 "minimum" : 0,
35685 "optional" : 1,
35686 "type" : "integer",
4e7f60c2
TL
35687 "typetext" : "<integer> (0 - 500000)",
35688 "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 35689 },
739d4d64
TL
35690 "debug" : {
35691 "default" : 0,
35692 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
35693 "optional" : 1,
35694 "type" : "boolean",
35695 "typetext" : "<boolean>"
35696 },
4d47f125 35697 "description" : {
8f4d9c87
TL
35698 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
35699 "maxLength" : 8192,
4d47f125
TL
35700 "optional" : 1,
35701 "type" : "string",
35702 "typetext" : "<string>"
35703 },
35704 "features" : {
35705 "description" : "Allow containers access to advanced features.",
35706 "format" : {
c5aa7e14
TL
35707 "force_rw_sys" : {
35708 "default" : 0,
35709 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
35710 "optional" : 1,
35711 "type" : "boolean"
35712 },
e2d681b3
TL
35713 "fuse" : {
35714 "default" : 0,
35715 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
35716 "optional" : 1,
35717 "type" : "boolean"
35718 },
4d47f125
TL
35719 "keyctl" : {
35720 "default" : 0,
35721 "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.",
35722 "optional" : 1,
35723 "type" : "boolean"
7aacca6f 35724 },
c5aa7e14
TL
35725 "mknod" : {
35726 "default" : 0,
35727 "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.",
35728 "optional" : 1,
35729 "type" : "boolean"
35730 },
4d47f125
TL
35731 "mount" : {
35732 "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.",
35733 "format_description" : "fstype;fstype;...",
35734 "optional" : 1,
95895385 35735 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125 35736 "type" : "string"
56122987 35737 },
4d47f125
TL
35738 "nesting" : {
35739 "default" : 0,
35740 "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.",
35741 "optional" : 1,
35742 "type" : "boolean"
44660702 35743 }
4d47f125
TL
35744 },
35745 "optional" : 1,
35746 "type" : "string",
c5aa7e14 35747 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
56122987 35748 },
4d47f125
TL
35749 "force" : {
35750 "description" : "Allow to overwrite existing container.",
35751 "optional" : 1,
35752 "type" : "boolean",
35753 "typetext" : "<boolean>"
35754 },
5f26e15b
TL
35755 "hookscript" : {
35756 "description" : "Script that will be exectued during various steps in the containers lifetime.",
35757 "format" : "pve-volume-id",
35758 "optional" : 1,
35759 "type" : "string",
35760 "typetext" : "<string>"
35761 },
4d47f125
TL
35762 "hostname" : {
35763 "description" : "Set a host name for the container.",
35764 "format" : "dns-name",
35765 "maxLength" : 255,
35766 "optional" : 1,
35767 "type" : "string",
35768 "typetext" : "<string>"
35769 },
35770 "ignore-unpack-errors" : {
35771 "description" : "Ignore errors when extracting the template.",
35772 "optional" : 1,
35773 "type" : "boolean",
35774 "typetext" : "<boolean>"
35775 },
35776 "lock" : {
4e7f60c2 35777 "description" : "Lock/unlock the container.",
4d47f125
TL
35778 "enum" : [
35779 "backup",
bb4c8cf8 35780 "create",
1c532546 35781 "destroyed",
4d47f125 35782 "disk",
bb4c8cf8 35783 "fstrim",
4d47f125
TL
35784 "migrate",
35785 "mounted",
35786 "rollback",
35787 "snapshot",
35788 "snapshot-delete"
35789 ],
35790 "optional" : 1,
35791 "type" : "string"
35792 },
35793 "memory" : {
35794 "default" : 512,
4e7f60c2 35795 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
35796 "minimum" : 16,
35797 "optional" : 1,
35798 "type" : "integer",
35799 "typetext" : "<integer> (16 - N)"
35800 },
35801 "mp[n]" : {
d2656385 35802 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
35803 "format" : {
35804 "acl" : {
35805 "description" : "Explicitly enable or disable ACL support.",
35806 "optional" : 1,
35807 "type" : "boolean"
56122987 35808 },
4d47f125
TL
35809 "backup" : {
35810 "description" : "Whether to include the mount point in backups.",
35811 "optional" : 1,
35812 "type" : "boolean",
35813 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
56122987 35814 },
7cbed89a
TL
35815 "mountoptions" : {
35816 "description" : "Extra mount options for rootfs/mps.",
35817 "format_description" : "opt[;opt...]",
35818 "optional" : 1,
c30bb419 35819 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
35820 "type" : "string"
35821 },
4d47f125
TL
35822 "mp" : {
35823 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
35824 "format" : "pve-lxc-mp-string",
35825 "format_description" : "Path",
35826 "type" : "string",
35827 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
7aacca6f 35828 },
4d47f125
TL
35829 "quota" : {
35830 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
35831 "optional" : 1,
35832 "type" : "boolean"
35833 },
35834 "replicate" : {
35835 "default" : 1,
35836 "description" : "Will include this volume to a storage replica job.",
35837 "optional" : 1,
35838 "type" : "boolean"
35839 },
35840 "ro" : {
35841 "description" : "Read-only mount point",
35842 "optional" : 1,
35843 "type" : "boolean"
35844 },
35845 "shared" : {
35846 "default" : 0,
35847 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
35848 "optional" : 1,
35849 "type" : "boolean",
35850 "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 35851 },
4d47f125
TL
35852 "size" : {
35853 "description" : "Volume size (read only value).",
35854 "format" : "disk-size",
35855 "format_description" : "DiskSize",
35856 "optional" : 1,
35857 "type" : "string"
35858 },
35859 "volume" : {
35860 "default_key" : 1,
35861 "description" : "Volume, device or directory to mount into the container.",
35862 "format" : "pve-lxc-mp-string",
35863 "format_description" : "volume",
44660702
DM
35864 "type" : "string"
35865 }
4d47f125
TL
35866 },
35867 "optional" : 1,
35868 "type" : "string",
7cbed89a 35869 "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 35870 },
4d47f125
TL
35871 "nameserver" : {
35872 "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 35873 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
35874 "optional" : 1,
35875 "type" : "string",
35876 "typetext" : "<string>"
35877 },
35878 "net[n]" : {
35879 "description" : "Specifies network interfaces for the container.",
35880 "format" : {
35881 "bridge" : {
35882 "description" : "Bridge to attach the network device to.",
35883 "format_description" : "bridge",
35884 "optional" : 1,
35885 "pattern" : "[-_.\\w\\d]+",
35886 "type" : "string"
56122987 35887 },
4d47f125
TL
35888 "firewall" : {
35889 "description" : "Controls whether this interface's firewall rules should be used.",
35890 "optional" : 1,
35891 "type" : "boolean"
56122987 35892 },
4d47f125
TL
35893 "gw" : {
35894 "description" : "Default gateway for IPv4 traffic.",
35895 "format" : "ipv4",
35896 "format_description" : "GatewayIPv4",
35897 "optional" : 1,
35898 "type" : "string"
35899 },
35900 "gw6" : {
35901 "description" : "Default gateway for IPv6 traffic.",
35902 "format" : "ipv6",
35903 "format_description" : "GatewayIPv6",
35904 "optional" : 1,
35905 "type" : "string"
35906 },
35907 "hwaddr" : {
35908 "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 35909 "format" : "mac-addr",
4d47f125
TL
35910 "format_description" : "XX:XX:XX:XX:XX:XX",
35911 "optional" : 1,
95895385
TL
35912 "type" : "string",
35913 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
35914 },
35915 "ip" : {
35916 "description" : "IPv4 address in CIDR format.",
35917 "format" : "pve-ipv4-config",
35918 "format_description" : "(IPv4/CIDR|dhcp|manual)",
35919 "optional" : 1,
35920 "type" : "string"
35921 },
35922 "ip6" : {
35923 "description" : "IPv6 address in CIDR format.",
35924 "format" : "pve-ipv6-config",
35925 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
35926 "optional" : 1,
35927 "type" : "string"
35928 },
9d2e98ed
TL
35929 "link_down" : {
35930 "description" : "Whether this interface should be disconnected (like pulling the plug).",
35931 "optional" : 1,
35932 "type" : "boolean"
35933 },
4d47f125
TL
35934 "mtu" : {
35935 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 35936 "maximum" : 65535,
4d47f125
TL
35937 "minimum" : 64,
35938 "optional" : 1,
35939 "type" : "integer"
35940 },
35941 "name" : {
35942 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
35943 "format_description" : "string",
35944 "pattern" : "[-_.\\w\\d]+",
35945 "type" : "string"
35946 },
35947 "rate" : {
35948 "description" : "Apply rate limiting to the interface",
35949 "format_description" : "mbps",
35950 "optional" : 1,
35951 "type" : "number"
35952 },
35953 "tag" : {
35954 "description" : "VLAN tag for this interface.",
35955 "maximum" : 4094,
35956 "minimum" : 1,
35957 "optional" : 1,
35958 "type" : "integer"
35959 },
35960 "trunks" : {
35961 "description" : "VLAN ids to pass through the interface",
35962 "format_description" : "vlanid[;vlanid...]",
35963 "optional" : 1,
35964 "pattern" : "(?^:\\d+(?:;\\d+)*)",
35965 "type" : "string"
35966 },
35967 "type" : {
35968 "description" : "Network interface type.",
35969 "enum" : [
35970 "veth"
35971 ],
35972 "optional" : 1,
35973 "type" : "string"
7aacca6f 35974 }
4d47f125
TL
35975 },
35976 "optional" : 1,
35977 "type" : "string",
9d2e98ed 35978 "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 35979 },
4d47f125
TL
35980 "node" : {
35981 "description" : "The cluster node name.",
35982 "format" : "pve-node",
35983 "type" : "string",
35984 "typetext" : "<string>"
35985 },
35986 "onboot" : {
35987 "default" : 0,
4e7f60c2 35988 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
35989 "optional" : 1,
35990 "type" : "boolean",
35991 "typetext" : "<boolean>"
35992 },
35993 "ostemplate" : {
35994 "description" : "The OS template or backup file.",
35995 "maxLength" : 255,
35996 "type" : "string",
35997 "typetext" : "<string>"
35998 },
35999 "ostype" : {
36000 "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.",
36001 "enum" : [
36002 "debian",
d2656385 36003 "devuan",
4d47f125
TL
36004 "ubuntu",
36005 "centos",
36006 "fedora",
36007 "opensuse",
36008 "archlinux",
36009 "alpine",
36010 "gentoo",
7af2edf9 36011 "nixos",
4d47f125
TL
36012 "unmanaged"
36013 ],
36014 "optional" : 1,
36015 "type" : "string"
36016 },
36017 "password" : {
36018 "description" : "Sets root password inside container.",
36019 "minLength" : 5,
36020 "optional" : 1,
36021 "type" : "string",
36022 "typetext" : "<string>"
36023 },
36024 "pool" : {
36025 "description" : "Add the VM to the specified pool.",
36026 "format" : "pve-poolid",
36027 "optional" : 1,
36028 "type" : "string",
36029 "typetext" : "<string>"
36030 },
36031 "protection" : {
36032 "default" : 0,
36033 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
36034 "optional" : 1,
36035 "type" : "boolean",
36036 "typetext" : "<boolean>"
36037 },
36038 "restore" : {
36039 "description" : "Mark this as restore task.",
36040 "optional" : 1,
36041 "type" : "boolean",
36042 "typetext" : "<boolean>"
36043 },
36044 "rootfs" : {
36045 "description" : "Use volume as container root.",
36046 "format" : {
36047 "acl" : {
36048 "description" : "Explicitly enable or disable ACL support.",
36049 "optional" : 1,
36050 "type" : "boolean"
56122987 36051 },
7cbed89a
TL
36052 "mountoptions" : {
36053 "description" : "Extra mount options for rootfs/mps.",
36054 "format_description" : "opt[;opt...]",
36055 "optional" : 1,
c30bb419 36056 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
36057 "type" : "string"
36058 },
4d47f125
TL
36059 "quota" : {
36060 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
36061 "optional" : 1,
36062 "type" : "boolean"
7aacca6f 36063 },
4d47f125
TL
36064 "replicate" : {
36065 "default" : 1,
36066 "description" : "Will include this volume to a storage replica job.",
36067 "optional" : 1,
36068 "type" : "boolean"
36069 },
36070 "ro" : {
36071 "description" : "Read-only mount point",
36072 "optional" : 1,
36073 "type" : "boolean"
36074 },
36075 "shared" : {
36076 "default" : 0,
36077 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
36078 "optional" : 1,
36079 "type" : "boolean",
36080 "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!"
36081 },
36082 "size" : {
36083 "description" : "Volume size (read only value).",
36084 "format" : "disk-size",
36085 "format_description" : "DiskSize",
36086 "optional" : 1,
36087 "type" : "string"
36088 },
36089 "volume" : {
36090 "default_key" : 1,
36091 "description" : "Volume, device or directory to mount into the container.",
36092 "format" : "pve-lxc-mp-string",
36093 "format_description" : "volume",
36094 "type" : "string"
56122987 36095 }
4d47f125
TL
36096 },
36097 "optional" : 1,
36098 "type" : "string",
7cbed89a 36099 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
56122987 36100 },
4d47f125
TL
36101 "searchdomain" : {
36102 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
36103 "format" : "dns-name-list",
36104 "optional" : 1,
36105 "type" : "string",
36106 "typetext" : "<string>"
36107 },
36108 "ssh-public-keys" : {
36109 "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
36110 "optional" : 1,
36111 "type" : "string",
36112 "typetext" : "<string>"
36113 },
36114 "start" : {
36115 "default" : 0,
36116 "description" : "Start the CT after its creation finished successfully.",
36117 "optional" : 1,
36118 "type" : "boolean",
36119 "typetext" : "<boolean>"
36120 },
36121 "startup" : {
36122 "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.",
36123 "format" : "pve-startup-order",
36124 "optional" : 1,
36125 "type" : "string",
36126 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
36127 },
36128 "storage" : {
36129 "default" : "local",
36130 "description" : "Default Storage.",
36131 "format" : "pve-storage-id",
36132 "optional" : 1,
36133 "type" : "string",
36134 "typetext" : "<string>"
36135 },
36136 "swap" : {
36137 "default" : 512,
4e7f60c2 36138 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
36139 "minimum" : 0,
36140 "optional" : 1,
36141 "type" : "integer",
36142 "typetext" : "<integer> (0 - N)"
36143 },
5c1699e5
TL
36144 "tags" : {
36145 "description" : "Tags of the Container. This is only meta information.",
36146 "format" : "pve-tag-list",
36147 "optional" : 1,
36148 "type" : "string",
36149 "typetext" : "<string>"
36150 },
4d47f125
TL
36151 "template" : {
36152 "default" : 0,
36153 "description" : "Enable/disable Template.",
36154 "optional" : 1,
36155 "type" : "boolean",
36156 "typetext" : "<boolean>"
36157 },
04d22a9f
TL
36158 "timezone" : {
36159 "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",
36160 "format" : "pve-ct-timezone",
36161 "optional" : 1,
36162 "type" : "string",
36163 "typetext" : "<string>"
36164 },
4d47f125
TL
36165 "tty" : {
36166 "default" : 2,
36167 "description" : "Specify the number of tty available to the container",
36168 "maximum" : 6,
36169 "minimum" : 0,
36170 "optional" : 1,
36171 "type" : "integer",
36172 "typetext" : "<integer> (0 - 6)"
36173 },
95895385
TL
36174 "unique" : {
36175 "description" : "Assign a unique random ethernet address.",
36176 "optional" : 1,
36177 "requires" : "restore",
36178 "type" : "boolean",
36179 "typetext" : "<boolean>"
36180 },
4d47f125
TL
36181 "unprivileged" : {
36182 "default" : 0,
36183 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
36184 "optional" : 1,
36185 "type" : "boolean",
36186 "typetext" : "<boolean>"
36187 },
36188 "unused[n]" : {
36189 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
36190 "format" : {
36191 "volume" : {
36192 "default_key" : 1,
36193 "description" : "The volume that is not used currently.",
36194 "format" : "pve-volume-id",
36195 "format_description" : "volume",
36196 "type" : "string"
36197 }
36198 },
4d47f125
TL
36199 "optional" : 1,
36200 "type" : "string",
c5aa7e14 36201 "typetext" : "[volume=]<volume>"
4d47f125
TL
36202 },
36203 "vmid" : {
36204 "description" : "The (unique) ID of the VM.",
36205 "format" : "pve-vmid",
8dd66e12
TL
36206 "maximum" : 999999999,
36207 "minimum" : 100,
4d47f125 36208 "type" : "integer",
8dd66e12 36209 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
36210 }
36211 }
36212 },
36213 "permissions" : {
36214 "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.",
36215 "user" : "all"
36216 },
36217 "protected" : 1,
36218 "proxyto" : "node",
36219 "returns" : {
36220 "type" : "string"
36221 }
36222 }
36223 },
36224 "leaf" : 0,
36225 "path" : "/nodes/{node}/lxc",
36226 "text" : "lxc"
36227 },
36228 {
36229 "children" : [
9d2e98ed
TL
36230 {
36231 "children" : [
36232 {
36233 "info" : {
36234 "GET" : {
36235 "allowtoken" : 1,
36236 "description" : "Get the Ceph configuration file.",
36237 "method" : "GET",
36238 "name" : "raw",
36239 "parameters" : {
36240 "additionalProperties" : 0,
36241 "properties" : {
36242 "node" : {
36243 "description" : "The cluster node name.",
36244 "format" : "pve-node",
36245 "type" : "string",
36246 "typetext" : "<string>"
36247 }
36248 }
36249 },
36250 "permissions" : {
36251 "check" : [
36252 "perm",
36253 "/",
36254 [
36255 "Sys.Audit",
36256 "Datastore.Audit"
36257 ],
36258 "any",
36259 1
36260 ]
36261 },
36262 "proxyto" : "node",
36263 "returns" : {
36264 "type" : "string"
36265 }
36266 }
36267 },
36268 "leaf" : 1,
36269 "path" : "/nodes/{node}/ceph/cfg/raw",
36270 "text" : "raw"
36271 },
36272 {
36273 "info" : {
36274 "GET" : {
36275 "allowtoken" : 1,
36276 "description" : "Get the Ceph configuration database.",
36277 "method" : "GET",
36278 "name" : "db",
36279 "parameters" : {
36280 "additionalProperties" : 0,
36281 "properties" : {
36282 "node" : {
36283 "description" : "The cluster node name.",
36284 "format" : "pve-node",
36285 "type" : "string",
36286 "typetext" : "<string>"
36287 }
36288 }
36289 },
36290 "permissions" : {
36291 "check" : [
36292 "perm",
36293 "/",
36294 [
36295 "Sys.Audit",
36296 "Datastore.Audit"
36297 ],
36298 "any",
36299 1
36300 ]
36301 },
36302 "protected" : 1,
36303 "proxyto" : "node",
36304 "returns" : {
36305 "items" : {
36306 "properties" : {
36307 "can_update_at_runtime" : {
36308 "type" : "boolean"
36309 },
36310 "level" : {
36311 "type" : "string"
36312 },
36313 "mask" : {
36314 "type" : "string"
36315 },
36316 "name" : {
36317 "type" : "string"
36318 },
36319 "section" : {
36320 "type" : "string"
36321 },
36322 "value" : {
36323 "type" : "string"
36324 }
36325 },
36326 "type" : "object"
36327 },
36328 "type" : "array"
36329 }
36330 }
36331 },
36332 "leaf" : 1,
36333 "path" : "/nodes/{node}/ceph/cfg/db",
36334 "text" : "db"
36335 }
36336 ],
36337 "info" : {
36338 "GET" : {
36339 "allowtoken" : 1,
36340 "description" : "Directory index.",
36341 "method" : "GET",
36342 "name" : "index",
36343 "parameters" : {
36344 "additionalProperties" : 0,
36345 "properties" : {
36346 "node" : {
36347 "description" : "The cluster node name.",
36348 "format" : "pve-node",
36349 "type" : "string",
36350 "typetext" : "<string>"
36351 }
36352 }
36353 },
36354 "permissions" : {
36355 "user" : "all"
36356 },
36357 "returns" : {
36358 "items" : {
36359 "properties" : {},
36360 "type" : "object"
36361 },
36362 "links" : [
36363 {
36364 "href" : "{name}",
36365 "rel" : "child"
36366 }
36367 ],
36368 "type" : "array"
36369 }
36370 }
36371 },
36372 "leaf" : 0,
36373 "path" : "/nodes/{node}/ceph/cfg",
36374 "text" : "cfg"
36375 },
4d47f125
TL
36376 {
36377 "children" : [
56122987 36378 {
4d47f125
TL
36379 "children" : [
36380 {
36381 "info" : {
9d2e98ed 36382 "GET" : {
e9cd3bd4 36383 "allowtoken" : 1,
9d2e98ed
TL
36384 "description" : "Get OSD details",
36385 "method" : "GET",
36386 "name" : "osddetails",
36387 "parameters" : {
36388 "additionalProperties" : 0,
36389 "properties" : {
36390 "node" : {
36391 "description" : "The cluster node name.",
36392 "format" : "pve-node",
36393 "type" : "string",
36394 "typetext" : "<string>"
36395 },
36396 "osdid" : {
36397 "description" : "OSD ID",
36398 "type" : "integer",
36399 "typetext" : "<integer>"
36400 }
36401 }
36402 },
36403 "permissions" : {
36404 "check" : [
36405 "perm",
36406 "/",
36407 [
36408 "Sys.Audit"
36409 ],
36410 "any",
36411 1
36412 ]
36413 },
36414 "protected" : 1,
36415 "proxyto" : "node",
36416 "returns" : {
36417 "properties" : {
36418 "devices" : {
36419 "description" : "Array containing data about devices",
36420 "items" : {
36421 "properties" : {
36422 "dev_node" : {
36423 "description" : "Device node",
36424 "type" : "string"
36425 },
36426 "device" : {
36427 "description" : "Kind of OSD device",
36428 "enum" : [
36429 "block",
36430 "db",
36431 "wal"
36432 ],
36433 "type" : "string"
36434 },
36435 "devices" : {
36436 "description" : "Physical disks used",
36437 "type" : "string"
36438 },
36439 "size" : {
36440 "description" : "Size in bytes",
36441 "type" : "integer"
36442 },
36443 "support_discard" : {
36444 "description" : "Discard support of the physical device",
36445 "type" : "boolean"
36446 },
36447 "type" : {
36448 "description" : "Type of device. For example, hdd or ssd",
36449 "type" : "string"
36450 }
36451 },
36452 "type" : "object"
36453 },
36454 "type" : "array"
36455 },
36456 "osd" : {
36457 "description" : "General information about the OSD",
36458 "properties" : {
36459 "back_addr" : {
36460 "description" : "Address and port used to talk to other OSDs.",
36461 "type" : "string"
36462 },
36463 "front_addr" : {
36464 "description" : "Address and port used to talk to clients and monitors.",
36465 "type" : "string"
36466 },
36467 "hb_back_addr" : {
36468 "description" : "Heartbeat address and port for other OSDs.",
36469 "type" : "string"
36470 },
36471 "hb_front_addr" : {
36472 "description" : "Heartbeat address and port for clients and monitors.",
36473 "type" : "string"
36474 },
36475 "hostname" : {
36476 "description" : "Name of the host containing the OSD.",
36477 "type" : "string"
36478 },
36479 "id" : {
36480 "description" : "ID of the OSD.",
36481 "type" : "integer"
36482 },
36483 "mem_usage" : {
36484 "description" : "Memory usage of the OSD service.",
36485 "type" : "integer"
36486 },
36487 "osd_data" : {
36488 "description" : "Path to the OSD's data directory.",
36489 "type" : "string"
36490 },
36491 "osd_objectstore" : {
36492 "description" : "The type of object store used.",
36493 "type" : "string"
36494 },
36495 "pid" : {
36496 "description" : "OSD process ID.",
36497 "type" : "integer"
36498 },
36499 "version" : {
36500 "description" : "Ceph version of the OSD service.",
36501 "type" : "string"
36502 }
36503 },
36504 "type" : "object"
36505 }
36506 },
36507 "type" : "object"
36508 }
36509 }
36510 },
36511 "leaf" : 1,
36512 "path" : "/nodes/{node}/ceph/osd/{osdid}/metadata",
36513 "text" : "metadata"
36514 },
36515 {
36516 "info" : {
36517 "GET" : {
36518 "allowtoken" : 1,
36519 "description" : "Get OSD volume details",
36520 "method" : "GET",
36521 "name" : "osdvolume",
36522 "parameters" : {
36523 "additionalProperties" : 0,
36524 "properties" : {
36525 "node" : {
36526 "description" : "The cluster node name.",
36527 "format" : "pve-node",
36528 "type" : "string",
36529 "typetext" : "<string>"
36530 },
36531 "osdid" : {
36532 "description" : "OSD ID",
36533 "type" : "integer",
36534 "typetext" : "<integer>"
36535 },
36536 "type" : {
36537 "default" : "block",
36538 "description" : "OSD device type",
36539 "enum" : [
36540 "block",
36541 "db",
36542 "wal"
36543 ],
36544 "optional" : 1,
36545 "type" : "string"
36546 }
36547 }
36548 },
36549 "permissions" : {
36550 "check" : [
36551 "perm",
36552 "/",
36553 [
36554 "Sys.Audit"
36555 ],
36556 "any",
36557 1
36558 ]
36559 },
36560 "protected" : 1,
36561 "proxyto" : "node",
36562 "returns" : {
36563 "properties" : {
36564 "creation_time" : {
36565 "description" : "Creation time as reported by `lvs`.",
36566 "type" : "string"
36567 },
36568 "lv_name" : {
36569 "description" : "Name of the logical volume (LV).",
36570 "type" : "string"
36571 },
36572 "lv_path" : {
36573 "description" : "Path to the logical volume (LV).",
36574 "type" : "string"
36575 },
36576 "lv_size" : {
36577 "description" : "Size of the logical volume (LV).",
36578 "type" : "integer"
36579 },
36580 "lv_uuid" : {
36581 "description" : "UUID of the logical volume (LV).",
36582 "type" : "string"
36583 },
36584 "vg_name" : {
36585 "description" : "Name of the volume group (VG).",
36586 "type" : "string"
36587 }
36588 },
36589 "type" : "object"
36590 }
36591 }
36592 },
36593 "leaf" : 1,
36594 "path" : "/nodes/{node}/ceph/osd/{osdid}/lv-info",
36595 "text" : "lv-info"
36596 },
36597 {
36598 "info" : {
36599 "POST" : {
36600 "allowtoken" : 1,
36601 "description" : "ceph osd in",
36602 "method" : "POST",
36603 "name" : "in",
4d47f125
TL
36604 "parameters" : {
36605 "additionalProperties" : 0,
36606 "properties" : {
36607 "node" : {
36608 "description" : "The cluster node name.",
36609 "format" : "pve-node",
36610 "type" : "string",
36611 "typetext" : "<string>"
36612 },
36613 "osdid" : {
36614 "description" : "OSD ID",
36615 "type" : "integer",
36616 "typetext" : "<integer>"
36617 }
36618 }
27a7acb2 36619 },
4d47f125
TL
36620 "permissions" : {
36621 "check" : [
36622 "perm",
36623 "/",
36624 [
36625 "Sys.Modify"
36626 ]
36627 ]
44660702 36628 },
4d47f125
TL
36629 "protected" : 1,
36630 "proxyto" : "node",
36631 "returns" : {
36632 "type" : "null"
7aacca6f
DM
36633 }
36634 }
56122987 36635 },
4d47f125
TL
36636 "leaf" : 1,
36637 "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
36638 "text" : "in"
36639 },
36640 {
36641 "info" : {
36642 "POST" : {
e9cd3bd4 36643 "allowtoken" : 1,
4d47f125
TL
36644 "description" : "ceph osd out",
36645 "method" : "POST",
36646 "name" : "out",
36647 "parameters" : {
36648 "additionalProperties" : 0,
36649 "properties" : {
36650 "node" : {
36651 "description" : "The cluster node name.",
36652 "format" : "pve-node",
36653 "type" : "string",
36654 "typetext" : "<string>"
36655 },
36656 "osdid" : {
36657 "description" : "OSD ID",
36658 "type" : "integer",
36659 "typetext" : "<integer>"
36660 }
36661 }
36662 },
36663 "permissions" : {
36664 "check" : [
56122987 36665 "perm",
4d47f125 36666 "/",
56122987 36667 [
4d47f125 36668 "Sys.Modify"
56122987 36669 ]
56122987 36670 ]
44660702 36671 },
4d47f125
TL
36672 "protected" : 1,
36673 "proxyto" : "node",
36674 "returns" : {
36675 "type" : "null"
56122987 36676 }
44660702 36677 }
56122987 36678 },
4d47f125
TL
36679 "leaf" : 1,
36680 "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
36681 "text" : "out"
7cbed89a
TL
36682 },
36683 {
36684 "info" : {
36685 "POST" : {
e9cd3bd4 36686 "allowtoken" : 1,
7cbed89a
TL
36687 "description" : "Instruct the OSD to scrub.",
36688 "method" : "POST",
36689 "name" : "scrub",
36690 "parameters" : {
36691 "additionalProperties" : 0,
36692 "properties" : {
36693 "deep" : {
36694 "default" : 0,
36695 "description" : "If set, instructs a deep scrub instead of a normal one.",
36696 "optional" : 1,
36697 "type" : "boolean",
36698 "typetext" : "<boolean>"
36699 },
36700 "node" : {
36701 "description" : "The cluster node name.",
36702 "format" : "pve-node",
36703 "type" : "string",
36704 "typetext" : "<string>"
36705 },
36706 "osdid" : {
36707 "description" : "OSD ID",
36708 "type" : "integer",
36709 "typetext" : "<integer>"
36710 }
36711 }
36712 },
36713 "permissions" : {
36714 "check" : [
36715 "perm",
36716 "/",
36717 [
36718 "Sys.Modify"
36719 ]
36720 ]
36721 },
36722 "protected" : 1,
36723 "proxyto" : "node",
36724 "returns" : {
36725 "type" : "null"
36726 }
36727 }
36728 },
36729 "leaf" : 1,
36730 "path" : "/nodes/{node}/ceph/osd/{osdid}/scrub",
36731 "text" : "scrub"
56122987 36732 }
4d47f125 36733 ],
27a7acb2 36734 "info" : {
4d47f125 36735 "DELETE" : {
e9cd3bd4 36736 "allowtoken" : 1,
4d47f125
TL
36737 "description" : "Destroy OSD",
36738 "method" : "DELETE",
36739 "name" : "destroyosd",
27a7acb2
DM
36740 "parameters" : {
36741 "additionalProperties" : 0,
36742 "properties" : {
4d47f125 36743 "cleanup" : {
27a7acb2 36744 "default" : 0,
4d47f125 36745 "description" : "If set, we remove partition table entries.",
27a7acb2 36746 "optional" : 1,
4d47f125
TL
36747 "type" : "boolean",
36748 "typetext" : "<boolean>"
36749 },
36750 "node" : {
36751 "description" : "The cluster node name.",
36752 "format" : "pve-node",
36753 "type" : "string",
36754 "typetext" : "<string>"
36755 },
36756 "osdid" : {
36757 "description" : "OSD ID",
36758 "type" : "integer",
36759 "typetext" : "<integer>"
36760 }
36761 }
27a7acb2
DM
36762 },
36763 "protected" : 1,
36764 "proxyto" : "node",
36765 "returns" : {
36766 "type" : "string"
36767 }
9d2e98ed
TL
36768 },
36769 "GET" : {
36770 "allowtoken" : 1,
36771 "description" : "OSD index.",
36772 "method" : "GET",
36773 "name" : "osdindex",
36774 "parameters" : {
36775 "additionalProperties" : 0,
36776 "properties" : {
36777 "node" : {
36778 "description" : "The cluster node name.",
36779 "format" : "pve-node",
36780 "type" : "string",
36781 "typetext" : "<string>"
36782 },
36783 "osdid" : {
36784 "description" : "OSD ID",
36785 "type" : "integer",
36786 "typetext" : "<integer>"
36787 }
36788 }
36789 },
36790 "permissions" : {
36791 "user" : "all"
36792 },
36793 "returns" : {
36794 "items" : {
36795 "properties" : {},
36796 "type" : "object"
36797 },
36798 "links" : [
36799 {
36800 "href" : "{name}",
36801 "rel" : "child"
36802 }
36803 ],
36804 "type" : "array"
36805 }
27a7acb2
DM
36806 }
36807 },
4d47f125
TL
36808 "leaf" : 0,
36809 "path" : "/nodes/{node}/ceph/osd/{osdid}",
36810 "text" : "{osdid}"
56122987
DM
36811 }
36812 ],
36813 "info" : {
4d47f125 36814 "GET" : {
e9cd3bd4 36815 "allowtoken" : 1,
4d47f125
TL
36816 "description" : "Get Ceph osd list/tree.",
36817 "method" : "GET",
36818 "name" : "index",
44660702
DM
36819 "parameters" : {
36820 "additionalProperties" : 0,
36821 "properties" : {
36822 "node" : {
36823 "description" : "The cluster node name.",
36824 "format" : "pve-node",
013dc89f
DM
36825 "type" : "string",
36826 "typetext" : "<string>"
44660702
DM
36827 }
36828 }
36829 },
7aacca6f
DM
36830 "permissions" : {
36831 "check" : [
36832 "perm",
4d47f125 36833 "/",
7aacca6f 36834 [
4d47f125
TL
36835 "Sys.Audit",
36836 "Datastore.Audit"
36837 ],
36838 "any",
36839 1
36840 ]
36841 },
36842 "protected" : 1,
36843 "proxyto" : "node",
36844 "returns" : {
9d2e98ed
TL
36845 "items" : {
36846 "properties" : {
36847 "flags" : {
36848 "type" : "string"
36849 },
36850 "root" : {
36851 "description" : "Tree with OSDs in the CRUSH map structure.",
36852 "type" : "object"
36853 }
36854 },
36855 "type" : "object"
36856 },
4d47f125
TL
36857 "type" : "object"
36858 }
36859 },
36860 "POST" : {
e9cd3bd4 36861 "allowtoken" : 1,
4d47f125
TL
36862 "description" : "Create OSD",
36863 "method" : "POST",
36864 "name" : "createosd",
36865 "parameters" : {
36866 "additionalProperties" : 0,
36867 "properties" : {
739d4d64
TL
36868 "crush-device-class" : {
36869 "description" : "Set the device class of the OSD in crush.",
36870 "optional" : 1,
36871 "type" : "string",
36872 "typetext" : "<string>"
36873 },
1e3f8156
TL
36874 "db_dev" : {
36875 "description" : "Block device name for block.db.",
44660702 36876 "optional" : 1,
4bd7df8b 36877 "type" : "string",
4d47f125 36878 "typetext" : "<string>"
44660702 36879 },
0695fdaf 36880 "db_dev_size" : {
1e3f8156
TL
36881 "default" : "bluestore_block_db_size or 10% of OSD size",
36882 "description" : "Size in GiB for block.db.",
36883 "minimum" : 1,
7aacca6f 36884 "optional" : 1,
1e3f8156
TL
36885 "requires" : "db_dev",
36886 "type" : "number",
36887 "typetext" : "<number> (1 - N)",
36888 "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 36889 },
1e3f8156
TL
36890 "dev" : {
36891 "description" : "Block device name.",
4d47f125
TL
36892 "type" : "string",
36893 "typetext" : "<string>"
5d9c884c 36894 },
1e3f8156
TL
36895 "encrypted" : {
36896 "default" : 0,
36897 "description" : "Enables encryption of the OSD.",
36898 "optional" : 1,
36899 "type" : "boolean",
36900 "typetext" : "<boolean>"
36901 },
4d47f125
TL
36902 "node" : {
36903 "description" : "The cluster node name.",
36904 "format" : "pve-node",
36905 "type" : "string",
36906 "typetext" : "<string>"
7aacca6f 36907 },
4d47f125 36908 "wal_dev" : {
1e3f8156 36909 "description" : "Block device name for block.wal.",
de0983cb 36910 "optional" : 1,
4d47f125
TL
36911 "type" : "string",
36912 "typetext" : "<string>"
1e3f8156 36913 },
0695fdaf 36914 "wal_dev_size" : {
1e3f8156
TL
36915 "default" : "bluestore_block_wal_size or 1% of OSD size",
36916 "description" : "Size in GiB for block.wal.",
36917 "minimum" : 0.5,
36918 "optional" : 1,
36919 "requires" : "wal_dev",
36920 "type" : "number",
36921 "typetext" : "<number> (0.5 - N)",
36922 "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
36923 }
36924 }
36925 },
36926 "protected" : 1,
36927 "proxyto" : "node",
36928 "returns" : {
36929 "type" : "string"
36930 }
36931 }
36932 },
36933 "leaf" : 0,
36934 "path" : "/nodes/{node}/ceph/osd",
36935 "text" : "osd"
36936 },
e2d681b3
TL
36937 {
36938 "children" : [
36939 {
36940 "info" : {
36941 "DELETE" : {
e9cd3bd4 36942 "allowtoken" : 1,
e2d681b3
TL
36943 "description" : "Destroy Ceph Metadata Server",
36944 "method" : "DELETE",
36945 "name" : "destroymds",
36946 "parameters" : {
36947 "additionalProperties" : 0,
36948 "properties" : {
36949 "name" : {
36950 "description" : "The name (ID) of the mds",
36951 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
36952 "type" : "string"
36953 },
36954 "node" : {
36955 "description" : "The cluster node name.",
36956 "format" : "pve-node",
36957 "type" : "string",
36958 "typetext" : "<string>"
36959 }
36960 }
36961 },
36962 "permissions" : {
36963 "check" : [
36964 "perm",
36965 "/",
36966 [
36967 "Sys.Modify"
36968 ]
36969 ]
36970 },
36971 "protected" : 1,
36972 "proxyto" : "node",
36973 "returns" : {
36974 "type" : "string"
36975 }
36976 },
36977 "POST" : {
e9cd3bd4 36978 "allowtoken" : 1,
e2d681b3
TL
36979 "description" : "Create Ceph Metadata Server (MDS)",
36980 "method" : "POST",
36981 "name" : "createmds",
36982 "parameters" : {
36983 "additionalProperties" : 0,
36984 "properties" : {
36985 "hotstandby" : {
36986 "default" : "0",
36987 "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.",
36988 "optional" : 1,
36989 "type" : "boolean",
36990 "typetext" : "<boolean>"
36991 },
36992 "name" : {
36993 "default" : "nodename",
36994 "description" : "The ID for the mds, when omitted the same as the nodename",
c5aa7e14 36995 "maxLength" : 200,
e2d681b3
TL
36996 "optional" : 1,
36997 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
36998 "type" : "string"
36999 },
37000 "node" : {
37001 "description" : "The cluster node name.",
37002 "format" : "pve-node",
37003 "type" : "string",
37004 "typetext" : "<string>"
37005 }
37006 }
37007 },
37008 "permissions" : {
37009 "check" : [
37010 "perm",
37011 "/",
37012 [
37013 "Sys.Modify"
37014 ]
37015 ]
37016 },
37017 "protected" : 1,
37018 "proxyto" : "node",
37019 "returns" : {
37020 "type" : "string"
37021 }
37022 }
37023 },
37024 "leaf" : 1,
37025 "path" : "/nodes/{node}/ceph/mds/{name}",
37026 "text" : "{name}"
37027 }
37028 ],
37029 "info" : {
37030 "GET" : {
e9cd3bd4 37031 "allowtoken" : 1,
e2d681b3
TL
37032 "description" : "MDS directory index.",
37033 "method" : "GET",
37034 "name" : "index",
37035 "parameters" : {
37036 "additionalProperties" : 0,
37037 "properties" : {
37038 "node" : {
37039 "description" : "The cluster node name.",
37040 "format" : "pve-node",
37041 "type" : "string",
37042 "typetext" : "<string>"
37043 }
37044 }
37045 },
37046 "permissions" : {
37047 "check" : [
37048 "perm",
37049 "/",
37050 [
37051 "Sys.Audit",
37052 "Datastore.Audit"
37053 ],
37054 "any",
37055 1
37056 ]
37057 },
37058 "protected" : 1,
37059 "proxyto" : "node",
37060 "returns" : {
37061 "items" : {
37062 "properties" : {
37063 "addr" : {
37064 "optional" : 1,
37065 "type" : "string"
37066 },
37067 "host" : {
37068 "optional" : 1,
37069 "type" : "string"
37070 },
37071 "name" : {
37072 "description" : "The name (ID) for the MDS"
37073 },
37074 "rank" : {
37075 "optional" : 1,
37076 "type" : "integer"
37077 },
37078 "standby_replay" : {
37079 "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
37080 "optional" : 1,
37081 "type" : "boolean"
37082 },
37083 "state" : {
37084 "description" : "State of the MDS",
37085 "type" : "string"
37086 }
37087 },
37088 "type" : "object"
37089 },
37090 "links" : [
37091 {
37092 "href" : "{name}",
37093 "rel" : "child"
37094 }
37095 ],
37096 "type" : "array"
37097 }
37098 }
37099 },
37100 "leaf" : 0,
37101 "path" : "/nodes/{node}/ceph/mds",
37102 "text" : "mds"
37103 },
37104 {
37105 "children" : [
37106 {
37107 "info" : {
5f26e15b 37108 "DELETE" : {
e9cd3bd4 37109 "allowtoken" : 1,
5f26e15b
TL
37110 "description" : "Destroy Ceph Manager.",
37111 "method" : "DELETE",
37112 "name" : "destroymgr",
e2d681b3
TL
37113 "parameters" : {
37114 "additionalProperties" : 0,
37115 "properties" : {
5f26e15b
TL
37116 "id" : {
37117 "description" : "The ID of the manager",
37118 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
37119 "type" : "string"
e2d681b3
TL
37120 },
37121 "node" : {
37122 "description" : "The cluster node name.",
37123 "format" : "pve-node",
37124 "type" : "string",
37125 "typetext" : "<string>"
e2d681b3
TL
37126 }
37127 }
37128 },
37129 "permissions" : {
37130 "check" : [
37131 "perm",
37132 "/",
37133 [
37134 "Sys.Modify"
37135 ]
37136 ]
37137 },
37138 "protected" : 1,
37139 "proxyto" : "node",
37140 "returns" : {
37141 "type" : "string"
37142 }
1e3f8156
TL
37143 },
37144 "POST" : {
e9cd3bd4 37145 "allowtoken" : 1,
1e3f8156
TL
37146 "description" : "Create Ceph Manager",
37147 "method" : "POST",
37148 "name" : "createmgr",
37149 "parameters" : {
37150 "additionalProperties" : 0,
37151 "properties" : {
37152 "id" : {
37153 "description" : "The ID for the manager, when omitted the same as the nodename",
c5aa7e14 37154 "maxLength" : 200,
1e3f8156
TL
37155 "optional" : 1,
37156 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
37157 "type" : "string"
37158 },
37159 "node" : {
37160 "description" : "The cluster node name.",
37161 "format" : "pve-node",
37162 "type" : "string",
37163 "typetext" : "<string>"
37164 }
37165 }
37166 },
37167 "permissions" : {
37168 "check" : [
37169 "perm",
37170 "/",
37171 [
37172 "Sys.Modify"
37173 ]
37174 ]
37175 },
37176 "protected" : 1,
37177 "proxyto" : "node",
37178 "returns" : {
37179 "type" : "string"
37180 }
e2d681b3
TL
37181 }
37182 },
37183 "leaf" : 1,
5f26e15b
TL
37184 "path" : "/nodes/{node}/ceph/mgr/{id}",
37185 "text" : "{id}"
e2d681b3
TL
37186 }
37187 ],
37188 "info" : {
1e3f8156 37189 "GET" : {
e9cd3bd4 37190 "allowtoken" : 1,
1e3f8156
TL
37191 "description" : "MGR directory index.",
37192 "method" : "GET",
37193 "name" : "index",
e2d681b3
TL
37194 "parameters" : {
37195 "additionalProperties" : 0,
37196 "properties" : {
37197 "node" : {
37198 "description" : "The cluster node name.",
37199 "format" : "pve-node",
37200 "type" : "string",
37201 "typetext" : "<string>"
37202 }
37203 }
37204 },
37205 "permissions" : {
37206 "check" : [
37207 "perm",
37208 "/",
37209 [
1e3f8156
TL
37210 "Sys.Audit",
37211 "Datastore.Audit"
37212 ],
37213 "any",
37214 1
e2d681b3
TL
37215 ]
37216 },
37217 "protected" : 1,
5f26e15b 37218 "proxyto" : "node",
e2d681b3 37219 "returns" : {
1e3f8156
TL
37220 "items" : {
37221 "properties" : {
37222 "addr" : {
37223 "optional" : 1,
37224 "type" : "string"
37225 },
37226 "host" : {
37227 "optional" : 1,
37228 "type" : "string"
37229 },
37230 "name" : {
37231 "description" : "The name (ID) for the MGR"
37232 },
37233 "state" : {
37234 "description" : "State of the MGR",
37235 "type" : "string"
37236 }
37237 },
37238 "type" : "object"
37239 },
37240 "links" : [
37241 {
37242 "href" : "{name}",
37243 "rel" : "child"
37244 }
37245 ],
37246 "type" : "array"
e2d681b3
TL
37247 }
37248 }
37249 },
37250 "leaf" : 0,
5f26e15b
TL
37251 "path" : "/nodes/{node}/ceph/mgr",
37252 "text" : "mgr"
e2d681b3 37253 },
4d47f125 37254 {
5f26e15b
TL
37255 "children" : [
37256 {
37257 "info" : {
37258 "DELETE" : {
e9cd3bd4 37259 "allowtoken" : 1,
5f26e15b
TL
37260 "description" : "Destroy Ceph Monitor and Manager.",
37261 "method" : "DELETE",
37262 "name" : "destroymon",
37263 "parameters" : {
37264 "additionalProperties" : 0,
37265 "properties" : {
1e3f8156
TL
37266 "monid" : {
37267 "description" : "Monitor ID",
37268 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
37269 "type" : "string"
37270 },
37271 "node" : {
37272 "description" : "The cluster node name.",
37273 "format" : "pve-node",
37274 "type" : "string",
37275 "typetext" : "<string>"
37276 }
37277 }
37278 },
37279 "permissions" : {
37280 "check" : [
37281 "perm",
37282 "/",
37283 [
37284 "Sys.Modify"
37285 ]
37286 ]
37287 },
37288 "protected" : 1,
37289 "proxyto" : "node",
37290 "returns" : {
37291 "type" : "string"
37292 }
37293 },
37294 "POST" : {
e9cd3bd4 37295 "allowtoken" : 1,
1e3f8156
TL
37296 "description" : "Create Ceph Monitor and Manager",
37297 "method" : "POST",
37298 "name" : "createmon",
37299 "parameters" : {
37300 "additionalProperties" : 0,
37301 "properties" : {
37302 "mon-address" : {
0695fdaf
TL
37303 "description" : "Overwrites autodetected monitor IP address(es). Must be in the public network(s) of Ceph.",
37304 "format" : "ip-list",
5f26e15b 37305 "optional" : 1,
1e3f8156
TL
37306 "type" : "string",
37307 "typetext" : "<string>"
5f26e15b
TL
37308 },
37309 "monid" : {
1e3f8156 37310 "description" : "The ID for the monitor, when omitted the same as the nodename",
c5aa7e14 37311 "maxLength" : 200,
1e3f8156 37312 "optional" : 1,
5f26e15b
TL
37313 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
37314 "type" : "string"
37315 },
37316 "node" : {
37317 "description" : "The cluster node name.",
37318 "format" : "pve-node",
37319 "type" : "string",
37320 "typetext" : "<string>"
37321 }
37322 }
37323 },
37324 "permissions" : {
37325 "check" : [
37326 "perm",
37327 "/",
37328 [
37329 "Sys.Modify"
37330 ]
37331 ]
37332 },
37333 "protected" : 1,
37334 "proxyto" : "node",
37335 "returns" : {
7aacca6f 37336 "type" : "string"
56122987 37337 }
4d47f125 37338 }
56122987 37339 },
5f26e15b
TL
37340 "leaf" : 1,
37341 "path" : "/nodes/{node}/ceph/mon/{monid}",
37342 "text" : "{monid}"
37343 }
37344 ],
37345 "info" : {
37346 "GET" : {
e9cd3bd4 37347 "allowtoken" : 1,
5f26e15b
TL
37348 "description" : "Get Ceph monitor list.",
37349 "method" : "GET",
37350 "name" : "listmon",
37351 "parameters" : {
37352 "additionalProperties" : 0,
37353 "properties" : {
37354 "node" : {
37355 "description" : "The cluster node name.",
37356 "format" : "pve-node",
37357 "type" : "string",
37358 "typetext" : "<string>"
37359 }
37360 }
37361 },
4d47f125
TL
37362 "permissions" : {
37363 "check" : [
37364 "perm",
37365 "/",
37366 [
37367 "Sys.Audit",
37368 "Datastore.Audit"
37369 ],
37370 "any",
37371 1
37372 ]
56122987 37373 },
4d47f125
TL
37374 "protected" : 1,
37375 "proxyto" : "node",
37376 "returns" : {
37377 "items" : {
37378 "properties" : {
5f26e15b 37379 "addr" : {
1e3f8156
TL
37380 "optional" : 1,
37381 "type" : "string"
37382 },
9d2e98ed
TL
37383 "ceph_version" : {
37384 "optional" : 1,
37385 "type" : "string"
37386 },
37387 "ceph_version_short" : {
37388 "optional" : 1,
37389 "type" : "string"
37390 },
37391 "direxists" : {
1e3f8156 37392 "optional" : 1,
4d47f125
TL
37393 "type" : "string"
37394 },
9d2e98ed
TL
37395 "host" : {
37396 "optional" : 1,
37397 "type" : "boolean"
37398 },
5f26e15b 37399 "name" : {
4d47f125 37400 "type" : "string"
9d2e98ed
TL
37401 },
37402 "quorum" : {
37403 "optional" : 1,
37404 "type" : "boolean"
37405 },
37406 "rank" : {
37407 "optional" : 1,
37408 "type" : "integer"
37409 },
37410 "service" : {
37411 "optional" : 1,
37412 "type" : "integer"
37413 },
37414 "state" : {
37415 "optional" : 1,
37416 "type" : "string"
4d47f125 37417 }
7aacca6f 37418 },
4d47f125
TL
37419 "type" : "object"
37420 },
5f26e15b
TL
37421 "links" : [
37422 {
37423 "href" : "{name}",
37424 "rel" : "child"
37425 }
37426 ],
4d47f125
TL
37427 "type" : "array"
37428 }
4d47f125
TL
37429 }
37430 },
5f26e15b
TL
37431 "leaf" : 0,
37432 "path" : "/nodes/{node}/ceph/mon",
37433 "text" : "mon"
4d47f125
TL
37434 },
37435 {
37436 "children" : [
37437 {
37438 "info" : {
5f26e15b 37439 "POST" : {
e9cd3bd4 37440 "allowtoken" : 1,
5f26e15b
TL
37441 "description" : "Create a Ceph filesystem",
37442 "method" : "POST",
37443 "name" : "createfs",
4d47f125
TL
37444 "parameters" : {
37445 "additionalProperties" : 0,
37446 "properties" : {
5f26e15b 37447 "add-storage" : {
4d47f125 37448 "default" : 0,
5f26e15b 37449 "description" : "Configure the created CephFS as storage for this cluster.",
4d47f125
TL
37450 "optional" : 1,
37451 "type" : "boolean",
37452 "typetext" : "<boolean>"
37453 },
5f26e15b
TL
37454 "name" : {
37455 "default" : "cephfs",
37456 "description" : "The ceph filesystem name.",
37457 "optional" : 1,
37458 "type" : "string",
37459 "typetext" : "<string>"
4d47f125
TL
37460 },
37461 "node" : {
37462 "description" : "The cluster node name.",
37463 "format" : "pve-node",
37464 "type" : "string",
37465 "typetext" : "<string>"
5f26e15b
TL
37466 },
37467 "pg_num" : {
37468 "default" : 128,
37469 "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
37470 "maximum" : 32768,
37471 "minimum" : 8,
37472 "optional" : 1,
37473 "type" : "integer",
37474 "typetext" : "<integer> (8 - 32768)"
4d47f125
TL
37475 }
37476 }
7aacca6f 37477 },
4d47f125
TL
37478 "permissions" : {
37479 "check" : [
37480 "perm",
37481 "/",
37482 [
37483 "Sys.Modify"
37484 ]
37485 ]
7aacca6f 37486 },
4d47f125
TL
37487 "protected" : 1,
37488 "proxyto" : "node",
37489 "returns" : {
44660702 37490 "type" : "string"
4d47f125
TL
37491 }
37492 }
37493 },
37494 "leaf" : 1,
5f26e15b
TL
37495 "path" : "/nodes/{node}/ceph/fs/{name}",
37496 "text" : "{name}"
4d47f125
TL
37497 }
37498 ],
37499 "info" : {
37500 "GET" : {
e9cd3bd4 37501 "allowtoken" : 1,
5f26e15b 37502 "description" : "Directory index.",
4d47f125 37503 "method" : "GET",
5f26e15b 37504 "name" : "index",
4d47f125
TL
37505 "parameters" : {
37506 "additionalProperties" : 0,
37507 "properties" : {
37508 "node" : {
37509 "description" : "The cluster node name.",
37510 "format" : "pve-node",
37511 "type" : "string",
37512 "typetext" : "<string>"
37513 }
37514 }
37515 },
37516 "permissions" : {
37517 "check" : [
37518 "perm",
37519 "/",
37520 [
37521 "Sys.Audit",
37522 "Datastore.Audit"
37523 ],
37524 "any",
37525 1
37526 ]
37527 },
37528 "protected" : 1,
95895385 37529 "proxyto" : "node",
4d47f125
TL
37530 "returns" : {
37531 "items" : {
37532 "properties" : {
9d2e98ed
TL
37533 "data_pool" : {
37534 "description" : "The name of the data pool.",
37535 "type" : "string"
37536 },
37537 "metadata_pool" : {
37538 "description" : "The name of the metadata pool.",
37539 "type" : "string"
37540 },
37541 "name" : {
37542 "description" : "The ceph filesystem name.",
37543 "type" : "string"
37544 }
37545 },
37546 "type" : "object"
37547 },
37548 "links" : [
37549 {
37550 "href" : "{name}",
37551 "rel" : "child"
37552 }
37553 ],
37554 "type" : "array"
37555 }
37556 }
37557 },
37558 "leaf" : 0,
37559 "path" : "/nodes/{node}/ceph/fs",
37560 "text" : "fs"
37561 },
37562 {
37563 "children" : [
37564 {
37565 "children" : [
37566 {
37567 "info" : {
37568 "GET" : {
37569 "allowtoken" : 1,
37570 "description" : "Show the current pool status.",
37571 "method" : "GET",
37572 "name" : "getpool",
37573 "parameters" : {
37574 "additionalProperties" : 0,
37575 "properties" : {
37576 "name" : {
37577 "description" : "The name of the pool. It must be unique.",
37578 "type" : "string",
37579 "typetext" : "<string>"
37580 },
37581 "node" : {
37582 "description" : "The cluster node name.",
37583 "format" : "pve-node",
37584 "type" : "string",
37585 "typetext" : "<string>"
37586 },
37587 "verbose" : {
37588 "default" : 0,
37589 "description" : "If enabled, will display additional data(eg. statistics).",
37590 "optional" : 1,
37591 "type" : "boolean",
37592 "typetext" : "<boolean>"
37593 }
37594 }
37595 },
37596 "permissions" : {
37597 "check" : [
37598 "perm",
37599 "/",
37600 [
37601 "Sys.Audit",
37602 "Datastore.Audit"
37603 ],
37604 "any",
37605 1
37606 ]
37607 },
37608 "protected" : 1,
37609 "proxyto" : "node",
37610 "returns" : {
37611 "properties" : {
37612 "application" : {
37613 "default" : "rbd",
37614 "description" : "The application of the pool.",
37615 "enum" : [
37616 "rbd",
37617 "cephfs",
37618 "rgw"
37619 ],
37620 "optional" : 1,
37621 "title" : "Application",
37622 "type" : "string"
37623 },
37624 "application_list" : {
37625 "optional" : 1,
37626 "title" : "Application",
37627 "type" : "array"
37628 },
37629 "autoscale_status" : {
37630 "optional" : 1,
37631 "title" : "Autoscale Status",
37632 "type" : "object"
37633 },
37634 "crush_rule" : {
37635 "description" : "The rule to use for mapping object placement in the cluster.",
37636 "optional" : 1,
37637 "title" : "Crush Rule Name",
37638 "type" : "string"
37639 },
37640 "fast_read" : {
37641 "title" : "Fast Read",
37642 "type" : "boolean"
37643 },
37644 "hashpspool" : {
37645 "title" : "hashpspool",
37646 "type" : "boolean"
37647 },
37648 "id" : {
37649 "title" : "ID",
37650 "type" : "integer"
37651 },
37652 "min_size" : {
37653 "default" : 2,
37654 "description" : "Minimum number of replicas per object",
37655 "maximum" : 7,
37656 "minimum" : 1,
37657 "optional" : 1,
37658 "title" : "Min Size",
37659 "type" : "integer"
37660 },
37661 "name" : {
37662 "description" : "The name of the pool. It must be unique.",
37663 "title" : "Name",
37664 "type" : "string"
37665 },
37666 "nodeep-scrub" : {
37667 "title" : "nodeep-scrub",
37668 "type" : "boolean"
37669 },
37670 "nodelete" : {
37671 "title" : "nodelete",
37672 "type" : "boolean"
37673 },
37674 "nopgchange" : {
37675 "title" : "nopgchange",
37676 "type" : "boolean"
37677 },
37678 "noscrub" : {
37679 "title" : "noscrub",
37680 "type" : "boolean"
37681 },
37682 "nosizechange" : {
37683 "title" : "nosizechange",
37684 "type" : "boolean"
37685 },
37686 "pg_autoscale_mode" : {
37687 "default" : "warn",
37688 "description" : "The automatic PG scaling mode of the pool.",
37689 "enum" : [
37690 "on",
37691 "off",
37692 "warn"
37693 ],
37694 "optional" : 1,
37695 "title" : "PG Autoscale Mode",
37696 "type" : "string"
37697 },
37698 "pg_num" : {
37699 "default" : 128,
37700 "description" : "Number of placement groups.",
37701 "maximum" : 32768,
37702 "minimum" : 1,
37703 "optional" : 1,
37704 "title" : "PG Num",
37705 "type" : "integer"
37706 },
37707 "pg_num_min" : {
37708 "description" : "Minimal number of placement groups.",
37709 "maximum" : 32768,
37710 "optional" : 1,
37711 "title" : "min. PG Num",
37712 "type" : "integer"
37713 },
37714 "pgp_num" : {
37715 "title" : "PGP num",
37716 "type" : "integer"
37717 },
37718 "size" : {
37719 "default" : 3,
37720 "description" : "Number of replicas per object",
37721 "maximum" : 7,
37722 "minimum" : 1,
37723 "optional" : 1,
37724 "title" : "Size",
37725 "type" : "integer"
37726 },
37727 "statistics" : {
37728 "optional" : 1,
37729 "title" : "Statistics",
37730 "type" : "object"
37731 },
37732 "target_size" : {
37733 "description" : "The estimated target size of the pool for the PG autoscaler.",
37734 "optional" : 1,
37735 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
37736 "title" : "PG Autoscale Target Size",
37737 "type" : "string"
37738 },
37739 "target_size_ratio" : {
37740 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
37741 "optional" : 1,
37742 "title" : "PG Autoscale Target Ratio",
37743 "type" : "number"
37744 },
37745 "use_gmt_hitset" : {
37746 "title" : "use_gmt_hitset",
37747 "type" : "boolean"
37748 },
37749 "write_fadvise_dontneed" : {
37750 "title" : "write_fadvise_dontneed",
37751 "type" : "boolean"
37752 }
37753 },
37754 "type" : "object"
37755 }
37756 }
37757 },
37758 "leaf" : 1,
37759 "path" : "/nodes/{node}/ceph/pool/{name}/status",
37760 "text" : "status"
37761 }
37762 ],
37763 "info" : {
37764 "DELETE" : {
37765 "allowtoken" : 1,
37766 "description" : "Destroy pool",
37767 "method" : "DELETE",
37768 "name" : "destroypool",
37769 "parameters" : {
37770 "additionalProperties" : 0,
37771 "properties" : {
37772 "force" : {
37773 "default" : 0,
37774 "description" : "If true, destroys pool even if in use",
37775 "optional" : 1,
37776 "type" : "boolean",
37777 "typetext" : "<boolean>"
37778 },
37779 "name" : {
37780 "description" : "The name of the pool. It must be unique.",
37781 "type" : "string",
37782 "typetext" : "<string>"
37783 },
37784 "node" : {
37785 "description" : "The cluster node name.",
37786 "format" : "pve-node",
37787 "type" : "string",
37788 "typetext" : "<string>"
37789 },
37790 "remove_ecprofile" : {
37791 "default" : 1,
37792 "description" : "Remove the erasure code profile. Defaults to true, if applicable.",
37793 "optional" : 1,
37794 "type" : "boolean",
37795 "typetext" : "<boolean>"
37796 },
37797 "remove_storages" : {
37798 "default" : 0,
37799 "description" : "Remove all pveceph-managed storages configured for this pool",
37800 "optional" : 1,
37801 "type" : "boolean",
37802 "typetext" : "<boolean>"
37803 }
37804 }
37805 },
37806 "permissions" : {
37807 "check" : [
37808 "perm",
37809 "/",
37810 [
37811 "Sys.Modify"
37812 ]
37813 ]
37814 },
37815 "protected" : 1,
37816 "proxyto" : "node",
37817 "returns" : {
37818 "type" : "string"
37819 }
37820 },
37821 "GET" : {
37822 "allowtoken" : 1,
37823 "description" : "Pool index.",
37824 "method" : "GET",
37825 "name" : "poolindex",
37826 "parameters" : {
37827 "additionalProperties" : 0,
37828 "properties" : {
37829 "name" : {
37830 "description" : "The name of the pool.",
37831 "type" : "string",
37832 "typetext" : "<string>"
37833 },
37834 "node" : {
37835 "description" : "The cluster node name.",
37836 "format" : "pve-node",
37837 "type" : "string",
37838 "typetext" : "<string>"
37839 }
37840 }
37841 },
37842 "permissions" : {
37843 "check" : [
37844 "perm",
37845 "/",
37846 [
37847 "Sys.Audit",
37848 "Datastore.Audit"
37849 ],
37850 "any",
37851 1
37852 ]
37853 },
37854 "returns" : {
37855 "items" : {
37856 "properties" : {},
37857 "type" : "object"
37858 },
37859 "links" : [
37860 {
37861 "href" : "{name}",
37862 "rel" : "child"
37863 }
37864 ],
37865 "type" : "array"
37866 }
37867 },
37868 "PUT" : {
37869 "allowtoken" : 1,
37870 "description" : "Change POOL settings",
37871 "method" : "PUT",
37872 "name" : "setpool",
37873 "parameters" : {
37874 "additionalProperties" : 0,
37875 "properties" : {
37876 "application" : {
37877 "description" : "The application of the pool.",
37878 "enum" : [
37879 "rbd",
37880 "cephfs",
37881 "rgw"
37882 ],
37883 "optional" : 1,
37884 "title" : "Application",
37885 "type" : "string"
37886 },
37887 "crush_rule" : {
37888 "description" : "The rule to use for mapping object placement in the cluster.",
37889 "optional" : 1,
37890 "title" : "Crush Rule Name",
37891 "type" : "string",
37892 "typetext" : "<string>"
37893 },
37894 "min_size" : {
37895 "description" : "Minimum number of replicas per object",
37896 "maximum" : 7,
37897 "minimum" : 1,
37898 "optional" : 1,
37899 "title" : "Min Size",
37900 "type" : "integer",
37901 "typetext" : "<integer> (1 - 7)"
37902 },
37903 "name" : {
37904 "description" : "The name of the pool. It must be unique.",
37905 "title" : "Name",
37906 "type" : "string",
37907 "typetext" : "<string>"
37908 },
37909 "node" : {
37910 "description" : "The cluster node name.",
37911 "format" : "pve-node",
37912 "type" : "string",
37913 "typetext" : "<string>"
37914 },
37915 "pg_autoscale_mode" : {
37916 "description" : "The automatic PG scaling mode of the pool.",
37917 "enum" : [
37918 "on",
37919 "off",
37920 "warn"
37921 ],
37922 "optional" : 1,
37923 "title" : "PG Autoscale Mode",
37924 "type" : "string"
37925 },
37926 "pg_num" : {
37927 "description" : "Number of placement groups.",
37928 "maximum" : 32768,
37929 "minimum" : 1,
37930 "optional" : 1,
37931 "title" : "PG Num",
37932 "type" : "integer",
37933 "typetext" : "<integer> (1 - 32768)"
37934 },
37935 "pg_num_min" : {
37936 "description" : "Minimal number of placement groups.",
37937 "maximum" : 32768,
37938 "optional" : 1,
37939 "title" : "min. PG Num",
37940 "type" : "integer",
37941 "typetext" : "<integer> (-N - 32768)"
37942 },
37943 "size" : {
37944 "description" : "Number of replicas per object",
37945 "maximum" : 7,
37946 "minimum" : 1,
37947 "optional" : 1,
37948 "title" : "Size",
37949 "type" : "integer",
37950 "typetext" : "<integer> (1 - 7)"
37951 },
37952 "target_size" : {
37953 "description" : "The estimated target size of the pool for the PG autoscaler.",
37954 "optional" : 1,
37955 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
37956 "title" : "PG Autoscale Target Size",
37957 "type" : "string"
37958 },
37959 "target_size_ratio" : {
37960 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
37961 "optional" : 1,
37962 "title" : "PG Autoscale Target Ratio",
37963 "type" : "number",
37964 "typetext" : "<number>"
37965 }
37966 }
37967 },
37968 "permissions" : {
37969 "check" : [
37970 "perm",
37971 "/",
37972 [
37973 "Sys.Modify"
37974 ]
37975 ]
37976 },
37977 "protected" : 1,
37978 "proxyto" : "node",
37979 "returns" : {
37980 "type" : "string"
37981 }
37982 }
37983 },
37984 "leaf" : 0,
37985 "path" : "/nodes/{node}/ceph/pool/{name}",
37986 "text" : "{name}"
37987 }
37988 ],
37989 "info" : {
37990 "GET" : {
37991 "allowtoken" : 1,
37992 "description" : "List all pools and their settings (which are settable by the POST/PUT endpoints).",
37993 "method" : "GET",
37994 "name" : "lspools",
37995 "parameters" : {
37996 "additionalProperties" : 0,
37997 "properties" : {
37998 "node" : {
37999 "description" : "The cluster node name.",
38000 "format" : "pve-node",
38001 "type" : "string",
38002 "typetext" : "<string>"
38003 }
38004 }
38005 },
38006 "permissions" : {
38007 "check" : [
38008 "perm",
38009 "/",
38010 [
38011 "Sys.Audit",
38012 "Datastore.Audit"
38013 ],
38014 "any",
38015 1
38016 ]
38017 },
38018 "protected" : 1,
38019 "proxyto" : "node",
38020 "returns" : {
38021 "items" : {
38022 "properties" : {
38023 "application_metadata" : {
38024 "optional" : 1,
38025 "title" : "Associated Applications",
38026 "type" : "object"
38027 },
38028 "autoscale_status" : {
38029 "optional" : 1,
38030 "title" : "Autoscale Status",
38031 "type" : "object"
38032 },
38033 "bytes_used" : {
38034 "title" : "Used",
38035 "type" : "integer"
38036 },
38037 "crush_rule" : {
38038 "title" : "Crush Rule",
38039 "type" : "integer"
38040 },
38041 "crush_rule_name" : {
38042 "title" : "Crush Rule Name",
5f26e15b
TL
38043 "type" : "string"
38044 },
9d2e98ed
TL
38045 "min_size" : {
38046 "title" : "Min Size",
38047 "type" : "integer"
38048 },
38049 "percent_used" : {
38050 "title" : "%-Used",
38051 "type" : "number"
38052 },
38053 "pg_autoscale_mode" : {
38054 "optional" : 1,
38055 "title" : "PG Autoscale Mode",
4d47f125
TL
38056 "type" : "string"
38057 },
9d2e98ed
TL
38058 "pg_num" : {
38059 "title" : "PG Num",
38060 "type" : "integer"
38061 },
38062 "pg_num_final" : {
38063 "optional" : 1,
38064 "title" : "Optimal PG Num",
38065 "type" : "integer"
38066 },
38067 "pg_num_min" : {
38068 "optional" : 1,
38069 "title" : "min. PG Num",
38070 "type" : "integer"
38071 },
38072 "pool" : {
38073 "title" : "ID",
38074 "type" : "integer"
38075 },
38076 "pool_name" : {
38077 "title" : "Name",
38078 "type" : "string"
38079 },
38080 "size" : {
38081 "title" : "Size",
38082 "type" : "integer"
38083 },
38084 "target_size" : {
38085 "optional" : 1,
38086 "title" : "PG Autoscale Target Size",
38087 "type" : "integer"
38088 },
38089 "target_size_ratio" : {
38090 "optional" : 1,
38091 "title" : "PG Autoscale Target Ratio",
38092 "type" : "number"
38093 },
38094 "type" : {
38095 "enum" : [
38096 "replicated",
38097 "erasure",
38098 "unknown"
38099 ],
38100 "title" : "Type",
4d47f125
TL
38101 "type" : "string"
38102 }
7aacca6f 38103 },
4d47f125
TL
38104 "type" : "object"
38105 },
38106 "links" : [
38107 {
9d2e98ed 38108 "href" : "{pool_name}",
4d47f125
TL
38109 "rel" : "child"
38110 }
38111 ],
38112 "type" : "array"
38113 }
9d2e98ed
TL
38114 },
38115 "POST" : {
38116 "allowtoken" : 1,
38117 "description" : "Create Ceph pool",
38118 "method" : "POST",
38119 "name" : "createpool",
38120 "parameters" : {
38121 "additionalProperties" : 0,
38122 "properties" : {
38123 "add_storages" : {
38124 "default" : "0; for erasure coded pools: 1",
38125 "description" : "Configure VM and CT storage using the new pool.",
38126 "optional" : 1,
38127 "type" : "boolean",
38128 "typetext" : "<boolean>"
38129 },
38130 "application" : {
38131 "default" : "rbd",
38132 "description" : "The application of the pool.",
38133 "enum" : [
38134 "rbd",
38135 "cephfs",
38136 "rgw"
38137 ],
38138 "optional" : 1,
38139 "title" : "Application",
38140 "type" : "string"
38141 },
38142 "crush_rule" : {
38143 "description" : "The rule to use for mapping object placement in the cluster.",
38144 "optional" : 1,
38145 "title" : "Crush Rule Name",
38146 "type" : "string",
38147 "typetext" : "<string>"
38148 },
38149 "erasure-coding" : {
38150 "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.",
38151 "format" : {
38152 "device-class" : {
38153 "description" : "CRUSH device class. Will create an erasure coded pool plus a replicated pool for metadata.",
38154 "format_description" : "class",
38155 "optional" : 1,
38156 "type" : "string"
38157 },
38158 "failure-domain" : {
38159 "default" : "host",
38160 "description" : "CRUSH failure domain. Default is 'host'. Will create an erasure coded pool plus a replicated pool for metadata.",
38161 "format_description" : "domain",
38162 "optional" : 1,
38163 "type" : "string"
38164 },
38165 "k" : {
38166 "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
38167 "minimum" : 2,
38168 "type" : "integer"
38169 },
38170 "m" : {
38171 "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
38172 "minimum" : 1,
38173 "type" : "integer"
38174 },
38175 "profile" : {
38176 "description" : "Override the erasure code (EC) profile to use. Will create an erasure coded pool plus a replicated pool for metadata.",
38177 "format_description" : "profile",
38178 "optional" : 1,
38179 "type" : "string"
38180 }
38181 },
38182 "optional" : 1,
38183 "type" : "string",
38184 "typetext" : "k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]"
38185 },
38186 "min_size" : {
38187 "default" : 2,
38188 "description" : "Minimum number of replicas per object",
38189 "maximum" : 7,
38190 "minimum" : 1,
38191 "optional" : 1,
38192 "title" : "Min Size",
38193 "type" : "integer",
38194 "typetext" : "<integer> (1 - 7)"
38195 },
38196 "name" : {
38197 "description" : "The name of the pool. It must be unique.",
38198 "title" : "Name",
38199 "type" : "string",
38200 "typetext" : "<string>"
38201 },
38202 "node" : {
38203 "description" : "The cluster node name.",
38204 "format" : "pve-node",
38205 "type" : "string",
38206 "typetext" : "<string>"
38207 },
38208 "pg_autoscale_mode" : {
38209 "default" : "warn",
38210 "description" : "The automatic PG scaling mode of the pool.",
38211 "enum" : [
38212 "on",
38213 "off",
38214 "warn"
38215 ],
38216 "optional" : 1,
38217 "title" : "PG Autoscale Mode",
38218 "type" : "string"
38219 },
38220 "pg_num" : {
38221 "default" : 128,
38222 "description" : "Number of placement groups.",
38223 "maximum" : 32768,
38224 "minimum" : 1,
38225 "optional" : 1,
38226 "title" : "PG Num",
38227 "type" : "integer",
38228 "typetext" : "<integer> (1 - 32768)"
38229 },
38230 "pg_num_min" : {
38231 "description" : "Minimal number of placement groups.",
38232 "maximum" : 32768,
38233 "optional" : 1,
38234 "title" : "min. PG Num",
38235 "type" : "integer",
38236 "typetext" : "<integer> (-N - 32768)"
38237 },
38238 "size" : {
38239 "default" : 3,
38240 "description" : "Number of replicas per object",
38241 "maximum" : 7,
38242 "minimum" : 1,
38243 "optional" : 1,
38244 "title" : "Size",
38245 "type" : "integer",
38246 "typetext" : "<integer> (1 - 7)"
38247 },
38248 "target_size" : {
38249 "description" : "The estimated target size of the pool for the PG autoscaler.",
38250 "optional" : 1,
38251 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
38252 "title" : "PG Autoscale Target Size",
38253 "type" : "string"
38254 },
38255 "target_size_ratio" : {
38256 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
38257 "optional" : 1,
38258 "title" : "PG Autoscale Target Ratio",
38259 "type" : "number",
38260 "typetext" : "<number>"
38261 }
38262 }
38263 },
38264 "permissions" : {
38265 "check" : [
38266 "perm",
38267 "/",
38268 [
38269 "Sys.Modify"
38270 ]
38271 ]
38272 },
38273 "protected" : 1,
38274 "proxyto" : "node",
38275 "returns" : {
38276 "type" : "string"
38277 }
5f26e15b
TL
38278 }
38279 },
38280 "leaf" : 0,
9d2e98ed
TL
38281 "path" : "/nodes/{node}/ceph/pool",
38282 "text" : "pool"
5f26e15b 38283 },
4d47f125
TL
38284 {
38285 "info" : {
38286 "POST" : {
e9cd3bd4 38287 "allowtoken" : 1,
4d47f125
TL
38288 "description" : "Create initial ceph default configuration and setup symlinks.",
38289 "method" : "POST",
38290 "name" : "init",
38291 "parameters" : {
38292 "additionalProperties" : 0,
38293 "properties" : {
e2d681b3
TL
38294 "cluster-network" : {
38295 "description" : "Declare a separate cluster network, OSDs will routeheartbeat, object replication and recovery traffic over it",
38296 "format" : "CIDR",
38297 "maxLength" : 128,
38298 "optional" : 1,
38299 "requires" : "network",
38300 "type" : "string",
38301 "typetext" : "<string>"
38302 },
4d47f125
TL
38303 "disable_cephx" : {
38304 "default" : 0,
1e3f8156 38305 "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 38306 "optional" : 1,
4d47f125
TL
38307 "type" : "boolean",
38308 "typetext" : "<boolean>"
56122987 38309 },
4d47f125
TL
38310 "min_size" : {
38311 "default" : 2,
38312 "description" : "Minimum number of available replicas per object to allow I/O",
38313 "maximum" : 7,
38314 "minimum" : 1,
7aacca6f 38315 "optional" : 1,
4d47f125
TL
38316 "type" : "integer",
38317 "typetext" : "<integer> (1 - 7)"
7aacca6f 38318 },
4d47f125
TL
38319 "network" : {
38320 "description" : "Use specific network for all ceph related traffic",
38321 "format" : "CIDR",
38322 "maxLength" : 128,
5d9c884c 38323 "optional" : 1,
4d47f125
TL
38324 "type" : "string",
38325 "typetext" : "<string>"
5d9c884c 38326 },
4d47f125
TL
38327 "node" : {
38328 "description" : "The cluster node name.",
38329 "format" : "pve-node",
38330 "type" : "string",
38331 "typetext" : "<string>"
7aacca6f 38332 },
4d47f125
TL
38333 "pg_bits" : {
38334 "default" : 6,
38335 "description" : "Placement group bits, used to specify the default number of placement groups.\n\nNOTE: 'osd pool default pg num' does not work for default pools.",
38336 "maximum" : 14,
38337 "minimum" : 6,
de0983cb 38338 "optional" : 1,
4d47f125
TL
38339 "type" : "integer",
38340 "typetext" : "<integer> (6 - 14)"
de0983cb 38341 },
44660702 38342 "size" : {
4d47f125
TL
38343 "default" : 3,
38344 "description" : "Targeted number of replicas per object",
38345 "maximum" : 7,
38346 "minimum" : 1,
7aacca6f 38347 "optional" : 1,
4d47f125
TL
38348 "type" : "integer",
38349 "typetext" : "<integer> (1 - 7)"
56122987 38350 }
4d47f125 38351 }
44660702 38352 },
4d47f125
TL
38353 "permissions" : {
38354 "check" : [
38355 "perm",
38356 "/",
38357 [
38358 "Sys.Modify"
38359 ]
38360 ]
5da3d723 38361 },
4d47f125
TL
38362 "protected" : 1,
38363 "proxyto" : "node",
38364 "returns" : {
38365 "type" : "null"
38366 }
38367 }
38368 },
38369 "leaf" : 1,
38370 "path" : "/nodes/{node}/ceph/init",
38371 "text" : "init"
38372 },
4d47f125
TL
38373 {
38374 "info" : {
38375 "POST" : {
e9cd3bd4 38376 "allowtoken" : 1,
4d47f125
TL
38377 "description" : "Stop ceph services.",
38378 "method" : "POST",
38379 "name" : "stop",
38380 "parameters" : {
38381 "additionalProperties" : 0,
38382 "properties" : {
38383 "node" : {
38384 "description" : "The cluster node name.",
38385 "format" : "pve-node",
38386 "type" : "string",
38387 "typetext" : "<string>"
38388 },
38389 "service" : {
e2d681b3 38390 "default" : "ceph.target",
4d47f125
TL
38391 "description" : "Ceph service name.",
38392 "optional" : 1,
c5aa7e14 38393 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
38394 "type" : "string"
38395 }
38396 }
7aacca6f 38397 },
4d47f125
TL
38398 "permissions" : {
38399 "check" : [
38400 "perm",
38401 "/",
38402 [
38403 "Sys.Modify"
38404 ]
38405 ]
7aacca6f 38406 },
4d47f125
TL
38407 "protected" : 1,
38408 "proxyto" : "node",
38409 "returns" : {
38410 "type" : "string"
38411 }
38412 }
38413 },
38414 "leaf" : 1,
38415 "path" : "/nodes/{node}/ceph/stop",
38416 "text" : "stop"
38417 },
38418 {
38419 "info" : {
38420 "POST" : {
e9cd3bd4 38421 "allowtoken" : 1,
4d47f125
TL
38422 "description" : "Start ceph services.",
38423 "method" : "POST",
38424 "name" : "start",
38425 "parameters" : {
38426 "additionalProperties" : 0,
38427 "properties" : {
38428 "node" : {
38429 "description" : "The cluster node name.",
38430 "format" : "pve-node",
38431 "type" : "string",
38432 "typetext" : "<string>"
38433 },
38434 "service" : {
e2d681b3 38435 "default" : "ceph.target",
4d47f125
TL
38436 "description" : "Ceph service name.",
38437 "optional" : 1,
c5aa7e14 38438 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
38439 "type" : "string"
38440 }
38441 }
44660702 38442 },
4d47f125
TL
38443 "permissions" : {
38444 "check" : [
38445 "perm",
38446 "/",
38447 [
38448 "Sys.Modify"
38449 ]
38450 ]
44660702 38451 },
4d47f125
TL
38452 "protected" : 1,
38453 "proxyto" : "node",
38454 "returns" : {
38455 "type" : "string"
44660702 38456 }
7aacca6f
DM
38457 }
38458 },
4d47f125
TL
38459 "leaf" : 1,
38460 "path" : "/nodes/{node}/ceph/start",
38461 "text" : "start"
38462 },
e2d681b3
TL
38463 {
38464 "info" : {
38465 "POST" : {
e9cd3bd4 38466 "allowtoken" : 1,
e2d681b3
TL
38467 "description" : "Restart ceph services.",
38468 "method" : "POST",
38469 "name" : "restart",
38470 "parameters" : {
38471 "additionalProperties" : 0,
38472 "properties" : {
38473 "node" : {
38474 "description" : "The cluster node name.",
38475 "format" : "pve-node",
38476 "type" : "string",
38477 "typetext" : "<string>"
38478 },
38479 "service" : {
38480 "default" : "ceph.target",
38481 "description" : "Ceph service name.",
38482 "optional" : 1,
c5aa7e14 38483 "pattern" : "(mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
e2d681b3
TL
38484 "type" : "string"
38485 }
38486 }
38487 },
38488 "permissions" : {
38489 "check" : [
38490 "perm",
38491 "/",
38492 [
38493 "Sys.Modify"
38494 ]
38495 ]
38496 },
38497 "protected" : 1,
38498 "proxyto" : "node",
38499 "returns" : {
38500 "type" : "string"
38501 }
38502 }
38503 },
38504 "leaf" : 1,
38505 "path" : "/nodes/{node}/ceph/restart",
38506 "text" : "restart"
38507 },
4d47f125
TL
38508 {
38509 "info" : {
38510 "GET" : {
e9cd3bd4 38511 "allowtoken" : 1,
4d47f125
TL
38512 "description" : "Get ceph status.",
38513 "method" : "GET",
38514 "name" : "status",
38515 "parameters" : {
38516 "additionalProperties" : 0,
38517 "properties" : {
38518 "node" : {
38519 "description" : "The cluster node name.",
38520 "format" : "pve-node",
38521 "type" : "string",
38522 "typetext" : "<string>"
38523 }
38524 }
38525 },
38526 "permissions" : {
38527 "check" : [
38528 "perm",
38529 "/",
38530 [
38531 "Sys.Audit",
38532 "Datastore.Audit"
38533 ],
38534 "any",
38535 1
38536 ]
38537 },
38538 "protected" : 1,
38539 "proxyto" : "node",
38540 "returns" : {
d2656385 38541 "type" : "object"
44660702 38542 }
56122987 38543 }
44660702 38544 },
d2656385
TL
38545 "leaf" : 1,
38546 "path" : "/nodes/{node}/ceph/status",
38547 "text" : "status"
7aacca6f 38548 },
56122987 38549 {
56122987
DM
38550 "info" : {
38551 "GET" : {
e9cd3bd4 38552 "allowtoken" : 1,
4d47f125 38553 "description" : "Get OSD crush map",
44660702 38554 "method" : "GET",
4d47f125 38555 "name" : "crush",
56122987 38556 "parameters" : {
7aacca6f 38557 "additionalProperties" : 0,
56122987 38558 "properties" : {
56122987 38559 "node" : {
7aacca6f 38560 "description" : "The cluster node name.",
44660702 38561 "format" : "pve-node",
013dc89f
DM
38562 "type" : "string",
38563 "typetext" : "<string>"
56122987 38564 }
7aacca6f 38565 }
56122987 38566 },
56122987
DM
38567 "permissions" : {
38568 "check" : [
38569 "perm",
38570 "/",
38571 [
38572 "Sys.Audit",
38573 "Datastore.Audit"
38574 ],
38575 "any",
38576 1
38577 ]
44660702 38578 },
4d47f125
TL
38579 "protected" : 1,
38580 "proxyto" : "node",
44660702
DM
38581 "returns" : {
38582 "type" : "string"
7aacca6f
DM
38583 }
38584 }
44660702
DM
38585 },
38586 "leaf" : 1,
4d47f125
TL
38587 "path" : "/nodes/{node}/ceph/crush",
38588 "text" : "crush"
7aacca6f
DM
38589 },
38590 {
7aacca6f
DM
38591 "info" : {
38592 "GET" : {
e9cd3bd4 38593 "allowtoken" : 1,
4d47f125 38594 "description" : "Read ceph log",
7aacca6f 38595 "method" : "GET",
4d47f125 38596 "name" : "log",
7aacca6f
DM
38597 "parameters" : {
38598 "additionalProperties" : 0,
38599 "properties" : {
4d47f125
TL
38600 "limit" : {
38601 "minimum" : 0,
38602 "optional" : 1,
38603 "type" : "integer",
38604 "typetext" : "<integer> (0 - N)"
38605 },
7aacca6f 38606 "node" : {
7aacca6f 38607 "description" : "The cluster node name.",
44660702 38608 "format" : "pve-node",
013dc89f
DM
38609 "type" : "string",
38610 "typetext" : "<string>"
4d47f125
TL
38611 },
38612 "start" : {
38613 "minimum" : 0,
38614 "optional" : 1,
38615 "type" : "integer",
38616 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
38617 }
38618 }
38619 },
44660702
DM
38620 "permissions" : {
38621 "check" : [
38622 "perm",
4d47f125 38623 "/nodes/{node}",
44660702 38624 [
4d47f125
TL
38625 "Sys.Syslog"
38626 ]
44660702
DM
38627 ]
38628 },
7aacca6f 38629 "protected" : 1,
44660702 38630 "proxyto" : "node",
7aacca6f
DM
38631 "returns" : {
38632 "items" : {
38633 "properties" : {
4d47f125
TL
38634 "n" : {
38635 "description" : "Line number",
38636 "type" : "integer"
56122987 38637 },
4d47f125
TL
38638 "t" : {
38639 "description" : "Line text",
56122987
DM
38640 "type" : "string"
38641 }
7aacca6f
DM
38642 },
38643 "type" : "object"
56122987
DM
38644 },
38645 "type" : "array"
44660702 38646 }
4d47f125
TL
38647 }
38648 },
38649 "leaf" : 1,
38650 "path" : "/nodes/{node}/ceph/log",
38651 "text" : "log"
38652 },
38653 {
38654 "info" : {
38655 "GET" : {
e9cd3bd4 38656 "allowtoken" : 1,
4d47f125
TL
38657 "description" : "List ceph rules.",
38658 "method" : "GET",
38659 "name" : "rules",
44660702
DM
38660 "parameters" : {
38661 "additionalProperties" : 0,
38662 "properties" : {
38663 "node" : {
38664 "description" : "The cluster node name.",
38665 "format" : "pve-node",
013dc89f
DM
38666 "type" : "string",
38667 "typetext" : "<string>"
44660702
DM
38668 }
38669 }
38670 },
7aacca6f
DM
38671 "permissions" : {
38672 "check" : [
38673 "perm",
38674 "/",
38675 [
4d47f125
TL
38676 "Sys.Audit",
38677 "Datastore.Audit"
38678 ],
38679 "any",
38680 1
7aacca6f
DM
38681 ]
38682 },
44660702 38683 "protected" : 1,
7aacca6f 38684 "proxyto" : "node",
56122987 38685 "returns" : {
4d47f125 38686 "items" : {
9d2e98ed
TL
38687 "properties" : {
38688 "name" : {
38689 "description" : "Name of the CRUSH rule.",
38690 "type" : "string"
38691 }
38692 },
4d47f125
TL
38693 "type" : "object"
38694 },
38695 "links" : [
38696 {
38697 "href" : "{name}",
38698 "rel" : "child"
38699 }
38700 ],
38701 "type" : "array"
44660702 38702 }
56122987 38703 }
44660702 38704 },
4d47f125
TL
38705 "leaf" : 1,
38706 "path" : "/nodes/{node}/ceph/rules",
38707 "text" : "rules"
81a3384d
TL
38708 },
38709 {
38710 "info" : {
38711 "GET" : {
38712 "allowtoken" : 1,
38713 "description" : "Heuristical check if it is safe to perform an action.",
38714 "method" : "GET",
38715 "name" : "cmd_safety",
38716 "parameters" : {
38717 "additionalProperties" : 0,
38718 "properties" : {
38719 "action" : {
38720 "description" : "Action to check",
38721 "enum" : [
38722 "stop",
38723 "destroy"
38724 ],
38725 "type" : "string"
38726 },
38727 "id" : {
38728 "description" : "ID of the service",
38729 "type" : "string",
38730 "typetext" : "<string>"
38731 },
38732 "node" : {
38733 "description" : "The cluster node name.",
38734 "format" : "pve-node",
38735 "type" : "string",
38736 "typetext" : "<string>"
38737 },
38738 "service" : {
38739 "description" : "Service type",
38740 "enum" : [
38741 "osd",
38742 "mon",
38743 "mds"
38744 ],
38745 "type" : "string"
38746 }
38747 }
38748 },
38749 "permissions" : {
38750 "check" : [
38751 "perm",
38752 "/",
38753 [
9d2e98ed 38754 "Sys.Audit"
81a3384d
TL
38755 ]
38756 ]
38757 },
38758 "protected" : 1,
38759 "proxyto" : "node",
38760 "returns" : {
38761 "properties" : {
38762 "safe" : {
38763 "description" : "If it is safe to run the command.",
38764 "type" : "boolean"
38765 },
38766 "status" : {
38767 "description" : "Status message given by Ceph.",
38768 "optional" : 1,
38769 "type" : "string"
38770 }
38771 },
38772 "type" : "object"
38773 }
38774 }
38775 },
38776 "leaf" : 1,
38777 "path" : "/nodes/{node}/ceph/cmd-safety",
38778 "text" : "cmd-safety"
4d47f125
TL
38779 }
38780 ],
38781 "info" : {
38782 "GET" : {
e9cd3bd4 38783 "allowtoken" : 1,
4d47f125
TL
38784 "description" : "Directory index.",
38785 "method" : "GET",
38786 "name" : "index",
38787 "parameters" : {
38788 "additionalProperties" : 0,
38789 "properties" : {
38790 "node" : {
38791 "description" : "The cluster node name.",
38792 "format" : "pve-node",
38793 "type" : "string",
38794 "typetext" : "<string>"
38795 }
38796 }
38797 },
38798 "permissions" : {
38799 "check" : [
38800 "perm",
38801 "/",
38802 [
38803 "Sys.Audit",
38804 "Datastore.Audit"
38805 ],
38806 "any",
38807 1
38808 ]
38809 },
38810 "returns" : {
38811 "items" : {
38812 "properties" : {},
38813 "type" : "object"
38814 },
38815 "links" : [
38816 {
38817 "href" : "{name}",
38818 "rel" : "child"
38819 }
38820 ],
38821 "type" : "array"
38822 }
38823 }
38824 },
38825 "leaf" : 0,
38826 "path" : "/nodes/{node}/ceph",
38827 "text" : "ceph"
38828 },
38829 {
38830 "children" : [
e7084ef7
TL
38831 {
38832 "info" : {
38833 "GET" : {
38834 "allowtoken" : 1,
38835 "description" : "Get the currently configured vzdump defaults.",
38836 "method" : "GET",
38837 "name" : "defaults",
38838 "parameters" : {
38839 "additionalProperties" : 0,
38840 "properties" : {
38841 "node" : {
38842 "description" : "The cluster node name.",
38843 "format" : "pve-node",
38844 "type" : "string",
38845 "typetext" : "<string>"
38846 },
38847 "storage" : {
38848 "description" : "The storage identifier.",
38849 "format" : "pve-storage-id",
38850 "optional" : 1,
38851 "type" : "string",
38852 "typetext" : "<string>"
38853 }
38854 }
38855 },
38856 "permissions" : {
38857 "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.",
38858 "user" : "all"
38859 },
38860 "proxyto" : "node",
38861 "returns" : {
38862 "additionalProperties" : 0,
38863 "properties" : {
38864 "all" : {
38865 "default" : 0,
38866 "description" : "Backup all known guest systems on this host.",
38867 "optional" : 1,
38868 "type" : "boolean"
38869 },
38870 "bwlimit" : {
38871 "default" : 0,
4a407cfd 38872 "description" : "Limit I/O bandwidth (in KiB/s).",
e7084ef7
TL
38873 "minimum" : 0,
38874 "optional" : 1,
38875 "type" : "integer"
38876 },
38877 "compress" : {
38878 "default" : "0",
38879 "description" : "Compress dump file.",
38880 "enum" : [
38881 "0",
38882 "1",
38883 "gzip",
38884 "lzo",
38885 "zstd"
38886 ],
38887 "optional" : 1,
38888 "type" : "string"
38889 },
38890 "dumpdir" : {
38891 "description" : "Store resulting files to specified directory.",
38892 "optional" : 1,
38893 "type" : "string"
38894 },
38895 "exclude" : {
38896 "description" : "Exclude specified guest systems (assumes --all)",
38897 "format" : "pve-vmid-list",
38898 "optional" : 1,
38899 "type" : "string"
38900 },
38901 "exclude-path" : {
38902 "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
38903 "items" : {
38904 "type" : "string"
38905 },
e7084ef7 38906 "optional" : 1,
4a407cfd 38907 "type" : "array"
e7084ef7
TL
38908 },
38909 "ionice" : {
38910 "default" : 7,
159464a9 38911 "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
38912 "maximum" : 8,
38913 "minimum" : 0,
38914 "optional" : 1,
38915 "type" : "integer"
38916 },
38917 "lockwait" : {
38918 "default" : 180,
38919 "description" : "Maximal time to wait for the global lock (minutes).",
38920 "minimum" : 0,
38921 "optional" : 1,
38922 "type" : "integer"
38923 },
38924 "mailnotification" : {
38925 "default" : "always",
82551b2b 38926 "description" : "Deprecated: use 'notification-policy' instead.",
e7084ef7
TL
38927 "enum" : [
38928 "always",
38929 "failure"
38930 ],
38931 "optional" : 1,
38932 "type" : "string"
38933 },
38934 "mailto" : {
82551b2b 38935 "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
38936 "format" : "email-or-username-list",
38937 "optional" : 1,
38938 "type" : "string"
38939 },
38940 "maxfiles" : {
0695fdaf 38941 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
e7084ef7
TL
38942 "minimum" : 1,
38943 "optional" : 1,
38944 "type" : "integer"
38945 },
38946 "mode" : {
38947 "default" : "snapshot",
38948 "description" : "Backup mode.",
38949 "enum" : [
38950 "snapshot",
38951 "suspend",
38952 "stop"
38953 ],
38954 "optional" : 1,
38955 "type" : "string"
38956 },
38957 "node" : {
38958 "description" : "Only run if executed on this node.",
38959 "format" : "pve-node",
38960 "optional" : 1,
38961 "type" : "string"
38962 },
7af2edf9 38963 "notes-template" : {
4e7f60c2
TL
38964 "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.",
38965 "maxLength" : 1024,
7af2edf9
TL
38966 "optional" : 1,
38967 "requires" : "storage",
38968 "type" : "string"
38969 },
82551b2b
TL
38970 "notification-policy" : {
38971 "default" : "always",
38972 "description" : "Specify when to send a notification",
38973 "enum" : [
38974 "always",
38975 "failure",
38976 "never"
38977 ],
38978 "optional" : 1,
38979 "type" : "string"
38980 },
38981 "notification-target" : {
38982 "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.",
38983 "format" : "pve-configid",
38984 "optional" : 1,
38985 "type" : "string"
38986 },
4e7f60c2
TL
38987 "performance" : {
38988 "description" : "Other performance-related settings.",
38989 "format" : "backup-performance",
38990 "optional" : 1,
38991 "type" : "string"
38992 },
e7084ef7
TL
38993 "pigz" : {
38994 "default" : 0,
38995 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
38996 "optional" : 1,
38997 "type" : "integer"
38998 },
38999 "pool" : {
39000 "description" : "Backup all known guest systems included in the specified pool.",
39001 "optional" : 1,
39002 "type" : "string"
39003 },
7af2edf9
TL
39004 "protected" : {
39005 "description" : "If true, mark backup(s) as protected.",
39006 "optional" : 1,
39007 "requires" : "storage",
39008 "type" : "boolean"
39009 },
e7084ef7 39010 "prune-backups" : {
0695fdaf 39011 "default" : "keep-all=1",
e7084ef7
TL
39012 "description" : "Use these retention options instead of those from the storage configuration.",
39013 "format" : "prune-backups",
39014 "optional" : 1,
39015 "type" : "string"
39016 },
39017 "quiet" : {
39018 "default" : 0,
39019 "description" : "Be quiet.",
39020 "optional" : 1,
39021 "type" : "boolean"
39022 },
39023 "remove" : {
39024 "default" : 1,
0695fdaf 39025 "description" : "Prune older backups according to 'prune-backups'.",
e7084ef7
TL
39026 "optional" : 1,
39027 "type" : "boolean"
39028 },
39029 "script" : {
39030 "description" : "Use specified hook script.",
39031 "optional" : 1,
39032 "type" : "string"
39033 },
e7084ef7
TL
39034 "stdexcludes" : {
39035 "default" : 1,
39036 "description" : "Exclude temporary files and logs.",
39037 "optional" : 1,
39038 "type" : "boolean"
39039 },
39040 "stop" : {
39041 "default" : 0,
39042 "description" : "Stop running backup jobs on this host.",
39043 "optional" : 1,
39044 "type" : "boolean"
39045 },
39046 "stopwait" : {
39047 "default" : 10,
39048 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
39049 "minimum" : 0,
39050 "optional" : 1,
39051 "type" : "integer"
39052 },
39053 "storage" : {
39054 "description" : "Store resulting file to this storage.",
39055 "format" : "pve-storage-id",
39056 "optional" : 1,
39057 "type" : "string"
39058 },
39059 "tmpdir" : {
39060 "description" : "Store temporary files to specified directory.",
39061 "optional" : 1,
39062 "type" : "string"
39063 },
39064 "vmid" : {
39065 "description" : "The ID of the guest system you want to backup.",
39066 "format" : "pve-vmid-list",
39067 "optional" : 1,
39068 "type" : "string"
39069 },
39070 "zstd" : {
39071 "default" : 1,
39072 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
39073 "optional" : 1,
39074 "type" : "integer"
39075 }
39076 },
39077 "type" : "object"
39078 }
39079 }
39080 },
39081 "leaf" : 1,
39082 "path" : "/nodes/{node}/vzdump/defaults",
39083 "text" : "defaults"
39084 },
56122987
DM
39085 {
39086 "info" : {
4d47f125 39087 "GET" : {
e9cd3bd4 39088 "allowtoken" : 1,
4d47f125
TL
39089 "description" : "Extract configuration from vzdump backup archive.",
39090 "method" : "GET",
39091 "name" : "extractconfig",
39092 "parameters" : {
39093 "additionalProperties" : 0,
39094 "properties" : {
44660702
DM
39095 "node" : {
39096 "description" : "The cluster node name.",
39097 "format" : "pve-node",
013dc89f
DM
39098 "type" : "string",
39099 "typetext" : "<string>"
44660702 39100 },
4d47f125
TL
39101 "volume" : {
39102 "description" : "Volume identifier",
39103 "type" : "string",
39104 "typetext" : "<string>"
44660702
DM
39105 }
39106 }
7aacca6f 39107 },
56122987 39108 "permissions" : {
4d47f125
TL
39109 "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.",
39110 "user" : "all"
56122987 39111 },
7aacca6f 39112 "protected" : 1,
44660702
DM
39113 "proxyto" : "node",
39114 "returns" : {
4d47f125 39115 "type" : "string"
7aacca6f
DM
39116 }
39117 }
39118 },
7aacca6f 39119 "leaf" : 1,
4d47f125
TL
39120 "path" : "/nodes/{node}/vzdump/extractconfig",
39121 "text" : "extractconfig"
39122 }
39123 ],
39124 "info" : {
39125 "POST" : {
e9cd3bd4 39126 "allowtoken" : 1,
4d47f125
TL
39127 "description" : "Create backup.",
39128 "method" : "POST",
39129 "name" : "vzdump",
39130 "parameters" : {
39131 "additionalProperties" : 0,
39132 "properties" : {
39133 "all" : {
39134 "default" : 0,
39135 "description" : "Backup all known guest systems on this host.",
39136 "optional" : 1,
39137 "type" : "boolean",
39138 "typetext" : "<boolean>"
39139 },
39140 "bwlimit" : {
39141 "default" : 0,
4a407cfd 39142 "description" : "Limit I/O bandwidth (in KiB/s).",
4d47f125
TL
39143 "minimum" : 0,
39144 "optional" : 1,
39145 "type" : "integer",
39146 "typetext" : "<integer> (0 - N)"
39147 },
39148 "compress" : {
39149 "default" : "0",
39150 "description" : "Compress dump file.",
39151 "enum" : [
39152 "0",
39153 "1",
39154 "gzip",
c5aa7e14
TL
39155 "lzo",
39156 "zstd"
4d47f125
TL
39157 ],
39158 "optional" : 1,
39159 "type" : "string"
39160 },
39161 "dumpdir" : {
39162 "description" : "Store resulting files to specified directory.",
39163 "optional" : 1,
39164 "type" : "string",
39165 "typetext" : "<string>"
39166 },
39167 "exclude" : {
39168 "description" : "Exclude specified guest systems (assumes --all)",
39169 "format" : "pve-vmid-list",
39170 "optional" : 1,
39171 "type" : "string",
39172 "typetext" : "<string>"
39173 },
39174 "exclude-path" : {
d2656385 39175 "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
39176 "items" : {
39177 "type" : "string"
39178 },
4d47f125 39179 "optional" : 1,
4a407cfd
TL
39180 "type" : "array",
39181 "typetext" : "<array>"
4d47f125
TL
39182 },
39183 "ionice" : {
39184 "default" : 7,
159464a9 39185 "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
39186 "maximum" : 8,
39187 "minimum" : 0,
39188 "optional" : 1,
39189 "type" : "integer",
39190 "typetext" : "<integer> (0 - 8)"
39191 },
39192 "lockwait" : {
39193 "default" : 180,
39194 "description" : "Maximal time to wait for the global lock (minutes).",
39195 "minimum" : 0,
39196 "optional" : 1,
39197 "type" : "integer",
39198 "typetext" : "<integer> (0 - N)"
39199 },
39200 "mailnotification" : {
39201 "default" : "always",
82551b2b 39202 "description" : "Deprecated: use 'notification-policy' instead.",
4d47f125
TL
39203 "enum" : [
39204 "always",
39205 "failure"
39206 ],
39207 "optional" : 1,
39208 "type" : "string"
39209 },
39210 "mailto" : {
82551b2b 39211 "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 39212 "format" : "email-or-username-list",
4d47f125
TL
39213 "optional" : 1,
39214 "type" : "string",
39215 "typetext" : "<string>"
39216 },
39217 "maxfiles" : {
0695fdaf 39218 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
4d47f125
TL
39219 "minimum" : 1,
39220 "optional" : 1,
39221 "type" : "integer",
39222 "typetext" : "<integer> (1 - N)"
39223 },
39224 "mode" : {
39225 "default" : "snapshot",
39226 "description" : "Backup mode.",
39227 "enum" : [
39228 "snapshot",
39229 "suspend",
39230 "stop"
39231 ],
39232 "optional" : 1,
39233 "type" : "string"
39234 },
39235 "node" : {
39236 "description" : "Only run if executed on this node.",
39237 "format" : "pve-node",
39238 "optional" : 1,
39239 "type" : "string",
39240 "typetext" : "<string>"
39241 },
7af2edf9 39242 "notes-template" : {
4e7f60c2
TL
39243 "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.",
39244 "maxLength" : 1024,
7af2edf9
TL
39245 "optional" : 1,
39246 "requires" : "storage",
39247 "type" : "string",
39248 "typetext" : "<string>"
39249 },
82551b2b
TL
39250 "notification-policy" : {
39251 "default" : "always",
39252 "description" : "Specify when to send a notification",
39253 "enum" : [
39254 "always",
39255 "failure",
39256 "never"
39257 ],
39258 "optional" : 1,
39259 "type" : "string"
39260 },
39261 "notification-target" : {
39262 "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.",
39263 "format" : "pve-configid",
39264 "optional" : 1,
39265 "type" : "string",
39266 "typetext" : "<string>"
39267 },
4e7f60c2
TL
39268 "performance" : {
39269 "description" : "Other performance-related settings.",
39270 "format" : "backup-performance",
39271 "optional" : 1,
39272 "type" : "string",
82551b2b 39273 "typetext" : "[max-workers=<integer>] [,pbs-entries-max=<integer>]"
4e7f60c2 39274 },
4d47f125
TL
39275 "pigz" : {
39276 "default" : 0,
39277 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
39278 "optional" : 1,
39279 "type" : "integer",
39280 "typetext" : "<integer>"
39281 },
9226ccbc
TL
39282 "pool" : {
39283 "description" : "Backup all known guest systems included in the specified pool.",
39284 "optional" : 1,
39285 "type" : "string",
39286 "typetext" : "<string>"
39287 },
7af2edf9
TL
39288 "protected" : {
39289 "description" : "If true, mark backup(s) as protected.",
39290 "optional" : 1,
39291 "requires" : "storage",
39292 "type" : "boolean",
39293 "typetext" : "<boolean>"
39294 },
739d4d64 39295 "prune-backups" : {
0695fdaf 39296 "default" : "keep-all=1",
739d4d64
TL
39297 "description" : "Use these retention options instead of those from the storage configuration.",
39298 "format" : "prune-backups",
39299 "optional" : 1,
39300 "type" : "string",
4772952b 39301 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 39302 },
4d47f125
TL
39303 "quiet" : {
39304 "default" : 0,
39305 "description" : "Be quiet.",
39306 "optional" : 1,
39307 "type" : "boolean",
39308 "typetext" : "<boolean>"
39309 },
39310 "remove" : {
39311 "default" : 1,
0695fdaf 39312 "description" : "Prune older backups according to 'prune-backups'.",
4d47f125
TL
39313 "optional" : 1,
39314 "type" : "boolean",
39315 "typetext" : "<boolean>"
39316 },
39317 "script" : {
39318 "description" : "Use specified hook script.",
39319 "optional" : 1,
39320 "type" : "string",
39321 "typetext" : "<string>"
39322 },
4d47f125
TL
39323 "stdexcludes" : {
39324 "default" : 1,
39325 "description" : "Exclude temporary files and logs.",
39326 "optional" : 1,
39327 "type" : "boolean",
39328 "typetext" : "<boolean>"
39329 },
39330 "stdout" : {
39331 "description" : "Write tar to stdout, not to a file.",
39332 "optional" : 1,
39333 "type" : "boolean",
39334 "typetext" : "<boolean>"
39335 },
39336 "stop" : {
39337 "default" : 0,
1e3f8156 39338 "description" : "Stop running backup jobs on this host.",
4d47f125
TL
39339 "optional" : 1,
39340 "type" : "boolean",
39341 "typetext" : "<boolean>"
39342 },
39343 "stopwait" : {
39344 "default" : 10,
39345 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
39346 "minimum" : 0,
39347 "optional" : 1,
39348 "type" : "integer",
39349 "typetext" : "<integer> (0 - N)"
39350 },
39351 "storage" : {
39352 "description" : "Store resulting file to this storage.",
39353 "format" : "pve-storage-id",
39354 "optional" : 1,
39355 "type" : "string",
39356 "typetext" : "<string>"
39357 },
39358 "tmpdir" : {
39359 "description" : "Store temporary files to specified directory.",
39360 "optional" : 1,
39361 "type" : "string",
39362 "typetext" : "<string>"
39363 },
39364 "vmid" : {
39365 "description" : "The ID of the guest system you want to backup.",
39366 "format" : "pve-vmid-list",
39367 "optional" : 1,
39368 "type" : "string",
39369 "typetext" : "<string>"
c5aa7e14
TL
39370 },
39371 "zstd" : {
39372 "default" : 1,
39373 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
39374 "optional" : 1,
39375 "type" : "integer",
39376 "typetext" : "<integer>"
4d47f125
TL
39377 }
39378 }
39379 },
39380 "permissions" : {
82551b2b 39381 "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 '/'. If 'notification-target' is set, then the 'Mapping.Use' permission is needed on '/mapping/notification/<target>'.",
4d47f125
TL
39382 "user" : "all"
39383 },
39384 "protected" : 1,
39385 "proxyto" : "node",
39386 "returns" : {
39387 "type" : "string"
39388 }
39389 }
39390 },
39391 "leaf" : 0,
39392 "path" : "/nodes/{node}/vzdump",
39393 "text" : "vzdump"
39394 },
39395 {
39396 "children" : [
2489d6df
WB
39397 {
39398 "children" : [
39399 {
39400 "info" : {
4d47f125 39401 "GET" : {
e9cd3bd4 39402 "allowtoken" : 1,
4d47f125
TL
39403 "description" : "Read service properties",
39404 "method" : "GET",
39405 "name" : "service_state",
2489d6df
WB
39406 "parameters" : {
39407 "additionalProperties" : 0,
39408 "properties" : {
2489d6df
WB
39409 "node" : {
39410 "description" : "The cluster node name.",
39411 "format" : "pve-node",
39412 "type" : "string",
39413 "typetext" : "<string>"
4d47f125
TL
39414 },
39415 "service" : {
39416 "description" : "Service ID",
39417 "enum" : [
5370fa8c 39418 "chrony",
4d47f125 39419 "corosync",
5370fa8c
TL
39420 "cron",
39421 "ksmtuned",
39422 "postfix",
39423 "pve-cluster",
4d47f125 39424 "pve-firewall",
4d47f125
TL
39425 "pve-ha-crm",
39426 "pve-ha-lrm",
5370fa8c
TL
39427 "pvedaemon",
39428 "pvefw-logger",
39429 "pveproxy",
39430 "pvescheduler",
39431 "pvestatd",
39432 "spiceproxy",
4d47f125
TL
39433 "sshd",
39434 "syslog",
8f4d9c87 39435 "systemd-journald",
5370fa8c 39436 "systemd-timesyncd"
4d47f125
TL
39437 ],
39438 "type" : "string"
2489d6df
WB
39439 }
39440 }
39441 },
39442 "permissions" : {
39443 "check" : [
39444 "perm",
4d47f125 39445 "/nodes/{node}",
2489d6df 39446 [
4d47f125 39447 "Sys.Audit"
2489d6df
WB
39448 ]
39449 ]
39450 },
39451 "protected" : 1,
39452 "proxyto" : "node",
39453 "returns" : {
4d47f125 39454 "type" : "object"
2489d6df
WB
39455 }
39456 }
39457 },
39458 "leaf" : 1,
4d47f125
TL
39459 "path" : "/nodes/{node}/services/{service}/state",
39460 "text" : "state"
39461 },
39462 {
39463 "info" : {
39464 "POST" : {
e9cd3bd4 39465 "allowtoken" : 1,
4d47f125
TL
39466 "description" : "Start service.",
39467 "method" : "POST",
39468 "name" : "service_start",
39469 "parameters" : {
39470 "additionalProperties" : 0,
39471 "properties" : {
39472 "node" : {
39473 "description" : "The cluster node name.",
39474 "format" : "pve-node",
39475 "type" : "string",
39476 "typetext" : "<string>"
39477 },
39478 "service" : {
39479 "description" : "Service ID",
39480 "enum" : [
5370fa8c 39481 "chrony",
4d47f125 39482 "corosync",
5370fa8c
TL
39483 "cron",
39484 "ksmtuned",
39485 "postfix",
39486 "pve-cluster",
4d47f125 39487 "pve-firewall",
4d47f125
TL
39488 "pve-ha-crm",
39489 "pve-ha-lrm",
5370fa8c
TL
39490 "pvedaemon",
39491 "pvefw-logger",
39492 "pveproxy",
39493 "pvescheduler",
39494 "pvestatd",
39495 "spiceproxy",
4d47f125
TL
39496 "sshd",
39497 "syslog",
8f4d9c87 39498 "systemd-journald",
5370fa8c 39499 "systemd-timesyncd"
4d47f125
TL
39500 ],
39501 "type" : "string"
39502 }
39503 }
7aacca6f 39504 },
4d47f125
TL
39505 "permissions" : {
39506 "check" : [
39507 "perm",
39508 "/nodes/{node}",
39509 [
39510 "Sys.Modify"
39511 ]
39512 ]
7aacca6f 39513 },
4d47f125
TL
39514 "protected" : 1,
39515 "proxyto" : "node",
39516 "returns" : {
39517 "type" : "string"
39518 }
39519 }
56122987 39520 },
4d47f125
TL
39521 "leaf" : 1,
39522 "path" : "/nodes/{node}/services/{service}/start",
39523 "text" : "start"
39524 },
44660702
DM
39525 {
39526 "info" : {
4d47f125 39527 "POST" : {
e9cd3bd4 39528 "allowtoken" : 1,
4d47f125
TL
39529 "description" : "Stop service.",
39530 "method" : "POST",
39531 "name" : "service_stop",
44660702
DM
39532 "parameters" : {
39533 "additionalProperties" : 0,
39534 "properties" : {
44660702
DM
39535 "node" : {
39536 "description" : "The cluster node name.",
39537 "format" : "pve-node",
013dc89f
DM
39538 "type" : "string",
39539 "typetext" : "<string>"
2489d6df 39540 },
4d47f125
TL
39541 "service" : {
39542 "description" : "Service ID",
39543 "enum" : [
5370fa8c 39544 "chrony",
4d47f125 39545 "corosync",
5370fa8c
TL
39546 "cron",
39547 "ksmtuned",
39548 "postfix",
39549 "pve-cluster",
4d47f125 39550 "pve-firewall",
4d47f125
TL
39551 "pve-ha-crm",
39552 "pve-ha-lrm",
5370fa8c
TL
39553 "pvedaemon",
39554 "pvefw-logger",
39555 "pveproxy",
39556 "pvescheduler",
39557 "pvestatd",
39558 "spiceproxy",
4d47f125
TL
39559 "sshd",
39560 "syslog",
8f4d9c87 39561 "systemd-journald",
5370fa8c 39562 "systemd-timesyncd"
4d47f125
TL
39563 ],
39564 "type" : "string"
44660702
DM
39565 }
39566 }
39567 },
39568 "permissions" : {
39569 "check" : [
39570 "perm",
4d47f125 39571 "/nodes/{node}",
44660702
DM
39572 [
39573 "Sys.Modify"
39574 ]
39575 ]
39576 },
39577 "protected" : 1,
39578 "proxyto" : "node",
39579 "returns" : {
2489d6df 39580 "type" : "string"
44660702
DM
39581 }
39582 }
39583 },
39584 "leaf" : 1,
4d47f125
TL
39585 "path" : "/nodes/{node}/services/{service}/stop",
39586 "text" : "stop"
7aacca6f 39587 },
32d876b5
DM
39588 {
39589 "info" : {
4d47f125 39590 "POST" : {
e9cd3bd4 39591 "allowtoken" : 1,
739d4d64 39592 "description" : "Hard restart service. Use reload if you want to reduce interruptions.",
4d47f125
TL
39593 "method" : "POST",
39594 "name" : "service_restart",
32d876b5
DM
39595 "parameters" : {
39596 "additionalProperties" : 0,
39597 "properties" : {
4d47f125
TL
39598 "node" : {
39599 "description" : "The cluster node name.",
39600 "format" : "pve-node",
39601 "type" : "string",
39602 "typetext" : "<string>"
39603 },
39604 "service" : {
39605 "description" : "Service ID",
32d876b5 39606 "enum" : [
5370fa8c 39607 "chrony",
4d47f125 39608 "corosync",
5370fa8c
TL
39609 "cron",
39610 "ksmtuned",
39611 "postfix",
39612 "pve-cluster",
4d47f125 39613 "pve-firewall",
4d47f125
TL
39614 "pve-ha-crm",
39615 "pve-ha-lrm",
5370fa8c
TL
39616 "pvedaemon",
39617 "pvefw-logger",
39618 "pveproxy",
39619 "pvescheduler",
39620 "pvestatd",
39621 "spiceproxy",
4d47f125
TL
39622 "sshd",
39623 "syslog",
8f4d9c87 39624 "systemd-journald",
5370fa8c 39625 "systemd-timesyncd"
32d876b5
DM
39626 ],
39627 "type" : "string"
32d876b5
DM
39628 }
39629 }
39630 },
39631 "permissions" : {
39632 "check" : [
39633 "perm",
4d47f125 39634 "/nodes/{node}",
32d876b5
DM
39635 [
39636 "Sys.Modify"
39637 ]
39638 ]
39639 },
39640 "protected" : 1,
39641 "proxyto" : "node",
39642 "returns" : {
4d47f125 39643 "type" : "string"
32d876b5 39644 }
4d47f125
TL
39645 }
39646 },
39647 "leaf" : 1,
39648 "path" : "/nodes/{node}/services/{service}/restart",
39649 "text" : "restart"
39650 },
39651 {
39652 "info" : {
32d876b5 39653 "POST" : {
e9cd3bd4 39654 "allowtoken" : 1,
739d4d64 39655 "description" : "Reload service. Falls back to restart if service cannot be reloaded.",
32d876b5 39656 "method" : "POST",
4d47f125 39657 "name" : "service_reload",
32d876b5
DM
39658 "parameters" : {
39659 "additionalProperties" : 0,
39660 "properties" : {
32d876b5
DM
39661 "node" : {
39662 "description" : "The cluster node name.",
39663 "format" : "pve-node",
39664 "type" : "string",
39665 "typetext" : "<string>"
4d47f125
TL
39666 },
39667 "service" : {
39668 "description" : "Service ID",
39669 "enum" : [
5370fa8c 39670 "chrony",
4d47f125 39671 "corosync",
5370fa8c
TL
39672 "cron",
39673 "ksmtuned",
39674 "postfix",
39675 "pve-cluster",
4d47f125 39676 "pve-firewall",
4d47f125
TL
39677 "pve-ha-crm",
39678 "pve-ha-lrm",
5370fa8c
TL
39679 "pvedaemon",
39680 "pvefw-logger",
39681 "pveproxy",
39682 "pvescheduler",
39683 "pvestatd",
39684 "spiceproxy",
4d47f125
TL
39685 "sshd",
39686 "syslog",
8f4d9c87 39687 "systemd-journald",
5370fa8c 39688 "systemd-timesyncd"
4d47f125
TL
39689 ],
39690 "type" : "string"
32d876b5
DM
39691 }
39692 }
39693 },
39694 "permissions" : {
39695 "check" : [
39696 "perm",
4d47f125 39697 "/nodes/{node}",
32d876b5
DM
39698 [
39699 "Sys.Modify"
39700 ]
39701 ]
39702 },
39703 "protected" : 1,
39704 "proxyto" : "node",
39705 "returns" : {
4d47f125 39706 "type" : "string"
32d876b5
DM
39707 }
39708 }
39709 },
39710 "leaf" : 1,
4d47f125
TL
39711 "path" : "/nodes/{node}/services/{service}/reload",
39712 "text" : "reload"
32d876b5
DM
39713 }
39714 ],
39715 "info" : {
39716 "GET" : {
e9cd3bd4 39717 "allowtoken" : 1,
4d47f125 39718 "description" : "Directory index",
44660702 39719 "method" : "GET",
4d47f125 39720 "name" : "srvcmdidx",
44660702
DM
39721 "parameters" : {
39722 "additionalProperties" : 0,
39723 "properties" : {
44660702
DM
39724 "node" : {
39725 "description" : "The cluster node name.",
39726 "format" : "pve-node",
013dc89f
DM
39727 "type" : "string",
39728 "typetext" : "<string>"
44660702 39729 },
4d47f125
TL
39730 "service" : {
39731 "description" : "Service ID",
39732 "enum" : [
5370fa8c 39733 "chrony",
4d47f125 39734 "corosync",
5370fa8c
TL
39735 "cron",
39736 "ksmtuned",
39737 "postfix",
39738 "pve-cluster",
4d47f125 39739 "pve-firewall",
4d47f125
TL
39740 "pve-ha-crm",
39741 "pve-ha-lrm",
5370fa8c
TL
39742 "pvedaemon",
39743 "pvefw-logger",
39744 "pveproxy",
39745 "pvescheduler",
39746 "pvestatd",
39747 "spiceproxy",
4d47f125
TL
39748 "sshd",
39749 "syslog",
8f4d9c87 39750 "systemd-journald",
5370fa8c 39751 "systemd-timesyncd"
4d47f125
TL
39752 ],
39753 "type" : "string"
44660702 39754 }
7aacca6f 39755 }
56122987 39756 },
56122987
DM
39757 "permissions" : {
39758 "check" : [
39759 "perm",
7aacca6f 39760 "/nodes/{node}",
56122987 39761 [
4d47f125 39762 "Sys.Audit"
56122987
DM
39763 ]
39764 ]
39765 },
44660702
DM
39766 "returns" : {
39767 "items" : {
39768 "properties" : {
4d47f125 39769 "subdir" : {
44660702
DM
39770 "type" : "string"
39771 }
56122987 39772 },
44660702 39773 "type" : "object"
56122987 39774 },
2489d6df
WB
39775 "links" : [
39776 {
4d47f125 39777 "href" : "{subdir}",
2489d6df
WB
39778 "rel" : "child"
39779 }
39780 ],
39781 "type" : "array"
39782 }
39783 }
4d47f125
TL
39784 },
39785 "leaf" : 0,
39786 "path" : "/nodes/{node}/services/{service}",
39787 "text" : "{service}"
7aacca6f
DM
39788 }
39789 ],
44660702
DM
39790 "info" : {
39791 "GET" : {
e9cd3bd4 39792 "allowtoken" : 1,
4d47f125 39793 "description" : "Service list.",
44660702
DM
39794 "method" : "GET",
39795 "name" : "index",
39796 "parameters" : {
39797 "additionalProperties" : 0,
39798 "properties" : {
39799 "node" : {
39800 "description" : "The cluster node name.",
39801 "format" : "pve-node",
013dc89f
DM
39802 "type" : "string",
39803 "typetext" : "<string>"
44660702
DM
39804 }
39805 }
39806 },
39807 "permissions" : {
39808 "check" : [
39809 "perm",
4d47f125 39810 "/nodes/{node}",
44660702 39811 [
4d47f125
TL
39812 "Sys.Audit"
39813 ]
44660702
DM
39814 ]
39815 },
4d47f125
TL
39816 "protected" : 1,
39817 "proxyto" : "node",
44660702
DM
39818 "returns" : {
39819 "items" : {
39820 "properties" : {},
39821 "type" : "object"
39822 },
39823 "links" : [
39824 {
4d47f125 39825 "href" : "{service}",
44660702
DM
39826 "rel" : "child"
39827 }
39828 ],
39829 "type" : "array"
39830 }
39831 }
39832 },
7aacca6f 39833 "leaf" : 0,
4d47f125
TL
39834 "path" : "/nodes/{node}/services",
39835 "text" : "services"
7aacca6f
DM
39836 },
39837 {
7aacca6f 39838 "info" : {
ac70d7d1
TL
39839 "DELETE" : {
39840 "allowtoken" : 1,
39841 "description" : "Delete subscription key of this node.",
39842 "method" : "DELETE",
39843 "name" : "delete",
39844 "parameters" : {
39845 "additionalProperties" : 0,
39846 "properties" : {
39847 "node" : {
39848 "description" : "The cluster node name.",
39849 "format" : "pve-node",
39850 "type" : "string",
39851 "typetext" : "<string>"
39852 }
39853 }
39854 },
39855 "permissions" : {
39856 "check" : [
39857 "perm",
39858 "/nodes/{node}",
39859 [
39860 "Sys.Modify"
39861 ]
39862 ]
39863 },
39864 "protected" : 1,
39865 "proxyto" : "node",
39866 "returns" : {
39867 "type" : "null"
39868 }
39869 },
4d47f125 39870 "GET" : {
e9cd3bd4 39871 "allowtoken" : 1,
4d47f125
TL
39872 "description" : "Read subscription info.",
39873 "method" : "GET",
39874 "name" : "get",
7aacca6f 39875 "parameters" : {
44660702 39876 "additionalProperties" : 0,
7aacca6f 39877 "properties" : {
44660702 39878 "node" : {
4d47f125 39879 "description" : "The cluster node name.",
44660702 39880 "format" : "pve-node",
013dc89f
DM
39881 "type" : "string",
39882 "typetext" : "<string>"
4d47f125
TL
39883 }
39884 }
39885 },
39886 "permissions" : {
39887 "user" : "all"
39888 },
39889 "proxyto" : "node",
39890 "returns" : {
39891 "type" : "object"
39892 }
39893 },
39894 "POST" : {
e9cd3bd4 39895 "allowtoken" : 1,
4d47f125
TL
39896 "description" : "Update subscription info.",
39897 "method" : "POST",
39898 "name" : "update",
39899 "parameters" : {
39900 "additionalProperties" : 0,
39901 "properties" : {
39902 "force" : {
39903 "default" : 0,
4a407cfd 39904 "description" : "Always connect to server, even if local cache is still valid.",
7aacca6f 39905 "optional" : 1,
4d47f125
TL
39906 "type" : "boolean",
39907 "typetext" : "<boolean>"
44660702 39908 },
4d47f125
TL
39909 "node" : {
39910 "description" : "The cluster node name.",
39911 "format" : "pve-node",
013dc89f
DM
39912 "type" : "string",
39913 "typetext" : "<string>"
4d47f125
TL
39914 }
39915 }
39916 },
39917 "permissions" : {
39918 "check" : [
39919 "perm",
39920 "/nodes/{node}",
39921 [
39922 "Sys.Modify"
39923 ]
39924 ]
39925 },
39926 "protected" : 1,
39927 "proxyto" : "node",
39928 "returns" : {
39929 "type" : "null"
39930 }
39931 },
39932 "PUT" : {
e9cd3bd4 39933 "allowtoken" : 1,
4d47f125
TL
39934 "description" : "Set subscription key.",
39935 "method" : "PUT",
39936 "name" : "set",
39937 "parameters" : {
39938 "additionalProperties" : 0,
39939 "properties" : {
39940 "key" : {
39941 "description" : "Proxmox VE subscription key",
39942 "maxLength" : 32,
bd92b745 39943 "pattern" : "\\s*pve([1248])([cbsp])-[0-9a-f]{10}\\s*",
4d47f125 39944 "type" : "string"
7aacca6f 39945 },
4d47f125
TL
39946 "node" : {
39947 "description" : "The cluster node name.",
39948 "format" : "pve-node",
013dc89f
DM
39949 "type" : "string",
39950 "typetext" : "<string>"
7aacca6f 39951 }
7aacca6f
DM
39952 }
39953 },
7aacca6f 39954 "permissions" : {
4d47f125
TL
39955 "check" : [
39956 "perm",
39957 "/nodes/{node}",
39958 [
39959 "Sys.Modify"
39960 ]
39961 ]
7aacca6f 39962 },
44660702 39963 "protected" : 1,
7aacca6f 39964 "proxyto" : "node",
7aacca6f 39965 "returns" : {
4d47f125 39966 "type" : "null"
7aacca6f
DM
39967 }
39968 }
39969 },
4d47f125
TL
39970 "leaf" : 1,
39971 "path" : "/nodes/{node}/subscription",
39972 "text" : "subscription"
44660702
DM
39973 },
39974 {
7aacca6f
DM
39975 "children" : [
39976 {
4d47f125
TL
39977 "info" : {
39978 "DELETE" : {
e9cd3bd4 39979 "allowtoken" : 1,
4d47f125
TL
39980 "description" : "Delete network device configuration",
39981 "method" : "DELETE",
39982 "name" : "delete_network",
39983 "parameters" : {
39984 "additionalProperties" : 0,
39985 "properties" : {
39986 "iface" : {
39987 "description" : "Network interface name.",
39988 "format" : "pve-iface",
39989 "maxLength" : 20,
39990 "minLength" : 2,
39991 "type" : "string",
39992 "typetext" : "<string>"
7aacca6f 39993 },
4d47f125
TL
39994 "node" : {
39995 "description" : "The cluster node name.",
39996 "format" : "pve-node",
39997 "type" : "string",
39998 "typetext" : "<string>"
44660702
DM
39999 }
40000 }
40001 },
4d47f125
TL
40002 "permissions" : {
40003 "check" : [
40004 "perm",
40005 "/nodes/{node}",
40006 [
40007 "Sys.Modify"
40008 ]
40009 ]
40010 },
40011 "protected" : 1,
40012 "proxyto" : "node",
40013 "returns" : {
40014 "type" : "null"
40015 }
40016 },
40017 "GET" : {
e9cd3bd4 40018 "allowtoken" : 1,
4d47f125
TL
40019 "description" : "Read network device configuration",
40020 "method" : "GET",
40021 "name" : "network_config",
40022 "parameters" : {
40023 "additionalProperties" : 0,
40024 "properties" : {
40025 "iface" : {
40026 "description" : "Network interface name.",
40027 "format" : "pve-iface",
40028 "maxLength" : 20,
40029 "minLength" : 2,
40030 "type" : "string",
40031 "typetext" : "<string>"
56122987 40032 },
4d47f125
TL
40033 "node" : {
40034 "description" : "The cluster node name.",
40035 "format" : "pve-node",
40036 "type" : "string",
40037 "typetext" : "<string>"
44660702
DM
40038 }
40039 }
40040 },
4d47f125
TL
40041 "permissions" : {
40042 "check" : [
40043 "perm",
40044 "/nodes/{node}",
40045 [
40046 "Sys.Audit"
40047 ]
40048 ]
40049 },
40050 "proxyto" : "node",
40051 "returns" : {
40052 "properties" : {
40053 "method" : {
40054 "type" : "string"
44660702 40055 },
4d47f125 40056 "type" : {
44660702
DM
40057 "type" : "string"
40058 }
4d47f125
TL
40059 },
40060 "type" : "object"
40061 }
56122987 40062 },
4d47f125 40063 "PUT" : {
e9cd3bd4 40064 "allowtoken" : 1,
4d47f125
TL
40065 "description" : "Update network device configuration",
40066 "method" : "PUT",
40067 "name" : "update_network",
40068 "parameters" : {
40069 "additionalProperties" : 0,
40070 "properties" : {
40071 "address" : {
40072 "description" : "IP address.",
40073 "format" : "ipv4",
40074 "optional" : 1,
40075 "requires" : "netmask",
40076 "type" : "string",
40077 "typetext" : "<string>"
40078 },
40079 "address6" : {
40080 "description" : "IP address.",
40081 "format" : "ipv6",
40082 "optional" : 1,
40083 "requires" : "netmask6",
40084 "type" : "string",
40085 "typetext" : "<string>"
40086 },
40087 "autostart" : {
40088 "description" : "Automatically start interface on boot.",
40089 "optional" : 1,
40090 "type" : "boolean",
40091 "typetext" : "<boolean>"
40092 },
e9cd3bd4
TL
40093 "bond-primary" : {
40094 "description" : "Specify the primary interface for active-backup bond.",
40095 "format" : "pve-iface",
40096 "optional" : 1,
40097 "type" : "string",
40098 "typetext" : "<string>"
40099 },
4d47f125
TL
40100 "bond_mode" : {
40101 "description" : "Bonding mode.",
40102 "enum" : [
40103 "balance-rr",
40104 "active-backup",
40105 "balance-xor",
40106 "broadcast",
40107 "802.3ad",
40108 "balance-tlb",
40109 "balance-alb",
40110 "balance-slb",
40111 "lacp-balance-slb",
40112 "lacp-balance-tcp"
40113 ],
40114 "optional" : 1,
40115 "type" : "string"
40116 },
40117 "bond_xmit_hash_policy" : {
40118 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
40119 "enum" : [
40120 "layer2",
40121 "layer2+3",
40122 "layer3+4"
40123 ],
40124 "optional" : 1,
40125 "type" : "string"
40126 },
40127 "bridge_ports" : {
1e3f8156 40128 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
40129 "format" : "pve-iface-list",
40130 "optional" : 1,
40131 "type" : "string",
40132 "typetext" : "<string>"
40133 },
40134 "bridge_vlan_aware" : {
40135 "description" : "Enable bridge vlan support.",
40136 "optional" : 1,
40137 "type" : "boolean",
40138 "typetext" : "<boolean>"
40139 },
bb4c8cf8
TL
40140 "cidr" : {
40141 "description" : "IPv4 CIDR.",
40142 "format" : "CIDRv4",
40143 "optional" : 1,
40144 "type" : "string",
40145 "typetext" : "<string>"
40146 },
40147 "cidr6" : {
40148 "description" : "IPv6 CIDR.",
40149 "format" : "CIDRv6",
40150 "optional" : 1,
40151 "type" : "string",
40152 "typetext" : "<string>"
40153 },
4d47f125
TL
40154 "comments" : {
40155 "description" : "Comments",
40156 "optional" : 1,
40157 "type" : "string",
40158 "typetext" : "<string>"
40159 },
40160 "comments6" : {
40161 "description" : "Comments",
40162 "optional" : 1,
40163 "type" : "string",
40164 "typetext" : "<string>"
40165 },
40166 "delete" : {
40167 "description" : "A list of settings you want to delete.",
40168 "format" : "pve-configid-list",
40169 "optional" : 1,
40170 "type" : "string",
40171 "typetext" : "<string>"
40172 },
40173 "gateway" : {
40174 "description" : "Default gateway address.",
40175 "format" : "ipv4",
40176 "optional" : 1,
40177 "type" : "string",
40178 "typetext" : "<string>"
40179 },
40180 "gateway6" : {
40181 "description" : "Default ipv6 gateway address.",
40182 "format" : "ipv6",
40183 "optional" : 1,
40184 "type" : "string",
40185 "typetext" : "<string>"
40186 },
40187 "iface" : {
40188 "description" : "Network interface name.",
40189 "format" : "pve-iface",
40190 "maxLength" : 20,
40191 "minLength" : 2,
40192 "type" : "string",
40193 "typetext" : "<string>"
56122987 40194 },
e9cd3bd4
TL
40195 "mtu" : {
40196 "description" : "MTU.",
40197 "maximum" : 65520,
40198 "minimum" : 1280,
40199 "optional" : 1,
40200 "type" : "integer",
40201 "typetext" : "<integer> (1280 - 65520)"
40202 },
4d47f125
TL
40203 "netmask" : {
40204 "description" : "Network mask.",
40205 "format" : "ipv4mask",
40206 "optional" : 1,
40207 "requires" : "address",
40208 "type" : "string",
40209 "typetext" : "<string>"
40210 },
40211 "netmask6" : {
40212 "description" : "Network mask.",
40213 "maximum" : 128,
40214 "minimum" : 0,
40215 "optional" : 1,
40216 "requires" : "address6",
40217 "type" : "integer",
40218 "typetext" : "<integer> (0 - 128)"
56122987 40219 },
44660702
DM
40220 "node" : {
40221 "description" : "The cluster node name.",
40222 "format" : "pve-node",
013dc89f
DM
40223 "type" : "string",
40224 "typetext" : "<string>"
44660702 40225 },
4d47f125
TL
40226 "ovs_bonds" : {
40227 "description" : "Specify the interfaces used by the bonding device.",
40228 "format" : "pve-iface-list",
40229 "optional" : 1,
40230 "type" : "string",
40231 "typetext" : "<string>"
40232 },
40233 "ovs_bridge" : {
40234 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
40235 "format" : "pve-iface",
40236 "optional" : 1,
40237 "type" : "string",
40238 "typetext" : "<string>"
40239 },
40240 "ovs_options" : {
40241 "description" : "OVS interface options.",
40242 "maxLength" : 1024,
40243 "optional" : 1,
40244 "type" : "string",
40245 "typetext" : "<string>"
40246 },
40247 "ovs_ports" : {
1e3f8156 40248 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
40249 "format" : "pve-iface-list",
40250 "optional" : 1,
40251 "type" : "string",
40252 "typetext" : "<string>"
40253 },
40254 "ovs_tag" : {
40255 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
40256 "maximum" : 4094,
40257 "minimum" : 1,
40258 "optional" : 1,
40259 "type" : "integer",
40260 "typetext" : "<integer> (1 - 4094)"
40261 },
40262 "slaves" : {
40263 "description" : "Specify the interfaces used by the bonding device.",
40264 "format" : "pve-iface-list",
40265 "optional" : 1,
40266 "type" : "string",
40267 "typetext" : "<string>"
40268 },
40269 "type" : {
40270 "description" : "Network interface type",
44660702 40271 "enum" : [
4d47f125
TL
40272 "bridge",
40273 "bond",
40274 "eth",
40275 "alias",
40276 "vlan",
40277 "OVSBridge",
40278 "OVSBond",
40279 "OVSPort",
40280 "OVSIntPort",
40281 "unknown"
44660702
DM
40282 ],
40283 "type" : "string"
e9cd3bd4
TL
40284 },
40285 "vlan-id" : {
40286 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
40287 "maximum" : 4094,
40288 "minimum" : 1,
40289 "optional" : 1,
40290 "type" : "integer",
40291 "typetext" : "<integer> (1 - 4094)"
40292 },
40293 "vlan-raw-device" : {
40294 "description" : "Specify the raw interface for the vlan interface.",
40295 "format" : "pve-iface",
40296 "optional" : 1,
40297 "type" : "string",
40298 "typetext" : "<string>"
44660702
DM
40299 }
40300 }
40301 },
40302 "permissions" : {
40303 "check" : [
40304 "perm",
40305 "/nodes/{node}",
40306 [
4d47f125 40307 "Sys.Modify"
44660702
DM
40308 ]
40309 ]
40310 },
4d47f125
TL
40311 "protected" : 1,
40312 "proxyto" : "node",
44660702 40313 "returns" : {
4d47f125 40314 "type" : "null"
44660702
DM
40315 }
40316 }
40317 },
4d47f125
TL
40318 "leaf" : 1,
40319 "path" : "/nodes/{node}/network/{iface}",
40320 "text" : "{iface}"
44660702
DM
40321 }
40322 ],
40323 "info" : {
4d47f125 40324 "DELETE" : {
e9cd3bd4 40325 "allowtoken" : 1,
4d47f125
TL
40326 "description" : "Revert network configuration changes.",
40327 "method" : "DELETE",
40328 "name" : "revert_network_changes",
44660702
DM
40329 "parameters" : {
40330 "additionalProperties" : 0,
40331 "properties" : {
40332 "node" : {
40333 "description" : "The cluster node name.",
40334 "format" : "pve-node",
013dc89f
DM
40335 "type" : "string",
40336 "typetext" : "<string>"
44660702
DM
40337 }
40338 }
40339 },
40340 "permissions" : {
40341 "check" : [
40342 "perm",
40343 "/nodes/{node}",
40344 [
4d47f125 40345 "Sys.Modify"
44660702
DM
40346 ]
40347 ]
40348 },
40349 "protected" : 1,
40350 "proxyto" : "node",
4d47f125
TL
40351 "returns" : {
40352 "type" : "null"
40353 }
40354 },
40355 "GET" : {
e9cd3bd4 40356 "allowtoken" : 1,
4d47f125
TL
40357 "description" : "List available networks",
40358 "method" : "GET",
40359 "name" : "index",
40360 "parameters" : {
40361 "additionalProperties" : 0,
40362 "properties" : {
40363 "node" : {
40364 "description" : "The cluster node name.",
40365 "format" : "pve-node",
40366 "type" : "string",
40367 "typetext" : "<string>"
40368 },
40369 "type" : {
40370 "description" : "Only list specific interface types.",
40371 "enum" : [
40372 "bridge",
40373 "bond",
40374 "eth",
40375 "alias",
40376 "vlan",
40377 "OVSBridge",
40378 "OVSBond",
40379 "OVSPort",
40380 "OVSIntPort",
159464a9
TL
40381 "any_bridge",
40382 "any_local_bridge"
4d47f125
TL
40383 ],
40384 "optional" : 1,
40385 "type" : "string"
40386 }
40387 }
40388 },
40389 "permissions" : {
40390 "user" : "all"
40391 },
40392 "proxyto" : "node",
44660702
DM
40393 "returns" : {
40394 "items" : {
40395 "properties" : {},
40396 "type" : "object"
40397 },
40398 "links" : [
40399 {
4d47f125 40400 "href" : "{iface}",
44660702 40401 "rel" : "child"
56122987 40402 }
44660702
DM
40403 ],
40404 "type" : "array"
40405 }
4d47f125
TL
40406 },
40407 "POST" : {
e9cd3bd4 40408 "allowtoken" : 1,
4d47f125
TL
40409 "description" : "Create network device configuration",
40410 "method" : "POST",
40411 "name" : "create_network",
7aacca6f 40412 "parameters" : {
44660702 40413 "additionalProperties" : 0,
7aacca6f 40414 "properties" : {
4d47f125
TL
40415 "address" : {
40416 "description" : "IP address.",
40417 "format" : "ipv4",
40418 "optional" : 1,
40419 "requires" : "netmask",
40420 "type" : "string",
40421 "typetext" : "<string>"
40422 },
40423 "address6" : {
40424 "description" : "IP address.",
40425 "format" : "ipv6",
40426 "optional" : 1,
40427 "requires" : "netmask6",
40428 "type" : "string",
40429 "typetext" : "<string>"
40430 },
40431 "autostart" : {
40432 "description" : "Automatically start interface on boot.",
40433 "optional" : 1,
40434 "type" : "boolean",
40435 "typetext" : "<boolean>"
40436 },
e9cd3bd4
TL
40437 "bond-primary" : {
40438 "description" : "Specify the primary interface for active-backup bond.",
40439 "format" : "pve-iface",
40440 "optional" : 1,
40441 "type" : "string",
40442 "typetext" : "<string>"
40443 },
4d47f125
TL
40444 "bond_mode" : {
40445 "description" : "Bonding mode.",
40446 "enum" : [
40447 "balance-rr",
40448 "active-backup",
40449 "balance-xor",
40450 "broadcast",
40451 "802.3ad",
40452 "balance-tlb",
40453 "balance-alb",
40454 "balance-slb",
40455 "lacp-balance-slb",
40456 "lacp-balance-tcp"
40457 ],
40458 "optional" : 1,
40459 "type" : "string"
40460 },
40461 "bond_xmit_hash_policy" : {
40462 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
40463 "enum" : [
40464 "layer2",
40465 "layer2+3",
40466 "layer3+4"
40467 ],
40468 "optional" : 1,
40469 "type" : "string"
40470 },
40471 "bridge_ports" : {
1e3f8156 40472 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
40473 "format" : "pve-iface-list",
40474 "optional" : 1,
013dc89f
DM
40475 "type" : "string",
40476 "typetext" : "<string>"
4d47f125
TL
40477 },
40478 "bridge_vlan_aware" : {
40479 "description" : "Enable bridge vlan support.",
44660702 40480 "optional" : 1,
013dc89f
DM
40481 "type" : "boolean",
40482 "typetext" : "<boolean>"
44660702 40483 },
bb4c8cf8
TL
40484 "cidr" : {
40485 "description" : "IPv4 CIDR.",
40486 "format" : "CIDRv4",
40487 "optional" : 1,
40488 "type" : "string",
40489 "typetext" : "<string>"
40490 },
40491 "cidr6" : {
40492 "description" : "IPv6 CIDR.",
40493 "format" : "CIDRv6",
40494 "optional" : 1,
40495 "type" : "string",
40496 "typetext" : "<string>"
40497 },
4d47f125
TL
40498 "comments" : {
40499 "description" : "Comments",
40500 "optional" : 1,
40501 "type" : "string",
40502 "typetext" : "<string>"
40503 },
40504 "comments6" : {
40505 "description" : "Comments",
40506 "optional" : 1,
40507 "type" : "string",
40508 "typetext" : "<string>"
40509 },
40510 "gateway" : {
40511 "description" : "Default gateway address.",
40512 "format" : "ipv4",
40513 "optional" : 1,
40514 "type" : "string",
40515 "typetext" : "<string>"
40516 },
40517 "gateway6" : {
40518 "description" : "Default ipv6 gateway address.",
40519 "format" : "ipv6",
40520 "optional" : 1,
40521 "type" : "string",
40522 "typetext" : "<string>"
40523 },
40524 "iface" : {
40525 "description" : "Network interface name.",
40526 "format" : "pve-iface",
40527 "maxLength" : 20,
40528 "minLength" : 2,
40529 "type" : "string",
40530 "typetext" : "<string>"
40531 },
e9cd3bd4
TL
40532 "mtu" : {
40533 "description" : "MTU.",
40534 "maximum" : 65520,
40535 "minimum" : 1280,
40536 "optional" : 1,
40537 "type" : "integer",
40538 "typetext" : "<integer> (1280 - 65520)"
40539 },
4d47f125
TL
40540 "netmask" : {
40541 "description" : "Network mask.",
40542 "format" : "ipv4mask",
40543 "optional" : 1,
40544 "requires" : "address",
40545 "type" : "string",
40546 "typetext" : "<string>"
40547 },
40548 "netmask6" : {
40549 "description" : "Network mask.",
40550 "maximum" : 128,
40551 "minimum" : 0,
40552 "optional" : 1,
40553 "requires" : "address6",
40554 "type" : "integer",
40555 "typetext" : "<integer> (0 - 128)"
40556 },
7aacca6f 40557 "node" : {
7aacca6f 40558 "description" : "The cluster node name.",
44660702 40559 "format" : "pve-node",
013dc89f
DM
40560 "type" : "string",
40561 "typetext" : "<string>"
4d47f125
TL
40562 },
40563 "ovs_bonds" : {
40564 "description" : "Specify the interfaces used by the bonding device.",
40565 "format" : "pve-iface-list",
40566 "optional" : 1,
40567 "type" : "string",
40568 "typetext" : "<string>"
40569 },
40570 "ovs_bridge" : {
40571 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
40572 "format" : "pve-iface",
40573 "optional" : 1,
40574 "type" : "string",
40575 "typetext" : "<string>"
40576 },
40577 "ovs_options" : {
40578 "description" : "OVS interface options.",
40579 "maxLength" : 1024,
40580 "optional" : 1,
40581 "type" : "string",
40582 "typetext" : "<string>"
40583 },
40584 "ovs_ports" : {
1e3f8156 40585 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
40586 "format" : "pve-iface-list",
40587 "optional" : 1,
40588 "type" : "string",
40589 "typetext" : "<string>"
40590 },
40591 "ovs_tag" : {
40592 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
40593 "maximum" : 4094,
40594 "minimum" : 1,
40595 "optional" : 1,
40596 "type" : "integer",
40597 "typetext" : "<integer> (1 - 4094)"
40598 },
40599 "slaves" : {
40600 "description" : "Specify the interfaces used by the bonding device.",
40601 "format" : "pve-iface-list",
40602 "optional" : 1,
40603 "type" : "string",
40604 "typetext" : "<string>"
40605 },
40606 "type" : {
40607 "description" : "Network interface type",
40608 "enum" : [
40609 "bridge",
40610 "bond",
40611 "eth",
40612 "alias",
40613 "vlan",
40614 "OVSBridge",
40615 "OVSBond",
40616 "OVSPort",
40617 "OVSIntPort",
40618 "unknown"
40619 ],
40620 "type" : "string"
e9cd3bd4
TL
40621 },
40622 "vlan-id" : {
40623 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
40624 "maximum" : 4094,
40625 "minimum" : 1,
40626 "optional" : 1,
40627 "type" : "integer",
40628 "typetext" : "<integer> (1 - 4094)"
40629 },
40630 "vlan-raw-device" : {
40631 "description" : "Specify the raw interface for the vlan interface.",
40632 "format" : "pve-iface",
40633 "optional" : 1,
40634 "type" : "string",
40635 "typetext" : "<string>"
7aacca6f
DM
40636 }
40637 }
40638 },
35a75dd3
DM
40639 "permissions" : {
40640 "check" : [
40641 "perm",
40642 "/nodes/{node}",
40643 [
40644 "Sys.Modify"
40645 ]
40646 ]
40647 },
7aacca6f 40648 "protected" : 1,
7aacca6f 40649 "proxyto" : "node",
44660702
DM
40650 "returns" : {
40651 "type" : "null"
40652 }
40653 },
40654 "PUT" : {
e9cd3bd4 40655 "allowtoken" : 1,
4d47f125 40656 "description" : "Reload network configuration",
44660702 40657 "method" : "PUT",
4d47f125 40658 "name" : "reload_network_config",
7aacca6f
DM
40659 "parameters" : {
40660 "additionalProperties" : 0,
40661 "properties" : {
7aacca6f 40662 "node" : {
7aacca6f 40663 "description" : "The cluster node name.",
44660702 40664 "format" : "pve-node",
013dc89f
DM
40665 "type" : "string",
40666 "typetext" : "<string>"
7aacca6f
DM
40667 }
40668 }
40669 },
35a75dd3
DM
40670 "permissions" : {
40671 "check" : [
40672 "perm",
40673 "/nodes/{node}",
40674 [
40675 "Sys.Modify"
40676 ]
40677 ]
40678 },
44660702
DM
40679 "protected" : 1,
40680 "proxyto" : "node",
7aacca6f 40681 "returns" : {
4d47f125 40682 "type" : "string"
44660702 40683 }
7aacca6f
DM
40684 }
40685 },
4d47f125
TL
40686 "leaf" : 0,
40687 "path" : "/nodes/{node}/network",
40688 "text" : "network"
7aacca6f
DM
40689 },
40690 {
7aacca6f
DM
40691 "children" : [
40692 {
4d47f125
TL
40693 "children" : [
40694 {
40695 "info" : {
40696 "GET" : {
e9cd3bd4 40697 "allowtoken" : 1,
4d47f125
TL
40698 "description" : "Read task log.",
40699 "method" : "GET",
40700 "name" : "read_task_log",
40701 "parameters" : {
40702 "additionalProperties" : 0,
40703 "properties" : {
9d2e98ed
TL
40704 "download" : {
40705 "description" : "Whether the tasklog file should be downloaded. This parameter can't be used in conjunction with other parameters",
40706 "optional" : 1,
40707 "type" : "boolean",
40708 "typetext" : "<boolean>"
40709 },
4d47f125
TL
40710 "limit" : {
40711 "default" : 50,
9d2e98ed 40712 "description" : "The amount of lines to read from the tasklog.",
4d47f125
TL
40713 "minimum" : 0,
40714 "optional" : 1,
40715 "type" : "integer",
40716 "typetext" : "<integer> (0 - N)"
40717 },
40718 "node" : {
40719 "description" : "The cluster node name.",
40720 "format" : "pve-node",
40721 "type" : "string",
40722 "typetext" : "<string>"
40723 },
40724 "start" : {
40725 "default" : 0,
9d2e98ed 40726 "description" : "Start at this line when reading the tasklog",
4d47f125
TL
40727 "minimum" : 0,
40728 "optional" : 1,
40729 "type" : "integer",
40730 "typetext" : "<integer> (0 - N)"
40731 },
40732 "upid" : {
5370fa8c 40733 "description" : "The task's unique ID.",
4d47f125
TL
40734 "type" : "string",
40735 "typetext" : "<string>"
40736 }
40737 }
40738 },
40739 "permissions" : {
5370fa8c 40740 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125
TL
40741 "user" : "all"
40742 },
40743 "protected" : 1,
40744 "proxyto" : "node",
40745 "returns" : {
40746 "items" : {
40747 "properties" : {
40748 "n" : {
40749 "description" : "Line number",
40750 "type" : "integer"
40751 },
40752 "t" : {
40753 "description" : "Line text",
40754 "type" : "string"
40755 }
40756 },
40757 "type" : "object"
40758 },
40759 "type" : "array"
40760 }
40761 }
40762 },
40763 "leaf" : 1,
40764 "path" : "/nodes/{node}/tasks/{upid}/log",
40765 "text" : "log"
40766 },
40767 {
40768 "info" : {
40769 "GET" : {
e9cd3bd4 40770 "allowtoken" : 1,
4d47f125
TL
40771 "description" : "Read task status.",
40772 "method" : "GET",
40773 "name" : "read_task_status",
40774 "parameters" : {
40775 "additionalProperties" : 0,
40776 "properties" : {
40777 "node" : {
40778 "description" : "The cluster node name.",
40779 "format" : "pve-node",
40780 "type" : "string",
40781 "typetext" : "<string>"
40782 },
40783 "upid" : {
5370fa8c 40784 "description" : "The task's unique ID.",
4d47f125
TL
40785 "type" : "string",
40786 "typetext" : "<string>"
40787 }
40788 }
40789 },
40790 "permissions" : {
5370fa8c 40791 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they are not the owner of the task.",
4d47f125
TL
40792 "user" : "all"
40793 },
40794 "protected" : 1,
40795 "proxyto" : "node",
40796 "returns" : {
40797 "properties" : {
5370fa8c
TL
40798 "exitstatus" : {
40799 "optional" : 1,
40800 "type" : "string"
40801 },
40802 "id" : {
40803 "type" : "string"
40804 },
40805 "node" : {
40806 "type" : "string"
40807 },
4d47f125
TL
40808 "pid" : {
40809 "type" : "integer"
40810 },
5370fa8c
TL
40811 "starttime" : {
40812 "type" : "number"
40813 },
4d47f125
TL
40814 "status" : {
40815 "enum" : [
40816 "running",
40817 "stopped"
40818 ],
40819 "type" : "string"
5370fa8c
TL
40820 },
40821 "type" : {
40822 "type" : "string"
40823 },
40824 "upid" : {
40825 "type" : "string"
40826 },
40827 "user" : {
40828 "type" : "string"
4d47f125
TL
40829 }
40830 },
40831 "type" : "object"
40832 }
40833 }
40834 },
40835 "leaf" : 1,
40836 "path" : "/nodes/{node}/tasks/{upid}/status",
40837 "text" : "status"
40838 }
40839 ],
56122987 40840 "info" : {
7aacca6f 40841 "DELETE" : {
e9cd3bd4 40842 "allowtoken" : 1,
4d47f125 40843 "description" : "Stop a task.",
44660702 40844 "method" : "DELETE",
4d47f125 40845 "name" : "stop_task",
44660702
DM
40846 "parameters" : {
40847 "additionalProperties" : 0,
40848 "properties" : {
44660702
DM
40849 "node" : {
40850 "description" : "The cluster node name.",
40851 "format" : "pve-node",
013dc89f
DM
40852 "type" : "string",
40853 "typetext" : "<string>"
4d47f125
TL
40854 },
40855 "upid" : {
40856 "type" : "string",
40857 "typetext" : "<string>"
44660702
DM
40858 }
40859 }
7aacca6f
DM
40860 },
40861 "permissions" : {
5370fa8c 40862 "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125 40863 "user" : "all"
7aacca6f 40864 },
44660702 40865 "protected" : 1,
7aacca6f 40866 "proxyto" : "node",
44660702
DM
40867 "returns" : {
40868 "type" : "null"
40869 }
40870 },
40871 "GET" : {
e9cd3bd4 40872 "allowtoken" : 1,
4d47f125 40873 "description" : "",
44660702 40874 "method" : "GET",
4d47f125 40875 "name" : "upid_index",
7aacca6f
DM
40876 "parameters" : {
40877 "additionalProperties" : 0,
40878 "properties" : {
7aacca6f 40879 "node" : {
44660702 40880 "description" : "The cluster node name.",
7aacca6f 40881 "format" : "pve-node",
013dc89f
DM
40882 "type" : "string",
40883 "typetext" : "<string>"
7aacca6f 40884 },
4d47f125
TL
40885 "upid" : {
40886 "type" : "string",
40887 "typetext" : "<string>"
7aacca6f
DM
40888 }
40889 }
40890 },
7aacca6f 40891 "permissions" : {
4d47f125 40892 "user" : "all"
7aacca6f
DM
40893 },
40894 "returns" : {
4d47f125
TL
40895 "items" : {
40896 "properties" : {},
40897 "type" : "object"
40898 },
40899 "links" : [
40900 {
40901 "href" : "{name}",
40902 "rel" : "child"
40903 }
40904 ],
40905 "type" : "array"
44660702 40906 }
7aacca6f
DM
40907 }
40908 },
4d47f125
TL
40909 "leaf" : 0,
40910 "path" : "/nodes/{node}/tasks/{upid}",
40911 "text" : "{upid}"
7aacca6f
DM
40912 }
40913 ],
7aacca6f 40914 "info" : {
44660702 40915 "GET" : {
e9cd3bd4 40916 "allowtoken" : 1,
4d47f125 40917 "description" : "Read task list for one node (finished tasks).",
44660702 40918 "method" : "GET",
4d47f125 40919 "name" : "node_tasks",
44660702
DM
40920 "parameters" : {
40921 "additionalProperties" : 0,
40922 "properties" : {
4d47f125
TL
40923 "errors" : {
40924 "default" : 0,
5370fa8c 40925 "description" : "Only list tasks with a status of ERROR.",
7aacca6f 40926 "optional" : 1,
4d47f125
TL
40927 "type" : "boolean",
40928 "typetext" : "<boolean>"
7aacca6f 40929 },
4d47f125
TL
40930 "limit" : {
40931 "default" : 50,
40932 "description" : "Only list this amount of tasks.",
40933 "minimum" : 0,
44660702 40934 "optional" : 1,
4d47f125
TL
40935 "type" : "integer",
40936 "typetext" : "<integer> (0 - N)"
40937 },
40938 "node" : {
40939 "description" : "The cluster node name.",
40940 "format" : "pve-node",
013dc89f
DM
40941 "type" : "string",
40942 "typetext" : "<string>"
44660702 40943 },
34f3e481
TL
40944 "since" : {
40945 "description" : "Only list tasks since this UNIX epoch.",
40946 "optional" : 1,
40947 "type" : "integer",
40948 "typetext" : "<integer>"
40949 },
5f26e15b
TL
40950 "source" : {
40951 "default" : "archive",
40952 "description" : "List archived, active or all tasks.",
40953 "enum" : [
40954 "archive",
40955 "active",
40956 "all"
40957 ],
40958 "optional" : 1,
40959 "type" : "string"
40960 },
4d47f125
TL
40961 "start" : {
40962 "default" : 0,
40963 "description" : "List tasks beginning from this offset.",
40964 "minimum" : 0,
44660702 40965 "optional" : 1,
4d47f125
TL
40966 "type" : "integer",
40967 "typetext" : "<integer> (0 - N)"
44660702 40968 },
34f3e481
TL
40969 "statusfilter" : {
40970 "description" : "List of Task States that should be returned.",
40971 "format" : "pve-task-status-type-list",
40972 "optional" : 1,
40973 "type" : "string",
40974 "typetext" : "<string>"
40975 },
5f26e15b
TL
40976 "typefilter" : {
40977 "description" : "Only list tasks of this type (e.g., vzstart, vzdump).",
40978 "optional" : 1,
40979 "type" : "string",
40980 "typetext" : "<string>"
40981 },
34f3e481
TL
40982 "until" : {
40983 "description" : "Only list tasks until this UNIX epoch.",
40984 "optional" : 1,
40985 "type" : "integer",
40986 "typetext" : "<integer>"
40987 },
4d47f125
TL
40988 "userfilter" : {
40989 "description" : "Only list tasks from this user.",
44660702 40990 "optional" : 1,
013dc89f
DM
40991 "type" : "string",
40992 "typetext" : "<string>"
44660702 40993 },
4d47f125
TL
40994 "vmid" : {
40995 "description" : "Only list tasks for this VM.",
40996 "format" : "pve-vmid",
8dd66e12
TL
40997 "maximum" : 999999999,
40998 "minimum" : 100,
44660702 40999 "optional" : 1,
4bd7df8b 41000 "type" : "integer",
8dd66e12 41001 "typetext" : "<integer> (100 - 999999999)"
4d47f125
TL
41002 }
41003 }
41004 },
41005 "permissions" : {
41006 "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).",
41007 "user" : "all"
41008 },
41009 "proxyto" : "node",
41010 "returns" : {
41011 "items" : {
41012 "properties" : {
41013 "endtime" : {
41014 "optional" : 1,
41015 "title" : "Endtime",
41016 "type" : "integer"
41017 },
41018 "id" : {
4d47f125
TL
41019 "title" : "ID",
41020 "type" : "string"
41021 },
41022 "node" : {
4d47f125
TL
41023 "title" : "Node",
41024 "type" : "string"
41025 },
41026 "pid" : {
4d47f125
TL
41027 "title" : "PID",
41028 "type" : "integer"
41029 },
41030 "pstart" : {
4d47f125
TL
41031 "type" : "integer"
41032 },
41033 "starttime" : {
4d47f125
TL
41034 "title" : "Starttime",
41035 "type" : "integer"
41036 },
41037 "status" : {
41038 "optional" : 1,
41039 "title" : "Status",
41040 "type" : "string"
41041 },
41042 "type" : {
4d47f125
TL
41043 "title" : "Type",
41044 "type" : "string"
41045 },
41046 "upid" : {
41047 "title" : "UPID",
41048 "type" : "string"
41049 },
41050 "user" : {
4d47f125
TL
41051 "title" : "User",
41052 "type" : "string"
41053 }
44660702 41054 },
4d47f125
TL
41055 "type" : "object"
41056 },
41057 "links" : [
41058 {
41059 "href" : "{upid}",
41060 "rel" : "child"
41061 }
41062 ],
41063 "type" : "array"
41064 }
41065 }
41066 },
41067 "leaf" : 0,
41068 "path" : "/nodes/{node}/tasks",
41069 "text" : "tasks"
41070 },
41071 {
41072 "children" : [
41073 {
41074 "info" : {
41075 "GET" : {
e9cd3bd4 41076 "allowtoken" : 1,
d2656385 41077 "description" : "Scan remote NFS server.",
4d47f125 41078 "method" : "GET",
d2656385 41079 "name" : "nfsscan",
4d47f125
TL
41080 "parameters" : {
41081 "additionalProperties" : 0,
41082 "properties" : {
41083 "node" : {
41084 "description" : "The cluster node name.",
41085 "format" : "pve-node",
41086 "type" : "string",
41087 "typetext" : "<string>"
d2656385
TL
41088 },
41089 "server" : {
41090 "description" : "The server address (name or IP).",
41091 "format" : "pve-storage-server",
41092 "type" : "string",
41093 "typetext" : "<string>"
4d47f125
TL
41094 }
41095 }
44660702 41096 },
4d47f125
TL
41097 "permissions" : {
41098 "check" : [
41099 "perm",
41100 "/storage",
41101 [
41102 "Datastore.Allocate"
41103 ]
41104 ]
41105 },
41106 "protected" : 1,
41107 "proxyto" : "node",
41108 "returns" : {
41109 "items" : {
41110 "properties" : {
d2656385
TL
41111 "options" : {
41112 "description" : "NFS export options.",
41113 "type" : "string"
41114 },
41115 "path" : {
41116 "description" : "The exported path.",
4d47f125
TL
41117 "type" : "string"
41118 }
41119 },
41120 "type" : "object"
41121 },
41122 "type" : "array"
41123 }
41124 }
41125 },
41126 "leaf" : 1,
d2656385
TL
41127 "path" : "/nodes/{node}/scan/nfs",
41128 "text" : "nfs"
4d47f125
TL
41129 },
41130 {
41131 "info" : {
41132 "GET" : {
e9cd3bd4 41133 "allowtoken" : 1,
d2656385 41134 "description" : "Scan remote CIFS server.",
4d47f125 41135 "method" : "GET",
d2656385 41136 "name" : "cifsscan",
4d47f125
TL
41137 "parameters" : {
41138 "additionalProperties" : 0,
41139 "properties" : {
d2656385
TL
41140 "domain" : {
41141 "description" : "SMB domain (Workgroup).",
41142 "optional" : 1,
41143 "type" : "string",
41144 "typetext" : "<string>"
41145 },
4d47f125
TL
41146 "node" : {
41147 "description" : "The cluster node name.",
41148 "format" : "pve-node",
41149 "type" : "string",
41150 "typetext" : "<string>"
41151 },
d2656385
TL
41152 "password" : {
41153 "description" : "User password.",
41154 "optional" : 1,
41155 "type" : "string",
41156 "typetext" : "<string>"
41157 },
4d47f125
TL
41158 "server" : {
41159 "description" : "The server address (name or IP).",
41160 "format" : "pve-storage-server",
41161 "type" : "string",
41162 "typetext" : "<string>"
d2656385
TL
41163 },
41164 "username" : {
41165 "description" : "User name.",
41166 "optional" : 1,
41167 "type" : "string",
41168 "typetext" : "<string>"
4d47f125
TL
41169 }
41170 }
41171 },
41172 "permissions" : {
41173 "check" : [
41174 "perm",
41175 "/storage",
41176 [
41177 "Datastore.Allocate"
41178 ]
41179 ]
41180 },
41181 "protected" : 1,
41182 "proxyto" : "node",
41183 "returns" : {
41184 "items" : {
41185 "properties" : {
d2656385
TL
41186 "description" : {
41187 "description" : "Descriptive text from server.",
4d47f125
TL
41188 "type" : "string"
41189 },
d2656385
TL
41190 "share" : {
41191 "description" : "The cifs share name.",
4d47f125
TL
41192 "type" : "string"
41193 }
41194 },
41195 "type" : "object"
41196 },
41197 "type" : "array"
41198 }
41199 }
41200 },
41201 "leaf" : 1,
d2656385
TL
41202 "path" : "/nodes/{node}/scan/cifs",
41203 "text" : "cifs"
4d47f125
TL
41204 },
41205 {
41206 "info" : {
41207 "GET" : {
e9cd3bd4 41208 "allowtoken" : 1,
d2656385 41209 "description" : "Scan remote Proxmox Backup Server.",
4d47f125 41210 "method" : "GET",
d2656385 41211 "name" : "pbsscan",
4d47f125
TL
41212 "parameters" : {
41213 "additionalProperties" : 0,
41214 "properties" : {
d2656385
TL
41215 "fingerprint" : {
41216 "description" : "Certificate SHA 256 fingerprint.",
4d47f125 41217 "optional" : 1,
d2656385
TL
41218 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
41219 "type" : "string"
4d47f125
TL
41220 },
41221 "node" : {
41222 "description" : "The cluster node name.",
41223 "format" : "pve-node",
41224 "type" : "string",
41225 "typetext" : "<string>"
41226 },
41227 "password" : {
d2656385 41228 "description" : "User password or API token secret.",
4d47f125
TL
41229 "type" : "string",
41230 "typetext" : "<string>"
41231 },
d2656385
TL
41232 "port" : {
41233 "default" : 8007,
41234 "description" : "Optional port.",
41235 "maximum" : 65535,
41236 "minimum" : 1,
41237 "optional" : 1,
41238 "type" : "integer",
41239 "typetext" : "<integer> (1 - 65535)"
41240 },
4d47f125
TL
41241 "server" : {
41242 "description" : "The server address (name or IP).",
41243 "format" : "pve-storage-server",
41244 "type" : "string",
41245 "typetext" : "<string>"
41246 },
41247 "username" : {
d2656385 41248 "description" : "User-name or API token-ID.",
4d47f125
TL
41249 "type" : "string",
41250 "typetext" : "<string>"
41251 }
41252 }
41253 },
41254 "permissions" : {
41255 "check" : [
41256 "perm",
41257 "/storage",
41258 [
41259 "Datastore.Allocate"
41260 ]
41261 ]
41262 },
41263 "protected" : 1,
41264 "proxyto" : "node",
41265 "returns" : {
41266 "items" : {
41267 "properties" : {
d2656385
TL
41268 "comment" : {
41269 "description" : "Comment from server.",
41270 "optional" : 1,
4d47f125
TL
41271 "type" : "string"
41272 },
d2656385
TL
41273 "store" : {
41274 "description" : "The datastore name.",
4d47f125
TL
41275 "type" : "string"
41276 }
41277 },
41278 "type" : "object"
41279 },
41280 "type" : "array"
56122987 41281 }
44660702 41282 }
56122987 41283 },
4d47f125 41284 "leaf" : 1,
d2656385
TL
41285 "path" : "/nodes/{node}/scan/pbs",
41286 "text" : "pbs"
4d47f125 41287 },
44660702 41288 {
4d47f125
TL
41289 "info" : {
41290 "GET" : {
e9cd3bd4 41291 "allowtoken" : 1,
4d47f125
TL
41292 "description" : "Scan remote GlusterFS server.",
41293 "method" : "GET",
41294 "name" : "glusterfsscan",
41295 "parameters" : {
41296 "additionalProperties" : 0,
41297 "properties" : {
41298 "node" : {
41299 "description" : "The cluster node name.",
41300 "format" : "pve-node",
41301 "type" : "string",
41302 "typetext" : "<string>"
7aacca6f 41303 },
4d47f125
TL
41304 "server" : {
41305 "description" : "The server address (name or IP).",
41306 "format" : "pve-storage-server",
41307 "type" : "string",
41308 "typetext" : "<string>"
44660702 41309 }
7aacca6f 41310 }
56122987 41311 },
4d47f125
TL
41312 "permissions" : {
41313 "check" : [
41314 "perm",
41315 "/storage",
41316 [
41317 "Datastore.Allocate"
41318 ]
41319 ]
41320 },
41321 "protected" : 1,
41322 "proxyto" : "node",
41323 "returns" : {
41324 "items" : {
41325 "properties" : {
41326 "volname" : {
41327 "description" : "The volume name.",
41328 "type" : "string"
7aacca6f
DM
41329 }
41330 },
4d47f125
TL
41331 "type" : "object"
41332 },
41333 "type" : "array"
41334 }
41335 }
41336 },
41337 "leaf" : 1,
41338 "path" : "/nodes/{node}/scan/glusterfs",
41339 "text" : "glusterfs"
41340 },
41341 {
41342 "info" : {
41343 "GET" : {
e9cd3bd4 41344 "allowtoken" : 1,
4d47f125
TL
41345 "description" : "Scan remote iSCSI server.",
41346 "method" : "GET",
41347 "name" : "iscsiscan",
41348 "parameters" : {
41349 "additionalProperties" : 0,
41350 "properties" : {
41351 "node" : {
41352 "description" : "The cluster node name.",
41353 "format" : "pve-node",
41354 "type" : "string",
41355 "typetext" : "<string>"
56122987 41356 },
4d47f125
TL
41357 "portal" : {
41358 "description" : "The iSCSI portal (IP or DNS name with optional port).",
41359 "format" : "pve-storage-portal-dns",
41360 "type" : "string",
41361 "typetext" : "<string>"
41362 }
41363 }
41364 },
41365 "permissions" : {
41366 "check" : [
41367 "perm",
41368 "/storage",
41369 [
41370 "Datastore.Allocate"
41371 ]
41372 ]
41373 },
41374 "protected" : 1,
41375 "proxyto" : "node",
41376 "returns" : {
41377 "items" : {
41378 "properties" : {
41379 "portal" : {
41380 "description" : "The iSCSI portal name.",
41381 "type" : "string"
7aacca6f 41382 },
4d47f125
TL
41383 "target" : {
41384 "description" : "The iSCSI target name.",
41385 "type" : "string"
41386 }
41387 },
41388 "type" : "object"
41389 },
41390 "type" : "array"
41391 }
41392 }
41393 },
41394 "leaf" : 1,
41395 "path" : "/nodes/{node}/scan/iscsi",
41396 "text" : "iscsi"
41397 },
41398 {
41399 "info" : {
41400 "GET" : {
e9cd3bd4 41401 "allowtoken" : 1,
4d47f125
TL
41402 "description" : "List local LVM volume groups.",
41403 "method" : "GET",
41404 "name" : "lvmscan",
41405 "parameters" : {
41406 "additionalProperties" : 0,
41407 "properties" : {
41408 "node" : {
41409 "description" : "The cluster node name.",
41410 "format" : "pve-node",
41411 "type" : "string",
41412 "typetext" : "<string>"
56122987 41413 }
7aacca6f 41414 }
44660702 41415 },
4d47f125
TL
41416 "permissions" : {
41417 "check" : [
41418 "perm",
41419 "/storage",
41420 [
41421 "Datastore.Allocate"
41422 ]
41423 ]
41424 },
41425 "protected" : 1,
41426 "proxyto" : "node",
41427 "returns" : {
41428 "items" : {
41429 "properties" : {
41430 "vg" : {
41431 "description" : "The LVM logical volume group name.",
41432 "type" : "string"
41433 }
41434 },
41435 "type" : "object"
41436 },
41437 "type" : "array"
41438 }
56122987 41439 }
4d47f125
TL
41440 },
41441 "leaf" : 1,
41442 "path" : "/nodes/{node}/scan/lvm",
41443 "text" : "lvm"
41444 },
41445 {
44660702 41446 "info" : {
4d47f125 41447 "GET" : {
e9cd3bd4 41448 "allowtoken" : 1,
4d47f125
TL
41449 "description" : "List local LVM Thin Pools.",
41450 "method" : "GET",
41451 "name" : "lvmthinscan",
44660702
DM
41452 "parameters" : {
41453 "additionalProperties" : 0,
41454 "properties" : {
41455 "node" : {
41456 "description" : "The cluster node name.",
41457 "format" : "pve-node",
013dc89f
DM
41458 "type" : "string",
41459 "typetext" : "<string>"
44660702 41460 },
4d47f125
TL
41461 "vg" : {
41462 "maxLength" : 100,
41463 "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
41464 "type" : "string"
44660702 41465 }
7aacca6f 41466 }
44660702
DM
41467 },
41468 "permissions" : {
4d47f125
TL
41469 "check" : [
41470 "perm",
41471 "/storage",
41472 [
41473 "Datastore.Allocate"
41474 ]
41475 ]
44660702
DM
41476 },
41477 "protected" : 1,
41478 "proxyto" : "node",
41479 "returns" : {
4d47f125
TL
41480 "items" : {
41481 "properties" : {
41482 "lv" : {
41483 "description" : "The LVM Thin Pool name (LVM logical volume).",
41484 "type" : "string"
41485 }
41486 },
41487 "type" : "object"
41488 },
41489 "type" : "array"
7aacca6f 41490 }
4d47f125
TL
41491 }
41492 },
41493 "leaf" : 1,
41494 "path" : "/nodes/{node}/scan/lvmthin",
41495 "text" : "lvmthin"
41496 },
d2656385
TL
41497 {
41498 "info" : {
41499 "GET" : {
41500 "allowtoken" : 1,
41501 "description" : "Scan zfs pool list on local node.",
41502 "method" : "GET",
41503 "name" : "zfsscan",
41504 "parameters" : {
41505 "additionalProperties" : 0,
41506 "properties" : {
41507 "node" : {
41508 "description" : "The cluster node name.",
41509 "format" : "pve-node",
41510 "type" : "string",
41511 "typetext" : "<string>"
41512 }
41513 }
41514 },
41515 "permissions" : {
41516 "check" : [
41517 "perm",
41518 "/storage",
41519 [
41520 "Datastore.Allocate"
41521 ]
41522 ]
41523 },
41524 "protected" : 1,
41525 "proxyto" : "node",
41526 "returns" : {
41527 "items" : {
41528 "properties" : {
41529 "pool" : {
41530 "description" : "ZFS pool name.",
41531 "type" : "string"
41532 }
41533 },
41534 "type" : "object"
41535 },
41536 "type" : "array"
41537 }
41538 }
41539 },
41540 "leaf" : 1,
41541 "path" : "/nodes/{node}/scan/zfs",
41542 "text" : "zfs"
44660702
DM
41543 }
41544 ],
41545 "info" : {
41546 "GET" : {
e9cd3bd4 41547 "allowtoken" : 1,
4d47f125 41548 "description" : "Index of available scan methods",
44660702 41549 "method" : "GET",
4d47f125 41550 "name" : "index",
56122987 41551 "parameters" : {
7aacca6f 41552 "additionalProperties" : 0,
56122987 41553 "properties" : {
56122987
DM
41554 "node" : {
41555 "description" : "The cluster node name.",
44660702 41556 "format" : "pve-node",
013dc89f
DM
41557 "type" : "string",
41558 "typetext" : "<string>"
56122987
DM
41559 }
41560 }
41561 },
7aacca6f
DM
41562 "permissions" : {
41563 "user" : "all"
41564 },
56122987
DM
41565 "returns" : {
41566 "items" : {
41567 "properties" : {
4d47f125 41568 "method" : {
56122987
DM
41569 "type" : "string"
41570 }
41571 },
41572 "type" : "object"
41573 },
56122987
DM
41574 "links" : [
41575 {
4d47f125 41576 "href" : "{method}",
44660702 41577 "rel" : "child"
56122987 41578 }
44660702
DM
41579 ],
41580 "type" : "array"
56122987
DM
41581 }
41582 }
41583 },
44660702 41584 "leaf" : 0,
4d47f125
TL
41585 "path" : "/nodes/{node}/scan",
41586 "text" : "scan"
44660702 41587 },
e2d681b3
TL
41588 {
41589 "children" : [
41590 {
41591 "children" : [
41592 {
41593 "children" : [
41594 {
41595 "info" : {
41596 "GET" : {
e9cd3bd4 41597 "allowtoken" : 1,
e2d681b3
TL
41598 "description" : "List mediated device types for given PCI device.",
41599 "method" : "GET",
41600 "name" : "mdevscan",
41601 "parameters" : {
41602 "additionalProperties" : 0,
41603 "properties" : {
41604 "node" : {
41605 "description" : "The cluster node name.",
41606 "format" : "pve-node",
41607 "type" : "string",
41608 "typetext" : "<string>"
41609 },
41610 "pciid" : {
41611 "description" : "The PCI ID to list the mdev types for.",
41612 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
41613 "type" : "string"
41614 }
41615 }
41616 },
41617 "permissions" : {
41618 "check" : [
41619 "perm",
41620 "/",
41621 [
9d2e98ed 41622 "Sys.Audit",
e2d681b3 41623 "Sys.Modify"
9d2e98ed
TL
41624 ],
41625 "any",
41626 1
e2d681b3
TL
41627 ]
41628 },
41629 "protected" : 1,
41630 "proxyto" : "node",
41631 "returns" : {
41632 "items" : {
41633 "properties" : {
41634 "available" : {
41635 "description" : "The number of still available instances of this type.",
41636 "type" : "integer"
41637 },
41638 "description" : {
41639 "type" : "string"
41640 },
41641 "type" : {
41642 "description" : "The name of the mdev type.",
41643 "type" : "string"
41644 }
41645 },
41646 "type" : "object"
41647 },
41648 "type" : "array"
41649 }
41650 }
41651 },
41652 "leaf" : 1,
41653 "path" : "/nodes/{node}/hardware/pci/{pciid}/mdev",
41654 "text" : "mdev"
41655 }
41656 ],
41657 "info" : {
41658 "GET" : {
e9cd3bd4 41659 "allowtoken" : 1,
e2d681b3
TL
41660 "description" : "Index of available pci methods",
41661 "method" : "GET",
41662 "name" : "pciindex",
41663 "parameters" : {
41664 "additionalProperties" : 0,
41665 "properties" : {
41666 "node" : {
41667 "description" : "The cluster node name.",
41668 "format" : "pve-node",
41669 "type" : "string",
41670 "typetext" : "<string>"
41671 },
41672 "pciid" : {
41673 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
41674 "type" : "string"
41675 }
41676 }
41677 },
41678 "permissions" : {
41679 "user" : "all"
41680 },
41681 "returns" : {
41682 "items" : {
41683 "properties" : {
41684 "method" : {
41685 "type" : "string"
41686 }
41687 },
41688 "type" : "object"
41689 },
41690 "links" : [
41691 {
41692 "href" : "{method}",
41693 "rel" : "child"
41694 }
41695 ],
41696 "type" : "array"
41697 }
41698 }
41699 },
41700 "leaf" : 0,
41701 "path" : "/nodes/{node}/hardware/pci/{pciid}",
41702 "text" : "{pciid}"
41703 }
41704 ],
41705 "info" : {
41706 "GET" : {
e9cd3bd4 41707 "allowtoken" : 1,
e2d681b3
TL
41708 "description" : "List local PCI devices.",
41709 "method" : "GET",
41710 "name" : "pciscan",
41711 "parameters" : {
41712 "additionalProperties" : 0,
41713 "properties" : {
41714 "node" : {
41715 "description" : "The cluster node name.",
41716 "format" : "pve-node",
41717 "type" : "string",
41718 "typetext" : "<string>"
41719 },
41720 "pci-class-blacklist" : {
5370fa8c
TL
41721 "default" : "05;06;0b",
41722 "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
41723 "format" : "string-list",
41724 "optional" : 1,
41725 "type" : "string",
41726 "typetext" : "<string>"
41727 },
41728 "verbose" : {
41729 "default" : 1,
41730 "description" : "If disabled, does only print the PCI IDs. Otherwise, additional information like vendor and device will be returned.",
41731 "optional" : 1,
41732 "type" : "boolean",
41733 "typetext" : "<boolean>"
41734 }
41735 }
41736 },
41737 "permissions" : {
41738 "check" : [
41739 "perm",
41740 "/",
41741 [
9d2e98ed 41742 "Sys.Audit",
e2d681b3 41743 "Sys.Modify"
9d2e98ed
TL
41744 ],
41745 "any",
41746 1
e2d681b3
TL
41747 ]
41748 },
41749 "protected" : 1,
41750 "proxyto" : "node",
41751 "returns" : {
41752 "items" : {
41753 "properties" : {
41754 "class" : {
41755 "description" : "The PCI Class of the device.",
41756 "type" : "string"
41757 },
41758 "device" : {
41759 "description" : "The Device ID.",
41760 "type" : "string"
41761 },
41762 "device_name" : {
41763 "optional" : 1,
41764 "type" : "string"
41765 },
41766 "id" : {
41767 "description" : "The PCI ID.",
41768 "type" : "string"
41769 },
41770 "iommugroup" : {
41771 "description" : "The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.",
41772 "type" : "integer"
41773 },
41774 "mdev" : {
41775 "description" : "If set, marks that the device is capable of creating mediated devices.",
41776 "optional" : 1,
41777 "type" : "boolean"
41778 },
41779 "subsystem_device" : {
41780 "description" : "The Subsystem Device ID.",
41781 "optional" : 1,
41782 "type" : "string"
41783 },
41784 "subsystem_device_name" : {
41785 "optional" : 1,
41786 "type" : "string"
41787 },
41788 "subsystem_vendor" : {
41789 "description" : "The Subsystem Vendor ID.",
41790 "optional" : 1,
41791 "type" : "string"
41792 },
41793 "subsystem_vendor_name" : {
41794 "optional" : 1,
41795 "type" : "string"
41796 },
41797 "vendor" : {
41798 "description" : "The Vendor ID.",
41799 "type" : "string"
41800 },
41801 "vendor_name" : {
41802 "optional" : 1,
41803 "type" : "string"
41804 }
41805 },
41806 "type" : "object"
41807 },
41808 "links" : [
41809 {
41810 "href" : "{id}",
41811 "rel" : "child"
41812 }
41813 ],
41814 "type" : "array"
41815 }
41816 }
41817 },
41818 "leaf" : 0,
41819 "path" : "/nodes/{node}/hardware/pci",
41820 "text" : "pci"
d2656385
TL
41821 },
41822 {
41823 "info" : {
41824 "GET" : {
41825 "allowtoken" : 1,
41826 "description" : "List local USB devices.",
41827 "method" : "GET",
41828 "name" : "usbscan",
41829 "parameters" : {
41830 "additionalProperties" : 0,
41831 "properties" : {
41832 "node" : {
41833 "description" : "The cluster node name.",
41834 "format" : "pve-node",
41835 "type" : "string",
41836 "typetext" : "<string>"
41837 }
41838 }
41839 },
41840 "permissions" : {
41841 "check" : [
41842 "perm",
41843 "/",
41844 [
41845 "Sys.Modify"
41846 ]
41847 ]
41848 },
41849 "protected" : 1,
41850 "proxyto" : "node",
41851 "returns" : {
41852 "items" : {
41853 "properties" : {
41854 "busnum" : {
41855 "type" : "integer"
41856 },
41857 "class" : {
41858 "type" : "integer"
41859 },
41860 "devnum" : {
41861 "type" : "integer"
41862 },
41863 "level" : {
41864 "type" : "integer"
41865 },
41866 "manufacturer" : {
41867 "optional" : 1,
41868 "type" : "string"
41869 },
41870 "port" : {
41871 "type" : "integer"
41872 },
41873 "prodid" : {
41874 "type" : "string"
41875 },
41876 "product" : {
41877 "optional" : 1,
41878 "type" : "string"
41879 },
41880 "serial" : {
41881 "optional" : 1,
41882 "type" : "string"
41883 },
41884 "speed" : {
41885 "type" : "string"
41886 },
41887 "usbpath" : {
41888 "optional" : 1,
41889 "type" : "string"
41890 },
41891 "vendid" : {
41892 "type" : "string"
41893 }
41894 },
41895 "type" : "object"
41896 },
41897 "type" : "array"
41898 }
41899 }
41900 },
41901 "leaf" : 1,
41902 "path" : "/nodes/{node}/hardware/usb",
41903 "text" : "usb"
e2d681b3
TL
41904 }
41905 ],
41906 "info" : {
41907 "GET" : {
e9cd3bd4 41908 "allowtoken" : 1,
e2d681b3
TL
41909 "description" : "Index of hardware types",
41910 "method" : "GET",
41911 "name" : "index",
41912 "parameters" : {
41913 "additionalProperties" : 0,
41914 "properties" : {
41915 "node" : {
41916 "description" : "The cluster node name.",
41917 "format" : "pve-node",
41918 "type" : "string",
41919 "typetext" : "<string>"
41920 }
41921 }
41922 },
41923 "permissions" : {
41924 "user" : "all"
41925 },
41926 "returns" : {
41927 "items" : {
41928 "properties" : {
41929 "type" : {
41930 "type" : "string"
41931 }
41932 },
41933 "type" : "object"
41934 },
41935 "links" : [
41936 {
41937 "href" : "{type}",
41938 "rel" : "child"
41939 }
41940 ],
41941 "type" : "array"
41942 }
41943 }
41944 },
41945 "leaf" : 0,
41946 "path" : "/nodes/{node}/hardware",
41947 "text" : "hardware"
41948 },
d2656385
TL
41949 {
41950 "children" : [
41951 {
41952 "children" : [
0695fdaf
TL
41953 {
41954 "info" : {
41955 "GET" : {
41956 "allowtoken" : 1,
41957 "description" : "List all custom and default CPU models.",
41958 "method" : "GET",
41959 "name" : "index",
41960 "parameters" : {
41961 "additionalProperties" : 0,
41962 "properties" : {
41963 "node" : {
41964 "description" : "The cluster node name.",
41965 "format" : "pve-node",
41966 "type" : "string",
41967 "typetext" : "<string>"
41968 }
41969 }
41970 },
41971 "permissions" : {
41972 "description" : "Only returns custom models when the current user has Sys.Audit on /nodes.",
41973 "user" : "all"
41974 },
41975 "returns" : {
41976 "items" : {
41977 "properties" : {
41978 "custom" : {
41979 "description" : "True if this is a custom CPU model.",
41980 "type" : "boolean"
41981 },
41982 "name" : {
41983 "description" : "Name of the CPU model. Identifies it for subsequent API calls. Prefixed with 'custom-' for custom models.",
41984 "type" : "string"
41985 },
41986 "vendor" : {
41987 "description" : "CPU vendor visible to the guest when this model is selected. Vendor of 'reported-model' in case of custom models.",
41988 "type" : "string"
41989 }
41990 },
41991 "type" : "object"
41992 },
41993 "links" : [
41994 {
41995 "href" : "{name}",
41996 "rel" : "child"
41997 }
41998 ],
41999 "type" : "array"
42000 }
42001 }
42002 },
42003 "leaf" : 1,
42004 "path" : "/nodes/{node}/capabilities/qemu/cpu",
42005 "text" : "cpu"
42006 },
d2656385
TL
42007 {
42008 "info" : {
42009 "GET" : {
42010 "allowtoken" : 1,
42011 "description" : "Get available QEMU/KVM machine types.",
42012 "method" : "GET",
42013 "name" : "types",
42014 "parameters" : {
42015 "additionalProperties" : 0,
42016 "properties" : {
42017 "node" : {
42018 "description" : "The cluster node name.",
42019 "format" : "pve-node",
42020 "type" : "string",
42021 "typetext" : "<string>"
42022 }
42023 }
42024 },
42025 "permissions" : {
42026 "user" : "all"
42027 },
42028 "proxyto" : "node",
42029 "returns" : {
42030 "items" : {
42031 "additionalProperties" : 1,
42032 "properties" : {
42033 "id" : {
42034 "description" : "Full name of machine type and version.",
42035 "type" : "string"
42036 },
42037 "type" : {
42038 "description" : "The machine type.",
42039 "enum" : [
42040 "q35",
42041 "i440fx"
42042 ],
42043 "type" : "string"
42044 },
42045 "version" : {
42046 "description" : "The machine version.",
42047 "type" : "string"
42048 }
42049 },
42050 "type" : "object"
42051 },
42052 "type" : "array"
42053 }
42054 }
42055 },
42056 "leaf" : 1,
42057 "path" : "/nodes/{node}/capabilities/qemu/machines",
42058 "text" : "machines"
42059 }
42060 ],
42061 "info" : {
42062 "GET" : {
42063 "allowtoken" : 1,
42064 "description" : "QEMU capabilities index.",
42065 "method" : "GET",
42066 "name" : "qemu_caps_index",
42067 "parameters" : {
42068 "additionalProperties" : 0,
42069 "properties" : {
42070 "node" : {
42071 "description" : "The cluster node name.",
42072 "format" : "pve-node",
42073 "type" : "string",
42074 "typetext" : "<string>"
42075 }
42076 }
42077 },
42078 "permissions" : {
42079 "user" : "all"
42080 },
42081 "returns" : {
42082 "items" : {
42083 "properties" : {},
42084 "type" : "object"
42085 },
42086 "links" : [
42087 {
42088 "href" : "{name}",
42089 "rel" : "child"
42090 }
42091 ],
42092 "type" : "array"
42093 }
42094 }
42095 },
42096 "leaf" : 0,
42097 "path" : "/nodes/{node}/capabilities/qemu",
42098 "text" : "qemu"
42099 }
42100 ],
42101 "info" : {
42102 "GET" : {
42103 "allowtoken" : 1,
42104 "description" : "Node capabilities index.",
42105 "method" : "GET",
42106 "name" : "index",
42107 "parameters" : {
42108 "additionalProperties" : 0,
42109 "properties" : {
42110 "node" : {
42111 "description" : "The cluster node name.",
42112 "format" : "pve-node",
42113 "type" : "string",
42114 "typetext" : "<string>"
42115 }
42116 }
42117 },
42118 "permissions" : {
42119 "user" : "all"
42120 },
42121 "returns" : {
42122 "items" : {
42123 "properties" : {},
42124 "type" : "object"
42125 },
42126 "links" : [
42127 {
42128 "href" : "{name}",
42129 "rel" : "child"
42130 }
42131 ],
42132 "type" : "array"
42133 }
42134 }
42135 },
42136 "leaf" : 0,
42137 "path" : "/nodes/{node}/capabilities",
42138 "text" : "capabilities"
42139 },
44660702 42140 {
56122987
DM
42141 "children" : [
42142 {
4d47f125 42143 "children" : [
739d4d64
TL
42144 {
42145 "info" : {
42146 "DELETE" : {
42147 "allowtoken" : 1,
42148 "description" : "Prune backups. Only those using the standard naming scheme are considered.",
42149 "method" : "DELETE",
42150 "name" : "delete",
42151 "parameters" : {
42152 "additionalProperties" : 0,
42153 "properties" : {
42154 "node" : {
42155 "description" : "The cluster node name.",
42156 "format" : "pve-node",
42157 "type" : "string",
42158 "typetext" : "<string>"
42159 },
42160 "prune-backups" : {
42161 "description" : "Use these retention options instead of those from the storage configuration.",
42162 "format" : "prune-backups",
42163 "optional" : 1,
42164 "type" : "string",
4772952b 42165 "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
42166 },
42167 "storage" : {
42168 "description" : "The storage identifier.",
42169 "format" : "pve-storage-id",
42170 "type" : "string",
42171 "typetext" : "<string>"
42172 },
42173 "type" : {
42174 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
42175 "enum" : [
42176 "qemu",
42177 "lxc"
42178 ],
42179 "optional" : 1,
42180 "type" : "string"
42181 },
42182 "vmid" : {
42183 "description" : "Only prune backups for this VM.",
42184 "format" : "pve-vmid",
8dd66e12
TL
42185 "maximum" : 999999999,
42186 "minimum" : 100,
739d4d64
TL
42187 "optional" : 1,
42188 "type" : "integer",
8dd66e12 42189 "typetext" : "<integer> (100 - 999999999)"
739d4d64
TL
42190 }
42191 }
42192 },
42193 "permissions" : {
42194 "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).",
42195 "user" : "all"
42196 },
42197 "protected" : 1,
42198 "proxyto" : "node",
42199 "returns" : {
42200 "type" : "string"
42201 }
42202 },
42203 "GET" : {
42204 "allowtoken" : 1,
4772952b 42205 "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
42206 "method" : "GET",
42207 "name" : "dryrun",
42208 "parameters" : {
42209 "additionalProperties" : 0,
42210 "properties" : {
42211 "node" : {
42212 "description" : "The cluster node name.",
42213 "format" : "pve-node",
42214 "type" : "string",
42215 "typetext" : "<string>"
42216 },
42217 "prune-backups" : {
42218 "description" : "Use these retention options instead of those from the storage configuration.",
42219 "format" : "prune-backups",
42220 "optional" : 1,
42221 "type" : "string",
4772952b 42222 "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
42223 },
42224 "storage" : {
42225 "description" : "The storage identifier.",
42226 "format" : "pve-storage-id",
42227 "type" : "string",
42228 "typetext" : "<string>"
42229 },
42230 "type" : {
42231 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
42232 "enum" : [
42233 "qemu",
42234 "lxc"
42235 ],
42236 "optional" : 1,
42237 "type" : "string"
42238 },
42239 "vmid" : {
42240 "description" : "Only consider backups for this guest.",
42241 "format" : "pve-vmid",
8dd66e12
TL
42242 "maximum" : 999999999,
42243 "minimum" : 100,
739d4d64
TL
42244 "optional" : 1,
42245 "type" : "integer",
8dd66e12 42246 "typetext" : "<integer> (100 - 999999999)"
739d4d64
TL
42247 }
42248 }
42249 },
42250 "permissions" : {
42251 "check" : [
42252 "perm",
42253 "/storage/{storage}",
42254 [
42255 "Datastore.Audit",
42256 "Datastore.AllocateSpace"
42257 ],
42258 "any",
42259 1
42260 ]
42261 },
42262 "protected" : 1,
42263 "proxyto" : "node",
42264 "returns" : {
42265 "items" : {
42266 "properties" : {
42267 "ctime" : {
42268 "description" : "Creation time of the backup (seconds since the UNIX epoch).",
42269 "type" : "integer"
42270 },
42271 "mark" : {
5370fa8c
TL
42272 "description" : "Whether the backup would be kept or removed. Backups that are protected or don't use the standard naming scheme are not removed.",
42273 "enum" : [
42274 "keep",
42275 "remove",
42276 "protected",
42277 "renamed"
42278 ],
739d4d64
TL
42279 "type" : "string"
42280 },
42281 "type" : {
42282 "description" : "One of 'qemu', 'lxc', 'openvz' or 'unknown'.",
42283 "type" : "string"
42284 },
42285 "vmid" : {
42286 "description" : "The VM the backup belongs to.",
42287 "optional" : 1,
42288 "type" : "integer"
42289 },
42290 "volid" : {
42291 "description" : "Backup volume ID.",
42292 "type" : "string"
42293 }
42294 },
42295 "type" : "object"
42296 },
42297 "type" : "array"
42298 }
42299 }
42300 },
42301 "leaf" : 1,
42302 "path" : "/nodes/{node}/storage/{storage}/prunebackups",
42303 "text" : "prunebackups"
42304 },
4d47f125
TL
42305 {
42306 "children" : [
42307 {
42308 "info" : {
42309 "DELETE" : {
e9cd3bd4 42310 "allowtoken" : 1,
4d47f125
TL
42311 "description" : "Delete volume",
42312 "method" : "DELETE",
42313 "name" : "delete",
42314 "parameters" : {
42315 "additionalProperties" : 0,
42316 "properties" : {
1c532546
TL
42317 "delay" : {
42318 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
42319 "maximum" : 30,
42320 "minimum" : 1,
42321 "optional" : 1,
42322 "type" : "integer",
42323 "typetext" : "<integer> (1 - 30)"
42324 },
4d47f125
TL
42325 "node" : {
42326 "description" : "The cluster node name.",
42327 "format" : "pve-node",
42328 "type" : "string",
42329 "typetext" : "<string>"
42330 },
42331 "storage" : {
42332 "description" : "The storage identifier.",
42333 "format" : "pve-storage-id",
42334 "optional" : 1,
42335 "type" : "string",
42336 "typetext" : "<string>"
42337 },
42338 "volume" : {
42339 "description" : "Volume identifier",
42340 "type" : "string",
42341 "typetext" : "<string>"
42342 }
42343 }
42344 },
42345 "permissions" : {
42346 "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
42347 "user" : "all"
42348 },
42349 "protected" : 1,
42350 "proxyto" : "node",
42351 "returns" : {
1c532546
TL
42352 "optional" : 1,
42353 "type" : "string"
4d47f125
TL
42354 }
42355 },
42356 "GET" : {
e9cd3bd4 42357 "allowtoken" : 1,
4d47f125
TL
42358 "description" : "Get volume attributes",
42359 "method" : "GET",
42360 "name" : "info",
42361 "parameters" : {
42362 "additionalProperties" : 0,
42363 "properties" : {
42364 "node" : {
42365 "description" : "The cluster node name.",
42366 "format" : "pve-node",
42367 "type" : "string",
42368 "typetext" : "<string>"
42369 },
42370 "storage" : {
42371 "description" : "The storage identifier.",
42372 "format" : "pve-storage-id",
42373 "optional" : 1,
42374 "type" : "string",
42375 "typetext" : "<string>"
42376 },
42377 "volume" : {
42378 "description" : "Volume identifier",
42379 "type" : "string",
42380 "typetext" : "<string>"
42381 }
42382 }
42383 },
42384 "permissions" : {
42385 "description" : "You need read access for the volume.",
42386 "user" : "all"
42387 },
42388 "protected" : 1,
42389 "proxyto" : "node",
42390 "returns" : {
4772952b
TL
42391 "properties" : {
42392 "format" : {
42393 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
42394 "type" : "string"
42395 },
42396 "notes" : {
42397 "description" : "Optional notes.",
42398 "optional" : 1,
42399 "type" : "string"
42400 },
42401 "path" : {
42402 "description" : "The Path",
42403 "type" : "string"
42404 },
5370fa8c
TL
42405 "protected" : {
42406 "description" : "Protection status. Currently only supported for backups.",
42407 "optional" : 1,
42408 "type" : "boolean"
42409 },
4772952b
TL
42410 "size" : {
42411 "description" : "Volume size in bytes.",
42412 "renderer" : "bytes",
42413 "type" : "integer"
42414 },
42415 "used" : {
42416 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
42417 "renderer" : "bytes",
42418 "type" : "integer"
42419 }
42420 },
4d47f125
TL
42421 "type" : "object"
42422 }
42423 },
42424 "POST" : {
e9cd3bd4 42425 "allowtoken" : 1,
4d47f125
TL
42426 "description" : "Copy a volume. This is experimental code - do not use.",
42427 "method" : "POST",
42428 "name" : "copy",
42429 "parameters" : {
42430 "additionalProperties" : 0,
42431 "properties" : {
42432 "node" : {
42433 "description" : "The cluster node name.",
42434 "format" : "pve-node",
42435 "type" : "string",
42436 "typetext" : "<string>"
42437 },
42438 "storage" : {
42439 "description" : "The storage identifier.",
42440 "format" : "pve-storage-id",
42441 "optional" : 1,
42442 "type" : "string",
42443 "typetext" : "<string>"
42444 },
42445 "target" : {
42446 "description" : "Target volume identifier",
42447 "type" : "string",
42448 "typetext" : "<string>"
42449 },
42450 "target_node" : {
42451 "description" : "Target node. Default is local node.",
42452 "format" : "pve-node",
42453 "optional" : 1,
42454 "type" : "string",
42455 "typetext" : "<string>"
42456 },
42457 "volume" : {
42458 "description" : "Source volume identifier",
42459 "type" : "string",
42460 "typetext" : "<string>"
42461 }
42462 }
42463 },
42464 "protected" : 1,
42465 "proxyto" : "node",
42466 "returns" : {
42467 "type" : "string"
42468 }
4772952b
TL
42469 },
42470 "PUT" : {
42471 "allowtoken" : 1,
42472 "description" : "Update volume attributes",
42473 "method" : "PUT",
42474 "name" : "updateattributes",
42475 "parameters" : {
42476 "additionalProperties" : 0,
42477 "properties" : {
42478 "node" : {
42479 "description" : "The cluster node name.",
42480 "format" : "pve-node",
42481 "type" : "string",
42482 "typetext" : "<string>"
42483 },
42484 "notes" : {
42485 "description" : "The new notes.",
42486 "optional" : 1,
42487 "type" : "string",
42488 "typetext" : "<string>"
42489 },
5370fa8c
TL
42490 "protected" : {
42491 "description" : "Protection status. Currently only supported for backups.",
42492 "optional" : 1,
42493 "type" : "boolean",
42494 "typetext" : "<boolean>"
42495 },
4772952b
TL
42496 "storage" : {
42497 "description" : "The storage identifier.",
42498 "format" : "pve-storage-id",
42499 "optional" : 1,
42500 "type" : "string",
42501 "typetext" : "<string>"
42502 },
42503 "volume" : {
42504 "description" : "Volume identifier",
42505 "type" : "string",
42506 "typetext" : "<string>"
42507 }
42508 }
42509 },
42510 "permissions" : {
42511 "description" : "You need read access for the volume.",
42512 "user" : "all"
42513 },
42514 "protected" : 1,
42515 "proxyto" : "node",
42516 "returns" : {
42517 "type" : "null"
42518 }
4d47f125
TL
42519 }
42520 },
42521 "leaf" : 1,
42522 "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
42523 "text" : "{volume}"
44660702 42524 }
4d47f125
TL
42525 ],
42526 "info" : {
42527 "GET" : {
e9cd3bd4 42528 "allowtoken" : 1,
4d47f125
TL
42529 "description" : "List storage content.",
42530 "method" : "GET",
42531 "name" : "index",
42532 "parameters" : {
42533 "additionalProperties" : 0,
42534 "properties" : {
42535 "content" : {
42536 "description" : "Only list content of this type.",
42537 "format" : "pve-storage-content",
42538 "optional" : 1,
42539 "type" : "string",
42540 "typetext" : "<string>"
42541 },
42542 "node" : {
42543 "description" : "The cluster node name.",
42544 "format" : "pve-node",
42545 "type" : "string",
42546 "typetext" : "<string>"
42547 },
42548 "storage" : {
42549 "description" : "The storage identifier.",
42550 "format" : "pve-storage-id",
42551 "type" : "string",
42552 "typetext" : "<string>"
42553 },
42554 "vmid" : {
42555 "description" : "Only list images for this VM",
42556 "format" : "pve-vmid",
8dd66e12
TL
42557 "maximum" : 999999999,
42558 "minimum" : 100,
4d47f125
TL
42559 "optional" : 1,
42560 "type" : "integer",
8dd66e12 42561 "typetext" : "<integer> (100 - 999999999)"
4d47f125 42562 }
56122987 42563 }
44660702 42564 },
4d47f125
TL
42565 "permissions" : {
42566 "check" : [
42567 "perm",
42568 "/storage/{storage}",
42569 [
42570 "Datastore.Audit",
42571 "Datastore.AllocateSpace"
42572 ],
42573 "any",
42574 1
42575 ]
7aacca6f 42576 },
4d47f125
TL
42577 "protected" : 1,
42578 "proxyto" : "node",
42579 "returns" : {
42580 "items" : {
42581 "properties" : {
c5aa7e14
TL
42582 "ctime" : {
42583 "description" : "Creation time (seconds since the UNIX Epoch).",
42584 "minimum" : 0,
42585 "optional" : 1,
42586 "type" : "integer"
42587 },
d2656385
TL
42588 "encrypted" : {
42589 "description" : "If whole backup is encrypted, value is the fingerprint or '1' if encrypted. Only useful for the Proxmox Backup Server storage type.",
42590 "optional" : 1,
42591 "type" : "string"
42592 },
4d47f125
TL
42593 "format" : {
42594 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
42595 "type" : "string"
42596 },
4772952b
TL
42597 "notes" : {
42598 "description" : "Optional notes. If they contain multiple lines, only the first one is returned here.",
42599 "optional" : 1,
42600 "type" : "string"
42601 },
4d47f125
TL
42602 "parent" : {
42603 "description" : "Volume identifier of parent (for linked cloned).",
42604 "optional" : 1,
42605 "type" : "string"
42606 },
5370fa8c
TL
42607 "protected" : {
42608 "description" : "Protection status. Currently only supported for backups.",
42609 "optional" : 1,
42610 "type" : "boolean"
42611 },
4d47f125
TL
42612 "size" : {
42613 "description" : "Volume size in bytes.",
42614 "renderer" : "bytes",
42615 "type" : "integer"
42616 },
42617 "used" : {
c5aa7e14 42618 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
4d47f125
TL
42619 "optional" : 1,
42620 "renderer" : "bytes",
42621 "type" : "integer"
42622 },
4772952b
TL
42623 "verification" : {
42624 "description" : "Last backup verification result, only useful for PBS storages.",
42625 "optional" : 1,
42626 "properties" : {
42627 "state" : {
42628 "description" : "Last backup verification state.",
42629 "type" : "string"
42630 },
42631 "upid" : {
42632 "description" : "Last backup verification UPID.",
42633 "type" : "string"
42634 }
42635 },
42636 "type" : "object"
42637 },
4d47f125
TL
42638 "vmid" : {
42639 "description" : "Associated Owner VMID.",
42640 "optional" : 1,
42641 "type" : "integer"
42642 },
42643 "volid" : {
42644 "description" : "Volume identifier.",
42645 "type" : "string"
42646 }
42647 },
42648 "type" : "object"
44660702 42649 },
4d47f125
TL
42650 "links" : [
42651 {
42652 "href" : "{volid}",
42653 "rel" : "child"
42654 }
42655 ],
42656 "type" : "array"
42657 }
42658 },
42659 "POST" : {
e9cd3bd4 42660 "allowtoken" : 1,
4d47f125
TL
42661 "description" : "Allocate disk images.",
42662 "method" : "POST",
42663 "name" : "create",
42664 "parameters" : {
42665 "additionalProperties" : 0,
42666 "properties" : {
42667 "filename" : {
42668 "description" : "The name of the file to create.",
42669 "type" : "string",
42670 "typetext" : "<string>"
42671 },
42672 "format" : {
42673 "enum" : [
42674 "raw",
42675 "qcow2",
42676 "subvol"
42677 ],
42678 "optional" : 1,
42679 "requires" : "size",
42680 "type" : "string"
42681 },
42682 "node" : {
42683 "description" : "The cluster node name.",
42684 "format" : "pve-node",
42685 "type" : "string",
42686 "typetext" : "<string>"
42687 },
42688 "size" : {
42689 "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
42690 "pattern" : "\\d+[MG]?",
42691 "type" : "string"
42692 },
42693 "storage" : {
42694 "description" : "The storage identifier.",
42695 "format" : "pve-storage-id",
42696 "type" : "string",
42697 "typetext" : "<string>"
42698 },
42699 "vmid" : {
42700 "description" : "Specify owner VM",
42701 "format" : "pve-vmid",
8dd66e12
TL
42702 "maximum" : 999999999,
42703 "minimum" : 100,
4d47f125 42704 "type" : "integer",
8dd66e12 42705 "typetext" : "<integer> (100 - 999999999)"
4d47f125 42706 }
44660702
DM
42707 }
42708 },
4d47f125
TL
42709 "permissions" : {
42710 "check" : [
42711 "perm",
42712 "/storage/{storage}",
42713 [
42714 "Datastore.AllocateSpace"
42715 ]
42716 ]
27a7acb2 42717 },
4d47f125
TL
42718 "protected" : 1,
42719 "proxyto" : "node",
42720 "returns" : {
42721 "description" : "Volume identifier",
42722 "type" : "string"
27a7acb2
DM
42723 }
42724 }
42725 },
4d47f125
TL
42726 "leaf" : 0,
42727 "path" : "/nodes/{node}/storage/{storage}/content",
42728 "text" : "content"
42729 },
d2656385
TL
42730 {
42731 "children" : [
42732 {
42733 "info" : {
42734 "GET" : {
42735 "allowtoken" : 1,
42736 "description" : "List files and directories for single file restore under the given path.",
42737 "method" : "GET",
42738 "name" : "list",
42739 "parameters" : {
42740 "additionalProperties" : 0,
42741 "properties" : {
42742 "filepath" : {
42743 "description" : "base64-path to the directory or file being listed, or \"/\".",
42744 "type" : "string",
42745 "typetext" : "<string>"
42746 },
42747 "node" : {
42748 "description" : "The cluster node name.",
42749 "format" : "pve-node",
42750 "type" : "string",
42751 "typetext" : "<string>"
42752 },
42753 "storage" : {
42754 "description" : "The storage identifier.",
42755 "format" : "pve-storage-id",
42756 "type" : "string",
42757 "typetext" : "<string>"
42758 },
42759 "volume" : {
42760 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
42761 "type" : "string",
42762 "typetext" : "<string>"
42763 }
42764 }
42765 },
42766 "permissions" : {
42767 "description" : "You need read access for the volume.",
42768 "user" : "all"
42769 },
42770 "protected" : 1,
42771 "proxyto" : "node",
42772 "returns" : {
42773 "items" : {
42774 "properties" : {
42775 "filepath" : {
42776 "description" : "base64 path of the current entry",
42777 "type" : "string"
42778 },
42779 "leaf" : {
42780 "description" : "If this entry is a leaf in the directory graph.",
42781 "type" : "boolean"
42782 },
42783 "mtime" : {
42784 "description" : "Entry last-modified time (unix timestamp).",
42785 "optional" : 1,
42786 "type" : "integer"
42787 },
42788 "size" : {
42789 "description" : "Entry file size.",
42790 "optional" : 1,
42791 "type" : "integer"
42792 },
42793 "text" : {
42794 "description" : "Entry display text.",
42795 "type" : "string"
42796 },
42797 "type" : {
42798 "description" : "Entry type.",
42799 "type" : "string"
42800 }
42801 },
42802 "type" : "object"
42803 },
42804 "type" : "array"
42805 }
42806 }
42807 },
42808 "leaf" : 1,
42809 "path" : "/nodes/{node}/storage/{storage}/file-restore/list",
42810 "text" : "list"
42811 },
42812 {
42813 "info" : {
42814 "GET" : {
42815 "allowtoken" : 1,
42816 "description" : "Extract a file or directory (as zip archive) from a PBS backup.",
42817 "method" : "GET",
42818 "name" : "download",
42819 "parameters" : {
42820 "additionalProperties" : 0,
42821 "properties" : {
42822 "filepath" : {
42823 "description" : "base64-path to the directory or file to download.",
42824 "type" : "string",
42825 "typetext" : "<string>"
42826 },
42827 "node" : {
42828 "description" : "The cluster node name.",
42829 "format" : "pve-node",
42830 "type" : "string",
42831 "typetext" : "<string>"
42832 },
42833 "storage" : {
42834 "description" : "The storage identifier.",
42835 "format" : "pve-storage-id",
42836 "type" : "string",
42837 "typetext" : "<string>"
42838 },
bd92b745
TL
42839 "tar" : {
42840 "default" : 0,
42841 "description" : "Download dirs as 'tar.zst' instead of 'zip'.",
42842 "optional" : 1,
42843 "type" : "boolean",
42844 "typetext" : "<boolean>"
42845 },
d2656385
TL
42846 "volume" : {
42847 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
42848 "type" : "string",
42849 "typetext" : "<string>"
42850 }
42851 }
42852 },
42853 "permissions" : {
42854 "description" : "You need read access for the volume.",
42855 "user" : "all"
42856 },
42857 "protected" : 1,
42858 "proxyto" : "node",
42859 "returns" : {
42860 "type" : "any"
42861 }
42862 }
42863 },
42864 "leaf" : 1,
42865 "path" : "/nodes/{node}/storage/{storage}/file-restore/download",
42866 "text" : "download"
42867 }
42868 ],
42869 "leaf" : 0,
42870 "path" : "/nodes/{node}/storage/{storage}/file-restore",
42871 "text" : "file-restore"
42872 },
4d47f125
TL
42873 {
42874 "info" : {
42875 "GET" : {
e9cd3bd4 42876 "allowtoken" : 1,
4d47f125
TL
42877 "description" : "Read storage status.",
42878 "method" : "GET",
42879 "name" : "read_status",
42880 "parameters" : {
42881 "additionalProperties" : 0,
42882 "properties" : {
42883 "node" : {
42884 "description" : "The cluster node name.",
42885 "format" : "pve-node",
42886 "type" : "string",
42887 "typetext" : "<string>"
42888 },
42889 "storage" : {
42890 "description" : "The storage identifier.",
42891 "format" : "pve-storage-id",
42892 "type" : "string",
42893 "typetext" : "<string>"
42894 }
27a7acb2
DM
42895 }
42896 },
4d47f125
TL
42897 "permissions" : {
42898 "check" : [
42899 "perm",
42900 "/storage/{storage}",
42901 [
42902 "Datastore.Audit",
42903 "Datastore.AllocateSpace"
42904 ],
42905 "any",
42906 1
42907 ]
7aacca6f 42908 },
4d47f125
TL
42909 "protected" : 1,
42910 "proxyto" : "node",
42911 "returns" : {
42912 "type" : "object"
56122987 42913 }
44660702
DM
42914 }
42915 },
4d47f125
TL
42916 "leaf" : 1,
42917 "path" : "/nodes/{node}/storage/{storage}/status",
42918 "text" : "status"
42919 },
42920 {
42921 "info" : {
42922 "GET" : {
e9cd3bd4 42923 "allowtoken" : 1,
4d47f125
TL
42924 "description" : "Read storage RRD statistics (returns PNG).",
42925 "method" : "GET",
42926 "name" : "rrd",
42927 "parameters" : {
42928 "additionalProperties" : 0,
42929 "properties" : {
42930 "cf" : {
42931 "description" : "The RRD consolidation function",
42932 "enum" : [
42933 "AVERAGE",
42934 "MAX"
42935 ],
42936 "optional" : 1,
42937 "type" : "string"
42938 },
42939 "ds" : {
42940 "description" : "The list of datasources you want to display.",
42941 "format" : "pve-configid-list",
42942 "type" : "string",
42943 "typetext" : "<string>"
42944 },
42945 "node" : {
42946 "description" : "The cluster node name.",
42947 "format" : "pve-node",
42948 "type" : "string",
42949 "typetext" : "<string>"
42950 },
42951 "storage" : {
42952 "description" : "The storage identifier.",
42953 "format" : "pve-storage-id",
42954 "type" : "string",
42955 "typetext" : "<string>"
42956 },
42957 "timeframe" : {
42958 "description" : "Specify the time frame you are interested in.",
42959 "enum" : [
42960 "hour",
42961 "day",
42962 "week",
42963 "month",
42964 "year"
42965 ],
42966 "type" : "string"
42967 }
44660702
DM
42968 }
42969 },
4d47f125
TL
42970 "permissions" : {
42971 "check" : [
42972 "perm",
42973 "/storage/{storage}",
42974 [
42975 "Datastore.Audit",
42976 "Datastore.AllocateSpace"
42977 ],
42978 "any",
42979 1
42980 ]
42981 },
42982 "protected" : 1,
42983 "proxyto" : "node",
42984 "returns" : {
42985 "properties" : {
42986 "filename" : {
42987 "type" : "string"
42988 }
42989 },
42990 "type" : "object"
44660702
DM
42991 }
42992 }
42993 },
4d47f125
TL
42994 "leaf" : 1,
42995 "path" : "/nodes/{node}/storage/{storage}/rrd",
42996 "text" : "rrd"
42997 },
42998 {
42999 "info" : {
43000 "GET" : {
e9cd3bd4 43001 "allowtoken" : 1,
4d47f125
TL
43002 "description" : "Read storage RRD statistics.",
43003 "method" : "GET",
43004 "name" : "rrddata",
43005 "parameters" : {
43006 "additionalProperties" : 0,
43007 "properties" : {
43008 "cf" : {
43009 "description" : "The RRD consolidation function",
43010 "enum" : [
43011 "AVERAGE",
43012 "MAX"
43013 ],
43014 "optional" : 1,
43015 "type" : "string"
43016 },
43017 "node" : {
43018 "description" : "The cluster node name.",
43019 "format" : "pve-node",
43020 "type" : "string",
43021 "typetext" : "<string>"
43022 },
43023 "storage" : {
43024 "description" : "The storage identifier.",
43025 "format" : "pve-storage-id",
43026 "type" : "string",
43027 "typetext" : "<string>"
43028 },
43029 "timeframe" : {
43030 "description" : "Specify the time frame you are interested in.",
43031 "enum" : [
43032 "hour",
43033 "day",
43034 "week",
43035 "month",
43036 "year"
43037 ],
43038 "type" : "string"
43039 }
56122987
DM
43040 }
43041 },
4d47f125
TL
43042 "permissions" : {
43043 "check" : [
43044 "perm",
43045 "/storage/{storage}",
43046 [
43047 "Datastore.Audit",
43048 "Datastore.AllocateSpace"
43049 ],
43050 "any",
43051 1
43052 ]
43053 },
43054 "protected" : 1,
43055 "proxyto" : "node",
43056 "returns" : {
43057 "items" : {
43058 "properties" : {},
43059 "type" : "object"
43060 },
43061 "type" : "array"
56122987 43062 }
7aacca6f 43063 }
56122987 43064 },
4d47f125
TL
43065 "leaf" : 1,
43066 "path" : "/nodes/{node}/storage/{storage}/rrddata",
43067 "text" : "rrddata"
43068 },
43069 {
43070 "info" : {
43071 "POST" : {
e9cd3bd4 43072 "allowtoken" : 1,
4d47f125
TL
43073 "description" : "Upload templates and ISO images.",
43074 "method" : "POST",
43075 "name" : "upload",
43076 "parameters" : {
43077 "additionalProperties" : 0,
43078 "properties" : {
5370fa8c
TL
43079 "checksum" : {
43080 "description" : "The expected checksum of the file.",
43081 "optional" : 1,
43082 "requires" : "checksum-algorithm",
43083 "type" : "string",
43084 "typetext" : "<string>"
43085 },
43086 "checksum-algorithm" : {
43087 "description" : "The algorithm to calculate the checksum of the file.",
43088 "enum" : [
43089 "md5",
43090 "sha1",
43091 "sha224",
43092 "sha256",
43093 "sha384",
43094 "sha512"
43095 ],
43096 "optional" : 1,
43097 "requires" : "checksum",
43098 "type" : "string"
43099 },
4d47f125
TL
43100 "content" : {
43101 "description" : "Content type.",
5370fa8c
TL
43102 "enum" : [
43103 "iso",
43104 "vztmpl"
43105 ],
4d47f125 43106 "format" : "pve-storage-content",
5370fa8c 43107 "type" : "string"
4d47f125
TL
43108 },
43109 "filename" : {
5370fa8c
TL
43110 "description" : "The name of the file to create. Caution: This will be normalized!",
43111 "maxLength" : 255,
4d47f125
TL
43112 "type" : "string",
43113 "typetext" : "<string>"
43114 },
43115 "node" : {
43116 "description" : "The cluster node name.",
43117 "format" : "pve-node",
43118 "type" : "string",
43119 "typetext" : "<string>"
43120 },
43121 "storage" : {
43122 "description" : "The storage identifier.",
43123 "format" : "pve-storage-id",
43124 "type" : "string",
43125 "typetext" : "<string>"
43126 },
43127 "tmpfilename" : {
1e3f8156 43128 "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 43129 "optional" : 1,
4a407cfd
TL
43130 "pattern" : "/var/tmp/pveupload-[0-9a-f]+",
43131 "type" : "string"
4d47f125 43132 }
44660702
DM
43133 }
43134 },
4d47f125
TL
43135 "permissions" : {
43136 "check" : [
43137 "perm",
43138 "/storage/{storage}",
43139 [
43140 "Datastore.AllocateTemplate"
43141 ]
43142 ]
56122987 43143 },
4d47f125
TL
43144 "protected" : 1,
43145 "returns" : {
44660702 43146 "type" : "string"
56122987 43147 }
44660702 43148 }
56122987 43149 },
4d47f125
TL
43150 "leaf" : 1,
43151 "path" : "/nodes/{node}/storage/{storage}/upload",
43152 "text" : "upload"
34f3e481
TL
43153 },
43154 {
43155 "info" : {
43156 "POST" : {
43157 "allowtoken" : 1,
43158 "description" : "Download templates and ISO images by using an URL.",
43159 "method" : "POST",
43160 "name" : "download_url",
43161 "parameters" : {
43162 "additionalProperties" : 0,
43163 "properties" : {
43164 "checksum" : {
43165 "description" : "The expected checksum of the file.",
43166 "optional" : 1,
43167 "requires" : "checksum-algorithm",
43168 "type" : "string",
43169 "typetext" : "<string>"
43170 },
43171 "checksum-algorithm" : {
43172 "description" : "The algorithm to calculate the checksum of the file.",
43173 "enum" : [
43174 "md5",
43175 "sha1",
43176 "sha224",
43177 "sha256",
43178 "sha384",
43179 "sha512"
43180 ],
43181 "optional" : 1,
43182 "requires" : "checksum",
43183 "type" : "string"
43184 },
82551b2b
TL
43185 "compression" : {
43186 "description" : "Decompress the downloaded file using the specified compression algorithm.",
43187 "enum" : null,
43188 "optional" : 1,
43189 "type" : "string",
43190 "typetext" : "<string>"
43191 },
34f3e481
TL
43192 "content" : {
43193 "description" : "Content type.",
43194 "enum" : [
43195 "iso",
43196 "vztmpl"
43197 ],
43198 "format" : "pve-storage-content",
43199 "type" : "string"
43200 },
43201 "filename" : {
43202 "description" : "The name of the file to create. Caution: This will be normalized!",
43203 "maxLength" : 255,
43204 "type" : "string",
43205 "typetext" : "<string>"
43206 },
43207 "node" : {
43208 "description" : "The cluster node name.",
43209 "format" : "pve-node",
43210 "type" : "string",
43211 "typetext" : "<string>"
43212 },
43213 "storage" : {
43214 "description" : "The storage identifier.",
43215 "format" : "pve-storage-id",
43216 "type" : "string",
43217 "typetext" : "<string>"
43218 },
43219 "url" : {
43220 "description" : "The URL to download the file from.",
43221 "pattern" : "https?://.*",
43222 "type" : "string"
43223 },
43224 "verify-certificates" : {
43225 "default" : 1,
43226 "description" : "If false, no SSL/TLS certificates will be verified.",
43227 "optional" : 1,
43228 "type" : "boolean",
43229 "typetext" : "<boolean>"
43230 }
43231 }
43232 },
43233 "permissions" : {
43234 "check" : [
43235 "and",
43236 [
43237 "perm",
43238 "/storage/{storage}",
43239 [
43240 "Datastore.AllocateTemplate"
43241 ]
43242 ],
43243 [
43244 "perm",
43245 "/",
43246 [
43247 "Sys.Audit",
43248 "Sys.Modify"
43249 ]
43250 ]
43251 ]
43252 },
43253 "protected" : 1,
43254 "proxyto" : "node",
43255 "returns" : {
43256 "type" : "string"
43257 }
43258 }
43259 },
43260 "leaf" : 1,
43261 "path" : "/nodes/{node}/storage/{storage}/download-url",
43262 "text" : "download-url"
56122987 43263 }
4d47f125 43264 ],
56122987
DM
43265 "info" : {
43266 "GET" : {
e9cd3bd4 43267 "allowtoken" : 1,
4d47f125 43268 "description" : "",
44660702 43269 "method" : "GET",
4d47f125 43270 "name" : "diridx",
44660702
DM
43271 "parameters" : {
43272 "additionalProperties" : 0,
43273 "properties" : {
43274 "node" : {
43275 "description" : "The cluster node name.",
43276 "format" : "pve-node",
013dc89f
DM
43277 "type" : "string",
43278 "typetext" : "<string>"
4d47f125
TL
43279 },
43280 "storage" : {
43281 "description" : "The storage identifier.",
43282 "format" : "pve-storage-id",
43283 "type" : "string",
43284 "typetext" : "<string>"
44660702
DM
43285 }
43286 }
43287 },
7aacca6f
DM
43288 "permissions" : {
43289 "check" : [
43290 "perm",
4d47f125 43291 "/storage/{storage}",
7aacca6f 43292 [
4d47f125
TL
43293 "Datastore.Audit",
43294 "Datastore.AllocateSpace"
43295 ],
43296 "any",
43297 1
7aacca6f
DM
43298 ]
43299 },
56122987
DM
43300 "returns" : {
43301 "items" : {
43302 "properties" : {
4d47f125 43303 "subdir" : {
44660702 43304 "type" : "string"
56122987
DM
43305 }
43306 },
43307 "type" : "object"
7aacca6f 43308 },
4d47f125
TL
43309 "links" : [
43310 {
43311 "href" : "{subdir}",
43312 "rel" : "child"
43313 }
43314 ],
7aacca6f 43315 "type" : "array"
44660702
DM
43316 }
43317 }
43318 },
4d47f125
TL
43319 "leaf" : 0,
43320 "path" : "/nodes/{node}/storage/{storage}",
43321 "text" : "{storage}"
44660702
DM
43322 }
43323 ],
43324 "info" : {
43325 "GET" : {
e9cd3bd4 43326 "allowtoken" : 1,
4d47f125 43327 "description" : "Get status for all datastores.",
44660702
DM
43328 "method" : "GET",
43329 "name" : "index",
43330 "parameters" : {
43331 "additionalProperties" : 0,
43332 "properties" : {
4d47f125
TL
43333 "content" : {
43334 "description" : "Only list stores which support this content type.",
43335 "format" : "pve-storage-content-list",
43336 "optional" : 1,
43337 "type" : "string",
43338 "typetext" : "<string>"
43339 },
43340 "enabled" : {
43341 "default" : 0,
43342 "description" : "Only list stores which are enabled (not disabled in config).",
43343 "optional" : 1,
43344 "type" : "boolean",
43345 "typetext" : "<boolean>"
43346 },
43347 "format" : {
43348 "default" : 0,
43349 "description" : "Include information about formats",
43350 "optional" : 1,
43351 "type" : "boolean",
43352 "typetext" : "<boolean>"
43353 },
44660702
DM
43354 "node" : {
43355 "description" : "The cluster node name.",
43356 "format" : "pve-node",
013dc89f
DM
43357 "type" : "string",
43358 "typetext" : "<string>"
4d47f125
TL
43359 },
43360 "storage" : {
43361 "description" : "Only list status for specified storage",
43362 "format" : "pve-storage-id",
43363 "optional" : 1,
43364 "type" : "string",
43365 "typetext" : "<string>"
43366 },
43367 "target" : {
43368 "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
43369 "format" : "pve-node",
43370 "optional" : 1,
43371 "type" : "string",
43372 "typetext" : "<string>"
44660702
DM
43373 }
43374 }
43375 },
4d47f125
TL
43376 "permissions" : {
43377 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
43378 "user" : "all"
43379 },
43380 "protected" : 1,
43381 "proxyto" : "node",
43382 "returns" : {
43383 "items" : {
43384 "properties" : {
43385 "active" : {
43386 "description" : "Set when storage is accessible.",
43387 "optional" : 1,
43388 "type" : "boolean"
43389 },
43390 "avail" : {
43391 "description" : "Available storage space in bytes.",
43392 "optional" : 1,
43393 "renderer" : "bytes",
43394 "type" : "integer"
43395 },
43396 "content" : {
43397 "description" : "Allowed storage content types.",
43398 "format" : "pve-storage-content-list",
43399 "type" : "string"
43400 },
43401 "enabled" : {
43402 "description" : "Set when storage is enabled (not disabled).",
43403 "optional" : 1,
43404 "type" : "boolean"
43405 },
43406 "shared" : {
43407 "description" : "Shared flag from storage configuration.",
43408 "optional" : 1,
43409 "type" : "boolean"
43410 },
43411 "storage" : {
43412 "description" : "The storage identifier.",
43413 "format" : "pve-storage-id",
43414 "type" : "string"
43415 },
43416 "total" : {
43417 "description" : "Total storage space in bytes.",
43418 "optional" : 1,
43419 "renderer" : "bytes",
43420 "type" : "integer"
43421 },
43422 "type" : {
43423 "description" : "Storage type.",
43424 "type" : "string"
43425 },
43426 "used" : {
43427 "description" : "Used storage space in bytes.",
43428 "optional" : 1,
43429 "renderer" : "bytes",
43430 "type" : "integer"
43431 },
43432 "used_fraction" : {
43433 "description" : "Used fraction (used/total).",
43434 "optional" : 1,
43435 "renderer" : "fraction_as_percentage",
43436 "type" : "number"
7aacca6f 43437 }
4d47f125
TL
43438 },
43439 "type" : "object"
43440 },
43441 "links" : [
43442 {
43443 "href" : "{storage}",
43444 "rel" : "child"
43445 }
43446 ],
43447 "type" : "array"
43448 }
43449 }
43450 },
43451 "leaf" : 0,
43452 "path" : "/nodes/{node}/storage",
43453 "text" : "storage"
43454 },
43455 {
43456 "children" : [
43457 {
5370fa8c
TL
43458 "children" : [
43459 {
43460 "info" : {
43461 "DELETE" : {
43462 "allowtoken" : 1,
43463 "description" : "Remove an LVM Volume Group.",
43464 "method" : "DELETE",
43465 "name" : "delete",
43466 "parameters" : {
43467 "additionalProperties" : 0,
43468 "properties" : {
43469 "cleanup-config" : {
43470 "default" : 0,
43471 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
43472 "optional" : 1,
43473 "type" : "boolean",
43474 "typetext" : "<boolean>"
43475 },
43476 "cleanup-disks" : {
43477 "default" : 0,
43478 "description" : "Also wipe disks so they can be repurposed afterwards.",
43479 "optional" : 1,
43480 "type" : "boolean",
43481 "typetext" : "<boolean>"
43482 },
43483 "name" : {
43484 "description" : "The storage identifier.",
43485 "format" : "pve-storage-id",
43486 "type" : "string",
43487 "typetext" : "<string>"
43488 },
43489 "node" : {
43490 "description" : "The cluster node name.",
43491 "format" : "pve-node",
43492 "type" : "string",
43493 "typetext" : "<string>"
43494 }
43495 }
43496 },
43497 "permissions" : {
43498 "check" : [
43499 "perm",
43500 "/",
43501 [
499c9b7f 43502 "Sys.Modify"
5370fa8c 43503 ]
499c9b7f
TL
43504 ],
43505 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
43506 },
43507 "protected" : 1,
43508 "proxyto" : "node",
43509 "returns" : {
43510 "type" : "string"
43511 }
43512 }
43513 },
43514 "leaf" : 1,
43515 "path" : "/nodes/{node}/disks/lvm/{name}",
43516 "text" : "{name}"
43517 }
43518 ],
4d47f125
TL
43519 "info" : {
43520 "GET" : {
e9cd3bd4 43521 "allowtoken" : 1,
4d47f125
TL
43522 "description" : "List LVM Volume Groups",
43523 "method" : "GET",
43524 "name" : "index",
43525 "parameters" : {
43526 "additionalProperties" : 0,
43527 "properties" : {
43528 "node" : {
43529 "description" : "The cluster node name.",
43530 "format" : "pve-node",
43531 "type" : "string",
43532 "typetext" : "<string>"
43533 }
43534 }
43535 },
43536 "permissions" : {
43537 "check" : [
43538 "perm",
43539 "/",
43540 [
8dd66e12
TL
43541 "Sys.Audit"
43542 ]
4d47f125
TL
43543 ]
43544 },
43545 "protected" : 1,
43546 "proxyto" : "node",
43547 "returns" : {
43548 "properties" : {
43549 "children" : {
44660702
DM
43550 "items" : {
43551 "properties" : {
4d47f125
TL
43552 "children" : {
43553 "description" : "The underlying physical volumes",
43554 "items" : {
43555 "properties" : {
43556 "free" : {
43557 "description" : "The free bytes in the physical volume",
43558 "type" : "integer"
43559 },
43560 "leaf" : {
43561 "type" : "boolean"
43562 },
43563 "name" : {
43564 "description" : "The name of the physical volume",
43565 "type" : "string"
43566 },
43567 "size" : {
43568 "description" : "The size of the physical volume in bytes",
43569 "type" : "integer"
43570 }
43571 },
43572 "type" : "object"
43573 },
43574 "optional" : 1,
43575 "type" : "array"
43576 },
43577 "free" : {
43578 "description" : "The free bytes in the volume group",
43579 "type" : "integer"
43580 },
43581 "leaf" : {
43582 "type" : "boolean"
43583 },
43584 "name" : {
43585 "description" : "The name of the volume group",
44660702 43586 "type" : "string"
4d47f125
TL
43587 },
43588 "size" : {
43589 "description" : "The size of the volume group in bytes",
43590 "type" : "integer"
44660702
DM
43591 }
43592 },
43593 "type" : "object"
43594 },
44660702 43595 "type" : "array"
4d47f125
TL
43596 },
43597 "leaf" : {
43598 "type" : "boolean"
44660702
DM
43599 }
43600 },
4d47f125
TL
43601 "type" : "object"
43602 }
43603 },
43604 "POST" : {
e9cd3bd4 43605 "allowtoken" : 1,
4d47f125
TL
43606 "description" : "Create an LVM Volume Group",
43607 "method" : "POST",
43608 "name" : "create",
43609 "parameters" : {
43610 "additionalProperties" : 0,
43611 "properties" : {
43612 "add_storage" : {
43613 "default" : 0,
43614 "description" : "Configure storage using the Volume Group",
43615 "optional" : 1,
43616 "type" : "boolean",
43617 "typetext" : "<boolean>"
44660702 43618 },
4d47f125
TL
43619 "device" : {
43620 "description" : "The block device you want to create the volume group on",
43621 "type" : "string",
43622 "typetext" : "<string>"
44660702 43623 },
4d47f125
TL
43624 "name" : {
43625 "description" : "The storage identifier.",
43626 "format" : "pve-storage-id",
43627 "type" : "string",
43628 "typetext" : "<string>"
43629 },
43630 "node" : {
43631 "description" : "The cluster node name.",
43632 "format" : "pve-node",
43633 "type" : "string",
43634 "typetext" : "<string>"
43635 }
43636 }
43637 },
43638 "permissions" : {
43639 "check" : [
43640 "perm",
43641 "/",
43642 [
499c9b7f 43643 "Sys.Modify"
4d47f125 43644 ]
499c9b7f
TL
43645 ],
43646 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
43647 },
43648 "protected" : 1,
43649 "proxyto" : "node",
43650 "returns" : {
43651 "type" : "string"
43652 }
43653 }
43654 },
5370fa8c 43655 "leaf" : 0,
4d47f125
TL
43656 "path" : "/nodes/{node}/disks/lvm",
43657 "text" : "lvm"
43658 },
43659 {
5370fa8c
TL
43660 "children" : [
43661 {
43662 "info" : {
43663 "DELETE" : {
43664 "allowtoken" : 1,
43665 "description" : "Remove an LVM thin pool.",
43666 "method" : "DELETE",
43667 "name" : "delete",
43668 "parameters" : {
43669 "additionalProperties" : 0,
43670 "properties" : {
43671 "cleanup-config" : {
43672 "default" : 0,
43673 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
43674 "optional" : 1,
43675 "type" : "boolean",
43676 "typetext" : "<boolean>"
43677 },
43678 "cleanup-disks" : {
43679 "default" : 0,
43680 "description" : "Also wipe disks so they can be repurposed afterwards.",
43681 "optional" : 1,
43682 "type" : "boolean",
43683 "typetext" : "<boolean>"
43684 },
43685 "name" : {
43686 "description" : "The storage identifier.",
43687 "format" : "pve-storage-id",
43688 "type" : "string",
43689 "typetext" : "<string>"
43690 },
43691 "node" : {
43692 "description" : "The cluster node name.",
43693 "format" : "pve-node",
43694 "type" : "string",
43695 "typetext" : "<string>"
43696 },
43697 "volume-group" : {
43698 "description" : "The storage identifier.",
43699 "format" : "pve-storage-id",
43700 "type" : "string",
43701 "typetext" : "<string>"
43702 }
43703 }
43704 },
43705 "permissions" : {
43706 "check" : [
43707 "perm",
43708 "/",
43709 [
499c9b7f 43710 "Sys.Modify"
5370fa8c 43711 ]
499c9b7f
TL
43712 ],
43713 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
43714 },
43715 "protected" : 1,
43716 "proxyto" : "node",
43717 "returns" : {
43718 "type" : "string"
43719 }
43720 }
43721 },
43722 "leaf" : 1,
43723 "path" : "/nodes/{node}/disks/lvmthin/{name}",
43724 "text" : "{name}"
43725 }
43726 ],
4d47f125
TL
43727 "info" : {
43728 "GET" : {
e9cd3bd4 43729 "allowtoken" : 1,
4d47f125
TL
43730 "description" : "List LVM thinpools",
43731 "method" : "GET",
43732 "name" : "index",
43733 "parameters" : {
43734 "additionalProperties" : 0,
43735 "properties" : {
43736 "node" : {
43737 "description" : "The cluster node name.",
43738 "format" : "pve-node",
43739 "type" : "string",
43740 "typetext" : "<string>"
44660702
DM
43741 }
43742 }
43743 },
4d47f125
TL
43744 "permissions" : {
43745 "check" : [
43746 "perm",
43747 "/",
43748 [
8dd66e12
TL
43749 "Sys.Audit"
43750 ]
4d47f125
TL
43751 ]
43752 },
43753 "protected" : 1,
43754 "proxyto" : "node",
43755 "returns" : {
43756 "items" : {
43757 "properties" : {
43758 "lv" : {
43759 "description" : "The name of the thinpool.",
43760 "type" : "string"
43761 },
43762 "lv_size" : {
43763 "description" : "The size of the thinpool in bytes.",
43764 "type" : "integer"
43765 },
43766 "metadata_size" : {
43767 "description" : "The size of the metadata lv in bytes.",
43768 "type" : "integer"
43769 },
43770 "metadata_used" : {
43771 "description" : "The used bytes of the metadata lv.",
43772 "type" : "integer"
43773 },
43774 "used" : {
43775 "description" : "The used bytes of the thinpool.",
43776 "type" : "integer"
5370fa8c
TL
43777 },
43778 "vg" : {
43779 "description" : "The associated volume group.",
43780 "type" : "string"
44660702
DM
43781 }
43782 },
4d47f125
TL
43783 "type" : "object"
43784 },
43785 "type" : "array"
43786 }
43787 },
43788 "POST" : {
e9cd3bd4 43789 "allowtoken" : 1,
4d47f125
TL
43790 "description" : "Create an LVM thinpool",
43791 "method" : "POST",
43792 "name" : "create",
43793 "parameters" : {
43794 "additionalProperties" : 0,
43795 "properties" : {
43796 "add_storage" : {
43797 "default" : 0,
43798 "description" : "Configure storage using the thinpool.",
43799 "optional" : 1,
43800 "type" : "boolean",
43801 "typetext" : "<boolean>"
56122987 43802 },
4d47f125
TL
43803 "device" : {
43804 "description" : "The block device you want to create the thinpool on.",
43805 "type" : "string",
43806 "typetext" : "<string>"
43807 },
43808 "name" : {
43809 "description" : "The storage identifier.",
43810 "format" : "pve-storage-id",
43811 "type" : "string",
43812 "typetext" : "<string>"
43813 },
43814 "node" : {
43815 "description" : "The cluster node name.",
43816 "format" : "pve-node",
43817 "type" : "string",
43818 "typetext" : "<string>"
44660702 43819 }
56122987
DM
43820 }
43821 },
4d47f125
TL
43822 "permissions" : {
43823 "check" : [
43824 "perm",
43825 "/",
43826 [
499c9b7f 43827 "Sys.Modify"
4d47f125 43828 ]
499c9b7f
TL
43829 ],
43830 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
43831 },
43832 "protected" : 1,
43833 "proxyto" : "node",
43834 "returns" : {
43835 "type" : "string"
43836 }
43837 }
43838 },
5370fa8c 43839 "leaf" : 0,
4d47f125
TL
43840 "path" : "/nodes/{node}/disks/lvmthin",
43841 "text" : "lvmthin"
43842 },
43843 {
5370fa8c
TL
43844 "children" : [
43845 {
43846 "info" : {
43847 "DELETE" : {
43848 "allowtoken" : 1,
43849 "description" : "Unmounts the storage and removes the mount unit.",
43850 "method" : "DELETE",
43851 "name" : "delete",
43852 "parameters" : {
43853 "additionalProperties" : 0,
43854 "properties" : {
43855 "cleanup-config" : {
43856 "default" : 0,
43857 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
43858 "optional" : 1,
43859 "type" : "boolean",
43860 "typetext" : "<boolean>"
43861 },
43862 "cleanup-disks" : {
43863 "default" : 0,
43864 "description" : "Also wipe disk so it can be repurposed afterwards.",
43865 "optional" : 1,
43866 "type" : "boolean",
43867 "typetext" : "<boolean>"
43868 },
43869 "name" : {
43870 "description" : "The storage identifier.",
43871 "format" : "pve-storage-id",
43872 "type" : "string",
43873 "typetext" : "<string>"
43874 },
43875 "node" : {
43876 "description" : "The cluster node name.",
43877 "format" : "pve-node",
43878 "type" : "string",
43879 "typetext" : "<string>"
43880 }
43881 }
43882 },
43883 "permissions" : {
43884 "check" : [
43885 "perm",
43886 "/",
43887 [
499c9b7f 43888 "Sys.Modify"
5370fa8c 43889 ]
499c9b7f
TL
43890 ],
43891 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
43892 },
43893 "protected" : 1,
43894 "proxyto" : "node",
43895 "returns" : {
43896 "type" : "string"
43897 }
43898 }
43899 },
43900 "leaf" : 1,
43901 "path" : "/nodes/{node}/disks/directory/{name}",
43902 "text" : "{name}"
43903 }
43904 ],
4d47f125
TL
43905 "info" : {
43906 "GET" : {
e9cd3bd4 43907 "allowtoken" : 1,
4d47f125
TL
43908 "description" : "PVE Managed Directory storages.",
43909 "method" : "GET",
43910 "name" : "index",
43911 "parameters" : {
43912 "additionalProperties" : 0,
43913 "properties" : {
43914 "node" : {
43915 "description" : "The cluster node name.",
43916 "format" : "pve-node",
43917 "type" : "string",
43918 "typetext" : "<string>"
43919 }
43920 }
43921 },
43922 "permissions" : {
43923 "check" : [
43924 "perm",
43925 "/",
43926 [
8dd66e12
TL
43927 "Sys.Audit"
43928 ]
4d47f125
TL
43929 ]
43930 },
43931 "protected" : 1,
43932 "proxyto" : "node",
43933 "returns" : {
43934 "items" : {
43935 "properties" : {
43936 "device" : {
43937 "description" : "The mounted device.",
43938 "type" : "string"
43939 },
43940 "options" : {
43941 "description" : "The mount options.",
43942 "type" : "string"
43943 },
43944 "path" : {
43945 "description" : "The mount path.",
43946 "type" : "string"
43947 },
43948 "type" : {
43949 "description" : "The filesystem type.",
43950 "type" : "string"
43951 },
43952 "unitfile" : {
43953 "description" : "The path of the mount unit.",
43954 "type" : "string"
44660702 43955 }
56122987 43956 },
4d47f125
TL
43957 "type" : "object"
43958 },
43959 "type" : "array"
43960 }
43961 },
43962 "POST" : {
e9cd3bd4 43963 "allowtoken" : 1,
4d47f125
TL
43964 "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.",
43965 "method" : "POST",
43966 "name" : "create",
43967 "parameters" : {
43968 "additionalProperties" : 0,
43969 "properties" : {
43970 "add_storage" : {
43971 "default" : 0,
43972 "description" : "Configure storage using the directory.",
43973 "optional" : 1,
43974 "type" : "boolean",
43975 "typetext" : "<boolean>"
43976 },
43977 "device" : {
43978 "description" : "The block device you want to create the filesystem on.",
43979 "type" : "string",
43980 "typetext" : "<string>"
43981 },
43982 "filesystem" : {
43983 "default" : "ext4",
43984 "description" : "The desired filesystem.",
43985 "enum" : [
43986 "ext4",
43987 "xfs"
43988 ],
43989 "optional" : 1,
43990 "type" : "string"
56122987 43991 },
4d47f125
TL
43992 "name" : {
43993 "description" : "The storage identifier.",
43994 "format" : "pve-storage-id",
43995 "type" : "string",
43996 "typetext" : "<string>"
43997 },
43998 "node" : {
43999 "description" : "The cluster node name.",
44000 "format" : "pve-node",
44001 "type" : "string",
44002 "typetext" : "<string>"
7aacca6f 44003 }
56122987
DM
44004 }
44005 },
4d47f125
TL
44006 "permissions" : {
44007 "check" : [
44008 "perm",
44009 "/",
44010 [
499c9b7f 44011 "Sys.Modify"
4d47f125 44012 ]
499c9b7f
TL
44013 ],
44014 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
4d47f125
TL
44015 },
44016 "protected" : 1,
44017 "proxyto" : "node",
44018 "returns" : {
44019 "type" : "string"
44020 }
44021 }
44022 },
5370fa8c 44023 "leaf" : 0,
4d47f125
TL
44024 "path" : "/nodes/{node}/disks/directory",
44025 "text" : "directory"
44026 },
44027 {
44028 "children" : [
56122987 44029 {
56122987 44030 "info" : {
5370fa8c
TL
44031 "DELETE" : {
44032 "allowtoken" : 1,
44033 "description" : "Destroy a ZFS pool.",
44034 "method" : "DELETE",
44035 "name" : "delete",
44036 "parameters" : {
44037 "additionalProperties" : 0,
44038 "properties" : {
44039 "cleanup-config" : {
44040 "default" : 0,
44041 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
44042 "optional" : 1,
44043 "type" : "boolean",
44044 "typetext" : "<boolean>"
44045 },
44046 "cleanup-disks" : {
44047 "default" : 0,
44048 "description" : "Also wipe disks so they can be repurposed afterwards.",
44049 "optional" : 1,
44050 "type" : "boolean",
44051 "typetext" : "<boolean>"
44052 },
44053 "name" : {
44054 "description" : "The storage identifier.",
44055 "format" : "pve-storage-id",
44056 "type" : "string",
44057 "typetext" : "<string>"
44058 },
44059 "node" : {
44060 "description" : "The cluster node name.",
44061 "format" : "pve-node",
44062 "type" : "string",
44063 "typetext" : "<string>"
44064 }
44065 }
44066 },
44067 "permissions" : {
44068 "check" : [
44069 "perm",
44070 "/",
44071 [
8dd66e12 44072 "Sys.Modify"
5370fa8c 44073 ]
499c9b7f
TL
44074 ],
44075 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'cleanup-config'"
5370fa8c
TL
44076 },
44077 "protected" : 1,
44078 "proxyto" : "node",
44079 "returns" : {
44080 "type" : "string"
44081 }
44082 },
56122987 44083 "GET" : {
e9cd3bd4 44084 "allowtoken" : 1,
4d47f125 44085 "description" : "Get details about a zpool.",
44660702 44086 "method" : "GET",
4d47f125 44087 "name" : "detail",
56122987 44088 "parameters" : {
44660702 44089 "additionalProperties" : 0,
56122987 44090 "properties" : {
4d47f125
TL
44091 "name" : {
44092 "description" : "The storage identifier.",
44093 "format" : "pve-storage-id",
44094 "type" : "string",
44095 "typetext" : "<string>"
44660702 44096 },
7aacca6f 44097 "node" : {
7aacca6f 44098 "description" : "The cluster node name.",
44660702 44099 "format" : "pve-node",
013dc89f
DM
44100 "type" : "string",
44101 "typetext" : "<string>"
56122987 44102 }
44660702 44103 }
7aacca6f 44104 },
7aacca6f
DM
44105 "permissions" : {
44106 "check" : [
44107 "perm",
4d47f125 44108 "/",
7aacca6f 44109 [
8dd66e12
TL
44110 "Sys.Audit"
44111 ]
7aacca6f
DM
44112 ]
44113 },
44660702
DM
44114 "protected" : 1,
44115 "proxyto" : "node",
7aacca6f 44116 "returns" : {
56122987 44117 "properties" : {
4d47f125
TL
44118 "action" : {
44119 "description" : "Information about the recommended action to fix the state.",
44120 "optional" : 1,
44121 "type" : "string"
56122987 44122 },
4d47f125 44123 "children" : {
e2d681b3 44124 "description" : "The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.",
4d47f125
TL
44125 "items" : {
44126 "properties" : {
44127 "cksum" : {
e2d681b3 44128 "optional" : 1,
4d47f125
TL
44129 "type" : "number"
44130 },
44131 "msg" : {
44132 "description" : "An optional message about the vdev.",
44133 "type" : "string"
44134 },
44135 "name" : {
e2d681b3 44136 "description" : "The name of the vdev or section.",
4d47f125
TL
44137 "type" : "string"
44138 },
44139 "read" : {
e2d681b3 44140 "optional" : 1,
4d47f125
TL
44141 "type" : "number"
44142 },
44143 "state" : {
44144 "description" : "The state of the vdev.",
e2d681b3 44145 "optional" : 1,
4d47f125
TL
44146 "type" : "string"
44147 },
44148 "write" : {
e2d681b3 44149 "optional" : 1,
4d47f125
TL
44150 "type" : "number"
44151 }
44152 },
44153 "type" : "object"
44154 },
44155 "type" : "array"
56122987 44156 },
e2d681b3
TL
44157 "errors" : {
44158 "description" : "Information about the errors on the zpool.",
44159 "type" : "string"
44160 },
4d47f125
TL
44161 "name" : {
44162 "description" : "The name of the zpool.",
44163 "type" : "string"
44660702 44164 },
4d47f125 44165 "scan" : {
e2d681b3 44166 "description" : "Information about the last/current scrub.",
d2656385 44167 "optional" : 1,
4d47f125 44168 "type" : "string"
44660702 44169 },
4d47f125
TL
44170 "state" : {
44171 "description" : "The state of the zpool.",
44172 "type" : "string"
44173 },
44174 "status" : {
44175 "description" : "Information about the state of the zpool.",
44660702 44176 "optional" : 1,
4d47f125 44177 "type" : "string"
56122987 44178 }
4d47f125
TL
44179 },
44180 "type" : "object"
44660702
DM
44181 }
44182 }
44183 },
44184 "leaf" : 1,
4d47f125
TL
44185 "path" : "/nodes/{node}/disks/zfs/{name}",
44186 "text" : "{name}"
44660702
DM
44187 }
44188 ],
44189 "info" : {
44190 "GET" : {
e9cd3bd4 44191 "allowtoken" : 1,
4d47f125 44192 "description" : "List Zpools.",
44660702 44193 "method" : "GET",
4d47f125 44194 "name" : "index",
44660702
DM
44195 "parameters" : {
44196 "additionalProperties" : 0,
44197 "properties" : {
44198 "node" : {
44199 "description" : "The cluster node name.",
44200 "format" : "pve-node",
013dc89f
DM
44201 "type" : "string",
44202 "typetext" : "<string>"
4d47f125
TL
44203 }
44204 }
44205 },
44206 "permissions" : {
44207 "check" : [
44208 "perm",
44209 "/",
44210 [
8dd66e12
TL
44211 "Sys.Audit"
44212 ]
4d47f125
TL
44213 ]
44214 },
44215 "protected" : 1,
44216 "proxyto" : "node",
44217 "returns" : {
44218 "items" : {
44219 "properties" : {
44220 "alloc" : {
44221 "description" : "",
44222 "type" : "integer"
44223 },
44224 "dedup" : {
44225 "description" : "",
44226 "type" : "number"
44227 },
44228 "frag" : {
44229 "description" : "",
44230 "type" : "integer"
44231 },
44232 "free" : {
44233 "description" : "",
44234 "type" : "integer"
44235 },
44236 "health" : {
44237 "description" : "",
44238 "type" : "string"
44239 },
44240 "name" : {
44241 "description" : "",
44242 "type" : "string"
44243 },
44244 "size" : {
44245 "description" : "",
44246 "type" : "integer"
44247 }
44248 },
44249 "type" : "object"
44250 },
44251 "links" : [
44252 {
44253 "href" : "{name}",
44254 "rel" : "child"
44255 }
44256 ],
44257 "type" : "array"
44258 }
44259 },
44260 "POST" : {
e9cd3bd4 44261 "allowtoken" : 1,
4d47f125
TL
44262 "description" : "Create a ZFS pool.",
44263 "method" : "POST",
44264 "name" : "create",
44265 "parameters" : {
44266 "additionalProperties" : 0,
44267 "properties" : {
44268 "add_storage" : {
44269 "default" : 0,
44270 "description" : "Configure storage using the zpool.",
44271 "optional" : 1,
44272 "type" : "boolean",
44273 "typetext" : "<boolean>"
44274 },
44275 "ashift" : {
44276 "default" : 12,
44277 "description" : "Pool sector size exponent.",
44278 "maximum" : 16,
44279 "minimum" : 9,
44280 "optional" : 1,
44281 "type" : "integer",
44282 "typetext" : "<integer> (9 - 16)"
44283 },
44284 "compression" : {
44285 "default" : "on",
44286 "description" : "The compression algorithm to use.",
44287 "enum" : [
44288 "on",
44289 "off",
44290 "gzip",
44291 "lz4",
44292 "lzjb",
5370fa8c
TL
44293 "zle",
44294 "zstd"
4d47f125
TL
44295 ],
44296 "optional" : 1,
44297 "type" : "string"
44298 },
44299 "devices" : {
44300 "description" : "The block devices you want to create the zpool on.",
44301 "format" : "string-list",
44302 "type" : "string",
44303 "typetext" : "<string>"
44660702 44304 },
81a3384d
TL
44305 "draid-config" : {
44306 "format" : {
44307 "data" : {
44308 "description" : "The number of data devices per redundancy group. (dRAID)",
44309 "minimum" : 1,
44310 "type" : "integer"
44311 },
44312 "spares" : {
44313 "description" : "Number of dRAID spares.",
44314 "minimum" : 0,
44315 "type" : "integer"
44316 }
44317 },
44318 "optional" : 1,
44319 "type" : "string",
44320 "typetext" : "data=<integer> ,spares=<integer>"
44321 },
4d47f125 44322 "name" : {
44660702
DM
44323 "description" : "The storage identifier.",
44324 "format" : "pve-storage-id",
013dc89f
DM
44325 "type" : "string",
44326 "typetext" : "<string>"
4d47f125
TL
44327 },
44328 "node" : {
44329 "description" : "The cluster node name.",
44330 "format" : "pve-node",
44331 "type" : "string",
44332 "typetext" : "<string>"
44333 },
44334 "raidlevel" : {
44335 "description" : "The RAID level to use.",
44336 "enum" : [
44337 "single",
44338 "mirror",
44339 "raid10",
44340 "raidz",
44341 "raidz2",
81a3384d
TL
44342 "raidz3",
44343 "draid",
44344 "draid2",
44345 "draid3"
4d47f125
TL
44346 ],
44347 "type" : "string"
56122987
DM
44348 }
44349 }
44660702
DM
44350 },
44351 "permissions" : {
44352 "check" : [
44353 "perm",
4d47f125 44354 "/",
44660702 44355 [
8dd66e12 44356 "Sys.Modify"
4d47f125 44357 ]
499c9b7f
TL
44358 ],
44359 "description" : "Requires additionally 'Datastore.Allocate' on /storage when setting 'add_storage'"
44660702 44360 },
4d47f125
TL
44361 "protected" : 1,
44362 "proxyto" : "node",
44660702 44363 "returns" : {
4d47f125 44364 "type" : "string"
56122987
DM
44365 }
44366 }
44660702
DM
44367 },
44368 "leaf" : 0,
4d47f125
TL
44369 "path" : "/nodes/{node}/disks/zfs",
44370 "text" : "zfs"
44371 },
2c0dde61
DM
44372 {
44373 "info" : {
44374 "GET" : {
e9cd3bd4 44375 "allowtoken" : 1,
2c0dde61
DM
44376 "description" : "List local disks.",
44377 "method" : "GET",
44378 "name" : "list",
44379 "parameters" : {
44380 "additionalProperties" : 0,
44381 "properties" : {
d2656385
TL
44382 "include-partitions" : {
44383 "default" : 0,
44384 "description" : "Also include partitions.",
44385 "optional" : 1,
44386 "type" : "boolean",
44387 "typetext" : "<boolean>"
44388 },
2c0dde61
DM
44389 "node" : {
44390 "description" : "The cluster node name.",
44391 "format" : "pve-node",
013dc89f
DM
44392 "type" : "string",
44393 "typetext" : "<string>"
4d47f125
TL
44394 },
44395 "skipsmart" : {
44396 "default" : 0,
44397 "description" : "Skip smart checks.",
44398 "optional" : 1,
44399 "type" : "boolean",
44400 "typetext" : "<boolean>"
44401 },
44402 "type" : {
44403 "description" : "Only list specific types of disks.",
44404 "enum" : [
44405 "unused",
44406 "journal_disks"
44407 ],
44408 "optional" : 1,
44409 "type" : "string"
2c0dde61
DM
44410 }
44411 }
44412 },
44413 "permissions" : {
44414 "check" : [
d2656385 44415 "or",
2c0dde61 44416 [
d2656385
TL
44417 "perm",
44418 "/",
44419 [
8dd66e12
TL
44420 "Sys.Audit"
44421 ]
2c0dde61 44422 ],
d2656385
TL
44423 [
44424 "perm",
44425 "/nodes/{node}",
44426 [
8dd66e12
TL
44427 "Sys.Audit"
44428 ]
d2656385 44429 ]
2c0dde61
DM
44430 ]
44431 },
44432 "protected" : 1,
44433 "proxyto" : "node",
44434 "returns" : {
44435 "items" : {
44436 "properties" : {
44437 "devpath" : {
44438 "description" : "The device path",
44439 "type" : "string"
44440 },
44441 "gpt" : {
44442 "type" : "boolean"
44443 },
44444 "health" : {
44445 "optional" : 1,
44446 "type" : "string"
44447 },
44448 "model" : {
44449 "optional" : 1,
44450 "type" : "string"
44451 },
de786b48
TL
44452 "mounted" : {
44453 "type" : "boolean"
44454 },
2c0dde61
DM
44455 "osdid" : {
44456 "type" : "integer"
44457 },
bd92b745
TL
44458 "osdid-list" : {
44459 "items" : {
44460 "type" : "integer"
44461 },
44462 "type" : "array"
44463 },
d2656385
TL
44464 "parent" : {
44465 "description" : "For partitions only. The device path of the disk the partition resides on.",
44466 "optional" : 1,
44467 "type" : "string"
44468 },
2c0dde61
DM
44469 "serial" : {
44470 "optional" : 1,
44471 "type" : "string"
44472 },
44473 "size" : {
44474 "type" : "integer"
44475 },
44476 "used" : {
44477 "optional" : 1,
44478 "type" : "string"
44479 },
44480 "vendor" : {
44481 "optional" : 1,
44482 "type" : "string"
44483 },
44484 "wwn" : {
44485 "optional" : 1,
44486 "type" : "string"
44487 }
44488 },
44489 "type" : "object"
44490 },
44491 "type" : "array"
44492 }
44493 }
44494 },
44495 "leaf" : 1,
44496 "path" : "/nodes/{node}/disks/list",
44497 "text" : "list"
44498 },
44499 {
44500 "info" : {
44501 "GET" : {
e9cd3bd4 44502 "allowtoken" : 1,
2c0dde61
DM
44503 "description" : "Get SMART Health of a disk.",
44504 "method" : "GET",
44505 "name" : "smart",
44506 "parameters" : {
44507 "additionalProperties" : 0,
44508 "properties" : {
44509 "disk" : {
44510 "description" : "Block device name",
44511 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
44512 "type" : "string"
44513 },
44514 "healthonly" : {
44515 "description" : "If true returns only the health status",
44516 "optional" : 1,
013dc89f
DM
44517 "type" : "boolean",
44518 "typetext" : "<boolean>"
2c0dde61
DM
44519 },
44520 "node" : {
44521 "description" : "The cluster node name.",
44522 "format" : "pve-node",
013dc89f
DM
44523 "type" : "string",
44524 "typetext" : "<string>"
2c0dde61
DM
44525 }
44526 }
44527 },
44528 "permissions" : {
44529 "check" : [
44530 "perm",
44531 "/",
44532 [
8dd66e12
TL
44533 "Sys.Audit"
44534 ]
2c0dde61
DM
44535 ]
44536 },
44537 "protected" : 1,
44538 "proxyto" : "node",
44539 "returns" : {
de0983cb
DM
44540 "properties" : {
44541 "attributes" : {
44542 "optional" : 1,
44543 "type" : "array"
44544 },
44545 "health" : {
44546 "type" : "string"
44547 },
44548 "text" : {
44549 "optional" : 1,
44550 "type" : "string"
44551 },
44552 "type" : {
44553 "optional" : 1,
44554 "type" : "string"
44555 }
44556 },
2c0dde61
DM
44557 "type" : "object"
44558 }
44559 }
44560 },
44561 "leaf" : 1,
44562 "path" : "/nodes/{node}/disks/smart",
44563 "text" : "smart"
44564 },
44565 {
44566 "info" : {
44567 "POST" : {
e9cd3bd4 44568 "allowtoken" : 1,
2c0dde61
DM
44569 "description" : "Initialize Disk with GPT",
44570 "method" : "POST",
44571 "name" : "initgpt",
44572 "parameters" : {
44573 "additionalProperties" : 0,
44574 "properties" : {
44575 "disk" : {
44576 "description" : "Block device name",
44577 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
44578 "type" : "string"
44579 },
44580 "node" : {
44581 "description" : "The cluster node name.",
44582 "format" : "pve-node",
013dc89f
DM
44583 "type" : "string",
44584 "typetext" : "<string>"
2c0dde61
DM
44585 },
44586 "uuid" : {
44587 "description" : "UUID for the GPT table",
44588 "maxLength" : 36,
44589 "optional" : 1,
44590 "pattern" : "[a-fA-F0-9\\-]+",
44591 "type" : "string"
44592 }
44593 }
44594 },
44595 "permissions" : {
44596 "check" : [
44597 "perm",
44598 "/",
44599 [
44600 "Sys.Modify"
44601 ]
44602 ]
44603 },
44604 "protected" : 1,
44605 "proxyto" : "node",
44606 "returns" : {
44607 "type" : "string"
44608 }
44609 }
44610 },
44611 "leaf" : 1,
44612 "path" : "/nodes/{node}/disks/initgpt",
44613 "text" : "initgpt"
0695fdaf
TL
44614 },
44615 {
44616 "info" : {
44617 "PUT" : {
44618 "allowtoken" : 1,
44619 "description" : "Wipe a disk or partition.",
44620 "method" : "PUT",
44621 "name" : "wipe_disk",
44622 "parameters" : {
44623 "additionalProperties" : 0,
44624 "properties" : {
44625 "disk" : {
44626 "description" : "Block device name",
44627 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
44628 "type" : "string"
44629 },
44630 "node" : {
44631 "description" : "The cluster node name.",
44632 "format" : "pve-node",
44633 "type" : "string",
44634 "typetext" : "<string>"
44635 }
44636 }
44637 },
44638 "protected" : 1,
44639 "proxyto" : "node",
44640 "returns" : {
44641 "type" : "string"
44642 }
44643 }
44644 },
44645 "leaf" : 1,
44646 "path" : "/nodes/{node}/disks/wipedisk",
44647 "text" : "wipedisk"
2c0dde61
DM
44648 }
44649 ],
44650 "info" : {
44651 "GET" : {
e9cd3bd4 44652 "allowtoken" : 1,
2c0dde61
DM
44653 "description" : "Node index.",
44654 "method" : "GET",
44655 "name" : "index",
44656 "parameters" : {
44657 "additionalProperties" : 0,
44658 "properties" : {
44659 "node" : {
44660 "description" : "The cluster node name.",
44661 "format" : "pve-node",
013dc89f
DM
44662 "type" : "string",
44663 "typetext" : "<string>"
2c0dde61
DM
44664 }
44665 }
44666 },
44667 "permissions" : {
44668 "user" : "all"
44669 },
44670 "proxyto" : "node",
44671 "returns" : {
44672 "items" : {
44673 "properties" : {},
44674 "type" : "object"
44675 },
44676 "links" : [
44677 {
44678 "href" : "{name}",
44679 "rel" : "child"
44680 }
44681 ],
44682 "type" : "array"
44683 }
44684 }
44685 },
44686 "leaf" : 0,
44687 "path" : "/nodes/{node}/disks",
44688 "text" : "disks"
44689 },
56122987 44690 {
56122987
DM
44691 "children" : [
44692 {
44693 "info" : {
44660702 44694 "GET" : {
e9cd3bd4 44695 "allowtoken" : 1,
44660702
DM
44696 "description" : "List available updates.",
44697 "method" : "GET",
44698 "name" : "list_updates",
44699 "parameters" : {
44700 "additionalProperties" : 0,
44701 "properties" : {
44702 "node" : {
44703 "description" : "The cluster node name.",
44704 "format" : "pve-node",
013dc89f
DM
44705 "type" : "string",
44706 "typetext" : "<string>"
44660702
DM
44707 }
44708 }
7aacca6f
DM
44709 },
44710 "permissions" : {
44711 "check" : [
44712 "perm",
44713 "/nodes/{node}",
44714 [
44715 "Sys.Modify"
44716 ]
44717 ]
44718 },
44660702 44719 "protected" : 1,
56122987 44720 "proxyto" : "node",
44660702
DM
44721 "returns" : {
44722 "items" : {
44723 "properties" : {},
44724 "type" : "object"
44725 },
44726 "type" : "array"
44727 }
44728 },
44729 "POST" : {
e9cd3bd4 44730 "allowtoken" : 1,
44660702 44731 "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
7aacca6f
DM
44732 "method" : "POST",
44733 "name" : "update_database",
56122987
DM
44734 "parameters" : {
44735 "additionalProperties" : 0,
44736 "properties" : {
44660702
DM
44737 "node" : {
44738 "description" : "The cluster node name.",
44739 "format" : "pve-node",
013dc89f
DM
44740 "type" : "string",
44741 "typetext" : "<string>"
44660702 44742 },
56122987 44743 "notify" : {
56122987 44744 "default" : 0,
44660702
DM
44745 "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
44746 "optional" : 1,
013dc89f
DM
44747 "type" : "boolean",
44748 "typetext" : "<boolean>"
56122987
DM
44749 },
44750 "quiet" : {
56122987 44751 "default" : 0,
44660702 44752 "description" : "Only produces output suitable for logging, omitting progress indicators.",
56122987 44753 "optional" : 1,
013dc89f
DM
44754 "type" : "boolean",
44755 "typetext" : "<boolean>"
56122987 44756 }
7aacca6f
DM
44757 }
44758 },
44759 "permissions" : {
44760 "check" : [
44761 "perm",
44762 "/nodes/{node}",
44763 [
44764 "Sys.Modify"
44765 ]
82551b2b
TL
44766 ],
44767 "description" : "If 'notify: target-package-updates' is set, then the user must have the 'Mapping.Use' permission on '/mapping/notification/<target>'"
7aacca6f 44768 },
44660702
DM
44769 "protected" : 1,
44770 "proxyto" : "node",
44771 "returns" : {
44772 "type" : "string"
44773 }
56122987
DM
44774 }
44775 },
7aacca6f 44776 "leaf" : 1,
44660702
DM
44777 "path" : "/nodes/{node}/apt/update",
44778 "text" : "update"
56122987
DM
44779 },
44780 {
56122987
DM
44781 "info" : {
44782 "GET" : {
e9cd3bd4 44783 "allowtoken" : 1,
44660702 44784 "description" : "Get package changelogs.",
56122987 44785 "method" : "GET",
7aacca6f 44786 "name" : "changelog",
56122987 44787 "parameters" : {
44660702 44788 "additionalProperties" : 0,
56122987
DM
44789 "properties" : {
44790 "name" : {
44791 "description" : "Package name.",
013dc89f
DM
44792 "type" : "string",
44793 "typetext" : "<string>"
56122987 44794 },
44660702
DM
44795 "node" : {
44796 "description" : "The cluster node name.",
44797 "format" : "pve-node",
013dc89f
DM
44798 "type" : "string",
44799 "typetext" : "<string>"
44660702 44800 },
56122987 44801 "version" : {
7aacca6f 44802 "description" : "Package version.",
44660702 44803 "optional" : 1,
013dc89f
DM
44804 "type" : "string",
44805 "typetext" : "<string>"
56122987 44806 }
44660702 44807 }
56122987 44808 },
44660702
DM
44809 "permissions" : {
44810 "check" : [
44811 "perm",
44812 "/nodes/{node}",
44813 [
44814 "Sys.Modify"
44815 ]
44816 ]
44817 },
44818 "proxyto" : "node",
44819 "returns" : {
44820 "type" : "string"
44821 }
56122987
DM
44822 }
44823 },
44660702
DM
44824 "leaf" : 1,
44825 "path" : "/nodes/{node}/apt/changelog",
7aacca6f 44826 "text" : "changelog"
56122987 44827 },
34f3e481
TL
44828 {
44829 "info" : {
44830 "GET" : {
44831 "allowtoken" : 1,
44832 "description" : "Get APT repository information.",
44833 "method" : "GET",
44834 "name" : "repositories",
44835 "parameters" : {
44836 "additionalProperties" : 0,
44837 "properties" : {
44838 "node" : {
44839 "description" : "The cluster node name.",
44840 "format" : "pve-node",
44841 "type" : "string",
44842 "typetext" : "<string>"
44843 }
44844 }
44845 },
44846 "permissions" : {
44847 "check" : [
44848 "perm",
44849 "/nodes/{node}",
44850 [
44851 "Sys.Audit"
44852 ]
44853 ]
44854 },
44855 "proxyto" : "node",
44856 "returns" : {
44857 "description" : "Result from parsing the APT repository files in /etc/apt/.",
44858 "properties" : {
44859 "digest" : {
44860 "description" : "Common digest of all files.",
44861 "type" : "string"
44862 },
44863 "errors" : {
44864 "description" : "List of problematic repository files.",
44865 "items" : {
44866 "properties" : {
44867 "error" : {
44868 "description" : "The error message",
44869 "type" : "string"
44870 },
44871 "path" : {
44872 "description" : "Path to the problematic file.",
44873 "type" : "string"
44874 }
44875 },
44876 "type" : "object"
44877 },
44878 "type" : "array"
44879 },
44880 "files" : {
44881 "description" : "List of parsed repository files.",
44882 "items" : {
44883 "properties" : {
44884 "digest" : {
44885 "description" : "Digest of the file as bytes.",
44886 "items" : {
44887 "type" : "integer"
44888 },
44889 "type" : "array"
44890 },
44891 "file-type" : {
44892 "description" : "Format of the file.",
44893 "enum" : [
44894 "list",
44895 "sources"
44896 ],
44897 "type" : "string"
44898 },
44899 "path" : {
44900 "description" : "Path to the problematic file.",
44901 "type" : "string"
44902 },
44903 "repositories" : {
44904 "description" : "The parsed repositories.",
44905 "items" : {
44906 "properties" : {
44907 "Comment" : {
44908 "description" : "Associated comment",
44909 "optional" : 1,
44910 "type" : "string"
44911 },
44912 "Components" : {
44913 "description" : "List of repository components",
44914 "items" : {
44915 "type" : "string"
44916 },
44917 "optional" : 1,
44918 "type" : "array"
44919 },
44920 "Enabled" : {
44921 "description" : "Whether the repository is enabled or not",
44922 "type" : "boolean"
44923 },
44924 "FileType" : {
44925 "description" : "Format of the defining file.",
44926 "enum" : [
44927 "list",
44928 "sources"
44929 ],
44930 "type" : "string"
44931 },
44932 "Options" : {
44933 "description" : "Additional options",
44934 "items" : {
44935 "properties" : {
44936 "Key" : {
44937 "type" : "string"
44938 },
44939 "Values" : {
44940 "items" : {
44941 "type" : "string"
44942 },
44943 "type" : "array"
44944 }
44945 },
44946 "type" : "object"
44947 },
44948 "optional" : 1,
44949 "type" : "array"
44950 },
44951 "Suites" : {
44952 "description" : "List of package distribuitions",
44953 "items" : {
44954 "type" : "string"
44955 },
44956 "type" : "array"
44957 },
44958 "Types" : {
44959 "description" : "List of package types.",
44960 "items" : {
44961 "enum" : [
44962 "deb",
44963 "deb-src"
44964 ],
44965 "type" : "string"
44966 },
44967 "type" : "array"
44968 },
44969 "URIs" : {
44970 "description" : "List of repository URIs.",
44971 "items" : {
44972 "type" : "string"
44973 },
44974 "type" : "array"
44975 }
44976 },
44977 "type" : "object"
44978 },
44979 "type" : "array"
44980 }
44981 },
44982 "type" : "object"
44983 },
44984 "type" : "array"
44985 },
44986 "infos" : {
44987 "description" : "Additional information/warnings for APT repositories.",
44988 "items" : {
44989 "properties" : {
44990 "index" : {
44991 "description" : "Index of the associated repository within the file.",
44992 "type" : "string"
44993 },
44994 "kind" : {
44995 "description" : "Kind of the information (e.g. warning).",
44996 "type" : "string"
44997 },
44998 "message" : {
44999 "description" : "Information message.",
45000 "type" : "string"
45001 },
45002 "path" : {
45003 "description" : "Path to the associated file.",
45004 "type" : "string"
45005 },
45006 "property" : {
45007 "description" : "Property from which the info originates.",
45008 "optional" : 1,
45009 "type" : "string"
45010 }
45011 },
45012 "type" : "object"
45013 },
45014 "type" : "array"
45015 },
45016 "standard-repos" : {
45017 "description" : "List of standard repositories and their configuration status",
45018 "items" : {
45019 "properties" : {
45020 "handle" : {
45021 "description" : "Handle to identify the repository.",
45022 "type" : "string"
45023 },
45024 "name" : {
45025 "description" : "Full name of the repository.",
45026 "type" : "string"
45027 },
45028 "status" : {
45029 "description" : "Indicating enabled/disabled status, if the repository is configured.",
45030 "optional" : 1,
45031 "type" : "boolean"
45032 }
45033 },
45034 "type" : "object"
45035 },
45036 "type" : "array"
45037 }
45038 },
45039 "type" : "object"
45040 }
45041 },
45042 "POST" : {
45043 "allowtoken" : 1,
45044 "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
45045 "method" : "POST",
45046 "name" : "change_repository",
45047 "parameters" : {
45048 "additionalProperties" : 0,
45049 "properties" : {
45050 "digest" : {
45051 "description" : "Digest to detect modifications.",
45052 "maxLength" : 80,
45053 "optional" : 1,
45054 "type" : "string",
45055 "typetext" : "<string>"
45056 },
45057 "enabled" : {
45058 "description" : "Whether the repository should be enabled or not.",
45059 "optional" : 1,
45060 "type" : "boolean",
45061 "typetext" : "<boolean>"
45062 },
45063 "index" : {
45064 "description" : "Index within the file (starting from 0).",
45065 "type" : "integer",
45066 "typetext" : "<integer>"
45067 },
45068 "node" : {
45069 "description" : "The cluster node name.",
45070 "format" : "pve-node",
45071 "type" : "string",
45072 "typetext" : "<string>"
45073 },
45074 "path" : {
45075 "description" : "Path to the containing file.",
45076 "type" : "string",
45077 "typetext" : "<string>"
45078 }
45079 }
45080 },
45081 "permissions" : {
45082 "check" : [
45083 "perm",
45084 "/nodes/{node}",
45085 [
45086 "Sys.Modify"
45087 ]
45088 ]
45089 },
45090 "protected" : 1,
45091 "proxyto" : "node",
45092 "returns" : {
45093 "type" : "null"
45094 }
45095 },
45096 "PUT" : {
45097 "allowtoken" : 1,
45098 "description" : "Add a standard repository to the configuration",
45099 "method" : "PUT",
45100 "name" : "add_repository",
45101 "parameters" : {
45102 "additionalProperties" : 0,
45103 "properties" : {
45104 "digest" : {
45105 "description" : "Digest to detect modifications.",
45106 "maxLength" : 80,
45107 "optional" : 1,
45108 "type" : "string",
45109 "typetext" : "<string>"
45110 },
45111 "handle" : {
45112 "description" : "Handle that identifies a repository.",
45113 "type" : "string",
45114 "typetext" : "<string>"
45115 },
45116 "node" : {
45117 "description" : "The cluster node name.",
45118 "format" : "pve-node",
45119 "type" : "string",
45120 "typetext" : "<string>"
45121 }
45122 }
45123 },
45124 "permissions" : {
45125 "check" : [
45126 "perm",
45127 "/nodes/{node}",
45128 [
45129 "Sys.Modify"
45130 ]
45131 ]
45132 },
45133 "protected" : 1,
45134 "proxyto" : "node",
45135 "returns" : {
45136 "type" : "null"
45137 }
45138 }
45139 },
45140 "leaf" : 1,
45141 "path" : "/nodes/{node}/apt/repositories",
45142 "text" : "repositories"
45143 },
56122987 45144 {
56122987
DM
45145 "info" : {
45146 "GET" : {
e9cd3bd4 45147 "allowtoken" : 1,
44660702
DM
45148 "description" : "Get package information for important Proxmox packages.",
45149 "method" : "GET",
7aacca6f
DM
45150 "name" : "versions",
45151 "parameters" : {
44660702 45152 "additionalProperties" : 0,
7aacca6f
DM
45153 "properties" : {
45154 "node" : {
44660702 45155 "description" : "The cluster node name.",
7aacca6f 45156 "format" : "pve-node",
013dc89f
DM
45157 "type" : "string",
45158 "typetext" : "<string>"
7aacca6f 45159 }
44660702 45160 }
7aacca6f 45161 },
56122987
DM
45162 "permissions" : {
45163 "check" : [
45164 "perm",
45165 "/nodes/{node}",
45166 [
45167 "Sys.Audit"
45168 ]
45169 ]
45170 },
7aacca6f 45171 "proxyto" : "node",
56122987
DM
45172 "returns" : {
45173 "items" : {
7aacca6f
DM
45174 "properties" : {},
45175 "type" : "object"
44660702
DM
45176 },
45177 "type" : "array"
56122987
DM
45178 }
45179 }
45180 },
44660702 45181 "leaf" : 1,
7aacca6f 45182 "path" : "/nodes/{node}/apt/versions",
44660702 45183 "text" : "versions"
56122987
DM
45184 }
45185 ],
56122987
DM
45186 "info" : {
45187 "GET" : {
e9cd3bd4 45188 "allowtoken" : 1,
44660702 45189 "description" : "Directory index for apt (Advanced Package Tool).",
7aacca6f 45190 "method" : "GET",
44660702 45191 "name" : "index",
7aacca6f
DM
45192 "parameters" : {
45193 "additionalProperties" : 0,
45194 "properties" : {
45195 "node" : {
44660702 45196 "description" : "The cluster node name.",
7aacca6f 45197 "format" : "pve-node",
013dc89f
DM
45198 "type" : "string",
45199 "typetext" : "<string>"
7aacca6f
DM
45200 }
45201 }
45202 },
7aacca6f
DM
45203 "permissions" : {
45204 "user" : "all"
45205 },
44660702
DM
45206 "returns" : {
45207 "items" : {
45208 "properties" : {
45209 "id" : {
45210 "type" : "string"
45211 }
45212 },
45213 "type" : "object"
45214 },
45215 "links" : [
45216 {
45217 "href" : "{id}",
45218 "rel" : "child"
45219 }
45220 ],
45221 "type" : "array"
45222 }
56122987 45223 }
7aacca6f 45224 },
44660702 45225 "leaf" : 0,
7aacca6f 45226 "path" : "/nodes/{node}/apt",
44660702 45227 "text" : "apt"
56122987
DM
45228 },
45229 {
56122987
DM
45230 "children" : [
45231 {
45232 "children" : [
45233 {
56122987
DM
45234 "info" : {
45235 "DELETE" : {
e9cd3bd4 45236 "allowtoken" : 1,
44660702 45237 "description" : "Delete rule.",
7aacca6f 45238 "method" : "DELETE",
44660702 45239 "name" : "delete_rule",
56122987
DM
45240 "parameters" : {
45241 "additionalProperties" : 0,
45242 "properties" : {
56122987 45243 "digest" : {
82551b2b
TL
45244 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
45245 "maxLength" : 64,
56122987 45246 "optional" : 1,
013dc89f
DM
45247 "type" : "string",
45248 "typetext" : "<string>"
56122987 45249 },
44660702
DM
45250 "node" : {
45251 "description" : "The cluster node name.",
45252 "format" : "pve-node",
013dc89f
DM
45253 "type" : "string",
45254 "typetext" : "<string>"
44660702 45255 },
7aacca6f 45256 "pos" : {
7aacca6f 45257 "description" : "Update rule at position <pos>.",
44660702
DM
45258 "minimum" : 0,
45259 "optional" : 1,
4bd7df8b 45260 "type" : "integer",
013dc89f 45261 "typetext" : "<integer> (0 - N)"
56122987
DM
45262 }
45263 }
45264 },
44660702
DM
45265 "permissions" : {
45266 "check" : [
45267 "perm",
45268 "/nodes/{node}",
45269 [
45270 "Sys.Modify"
45271 ]
45272 ]
45273 },
45274 "protected" : 1,
45275 "proxyto" : "node",
56122987
DM
45276 "returns" : {
45277 "type" : "null"
44660702
DM
45278 }
45279 },
45280 "GET" : {
e9cd3bd4 45281 "allowtoken" : 1,
44660702
DM
45282 "description" : "Get single rule data.",
45283 "method" : "GET",
45284 "name" : "get_rule",
45285 "parameters" : {
45286 "additionalProperties" : 0,
45287 "properties" : {
45288 "node" : {
45289 "description" : "The cluster node name.",
45290 "format" : "pve-node",
013dc89f
DM
45291 "type" : "string",
45292 "typetext" : "<string>"
44660702
DM
45293 },
45294 "pos" : {
45295 "description" : "Update rule at position <pos>.",
45296 "minimum" : 0,
45297 "optional" : 1,
4bd7df8b 45298 "type" : "integer",
013dc89f 45299 "typetext" : "<integer> (0 - N)"
44660702
DM
45300 }
45301 }
56122987 45302 },
56122987
DM
45303 "permissions" : {
45304 "check" : [
45305 "perm",
45306 "/nodes/{node}",
45307 [
44660702 45308 "Sys.Audit"
56122987
DM
45309 ]
45310 ]
44660702
DM
45311 },
45312 "proxyto" : "node",
45313 "returns" : {
45314 "properties" : {
e2d681b3
TL
45315 "action" : {
45316 "type" : "string"
45317 },
45318 "comment" : {
45319 "optional" : 1,
45320 "type" : "string"
45321 },
45322 "dest" : {
45323 "optional" : 1,
45324 "type" : "string"
45325 },
45326 "dport" : {
45327 "optional" : 1,
45328 "type" : "string"
45329 },
45330 "enable" : {
45331 "optional" : 1,
45332 "type" : "integer"
45333 },
4772952b
TL
45334 "icmp-type" : {
45335 "optional" : 1,
45336 "type" : "string"
45337 },
e2d681b3
TL
45338 "iface" : {
45339 "optional" : 1,
45340 "type" : "string"
45341 },
45342 "ipversion" : {
45343 "optional" : 1,
45344 "type" : "integer"
45345 },
95895385
TL
45346 "log" : {
45347 "description" : "Log level for firewall rule",
45348 "enum" : [
45349 "emerg",
45350 "alert",
45351 "crit",
45352 "err",
45353 "warning",
45354 "notice",
45355 "info",
45356 "debug",
45357 "nolog"
45358 ],
45359 "optional" : 1,
45360 "type" : "string"
45361 },
e2d681b3
TL
45362 "macro" : {
45363 "optional" : 1,
5f26e15b 45364 "type" : "string"
e2d681b3 45365 },
44660702
DM
45366 "pos" : {
45367 "type" : "integer"
e2d681b3
TL
45368 },
45369 "proto" : {
45370 "optional" : 1,
45371 "type" : "string"
45372 },
45373 "source" : {
45374 "optional" : 1,
45375 "type" : "string"
45376 },
45377 "sport" : {
45378 "optional" : 1,
45379 "type" : "string"
45380 },
45381 "type" : {
45382 "type" : "string"
44660702
DM
45383 }
45384 },
45385 "type" : "object"
7aacca6f 45386 }
56122987
DM
45387 },
45388 "PUT" : {
e9cd3bd4 45389 "allowtoken" : 1,
44660702
DM
45390 "description" : "Modify rule data.",
45391 "method" : "PUT",
56122987 45392 "name" : "update_rule",
56122987 45393 "parameters" : {
44660702 45394 "additionalProperties" : 0,
56122987 45395 "properties" : {
44660702
DM
45396 "action" : {
45397 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
45398 "maxLength" : 20,
45399 "minLength" : 2,
56122987 45400 "optional" : 1,
44660702
DM
45401 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
45402 "type" : "string"
56122987 45403 },
7aacca6f 45404 "comment" : {
e94f0d56 45405 "description" : "Descriptive comment.",
56122987 45406 "optional" : 1,
013dc89f
DM
45407 "type" : "string",
45408 "typetext" : "<string>"
56122987 45409 },
44660702
DM
45410 "delete" : {
45411 "description" : "A list of settings you want to delete.",
45412 "format" : "pve-configid-list",
56122987 45413 "optional" : 1,
013dc89f
DM
45414 "type" : "string",
45415 "typetext" : "<string>"
56122987 45416 },
44660702
DM
45417 "dest" : {
45418 "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.",
45419 "format" : "pve-fw-addr-spec",
0695fdaf 45420 "maxLength" : 512,
56122987 45421 "optional" : 1,
013dc89f
DM
45422 "type" : "string",
45423 "typetext" : "<string>"
56122987 45424 },
44660702 45425 "digest" : {
82551b2b
TL
45426 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
45427 "maxLength" : 64,
56122987 45428 "optional" : 1,
013dc89f
DM
45429 "type" : "string",
45430 "typetext" : "<string>"
56122987 45431 },
7aacca6f 45432 "dport" : {
7aacca6f 45433 "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
45434 "format" : "pve-fw-dport-spec",
45435 "optional" : 1,
013dc89f
DM
45436 "type" : "string",
45437 "typetext" : "<string>"
7aacca6f 45438 },
44660702 45439 "enable" : {
e94f0d56 45440 "description" : "Flag to enable/disable a rule.",
44660702 45441 "minimum" : 0,
56122987 45442 "optional" : 1,
4bd7df8b 45443 "type" : "integer",
013dc89f 45444 "typetext" : "<integer> (0 - N)"
56122987 45445 },
4772952b 45446 "icmp-type" : {
287a95cf 45447 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
45448 "format" : "pve-fw-icmp-type-spec",
45449 "optional" : 1,
45450 "type" : "string",
45451 "typetext" : "<string>"
45452 },
7aacca6f 45453 "iface" : {
44660702 45454 "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 45455 "format" : "pve-iface",
44660702 45456 "maxLength" : 20,
56122987 45457 "minLength" : 2,
44660702 45458 "optional" : 1,
013dc89f
DM
45459 "type" : "string",
45460 "typetext" : "<string>"
56122987 45461 },
95895385
TL
45462 "log" : {
45463 "description" : "Log level for firewall rule.",
45464 "enum" : [
45465 "emerg",
45466 "alert",
45467 "crit",
45468 "err",
45469 "warning",
45470 "notice",
45471 "info",
45472 "debug",
45473 "nolog"
45474 ],
45475 "optional" : 1,
45476 "type" : "string"
45477 },
44660702 45478 "macro" : {
e94f0d56 45479 "description" : "Use predefined standard macro.",
44660702
DM
45480 "maxLength" : 128,
45481 "optional" : 1,
013dc89f
DM
45482 "type" : "string",
45483 "typetext" : "<string>"
44660702
DM
45484 },
45485 "moveto" : {
45486 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
45487 "minimum" : 0,
7aacca6f 45488 "optional" : 1,
4bd7df8b 45489 "type" : "integer",
013dc89f 45490 "typetext" : "<integer> (0 - N)"
44660702
DM
45491 },
45492 "node" : {
45493 "description" : "The cluster node name.",
45494 "format" : "pve-node",
013dc89f
DM
45495 "type" : "string",
45496 "typetext" : "<string>"
56122987
DM
45497 },
45498 "pos" : {
44660702 45499 "description" : "Update rule at position <pos>.",
7aacca6f 45500 "minimum" : 0,
7aacca6f 45501 "optional" : 1,
4bd7df8b 45502 "type" : "integer",
013dc89f 45503 "typetext" : "<integer> (0 - N)"
7aacca6f 45504 },
44660702
DM
45505 "proto" : {
45506 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
45507 "format" : "pve-fw-protocol-spec",
7aacca6f 45508 "optional" : 1,
013dc89f
DM
45509 "type" : "string",
45510 "typetext" : "<string>"
7aacca6f 45511 },
44660702
DM
45512 "source" : {
45513 "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.",
45514 "format" : "pve-fw-addr-spec",
0695fdaf 45515 "maxLength" : 512,
56122987 45516 "optional" : 1,
013dc89f
DM
45517 "type" : "string",
45518 "typetext" : "<string>"
7aacca6f 45519 },
44660702
DM
45520 "sport" : {
45521 "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.",
45522 "format" : "pve-fw-sport-spec",
45523 "optional" : 1,
013dc89f
DM
45524 "type" : "string",
45525 "typetext" : "<string>"
44660702
DM
45526 },
45527 "type" : {
e94f0d56 45528 "description" : "Rule type.",
44660702
DM
45529 "enum" : [
45530 "in",
45531 "out",
45532 "group"
45533 ],
45534 "optional" : 1,
45535 "type" : "string"
56122987 45536 }
44660702 45537 }
56122987 45538 },
56122987
DM
45539 "permissions" : {
45540 "check" : [
45541 "perm",
45542 "/nodes/{node}",
45543 [
45544 "Sys.Modify"
45545 ]
45546 ]
7aacca6f 45547 },
44660702 45548 "protected" : 1,
7aacca6f 45549 "proxyto" : "node",
7aacca6f
DM
45550 "returns" : {
45551 "type" : "null"
56122987
DM
45552 }
45553 }
7aacca6f 45554 },
44660702 45555 "leaf" : 1,
7aacca6f 45556 "path" : "/nodes/{node}/firewall/rules/{pos}",
44660702 45557 "text" : "{pos}"
56122987
DM
45558 }
45559 ],
56122987
DM
45560 "info" : {
45561 "GET" : {
e9cd3bd4 45562 "allowtoken" : 1,
44660702
DM
45563 "description" : "List rules.",
45564 "method" : "GET",
45565 "name" : "get_rules",
45566 "parameters" : {
45567 "additionalProperties" : 0,
45568 "properties" : {
45569 "node" : {
45570 "description" : "The cluster node name.",
45571 "format" : "pve-node",
013dc89f
DM
45572 "type" : "string",
45573 "typetext" : "<string>"
44660702
DM
45574 }
45575 }
45576 },
45577 "permissions" : {
45578 "check" : [
45579 "perm",
45580 "/nodes/{node}",
45581 [
45582 "Sys.Audit"
45583 ]
45584 ]
45585 },
45586 "proxyto" : "node",
56122987 45587 "returns" : {
56122987
DM
45588 "items" : {
45589 "properties" : {
45590 "pos" : {
45591 "type" : "integer"
45592 }
44660702
DM
45593 },
45594 "type" : "object"
56122987 45595 },
7aacca6f
DM
45596 "links" : [
45597 {
45598 "href" : "{pos}",
45599 "rel" : "child"
45600 }
45601 ],
45602 "type" : "array"
44660702 45603 }
56122987
DM
45604 },
45605 "POST" : {
e9cd3bd4 45606 "allowtoken" : 1,
44660702 45607 "description" : "Create new rule.",
7aacca6f
DM
45608 "method" : "POST",
45609 "name" : "create_rule",
56122987 45610 "parameters" : {
44660702 45611 "additionalProperties" : 0,
56122987 45612 "properties" : {
7aacca6f 45613 "action" : {
7aacca6f 45614 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
44660702 45615 "maxLength" : 20,
7aacca6f
DM
45616 "minLength" : 2,
45617 "optional" : 0,
44660702
DM
45618 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
45619 "type" : "string"
56122987 45620 },
44660702 45621 "comment" : {
e94f0d56 45622 "description" : "Descriptive comment.",
56122987 45623 "optional" : 1,
013dc89f
DM
45624 "type" : "string",
45625 "typetext" : "<string>"
56122987 45626 },
44660702
DM
45627 "dest" : {
45628 "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.",
45629 "format" : "pve-fw-addr-spec",
0695fdaf 45630 "maxLength" : 512,
7aacca6f 45631 "optional" : 1,
013dc89f
DM
45632 "type" : "string",
45633 "typetext" : "<string>"
56122987 45634 },
44660702 45635 "digest" : {
82551b2b
TL
45636 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
45637 "maxLength" : 64,
44660702 45638 "optional" : 1,
013dc89f
DM
45639 "type" : "string",
45640 "typetext" : "<string>"
56122987 45641 },
44660702
DM
45642 "dport" : {
45643 "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.",
45644 "format" : "pve-fw-dport-spec",
7aacca6f 45645 "optional" : 1,
013dc89f
DM
45646 "type" : "string",
45647 "typetext" : "<string>"
56122987 45648 },
44660702 45649 "enable" : {
e94f0d56 45650 "description" : "Flag to enable/disable a rule.",
44660702
DM
45651 "minimum" : 0,
45652 "optional" : 1,
4bd7df8b 45653 "type" : "integer",
013dc89f 45654 "typetext" : "<integer> (0 - N)"
44660702 45655 },
4772952b 45656 "icmp-type" : {
287a95cf 45657 "description" : "Specify icmp-type. Only valid if proto equals 'icmp' or 'icmpv6'/'ipv6-icmp'.",
4772952b
TL
45658 "format" : "pve-fw-icmp-type-spec",
45659 "optional" : 1,
45660 "type" : "string",
45661 "typetext" : "<string>"
45662 },
7aacca6f 45663 "iface" : {
44660702 45664 "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 45665 "format" : "pve-iface",
56122987 45666 "maxLength" : 20,
7aacca6f 45667 "minLength" : 2,
7aacca6f 45668 "optional" : 1,
013dc89f
DM
45669 "type" : "string",
45670 "typetext" : "<string>"
56122987 45671 },
95895385
TL
45672 "log" : {
45673 "description" : "Log level for firewall rule.",
45674 "enum" : [
45675 "emerg",
45676 "alert",
45677 "crit",
45678 "err",
45679 "warning",
45680 "notice",
45681 "info",
45682 "debug",
45683 "nolog"
45684 ],
45685 "optional" : 1,
45686 "type" : "string"
45687 },
44660702 45688 "macro" : {
e94f0d56 45689 "description" : "Use predefined standard macro.",
44660702 45690 "maxLength" : 128,
7aacca6f 45691 "optional" : 1,
013dc89f
DM
45692 "type" : "string",
45693 "typetext" : "<string>"
56122987 45694 },
44660702
DM
45695 "node" : {
45696 "description" : "The cluster node name.",
45697 "format" : "pve-node",
013dc89f
DM
45698 "type" : "string",
45699 "typetext" : "<string>"
44660702
DM
45700 },
45701 "pos" : {
45702 "description" : "Update rule at position <pos>.",
45703 "minimum" : 0,
45704 "optional" : 1,
4bd7df8b 45705 "type" : "integer",
013dc89f 45706 "typetext" : "<integer> (0 - N)"
44660702
DM
45707 },
45708 "proto" : {
45709 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
45710 "format" : "pve-fw-protocol-spec",
56122987 45711 "optional" : 1,
013dc89f
DM
45712 "type" : "string",
45713 "typetext" : "<string>"
56122987 45714 },
7aacca6f 45715 "source" : {
7aacca6f 45716 "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 45717 "format" : "pve-fw-addr-spec",
0695fdaf 45718 "maxLength" : 512,
44660702 45719 "optional" : 1,
013dc89f
DM
45720 "type" : "string",
45721 "typetext" : "<string>"
7aacca6f 45722 },
44660702
DM
45723 "sport" : {
45724 "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.",
45725 "format" : "pve-fw-sport-spec",
7aacca6f 45726 "optional" : 1,
013dc89f
DM
45727 "type" : "string",
45728 "typetext" : "<string>"
44660702
DM
45729 },
45730 "type" : {
e94f0d56 45731 "description" : "Rule type.",
44660702
DM
45732 "enum" : [
45733 "in",
45734 "out",
45735 "group"
45736 ],
45737 "optional" : 0,
45738 "type" : "string"
56122987 45739 }
44660702 45740 }
7aacca6f 45741 },
56122987
DM
45742 "permissions" : {
45743 "check" : [
45744 "perm",
45745 "/nodes/{node}",
45746 [
45747 "Sys.Modify"
45748 ]
45749 ]
45750 },
44660702
DM
45751 "protected" : 1,
45752 "proxyto" : "node",
45753 "returns" : {
45754 "type" : "null"
45755 }
56122987
DM
45756 }
45757 },
44660702 45758 "leaf" : 0,
7aacca6f 45759 "path" : "/nodes/{node}/firewall/rules",
44660702 45760 "text" : "rules"
56122987
DM
45761 },
45762 {
56122987 45763 "info" : {
44660702 45764 "GET" : {
e9cd3bd4 45765 "allowtoken" : 1,
44660702
DM
45766 "description" : "Get host firewall options.",
45767 "method" : "GET",
45768 "name" : "get_options",
56122987 45769 "parameters" : {
7aacca6f 45770 "additionalProperties" : 0,
56122987 45771 "properties" : {
44660702
DM
45772 "node" : {
45773 "description" : "The cluster node name.",
45774 "format" : "pve-node",
013dc89f
DM
45775 "type" : "string",
45776 "typetext" : "<string>"
44660702
DM
45777 }
45778 }
45779 },
45780 "permissions" : {
45781 "check" : [
45782 "perm",
45783 "/nodes/{node}",
45784 [
45785 "Sys.Audit"
45786 ]
45787 ]
45788 },
45789 "proxyto" : "node",
45790 "returns" : {
45791 "properties" : {
45792 "enable" : {
45793 "description" : "Enable host firewall rules.",
7aacca6f 45794 "optional" : 1,
44660702 45795 "type" : "boolean"
7aacca6f 45796 },
44660702
DM
45797 "log_level_in" : {
45798 "description" : "Log level for incoming traffic.",
56122987
DM
45799 "enum" : [
45800 "emerg",
45801 "alert",
45802 "crit",
45803 "err",
45804 "warning",
45805 "notice",
45806 "info",
45807 "debug",
45808 "nolog"
45809 ],
56122987 45810 "optional" : 1,
44660702
DM
45811 "type" : "string"
45812 },
45813 "log_level_out" : {
45814 "description" : "Log level for outgoing traffic.",
56122987
DM
45815 "enum" : [
45816 "emerg",
45817 "alert",
45818 "crit",
45819 "err",
45820 "warning",
45821 "notice",
45822 "info",
45823 "debug",
45824 "nolog"
45825 ],
44660702
DM
45826 "optional" : 1,
45827 "type" : "string"
45828 },
95895385
TL
45829 "log_nf_conntrack" : {
45830 "default" : 0,
45831 "description" : "Enable logging of conntrack information.",
45832 "optional" : 1,
45833 "type" : "boolean"
45834 },
44660702 45835 "ndp" : {
5c1699e5
TL
45836 "default" : 0,
45837 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702
DM
45838 "optional" : 1,
45839 "type" : "boolean"
45840 },
5f26e15b
TL
45841 "nf_conntrack_allow_invalid" : {
45842 "default" : 0,
45843 "description" : "Allow invalid packets on connection tracking.",
45844 "optional" : 1,
45845 "type" : "boolean"
45846 },
9d2e98ed
TL
45847 "nf_conntrack_helpers" : {
45848 "default" : "",
45849 "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
45850 "format" : "pve-fw-conntrack-helper",
45851 "optional" : 1,
45852 "type" : "string"
45853 },
44660702 45854 "nf_conntrack_max" : {
5c1699e5 45855 "default" : 262144,
44660702
DM
45856 "description" : "Maximum number of tracked connections.",
45857 "minimum" : 32768,
45858 "optional" : 1,
45859 "type" : "integer"
45860 },
45861 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 45862 "default" : 432000,
44660702
DM
45863 "description" : "Conntrack established timeout.",
45864 "minimum" : 7875,
45865 "optional" : 1,
45866 "type" : "integer"
45867 },
5c1699e5
TL
45868 "nf_conntrack_tcp_timeout_syn_recv" : {
45869 "default" : 60,
45870 "description" : "Conntrack syn recv timeout.",
45871 "maximum" : 60,
45872 "minimum" : 30,
45873 "optional" : 1,
45874 "type" : "integer"
45875 },
44660702
DM
45876 "nosmurfs" : {
45877 "description" : "Enable SMURFS filter.",
45878 "optional" : 1,
45879 "type" : "boolean"
56122987 45880 },
5c1699e5
TL
45881 "protection_synflood" : {
45882 "default" : 0,
45883 "description" : "Enable synflood protection",
45884 "optional" : 1,
45885 "type" : "boolean"
45886 },
45887 "protection_synflood_burst" : {
45888 "default" : 1000,
45889 "description" : "Synflood protection rate burst by ip src.",
45890 "optional" : 1,
45891 "type" : "integer"
45892 },
45893 "protection_synflood_rate" : {
45894 "default" : 200,
45895 "description" : "Synflood protection rate syn/sec by ip src.",
45896 "optional" : 1,
45897 "type" : "integer"
45898 },
7aacca6f 45899 "smurf_log_level" : {
44660702 45900 "description" : "Log level for SMURFS filter.",
56122987
DM
45901 "enum" : [
45902 "emerg",
45903 "alert",
45904 "crit",
45905 "err",
45906 "warning",
45907 "notice",
45908 "info",
45909 "debug",
45910 "nolog"
7aacca6f 45911 ],
7aacca6f
DM
45912 "optional" : 1,
45913 "type" : "string"
56122987 45914 },
44660702
DM
45915 "tcp_flags_log_level" : {
45916 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
45917 "enum" : [
45918 "emerg",
45919 "alert",
45920 "crit",
45921 "err",
45922 "warning",
45923 "notice",
45924 "info",
45925 "debug",
45926 "nolog"
45927 ],
44660702
DM
45928 "optional" : 1,
45929 "type" : "string"
7aacca6f 45930 },
44660702 45931 "tcpflags" : {
5c1699e5 45932 "default" : 0,
44660702 45933 "description" : "Filter illegal combinations of TCP flags.",
56122987 45934 "optional" : 1,
44660702 45935 "type" : "boolean"
56122987 45936 }
44660702
DM
45937 },
45938 "type" : "object"
7aacca6f 45939 }
56122987 45940 },
44660702 45941 "PUT" : {
e9cd3bd4 45942 "allowtoken" : 1,
44660702
DM
45943 "description" : "Set Firewall options.",
45944 "method" : "PUT",
45945 "name" : "set_options",
7aacca6f 45946 "parameters" : {
44660702 45947 "additionalProperties" : 0,
7aacca6f 45948 "properties" : {
44660702
DM
45949 "delete" : {
45950 "description" : "A list of settings you want to delete.",
45951 "format" : "pve-configid-list",
7aacca6f 45952 "optional" : 1,
013dc89f
DM
45953 "type" : "string",
45954 "typetext" : "<string>"
56122987 45955 },
44660702 45956 "digest" : {
82551b2b
TL
45957 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
45958 "maxLength" : 64,
44660702 45959 "optional" : 1,
013dc89f
DM
45960 "type" : "string",
45961 "typetext" : "<string>"
56122987 45962 },
44660702
DM
45963 "enable" : {
45964 "description" : "Enable host firewall rules.",
7aacca6f 45965 "optional" : 1,
013dc89f
DM
45966 "type" : "boolean",
45967 "typetext" : "<boolean>"
44660702
DM
45968 },
45969 "log_level_in" : {
45970 "description" : "Log level for incoming traffic.",
56122987
DM
45971 "enum" : [
45972 "emerg",
45973 "alert",
45974 "crit",
45975 "err",
45976 "warning",
45977 "notice",
45978 "info",
45979 "debug",
45980 "nolog"
44660702 45981 ],
7aacca6f 45982 "optional" : 1,
44660702 45983 "type" : "string"
7aacca6f 45984 },
44660702
DM
45985 "log_level_out" : {
45986 "description" : "Log level for outgoing traffic.",
56122987
DM
45987 "enum" : [
45988 "emerg",
45989 "alert",
45990 "crit",
45991 "err",
45992 "warning",
45993 "notice",
45994 "info",
45995 "debug",
45996 "nolog"
45997 ],
45998 "optional" : 1,
7aacca6f 45999 "type" : "string"
56122987 46000 },
95895385
TL
46001 "log_nf_conntrack" : {
46002 "default" : 0,
46003 "description" : "Enable logging of conntrack information.",
46004 "optional" : 1,
46005 "type" : "boolean",
46006 "typetext" : "<boolean>"
46007 },
44660702 46008 "ndp" : {
5c1699e5
TL
46009 "default" : 0,
46010 "description" : "Enable NDP (Neighbor Discovery Protocol).",
7aacca6f 46011 "optional" : 1,
013dc89f
DM
46012 "type" : "boolean",
46013 "typetext" : "<boolean>"
44660702 46014 },
5f26e15b
TL
46015 "nf_conntrack_allow_invalid" : {
46016 "default" : 0,
46017 "description" : "Allow invalid packets on connection tracking.",
46018 "optional" : 1,
46019 "type" : "boolean",
46020 "typetext" : "<boolean>"
46021 },
9d2e98ed
TL
46022 "nf_conntrack_helpers" : {
46023 "default" : "",
46024 "description" : "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp",
46025 "format" : "pve-fw-conntrack-helper",
46026 "optional" : 1,
46027 "type" : "string",
46028 "typetext" : "<string>"
46029 },
44660702 46030 "nf_conntrack_max" : {
5c1699e5 46031 "default" : 262144,
44660702
DM
46032 "description" : "Maximum number of tracked connections.",
46033 "minimum" : 32768,
46034 "optional" : 1,
4bd7df8b 46035 "type" : "integer",
013dc89f 46036 "typetext" : "<integer> (32768 - N)"
44660702
DM
46037 },
46038 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 46039 "default" : 432000,
44660702
DM
46040 "description" : "Conntrack established timeout.",
46041 "minimum" : 7875,
46042 "optional" : 1,
4bd7df8b 46043 "type" : "integer",
013dc89f 46044 "typetext" : "<integer> (7875 - N)"
44660702 46045 },
5c1699e5
TL
46046 "nf_conntrack_tcp_timeout_syn_recv" : {
46047 "default" : 60,
46048 "description" : "Conntrack syn recv timeout.",
46049 "maximum" : 60,
46050 "minimum" : 30,
46051 "optional" : 1,
46052 "type" : "integer",
46053 "typetext" : "<integer> (30 - 60)"
46054 },
44660702
DM
46055 "node" : {
46056 "description" : "The cluster node name.",
46057 "format" : "pve-node",
013dc89f
DM
46058 "type" : "string",
46059 "typetext" : "<string>"
44660702
DM
46060 },
46061 "nosmurfs" : {
46062 "description" : "Enable SMURFS filter.",
46063 "optional" : 1,
013dc89f
DM
46064 "type" : "boolean",
46065 "typetext" : "<boolean>"
44660702 46066 },
5c1699e5
TL
46067 "protection_synflood" : {
46068 "default" : 0,
46069 "description" : "Enable synflood protection",
46070 "optional" : 1,
46071 "type" : "boolean",
46072 "typetext" : "<boolean>"
46073 },
46074 "protection_synflood_burst" : {
46075 "default" : 1000,
46076 "description" : "Synflood protection rate burst by ip src.",
46077 "optional" : 1,
46078 "type" : "integer",
46079 "typetext" : "<integer>"
46080 },
46081 "protection_synflood_rate" : {
46082 "default" : 200,
46083 "description" : "Synflood protection rate syn/sec by ip src.",
46084 "optional" : 1,
46085 "type" : "integer",
46086 "typetext" : "<integer>"
46087 },
44660702
DM
46088 "smurf_log_level" : {
46089 "description" : "Log level for SMURFS filter.",
56122987
DM
46090 "enum" : [
46091 "emerg",
46092 "alert",
46093 "crit",
46094 "err",
46095 "warning",
46096 "notice",
46097 "info",
46098 "debug",
46099 "nolog"
44660702
DM
46100 ],
46101 "optional" : 1,
46102 "type" : "string"
56122987 46103 },
44660702
DM
46104 "tcp_flags_log_level" : {
46105 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
46106 "enum" : [
46107 "emerg",
46108 "alert",
46109 "crit",
46110 "err",
46111 "warning",
46112 "notice",
46113 "info",
46114 "debug",
46115 "nolog"
46116 ],
44660702
DM
46117 "optional" : 1,
46118 "type" : "string"
7aacca6f 46119 },
44660702 46120 "tcpflags" : {
5c1699e5 46121 "default" : 0,
44660702 46122 "description" : "Filter illegal combinations of TCP flags.",
56122987 46123 "optional" : 1,
013dc89f
DM
46124 "type" : "boolean",
46125 "typetext" : "<boolean>"
56122987 46126 }
7aacca6f 46127 }
56122987 46128 },
44660702
DM
46129 "permissions" : {
46130 "check" : [
46131 "perm",
46132 "/nodes/{node}",
46133 [
46134 "Sys.Modify"
46135 ]
46136 ]
46137 },
46138 "protected" : 1,
46139 "proxyto" : "node",
46140 "returns" : {
46141 "type" : "null"
46142 }
7aacca6f
DM
46143 }
46144 },
44660702
DM
46145 "leaf" : 1,
46146 "path" : "/nodes/{node}/firewall/options",
7aacca6f
DM
46147 "text" : "options"
46148 },
46149 {
7aacca6f
DM
46150 "info" : {
46151 "GET" : {
e9cd3bd4 46152 "allowtoken" : 1,
44660702
DM
46153 "description" : "Read firewall log",
46154 "method" : "GET",
7aacca6f 46155 "name" : "log",
56122987 46156 "parameters" : {
44660702 46157 "additionalProperties" : 0,
56122987 46158 "properties" : {
7aacca6f 46159 "limit" : {
44660702 46160 "minimum" : 0,
7aacca6f 46161 "optional" : 1,
4bd7df8b 46162 "type" : "integer",
013dc89f 46163 "typetext" : "<integer> (0 - N)"
7aacca6f 46164 },
56122987 46165 "node" : {
7aacca6f 46166 "description" : "The cluster node name.",
44660702 46167 "format" : "pve-node",
013dc89f
DM
46168 "type" : "string",
46169 "typetext" : "<string>"
44660702 46170 },
9d2e98ed
TL
46171 "since" : {
46172 "description" : "Display log since this UNIX epoch.",
46173 "minimum" : 0,
46174 "optional" : 1,
46175 "type" : "integer",
46176 "typetext" : "<integer> (0 - N)"
46177 },
44660702
DM
46178 "start" : {
46179 "minimum" : 0,
46180 "optional" : 1,
4bd7df8b 46181 "type" : "integer",
013dc89f 46182 "typetext" : "<integer> (0 - N)"
9d2e98ed
TL
46183 },
46184 "until" : {
46185 "description" : "Display log until this UNIX epoch.",
46186 "minimum" : 0,
46187 "optional" : 1,
46188 "type" : "integer",
46189 "typetext" : "<integer> (0 - N)"
56122987 46190 }
44660702 46191 }
7aacca6f 46192 },
56122987
DM
46193 "permissions" : {
46194 "check" : [
46195 "perm",
46196 "/nodes/{node}",
46197 [
46198 "Sys.Syslog"
46199 ]
46200 ]
46201 },
44660702
DM
46202 "protected" : 1,
46203 "proxyto" : "node",
56122987
DM
46204 "returns" : {
46205 "items" : {
56122987 46206 "properties" : {
56122987 46207 "n" : {
44660702
DM
46208 "description" : "Line number",
46209 "type" : "integer"
7aacca6f
DM
46210 },
46211 "t" : {
44660702
DM
46212 "description" : "Line text",
46213 "type" : "string"
56122987 46214 }
44660702
DM
46215 },
46216 "type" : "object"
56122987
DM
46217 },
46218 "type" : "array"
7aacca6f 46219 }
56122987
DM
46220 }
46221 },
44660702
DM
46222 "leaf" : 1,
46223 "path" : "/nodes/{node}/firewall/log",
7aacca6f 46224 "text" : "log"
56122987
DM
46225 }
46226 ],
46227 "info" : {
46228 "GET" : {
e9cd3bd4 46229 "allowtoken" : 1,
44660702
DM
46230 "description" : "Directory index.",
46231 "method" : "GET",
46232 "name" : "index",
56122987 46233 "parameters" : {
44660702 46234 "additionalProperties" : 0,
56122987
DM
46235 "properties" : {
46236 "node" : {
46237 "description" : "The cluster node name.",
44660702 46238 "format" : "pve-node",
013dc89f
DM
46239 "type" : "string",
46240 "typetext" : "<string>"
56122987 46241 }
44660702 46242 }
56122987 46243 },
7aacca6f
DM
46244 "permissions" : {
46245 "user" : "all"
46246 },
56122987
DM
46247 "returns" : {
46248 "items" : {
46249 "properties" : {},
46250 "type" : "object"
46251 },
56122987
DM
46252 "links" : [
46253 {
44660702
DM
46254 "href" : "{name}",
46255 "rel" : "child"
56122987 46256 }
44660702
DM
46257 ],
46258 "type" : "array"
46259 }
56122987 46260 }
7aacca6f 46261 },
44660702 46262 "leaf" : 0,
7aacca6f 46263 "path" : "/nodes/{node}/firewall",
44660702 46264 "text" : "firewall"
56122987 46265 },
5d9c884c
DM
46266 {
46267 "children" : [
46268 {
46269 "children" : [
46270 {
46271 "info" : {
46272 "GET" : {
e9cd3bd4 46273 "allowtoken" : 1,
5d9c884c
DM
46274 "description" : "Get replication job status.",
46275 "method" : "GET",
46276 "name" : "job_status",
46277 "parameters" : {
46278 "additionalProperties" : 0,
46279 "properties" : {
46280 "id" : {
46281 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
46282 "format" : "pve-replication-job-id",
46283 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
46284 "type" : "string"
46285 },
46286 "node" : {
46287 "description" : "The cluster node name.",
46288 "format" : "pve-node",
46289 "type" : "string",
46290 "typetext" : "<string>"
46291 }
46292 }
46293 },
46294 "permissions" : {
46295 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
46296 "user" : "all"
46297 },
46298 "protected" : 1,
46299 "proxyto" : "node",
46300 "returns" : {
5d9c884c
DM
46301 "type" : "object"
46302 }
46303 }
46304 },
46305 "leaf" : 1,
46306 "path" : "/nodes/{node}/replication/{id}/status",
46307 "text" : "status"
46308 },
46309 {
46310 "info" : {
46311 "GET" : {
e9cd3bd4 46312 "allowtoken" : 1,
5d9c884c
DM
46313 "description" : "Read replication job log.",
46314 "method" : "GET",
46315 "name" : "read_job_log",
46316 "parameters" : {
46317 "additionalProperties" : 0,
46318 "properties" : {
46319 "id" : {
46320 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
46321 "format" : "pve-replication-job-id",
46322 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
46323 "type" : "string"
46324 },
46325 "limit" : {
46326 "minimum" : 0,
46327 "optional" : 1,
46328 "type" : "integer",
46329 "typetext" : "<integer> (0 - N)"
46330 },
46331 "node" : {
46332 "description" : "The cluster node name.",
46333 "format" : "pve-node",
46334 "type" : "string",
46335 "typetext" : "<string>"
46336 },
46337 "start" : {
46338 "minimum" : 0,
46339 "optional" : 1,
46340 "type" : "integer",
46341 "typetext" : "<integer> (0 - N)"
46342 }
46343 }
46344 },
46345 "permissions" : {
46346 "description" : "Requires the VM.Audit permission on /vms/<vmid>, or 'Sys.Audit' on '/nodes/<node>'",
46347 "user" : "all"
46348 },
46349 "protected" : 1,
46350 "proxyto" : "node",
46351 "returns" : {
46352 "items" : {
46353 "properties" : {
46354 "n" : {
46355 "description" : "Line number",
46356 "type" : "integer"
46357 },
46358 "t" : {
46359 "description" : "Line text",
46360 "type" : "string"
46361 }
46362 },
46363 "type" : "object"
46364 },
46365 "type" : "array"
46366 }
46367 }
46368 },
46369 "leaf" : 1,
46370 "path" : "/nodes/{node}/replication/{id}/log",
46371 "text" : "log"
46372 },
46373 {
46374 "info" : {
46375 "POST" : {
e9cd3bd4 46376 "allowtoken" : 1,
5d9c884c
DM
46377 "description" : "Schedule replication job to start as soon as possible.",
46378 "method" : "POST",
46379 "name" : "schedule_now",
46380 "parameters" : {
46381 "additionalProperties" : 0,
46382 "properties" : {
46383 "id" : {
46384 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
46385 "format" : "pve-replication-job-id",
46386 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
46387 "type" : "string"
46388 },
46389 "node" : {
46390 "description" : "The cluster node name.",
46391 "format" : "pve-node",
46392 "type" : "string",
46393 "typetext" : "<string>"
46394 }
46395 }
46396 },
46397 "permissions" : {
46398 "check" : [
46399 "perm",
46400 "/storage",
46401 [
46402 "Datastore.Allocate"
46403 ]
46404 ]
46405 },
46406 "protected" : 1,
46407 "proxyto" : "node",
46408 "returns" : {
46409 "type" : "string"
46410 }
46411 }
46412 },
46413 "leaf" : 1,
46414 "path" : "/nodes/{node}/replication/{id}/schedule_now",
46415 "text" : "schedule_now"
46416 }
46417 ],
46418 "info" : {
46419 "GET" : {
e9cd3bd4 46420 "allowtoken" : 1,
5d9c884c
DM
46421 "description" : "Directory index.",
46422 "method" : "GET",
46423 "name" : "index",
46424 "parameters" : {
46425 "additionalProperties" : 0,
46426 "properties" : {
46427 "id" : {
46428 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
46429 "format" : "pve-replication-job-id",
46430 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
46431 "type" : "string"
46432 },
46433 "node" : {
46434 "description" : "The cluster node name.",
46435 "format" : "pve-node",
46436 "type" : "string",
46437 "typetext" : "<string>"
46438 }
46439 }
46440 },
46441 "permissions" : {
46442 "user" : "all"
46443 },
46444 "returns" : {
46445 "items" : {
46446 "properties" : {},
46447 "type" : "object"
46448 },
46449 "links" : [
46450 {
46451 "href" : "{name}",
46452 "rel" : "child"
46453 }
46454 ],
46455 "type" : "array"
46456 }
46457 }
46458 },
46459 "leaf" : 0,
46460 "path" : "/nodes/{node}/replication/{id}",
46461 "text" : "{id}"
46462 }
46463 ],
46464 "info" : {
46465 "GET" : {
e9cd3bd4 46466 "allowtoken" : 1,
5d9c884c
DM
46467 "description" : "List status of all replication jobs on this node.",
46468 "method" : "GET",
46469 "name" : "status",
46470 "parameters" : {
46471 "additionalProperties" : 0,
46472 "properties" : {
46473 "guest" : {
46474 "description" : "Only list replication jobs for this guest.",
46475 "format" : "pve-vmid",
8dd66e12
TL
46476 "maximum" : 999999999,
46477 "minimum" : 100,
5d9c884c
DM
46478 "optional" : 1,
46479 "type" : "integer",
8dd66e12 46480 "typetext" : "<integer> (100 - 999999999)"
5d9c884c
DM
46481 },
46482 "node" : {
46483 "description" : "The cluster node name.",
46484 "format" : "pve-node",
46485 "type" : "string",
46486 "typetext" : "<string>"
46487 }
46488 }
46489 },
46490 "permissions" : {
46491 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
46492 "user" : "all"
46493 },
46494 "protected" : 1,
46495 "proxyto" : "node",
46496 "returns" : {
46497 "items" : {
46498 "properties" : {
46499 "id" : {
46500 "type" : "string"
46501 }
46502 },
46503 "type" : "object"
46504 },
46505 "links" : [
46506 {
46507 "href" : "{id}",
46508 "rel" : "child"
46509 }
46510 ],
46511 "type" : "array"
46512 }
46513 }
46514 },
46515 "leaf" : 0,
46516 "path" : "/nodes/{node}/replication",
46517 "text" : "replication"
46518 },
a9a8e3d1
DM
46519 {
46520 "children" : [
46521 {
46522 "children" : [
46523 {
46524 "info" : {
46525 "DELETE" : {
e9cd3bd4 46526 "allowtoken" : 1,
a9a8e3d1
DM
46527 "description" : "Revoke existing certificate from CA.",
46528 "method" : "DELETE",
46529 "name" : "revoke_certificate",
46530 "parameters" : {
46531 "additionalProperties" : 0,
46532 "properties" : {
46533 "node" : {
46534 "description" : "The cluster node name.",
46535 "format" : "pve-node",
46536 "type" : "string",
46537 "typetext" : "<string>"
46538 }
46539 }
46540 },
ac70d7d1
TL
46541 "permissions" : {
46542 "check" : [
46543 "perm",
46544 "/nodes/{node}",
46545 [
46546 "Sys.Modify"
46547 ]
46548 ]
46549 },
a9a8e3d1
DM
46550 "protected" : 1,
46551 "proxyto" : "node",
46552 "returns" : {
46553 "type" : "string"
46554 }
46555 },
46556 "POST" : {
e9cd3bd4 46557 "allowtoken" : 1,
a9a8e3d1
DM
46558 "description" : "Order a new certificate from ACME-compatible CA.",
46559 "method" : "POST",
46560 "name" : "new_certificate",
46561 "parameters" : {
46562 "additionalProperties" : 0,
46563 "properties" : {
46564 "force" : {
46565 "default" : 0,
46566 "description" : "Overwrite existing custom certificate.",
46567 "optional" : 1,
46568 "type" : "boolean",
46569 "typetext" : "<boolean>"
46570 },
46571 "node" : {
46572 "description" : "The cluster node name.",
46573 "format" : "pve-node",
46574 "type" : "string",
46575 "typetext" : "<string>"
46576 }
46577 }
46578 },
ac70d7d1
TL
46579 "permissions" : {
46580 "check" : [
46581 "perm",
46582 "/nodes/{node}",
46583 [
46584 "Sys.Modify"
46585 ]
46586 ]
46587 },
a9a8e3d1
DM
46588 "protected" : 1,
46589 "proxyto" : "node",
46590 "returns" : {
46591 "type" : "string"
46592 }
46593 },
46594 "PUT" : {
e9cd3bd4 46595 "allowtoken" : 1,
a9a8e3d1
DM
46596 "description" : "Renew existing certificate from CA.",
46597 "method" : "PUT",
46598 "name" : "renew_certificate",
46599 "parameters" : {
46600 "additionalProperties" : 0,
46601 "properties" : {
46602 "force" : {
46603 "default" : 0,
46604 "description" : "Force renewal even if expiry is more than 30 days away.",
46605 "optional" : 1,
46606 "type" : "boolean",
46607 "typetext" : "<boolean>"
46608 },
46609 "node" : {
46610 "description" : "The cluster node name.",
46611 "format" : "pve-node",
46612 "type" : "string",
46613 "typetext" : "<string>"
46614 }
46615 }
46616 },
ac70d7d1
TL
46617 "permissions" : {
46618 "check" : [
46619 "perm",
46620 "/nodes/{node}",
46621 [
46622 "Sys.Modify"
46623 ]
46624 ]
46625 },
a9a8e3d1
DM
46626 "protected" : 1,
46627 "proxyto" : "node",
46628 "returns" : {
46629 "type" : "string"
46630 }
46631 }
46632 },
46633 "leaf" : 1,
46634 "path" : "/nodes/{node}/certificates/acme/certificate",
46635 "text" : "certificate"
46636 }
46637 ],
46638 "info" : {
46639 "GET" : {
e9cd3bd4 46640 "allowtoken" : 1,
a9a8e3d1
DM
46641 "description" : "ACME index.",
46642 "method" : "GET",
46643 "name" : "index",
46644 "parameters" : {
46645 "additionalProperties" : 0,
46646 "properties" : {
46647 "node" : {
46648 "description" : "The cluster node name.",
46649 "format" : "pve-node",
46650 "type" : "string",
46651 "typetext" : "<string>"
46652 }
46653 }
46654 },
46655 "permissions" : {
46656 "user" : "all"
46657 },
46658 "returns" : {
46659 "items" : {
46660 "properties" : {},
46661 "type" : "object"
46662 },
46663 "links" : [
46664 {
46665 "href" : "{name}",
46666 "rel" : "child"
46667 }
46668 ],
46669 "type" : "array"
46670 }
46671 }
46672 },
46673 "leaf" : 0,
46674 "path" : "/nodes/{node}/certificates/acme",
46675 "text" : "acme"
46676 },
46677 {
46678 "info" : {
46679 "GET" : {
e9cd3bd4 46680 "allowtoken" : 1,
a9a8e3d1
DM
46681 "description" : "Get information about node's certificates.",
46682 "method" : "GET",
46683 "name" : "info",
46684 "parameters" : {
46685 "additionalProperties" : 0,
46686 "properties" : {
46687 "node" : {
46688 "description" : "The cluster node name.",
46689 "format" : "pve-node",
46690 "type" : "string",
46691 "typetext" : "<string>"
46692 }
46693 }
46694 },
46695 "permissions" : {
46696 "user" : "all"
46697 },
46698 "proxyto" : "node",
46699 "returns" : {
46700 "items" : {
46701 "properties" : {
46702 "filename" : {
46703 "optional" : 1,
46704 "type" : "string"
46705 },
46706 "fingerprint" : {
46707 "description" : "Certificate SHA 256 fingerprint.",
46708 "optional" : 1,
46709 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
46710 "type" : "string"
46711 },
46712 "issuer" : {
46713 "description" : "Certificate issuer name.",
46714 "optional" : 1,
46715 "type" : "string"
46716 },
46717 "notafter" : {
46718 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
46719 "optional" : 1,
4d47f125 46720 "renderer" : "timestamp",
a9a8e3d1
DM
46721 "type" : "integer"
46722 },
46723 "notbefore" : {
46724 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
46725 "optional" : 1,
4d47f125 46726 "renderer" : "timestamp",
a9a8e3d1
DM
46727 "type" : "integer"
46728 },
46729 "pem" : {
46730 "description" : "Certificate in PEM format",
46731 "format" : "pem-certificate",
46732 "optional" : 1,
46733 "type" : "string"
46734 },
1c532546
TL
46735 "public-key-bits" : {
46736 "description" : "Certificate's public key size",
46737 "optional" : 1,
46738 "type" : "integer"
46739 },
46740 "public-key-type" : {
46741 "description" : "Certificate's public key algorithm",
46742 "optional" : 1,
46743 "type" : "string"
46744 },
a9a8e3d1
DM
46745 "san" : {
46746 "description" : "List of Certificate's SubjectAlternativeName entries.",
46747 "items" : {
46748 "type" : "string"
46749 },
46750 "optional" : 1,
4d47f125 46751 "renderer" : "yaml",
a9a8e3d1
DM
46752 "type" : "array"
46753 },
46754 "subject" : {
46755 "description" : "Certificate subject name.",
46756 "optional" : 1,
46757 "type" : "string"
46758 }
46759 },
46760 "type" : "object"
46761 },
46762 "type" : "array"
46763 }
46764 }
46765 },
46766 "leaf" : 1,
46767 "path" : "/nodes/{node}/certificates/info",
46768 "text" : "info"
46769 },
46770 {
46771 "info" : {
46772 "DELETE" : {
e9cd3bd4 46773 "allowtoken" : 1,
a9a8e3d1
DM
46774 "description" : "DELETE custom certificate chain and key.",
46775 "method" : "DELETE",
46776 "name" : "remove_custom_cert",
46777 "parameters" : {
46778 "additionalProperties" : 0,
46779 "properties" : {
46780 "node" : {
46781 "description" : "The cluster node name.",
46782 "format" : "pve-node",
46783 "type" : "string",
46784 "typetext" : "<string>"
46785 },
46786 "restart" : {
46787 "default" : 0,
46788 "description" : "Restart pveproxy.",
46789 "optional" : 1,
46790 "type" : "boolean",
46791 "typetext" : "<boolean>"
46792 }
46793 }
46794 },
ac70d7d1
TL
46795 "permissions" : {
46796 "check" : [
46797 "perm",
46798 "/nodes/{node}",
46799 [
46800 "Sys.Modify"
46801 ]
46802 ]
46803 },
a9a8e3d1
DM
46804 "protected" : 1,
46805 "proxyto" : "node",
46806 "returns" : {
46807 "type" : "null"
46808 }
46809 },
46810 "POST" : {
e9cd3bd4 46811 "allowtoken" : 1,
a9a8e3d1
DM
46812 "description" : "Upload or update custom certificate chain and key.",
46813 "method" : "POST",
46814 "name" : "upload_custom_cert",
46815 "parameters" : {
46816 "additionalProperties" : 0,
46817 "properties" : {
46818 "certificates" : {
46819 "description" : "PEM encoded certificate (chain).",
46820 "format" : "pem-certificate-chain",
46821 "type" : "string",
46822 "typetext" : "<string>"
46823 },
46824 "force" : {
46825 "default" : 0,
46826 "description" : "Overwrite existing custom or ACME certificate files.",
46827 "optional" : 1,
46828 "type" : "boolean",
46829 "typetext" : "<boolean>"
46830 },
46831 "key" : {
46832 "description" : "PEM encoded private key.",
46833 "format" : "pem-string",
46834 "optional" : 1,
46835 "type" : "string",
46836 "typetext" : "<string>"
46837 },
46838 "node" : {
46839 "description" : "The cluster node name.",
46840 "format" : "pve-node",
46841 "type" : "string",
46842 "typetext" : "<string>"
46843 },
46844 "restart" : {
46845 "default" : 0,
46846 "description" : "Restart pveproxy.",
46847 "optional" : 1,
46848 "type" : "boolean",
46849 "typetext" : "<boolean>"
46850 }
46851 }
46852 },
ac70d7d1
TL
46853 "permissions" : {
46854 "check" : [
46855 "perm",
46856 "/nodes/{node}",
46857 [
46858 "Sys.Modify"
46859 ]
46860 ]
46861 },
a9a8e3d1
DM
46862 "protected" : 1,
46863 "proxyto" : "node",
46864 "returns" : {
46865 "properties" : {
46866 "filename" : {
46867 "optional" : 1,
46868 "type" : "string"
46869 },
46870 "fingerprint" : {
46871 "description" : "Certificate SHA 256 fingerprint.",
46872 "optional" : 1,
46873 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
46874 "type" : "string"
46875 },
46876 "issuer" : {
46877 "description" : "Certificate issuer name.",
46878 "optional" : 1,
46879 "type" : "string"
46880 },
46881 "notafter" : {
46882 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
46883 "optional" : 1,
4d47f125 46884 "renderer" : "timestamp",
a9a8e3d1
DM
46885 "type" : "integer"
46886 },
46887 "notbefore" : {
46888 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
46889 "optional" : 1,
4d47f125 46890 "renderer" : "timestamp",
a9a8e3d1
DM
46891 "type" : "integer"
46892 },
46893 "pem" : {
46894 "description" : "Certificate in PEM format",
46895 "format" : "pem-certificate",
46896 "optional" : 1,
46897 "type" : "string"
46898 },
1c532546
TL
46899 "public-key-bits" : {
46900 "description" : "Certificate's public key size",
46901 "optional" : 1,
46902 "type" : "integer"
46903 },
46904 "public-key-type" : {
46905 "description" : "Certificate's public key algorithm",
46906 "optional" : 1,
46907 "type" : "string"
46908 },
a9a8e3d1
DM
46909 "san" : {
46910 "description" : "List of Certificate's SubjectAlternativeName entries.",
46911 "items" : {
46912 "type" : "string"
46913 },
46914 "optional" : 1,
4d47f125 46915 "renderer" : "yaml",
a9a8e3d1
DM
46916 "type" : "array"
46917 },
46918 "subject" : {
46919 "description" : "Certificate subject name.",
46920 "optional" : 1,
46921 "type" : "string"
46922 }
46923 },
46924 "type" : "object"
46925 }
46926 }
46927 },
46928 "leaf" : 1,
46929 "path" : "/nodes/{node}/certificates/custom",
46930 "text" : "custom"
46931 }
46932 ],
46933 "info" : {
46934 "GET" : {
e9cd3bd4 46935 "allowtoken" : 1,
a9a8e3d1
DM
46936 "description" : "Node index.",
46937 "method" : "GET",
46938 "name" : "index",
46939 "parameters" : {
46940 "additionalProperties" : 0,
46941 "properties" : {
46942 "node" : {
46943 "description" : "The cluster node name.",
46944 "format" : "pve-node",
46945 "type" : "string",
46946 "typetext" : "<string>"
46947 }
46948 }
46949 },
46950 "permissions" : {
46951 "user" : "all"
46952 },
46953 "returns" : {
46954 "items" : {
46955 "properties" : {},
46956 "type" : "object"
46957 },
46958 "links" : [
46959 {
46960 "href" : "{name}",
46961 "rel" : "child"
46962 }
46963 ],
46964 "type" : "array"
46965 }
46966 }
46967 },
46968 "leaf" : 0,
c5aa7e14
TL
46969 "path" : "/nodes/{node}/certificates",
46970 "text" : "certificates"
46971 },
46972 {
46973 "info" : {
46974 "GET" : {
46975 "allowtoken" : 1,
46976 "description" : "Get node configuration options.",
46977 "method" : "GET",
46978 "name" : "get_config",
46979 "parameters" : {
46980 "additionalProperties" : 0,
46981 "properties" : {
46982 "node" : {
46983 "description" : "The cluster node name.",
46984 "format" : "pve-node",
46985 "type" : "string",
46986 "typetext" : "<string>"
46987 },
46988 "property" : {
46989 "default" : "all",
46990 "description" : "Return only a specific property from the node configuration.",
46991 "enum" : [
46992 "acme",
46993 "acmedomain0",
46994 "acmedomain1",
46995 "acmedomain2",
46996 "acmedomain3",
46997 "acmedomain4",
46998 "acmedomain5",
46999 "description",
47000 "startall-onboot-delay",
47001 "wakeonlan"
47002 ],
47003 "optional" : 1,
47004 "type" : "string"
47005 }
47006 }
47007 },
47008 "permissions" : {
47009 "check" : [
47010 "perm",
47011 "/",
47012 [
47013 "Sys.Audit"
47014 ]
47015 ]
47016 },
47017 "proxyto" : "node",
47018 "returns" : {
c30bb419
TL
47019 "properties" : {
47020 "acme" : {
47021 "description" : "Node specific ACME settings.",
47022 "format" : {
47023 "account" : {
47024 "default" : "default",
47025 "description" : "ACME account config file name.",
47026 "format" : "pve-configid",
47027 "format_description" : "name",
47028 "optional" : 1,
47029 "type" : "string"
47030 },
47031 "domains" : {
47032 "description" : "List of domains for this node's ACME certificate",
47033 "format" : "pve-acme-domain-list",
47034 "format_description" : "domain[;domain;...]",
47035 "optional" : 1,
47036 "type" : "string"
47037 }
47038 },
47039 "optional" : 1,
47040 "type" : "string"
47041 },
47042 "acmedomain[n]" : {
47043 "description" : "ACME domain and validation plugin",
47044 "format" : {
47045 "alias" : {
47046 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
47047 "format" : "pve-acme-alias",
47048 "format_description" : "domain",
47049 "optional" : 1,
47050 "type" : "string"
47051 },
47052 "domain" : {
47053 "default_key" : 1,
47054 "description" : "domain for this node's ACME certificate",
47055 "format" : "pve-acme-domain",
47056 "format_description" : "domain",
47057 "type" : "string"
47058 },
47059 "plugin" : {
47060 "default" : "standalone",
47061 "description" : "The ACME plugin ID",
47062 "format" : "pve-configid",
47063 "format_description" : "name of the plugin configuration",
47064 "optional" : 1,
47065 "type" : "string"
47066 }
47067 },
47068 "optional" : 1,
47069 "type" : "string"
47070 },
47071 "description" : {
47072 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
47073 "maxLength" : 65536,
47074 "optional" : 1,
47075 "type" : "string"
47076 },
47077 "digest" : {
47078 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
47079 "maxLength" : 40,
47080 "optional" : 1,
47081 "type" : "string"
47082 },
47083 "startall-onboot-delay" : {
47084 "default" : 0,
47085 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
47086 "maximum" : 300,
47087 "minimum" : 0,
47088 "optional" : 1,
47089 "type" : "integer"
47090 },
47091 "wakeonlan" : {
47092 "description" : "MAC address for wake on LAN",
47093 "format" : "mac-addr",
47094 "optional" : 1,
47095 "type" : "string"
47096 }
47097 },
c5aa7e14
TL
47098 "type" : "object"
47099 }
47100 },
47101 "PUT" : {
47102 "allowtoken" : 1,
47103 "description" : "Set node configuration options.",
47104 "method" : "PUT",
47105 "name" : "set_options",
47106 "parameters" : {
47107 "additionalProperties" : 0,
47108 "properties" : {
47109 "acme" : {
47110 "description" : "Node specific ACME settings.",
47111 "format" : {
47112 "account" : {
47113 "default" : "default",
47114 "description" : "ACME account config file name.",
47115 "format" : "pve-configid",
47116 "format_description" : "name",
47117 "optional" : 1,
47118 "type" : "string"
47119 },
47120 "domains" : {
47121 "description" : "List of domains for this node's ACME certificate",
47122 "format" : "pve-acme-domain-list",
47123 "format_description" : "domain[;domain;...]",
47124 "optional" : 1,
47125 "type" : "string"
47126 }
47127 },
47128 "optional" : 1,
47129 "type" : "string",
47130 "typetext" : "[account=<name>] [,domains=<domain[;domain;...]>]"
47131 },
47132 "acmedomain[n]" : {
47133 "description" : "ACME domain and validation plugin",
47134 "format" : {
47135 "alias" : {
47136 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
ac70d7d1 47137 "format" : "pve-acme-alias",
c5aa7e14
TL
47138 "format_description" : "domain",
47139 "optional" : 1,
47140 "type" : "string"
47141 },
47142 "domain" : {
47143 "default_key" : 1,
47144 "description" : "domain for this node's ACME certificate",
47145 "format" : "pve-acme-domain",
47146 "format_description" : "domain",
47147 "type" : "string"
47148 },
47149 "plugin" : {
47150 "default" : "standalone",
47151 "description" : "The ACME plugin ID",
47152 "format" : "pve-configid",
47153 "format_description" : "name of the plugin configuration",
47154 "optional" : 1,
47155 "type" : "string"
47156 }
47157 },
47158 "optional" : 1,
47159 "type" : "string",
47160 "typetext" : "[domain=]<domain> [,alias=<domain>] [,plugin=<name of the plugin configuration>]"
47161 },
47162 "delete" : {
47163 "description" : "A list of settings you want to delete.",
47164 "format" : "pve-configid-list",
47165 "optional" : 1,
47166 "type" : "string",
47167 "typetext" : "<string>"
47168 },
47169 "description" : {
0695fdaf
TL
47170 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
47171 "maxLength" : 65536,
c5aa7e14
TL
47172 "optional" : 1,
47173 "type" : "string",
47174 "typetext" : "<string>"
47175 },
47176 "digest" : {
47177 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
47178 "maxLength" : 40,
47179 "optional" : 1,
47180 "type" : "string",
47181 "typetext" : "<string>"
47182 },
47183 "node" : {
47184 "description" : "The cluster node name.",
47185 "format" : "pve-node",
47186 "type" : "string",
47187 "typetext" : "<string>"
47188 },
47189 "startall-onboot-delay" : {
47190 "default" : 0,
47191 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
47192 "maximum" : 300,
47193 "minimum" : 0,
47194 "optional" : 1,
47195 "type" : "integer",
47196 "typetext" : "<integer> (0 - 300)"
47197 },
47198 "wakeonlan" : {
47199 "description" : "MAC address for wake on LAN",
47200 "format" : "mac-addr",
47201 "optional" : 1,
47202 "type" : "string",
47203 "typetext" : "<string>"
47204 }
47205 }
47206 },
47207 "permissions" : {
47208 "check" : [
47209 "perm",
47210 "/",
47211 [
47212 "Sys.Modify"
47213 ]
47214 ]
47215 },
47216 "protected" : 1,
47217 "proxyto" : "node",
47218 "returns" : {
47219 "type" : "null"
47220 }
47221 }
47222 },
47223 "leaf" : 1,
47224 "path" : "/nodes/{node}/config",
47225 "text" : "config"
47226 },
47227 {
47228 "children" : [
47229 {
47230 "children" : [
47231 {
47232 "children" : [
47233 {
47234 "info" : {
47235 "GET" : {
47236 "allowtoken" : 1,
47237 "description" : "List zone content.",
47238 "method" : "GET",
47239 "name" : "index",
47240 "parameters" : {
47241 "additionalProperties" : 0,
47242 "properties" : {
47243 "node" : {
47244 "description" : "The cluster node name.",
47245 "format" : "pve-node",
47246 "type" : "string",
47247 "typetext" : "<string>"
47248 },
47249 "zone" : {
47250 "description" : "The SDN zone object identifier.",
47251 "format" : "pve-sdn-zone-id",
47252 "type" : "string",
47253 "typetext" : "<string>"
47254 }
47255 }
47256 },
47257 "permissions" : {
47258 "check" : [
47259 "perm",
47260 "/sdn/zones/{zone}",
47261 [
47262 "SDN.Audit"
47263 ],
47264 "any",
47265 1
47266 ]
47267 },
47268 "protected" : 1,
47269 "proxyto" : "node",
47270 "returns" : {
47271 "items" : {
47272 "properties" : {
47273 "status" : {
47274 "description" : "Status.",
47275 "optional" : 1,
47276 "type" : "string"
47277 },
47278 "statusmsg" : {
47279 "description" : "Status details",
47280 "optional" : 1,
47281 "type" : "string"
47282 },
47283 "vnet" : {
47284 "description" : "Vnet identifier.",
47285 "type" : "string"
47286 }
47287 },
47288 "type" : "object"
47289 },
47290 "links" : [
47291 {
47292 "href" : "{vnet}",
47293 "rel" : "child"
47294 }
47295 ],
47296 "type" : "array"
47297 }
47298 }
47299 },
47300 "leaf" : 1,
47301 "path" : "/nodes/{node}/sdn/zones/{zone}/content",
47302 "text" : "content"
47303 }
47304 ],
47305 "info" : {
47306 "GET" : {
47307 "allowtoken" : 1,
47308 "description" : "",
47309 "method" : "GET",
47310 "name" : "diridx",
47311 "parameters" : {
47312 "additionalProperties" : 0,
47313 "properties" : {
47314 "node" : {
47315 "description" : "The cluster node name.",
47316 "format" : "pve-node",
47317 "type" : "string",
47318 "typetext" : "<string>"
47319 },
47320 "zone" : {
47321 "description" : "The SDN zone object identifier.",
47322 "format" : "pve-sdn-zone-id",
47323 "type" : "string",
47324 "typetext" : "<string>"
47325 }
47326 }
47327 },
47328 "permissions" : {
47329 "check" : [
47330 "perm",
47331 "/sdn/zones/{zone}",
47332 [
47333 "SDN.Audit"
47334 ],
47335 "any",
47336 1
47337 ]
47338 },
47339 "returns" : {
47340 "items" : {
47341 "properties" : {
47342 "subdir" : {
47343 "type" : "string"
47344 }
47345 },
47346 "type" : "object"
47347 },
47348 "links" : [
47349 {
47350 "href" : "{subdir}",
47351 "rel" : "child"
47352 }
47353 ],
47354 "type" : "array"
47355 }
47356 }
47357 },
47358 "leaf" : 0,
47359 "path" : "/nodes/{node}/sdn/zones/{zone}",
47360 "text" : "{zone}"
47361 }
47362 ],
47363 "info" : {
47364 "GET" : {
47365 "allowtoken" : 1,
47366 "description" : "Get status for all zones.",
47367 "method" : "GET",
47368 "name" : "index",
47369 "parameters" : {
47370 "additionalProperties" : 0,
47371 "properties" : {
47372 "node" : {
47373 "description" : "The cluster node name.",
47374 "format" : "pve-node",
47375 "type" : "string",
47376 "typetext" : "<string>"
47377 }
47378 }
47379 },
47380 "permissions" : {
47381 "description" : "Only list entries where you have 'SDN.Audit'",
47382 "user" : "all"
47383 },
47384 "protected" : 1,
47385 "proxyto" : "node",
47386 "returns" : {
47387 "items" : {
47388 "properties" : {
47389 "status" : {
47390 "description" : "Status of zone",
ac70d7d1
TL
47391 "enum" : [
47392 "available",
47393 "pending",
47394 "error"
47395 ],
c5aa7e14
TL
47396 "type" : "string"
47397 },
47398 "zone" : {
47399 "description" : "The SDN zone object identifier.",
47400 "format" : "pve-sdn-zone-id",
47401 "type" : "string"
47402 }
47403 },
47404 "type" : "object"
47405 },
47406 "links" : [
47407 {
47408 "href" : "{zone}",
47409 "rel" : "child"
47410 }
47411 ],
47412 "type" : "array"
47413 }
47414 }
47415 },
47416 "leaf" : 0,
47417 "path" : "/nodes/{node}/sdn/zones",
47418 "text" : "zones"
47419 }
47420 ],
47421 "info" : {
47422 "GET" : {
47423 "allowtoken" : 1,
47424 "description" : "SDN index.",
47425 "method" : "GET",
47426 "name" : "sdnindex",
47427 "parameters" : {
47428 "additionalProperties" : 0,
47429 "properties" : {
47430 "node" : {
47431 "description" : "The cluster node name.",
47432 "format" : "pve-node",
47433 "type" : "string",
47434 "typetext" : "<string>"
47435 }
47436 }
47437 },
47438 "permissions" : {
47439 "user" : "all"
47440 },
47441 "returns" : {
47442 "items" : {
47443 "properties" : {},
47444 "type" : "object"
47445 },
47446 "links" : [
47447 {
47448 "href" : "{name}",
47449 "rel" : "child"
47450 }
47451 ],
47452 "type" : "array"
47453 }
47454 }
47455 },
47456 "leaf" : 0,
47457 "path" : "/nodes/{node}/sdn",
47458 "text" : "sdn"
a9a8e3d1 47459 },
56122987 47460 {
56122987
DM
47461 "info" : {
47462 "GET" : {
e9cd3bd4 47463 "allowtoken" : 1,
44660702
DM
47464 "description" : "API version details",
47465 "method" : "GET",
47466 "name" : "version",
56122987 47467 "parameters" : {
44660702 47468 "additionalProperties" : 0,
56122987
DM
47469 "properties" : {
47470 "node" : {
56122987 47471 "description" : "The cluster node name.",
44660702 47472 "format" : "pve-node",
013dc89f
DM
47473 "type" : "string",
47474 "typetext" : "<string>"
56122987 47475 }
44660702 47476 }
56122987 47477 },
56122987 47478 "permissions" : {
7aacca6f 47479 "user" : "all"
56122987 47480 },
56122987 47481 "proxyto" : "node",
56122987 47482 "returns" : {
56122987 47483 "properties" : {
44660702 47484 "release" : {
1e3f8156 47485 "description" : "The current installed Proxmox VE Release",
56122987
DM
47486 "type" : "string"
47487 },
44660702 47488 "repoid" : {
1e3f8156 47489 "description" : "The short git commit hash ID from which this version was build",
7aacca6f
DM
47490 "type" : "string"
47491 },
47492 "version" : {
1e3f8156 47493 "description" : "The current installed pve-manager package version",
7aacca6f
DM
47494 "type" : "string"
47495 }
44660702
DM
47496 },
47497 "type" : "object"
7aacca6f 47498 }
56122987
DM
47499 }
47500 },
56122987 47501 "leaf" : 1,
44660702
DM
47502 "path" : "/nodes/{node}/version",
47503 "text" : "version"
56122987
DM
47504 },
47505 {
56122987
DM
47506 "info" : {
47507 "GET" : {
e9cd3bd4 47508 "allowtoken" : 1,
7aacca6f 47509 "description" : "Read node status",
44660702 47510 "method" : "GET",
7aacca6f 47511 "name" : "status",
56122987 47512 "parameters" : {
44660702 47513 "additionalProperties" : 0,
56122987
DM
47514 "properties" : {
47515 "node" : {
7aacca6f 47516 "description" : "The cluster node name.",
44660702 47517 "format" : "pve-node",
013dc89f
DM
47518 "type" : "string",
47519 "typetext" : "<string>"
56122987 47520 }
44660702 47521 }
56122987 47522 },
56122987
DM
47523 "permissions" : {
47524 "check" : [
47525 "perm",
47526 "/nodes/{node}",
47527 [
47528 "Sys.Audit"
47529 ]
47530 ]
44660702
DM
47531 },
47532 "proxyto" : "node",
47533 "returns" : {
44660702 47534 "type" : "object"
7aacca6f
DM
47535 }
47536 },
47537 "POST" : {
e9cd3bd4 47538 "allowtoken" : 1,
44660702
DM
47539 "description" : "Reboot or shutdown a node.",
47540 "method" : "POST",
7aacca6f 47541 "name" : "node_cmd",
56122987 47542 "parameters" : {
44660702 47543 "additionalProperties" : 0,
56122987 47544 "properties" : {
7aacca6f
DM
47545 "command" : {
47546 "description" : "Specify the command.",
56122987 47547 "enum" : [
7aacca6f
DM
47548 "reboot",
47549 "shutdown"
56122987
DM
47550 ],
47551 "type" : "string"
44660702
DM
47552 },
47553 "node" : {
47554 "description" : "The cluster node name.",
47555 "format" : "pve-node",
013dc89f
DM
47556 "type" : "string",
47557 "typetext" : "<string>"
56122987 47558 }
44660702 47559 }
7aacca6f 47560 },
7aacca6f
DM
47561 "permissions" : {
47562 "check" : [
47563 "perm",
47564 "/nodes/{node}",
47565 [
47566 "Sys.PowerMgmt"
47567 ]
47568 ]
47569 },
44660702 47570 "protected" : 1,
7aacca6f 47571 "proxyto" : "node",
7aacca6f
DM
47572 "returns" : {
47573 "type" : "null"
56122987
DM
47574 }
47575 }
47576 },
7aacca6f 47577 "leaf" : 1,
44660702
DM
47578 "path" : "/nodes/{node}/status",
47579 "text" : "status"
56122987
DM
47580 },
47581 {
56122987
DM
47582 "info" : {
47583 "GET" : {
e9cd3bd4 47584 "allowtoken" : 1,
44660702
DM
47585 "description" : "Read tap/vm network device interface counters",
47586 "method" : "GET",
47587 "name" : "netstat",
47588 "parameters" : {
47589 "additionalProperties" : 0,
47590 "properties" : {
47591 "node" : {
47592 "description" : "The cluster node name.",
47593 "format" : "pve-node",
013dc89f
DM
47594 "type" : "string",
47595 "typetext" : "<string>"
44660702 47596 }
56122987
DM
47597 }
47598 },
47599 "permissions" : {
47600 "check" : [
47601 "perm",
47602 "/nodes/{node}",
47603 [
7aacca6f 47604 "Sys.Audit"
56122987
DM
47605 ]
47606 ]
47607 },
7aacca6f 47608 "proxyto" : "node",
44660702
DM
47609 "returns" : {
47610 "items" : {
47611 "properties" : {},
47612 "type" : "object"
47613 },
47614 "type" : "array"
47615 }
7aacca6f
DM
47616 }
47617 },
44660702
DM
47618 "leaf" : 1,
47619 "path" : "/nodes/{node}/netstat",
7aacca6f
DM
47620 "text" : "netstat"
47621 },
47622 {
47623 "info" : {
47624 "POST" : {
e9cd3bd4 47625 "allowtoken" : 1,
159464a9 47626 "description" : "Execute multiple commands in order, root only.",
7aacca6f 47627 "method" : "POST",
7aacca6f 47628 "name" : "execute",
56122987
DM
47629 "parameters" : {
47630 "additionalProperties" : 0,
47631 "properties" : {
7aacca6f
DM
47632 "commands" : {
47633 "description" : "JSON encoded array of commands.",
de786b48 47634 "format" : "pve-command-batch",
013dc89f 47635 "type" : "string",
de786b48 47636 "typetext" : "<string>",
4a407cfd 47637 "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
47638 },
47639 "node" : {
44660702 47640 "description" : "The cluster node name.",
56122987 47641 "format" : "pve-node",
013dc89f
DM
47642 "type" : "string",
47643 "typetext" : "<string>"
56122987
DM
47644 }
47645 }
44660702 47646 },
44660702
DM
47647 "protected" : 1,
47648 "proxyto" : "node",
47649 "returns" : {
de786b48
TL
47650 "items" : {
47651 "properties" : {},
47652 "type" : "object"
47653 },
44660702 47654 "type" : "array"
56122987
DM
47655 }
47656 }
47657 },
56122987 47658 "leaf" : 1,
44660702
DM
47659 "path" : "/nodes/{node}/execute",
47660 "text" : "execute"
56122987 47661 },
5f26e15b
TL
47662 {
47663 "info" : {
47664 "POST" : {
e9cd3bd4 47665 "allowtoken" : 1,
5f26e15b
TL
47666 "description" : "Try to wake a node via 'wake on LAN' network packet.",
47667 "method" : "POST",
47668 "name" : "wakeonlan",
47669 "parameters" : {
47670 "additionalProperties" : 0,
47671 "properties" : {
47672 "node" : {
47673 "description" : "target node for wake on LAN packet",
47674 "format" : "pve-node",
47675 "type" : "string",
47676 "typetext" : "<string>"
47677 }
47678 }
47679 },
47680 "permissions" : {
47681 "check" : [
47682 "perm",
47683 "/nodes/{node}",
47684 [
47685 "Sys.PowerMgmt"
47686 ]
47687 ]
47688 },
47689 "protected" : 1,
47690 "returns" : {
47691 "description" : "MAC address used to assemble the WoL magic packet.",
47692 "format" : "mac-addr",
47693 "type" : "string"
47694 }
47695 }
47696 },
47697 "leaf" : 1,
47698 "path" : "/nodes/{node}/wakeonlan",
47699 "text" : "wakeonlan"
47700 },
56122987
DM
47701 {
47702 "info" : {
7aacca6f 47703 "GET" : {
e9cd3bd4 47704 "allowtoken" : 1,
44660702
DM
47705 "description" : "Read node RRD statistics (returns PNG)",
47706 "method" : "GET",
7aacca6f 47707 "name" : "rrd",
56122987 47708 "parameters" : {
7aacca6f 47709 "additionalProperties" : 0,
56122987 47710 "properties" : {
44660702
DM
47711 "cf" : {
47712 "description" : "The RRD consolidation function",
47713 "enum" : [
47714 "AVERAGE",
47715 "MAX"
47716 ],
47717 "optional" : 1,
47718 "type" : "string"
47719 },
7aacca6f 47720 "ds" : {
7aacca6f 47721 "description" : "The list of datasources you want to display.",
44660702 47722 "format" : "pve-configid-list",
013dc89f
DM
47723 "type" : "string",
47724 "typetext" : "<string>"
44660702
DM
47725 },
47726 "node" : {
47727 "description" : "The cluster node name.",
47728 "format" : "pve-node",
013dc89f
DM
47729 "type" : "string",
47730 "typetext" : "<string>"
7aacca6f
DM
47731 },
47732 "timeframe" : {
47733 "description" : "Specify the time frame you are interested in.",
47734 "enum" : [
47735 "hour",
47736 "day",
47737 "week",
47738 "month",
47739 "year"
47740 ],
47741 "type" : "string"
56122987 47742 }
7aacca6f 47743 }
56122987 47744 },
56122987 47745 "permissions" : {
56122987
DM
47746 "check" : [
47747 "perm",
47748 "/nodes/{node}",
47749 [
7aacca6f 47750 "Sys.Audit"
56122987
DM
47751 ]
47752 ]
47753 },
7aacca6f 47754 "protected" : 1,
56122987 47755 "returns" : {
56122987 47756 "properties" : {
7aacca6f 47757 "filename" : {
56122987
DM
47758 "type" : "string"
47759 }
44660702
DM
47760 },
47761 "type" : "object"
47762 }
56122987
DM
47763 }
47764 },
44660702 47765 "leaf" : 1,
7aacca6f 47766 "path" : "/nodes/{node}/rrd",
44660702 47767 "text" : "rrd"
56122987
DM
47768 },
47769 {
47770 "info" : {
7aacca6f 47771 "GET" : {
e9cd3bd4 47772 "allowtoken" : 1,
44660702
DM
47773 "description" : "Read node RRD statistics",
47774 "method" : "GET",
7aacca6f 47775 "name" : "rrddata",
56122987 47776 "parameters" : {
44660702 47777 "additionalProperties" : 0,
56122987 47778 "properties" : {
7aacca6f 47779 "cf" : {
7aacca6f
DM
47780 "description" : "The RRD consolidation function",
47781 "enum" : [
47782 "AVERAGE",
47783 "MAX"
44660702
DM
47784 ],
47785 "optional" : 1,
47786 "type" : "string"
56122987
DM
47787 },
47788 "node" : {
44660702 47789 "description" : "The cluster node name.",
56122987 47790 "format" : "pve-node",
013dc89f
DM
47791 "type" : "string",
47792 "typetext" : "<string>"
56122987 47793 },
7aacca6f 47794 "timeframe" : {
7aacca6f
DM
47795 "description" : "Specify the time frame you are interested in.",
47796 "enum" : [
47797 "hour",
47798 "day",
47799 "week",
47800 "month",
47801 "year"
44660702
DM
47802 ],
47803 "type" : "string"
56122987 47804 }
56122987
DM
47805 }
47806 },
56122987
DM
47807 "permissions" : {
47808 "check" : [
47809 "perm",
47810 "/nodes/{node}",
47811 [
44660702 47812 "Sys.Audit"
56122987
DM
47813 ]
47814 ]
7aacca6f 47815 },
44660702 47816 "protected" : 1,
56122987 47817 "returns" : {
7aacca6f 47818 "items" : {
44660702 47819 "properties" : {},
7aacca6f
DM
47820 "type" : "object"
47821 },
47822 "type" : "array"
44660702
DM
47823 }
47824 }
47825 },
47826 "leaf" : 1,
47827 "path" : "/nodes/{node}/rrddata",
47828 "text" : "rrddata"
47829 },
47830 {
47831 "info" : {
47832 "GET" : {
e9cd3bd4 47833 "allowtoken" : 1,
44660702
DM
47834 "description" : "Read system log",
47835 "method" : "GET",
47836 "name" : "syslog",
56122987 47837 "parameters" : {
44660702 47838 "additionalProperties" : 0,
56122987 47839 "properties" : {
44660702
DM
47840 "limit" : {
47841 "minimum" : 0,
7aacca6f 47842 "optional" : 1,
4bd7df8b 47843 "type" : "integer",
013dc89f 47844 "typetext" : "<integer> (0 - N)"
7aacca6f 47845 },
56122987 47846 "node" : {
7aacca6f 47847 "description" : "The cluster node name.",
44660702 47848 "format" : "pve-node",
013dc89f
DM
47849 "type" : "string",
47850 "typetext" : "<string>"
56122987 47851 },
35a75dd3
DM
47852 "service" : {
47853 "description" : "Service ID",
47854 "maxLength" : 128,
47855 "optional" : 1,
47856 "type" : "string",
47857 "typetext" : "<string>"
47858 },
44660702
DM
47859 "since" : {
47860 "description" : "Display all log since this date-time string.",
47861 "optional" : 1,
47862 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
47863 "type" : "string"
47864 },
47865 "start" : {
7aacca6f
DM
47866 "minimum" : 0,
47867 "optional" : 1,
4bd7df8b 47868 "type" : "integer",
013dc89f 47869 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
47870 },
47871 "until" : {
47872 "description" : "Display all log until this date-time string.",
7aacca6f 47873 "optional" : 1,
44660702 47874 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
56122987
DM
47875 "type" : "string"
47876 }
44660702 47877 }
56122987 47878 },
44660702
DM
47879 "permissions" : {
47880 "check" : [
47881 "perm",
47882 "/nodes/{node}",
47883 [
47884 "Sys.Syslog"
47885 ]
47886 ]
47887 },
47888 "protected" : 1,
47889 "proxyto" : "node",
47890 "returns" : {
47891 "items" : {
47892 "properties" : {
47893 "n" : {
47894 "description" : "Line number",
47895 "type" : "integer"
47896 },
47897 "t" : {
47898 "description" : "Line text",
47899 "type" : "string"
47900 }
47901 },
47902 "type" : "object"
47903 },
47904 "type" : "array"
47905 }
56122987
DM
47906 }
47907 },
44660702
DM
47908 "leaf" : 1,
47909 "path" : "/nodes/{node}/syslog",
7aacca6f 47910 "text" : "syslog"
56122987 47911 },
bb4c8cf8
TL
47912 {
47913 "info" : {
47914 "GET" : {
e9cd3bd4 47915 "allowtoken" : 1,
bb4c8cf8
TL
47916 "description" : "Read Journal",
47917 "method" : "GET",
47918 "name" : "journal",
47919 "parameters" : {
47920 "additionalProperties" : 0,
47921 "properties" : {
47922 "endcursor" : {
47923 "description" : "End before the given Cursor. Conflicts with 'until'",
47924 "optional" : 1,
47925 "type" : "string",
47926 "typetext" : "<string>"
47927 },
47928 "lastentries" : {
47929 "description" : "Limit to the last X lines. Conflicts with a range.",
47930 "minimum" : 0,
47931 "optional" : 1,
47932 "type" : "integer",
47933 "typetext" : "<integer> (0 - N)"
47934 },
47935 "node" : {
47936 "description" : "The cluster node name.",
47937 "format" : "pve-node",
47938 "type" : "string",
47939 "typetext" : "<string>"
47940 },
47941 "since" : {
47942 "description" : "Display all log since this UNIX epoch. Conflicts with 'startcursor'.",
47943 "minimum" : 0,
47944 "optional" : 1,
47945 "type" : "integer",
47946 "typetext" : "<integer> (0 - N)"
47947 },
47948 "startcursor" : {
47949 "description" : "Start after the given Cursor. Conflicts with 'since'",
47950 "optional" : 1,
47951 "type" : "string",
47952 "typetext" : "<string>"
47953 },
47954 "until" : {
47955 "description" : "Display all log until this UNIX epoch. Conflicts with 'endcursor'.",
47956 "minimum" : 0,
47957 "optional" : 1,
47958 "type" : "integer",
47959 "typetext" : "<integer> (0 - N)"
47960 }
47961 }
47962 },
47963 "permissions" : {
47964 "check" : [
47965 "perm",
47966 "/nodes/{node}",
47967 [
47968 "Sys.Syslog"
47969 ]
47970 ]
47971 },
47972 "protected" : 1,
47973 "proxyto" : "node",
47974 "returns" : {
47975 "items" : {
47976 "type" : "string"
47977 },
47978 "type" : "array"
47979 }
47980 }
47981 },
47982 "leaf" : 1,
47983 "path" : "/nodes/{node}/journal",
47984 "text" : "journal"
47985 },
56122987 47986 {
56122987
DM
47987 "info" : {
47988 "POST" : {
e9cd3bd4 47989 "allowtoken" : 1,
44660702
DM
47990 "description" : "Creates a VNC Shell proxy.",
47991 "method" : "POST",
47992 "name" : "vncshell",
47993 "parameters" : {
47994 "additionalProperties" : 0,
56122987 47995 "properties" : {
95895385
TL
47996 "cmd" : {
47997 "default" : "login",
47998 "description" : "Run specific command or default to login.",
47999 "enum" : [
07b013aa 48000 "upgrade",
82551b2b
TL
48001 "login",
48002 "ceph_install"
95895385
TL
48003 ],
48004 "optional" : 1,
48005 "type" : "string"
48006 },
4772952b
TL
48007 "cmd-opts" : {
48008 "default" : "",
48009 "description" : "Add parameters to a command. Encoded as null terminated strings.",
48010 "optional" : 1,
48011 "requires" : "cmd",
48012 "type" : "string",
48013 "typetext" : "<string>"
48014 },
5d9c884c
DM
48015 "height" : {
48016 "description" : "sets the height of the console in pixels.",
48017 "maximum" : 2160,
48018 "minimum" : 16,
48019 "optional" : 1,
48020 "type" : "integer",
48021 "typetext" : "<integer> (16 - 2160)"
48022 },
44660702
DM
48023 "node" : {
48024 "description" : "The cluster node name.",
48025 "format" : "pve-node",
013dc89f
DM
48026 "type" : "string",
48027 "typetext" : "<string>"
7aacca6f 48028 },
44660702
DM
48029 "websocket" : {
48030 "description" : "use websocket instead of standard vnc.",
48031 "optional" : 1,
013dc89f
DM
48032 "type" : "boolean",
48033 "typetext" : "<boolean>"
5d9c884c
DM
48034 },
48035 "width" : {
48036 "description" : "sets the width of the console in pixels.",
48037 "maximum" : 4096,
48038 "minimum" : 16,
48039 "optional" : 1,
48040 "type" : "integer",
48041 "typetext" : "<integer> (16 - 4096)"
56122987 48042 }
44660702 48043 }
56122987 48044 },
56122987
DM
48045 "permissions" : {
48046 "check" : [
48047 "perm",
7aacca6f 48048 "/nodes/{node}",
56122987 48049 [
7aacca6f 48050 "Sys.Console"
56122987 48051 ]
44660702
DM
48052 ],
48053 "description" : "Restricted to users on realm 'pam'"
56122987 48054 },
44660702
DM
48055 "protected" : 1,
48056 "returns" : {
48057 "additionalProperties" : 0,
56122987 48058 "properties" : {
44660702
DM
48059 "cert" : {
48060 "type" : "string"
7aacca6f 48061 },
44660702
DM
48062 "port" : {
48063 "type" : "integer"
7aacca6f 48064 },
44660702
DM
48065 "ticket" : {
48066 "type" : "string"
48067 },
48068 "upid" : {
48069 "type" : "string"
48070 },
48071 "user" : {
48072 "type" : "string"
56122987 48073 }
44660702
DM
48074 }
48075 }
56122987
DM
48076 }
48077 },
7aacca6f 48078 "leaf" : 1,
44660702
DM
48079 "path" : "/nodes/{node}/vncshell",
48080 "text" : "vncshell"
56122987 48081 },
35a75dd3
DM
48082 {
48083 "info" : {
48084 "POST" : {
e9cd3bd4 48085 "allowtoken" : 1,
35a75dd3
DM
48086 "description" : "Creates a VNC Shell proxy.",
48087 "method" : "POST",
48088 "name" : "termproxy",
48089 "parameters" : {
48090 "additionalProperties" : 0,
48091 "properties" : {
95895385
TL
48092 "cmd" : {
48093 "default" : "login",
48094 "description" : "Run specific command or default to login.",
48095 "enum" : [
07b013aa 48096 "upgrade",
82551b2b
TL
48097 "login",
48098 "ceph_install"
95895385
TL
48099 ],
48100 "optional" : 1,
48101 "type" : "string"
48102 },
4772952b
TL
48103 "cmd-opts" : {
48104 "default" : "",
48105 "description" : "Add parameters to a command. Encoded as null terminated strings.",
48106 "optional" : 1,
48107 "requires" : "cmd",
48108 "type" : "string",
48109 "typetext" : "<string>"
48110 },
35a75dd3
DM
48111 "node" : {
48112 "description" : "The cluster node name.",
48113 "format" : "pve-node",
48114 "type" : "string",
48115 "typetext" : "<string>"
35a75dd3
DM
48116 }
48117 }
48118 },
48119 "permissions" : {
48120 "check" : [
48121 "perm",
48122 "/nodes/{node}",
48123 [
48124 "Sys.Console"
48125 ]
48126 ],
48127 "description" : "Restricted to users on realm 'pam'"
48128 },
48129 "protected" : 1,
48130 "returns" : {
48131 "additionalProperties" : 0,
48132 "properties" : {
48133 "port" : {
48134 "type" : "integer"
48135 },
48136 "ticket" : {
48137 "type" : "string"
48138 },
48139 "upid" : {
48140 "type" : "string"
48141 },
48142 "user" : {
48143 "type" : "string"
48144 }
48145 }
48146 }
48147 }
48148 },
48149 "leaf" : 1,
48150 "path" : "/nodes/{node}/termproxy",
48151 "text" : "termproxy"
48152 },
56122987
DM
48153 {
48154 "info" : {
48155 "GET" : {
e9cd3bd4 48156 "allowtoken" : 1,
0695fdaf 48157 "description" : "Opens a websocket for VNC traffic.",
44660702
DM
48158 "method" : "GET",
48159 "name" : "vncwebsocket",
56122987 48160 "parameters" : {
44660702 48161 "additionalProperties" : 0,
56122987
DM
48162 "properties" : {
48163 "node" : {
48164 "description" : "The cluster node name.",
44660702 48165 "format" : "pve-node",
013dc89f
DM
48166 "type" : "string",
48167 "typetext" : "<string>"
7aacca6f
DM
48168 },
48169 "port" : {
7aacca6f
DM
48170 "description" : "Port number returned by previous vncproxy call.",
48171 "maximum" : 5999,
44660702 48172 "minimum" : 5900,
4bd7df8b 48173 "type" : "integer",
013dc89f 48174 "typetext" : "<integer> (5900 - 5999)"
44660702
DM
48175 },
48176 "vncticket" : {
48177 "description" : "Ticket from previous call to vncproxy.",
48178 "maxLength" : 512,
013dc89f
DM
48179 "type" : "string",
48180 "typetext" : "<string>"
56122987 48181 }
44660702 48182 }
56122987 48183 },
56122987
DM
48184 "permissions" : {
48185 "check" : [
48186 "perm",
48187 "/nodes/{node}",
48188 [
7aacca6f 48189 "Sys.Console"
56122987 48190 ]
44660702
DM
48191 ],
48192 "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket)."
48193 },
48194 "returns" : {
48195 "properties" : {
48196 "port" : {
48197 "type" : "string"
48198 }
48199 },
48200 "type" : "object"
7aacca6f 48201 }
56122987
DM
48202 }
48203 },
44660702 48204 "leaf" : 1,
7aacca6f 48205 "path" : "/nodes/{node}/vncwebsocket",
44660702 48206 "text" : "vncwebsocket"
56122987
DM
48207 },
48208 {
48209 "info" : {
48210 "POST" : {
e9cd3bd4 48211 "allowtoken" : 1,
44660702 48212 "description" : "Creates a SPICE shell.",
7aacca6f 48213 "method" : "POST",
44660702 48214 "name" : "spiceshell",
56122987 48215 "parameters" : {
7aacca6f 48216 "additionalProperties" : 0,
56122987 48217 "properties" : {
95895385
TL
48218 "cmd" : {
48219 "default" : "login",
48220 "description" : "Run specific command or default to login.",
48221 "enum" : [
07b013aa 48222 "upgrade",
82551b2b
TL
48223 "login",
48224 "ceph_install"
95895385
TL
48225 ],
48226 "optional" : 1,
48227 "type" : "string"
48228 },
4772952b
TL
48229 "cmd-opts" : {
48230 "default" : "",
48231 "description" : "Add parameters to a command. Encoded as null terminated strings.",
48232 "optional" : 1,
48233 "requires" : "cmd",
48234 "type" : "string",
48235 "typetext" : "<string>"
48236 },
7aacca6f 48237 "node" : {
44660702 48238 "description" : "The cluster node name.",
56122987 48239 "format" : "pve-node",
013dc89f
DM
48240 "type" : "string",
48241 "typetext" : "<string>"
7aacca6f 48242 },
44660702 48243 "proxy" : {
4d47f125 48244 "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
48245 "format" : "address",
48246 "optional" : 1,
013dc89f
DM
48247 "type" : "string",
48248 "typetext" : "<string>"
56122987 48249 }
7aacca6f 48250 }
56122987 48251 },
56122987
DM
48252 "permissions" : {
48253 "check" : [
48254 "perm",
7aacca6f 48255 "/nodes/{node}",
56122987 48256 [
7aacca6f 48257 "Sys.Console"
56122987 48258 ]
7aacca6f
DM
48259 ],
48260 "description" : "Restricted to users on realm 'pam'"
44660702
DM
48261 },
48262 "protected" : 1,
48263 "proxyto" : "node",
48264 "returns" : {
48265 "additionalProperties" : 1,
48266 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
48267 "properties" : {
48268 "host" : {
48269 "type" : "string"
48270 },
48271 "password" : {
48272 "type" : "string"
48273 },
48274 "proxy" : {
48275 "type" : "string"
48276 },
48277 "tls-port" : {
48278 "type" : "integer"
48279 },
48280 "type" : {
48281 "type" : "string"
48282 }
48283 }
7aacca6f 48284 }
56122987
DM
48285 }
48286 },
56122987 48287 "leaf" : 1,
44660702
DM
48288 "path" : "/nodes/{node}/spiceshell",
48289 "text" : "spiceshell"
56122987
DM
48290 },
48291 {
56122987 48292 "info" : {
7aacca6f 48293 "GET" : {
e9cd3bd4 48294 "allowtoken" : 1,
44660702 48295 "description" : "Read DNS settings.",
7aacca6f 48296 "method" : "GET",
44660702
DM
48297 "name" : "dns",
48298 "parameters" : {
7aacca6f
DM
48299 "additionalProperties" : 0,
48300 "properties" : {
44660702
DM
48301 "node" : {
48302 "description" : "The cluster node name.",
48303 "format" : "pve-node",
013dc89f
DM
48304 "type" : "string",
48305 "typetext" : "<string>"
7aacca6f
DM
48306 }
48307 }
48308 },
7aacca6f
DM
48309 "permissions" : {
48310 "check" : [
48311 "perm",
48312 "/nodes/{node}",
48313 [
48314 "Sys.Audit"
48315 ]
48316 ]
48317 },
44660702
DM
48318 "proxyto" : "node",
48319 "returns" : {
56122987
DM
48320 "additionalProperties" : 0,
48321 "properties" : {
44660702
DM
48322 "dns1" : {
48323 "description" : "First name server IP address.",
48324 "optional" : 1,
48325 "type" : "string"
48326 },
48327 "dns2" : {
48328 "description" : "Second name server IP address.",
48329 "optional" : 1,
48330 "type" : "string"
48331 },
48332 "dns3" : {
48333 "description" : "Third name server IP address.",
48334 "optional" : 1,
48335 "type" : "string"
48336 },
48337 "search" : {
48338 "description" : "Search domain for host-name lookup.",
48339 "optional" : 1,
48340 "type" : "string"
7aacca6f 48341 }
44660702
DM
48342 },
48343 "type" : "object"
48344 }
7aacca6f
DM
48345 },
48346 "PUT" : {
e9cd3bd4 48347 "allowtoken" : 1,
44660702
DM
48348 "description" : "Write DNS settings.",
48349 "method" : "PUT",
7aacca6f
DM
48350 "name" : "update_dns",
48351 "parameters" : {
48352 "additionalProperties" : 0,
48353 "properties" : {
44660702
DM
48354 "dns1" : {
48355 "description" : "First name server IP address.",
48356 "format" : "ip",
48357 "optional" : 1,
013dc89f
DM
48358 "type" : "string",
48359 "typetext" : "<string>"
7aacca6f 48360 },
44660702
DM
48361 "dns2" : {
48362 "description" : "Second name server IP address.",
48363 "format" : "ip",
7aacca6f 48364 "optional" : 1,
013dc89f
DM
48365 "type" : "string",
48366 "typetext" : "<string>"
7aacca6f 48367 },
44660702
DM
48368 "dns3" : {
48369 "description" : "Third name server IP address.",
48370 "format" : "ip",
7aacca6f 48371 "optional" : 1,
013dc89f
DM
48372 "type" : "string",
48373 "typetext" : "<string>"
7aacca6f
DM
48374 },
48375 "node" : {
44660702 48376 "description" : "The cluster node name.",
56122987 48377 "format" : "pve-node",
013dc89f
DM
48378 "type" : "string",
48379 "typetext" : "<string>"
7aacca6f 48380 },
44660702
DM
48381 "search" : {
48382 "description" : "Search domain for host-name lookup.",
013dc89f
DM
48383 "type" : "string",
48384 "typetext" : "<string>"
56122987
DM
48385 }
48386 }
48387 },
48388 "permissions" : {
48389 "check" : [
48390 "perm",
7aacca6f 48391 "/nodes/{node}",
56122987 48392 [
7aacca6f 48393 "Sys.Modify"
56122987
DM
48394 ]
48395 ]
48396 },
44660702 48397 "protected" : 1,
7aacca6f 48398 "proxyto" : "node",
56122987 48399 "returns" : {
7aacca6f
DM
48400 "type" : "null"
48401 }
56122987 48402 }
44660702
DM
48403 },
48404 "leaf" : 1,
48405 "path" : "/nodes/{node}/dns",
48406 "text" : "dns"
56122987
DM
48407 },
48408 {
48409 "info" : {
7aacca6f 48410 "GET" : {
e9cd3bd4 48411 "allowtoken" : 1,
7aacca6f 48412 "description" : "Read server time and time zone settings.",
44660702
DM
48413 "method" : "GET",
48414 "name" : "time",
56122987 48415 "parameters" : {
44660702 48416 "additionalProperties" : 0,
56122987
DM
48417 "properties" : {
48418 "node" : {
44660702 48419 "description" : "The cluster node name.",
56122987 48420 "format" : "pve-node",
013dc89f
DM
48421 "type" : "string",
48422 "typetext" : "<string>"
56122987 48423 }
44660702 48424 }
56122987
DM
48425 },
48426 "permissions" : {
48427 "check" : [
48428 "perm",
7aacca6f 48429 "/nodes/{node}",
56122987 48430 [
7aacca6f 48431 "Sys.Audit"
56122987
DM
48432 ]
48433 ]
44660702
DM
48434 },
48435 "proxyto" : "node",
48436 "returns" : {
48437 "additionalProperties" : 0,
48438 "properties" : {
48439 "localtime" : {
48440 "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
48441 "minimum" : 1297163644,
4d47f125 48442 "renderer" : "timestamp_gmt",
44660702
DM
48443 "type" : "integer"
48444 },
48445 "time" : {
48446 "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
48447 "minimum" : 1297163644,
4d47f125 48448 "renderer" : "timestamp",
44660702
DM
48449 "type" : "integer"
48450 },
48451 "timezone" : {
48452 "description" : "Time zone",
48453 "type" : "string"
48454 }
48455 },
48456 "type" : "object"
7aacca6f
DM
48457 }
48458 },
48459 "PUT" : {
e9cd3bd4 48460 "allowtoken" : 1,
7aacca6f 48461 "description" : "Set time zone.",
44660702
DM
48462 "method" : "PUT",
48463 "name" : "set_timezone",
48464 "parameters" : {
48465 "additionalProperties" : 0,
48466 "properties" : {
48467 "node" : {
48468 "description" : "The cluster node name.",
48469 "format" : "pve-node",
013dc89f
DM
48470 "type" : "string",
48471 "typetext" : "<string>"
44660702
DM
48472 },
48473 "timezone" : {
48474 "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
013dc89f
DM
48475 "type" : "string",
48476 "typetext" : "<string>"
44660702
DM
48477 }
48478 }
48479 },
7aacca6f
DM
48480 "permissions" : {
48481 "check" : [
48482 "perm",
48483 "/nodes/{node}",
48484 [
48485 "Sys.Modify"
48486 ]
48487 ]
56122987 48488 },
7aacca6f 48489 "protected" : 1,
44660702
DM
48490 "proxyto" : "node",
48491 "returns" : {
48492 "type" : "null"
48493 }
7aacca6f
DM
48494 }
48495 },
7aacca6f 48496 "leaf" : 1,
44660702
DM
48497 "path" : "/nodes/{node}/time",
48498 "text" : "time"
7aacca6f
DM
48499 },
48500 {
48501 "info" : {
44660702 48502 "GET" : {
e9cd3bd4 48503 "allowtoken" : 1,
44660702
DM
48504 "description" : "Get list of appliances.",
48505 "method" : "GET",
48506 "name" : "aplinfo",
7aacca6f
DM
48507 "parameters" : {
48508 "additionalProperties" : 0,
48509 "properties" : {
7aacca6f 48510 "node" : {
44660702 48511 "description" : "The cluster node name.",
7aacca6f 48512 "format" : "pve-node",
013dc89f
DM
48513 "type" : "string",
48514 "typetext" : "<string>"
7aacca6f
DM
48515 }
48516 }
56122987 48517 },
7aacca6f 48518 "permissions" : {
44660702 48519 "user" : "all"
56122987 48520 },
44660702 48521 "proxyto" : "node",
7aacca6f
DM
48522 "returns" : {
48523 "items" : {
44660702
DM
48524 "properties" : {},
48525 "type" : "object"
7aacca6f
DM
48526 },
48527 "type" : "array"
44660702
DM
48528 }
48529 },
48530 "POST" : {
e9cd3bd4 48531 "allowtoken" : 1,
44660702
DM
48532 "description" : "Download appliance templates.",
48533 "method" : "POST",
48534 "name" : "apl_download",
7aacca6f
DM
48535 "parameters" : {
48536 "additionalProperties" : 0,
48537 "properties" : {
48538 "node" : {
7aacca6f 48539 "description" : "The cluster node name.",
44660702 48540 "format" : "pve-node",
013dc89f
DM
48541 "type" : "string",
48542 "typetext" : "<string>"
44660702
DM
48543 },
48544 "storage" : {
4bd7df8b 48545 "description" : "The storage where the template will be stored",
44660702 48546 "format" : "pve-storage-id",
013dc89f
DM
48547 "type" : "string",
48548 "typetext" : "<string>"
44660702
DM
48549 },
48550 "template" : {
1e3f8156 48551 "description" : "The template which will downloaded",
44660702 48552 "maxLength" : 255,
013dc89f
DM
48553 "type" : "string",
48554 "typetext" : "<string>"
7aacca6f
DM
48555 }
48556 }
56122987 48557 },
7aacca6f 48558 "permissions" : {
44660702
DM
48559 "check" : [
48560 "perm",
48561 "/storage/{storage}",
48562 [
48563 "Datastore.AllocateTemplate"
48564 ]
48565 ]
48566 },
48567 "protected" : 1,
48568 "proxyto" : "node",
48569 "returns" : {
48570 "type" : "string"
7aacca6f
DM
48571 }
48572 }
48573 },
7aacca6f 48574 "leaf" : 1,
44660702
DM
48575 "path" : "/nodes/{node}/aplinfo",
48576 "text" : "aplinfo"
7aacca6f 48577 },
5370fa8c
TL
48578 {
48579 "info" : {
48580 "GET" : {
48581 "allowtoken" : 1,
48582 "description" : "Query metadata of an URL: file size, file name and mime type.",
48583 "method" : "GET",
48584 "name" : "query_url_metadata",
48585 "parameters" : {
48586 "additionalProperties" : 0,
48587 "properties" : {
48588 "node" : {
48589 "description" : "The cluster node name.",
48590 "format" : "pve-node",
48591 "type" : "string",
48592 "typetext" : "<string>"
48593 },
48594 "url" : {
48595 "description" : "The URL to query the metadata from.",
48596 "pattern" : "https?://.*",
48597 "type" : "string"
48598 },
48599 "verify-certificates" : {
48600 "default" : 1,
48601 "description" : "If false, no SSL/TLS certificates will be verified.",
48602 "optional" : 1,
48603 "type" : "boolean",
48604 "typetext" : "<boolean>"
48605 }
48606 }
48607 },
48608 "permissions" : {
48609 "check" : [
48610 "perm",
48611 "/",
48612 [
48613 "Sys.Audit",
48614 "Sys.Modify"
48615 ]
48616 ]
48617 },
48618 "proxyto" : "node",
48619 "returns" : {
48620 "properties" : {
48621 "filename" : {
48622 "optional" : 1,
48623 "type" : "string"
48624 },
48625 "mimetype" : {
48626 "optional" : 1,
48627 "type" : "string"
48628 },
48629 "size" : {
48630 "optional" : 1,
48631 "renderer" : "bytes",
48632 "type" : "integer"
48633 }
48634 },
48635 "type" : "object"
48636 }
48637 }
48638 },
48639 "leaf" : 1,
48640 "path" : "/nodes/{node}/query-url-metadata",
48641 "text" : "query-url-metadata"
48642 },
7aacca6f
DM
48643 {
48644 "info" : {
48645 "GET" : {
e9cd3bd4 48646 "allowtoken" : 1,
44660702
DM
48647 "description" : "Gather various systems information about a node",
48648 "method" : "GET",
48649 "name" : "report",
7aacca6f 48650 "parameters" : {
44660702 48651 "additionalProperties" : 0,
7aacca6f
DM
48652 "properties" : {
48653 "node" : {
7aacca6f 48654 "description" : "The cluster node name.",
44660702 48655 "format" : "pve-node",
013dc89f
DM
48656 "type" : "string",
48657 "typetext" : "<string>"
7aacca6f 48658 }
44660702 48659 }
56122987 48660 },
7aacca6f
DM
48661 "permissions" : {
48662 "check" : [
48663 "perm",
48664 "/nodes/{node}",
48665 [
48666 "Sys.Audit"
48667 ]
48668 ]
56122987 48669 },
44660702 48670 "protected" : 1,
7aacca6f
DM
48671 "proxyto" : "node",
48672 "returns" : {
56122987 48673 "type" : "string"
7aacca6f
DM
48674 }
48675 }
48676 },
7aacca6f 48677 "leaf" : 1,
44660702
DM
48678 "path" : "/nodes/{node}/report",
48679 "text" : "report"
7aacca6f
DM
48680 },
48681 {
7aacca6f
DM
48682 "info" : {
48683 "POST" : {
e9cd3bd4 48684 "allowtoken" : 1,
1c532546 48685 "description" : "Start all VMs and containers located on this node (by default only those with onboot=1).",
7aacca6f 48686 "method" : "POST",
44660702 48687 "name" : "startall",
7aacca6f 48688 "parameters" : {
44660702 48689 "additionalProperties" : 0,
7aacca6f
DM
48690 "properties" : {
48691 "force" : {
1c532546
TL
48692 "default" : "off",
48693 "description" : "Issue start command even if virtual guest have 'onboot' not set or set to off.",
7aacca6f 48694 "optional" : 1,
013dc89f
DM
48695 "type" : "boolean",
48696 "typetext" : "<boolean>"
7aacca6f
DM
48697 },
48698 "node" : {
7aacca6f 48699 "description" : "The cluster node name.",
44660702 48700 "format" : "pve-node",
013dc89f
DM
48701 "type" : "string",
48702 "typetext" : "<string>"
52e44c50
FG
48703 },
48704 "vms" : {
1c532546 48705 "description" : "Only consider guests from this comma separated list of VMIDs.",
52e44c50
FG
48706 "format" : "pve-vmid-list",
48707 "optional" : 1,
48708 "type" : "string",
48709 "typetext" : "<string>"
7aacca6f 48710 }
44660702 48711 }
56122987 48712 },
7aacca6f 48713 "permissions" : {
9d2e98ed
TL
48714 "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
48715 "user" : "all"
44660702
DM
48716 },
48717 "protected" : 1,
48718 "proxyto" : "node",
48719 "returns" : {
48720 "type" : "string"
7aacca6f
DM
48721 }
48722 }
48723 },
44660702 48724 "leaf" : 1,
7aacca6f 48725 "path" : "/nodes/{node}/startall",
44660702 48726 "text" : "startall"
7aacca6f
DM
48727 },
48728 {
7aacca6f
DM
48729 "info" : {
48730 "POST" : {
e9cd3bd4 48731 "allowtoken" : 1,
7aacca6f 48732 "description" : "Stop all VMs and Containers.",
44660702
DM
48733 "method" : "POST",
48734 "name" : "stopall",
7aacca6f 48735 "parameters" : {
44660702 48736 "additionalProperties" : 0,
7aacca6f 48737 "properties" : {
9d2e98ed
TL
48738 "force-stop" : {
48739 "default" : 1,
48740 "description" : "Force a hard-stop after the timeout.",
48741 "optional" : 1,
48742 "type" : "boolean",
48743 "typetext" : "<boolean>"
48744 },
7aacca6f 48745 "node" : {
44660702 48746 "description" : "The cluster node name.",
7aacca6f 48747 "format" : "pve-node",
013dc89f
DM
48748 "type" : "string",
48749 "typetext" : "<string>"
52e44c50 48750 },
9d2e98ed
TL
48751 "timeout" : {
48752 "default" : 180,
48753 "description" : "Timeout for each guest shutdown task. Depending on `force-stop`, the shutdown gets then simply aborted or a hard-stop is forced.",
48754 "maximum" : 7200,
48755 "minimum" : 0,
48756 "optional" : 1,
48757 "type" : "integer",
48758 "typetext" : "<integer> (0 - 7200)"
48759 },
52e44c50
FG
48760 "vms" : {
48761 "description" : "Only consider Guests with these IDs.",
48762 "format" : "pve-vmid-list",
48763 "optional" : 1,
48764 "type" : "string",
48765 "typetext" : "<string>"
7aacca6f 48766 }
44660702 48767 }
56122987 48768 },
7aacca6f 48769 "permissions" : {
9d2e98ed
TL
48770 "description" : "The 'VM.PowerMgmt' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
48771 "user" : "all"
56122987 48772 },
44660702 48773 "protected" : 1,
7aacca6f 48774 "proxyto" : "node",
44660702
DM
48775 "returns" : {
48776 "type" : "string"
48777 }
48778 }
56122987 48779 },
44660702
DM
48780 "leaf" : 1,
48781 "path" : "/nodes/{node}/stopall",
48782 "text" : "stopall"
48783 },
48784 {
48785 "info" : {
48786 "POST" : {
e9cd3bd4 48787 "allowtoken" : 1,
44660702
DM
48788 "description" : "Migrate all VMs and Containers.",
48789 "method" : "POST",
48790 "name" : "migrateall",
48791 "parameters" : {
48792 "additionalProperties" : 0,
48793 "properties" : {
48794 "maxworkers" : {
9d2e98ed 48795 "description" : "Maximal number of parallel migration job. If not set, uses'max_workers' from datacenter.cfg. One of both must be set!",
44660702
DM
48796 "minimum" : 1,
48797 "optional" : 1,
4bd7df8b 48798 "type" : "integer",
013dc89f 48799 "typetext" : "<integer> (1 - N)"
44660702
DM
48800 },
48801 "node" : {
48802 "description" : "The cluster node name.",
48803 "format" : "pve-node",
013dc89f
DM
48804 "type" : "string",
48805 "typetext" : "<string>"
44660702
DM
48806 },
48807 "target" : {
48808 "description" : "Target node.",
48809 "format" : "pve-node",
013dc89f
DM
48810 "type" : "string",
48811 "typetext" : "<string>"
52e44c50
FG
48812 },
48813 "vms" : {
48814 "description" : "Only consider Guests with these IDs.",
48815 "format" : "pve-vmid-list",
48816 "optional" : 1,
48817 "type" : "string",
48818 "typetext" : "<string>"
e9cd3bd4
TL
48819 },
48820 "with-local-disks" : {
48821 "description" : "Enable live storage migration for local disk",
48822 "optional" : 1,
48823 "type" : "boolean",
48824 "typetext" : "<boolean>"
44660702
DM
48825 }
48826 }
48827 },
48828 "permissions" : {
9d2e98ed
TL
48829 "description" : "The 'VM.Migrate' permission is required on '/' or on '/vms/<ID>' for each ID passed via the 'vms' parameter.",
48830 "user" : "all"
44660702
DM
48831 },
48832 "protected" : 1,
48833 "proxyto" : "node",
48834 "returns" : {
48835 "type" : "string"
48836 }
48837 }
56122987 48838 },
44660702
DM
48839 "leaf" : 1,
48840 "path" : "/nodes/{node}/migrateall",
48841 "text" : "migrateall"
4d47f125
TL
48842 },
48843 {
48844 "info" : {
48845 "GET" : {
e9cd3bd4 48846 "allowtoken" : 1,
4d47f125
TL
48847 "description" : "Get the content of /etc/hosts.",
48848 "method" : "GET",
48849 "name" : "get_etc_hosts",
48850 "parameters" : {
48851 "additionalProperties" : 0,
48852 "properties" : {
48853 "node" : {
48854 "description" : "The cluster node name.",
48855 "format" : "pve-node",
48856 "type" : "string",
48857 "typetext" : "<string>"
48858 }
48859 }
48860 },
48861 "permissions" : {
48862 "check" : [
48863 "perm",
48864 "/",
48865 [
48866 "Sys.Audit"
48867 ]
48868 ]
48869 },
48870 "protected" : 1,
48871 "proxyto" : "node",
48872 "returns" : {
48873 "properties" : {
48874 "data" : {
48875 "description" : "The content of /etc/hosts.",
48876 "type" : "string"
48877 },
48878 "digest" : {
82551b2b
TL
48879 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
48880 "maxLength" : 64,
4d47f125
TL
48881 "optional" : 1,
48882 "type" : "string"
48883 }
48884 },
48885 "type" : "object"
48886 }
48887 },
48888 "POST" : {
e9cd3bd4 48889 "allowtoken" : 1,
4d47f125
TL
48890 "description" : "Write /etc/hosts.",
48891 "method" : "POST",
48892 "name" : "write_etc_hosts",
48893 "parameters" : {
48894 "additionalProperties" : 0,
48895 "properties" : {
48896 "data" : {
48897 "description" : "The target content of /etc/hosts.",
48898 "type" : "string",
48899 "typetext" : "<string>"
48900 },
48901 "digest" : {
82551b2b
TL
48902 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
48903 "maxLength" : 64,
4d47f125
TL
48904 "optional" : 1,
48905 "type" : "string",
48906 "typetext" : "<string>"
48907 },
48908 "node" : {
48909 "description" : "The cluster node name.",
48910 "format" : "pve-node",
48911 "type" : "string",
48912 "typetext" : "<string>"
48913 }
48914 }
48915 },
48916 "permissions" : {
48917 "check" : [
48918 "perm",
48919 "/nodes/{node}",
48920 [
48921 "Sys.Modify"
48922 ]
48923 ]
48924 },
48925 "protected" : 1,
48926 "proxyto" : "node",
48927 "returns" : {
48928 "type" : "null"
48929 }
48930 }
48931 },
48932 "leaf" : 1,
48933 "path" : "/nodes/{node}/hosts",
48934 "text" : "hosts"
44660702
DM
48935 }
48936 ],
48937 "info" : {
48938 "GET" : {
e9cd3bd4 48939 "allowtoken" : 1,
44660702
DM
48940 "description" : "Node index.",
48941 "method" : "GET",
48942 "name" : "index",
48943 "parameters" : {
48944 "additionalProperties" : 0,
48945 "properties" : {
48946 "node" : {
48947 "description" : "The cluster node name.",
48948 "format" : "pve-node",
013dc89f
DM
48949 "type" : "string",
48950 "typetext" : "<string>"
44660702
DM
48951 }
48952 }
56122987 48953 },
44660702
DM
48954 "permissions" : {
48955 "user" : "all"
56122987 48956 },
44660702
DM
48957 "returns" : {
48958 "items" : {
48959 "properties" : {},
48960 "type" : "object"
48961 },
48962 "links" : [
48963 {
48964 "href" : "{name}",
48965 "rel" : "child"
48966 }
56122987 48967 ],
44660702 48968 "type" : "array"
7aacca6f
DM
48969 }
48970 }
48971 },
44660702
DM
48972 "leaf" : 0,
48973 "path" : "/nodes/{node}",
48974 "text" : "{node}"
48975 }
48976 ],
48977 "info" : {
7aacca6f 48978 "GET" : {
e9cd3bd4 48979 "allowtoken" : 1,
44660702 48980 "description" : "Cluster node index.",
7aacca6f 48981 "method" : "GET",
44660702 48982 "name" : "index",
7aacca6f 48983 "parameters" : {
7aacca6f
DM
48984 "additionalProperties" : 0
48985 },
48986 "permissions" : {
7aacca6f
DM
48987 "user" : "all"
48988 },
44660702
DM
48989 "returns" : {
48990 "items" : {
4d47f125
TL
48991 "properties" : {
48992 "cpu" : {
48993 "description" : "CPU utilization.",
48994 "optional" : 1,
48995 "renderer" : "fraction_as_percentage",
48996 "type" : "number"
48997 },
48998 "level" : {
48999 "description" : "Support level.",
49000 "optional" : 1,
49001 "type" : "string"
49002 },
49003 "maxcpu" : {
49004 "description" : "Number of available CPUs.",
49005 "optional" : 1,
49006 "type" : "integer"
49007 },
49008 "maxmem" : {
49009 "description" : "Number of available memory in bytes.",
49010 "optional" : 1,
49011 "renderer" : "bytes",
49012 "type" : "integer"
49013 },
49014 "mem" : {
49015 "description" : "Used memory in bytes.",
49016 "optional" : 1,
49017 "renderer" : "bytes",
1c532546 49018 "type" : "integer"
4d47f125
TL
49019 },
49020 "node" : {
49021 "description" : "The cluster node name.",
49022 "format" : "pve-node",
49023 "type" : "string"
49024 },
49025 "ssl_fingerprint" : {
49026 "description" : "The SSL fingerprint for the node certificate.",
49027 "optional" : 1,
49028 "type" : "string"
49029 },
49030 "status" : {
49031 "description" : "Node status.",
49032 "enum" : [
49033 "unknown",
49034 "online",
49035 "offline"
49036 ],
49037 "type" : "string"
49038 },
49039 "uptime" : {
49040 "description" : "Node uptime in seconds.",
49041 "optional" : 1,
49042 "renderer" : "duration",
49043 "type" : "integer"
49044 }
49045 },
44660702
DM
49046 "type" : "object"
49047 },
49048 "links" : [
49049 {
49050 "href" : "{node}",
49051 "rel" : "child"
49052 }
49053 ],
49054 "type" : "array"
49055 }
7aacca6f
DM
49056 }
49057 },
44660702
DM
49058 "leaf" : 0,
49059 "path" : "/nodes",
49060 "text" : "nodes"
49061 },
49062 {
7aacca6f
DM
49063 "children" : [
49064 {
7aacca6f 49065 "info" : {
44660702 49066 "DELETE" : {
e9cd3bd4 49067 "allowtoken" : 1,
44660702
DM
49068 "description" : "Delete storage configuration.",
49069 "method" : "DELETE",
49070 "name" : "delete",
7aacca6f
DM
49071 "parameters" : {
49072 "additionalProperties" : 0,
49073 "properties" : {
49074 "storage" : {
7aacca6f 49075 "description" : "The storage identifier.",
44660702 49076 "format" : "pve-storage-id",
013dc89f
DM
49077 "type" : "string",
49078 "typetext" : "<string>"
7aacca6f
DM
49079 }
49080 }
56122987 49081 },
7aacca6f
DM
49082 "permissions" : {
49083 "check" : [
49084 "perm",
49085 "/storage",
49086 [
49087 "Datastore.Allocate"
49088 ]
49089 ]
56122987 49090 },
44660702
DM
49091 "protected" : 1,
49092 "returns" : {
49093 "type" : "null"
49094 }
49095 },
49096 "GET" : {
e9cd3bd4 49097 "allowtoken" : 1,
44660702
DM
49098 "description" : "Read storage configuration.",
49099 "method" : "GET",
49100 "name" : "read",
7aacca6f
DM
49101 "parameters" : {
49102 "additionalProperties" : 0,
49103 "properties" : {
49104 "storage" : {
44660702 49105 "description" : "The storage identifier.",
7aacca6f 49106 "format" : "pve-storage-id",
013dc89f
DM
49107 "type" : "string",
49108 "typetext" : "<string>"
7aacca6f
DM
49109 }
49110 }
49111 },
44660702
DM
49112 "permissions" : {
49113 "check" : [
49114 "perm",
49115 "/storage/{storage}",
49116 [
49117 "Datastore.Allocate"
49118 ]
49119 ]
49120 },
5da3d723
TL
49121 "returns" : {
49122 "type" : "object"
49123 }
7aacca6f
DM
49124 },
49125 "PUT" : {
e9cd3bd4 49126 "allowtoken" : 1,
44660702
DM
49127 "description" : "Update storage configuration.",
49128 "method" : "PUT",
49129 "name" : "update",
49130 "parameters" : {
49131 "additionalProperties" : 0,
49132 "properties" : {
49133 "blocksize" : {
49134 "description" : "block size",
7aacca6f 49135 "optional" : 1,
013dc89f
DM
49136 "type" : "string",
49137 "typetext" : "<string>"
7aacca6f 49138 },
27a7acb2 49139 "bwlimit" : {
4a407cfd 49140 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
49141 "format" : {
49142 "clone" : {
95895385 49143 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
49144 "format_description" : "LIMIT",
49145 "minimum" : "0",
49146 "optional" : 1,
49147 "type" : "number"
49148 },
49149 "default" : {
95895385 49150 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
49151 "format_description" : "LIMIT",
49152 "minimum" : "0",
49153 "optional" : 1,
49154 "type" : "number"
49155 },
49156 "migration" : {
95895385 49157 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
49158 "format_description" : "LIMIT",
49159 "minimum" : "0",
49160 "optional" : 1,
49161 "type" : "number"
49162 },
49163 "move" : {
95895385 49164 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
49165 "format_description" : "LIMIT",
49166 "minimum" : "0",
49167 "optional" : 1,
49168 "type" : "number"
49169 },
49170 "restore" : {
95895385 49171 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
49172 "format_description" : "LIMIT",
49173 "minimum" : "0",
49174 "optional" : 1,
49175 "type" : "number"
49176 }
49177 },
49178 "optional" : 1,
49179 "type" : "string",
49180 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
49181 },
44660702
DM
49182 "comstar_hg" : {
49183 "description" : "host group for comstar views",
49184 "optional" : 1,
013dc89f
DM
49185 "type" : "string",
49186 "typetext" : "<string>"
7aacca6f 49187 },
44660702
DM
49188 "comstar_tg" : {
49189 "description" : "target group for comstar views",
7aacca6f 49190 "optional" : 1,
013dc89f
DM
49191 "type" : "string",
49192 "typetext" : "<string>"
7aacca6f 49193 },
44660702
DM
49194 "content" : {
49195 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
49196 "format" : "pve-storage-content-list",
7aacca6f 49197 "optional" : 1,
013dc89f
DM
49198 "type" : "string",
49199 "typetext" : "<string>"
7aacca6f 49200 },
9d2e98ed
TL
49201 "content-dirs" : {
49202 "description" : "Overrides for default content type directories.",
49203 "format" : "pve-dir-override-list",
49204 "optional" : 1,
49205 "type" : "string",
49206 "typetext" : "<string>"
49207 },
4a407cfd
TL
49208 "create-base-path" : {
49209 "default" : "yes",
49210 "description" : "Create the base directory if it doesn't exist.",
49211 "optional" : 1,
49212 "type" : "boolean",
49213 "typetext" : "<boolean>"
49214 },
49215 "create-subdirs" : {
49216 "default" : "yes",
49217 "description" : "Populate the directory with the default structure.",
49218 "optional" : 1,
49219 "type" : "boolean",
49220 "typetext" : "<boolean>"
49221 },
c30bb419
TL
49222 "data-pool" : {
49223 "description" : "Data Pool (for erasure coding only)",
49224 "optional" : 1,
49225 "type" : "string",
49226 "typetext" : "<string>"
49227 },
44660702
DM
49228 "delete" : {
49229 "description" : "A list of settings you want to delete.",
49230 "format" : "pve-configid-list",
49231 "maxLength" : 4096,
7aacca6f 49232 "optional" : 1,
013dc89f
DM
49233 "type" : "string",
49234 "typetext" : "<string>"
7aacca6f
DM
49235 },
49236 "digest" : {
82551b2b
TL
49237 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
49238 "maxLength" : 64,
7aacca6f 49239 "optional" : 1,
013dc89f
DM
49240 "type" : "string",
49241 "typetext" : "<string>"
7aacca6f 49242 },
44660702
DM
49243 "disable" : {
49244 "description" : "Flag to disable the storage.",
49245 "optional" : 1,
013dc89f
DM
49246 "type" : "boolean",
49247 "typetext" : "<boolean>"
7aacca6f 49248 },
27a7acb2
DM
49249 "domain" : {
49250 "description" : "CIFS domain.",
49251 "maxLength" : 256,
49252 "optional" : 1,
49253 "type" : "string",
49254 "typetext" : "<string>"
49255 },
04d22a9f
TL
49256 "encryption-key" : {
49257 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
49258 "optional" : 1,
49259 "type" : "string",
49260 "typetext" : "<string>"
49261 },
c5aa7e14
TL
49262 "fingerprint" : {
49263 "description" : "Certificate SHA 256 fingerprint.",
49264 "optional" : 1,
49265 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
49266 "type" : "string"
49267 },
7aacca6f
DM
49268 "format" : {
49269 "description" : "Default image format.",
44660702 49270 "format" : "pve-storage-format",
7aacca6f 49271 "optional" : 1,
013dc89f
DM
49272 "type" : "string",
49273 "typetext" : "<string>"
7aacca6f 49274 },
5370fa8c
TL
49275 "fs-name" : {
49276 "description" : "The Ceph filesystem name.",
49277 "format" : "pve-configid",
49278 "optional" : 1,
49279 "type" : "string",
49280 "typetext" : "<string>"
49281 },
5da3d723
TL
49282 "fuse" : {
49283 "description" : "Mount CephFS through FUSE.",
49284 "optional" : 1,
49285 "type" : "boolean",
49286 "typetext" : "<boolean>"
49287 },
2c0dde61
DM
49288 "is_mountpoint" : {
49289 "default" : "no",
2489d6df 49290 "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 49291 "optional" : 1,
2489d6df
WB
49292 "type" : "string",
49293 "typetext" : "<string>"
2c0dde61 49294 },
5370fa8c
TL
49295 "keyring" : {
49296 "description" : "Client keyring contents (for external clusters).",
49297 "optional" : 1,
49298 "type" : "string",
49299 "typetext" : "<string>"
49300 },
44660702 49301 "krbd" : {
e2d681b3 49302 "description" : "Always access rbd through krbd kernel module.",
7aacca6f 49303 "optional" : 1,
013dc89f
DM
49304 "type" : "boolean",
49305 "typetext" : "<boolean>"
7aacca6f 49306 },
4d47f125
TL
49307 "lio_tpg" : {
49308 "description" : "target portal group for Linux LIO targets",
49309 "optional" : 1,
49310 "type" : "string",
49311 "typetext" : "<string>"
49312 },
d2656385 49313 "master-pubkey" : {
5f4e66fe 49314 "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
49315 "optional" : 1,
49316 "type" : "string",
49317 "typetext" : "<string>"
49318 },
7af2edf9
TL
49319 "max-protected-backups" : {
49320 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
49321 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
49322 "minimum" : -1,
49323 "optional" : 1,
49324 "type" : "integer",
49325 "typetext" : "<integer> (-1 - N)"
49326 },
44660702 49327 "maxfiles" : {
5f4e66fe 49328 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
49329 "minimum" : 0,
49330 "optional" : 1,
4bd7df8b 49331 "type" : "integer",
013dc89f 49332 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
49333 },
49334 "mkdir" : {
49335 "default" : "yes",
4a407cfd 49336 "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 49337 "optional" : 1,
013dc89f
DM
49338 "type" : "boolean",
49339 "typetext" : "<boolean>"
7aacca6f 49340 },
2489d6df
WB
49341 "monhost" : {
49342 "description" : "IP addresses of monitors (for external clusters).",
49343 "format" : "pve-storage-portal-dns-list",
49344 "optional" : 1,
49345 "type" : "string",
49346 "typetext" : "<string>"
49347 },
5c1699e5
TL
49348 "mountpoint" : {
49349 "description" : "mount point",
49350 "format" : "pve-storage-path",
49351 "optional" : 1,
49352 "type" : "string",
49353 "typetext" : "<string>"
49354 },
d2656385 49355 "namespace" : {
de786b48 49356 "description" : "Namespace.",
d2656385
TL
49357 "optional" : 1,
49358 "type" : "string",
49359 "typetext" : "<string>"
49360 },
5f4e66fe
TL
49361 "nocow" : {
49362 "default" : 0,
49363 "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.",
49364 "optional" : 1,
49365 "type" : "boolean",
49366 "typetext" : "<boolean>"
49367 },
7aacca6f 49368 "nodes" : {
44660702 49369 "description" : "List of cluster node names.",
7aacca6f
DM
49370 "format" : "pve-node-list",
49371 "optional" : 1,
013dc89f
DM
49372 "type" : "string",
49373 "typetext" : "<string>"
7aacca6f 49374 },
44660702
DM
49375 "nowritecache" : {
49376 "description" : "disable write caching on the target",
7aacca6f 49377 "optional" : 1,
013dc89f
DM
49378 "type" : "boolean",
49379 "typetext" : "<boolean>"
7aacca6f
DM
49380 },
49381 "options" : {
159464a9 49382 "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
44660702
DM
49383 "format" : "pve-storage-options",
49384 "optional" : 1,
013dc89f
DM
49385 "type" : "string",
49386 "typetext" : "<string>"
44660702 49387 },
27a7acb2 49388 "password" : {
04d22a9f 49389 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
49390 "maxLength" : 256,
49391 "optional" : 1,
49392 "type" : "string",
49393 "typetext" : "<string>"
49394 },
44660702
DM
49395 "pool" : {
49396 "description" : "Pool.",
49397 "optional" : 1,
013dc89f
DM
49398 "type" : "string",
49399 "typetext" : "<string>"
44660702 49400 },
4772952b
TL
49401 "port" : {
49402 "default" : 8007,
49403 "description" : "For non default port.",
49404 "maximum" : 65535,
49405 "minimum" : 1,
49406 "optional" : 1,
49407 "type" : "integer",
49408 "typetext" : "<integer> (1 - 65535)"
49409 },
5370fa8c
TL
49410 "preallocation" : {
49411 "default" : "metadata",
49412 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
49413 "enum" : [
49414 "off",
49415 "metadata",
49416 "falloc",
49417 "full"
49418 ],
49419 "optional" : 1,
49420 "type" : "string"
49421 },
739d4d64
TL
49422 "prune-backups" : {
49423 "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.",
49424 "format" : "prune-backups",
49425 "optional" : 1,
49426 "type" : "string",
4772952b 49427 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 49428 },
44660702
DM
49429 "saferemove" : {
49430 "description" : "Zero-out data when removing LVs.",
49431 "optional" : 1,
013dc89f
DM
49432 "type" : "boolean",
49433 "typetext" : "<boolean>"
7aacca6f
DM
49434 },
49435 "saferemove_throughput" : {
44660702 49436 "description" : "Wipe throughput (cstream -t parameter value).",
7aacca6f 49437 "optional" : 1,
013dc89f
DM
49438 "type" : "string",
49439 "typetext" : "<string>"
7aacca6f 49440 },
44660702
DM
49441 "server" : {
49442 "description" : "Server IP or DNS name.",
49443 "format" : "pve-storage-server",
7aacca6f 49444 "optional" : 1,
013dc89f
DM
49445 "type" : "string",
49446 "typetext" : "<string>"
7aacca6f 49447 },
44660702
DM
49448 "server2" : {
49449 "description" : "Backup volfile server IP or DNS name.",
49450 "format" : "pve-storage-server",
7aacca6f 49451 "optional" : 1,
44660702 49452 "requires" : "server",
013dc89f
DM
49453 "type" : "string",
49454 "typetext" : "<string>"
44660702
DM
49455 },
49456 "shared" : {
49457 "description" : "Mark storage as shared.",
49458 "optional" : 1,
013dc89f
DM
49459 "type" : "boolean",
49460 "typetext" : "<boolean>"
44660702 49461 },
27a7acb2 49462 "smbversion" : {
5370fa8c
TL
49463 "default" : "default",
49464 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 49465 "enum" : [
5370fa8c 49466 "default",
5da3d723
TL
49467 "2.0",
49468 "2.1",
5370fa8c
TL
49469 "3",
49470 "3.0",
49471 "3.11"
5da3d723 49472 ],
27a7acb2 49473 "optional" : 1,
5da3d723 49474 "type" : "string"
27a7acb2 49475 },
44660702
DM
49476 "sparse" : {
49477 "description" : "use sparse volumes",
49478 "optional" : 1,
013dc89f
DM
49479 "type" : "boolean",
49480 "typetext" : "<boolean>"
44660702
DM
49481 },
49482 "storage" : {
49483 "description" : "The storage identifier.",
49484 "format" : "pve-storage-id",
013dc89f
DM
49485 "type" : "string",
49486 "typetext" : "<string>"
44660702 49487 },
5da3d723
TL
49488 "subdir" : {
49489 "description" : "Subdir to mount.",
49490 "format" : "pve-storage-path",
49491 "optional" : 1,
49492 "type" : "string",
49493 "typetext" : "<string>"
49494 },
4bd7df8b
DM
49495 "tagged_only" : {
49496 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
49497 "optional" : 1,
013dc89f
DM
49498 "type" : "boolean",
49499 "typetext" : "<boolean>"
4bd7df8b 49500 },
44660702
DM
49501 "transport" : {
49502 "description" : "Gluster transport: tcp or rdma",
49503 "enum" : [
49504 "tcp",
49505 "rdma",
49506 "unix"
49507 ],
49508 "optional" : 1,
49509 "type" : "string"
7aacca6f
DM
49510 },
49511 "username" : {
49512 "description" : "RBD Id.",
44660702 49513 "optional" : 1,
013dc89f
DM
49514 "type" : "string",
49515 "typetext" : "<string>"
7aacca6f 49516 }
44660702
DM
49517 },
49518 "type" : "object"
49519 },
49520 "permissions" : {
49521 "check" : [
49522 "perm",
49523 "/storage",
49524 [
49525 "Datastore.Allocate"
49526 ]
49527 ]
49528 },
49529 "protected" : 1,
49530 "returns" : {
4772952b
TL
49531 "properties" : {
49532 "config" : {
49533 "additionalProperties" : 1,
49534 "description" : "Partial, possible server generated, configuration properties.",
49535 "optional" : 1,
49536 "properties" : {
49537 "encryption-key" : {
49538 "description" : "The, possible auto-generated, encryption-key.",
49539 "optional" : 1,
49540 "type" : "string"
49541 }
49542 },
49543 "type" : "object"
49544 },
49545 "storage" : {
49546 "description" : "The ID of the created storage.",
49547 "type" : "string"
49548 },
49549 "type" : {
49550 "description" : "The type of the created storage.",
49551 "enum" : [
5f4e66fe 49552 "btrfs",
4772952b
TL
49553 "cephfs",
49554 "cifs",
49555 "dir",
4772952b
TL
49556 "glusterfs",
49557 "iscsi",
49558 "iscsidirect",
49559 "lvm",
49560 "lvmthin",
49561 "nfs",
49562 "pbs",
49563 "rbd",
49564 "zfs",
49565 "zfspool"
49566 ],
49567 "type" : "string"
49568 }
49569 },
49570 "type" : "object"
44660702
DM
49571 }
49572 }
49573 },
49574 "leaf" : 1,
49575 "path" : "/storage/{storage}",
49576 "text" : "{storage}"
49577 }
49578 ],
49579 "info" : {
49580 "GET" : {
e9cd3bd4 49581 "allowtoken" : 1,
44660702
DM
49582 "description" : "Storage index.",
49583 "method" : "GET",
49584 "name" : "index",
49585 "parameters" : {
49586 "additionalProperties" : 0,
49587 "properties" : {
49588 "type" : {
49589 "description" : "Only list storage of specific type",
49590 "enum" : [
5f4e66fe 49591 "btrfs",
5da3d723 49592 "cephfs",
27a7acb2 49593 "cifs",
44660702 49594 "dir",
44660702
DM
49595 "glusterfs",
49596 "iscsi",
49597 "iscsidirect",
49598 "lvm",
49599 "lvmthin",
49600 "nfs",
c5aa7e14 49601 "pbs",
44660702 49602 "rbd",
44660702
DM
49603 "zfs",
49604 "zfspool"
49605 ],
49606 "optional" : 1,
49607 "type" : "string"
49608 }
49609 }
49610 },
49611 "permissions" : {
49612 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
49613 "user" : "all"
49614 },
49615 "returns" : {
49616 "items" : {
49617 "properties" : {
49618 "storage" : {
49619 "type" : "string"
7aacca6f 49620 }
56122987 49621 },
44660702
DM
49622 "type" : "object"
49623 },
49624 "links" : [
49625 {
49626 "href" : "{storage}",
49627 "rel" : "child"
49628 }
49629 ],
49630 "type" : "array"
49631 }
49632 },
49633 "POST" : {
e9cd3bd4 49634 "allowtoken" : 1,
44660702
DM
49635 "description" : "Create a new storage.",
49636 "method" : "POST",
49637 "name" : "create",
49638 "parameters" : {
49639 "additionalProperties" : 0,
49640 "properties" : {
49641 "authsupported" : {
49642 "description" : "Authsupported.",
49643 "optional" : 1,
013dc89f
DM
49644 "type" : "string",
49645 "typetext" : "<string>"
44660702
DM
49646 },
49647 "base" : {
49648 "description" : "Base volume. This volume is automatically activated.",
49649 "format" : "pve-volume-id",
49650 "optional" : 1,
013dc89f
DM
49651 "type" : "string",
49652 "typetext" : "<string>"
44660702
DM
49653 },
49654 "blocksize" : {
49655 "description" : "block size",
49656 "optional" : 1,
013dc89f
DM
49657 "type" : "string",
49658 "typetext" : "<string>"
44660702 49659 },
27a7acb2 49660 "bwlimit" : {
4a407cfd 49661 "description" : "Set I/O bandwidth limit for various operations (in KiB/s).",
27a7acb2
DM
49662 "format" : {
49663 "clone" : {
95895385 49664 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
49665 "format_description" : "LIMIT",
49666 "minimum" : "0",
49667 "optional" : 1,
49668 "type" : "number"
49669 },
49670 "default" : {
95895385 49671 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
49672 "format_description" : "LIMIT",
49673 "minimum" : "0",
49674 "optional" : 1,
49675 "type" : "number"
49676 },
49677 "migration" : {
95895385 49678 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
49679 "format_description" : "LIMIT",
49680 "minimum" : "0",
49681 "optional" : 1,
49682 "type" : "number"
49683 },
49684 "move" : {
95895385 49685 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
49686 "format_description" : "LIMIT",
49687 "minimum" : "0",
49688 "optional" : 1,
49689 "type" : "number"
49690 },
49691 "restore" : {
95895385 49692 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
49693 "format_description" : "LIMIT",
49694 "minimum" : "0",
49695 "optional" : 1,
49696 "type" : "number"
49697 }
49698 },
49699 "optional" : 1,
49700 "type" : "string",
49701 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
49702 },
44660702
DM
49703 "comstar_hg" : {
49704 "description" : "host group for comstar views",
49705 "optional" : 1,
013dc89f
DM
49706 "type" : "string",
49707 "typetext" : "<string>"
44660702
DM
49708 },
49709 "comstar_tg" : {
49710 "description" : "target group for comstar views",
49711 "optional" : 1,
013dc89f
DM
49712 "type" : "string",
49713 "typetext" : "<string>"
44660702
DM
49714 },
49715 "content" : {
49716 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
49717 "format" : "pve-storage-content-list",
49718 "optional" : 1,
013dc89f
DM
49719 "type" : "string",
49720 "typetext" : "<string>"
44660702 49721 },
9d2e98ed
TL
49722 "content-dirs" : {
49723 "description" : "Overrides for default content type directories.",
49724 "format" : "pve-dir-override-list",
49725 "optional" : 1,
49726 "type" : "string",
49727 "typetext" : "<string>"
49728 },
4a407cfd
TL
49729 "create-base-path" : {
49730 "default" : "yes",
49731 "description" : "Create the base directory if it doesn't exist.",
49732 "optional" : 1,
49733 "type" : "boolean",
49734 "typetext" : "<boolean>"
49735 },
49736 "create-subdirs" : {
49737 "default" : "yes",
49738 "description" : "Populate the directory with the default structure.",
49739 "optional" : 1,
49740 "type" : "boolean",
49741 "typetext" : "<boolean>"
49742 },
c30bb419
TL
49743 "data-pool" : {
49744 "description" : "Data Pool (for erasure coding only)",
49745 "optional" : 1,
49746 "type" : "string",
49747 "typetext" : "<string>"
49748 },
c5aa7e14 49749 "datastore" : {
4772952b 49750 "description" : "Proxmox Backup Server datastore name.",
c5aa7e14
TL
49751 "optional" : 1,
49752 "type" : "string",
49753 "typetext" : "<string>"
49754 },
44660702
DM
49755 "disable" : {
49756 "description" : "Flag to disable the storage.",
49757 "optional" : 1,
013dc89f
DM
49758 "type" : "boolean",
49759 "typetext" : "<boolean>"
44660702 49760 },
27a7acb2
DM
49761 "domain" : {
49762 "description" : "CIFS domain.",
49763 "maxLength" : 256,
49764 "optional" : 1,
49765 "type" : "string",
49766 "typetext" : "<string>"
49767 },
04d22a9f
TL
49768 "encryption-key" : {
49769 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
49770 "optional" : 1,
49771 "type" : "string",
49772 "typetext" : "<string>"
49773 },
44660702
DM
49774 "export" : {
49775 "description" : "NFS export path.",
49776 "format" : "pve-storage-path",
49777 "optional" : 1,
013dc89f
DM
49778 "type" : "string",
49779 "typetext" : "<string>"
44660702 49780 },
c5aa7e14
TL
49781 "fingerprint" : {
49782 "description" : "Certificate SHA 256 fingerprint.",
49783 "optional" : 1,
49784 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
49785 "type" : "string"
49786 },
44660702
DM
49787 "format" : {
49788 "description" : "Default image format.",
49789 "format" : "pve-storage-format",
49790 "optional" : 1,
013dc89f
DM
49791 "type" : "string",
49792 "typetext" : "<string>"
44660702 49793 },
5370fa8c
TL
49794 "fs-name" : {
49795 "description" : "The Ceph filesystem name.",
49796 "format" : "pve-configid",
49797 "optional" : 1,
49798 "type" : "string",
49799 "typetext" : "<string>"
49800 },
5da3d723
TL
49801 "fuse" : {
49802 "description" : "Mount CephFS through FUSE.",
49803 "optional" : 1,
49804 "type" : "boolean",
49805 "typetext" : "<boolean>"
49806 },
2c0dde61
DM
49807 "is_mountpoint" : {
49808 "default" : "no",
2489d6df 49809 "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 49810 "optional" : 1,
2489d6df
WB
49811 "type" : "string",
49812 "typetext" : "<string>"
2c0dde61 49813 },
44660702
DM
49814 "iscsiprovider" : {
49815 "description" : "iscsi provider",
49816 "optional" : 1,
013dc89f
DM
49817 "type" : "string",
49818 "typetext" : "<string>"
44660702 49819 },
5370fa8c
TL
49820 "keyring" : {
49821 "description" : "Client keyring contents (for external clusters).",
49822 "optional" : 1,
49823 "type" : "string",
49824 "typetext" : "<string>"
49825 },
44660702 49826 "krbd" : {
e2d681b3 49827 "description" : "Always access rbd through krbd kernel module.",
44660702 49828 "optional" : 1,
013dc89f
DM
49829 "type" : "boolean",
49830 "typetext" : "<boolean>"
56122987 49831 },
4d47f125
TL
49832 "lio_tpg" : {
49833 "description" : "target portal group for Linux LIO targets",
49834 "optional" : 1,
49835 "type" : "string",
49836 "typetext" : "<string>"
49837 },
d2656385 49838 "master-pubkey" : {
5f4e66fe 49839 "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
49840 "optional" : 1,
49841 "type" : "string",
49842 "typetext" : "<string>"
49843 },
7af2edf9
TL
49844 "max-protected-backups" : {
49845 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
49846 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
49847 "minimum" : -1,
49848 "optional" : 1,
49849 "type" : "integer",
49850 "typetext" : "<integer> (-1 - N)"
49851 },
44660702 49852 "maxfiles" : {
5f4e66fe 49853 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
49854 "minimum" : 0,
49855 "optional" : 1,
4bd7df8b 49856 "type" : "integer",
013dc89f 49857 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
49858 },
49859 "mkdir" : {
49860 "default" : "yes",
4a407cfd 49861 "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 49862 "optional" : 1,
013dc89f
DM
49863 "type" : "boolean",
49864 "typetext" : "<boolean>"
7aacca6f 49865 },
44660702 49866 "monhost" : {
2489d6df 49867 "description" : "IP addresses of monitors (for external clusters).",
4bd7df8b 49868 "format" : "pve-storage-portal-dns-list",
44660702 49869 "optional" : 1,
013dc89f
DM
49870 "type" : "string",
49871 "typetext" : "<string>"
7aacca6f 49872 },
5c1699e5
TL
49873 "mountpoint" : {
49874 "description" : "mount point",
49875 "format" : "pve-storage-path",
49876 "optional" : 1,
49877 "type" : "string",
49878 "typetext" : "<string>"
49879 },
d2656385 49880 "namespace" : {
de786b48 49881 "description" : "Namespace.",
d2656385
TL
49882 "optional" : 1,
49883 "type" : "string",
49884 "typetext" : "<string>"
49885 },
5f4e66fe
TL
49886 "nocow" : {
49887 "default" : 0,
49888 "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.",
49889 "optional" : 1,
49890 "type" : "boolean",
49891 "typetext" : "<boolean>"
49892 },
44660702
DM
49893 "nodes" : {
49894 "description" : "List of cluster node names.",
49895 "format" : "pve-node-list",
49896 "optional" : 1,
013dc89f
DM
49897 "type" : "string",
49898 "typetext" : "<string>"
7aacca6f 49899 },
44660702
DM
49900 "nowritecache" : {
49901 "description" : "disable write caching on the target",
49902 "optional" : 1,
013dc89f
DM
49903 "type" : "boolean",
49904 "typetext" : "<boolean>"
44660702
DM
49905 },
49906 "options" : {
159464a9 49907 "description" : "NFS/CIFS mount options (see 'man nfs' or 'man mount.cifs')",
44660702
DM
49908 "format" : "pve-storage-options",
49909 "optional" : 1,
013dc89f
DM
49910 "type" : "string",
49911 "typetext" : "<string>"
44660702 49912 },
27a7acb2 49913 "password" : {
04d22a9f 49914 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
49915 "maxLength" : 256,
49916 "optional" : 1,
49917 "type" : "string",
49918 "typetext" : "<string>"
49919 },
44660702
DM
49920 "path" : {
49921 "description" : "File system path.",
49922 "format" : "pve-storage-path",
49923 "optional" : 1,
013dc89f
DM
49924 "type" : "string",
49925 "typetext" : "<string>"
44660702
DM
49926 },
49927 "pool" : {
49928 "description" : "Pool.",
49929 "optional" : 1,
013dc89f
DM
49930 "type" : "string",
49931 "typetext" : "<string>"
44660702 49932 },
4772952b
TL
49933 "port" : {
49934 "default" : 8007,
49935 "description" : "For non default port.",
49936 "maximum" : 65535,
49937 "minimum" : 1,
49938 "optional" : 1,
49939 "type" : "integer",
49940 "typetext" : "<integer> (1 - 65535)"
49941 },
44660702
DM
49942 "portal" : {
49943 "description" : "iSCSI portal (IP or DNS name with optional port).",
49944 "format" : "pve-storage-portal-dns",
49945 "optional" : 1,
013dc89f
DM
49946 "type" : "string",
49947 "typetext" : "<string>"
44660702 49948 },
5370fa8c
TL
49949 "preallocation" : {
49950 "default" : "metadata",
49951 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
49952 "enum" : [
49953 "off",
49954 "metadata",
49955 "falloc",
49956 "full"
49957 ],
49958 "optional" : 1,
49959 "type" : "string"
49960 },
739d4d64
TL
49961 "prune-backups" : {
49962 "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.",
49963 "format" : "prune-backups",
49964 "optional" : 1,
49965 "type" : "string",
4772952b 49966 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 49967 },
44660702
DM
49968 "saferemove" : {
49969 "description" : "Zero-out data when removing LVs.",
49970 "optional" : 1,
013dc89f
DM
49971 "type" : "boolean",
49972 "typetext" : "<boolean>"
44660702
DM
49973 },
49974 "saferemove_throughput" : {
49975 "description" : "Wipe throughput (cstream -t parameter value).",
49976 "optional" : 1,
013dc89f
DM
49977 "type" : "string",
49978 "typetext" : "<string>"
44660702
DM
49979 },
49980 "server" : {
49981 "description" : "Server IP or DNS name.",
49982 "format" : "pve-storage-server",
49983 "optional" : 1,
013dc89f
DM
49984 "type" : "string",
49985 "typetext" : "<string>"
44660702
DM
49986 },
49987 "server2" : {
49988 "description" : "Backup volfile server IP or DNS name.",
49989 "format" : "pve-storage-server",
49990 "optional" : 1,
49991 "requires" : "server",
013dc89f
DM
49992 "type" : "string",
49993 "typetext" : "<string>"
44660702 49994 },
27a7acb2
DM
49995 "share" : {
49996 "description" : "CIFS share.",
49997 "optional" : 1,
49998 "type" : "string",
49999 "typetext" : "<string>"
50000 },
44660702
DM
50001 "shared" : {
50002 "description" : "Mark storage as shared.",
50003 "optional" : 1,
013dc89f
DM
50004 "type" : "boolean",
50005 "typetext" : "<boolean>"
44660702 50006 },
27a7acb2 50007 "smbversion" : {
5370fa8c
TL
50008 "default" : "default",
50009 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 50010 "enum" : [
5370fa8c 50011 "default",
5da3d723
TL
50012 "2.0",
50013 "2.1",
5370fa8c
TL
50014 "3",
50015 "3.0",
50016 "3.11"
5da3d723 50017 ],
27a7acb2 50018 "optional" : 1,
5da3d723 50019 "type" : "string"
27a7acb2 50020 },
44660702
DM
50021 "sparse" : {
50022 "description" : "use sparse volumes",
50023 "optional" : 1,
013dc89f
DM
50024 "type" : "boolean",
50025 "typetext" : "<boolean>"
44660702
DM
50026 },
50027 "storage" : {
50028 "description" : "The storage identifier.",
50029 "format" : "pve-storage-id",
013dc89f
DM
50030 "type" : "string",
50031 "typetext" : "<string>"
44660702 50032 },
5da3d723
TL
50033 "subdir" : {
50034 "description" : "Subdir to mount.",
50035 "format" : "pve-storage-path",
50036 "optional" : 1,
50037 "type" : "string",
50038 "typetext" : "<string>"
50039 },
4bd7df8b
DM
50040 "tagged_only" : {
50041 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
50042 "optional" : 1,
013dc89f
DM
50043 "type" : "boolean",
50044 "typetext" : "<boolean>"
4bd7df8b 50045 },
44660702
DM
50046 "target" : {
50047 "description" : "iSCSI target.",
50048 "optional" : 1,
013dc89f
DM
50049 "type" : "string",
50050 "typetext" : "<string>"
44660702
DM
50051 },
50052 "thinpool" : {
50053 "description" : "LVM thin pool LV name.",
50054 "format" : "pve-storage-vgname",
50055 "optional" : 1,
013dc89f
DM
50056 "type" : "string",
50057 "typetext" : "<string>"
44660702
DM
50058 },
50059 "transport" : {
50060 "description" : "Gluster transport: tcp or rdma",
50061 "enum" : [
50062 "tcp",
50063 "rdma",
50064 "unix"
7aacca6f 50065 ],
44660702
DM
50066 "optional" : 1,
50067 "type" : "string"
56122987 50068 },
44660702
DM
50069 "type" : {
50070 "description" : "Storage type.",
50071 "enum" : [
5f4e66fe 50072 "btrfs",
5da3d723 50073 "cephfs",
27a7acb2 50074 "cifs",
44660702 50075 "dir",
44660702
DM
50076 "glusterfs",
50077 "iscsi",
50078 "iscsidirect",
50079 "lvm",
50080 "lvmthin",
50081 "nfs",
c5aa7e14 50082 "pbs",
44660702 50083 "rbd",
44660702
DM
50084 "zfs",
50085 "zfspool"
50086 ],
50087 "type" : "string"
56122987 50088 },
44660702
DM
50089 "username" : {
50090 "description" : "RBD Id.",
50091 "optional" : 1,
013dc89f
DM
50092 "type" : "string",
50093 "typetext" : "<string>"
7aacca6f 50094 },
44660702
DM
50095 "vgname" : {
50096 "description" : "Volume group name.",
50097 "format" : "pve-storage-vgname",
50098 "optional" : 1,
013dc89f
DM
50099 "type" : "string",
50100 "typetext" : "<string>"
44660702
DM
50101 },
50102 "volume" : {
50103 "description" : "Glusterfs Volume.",
50104 "optional" : 1,
013dc89f
DM
50105 "type" : "string",
50106 "typetext" : "<string>"
44660702
DM
50107 }
50108 },
50109 "type" : "object"
50110 },
50111 "permissions" : {
50112 "check" : [
50113 "perm",
50114 "/storage",
50115 [
50116 "Datastore.Allocate"
50117 ]
50118 ]
56122987 50119 },
44660702
DM
50120 "protected" : 1,
50121 "returns" : {
4772952b
TL
50122 "properties" : {
50123 "config" : {
50124 "additionalProperties" : 1,
50125 "description" : "Partial, possible server generated, configuration properties.",
50126 "optional" : 1,
50127 "properties" : {
50128 "encryption-key" : {
50129 "description" : "The, possible auto-generated, encryption-key.",
50130 "optional" : 1,
50131 "type" : "string"
50132 }
50133 },
50134 "type" : "object"
50135 },
50136 "storage" : {
50137 "description" : "The ID of the created storage.",
50138 "type" : "string"
50139 },
50140 "type" : {
50141 "description" : "The type of the created storage.",
50142 "enum" : [
5f4e66fe 50143 "btrfs",
4772952b
TL
50144 "cephfs",
50145 "cifs",
50146 "dir",
4772952b
TL
50147 "glusterfs",
50148 "iscsi",
50149 "iscsidirect",
50150 "lvm",
50151 "lvmthin",
50152 "nfs",
50153 "pbs",
50154 "rbd",
50155 "zfs",
50156 "zfspool"
50157 ],
50158 "type" : "string"
50159 }
50160 },
50161 "type" : "object"
44660702
DM
50162 }
50163 }
50164 },
50165 "leaf" : 0,
50166 "path" : "/storage",
50167 "text" : "storage"
50168 },
50169 {
50170 "children" : [
50171 {
56122987
DM
50172 "children" : [
50173 {
bb4c8cf8
TL
50174 "children" : [
50175 {
50176 "info" : {
50177 "GET" : {
e9cd3bd4 50178 "allowtoken" : 1,
bb4c8cf8
TL
50179 "description" : "Get user TFA types (Personal and Realm).",
50180 "method" : "GET",
50181 "name" : "read_user_tfa_type",
50182 "parameters" : {
50183 "additionalProperties" : 0,
50184 "properties" : {
5370fa8c
TL
50185 "multiple" : {
50186 "default" : 0,
50187 "description" : "Request all entries as an array.",
50188 "optional" : 1,
50189 "type" : "boolean",
50190 "typetext" : "<boolean>"
50191 },
bb4c8cf8 50192 "userid" : {
9d2e98ed 50193 "description" : "Full User ID, in the `name@realm` format.",
bb4c8cf8
TL
50194 "format" : "pve-userid",
50195 "maxLength" : 64,
50196 "type" : "string",
50197 "typetext" : "<string>"
50198 }
50199 }
50200 },
50201 "permissions" : {
50202 "check" : [
50203 "or",
50204 [
50205 "userid-param",
50206 "self"
50207 ],
50208 [
50209 "userid-group",
50210 [
50211 "User.Modify",
50212 "Sys.Audit"
50213 ]
50214 ]
50215 ]
50216 },
50217 "protected" : 1,
50218 "returns" : {
50219 "additionalProperties" : 0,
50220 "properties" : {
50221 "realm" : {
50222 "description" : "The type of TFA the users realm has set, if any.",
50223 "enum" : [
50224 "oath",
50225 "yubico"
50226 ],
50227 "optional" : 1,
50228 "type" : "string"
50229 },
5370fa8c
TL
50230 "types" : {
50231 "description" : "Array of the user configured TFA types, if any. Only available if 'multiple' was not passed.",
50232 "items" : {
50233 "description" : "A TFA type.",
50234 "enum" : [
50235 "totp",
50236 "u2f",
50237 "yubico",
50238 "webauthn",
50239 "recovedry"
50240 ],
50241 "type" : "string"
50242 },
50243 "optional" : 1,
50244 "type" : "array"
50245 },
bb4c8cf8 50246 "user" : {
5370fa8c 50247 "description" : "The type of TFA the user has set, if any. Only set if 'multiple' was not passed.",
bb4c8cf8
TL
50248 "enum" : [
50249 "oath",
50250 "u2f"
50251 ],
50252 "optional" : 1,
50253 "type" : "string"
50254 }
50255 },
50256 "type" : "object"
50257 }
50258 }
50259 },
50260 "leaf" : 1,
50261 "path" : "/access/users/{userid}/tfa",
50262 "text" : "tfa"
e9cd3bd4 50263 },
4a407cfd
TL
50264 {
50265 "info" : {
50266 "PUT" : {
50267 "allowtoken" : 1,
50268 "description" : "Unlock a user's TFA authentication.",
50269 "method" : "PUT",
50270 "name" : "unlock_tfa",
50271 "parameters" : {
50272 "additionalProperties" : 0,
50273 "properties" : {
50274 "userid" : {
50275 "description" : "Full User ID, in the `name@realm` format.",
50276 "format" : "pve-userid",
50277 "maxLength" : 64,
50278 "type" : "string",
50279 "typetext" : "<string>"
50280 }
50281 }
50282 },
50283 "permissions" : {
50284 "check" : [
50285 "userid-group",
50286 [
50287 "User.Modify"
50288 ]
50289 ]
50290 },
50291 "protected" : 1,
50292 "returns" : {
50293 "type" : "boolean"
50294 }
50295 }
50296 },
50297 "leaf" : 1,
50298 "path" : "/access/users/{userid}/unlock-tfa",
50299 "text" : "unlock-tfa"
50300 },
e9cd3bd4
TL
50301 {
50302 "children" : [
50303 {
50304 "info" : {
50305 "DELETE" : {
50306 "allowtoken" : 1,
50307 "description" : "Remove API token for a specific user.",
50308 "method" : "DELETE",
50309 "name" : "remove_token",
50310 "parameters" : {
50311 "additionalProperties" : 0,
50312 "properties" : {
50313 "tokenid" : {
50314 "description" : "User-specific token identifier.",
50315 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
50316 "type" : "string"
50317 },
50318 "userid" : {
9d2e98ed 50319 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
50320 "format" : "pve-userid",
50321 "maxLength" : 64,
50322 "type" : "string",
50323 "typetext" : "<string>"
50324 }
50325 }
50326 },
50327 "permissions" : {
50328 "check" : [
50329 "or",
50330 [
50331 "userid-param",
50332 "self"
50333 ],
50334 [
de786b48 50335 "userid-group",
e9cd3bd4
TL
50336 [
50337 "User.Modify"
50338 ]
50339 ]
50340 ]
50341 },
50342 "protected" : 1,
50343 "returns" : {
c5aa7e14
TL
50344 "type" : "null"
50345 }
50346 },
50347 "GET" : {
50348 "allowtoken" : 1,
50349 "description" : "Get specific API token information.",
50350 "method" : "GET",
50351 "name" : "read_token",
50352 "parameters" : {
50353 "additionalProperties" : 0,
50354 "properties" : {
50355 "tokenid" : {
50356 "description" : "User-specific token identifier.",
50357 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
50358 "type" : "string"
50359 },
50360 "userid" : {
9d2e98ed 50361 "description" : "Full User ID, in the `name@realm` format.",
c5aa7e14
TL
50362 "format" : "pve-userid",
50363 "maxLength" : 64,
50364 "type" : "string",
50365 "typetext" : "<string>"
50366 }
50367 }
50368 },
50369 "permissions" : {
50370 "check" : [
50371 "or",
50372 [
50373 "userid-param",
50374 "self"
50375 ],
50376 [
de786b48 50377 "userid-group",
c5aa7e14
TL
50378 [
50379 "User.Modify"
50380 ]
50381 ]
50382 ]
50383 },
50384 "returns" : {
50385 "properties" : {
50386 "comment" : {
50387 "optional" : 1,
50388 "type" : "string"
50389 },
50390 "expire" : {
50391 "default" : "same as user",
50392 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
50393 "minimum" : 0,
50394 "optional" : 1,
50395 "type" : "integer"
50396 },
50397 "privsep" : {
50398 "default" : 1,
50399 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
50400 "optional" : 1,
50401 "type" : "boolean"
50402 }
50403 },
50404 "type" : "object"
50405 }
50406 },
50407 "POST" : {
50408 "allowtoken" : 1,
50409 "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!",
50410 "method" : "POST",
50411 "name" : "generate_token",
50412 "parameters" : {
50413 "additionalProperties" : 0,
50414 "properties" : {
50415 "comment" : {
50416 "optional" : 1,
50417 "type" : "string",
50418 "typetext" : "<string>"
50419 },
50420 "expire" : {
50421 "default" : "same as user",
50422 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
50423 "minimum" : 0,
50424 "optional" : 1,
50425 "type" : "integer",
50426 "typetext" : "<integer> (0 - N)"
50427 },
50428 "privsep" : {
50429 "default" : 1,
50430 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
50431 "optional" : 1,
50432 "type" : "boolean",
50433 "typetext" : "<boolean>"
50434 },
50435 "tokenid" : {
50436 "description" : "User-specific token identifier.",
50437 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
50438 "type" : "string"
50439 },
50440 "userid" : {
9d2e98ed 50441 "description" : "Full User ID, in the `name@realm` format.",
c5aa7e14
TL
50442 "format" : "pve-userid",
50443 "maxLength" : 64,
50444 "type" : "string",
50445 "typetext" : "<string>"
50446 }
50447 }
50448 },
50449 "permissions" : {
50450 "check" : [
50451 "or",
50452 [
50453 "userid-param",
50454 "self"
50455 ],
50456 [
de786b48 50457 "userid-group",
c5aa7e14
TL
50458 [
50459 "User.Modify"
50460 ]
50461 ]
50462 ]
50463 },
50464 "protected" : 1,
50465 "returns" : {
e9cd3bd4
TL
50466 "additionalProperties" : 0,
50467 "properties" : {
c5aa7e14
TL
50468 "full-tokenid" : {
50469 "description" : "The full token id.",
50470 "format_description" : "<userid>!<tokenid>",
e9cd3bd4
TL
50471 "type" : "string"
50472 },
e9cd3bd4
TL
50473 "info" : {
50474 "properties" : {
50475 "comment" : {
50476 "optional" : 1,
50477 "type" : "string"
50478 },
50479 "expire" : {
50480 "default" : "same as user",
50481 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
50482 "minimum" : 0,
50483 "optional" : 1,
50484 "type" : "integer"
50485 },
50486 "privsep" : {
50487 "default" : 1,
50488 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
50489 "optional" : 1,
50490 "type" : "boolean"
50491 }
50492 },
50493 "type" : "object"
50494 },
50495 "value" : {
50496 "description" : "API token value used for authentication.",
50497 "type" : "string"
50498 }
50499 },
50500 "type" : "object"
50501 }
50502 },
50503 "PUT" : {
50504 "allowtoken" : 1,
50505 "description" : "Update API token for a specific user.",
50506 "method" : "PUT",
50507 "name" : "update_token_info",
50508 "parameters" : {
50509 "additionalProperties" : 0,
50510 "properties" : {
50511 "comment" : {
50512 "optional" : 1,
50513 "type" : "string",
50514 "typetext" : "<string>"
50515 },
50516 "expire" : {
50517 "default" : "same as user",
50518 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
50519 "minimum" : 0,
50520 "optional" : 1,
50521 "type" : "integer",
50522 "typetext" : "<integer> (0 - N)"
50523 },
50524 "privsep" : {
50525 "default" : 1,
50526 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
50527 "optional" : 1,
50528 "type" : "boolean",
50529 "typetext" : "<boolean>"
50530 },
50531 "tokenid" : {
50532 "description" : "User-specific token identifier.",
50533 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
50534 "type" : "string"
50535 },
50536 "userid" : {
9d2e98ed 50537 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
50538 "format" : "pve-userid",
50539 "maxLength" : 64,
50540 "type" : "string",
50541 "typetext" : "<string>"
50542 }
50543 }
50544 },
50545 "permissions" : {
50546 "check" : [
50547 "or",
50548 [
50549 "userid-param",
50550 "self"
50551 ],
50552 [
de786b48 50553 "userid-group",
e9cd3bd4
TL
50554 [
50555 "User.Modify"
50556 ]
50557 ]
50558 ]
50559 },
50560 "protected" : 1,
50561 "returns" : {
50562 "description" : "Updated token information.",
50563 "properties" : {
50564 "comment" : {
50565 "optional" : 1,
50566 "type" : "string"
50567 },
50568 "expire" : {
50569 "default" : "same as user",
50570 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
50571 "minimum" : 0,
50572 "optional" : 1,
50573 "type" : "integer"
50574 },
50575 "privsep" : {
50576 "default" : 1,
50577 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
50578 "optional" : 1,
50579 "type" : "boolean"
50580 }
50581 },
50582 "type" : "object"
50583 }
50584 }
50585 },
50586 "leaf" : 1,
50587 "path" : "/access/users/{userid}/token/{tokenid}",
50588 "text" : "{tokenid}"
50589 }
50590 ],
50591 "info" : {
50592 "GET" : {
50593 "allowtoken" : 1,
50594 "description" : "Get user API tokens.",
50595 "method" : "GET",
50596 "name" : "token_index",
50597 "parameters" : {
50598 "additionalProperties" : 0,
50599 "properties" : {
50600 "userid" : {
9d2e98ed 50601 "description" : "Full User ID, in the `name@realm` format.",
e9cd3bd4
TL
50602 "format" : "pve-userid",
50603 "maxLength" : 64,
50604 "type" : "string",
50605 "typetext" : "<string>"
50606 }
50607 }
50608 },
50609 "permissions" : {
50610 "check" : [
50611 "or",
50612 [
50613 "userid-param",
50614 "self"
50615 ],
50616 [
de786b48 50617 "userid-group",
e9cd3bd4
TL
50618 [
50619 "User.Modify"
50620 ]
50621 ]
50622 ]
50623 },
50624 "returns" : {
50625 "items" : {
50626 "properties" : {
50627 "comment" : {
50628 "optional" : 1,
50629 "type" : "string"
50630 },
50631 "expire" : {
50632 "default" : "same as user",
50633 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
50634 "minimum" : 0,
50635 "optional" : 1,
50636 "type" : "integer"
50637 },
50638 "privsep" : {
50639 "default" : 1,
50640 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
50641 "optional" : 1,
50642 "type" : "boolean"
50643 },
50644 "tokenid" : {
50645 "description" : "User-specific token identifier.",
50646 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
50647 "type" : "string"
50648 }
50649 },
50650 "type" : "object"
50651 },
50652 "links" : [
50653 {
50654 "href" : "{tokenid}",
50655 "rel" : "child"
50656 }
50657 ],
50658 "type" : "array"
50659 }
50660 }
50661 },
50662 "leaf" : 0,
50663 "path" : "/access/users/{userid}/token",
50664 "text" : "token"
bb4c8cf8
TL
50665 }
50666 ],
56122987 50667 "info" : {
44660702 50668 "DELETE" : {
e9cd3bd4 50669 "allowtoken" : 1,
44660702
DM
50670 "description" : "Delete user.",
50671 "method" : "DELETE",
50672 "name" : "delete_user",
56122987 50673 "parameters" : {
7aacca6f 50674 "additionalProperties" : 0,
56122987 50675 "properties" : {
56122987 50676 "userid" : {
9d2e98ed 50677 "description" : "Full User ID, in the `name@realm` format.",
56122987 50678 "format" : "pve-userid",
44660702 50679 "maxLength" : 64,
013dc89f
DM
50680 "type" : "string",
50681 "typetext" : "<string>"
56122987 50682 }
7aacca6f 50683 }
56122987 50684 },
56122987
DM
50685 "permissions" : {
50686 "check" : [
44660702 50687 "and",
56122987 50688 [
44660702
DM
50689 "userid-param",
50690 "Realm.AllocateUser"
56122987 50691 ],
44660702
DM
50692 [
50693 "userid-group",
50694 [
50695 "User.Modify"
50696 ]
50697 ]
56122987 50698 ]
7aacca6f 50699 },
44660702 50700 "protected" : 1,
56122987
DM
50701 "returns" : {
50702 "type" : "null"
44660702 50703 }
7aacca6f 50704 },
44660702 50705 "GET" : {
e9cd3bd4 50706 "allowtoken" : 1,
44660702
DM
50707 "description" : "Get user configuration.",
50708 "method" : "GET",
50709 "name" : "read_user",
56122987
DM
50710 "parameters" : {
50711 "additionalProperties" : 0,
50712 "properties" : {
50713 "userid" : {
9d2e98ed 50714 "description" : "Full User ID, in the `name@realm` format.",
56122987 50715 "format" : "pve-userid",
44660702 50716 "maxLength" : 64,
013dc89f
DM
50717 "type" : "string",
50718 "typetext" : "<string>"
56122987
DM
50719 }
50720 }
50721 },
56122987
DM
50722 "permissions" : {
50723 "check" : [
44660702 50724 "userid-group",
56122987 50725 [
44660702
DM
50726 "User.Modify",
50727 "Sys.Audit"
56122987
DM
50728 ]
50729 ]
50730 },
56122987 50731 "returns" : {
7aacca6f 50732 "additionalProperties" : 0,
56122987 50733 "properties" : {
44660702
DM
50734 "comment" : {
50735 "optional" : 1,
50736 "type" : "string"
56122987 50737 },
44660702 50738 "email" : {
e2d681b3 50739 "format" : "email-opt",
44660702
DM
50740 "optional" : 1,
50741 "type" : "string"
7aacca6f
DM
50742 },
50743 "enable" : {
e2d681b3
TL
50744 "default" : 1,
50745 "description" : "Enable the account (default). You can set this to '0' to disable the account",
50746 "optional" : 1,
7aacca6f
DM
50747 "type" : "boolean"
50748 },
44660702 50749 "expire" : {
e2d681b3
TL
50750 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
50751 "minimum" : 0,
44660702
DM
50752 "optional" : 1,
50753 "type" : "integer"
50754 },
50755 "firstname" : {
56122987
DM
50756 "optional" : 1,
50757 "type" : "string"
50758 },
44660702 50759 "groups" : {
e9cd3bd4
TL
50760 "items" : {
50761 "format" : "pve-groupid",
50762 "type" : "string"
50763 },
50764 "optional" : 1,
44660702 50765 "type" : "array"
56122987 50766 },
44660702 50767 "keys" : {
e2d681b3 50768 "description" : "Keys for two factor auth (yubico).",
44660702
DM
50769 "optional" : 1,
50770 "type" : "string"
7aacca6f 50771 },
44660702
DM
50772 "lastname" : {
50773 "optional" : 1,
50774 "type" : "string"
e9cd3bd4
TL
50775 },
50776 "tokens" : {
c30bb419
TL
50777 "additionalProperties" : {
50778 "properties" : {
50779 "comment" : {
50780 "optional" : 1,
50781 "type" : "string"
50782 },
50783 "expire" : {
50784 "default" : "same as user",
50785 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
50786 "minimum" : 0,
50787 "optional" : 1,
50788 "type" : "integer"
50789 },
50790 "privsep" : {
50791 "default" : 1,
50792 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
50793 "optional" : 1,
50794 "type" : "boolean"
50795 }
50796 },
50797 "type" : "object"
50798 },
e9cd3bd4
TL
50799 "optional" : 1,
50800 "type" : "object"
56122987 50801 }
e2d681b3
TL
50802 },
50803 "type" : "object"
44660702
DM
50804 }
50805 },
50806 "PUT" : {
e9cd3bd4 50807 "allowtoken" : 1,
44660702
DM
50808 "description" : "Update user configuration.",
50809 "method" : "PUT",
50810 "name" : "update_user",
56122987 50811 "parameters" : {
44660702 50812 "additionalProperties" : 0,
56122987 50813 "properties" : {
44660702
DM
50814 "append" : {
50815 "optional" : 1,
50816 "requires" : "groups",
013dc89f
DM
50817 "type" : "boolean",
50818 "typetext" : "<boolean>"
44660702
DM
50819 },
50820 "comment" : {
50821 "optional" : 1,
013dc89f
DM
50822 "type" : "string",
50823 "typetext" : "<string>"
44660702
DM
50824 },
50825 "email" : {
50826 "format" : "email-opt",
50827 "optional" : 1,
013dc89f
DM
50828 "type" : "string",
50829 "typetext" : "<string>"
44660702
DM
50830 },
50831 "enable" : {
e2d681b3
TL
50832 "default" : 1,
50833 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 50834 "optional" : 1,
013dc89f
DM
50835 "type" : "boolean",
50836 "typetext" : "<boolean>"
44660702
DM
50837 },
50838 "expire" : {
50839 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
50840 "minimum" : 0,
50841 "optional" : 1,
4bd7df8b 50842 "type" : "integer",
013dc89f 50843 "typetext" : "<integer> (0 - N)"
44660702
DM
50844 },
50845 "firstname" : {
50846 "optional" : 1,
013dc89f
DM
50847 "type" : "string",
50848 "typetext" : "<string>"
44660702
DM
50849 },
50850 "groups" : {
50851 "format" : "pve-groupid-list",
50852 "optional" : 1,
013dc89f
DM
50853 "type" : "string",
50854 "typetext" : "<string>"
44660702
DM
50855 },
50856 "keys" : {
50857 "description" : "Keys for two factor auth (yubico).",
50858 "optional" : 1,
013dc89f
DM
50859 "type" : "string",
50860 "typetext" : "<string>"
44660702
DM
50861 },
50862 "lastname" : {
50863 "optional" : 1,
013dc89f
DM
50864 "type" : "string",
50865 "typetext" : "<string>"
44660702 50866 },
56122987 50867 "userid" : {
9d2e98ed 50868 "description" : "Full User ID, in the `name@realm` format.",
56122987 50869 "format" : "pve-userid",
44660702 50870 "maxLength" : 64,
013dc89f
DM
50871 "type" : "string",
50872 "typetext" : "<string>"
56122987 50873 }
44660702 50874 }
56122987 50875 },
56122987
DM
50876 "permissions" : {
50877 "check" : [
50878 "userid-group",
50879 [
44660702
DM
50880 "User.Modify"
50881 ],
50882 "groups_param",
c30bb419 50883 "update"
56122987
DM
50884 ]
50885 },
44660702
DM
50886 "protected" : 1,
50887 "returns" : {
50888 "type" : "null"
50889 }
56122987
DM
50890 }
50891 },
bb4c8cf8 50892 "leaf" : 0,
44660702 50893 "path" : "/access/users/{userid}",
7aacca6f 50894 "text" : "{userid}"
56122987 50895 }
7aacca6f 50896 ],
56122987 50897 "info" : {
7aacca6f 50898 "GET" : {
e9cd3bd4 50899 "allowtoken" : 1,
44660702
DM
50900 "description" : "User index.",
50901 "method" : "GET",
7aacca6f 50902 "name" : "index",
56122987 50903 "parameters" : {
44660702
DM
50904 "additionalProperties" : 0,
50905 "properties" : {
50906 "enabled" : {
50907 "description" : "Optional filter for enable property.",
50908 "optional" : 1,
013dc89f
DM
50909 "type" : "boolean",
50910 "typetext" : "<boolean>"
e9cd3bd4
TL
50911 },
50912 "full" : {
50913 "default" : 0,
50914 "description" : "Include group and token information.",
50915 "optional" : 1,
50916 "type" : "boolean",
50917 "typetext" : "<boolean>"
44660702
DM
50918 }
50919 }
50920 },
50921 "permissions" : {
50922 "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.",
50923 "user" : "all"
56122987 50924 },
4a407cfd 50925 "protected" : 1,
7aacca6f 50926 "returns" : {
7aacca6f
DM
50927 "items" : {
50928 "properties" : {
e2d681b3
TL
50929 "comment" : {
50930 "optional" : 1,
50931 "type" : "string"
50932 },
50933 "email" : {
50934 "format" : "email-opt",
50935 "optional" : 1,
50936 "type" : "string"
50937 },
50938 "enable" : {
50939 "default" : 1,
50940 "description" : "Enable the account (default). You can set this to '0' to disable the account",
50941 "optional" : 1,
50942 "type" : "boolean"
50943 },
50944 "expire" : {
50945 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
50946 "minimum" : 0,
50947 "optional" : 1,
50948 "type" : "integer"
50949 },
50950 "firstname" : {
50951 "optional" : 1,
50952 "type" : "string"
50953 },
e9cd3bd4
TL
50954 "groups" : {
50955 "format" : "pve-groupid-list",
50956 "optional" : 1,
50957 "type" : "string"
50958 },
e2d681b3
TL
50959 "keys" : {
50960 "description" : "Keys for two factor auth (yubico).",
50961 "optional" : 1,
50962 "type" : "string"
50963 },
50964 "lastname" : {
50965 "optional" : 1,
50966 "type" : "string"
50967 },
34f3e481
TL
50968 "realm-type" : {
50969 "description" : "The type of the users realm",
50970 "format" : "pve-realm",
50971 "optional" : 1,
50972 "type" : "string"
50973 },
4a407cfd
TL
50974 "tfa-locked-until" : {
50975 "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
50976 "optional" : 1,
50977 "type" : "integer"
50978 },
e9cd3bd4
TL
50979 "tokens" : {
50980 "items" : {
50981 "properties" : {
50982 "comment" : {
50983 "optional" : 1,
50984 "type" : "string"
50985 },
50986 "expire" : {
50987 "default" : "same as user",
50988 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
50989 "minimum" : 0,
50990 "optional" : 1,
50991 "type" : "integer"
50992 },
50993 "privsep" : {
50994 "default" : 1,
50995 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
50996 "optional" : 1,
50997 "type" : "boolean"
50998 },
50999 "tokenid" : {
51000 "description" : "User-specific token identifier.",
51001 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
51002 "type" : "string"
51003 }
51004 },
51005 "type" : "object"
51006 },
51007 "optional" : 1,
51008 "type" : "array"
51009 },
4a407cfd
TL
51010 "totp-locked" : {
51011 "description" : "True if the user is currently locked out of TOTP factors.",
51012 "optional" : 1,
51013 "type" : "boolean"
51014 },
44660702 51015 "userid" : {
9d2e98ed 51016 "description" : "Full User ID, in the `name@realm` format.",
e2d681b3
TL
51017 "format" : "pve-userid",
51018 "maxLength" : 64,
7aacca6f
DM
51019 "type" : "string"
51020 }
51021 },
51022 "type" : "object"
51023 },
44660702
DM
51024 "links" : [
51025 {
51026 "href" : "{userid}",
51027 "rel" : "child"
51028 }
51029 ],
7aacca6f
DM
51030 "type" : "array"
51031 }
51032 },
51033 "POST" : {
e9cd3bd4 51034 "allowtoken" : 1,
44660702 51035 "description" : "Create new user.",
7aacca6f 51036 "method" : "POST",
44660702 51037 "name" : "create_user",
56122987 51038 "parameters" : {
7aacca6f
DM
51039 "additionalProperties" : 0,
51040 "properties" : {
44660702
DM
51041 "comment" : {
51042 "optional" : 1,
013dc89f
DM
51043 "type" : "string",
51044 "typetext" : "<string>"
7aacca6f 51045 },
44660702
DM
51046 "email" : {
51047 "format" : "email-opt",
51048 "optional" : 1,
013dc89f
DM
51049 "type" : "string",
51050 "typetext" : "<string>"
44660702
DM
51051 },
51052 "enable" : {
51053 "default" : 1,
e2d681b3 51054 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 51055 "optional" : 1,
013dc89f
DM
51056 "type" : "boolean",
51057 "typetext" : "<boolean>"
44660702
DM
51058 },
51059 "expire" : {
51060 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
51061 "minimum" : 0,
51062 "optional" : 1,
4bd7df8b 51063 "type" : "integer",
013dc89f 51064 "typetext" : "<integer> (0 - N)"
44660702
DM
51065 },
51066 "firstname" : {
51067 "optional" : 1,
013dc89f
DM
51068 "type" : "string",
51069 "typetext" : "<string>"
44660702
DM
51070 },
51071 "groups" : {
51072 "format" : "pve-groupid-list",
51073 "optional" : 1,
013dc89f
DM
51074 "type" : "string",
51075 "typetext" : "<string>"
44660702
DM
51076 },
51077 "keys" : {
51078 "description" : "Keys for two factor auth (yubico).",
51079 "optional" : 1,
013dc89f
DM
51080 "type" : "string",
51081 "typetext" : "<string>"
44660702
DM
51082 },
51083 "lastname" : {
7aacca6f 51084 "optional" : 1,
013dc89f
DM
51085 "type" : "string",
51086 "typetext" : "<string>"
44660702
DM
51087 },
51088 "password" : {
51089 "description" : "Initial password.",
51090 "maxLength" : 64,
51091 "minLength" : 5,
51092 "optional" : 1,
013dc89f
DM
51093 "type" : "string",
51094 "typetext" : "<string>"
44660702
DM
51095 },
51096 "userid" : {
9d2e98ed 51097 "description" : "Full User ID, in the `name@realm` format.",
44660702
DM
51098 "format" : "pve-userid",
51099 "maxLength" : 64,
013dc89f
DM
51100 "type" : "string",
51101 "typetext" : "<string>"
56122987 51102 }
7aacca6f 51103 }
56122987 51104 },
44660702
DM
51105 "permissions" : {
51106 "check" : [
51107 "and",
51108 [
51109 "userid-param",
51110 "Realm.AllocateUser"
51111 ],
51112 [
51113 "userid-group",
51114 [
51115 "User.Modify"
51116 ],
51117 "groups_param",
c30bb419 51118 "create"
44660702
DM
51119 ]
51120 ],
51121 "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."
51122 },
51123 "protected" : 1,
51124 "returns" : {
51125 "type" : "null"
51126 }
56122987
DM
51127 }
51128 },
44660702
DM
51129 "leaf" : 0,
51130 "path" : "/access/users",
51131 "text" : "users"
51132 },
51133 {
56122987
DM
51134 "children" : [
51135 {
56122987
DM
51136 "info" : {
51137 "DELETE" : {
e9cd3bd4 51138 "allowtoken" : 1,
44660702
DM
51139 "description" : "Delete group.",
51140 "method" : "DELETE",
51141 "name" : "delete_group",
51142 "parameters" : {
51143 "additionalProperties" : 0,
51144 "properties" : {
51145 "groupid" : {
51146 "format" : "pve-groupid",
013dc89f
DM
51147 "type" : "string",
51148 "typetext" : "<string>"
44660702
DM
51149 }
51150 }
51151 },
7aacca6f
DM
51152 "permissions" : {
51153 "check" : [
51154 "perm",
51155 "/access/groups",
51156 [
51157 "Group.Allocate"
51158 ]
51159 ]
51160 },
7aacca6f 51161 "protected" : 1,
7aacca6f
DM
51162 "returns" : {
51163 "type" : "null"
44660702 51164 }
7aacca6f 51165 },
44660702 51166 "GET" : {
e9cd3bd4 51167 "allowtoken" : 1,
44660702
DM
51168 "description" : "Get group configuration.",
51169 "method" : "GET",
51170 "name" : "read_group",
51171 "parameters" : {
51172 "additionalProperties" : 0,
51173 "properties" : {
51174 "groupid" : {
51175 "format" : "pve-groupid",
013dc89f
DM
51176 "type" : "string",
51177 "typetext" : "<string>"
44660702
DM
51178 }
51179 }
56122987 51180 },
7aacca6f
DM
51181 "permissions" : {
51182 "check" : [
51183 "perm",
51184 "/access/groups",
51185 [
44660702 51186 "Sys.Audit",
7aacca6f 51187 "Group.Allocate"
44660702
DM
51188 ],
51189 "any",
51190 1
7aacca6f
DM
51191 ]
51192 },
7aacca6f 51193 "returns" : {
44660702 51194 "additionalProperties" : 0,
7aacca6f
DM
51195 "properties" : {
51196 "comment" : {
44660702
DM
51197 "optional" : 1,
51198 "type" : "string"
7aacca6f
DM
51199 },
51200 "members" : {
51201 "items" : {
9d2e98ed 51202 "description" : "Full User ID, in the `name@realm` format.",
e2d681b3
TL
51203 "format" : "pve-userid",
51204 "maxLength" : 64,
7aacca6f
DM
51205 "type" : "string"
51206 },
51207 "type" : "array"
51208 }
51209 },
44660702
DM
51210 "type" : "object"
51211 }
51212 },
51213 "PUT" : {
e9cd3bd4 51214 "allowtoken" : 1,
44660702
DM
51215 "description" : "Update group data.",
51216 "method" : "PUT",
51217 "name" : "update_group",
56122987 51218 "parameters" : {
44660702 51219 "additionalProperties" : 0,
56122987 51220 "properties" : {
44660702
DM
51221 "comment" : {
51222 "optional" : 1,
013dc89f
DM
51223 "type" : "string",
51224 "typetext" : "<string>"
44660702 51225 },
56122987
DM
51226 "groupid" : {
51227 "format" : "pve-groupid",
013dc89f
DM
51228 "type" : "string",
51229 "typetext" : "<string>"
56122987 51230 }
44660702 51231 }
56122987 51232 },
56122987
DM
51233 "permissions" : {
51234 "check" : [
51235 "perm",
51236 "/access/groups",
51237 [
51238 "Group.Allocate"
44660702 51239 ]
56122987
DM
51240 ]
51241 },
44660702
DM
51242 "protected" : 1,
51243 "returns" : {
51244 "type" : "null"
51245 }
7aacca6f
DM
51246 }
51247 },
7aacca6f 51248 "leaf" : 1,
44660702
DM
51249 "path" : "/access/groups/{groupid}",
51250 "text" : "{groupid}"
51251 }
51252 ],
51253 "info" : {
51254 "GET" : {
e9cd3bd4 51255 "allowtoken" : 1,
44660702
DM
51256 "description" : "Group index.",
51257 "method" : "GET",
51258 "name" : "index",
51259 "parameters" : {
51260 "additionalProperties" : 0
51261 },
51262 "permissions" : {
51263 "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
51264 "user" : "all"
51265 },
51266 "returns" : {
51267 "items" : {
51268 "properties" : {
e2d681b3
TL
51269 "comment" : {
51270 "optional" : 1,
51271 "type" : "string"
51272 },
44660702 51273 "groupid" : {
e2d681b3 51274 "format" : "pve-groupid",
44660702 51275 "type" : "string"
e9cd3bd4
TL
51276 },
51277 "users" : {
51278 "description" : "list of users which form this group",
51279 "format" : "pve-userid-list",
51280 "optional" : 1,
51281 "type" : "string"
44660702
DM
51282 }
51283 },
51284 "type" : "object"
51285 },
51286 "links" : [
51287 {
51288 "href" : "{groupid}",
51289 "rel" : "child"
51290 }
51291 ],
51292 "type" : "array"
51293 }
51294 },
51295 "POST" : {
e9cd3bd4 51296 "allowtoken" : 1,
44660702
DM
51297 "description" : "Create new group.",
51298 "method" : "POST",
51299 "name" : "create_group",
51300 "parameters" : {
51301 "additionalProperties" : 0,
51302 "properties" : {
51303 "comment" : {
51304 "optional" : 1,
013dc89f
DM
51305 "type" : "string",
51306 "typetext" : "<string>"
44660702
DM
51307 },
51308 "groupid" : {
51309 "format" : "pve-groupid",
013dc89f
DM
51310 "type" : "string",
51311 "typetext" : "<string>"
44660702
DM
51312 }
51313 }
51314 },
51315 "permissions" : {
51316 "check" : [
51317 "perm",
51318 "/access/groups",
51319 [
51320 "Group.Allocate"
51321 ]
51322 ]
51323 },
51324 "protected" : 1,
51325 "returns" : {
51326 "type" : "null"
51327 }
7aacca6f 51328 }
44660702 51329 },
7aacca6f 51330 "leaf" : 0,
44660702
DM
51331 "path" : "/access/groups",
51332 "text" : "groups"
7aacca6f
DM
51333 },
51334 {
51335 "children" : [
51336 {
7aacca6f 51337 "info" : {
7aacca6f 51338 "DELETE" : {
e9cd3bd4 51339 "allowtoken" : 1,
7aacca6f 51340 "description" : "Delete role.",
44660702 51341 "method" : "DELETE",
7aacca6f 51342 "name" : "delete_role",
56122987
DM
51343 "parameters" : {
51344 "additionalProperties" : 0,
51345 "properties" : {
7aacca6f
DM
51346 "roleid" : {
51347 "format" : "pve-roleid",
013dc89f
DM
51348 "type" : "string",
51349 "typetext" : "<string>"
56122987
DM
51350 }
51351 }
51352 },
56122987
DM
51353 "permissions" : {
51354 "check" : [
51355 "perm",
7aacca6f 51356 "/access",
56122987 51357 [
7aacca6f
DM
51358 "Sys.Modify"
51359 ]
56122987 51360 ]
44660702
DM
51361 },
51362 "protected" : 1,
51363 "returns" : {
51364 "type" : "null"
56122987
DM
51365 }
51366 },
44660702 51367 "GET" : {
e9cd3bd4 51368 "allowtoken" : 1,
44660702
DM
51369 "description" : "Get role configuration.",
51370 "method" : "GET",
51371 "name" : "read_role",
51372 "parameters" : {
51373 "additionalProperties" : 0,
51374 "properties" : {
51375 "roleid" : {
51376 "format" : "pve-roleid",
013dc89f
DM
51377 "type" : "string",
51378 "typetext" : "<string>"
44660702
DM
51379 }
51380 }
51381 },
7aacca6f 51382 "permissions" : {
44660702 51383 "user" : "all"
56122987 51384 },
e2d681b3
TL
51385 "returns" : {
51386 "additionalProperties" : 0,
51387 "properties" : {
51388 "Datastore.Allocate" : {
51389 "optional" : 1,
51390 "type" : "boolean"
51391 },
51392 "Datastore.AllocateSpace" : {
51393 "optional" : 1,
51394 "type" : "boolean"
51395 },
51396 "Datastore.AllocateTemplate" : {
51397 "optional" : 1,
51398 "type" : "boolean"
51399 },
51400 "Datastore.Audit" : {
51401 "optional" : 1,
51402 "type" : "boolean"
51403 },
51404 "Group.Allocate" : {
51405 "optional" : 1,
51406 "type" : "boolean"
51407 },
159464a9
TL
51408 "Mapping.Audit" : {
51409 "optional" : 1,
51410 "type" : "boolean"
51411 },
51412 "Mapping.Modify" : {
51413 "optional" : 1,
51414 "type" : "boolean"
51415 },
51416 "Mapping.Use" : {
51417 "optional" : 1,
51418 "type" : "boolean"
51419 },
e2d681b3
TL
51420 "Permissions.Modify" : {
51421 "optional" : 1,
51422 "type" : "boolean"
51423 },
51424 "Pool.Allocate" : {
51425 "optional" : 1,
51426 "type" : "boolean"
51427 },
0695fdaf
TL
51428 "Pool.Audit" : {
51429 "optional" : 1,
51430 "type" : "boolean"
51431 },
e2d681b3
TL
51432 "Realm.Allocate" : {
51433 "optional" : 1,
51434 "type" : "boolean"
51435 },
51436 "Realm.AllocateUser" : {
51437 "optional" : 1,
51438 "type" : "boolean"
51439 },
5c1699e5
TL
51440 "SDN.Allocate" : {
51441 "optional" : 1,
51442 "type" : "boolean"
51443 },
51444 "SDN.Audit" : {
51445 "optional" : 1,
159464a9
TL
51446 "type" : "boolean"
51447 },
51448 "SDN.Use" : {
51449 "optional" : 1,
5c1699e5
TL
51450 "type" : "boolean"
51451 },
e2d681b3
TL
51452 "Sys.Audit" : {
51453 "optional" : 1,
51454 "type" : "boolean"
51455 },
51456 "Sys.Console" : {
51457 "optional" : 1,
51458 "type" : "boolean"
51459 },
81a3384d
TL
51460 "Sys.Incoming" : {
51461 "optional" : 1,
51462 "type" : "boolean"
51463 },
e2d681b3
TL
51464 "Sys.Modify" : {
51465 "optional" : 1,
51466 "type" : "boolean"
51467 },
51468 "Sys.PowerMgmt" : {
51469 "optional" : 1,
51470 "type" : "boolean"
51471 },
51472 "Sys.Syslog" : {
51473 "optional" : 1,
51474 "type" : "boolean"
51475 },
51476 "User.Modify" : {
51477 "optional" : 1,
51478 "type" : "boolean"
51479 },
51480 "VM.Allocate" : {
51481 "optional" : 1,
51482 "type" : "boolean"
51483 },
51484 "VM.Audit" : {
51485 "optional" : 1,
51486 "type" : "boolean"
51487 },
51488 "VM.Backup" : {
51489 "optional" : 1,
51490 "type" : "boolean"
51491 },
51492 "VM.Clone" : {
51493 "optional" : 1,
51494 "type" : "boolean"
51495 },
51496 "VM.Config.CDROM" : {
51497 "optional" : 1,
51498 "type" : "boolean"
51499 },
51500 "VM.Config.CPU" : {
51501 "optional" : 1,
51502 "type" : "boolean"
51503 },
ac70d7d1
TL
51504 "VM.Config.Cloudinit" : {
51505 "optional" : 1,
51506 "type" : "boolean"
51507 },
e2d681b3
TL
51508 "VM.Config.Disk" : {
51509 "optional" : 1,
51510 "type" : "boolean"
51511 },
51512 "VM.Config.HWType" : {
51513 "optional" : 1,
51514 "type" : "boolean"
51515 },
51516 "VM.Config.Memory" : {
51517 "optional" : 1,
51518 "type" : "boolean"
51519 },
51520 "VM.Config.Network" : {
51521 "optional" : 1,
51522 "type" : "boolean"
51523 },
51524 "VM.Config.Options" : {
51525 "optional" : 1,
51526 "type" : "boolean"
51527 },
51528 "VM.Console" : {
51529 "optional" : 1,
51530 "type" : "boolean"
51531 },
51532 "VM.Migrate" : {
51533 "optional" : 1,
51534 "type" : "boolean"
51535 },
51536 "VM.Monitor" : {
51537 "optional" : 1,
51538 "type" : "boolean"
51539 },
51540 "VM.PowerMgmt" : {
51541 "optional" : 1,
51542 "type" : "boolean"
51543 },
51544 "VM.Snapshot" : {
51545 "optional" : 1,
51546 "type" : "boolean"
51547 },
51548 "VM.Snapshot.Rollback" : {
51549 "optional" : 1,
51550 "type" : "boolean"
51551 }
51552 },
51553 "type" : "object"
51554 }
44660702
DM
51555 },
51556 "PUT" : {
e9cd3bd4 51557 "allowtoken" : 1,
e2d681b3 51558 "description" : "Update an existing role.",
44660702
DM
51559 "method" : "PUT",
51560 "name" : "update_role",
56122987
DM
51561 "parameters" : {
51562 "additionalProperties" : 0,
51563 "properties" : {
7aacca6f 51564 "append" : {
44660702 51565 "optional" : 1,
7aacca6f 51566 "requires" : "privs",
013dc89f
DM
51567 "type" : "boolean",
51568 "typetext" : "<boolean>"
7aacca6f
DM
51569 },
51570 "privs" : {
51571 "format" : "pve-priv-list",
e2d681b3 51572 "optional" : 1,
013dc89f
DM
51573 "type" : "string",
51574 "typetext" : "<string>"
44660702
DM
51575 },
51576 "roleid" : {
51577 "format" : "pve-roleid",
013dc89f
DM
51578 "type" : "string",
51579 "typetext" : "<string>"
56122987
DM
51580 }
51581 }
51582 },
44660702
DM
51583 "permissions" : {
51584 "check" : [
51585 "perm",
51586 "/access",
51587 [
51588 "Sys.Modify"
51589 ]
51590 ]
51591 },
56122987 51592 "protected" : 1,
7aacca6f
DM
51593 "returns" : {
51594 "type" : "null"
56122987
DM
51595 }
51596 }
51597 },
44660702 51598 "leaf" : 1,
7aacca6f 51599 "path" : "/access/roles/{roleid}",
44660702 51600 "text" : "{roleid}"
56122987
DM
51601 }
51602 ],
56122987 51603 "info" : {
7aacca6f 51604 "GET" : {
e9cd3bd4 51605 "allowtoken" : 1,
7aacca6f 51606 "description" : "Role index.",
44660702 51607 "method" : "GET",
7aacca6f 51608 "name" : "index",
56122987 51609 "parameters" : {
56122987
DM
51610 "additionalProperties" : 0
51611 },
7aacca6f
DM
51612 "permissions" : {
51613 "user" : "all"
51614 },
56122987 51615 "returns" : {
7aacca6f 51616 "items" : {
7aacca6f 51617 "properties" : {
e2d681b3
TL
51618 "privs" : {
51619 "format" : "pve-priv-list",
51620 "optional" : 1,
51621 "type" : "string"
51622 },
7aacca6f 51623 "roleid" : {
e2d681b3 51624 "format" : "pve-roleid",
7aacca6f 51625 "type" : "string"
e2d681b3
TL
51626 },
51627 "special" : {
51628 "default" : 0,
51629 "optional" : 1,
51630 "type" : "boolean"
7aacca6f 51631 }
44660702
DM
51632 },
51633 "type" : "object"
51634 },
51635 "links" : [
51636 {
51637 "href" : "{roleid}",
51638 "rel" : "child"
7aacca6f 51639 }
44660702
DM
51640 ],
51641 "type" : "array"
51642 }
7aacca6f
DM
51643 },
51644 "POST" : {
e9cd3bd4 51645 "allowtoken" : 1,
7aacca6f 51646 "description" : "Create new role.",
44660702
DM
51647 "method" : "POST",
51648 "name" : "create_role",
7aacca6f
DM
51649 "parameters" : {
51650 "additionalProperties" : 0,
51651 "properties" : {
7aacca6f
DM
51652 "privs" : {
51653 "format" : "pve-priv-list",
51654 "optional" : 1,
013dc89f
DM
51655 "type" : "string",
51656 "typetext" : "<string>"
44660702
DM
51657 },
51658 "roleid" : {
51659 "format" : "pve-roleid",
013dc89f
DM
51660 "type" : "string",
51661 "typetext" : "<string>"
7aacca6f
DM
51662 }
51663 }
51664 },
44660702
DM
51665 "permissions" : {
51666 "check" : [
51667 "perm",
51668 "/access",
51669 [
51670 "Sys.Modify"
51671 ]
51672 ]
51673 },
51674 "protected" : 1,
7aacca6f
DM
51675 "returns" : {
51676 "type" : "null"
51677 }
51678 }
51679 },
44660702 51680 "leaf" : 0,
7aacca6f 51681 "path" : "/access/roles",
44660702 51682 "text" : "roles"
7aacca6f
DM
51683 },
51684 {
51685 "info" : {
56122987 51686 "GET" : {
e9cd3bd4 51687 "allowtoken" : 1,
44660702
DM
51688 "description" : "Get Access Control List (ACLs).",
51689 "method" : "GET",
51690 "name" : "read_acl",
7aacca6f
DM
51691 "parameters" : {
51692 "additionalProperties" : 0
51693 },
44660702
DM
51694 "permissions" : {
51695 "description" : "The returned list is restricted to objects where you have rights to modify permissions.",
51696 "user" : "all"
51697 },
56122987 51698 "returns" : {
56122987 51699 "items" : {
44660702 51700 "additionalProperties" : 0,
56122987 51701 "properties" : {
7aacca6f 51702 "path" : {
e2d681b3 51703 "description" : "Access control path",
7aacca6f
DM
51704 "type" : "string"
51705 },
44660702 51706 "propagate" : {
e2d681b3
TL
51707 "default" : 1,
51708 "description" : "Allow to propagate (inherit) permissions.",
51709 "optional" : 1,
44660702
DM
51710 "type" : "boolean"
51711 },
51712 "roleid" : {
51713 "type" : "string"
51714 },
7aacca6f
DM
51715 "type" : {
51716 "enum" : [
51717 "user",
e9cd3bd4
TL
51718 "group",
51719 "token"
7aacca6f
DM
51720 ],
51721 "type" : "string"
51722 },
7aacca6f
DM
51723 "ugid" : {
51724 "type" : "string"
56122987 51725 }
7aacca6f 51726 },
44660702 51727 "type" : "object"
7aacca6f
DM
51728 },
51729 "type" : "array"
44660702 51730 }
7aacca6f
DM
51731 },
51732 "PUT" : {
e9cd3bd4 51733 "allowtoken" : 1,
44660702
DM
51734 "description" : "Update Access Control List (add or remove permissions).",
51735 "method" : "PUT",
7aacca6f
DM
51736 "name" : "update_acl",
51737 "parameters" : {
51738 "additionalProperties" : 0,
51739 "properties" : {
51740 "delete" : {
44660702 51741 "description" : "Remove permissions (instead of adding it).",
7aacca6f 51742 "optional" : 1,
013dc89f
DM
51743 "type" : "boolean",
51744 "typetext" : "<boolean>"
7aacca6f 51745 },
44660702
DM
51746 "groups" : {
51747 "description" : "List of groups.",
51748 "format" : "pve-groupid-list",
7aacca6f 51749 "optional" : 1,
013dc89f
DM
51750 "type" : "string",
51751 "typetext" : "<string>"
7aacca6f
DM
51752 },
51753 "path" : {
51754 "description" : "Access control path",
013dc89f
DM
51755 "type" : "string",
51756 "typetext" : "<string>"
7aacca6f 51757 },
7aacca6f 51758 "propagate" : {
44660702 51759 "default" : 1,
7aacca6f 51760 "description" : "Allow to propagate (inherit) permissions.",
7aacca6f 51761 "optional" : 1,
013dc89f
DM
51762 "type" : "boolean",
51763 "typetext" : "<boolean>"
7aacca6f 51764 },
44660702
DM
51765 "roles" : {
51766 "description" : "List of roles.",
51767 "format" : "pve-roleid-list",
013dc89f
DM
51768 "type" : "string",
51769 "typetext" : "<string>"
44660702 51770 },
e9cd3bd4
TL
51771 "tokens" : {
51772 "description" : "List of API tokens.",
51773 "format" : "pve-tokenid-list",
51774 "optional" : 1,
51775 "type" : "string",
51776 "typetext" : "<string>"
51777 },
44660702
DM
51778 "users" : {
51779 "description" : "List of users.",
51780 "format" : "pve-userid-list",
7aacca6f 51781 "optional" : 1,
013dc89f
DM
51782 "type" : "string",
51783 "typetext" : "<string>"
56122987
DM
51784 }
51785 }
51786 },
56122987 51787 "permissions" : {
7aacca6f
DM
51788 "check" : [
51789 "perm-modify",
51790 "{path}"
51791 ]
51792 },
7aacca6f
DM
51793 "protected" : 1,
51794 "returns" : {
51795 "type" : "null"
44660702 51796 }
56122987
DM
51797 }
51798 },
7aacca6f 51799 "leaf" : 1,
44660702
DM
51800 "path" : "/access/acl",
51801 "text" : "acl"
7aacca6f
DM
51802 },
51803 {
56122987
DM
51804 "children" : [
51805 {
c5aa7e14
TL
51806 "children" : [
51807 {
51808 "info" : {
51809 "POST" : {
51810 "allowtoken" : 1,
51811 "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.",
51812 "method" : "POST",
51813 "name" : "sync",
51814 "parameters" : {
51815 "additionalProperties" : 0,
51816 "properties" : {
51817 "dry-run" : {
51818 "default" : 0,
51819 "description" : "If set, does not write anything.",
51820 "optional" : 1,
51821 "type" : "boolean",
51822 "typetext" : "<boolean>"
51823 },
51824 "enable-new" : {
51825 "default" : "1",
51826 "description" : "Enable newly synced users immediately.",
51827 "optional" : "1",
51828 "type" : "boolean",
51829 "typetext" : "<boolean>"
51830 },
51831 "full" : {
7af2edf9 51832 "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
51833 "optional" : "1",
51834 "type" : "boolean",
51835 "typetext" : "<boolean>"
51836 },
51837 "purge" : {
7af2edf9 51838 "description" : "DEPRECATED: use 'remove-vanished' instead. Remove ACLs for users or groups which were removed from the config during a sync.",
c5aa7e14
TL
51839 "optional" : "1",
51840 "type" : "boolean",
51841 "typetext" : "<boolean>"
51842 },
51843 "realm" : {
51844 "description" : "Authentication domain ID",
51845 "format" : "pve-realm",
51846 "maxLength" : 32,
51847 "type" : "string",
51848 "typetext" : "<string>"
51849 },
7af2edf9 51850 "remove-vanished" : {
9d2e98ed
TL
51851 "default" : "none",
51852 "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 51853 "optional" : "1",
9d2e98ed 51854 "pattern" : "(?:(?:(?:acl|properties|entry);)*(?:acl|properties|entry))|none",
7af2edf9 51855 "type" : "string",
9d2e98ed 51856 "typetext" : "([acl];[properties];[entry])|none"
7af2edf9 51857 },
c5aa7e14
TL
51858 "scope" : {
51859 "description" : "Select what to sync.",
51860 "enum" : [
51861 "users",
51862 "groups",
51863 "both"
51864 ],
51865 "optional" : "1",
51866 "type" : "string"
51867 }
51868 }
51869 },
51870 "permissions" : {
51871 "check" : [
51872 "and",
51873 [
c30bb419
TL
51874 "perm",
51875 "/access/realm/{realm}",
51876 [
51877 "Realm.AllocateUser"
51878 ]
c5aa7e14
TL
51879 ],
51880 [
c30bb419
TL
51881 "perm",
51882 "/access/groups",
c5aa7e14
TL
51883 [
51884 "User.Modify"
51885 ]
51886 ]
51887 ],
51888 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
51889 },
51890 "protected" : 1,
51891 "returns" : {
51892 "description" : "Worker Task-UPID",
51893 "type" : "string"
51894 }
51895 }
51896 },
51897 "leaf" : 1,
51898 "path" : "/access/domains/{realm}/sync",
51899 "text" : "sync"
51900 }
51901 ],
56122987 51902 "info" : {
44660702 51903 "DELETE" : {
e9cd3bd4 51904 "allowtoken" : 1,
44660702
DM
51905 "description" : "Delete an authentication server.",
51906 "method" : "DELETE",
51907 "name" : "delete",
51908 "parameters" : {
51909 "additionalProperties" : 0,
51910 "properties" : {
51911 "realm" : {
51912 "description" : "Authentication domain ID",
51913 "format" : "pve-realm",
51914 "maxLength" : 32,
013dc89f
DM
51915 "type" : "string",
51916 "typetext" : "<string>"
56122987 51917 }
44660702 51918 }
56122987 51919 },
56122987
DM
51920 "permissions" : {
51921 "check" : [
51922 "perm",
7aacca6f 51923 "/access/realm",
56122987 51924 [
7aacca6f 51925 "Realm.Allocate"
56122987
DM
51926 ]
51927 ]
51928 },
7aacca6f 51929 "protected" : 1,
7aacca6f
DM
51930 "returns" : {
51931 "type" : "null"
44660702 51932 }
7aacca6f 51933 },
44660702 51934 "GET" : {
e9cd3bd4 51935 "allowtoken" : 1,
44660702
DM
51936 "description" : "Get auth server configuration.",
51937 "method" : "GET",
51938 "name" : "read",
56122987 51939 "parameters" : {
44660702 51940 "additionalProperties" : 0,
56122987 51941 "properties" : {
7aacca6f 51942 "realm" : {
44660702 51943 "description" : "Authentication domain ID",
7aacca6f
DM
51944 "format" : "pve-realm",
51945 "maxLength" : 32,
013dc89f
DM
51946 "type" : "string",
51947 "typetext" : "<string>"
56122987 51948 }
44660702 51949 }
7aacca6f 51950 },
7aacca6f
DM
51951 "permissions" : {
51952 "check" : [
51953 "perm",
51954 "/access/realm",
51955 [
44660702
DM
51956 "Realm.Allocate",
51957 "Sys.Audit"
51958 ],
51959 "any",
51960 1
7aacca6f 51961 ]
44660702
DM
51962 },
51963 "returns" : {}
7aacca6f 51964 },
44660702 51965 "PUT" : {
e9cd3bd4 51966 "allowtoken" : 1,
44660702
DM
51967 "description" : "Update authentication server settings.",
51968 "method" : "PUT",
51969 "name" : "update",
7aacca6f 51970 "parameters" : {
44660702 51971 "additionalProperties" : 0,
7aacca6f 51972 "properties" : {
c30bb419
TL
51973 "acr-values" : {
51974 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
51975 "optional" : 1,
51976 "type" : "string",
51977 "typetext" : "<string>"
51978 },
34f3e481
TL
51979 "autocreate" : {
51980 "default" : 0,
51981 "description" : "Automatically create users if they do not exist.",
51982 "optional" : 1,
51983 "type" : "boolean",
51984 "typetext" : "<boolean>"
51985 },
44660702
DM
51986 "base_dn" : {
51987 "description" : "LDAP base domain name",
51988 "maxLength" : 256,
51989 "optional" : 1,
82551b2b
TL
51990 "type" : "string",
51991 "typetext" : "<string>"
44660702 51992 },
4bd7df8b
DM
51993 "bind_dn" : {
51994 "description" : "LDAP bind domain name",
51995 "maxLength" : 256,
51996 "optional" : 1,
82551b2b
TL
51997 "type" : "string",
51998 "typetext" : "<string>"
4bd7df8b 51999 },
2489d6df
WB
52000 "capath" : {
52001 "default" : "/etc/ssl/certs",
52002 "description" : "Path to the CA certificate store",
52003 "optional" : 1,
52004 "type" : "string",
52005 "typetext" : "<string>"
52006 },
4772952b
TL
52007 "case-sensitive" : {
52008 "default" : 1,
52009 "description" : "username is case-sensitive",
52010 "optional" : 1,
52011 "type" : "boolean",
52012 "typetext" : "<boolean>"
52013 },
2489d6df
WB
52014 "cert" : {
52015 "description" : "Path to the client certificate",
52016 "optional" : 1,
52017 "type" : "string",
52018 "typetext" : "<string>"
52019 },
52020 "certkey" : {
52021 "description" : "Path to the client certificate key",
52022 "optional" : 1,
52023 "type" : "string",
52024 "typetext" : "<string>"
52025 },
82551b2b
TL
52026 "check-connection" : {
52027 "default" : 0,
52028 "description" : "Check bind connection to the server.",
52029 "optional" : 1,
52030 "type" : "boolean",
52031 "typetext" : "<boolean>"
52032 },
34f3e481
TL
52033 "client-id" : {
52034 "description" : "OpenID Client ID",
52035 "maxLength" : 256,
52036 "optional" : 1,
52037 "type" : "string",
52038 "typetext" : "<string>"
52039 },
52040 "client-key" : {
52041 "description" : "OpenID Client Key",
52042 "maxLength" : 256,
52043 "optional" : 1,
52044 "type" : "string",
52045 "typetext" : "<string>"
52046 },
44660702
DM
52047 "comment" : {
52048 "description" : "Description.",
52049 "maxLength" : 4096,
52050 "optional" : 1,
013dc89f
DM
52051 "type" : "string",
52052 "typetext" : "<string>"
44660702
DM
52053 },
52054 "default" : {
52055 "description" : "Use this as default realm",
52056 "optional" : 1,
013dc89f
DM
52057 "type" : "boolean",
52058 "typetext" : "<boolean>"
44660702
DM
52059 },
52060 "delete" : {
52061 "description" : "A list of settings you want to delete.",
52062 "format" : "pve-configid-list",
52063 "maxLength" : 4096,
52064 "optional" : 1,
013dc89f
DM
52065 "type" : "string",
52066 "typetext" : "<string>"
44660702
DM
52067 },
52068 "digest" : {
82551b2b
TL
52069 "description" : "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications.",
52070 "maxLength" : 64,
44660702 52071 "optional" : 1,
013dc89f
DM
52072 "type" : "string",
52073 "typetext" : "<string>"
44660702
DM
52074 },
52075 "domain" : {
52076 "description" : "AD domain name",
52077 "maxLength" : 256,
52078 "optional" : 1,
52079 "pattern" : "\\S+",
52080 "type" : "string"
52081 },
c5aa7e14
TL
52082 "filter" : {
52083 "description" : "LDAP filter for user sync.",
52084 "maxLength" : 2048,
52085 "optional" : 1,
52086 "type" : "string",
52087 "typetext" : "<string>"
52088 },
52089 "group_classes" : {
52090 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
52091 "description" : "The objectclasses for groups.",
52092 "format" : "ldap-simple-attr-list",
52093 "optional" : 1,
52094 "type" : "string",
52095 "typetext" : "<string>"
52096 },
52097 "group_dn" : {
52098 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
52099 "maxLength" : 256,
52100 "optional" : 1,
82551b2b
TL
52101 "type" : "string",
52102 "typetext" : "<string>"
c5aa7e14
TL
52103 },
52104 "group_filter" : {
52105 "description" : "LDAP filter for group sync.",
52106 "maxLength" : 2048,
52107 "optional" : 1,
52108 "type" : "string",
52109 "typetext" : "<string>"
52110 },
52111 "group_name_attr" : {
52112 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
52113 "format" : "ldap-simple-attr",
52114 "maxLength" : 256,
52115 "optional" : 1,
52116 "type" : "string",
52117 "typetext" : "<string>"
52118 },
34f3e481
TL
52119 "issuer-url" : {
52120 "description" : "OpenID Issuer Url",
52121 "maxLength" : 256,
52122 "optional" : 1,
52123 "type" : "string",
52124 "typetext" : "<string>"
52125 },
c5aa7e14
TL
52126 "mode" : {
52127 "default" : "ldap",
52128 "description" : "LDAP protocol mode.",
52129 "enum" : [
52130 "ldap",
52131 "ldaps",
52132 "ldap+starttls"
52133 ],
52134 "optional" : 1,
52135 "type" : "string"
52136 },
52137 "password" : {
52138 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
52139 "optional" : 1,
52140 "type" : "string",
52141 "typetext" : "<string>"
52142 },
44660702
DM
52143 "port" : {
52144 "description" : "Server port.",
52145 "maximum" : 65535,
52146 "minimum" : 1,
52147 "optional" : 1,
4bd7df8b 52148 "type" : "integer",
013dc89f 52149 "typetext" : "<integer> (1 - 65535)"
44660702 52150 },
c30bb419
TL
52151 "prompt" : {
52152 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
52153 "optional" : 1,
52154 "pattern" : "(?:none|login|consent|select_account|\\S+)",
52155 "type" : "string"
52156 },
7aacca6f 52157 "realm" : {
7aacca6f
DM
52158 "description" : "Authentication domain ID",
52159 "format" : "pve-realm",
44660702 52160 "maxLength" : 32,
013dc89f
DM
52161 "type" : "string",
52162 "typetext" : "<string>"
44660702 52163 },
c30bb419
TL
52164 "scopes" : {
52165 "default" : "email profile",
52166 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
52167 "optional" : 1,
52168 "type" : "string",
52169 "typetext" : "<string>"
52170 },
44660702 52171 "secure" : {
c5aa7e14 52172 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
44660702 52173 "optional" : 1,
013dc89f
DM
52174 "type" : "boolean",
52175 "typetext" : "<boolean>"
44660702
DM
52176 },
52177 "server1" : {
52178 "description" : "Server IP address (or DNS name)",
52179 "format" : "address",
52180 "maxLength" : 256,
52181 "optional" : 1,
013dc89f
DM
52182 "type" : "string",
52183 "typetext" : "<string>"
44660702
DM
52184 },
52185 "server2" : {
52186 "description" : "Fallback Server IP address (or DNS name)",
52187 "format" : "address",
52188 "maxLength" : 256,
52189 "optional" : 1,
013dc89f
DM
52190 "type" : "string",
52191 "typetext" : "<string>"
44660702 52192 },
1c532546
TL
52193 "sslversion" : {
52194 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
52195 "enum" : [
52196 "tlsv1",
52197 "tlsv1_1",
52198 "tlsv1_2",
52199 "tlsv1_3"
52200 ],
52201 "optional" : 1,
52202 "type" : "string"
52203 },
c5aa7e14
TL
52204 "sync-defaults-options" : {
52205 "description" : "The default options for behavior of synchronizations.",
52206 "format" : "realm-sync-options",
52207 "optional" : 1,
52208 "type" : "string",
9d2e98ed 52209 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
c5aa7e14
TL
52210 },
52211 "sync_attributes" : {
52212 "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.",
52213 "optional" : 1,
52214 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
52215 "type" : "string"
52216 },
44660702
DM
52217 "tfa" : {
52218 "description" : "Use Two-factor authentication.",
52219 "format" : "pve-tfa-config",
52220 "maxLength" : 128,
52221 "optional" : 1,
013dc89f 52222 "type" : "string",
95895385 52223 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
52224 },
52225 "user_attr" : {
52226 "description" : "LDAP user attribute name",
52227 "maxLength" : 256,
52228 "optional" : 1,
52229 "pattern" : "\\S{2,}",
52230 "type" : "string"
2489d6df 52231 },
c5aa7e14
TL
52232 "user_classes" : {
52233 "default" : "inetorgperson, posixaccount, person, user",
52234 "description" : "The objectclasses for users.",
52235 "format" : "ldap-simple-attr-list",
52236 "optional" : 1,
52237 "type" : "string",
52238 "typetext" : "<string>"
52239 },
2489d6df
WB
52240 "verify" : {
52241 "default" : 0,
52242 "description" : "Verify the server's SSL certificate",
52243 "optional" : 1,
52244 "type" : "boolean",
52245 "typetext" : "<boolean>"
7aacca6f 52246 }
56122987 52247 },
44660702 52248 "type" : "object"
56122987 52249 },
7aacca6f
DM
52250 "permissions" : {
52251 "check" : [
52252 "perm",
52253 "/access/realm",
52254 [
44660702
DM
52255 "Realm.Allocate"
52256 ]
7aacca6f
DM
52257 ]
52258 },
44660702
DM
52259 "protected" : 1,
52260 "returns" : {
52261 "type" : "null"
52262 }
56122987 52263 }
44660702 52264 },
c5aa7e14 52265 "leaf" : 0,
44660702
DM
52266 "path" : "/access/domains/{realm}",
52267 "text" : "{realm}"
56122987 52268 }
7aacca6f 52269 ],
56122987
DM
52270 "info" : {
52271 "GET" : {
e9cd3bd4 52272 "allowtoken" : 1,
44660702
DM
52273 "description" : "Authentication domain index.",
52274 "method" : "GET",
52275 "name" : "index",
52276 "parameters" : {
52277 "additionalProperties" : 0
52278 },
52279 "permissions" : {
52280 "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
52281 "user" : "world"
52282 },
56122987 52283 "returns" : {
56122987
DM
52284 "items" : {
52285 "properties" : {
7aacca6f 52286 "comment" : {
52e44c50 52287 "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
7aacca6f
DM
52288 "optional" : 1,
52289 "type" : "string"
52290 },
56122987
DM
52291 "realm" : {
52292 "type" : "string"
52293 },
52294 "tfa" : {
7aacca6f 52295 "description" : "Two-factor authentication provider.",
56122987
DM
52296 "enum" : [
52297 "yubico",
52298 "oath"
52299 ],
44660702
DM
52300 "optional" : 1,
52301 "type" : "string"
c5aa7e14
TL
52302 },
52303 "type" : {
52304 "type" : "string"
56122987
DM
52305 }
52306 },
52307 "type" : "object"
44660702
DM
52308 },
52309 "links" : [
52310 {
52311 "href" : "{realm}",
52312 "rel" : "child"
52313 }
52314 ],
52315 "type" : "array"
52316 }
56122987
DM
52317 },
52318 "POST" : {
e9cd3bd4 52319 "allowtoken" : 1,
7aacca6f 52320 "description" : "Add an authentication server.",
44660702 52321 "method" : "POST",
7aacca6f 52322 "name" : "create",
56122987 52323 "parameters" : {
44660702 52324 "additionalProperties" : 0,
56122987 52325 "properties" : {
c30bb419
TL
52326 "acr-values" : {
52327 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
52328 "optional" : 1,
52329 "type" : "string",
52330 "typetext" : "<string>"
52331 },
34f3e481
TL
52332 "autocreate" : {
52333 "default" : 0,
52334 "description" : "Automatically create users if they do not exist.",
52335 "optional" : 1,
52336 "type" : "boolean",
52337 "typetext" : "<boolean>"
52338 },
44660702
DM
52339 "base_dn" : {
52340 "description" : "LDAP base domain name",
56122987 52341 "maxLength" : 256,
44660702 52342 "optional" : 1,
82551b2b
TL
52343 "type" : "string",
52344 "typetext" : "<string>"
56122987 52345 },
4bd7df8b
DM
52346 "bind_dn" : {
52347 "description" : "LDAP bind domain name",
52348 "maxLength" : 256,
52349 "optional" : 1,
82551b2b
TL
52350 "type" : "string",
52351 "typetext" : "<string>"
4bd7df8b 52352 },
2489d6df
WB
52353 "capath" : {
52354 "default" : "/etc/ssl/certs",
52355 "description" : "Path to the CA certificate store",
52356 "optional" : 1,
52357 "type" : "string",
52358 "typetext" : "<string>"
52359 },
4772952b
TL
52360 "case-sensitive" : {
52361 "default" : 1,
52362 "description" : "username is case-sensitive",
52363 "optional" : 1,
52364 "type" : "boolean",
52365 "typetext" : "<boolean>"
52366 },
2489d6df
WB
52367 "cert" : {
52368 "description" : "Path to the client certificate",
52369 "optional" : 1,
52370 "type" : "string",
52371 "typetext" : "<string>"
52372 },
52373 "certkey" : {
52374 "description" : "Path to the client certificate key",
52375 "optional" : 1,
52376 "type" : "string",
52377 "typetext" : "<string>"
52378 },
82551b2b
TL
52379 "check-connection" : {
52380 "default" : 0,
52381 "description" : "Check bind connection to the server.",
52382 "optional" : 1,
52383 "type" : "boolean",
52384 "typetext" : "<boolean>"
52385 },
34f3e481
TL
52386 "client-id" : {
52387 "description" : "OpenID Client ID",
52388 "maxLength" : 256,
52389 "optional" : 1,
52390 "type" : "string",
52391 "typetext" : "<string>"
52392 },
52393 "client-key" : {
52394 "description" : "OpenID Client Key",
52395 "maxLength" : 256,
52396 "optional" : 1,
52397 "type" : "string",
52398 "typetext" : "<string>"
52399 },
44660702
DM
52400 "comment" : {
52401 "description" : "Description.",
52402 "maxLength" : 4096,
56122987 52403 "optional" : 1,
013dc89f
DM
52404 "type" : "string",
52405 "typetext" : "<string>"
56122987 52406 },
44660702
DM
52407 "default" : {
52408 "description" : "Use this as default realm",
7aacca6f 52409 "optional" : 1,
013dc89f
DM
52410 "type" : "boolean",
52411 "typetext" : "<boolean>"
56122987 52412 },
44660702
DM
52413 "domain" : {
52414 "description" : "AD domain name",
52415 "maxLength" : 256,
7aacca6f 52416 "optional" : 1,
44660702
DM
52417 "pattern" : "\\S+",
52418 "type" : "string"
56122987 52419 },
c5aa7e14
TL
52420 "filter" : {
52421 "description" : "LDAP filter for user sync.",
52422 "maxLength" : 2048,
52423 "optional" : 1,
52424 "type" : "string",
52425 "typetext" : "<string>"
52426 },
52427 "group_classes" : {
52428 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
52429 "description" : "The objectclasses for groups.",
52430 "format" : "ldap-simple-attr-list",
52431 "optional" : 1,
52432 "type" : "string",
52433 "typetext" : "<string>"
52434 },
52435 "group_dn" : {
52436 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
52437 "maxLength" : 256,
52438 "optional" : 1,
82551b2b
TL
52439 "type" : "string",
52440 "typetext" : "<string>"
c5aa7e14
TL
52441 },
52442 "group_filter" : {
52443 "description" : "LDAP filter for group sync.",
52444 "maxLength" : 2048,
52445 "optional" : 1,
52446 "type" : "string",
52447 "typetext" : "<string>"
52448 },
52449 "group_name_attr" : {
52450 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
52451 "format" : "ldap-simple-attr",
52452 "maxLength" : 256,
52453 "optional" : 1,
52454 "type" : "string",
52455 "typetext" : "<string>"
52456 },
34f3e481
TL
52457 "issuer-url" : {
52458 "description" : "OpenID Issuer Url",
52459 "maxLength" : 256,
52460 "optional" : 1,
52461 "type" : "string",
52462 "typetext" : "<string>"
52463 },
c5aa7e14
TL
52464 "mode" : {
52465 "default" : "ldap",
52466 "description" : "LDAP protocol mode.",
52467 "enum" : [
52468 "ldap",
52469 "ldaps",
52470 "ldap+starttls"
52471 ],
52472 "optional" : 1,
52473 "type" : "string"
52474 },
52475 "password" : {
52476 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
52477 "optional" : 1,
52478 "type" : "string",
52479 "typetext" : "<string>"
52480 },
7aacca6f 52481 "port" : {
44660702 52482 "description" : "Server port.",
7aacca6f 52483 "maximum" : 65535,
44660702 52484 "minimum" : 1,
7aacca6f 52485 "optional" : 1,
4bd7df8b 52486 "type" : "integer",
013dc89f 52487 "typetext" : "<integer> (1 - 65535)"
56122987 52488 },
c30bb419
TL
52489 "prompt" : {
52490 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
52491 "optional" : 1,
52492 "pattern" : "(?:none|login|consent|select_account|\\S+)",
52493 "type" : "string"
52494 },
44660702
DM
52495 "realm" : {
52496 "description" : "Authentication domain ID",
52497 "format" : "pve-realm",
52498 "maxLength" : 32,
013dc89f
DM
52499 "type" : "string",
52500 "typetext" : "<string>"
44660702 52501 },
c30bb419
TL
52502 "scopes" : {
52503 "default" : "email profile",
52504 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
52505 "optional" : 1,
52506 "type" : "string",
52507 "typetext" : "<string>"
52508 },
44660702 52509 "secure" : {
c5aa7e14 52510 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
7aacca6f 52511 "optional" : 1,
013dc89f
DM
52512 "type" : "boolean",
52513 "typetext" : "<boolean>"
56122987 52514 },
44660702
DM
52515 "server1" : {
52516 "description" : "Server IP address (or DNS name)",
52517 "format" : "address",
52518 "maxLength" : 256,
52519 "optional" : 1,
013dc89f
DM
52520 "type" : "string",
52521 "typetext" : "<string>"
56122987 52522 },
44660702
DM
52523 "server2" : {
52524 "description" : "Fallback Server IP address (or DNS name)",
52525 "format" : "address",
7aacca6f 52526 "maxLength" : 256,
7aacca6f 52527 "optional" : 1,
013dc89f
DM
52528 "type" : "string",
52529 "typetext" : "<string>"
7aacca6f 52530 },
1c532546
TL
52531 "sslversion" : {
52532 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
52533 "enum" : [
52534 "tlsv1",
52535 "tlsv1_1",
52536 "tlsv1_2",
52537 "tlsv1_3"
52538 ],
52539 "optional" : 1,
52540 "type" : "string"
52541 },
c5aa7e14
TL
52542 "sync-defaults-options" : {
52543 "description" : "The default options for behavior of synchronizations.",
52544 "format" : "realm-sync-options",
52545 "optional" : 1,
52546 "type" : "string",
9d2e98ed 52547 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=([acl];[properties];[entry])|none] [,scope=<users|groups|both>]"
c5aa7e14
TL
52548 },
52549 "sync_attributes" : {
52550 "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.",
52551 "optional" : 1,
52552 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
52553 "type" : "string"
52554 },
44660702
DM
52555 "tfa" : {
52556 "description" : "Use Two-factor authentication.",
52557 "format" : "pve-tfa-config",
52558 "maxLength" : 128,
52559 "optional" : 1,
013dc89f 52560 "type" : "string",
95895385 52561 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
52562 },
52563 "type" : {
52564 "description" : "Realm type.",
52565 "enum" : [
52566 "ad",
52567 "ldap",
34f3e481 52568 "openid",
44660702
DM
52569 "pam",
52570 "pve"
52571 ],
52572 "type" : "string"
52573 },
52574 "user_attr" : {
52575 "description" : "LDAP user attribute name",
7aacca6f 52576 "maxLength" : 256,
7aacca6f 52577 "optional" : 1,
44660702
DM
52578 "pattern" : "\\S{2,}",
52579 "type" : "string"
2489d6df 52580 },
c5aa7e14
TL
52581 "user_classes" : {
52582 "default" : "inetorgperson, posixaccount, person, user",
52583 "description" : "The objectclasses for users.",
52584 "format" : "ldap-simple-attr-list",
52585 "optional" : 1,
52586 "type" : "string",
52587 "typetext" : "<string>"
52588 },
34f3e481
TL
52589 "username-claim" : {
52590 "description" : "OpenID claim used to generate the unique username.",
34f3e481 52591 "optional" : 1,
c30bb419
TL
52592 "type" : "string",
52593 "typetext" : "<string>"
34f3e481 52594 },
2489d6df
WB
52595 "verify" : {
52596 "default" : 0,
52597 "description" : "Verify the server's SSL certificate",
52598 "optional" : 1,
52599 "type" : "boolean",
52600 "typetext" : "<boolean>"
7aacca6f
DM
52601 }
52602 },
7aacca6f 52603 "type" : "object"
56122987 52604 },
7aacca6f
DM
52605 "permissions" : {
52606 "check" : [
52607 "perm",
52608 "/access/realm",
52609 [
52610 "Realm.Allocate"
52611 ]
52612 ]
44660702
DM
52613 },
52614 "protected" : 1,
52615 "returns" : {
52616 "type" : "null"
7aacca6f 52617 }
56122987 52618 }
7aacca6f 52619 },
44660702 52620 "leaf" : 0,
56122987 52621 "path" : "/access/domains",
44660702 52622 "text" : "domains"
56122987 52623 },
34f3e481
TL
52624 {
52625 "children" : [
52626 {
52627 "info" : {
52628 "POST" : {
52629 "allowtoken" : 1,
52630 "description" : "Get the OpenId Authorization Url for the specified realm.",
52631 "method" : "POST",
52632 "name" : "auth_url",
52633 "parameters" : {
52634 "additionalProperties" : 0,
52635 "properties" : {
52636 "realm" : {
52637 "description" : "Authentication domain ID",
52638 "format" : "pve-realm",
52639 "maxLength" : 32,
52640 "type" : "string",
52641 "typetext" : "<string>"
52642 },
52643 "redirect-url" : {
52644 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
52645 "maxLength" : 255,
52646 "type" : "string",
52647 "typetext" : "<string>"
52648 }
52649 }
52650 },
52651 "permissions" : {
52652 "user" : "world"
52653 },
52654 "protected" : 1,
52655 "returns" : {
52656 "description" : "Redirection URL.",
52657 "type" : "string"
52658 }
52659 }
52660 },
52661 "leaf" : 1,
52662 "path" : "/access/openid/auth-url",
52663 "text" : "auth-url"
52664 },
52665 {
52666 "info" : {
52667 "POST" : {
52668 "allowtoken" : 1,
52669 "description" : " Verify OpenID authorization code and create a ticket.",
52670 "method" : "POST",
52671 "name" : "login",
52672 "parameters" : {
52673 "additionalProperties" : 0,
52674 "properties" : {
52675 "code" : {
52676 "description" : "OpenId authorization code.",
de786b48 52677 "maxLength" : 4096,
34f3e481
TL
52678 "type" : "string",
52679 "typetext" : "<string>"
52680 },
52681 "redirect-url" : {
52682 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
52683 "maxLength" : 255,
52684 "type" : "string",
52685 "typetext" : "<string>"
52686 },
52687 "state" : {
52688 "description" : "OpenId state.",
52689 "maxLength" : 1024,
52690 "type" : "string",
52691 "typetext" : "<string>"
52692 }
52693 }
52694 },
52695 "permissions" : {
52696 "user" : "world"
52697 },
52698 "protected" : 1,
52699 "returns" : {
52700 "properties" : {
52701 "CSRFPreventionToken" : {
52702 "type" : "string"
52703 },
52704 "cap" : {
52705 "type" : "object"
52706 },
52707 "clustername" : {
52708 "optional" : 1,
52709 "type" : "string"
52710 },
52711 "ticket" : {
52712 "type" : "string"
52713 },
52714 "username" : {
52715 "type" : "string"
52716 }
52717 }
52718 }
52719 }
52720 },
52721 "leaf" : 1,
52722 "path" : "/access/openid/login",
52723 "text" : "login"
52724 }
52725 ],
52726 "info" : {
52727 "GET" : {
52728 "allowtoken" : 1,
52729 "description" : "Directory index.",
52730 "method" : "GET",
52731 "name" : "index",
52732 "parameters" : {
52733 "additionalProperties" : 0
52734 },
52735 "permissions" : {
52736 "user" : "all"
52737 },
52738 "returns" : {
52739 "items" : {
52740 "properties" : {
52741 "subdir" : {
52742 "type" : "string"
52743 }
52744 },
52745 "type" : "object"
52746 },
52747 "links" : [
52748 {
52749 "href" : "{subdir}",
52750 "rel" : "child"
52751 }
52752 ],
52753 "type" : "array"
52754 }
52755 }
52756 },
52757 "leaf" : 0,
52758 "path" : "/access/openid",
52759 "text" : "openid"
52760 },
5370fa8c
TL
52761 {
52762 "children" : [
52763 {
52764 "children" : [
52765 {
52766 "info" : {
52767 "DELETE" : {
52768 "allowtoken" : 0,
52769 "description" : "Delete a TFA entry by ID.",
52770 "method" : "DELETE",
52771 "name" : "delete_tfa",
52772 "parameters" : {
52773 "additionalProperties" : 0,
52774 "properties" : {
52775 "id" : {
52776 "description" : "A TFA entry id.",
52777 "type" : "string",
52778 "typetext" : "<string>"
52779 },
52780 "password" : {
52781 "description" : "The current password.",
52782 "maxLength" : 64,
52783 "minLength" : 5,
52784 "optional" : 1,
52785 "type" : "string",
52786 "typetext" : "<string>"
52787 },
52788 "userid" : {
9d2e98ed 52789 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
52790 "format" : "pve-userid",
52791 "maxLength" : 64,
52792 "type" : "string",
52793 "typetext" : "<string>"
52794 }
52795 }
52796 },
52797 "permissions" : {
52798 "check" : [
52799 "or",
52800 [
52801 "userid-param",
52802 "self"
52803 ],
52804 [
52805 "userid-group",
52806 [
52807 "User.Modify"
52808 ]
52809 ]
52810 ]
52811 },
52812 "protected" : 1,
52813 "returns" : {
52814 "type" : "null"
52815 }
52816 },
52817 "GET" : {
07b013aa 52818 "allowtoken" : 1,
5370fa8c
TL
52819 "description" : "Fetch a requested TFA entry if present.",
52820 "method" : "GET",
52821 "name" : "get_tfa_entry",
52822 "parameters" : {
52823 "additionalProperties" : 0,
52824 "properties" : {
52825 "id" : {
52826 "description" : "A TFA entry id.",
52827 "type" : "string",
52828 "typetext" : "<string>"
52829 },
52830 "userid" : {
9d2e98ed 52831 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
52832 "format" : "pve-userid",
52833 "maxLength" : 64,
52834 "type" : "string",
52835 "typetext" : "<string>"
52836 }
52837 }
52838 },
52839 "permissions" : {
52840 "check" : [
52841 "or",
52842 [
52843 "userid-param",
52844 "self"
52845 ],
52846 [
52847 "userid-group",
52848 [
52849 "User.Modify",
52850 "Sys.Audit"
52851 ]
52852 ]
52853 ]
52854 },
52855 "protected" : 1,
52856 "returns" : {
52857 "description" : "TFA Entry.",
52858 "properties" : {
52859 "created" : {
52860 "description" : "Creation time of this entry as unix epoch.",
52861 "type" : "integer"
52862 },
52863 "description" : {
52864 "description" : "User chosen description for this entry.",
52865 "type" : "string"
52866 },
52867 "enable" : {
52868 "default" : 1,
52869 "description" : "Whether this TFA entry is currently enabled.",
52870 "optional" : 1,
52871 "type" : "boolean"
52872 },
52873 "id" : {
52874 "description" : "The id used to reference this entry.",
52875 "type" : "string"
52876 },
52877 "type" : {
52878 "description" : "TFA Entry Type.",
52879 "enum" : [
52880 "totp",
52881 "u2f",
52882 "webauthn",
52883 "recovery",
52884 "yubico"
52885 ],
52886 "type" : "string"
52887 }
52888 },
52889 "type" : "object"
52890 }
52891 },
52892 "PUT" : {
52893 "allowtoken" : 0,
52894 "description" : "Add a TFA entry for a user.",
52895 "method" : "PUT",
52896 "name" : "update_tfa_entry",
52897 "parameters" : {
52898 "additionalProperties" : 0,
52899 "properties" : {
52900 "description" : {
52901 "description" : "A description to distinguish multiple entries from one another",
52902 "maxLength" : 255,
52903 "optional" : 1,
52904 "type" : "string",
52905 "typetext" : "<string>"
52906 },
52907 "enable" : {
52908 "description" : "Whether the entry should be enabled for login.",
52909 "optional" : 1,
52910 "type" : "boolean",
52911 "typetext" : "<boolean>"
52912 },
52913 "id" : {
52914 "description" : "A TFA entry id.",
52915 "type" : "string",
52916 "typetext" : "<string>"
52917 },
52918 "password" : {
52919 "description" : "The current password.",
52920 "maxLength" : 64,
52921 "minLength" : 5,
52922 "optional" : 1,
52923 "type" : "string",
52924 "typetext" : "<string>"
52925 },
52926 "userid" : {
9d2e98ed 52927 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
52928 "format" : "pve-userid",
52929 "maxLength" : 64,
52930 "type" : "string",
52931 "typetext" : "<string>"
52932 }
52933 }
52934 },
52935 "permissions" : {
52936 "check" : [
52937 "or",
52938 [
52939 "userid-param",
52940 "self"
52941 ],
52942 [
52943 "userid-group",
52944 [
52945 "User.Modify"
52946 ]
52947 ]
52948 ]
52949 },
52950 "protected" : 1,
52951 "returns" : {
52952 "type" : "null"
52953 }
52954 }
52955 },
52956 "leaf" : 1,
52957 "path" : "/access/tfa/{userid}/{id}",
52958 "text" : "{id}"
52959 }
52960 ],
52961 "info" : {
52962 "GET" : {
07b013aa 52963 "allowtoken" : 1,
5370fa8c
TL
52964 "description" : "List TFA configurations of users.",
52965 "method" : "GET",
52966 "name" : "list_user_tfa",
52967 "parameters" : {
52968 "additionalProperties" : 0,
52969 "properties" : {
52970 "userid" : {
9d2e98ed 52971 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
52972 "format" : "pve-userid",
52973 "maxLength" : 64,
52974 "type" : "string",
52975 "typetext" : "<string>"
52976 }
52977 }
52978 },
52979 "permissions" : {
52980 "check" : [
52981 "or",
52982 [
52983 "userid-param",
52984 "self"
52985 ],
52986 [
52987 "userid-group",
52988 [
52989 "User.Modify",
52990 "Sys.Audit"
52991 ]
52992 ]
52993 ]
52994 },
52995 "protected" : 1,
52996 "returns" : {
52997 "description" : "A list of the user's TFA entries.",
52998 "items" : {
52999 "description" : "TFA Entry.",
53000 "properties" : {
53001 "created" : {
53002 "description" : "Creation time of this entry as unix epoch.",
53003 "type" : "integer"
53004 },
53005 "description" : {
53006 "description" : "User chosen description for this entry.",
53007 "type" : "string"
53008 },
53009 "enable" : {
53010 "default" : 1,
53011 "description" : "Whether this TFA entry is currently enabled.",
53012 "optional" : 1,
53013 "type" : "boolean"
53014 },
53015 "id" : {
53016 "description" : "The id used to reference this entry.",
53017 "type" : "string"
53018 },
53019 "type" : {
53020 "description" : "TFA Entry Type.",
53021 "enum" : [
53022 "totp",
53023 "u2f",
53024 "webauthn",
53025 "recovery",
53026 "yubico"
53027 ],
53028 "type" : "string"
53029 }
53030 },
53031 "type" : "object"
53032 },
07b013aa
TL
53033 "links" : [
53034 {
53035 "href" : "{id}",
53036 "rel" : "child"
53037 }
53038 ],
5370fa8c
TL
53039 "type" : "array"
53040 }
53041 },
53042 "POST" : {
53043 "allowtoken" : 0,
53044 "description" : "Add a TFA entry for a user.",
53045 "method" : "POST",
53046 "name" : "add_tfa_entry",
53047 "parameters" : {
53048 "additionalProperties" : 0,
53049 "properties" : {
53050 "challenge" : {
53051 "description" : "When responding to a u2f challenge: the original challenge string",
53052 "optional" : 1,
53053 "type" : "string",
53054 "typetext" : "<string>"
53055 },
53056 "description" : {
53057 "description" : "A description to distinguish multiple entries from one another",
53058 "maxLength" : 255,
53059 "optional" : 1,
53060 "type" : "string",
53061 "typetext" : "<string>"
53062 },
53063 "password" : {
53064 "description" : "The current password.",
53065 "maxLength" : 64,
53066 "minLength" : 5,
53067 "optional" : 1,
53068 "type" : "string",
53069 "typetext" : "<string>"
53070 },
53071 "totp" : {
53072 "description" : "A totp URI.",
53073 "optional" : 1,
53074 "type" : "string",
53075 "typetext" : "<string>"
53076 },
53077 "type" : {
53078 "description" : "TFA Entry Type.",
53079 "enum" : [
53080 "totp",
53081 "u2f",
53082 "webauthn",
53083 "recovery",
53084 "yubico"
53085 ],
53086 "type" : "string"
53087 },
53088 "userid" : {
9d2e98ed 53089 "description" : "Full User ID, in the `name@realm` format.",
5370fa8c
TL
53090 "format" : "pve-userid",
53091 "maxLength" : 64,
53092 "type" : "string",
53093 "typetext" : "<string>"
53094 },
53095 "value" : {
53096 "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
53097 "optional" : 1,
53098 "type" : "string",
53099 "typetext" : "<string>"
53100 }
53101 }
53102 },
53103 "permissions" : {
53104 "check" : [
53105 "or",
53106 [
53107 "userid-param",
53108 "self"
53109 ],
53110 [
53111 "userid-group",
53112 [
53113 "User.Modify"
53114 ]
53115 ]
53116 ]
53117 },
53118 "protected" : 1,
53119 "returns" : {
53120 "properties" : {
53121 "challenge" : {
53122 "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
53123 "optional" : 1,
53124 "type" : "string"
53125 },
53126 "id" : {
53127 "description" : "The id of a newly added TFA entry.",
53128 "type" : "string"
53129 },
53130 "recovery" : {
53131 "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
53132 "items" : {
53133 "description" : "A recovery entry.",
53134 "type" : "string"
53135 },
53136 "optional" : 1,
53137 "type" : "array"
53138 }
53139 },
53140 "type" : "object"
53141 }
53142 }
53143 },
53144 "leaf" : 0,
53145 "path" : "/access/tfa/{userid}",
53146 "text" : "{userid}"
53147 }
53148 ],
53149 "info" : {
53150 "GET" : {
07b013aa 53151 "allowtoken" : 1,
5370fa8c
TL
53152 "description" : "List TFA configurations of users.",
53153 "method" : "GET",
53154 "name" : "list_tfa",
53155 "parameters" : {
53156 "additionalProperties" : 0
53157 },
53158 "permissions" : {
53159 "description" : "Returns all or just the logged-in user, depending on privileges.",
53160 "user" : "all"
53161 },
53162 "protected" : 1,
53163 "returns" : {
53164 "description" : "The list tuples of user and TFA entries.",
53165 "items" : {
53166 "properties" : {
53167 "entries" : {
53168 "items" : {
53169 "description" : "TFA Entry.",
53170 "properties" : {
53171 "created" : {
53172 "description" : "Creation time of this entry as unix epoch.",
53173 "type" : "integer"
53174 },
53175 "description" : {
53176 "description" : "User chosen description for this entry.",
53177 "type" : "string"
53178 },
53179 "enable" : {
53180 "default" : 1,
53181 "description" : "Whether this TFA entry is currently enabled.",
53182 "optional" : 1,
53183 "type" : "boolean"
53184 },
53185 "id" : {
53186 "description" : "The id used to reference this entry.",
53187 "type" : "string"
53188 },
53189 "type" : {
53190 "description" : "TFA Entry Type.",
53191 "enum" : [
53192 "totp",
53193 "u2f",
53194 "webauthn",
53195 "recovery",
53196 "yubico"
53197 ],
53198 "type" : "string"
53199 }
53200 },
53201 "type" : "object"
53202 },
53203 "type" : "array"
53204 },
4a407cfd
TL
53205 "tfa-locked-until" : {
53206 "description" : "Contains a timestamp until when a user is locked out of 2nd factors.",
53207 "optional" : 1,
53208 "type" : "integer"
53209 },
53210 "totp-locked" : {
53211 "description" : "True if the user is currently locked out of TOTP factors.",
53212 "optional" : 1,
53213 "type" : "boolean"
53214 },
5370fa8c
TL
53215 "userid" : {
53216 "description" : "User this entry belongs to.",
53217 "type" : "string"
53218 }
53219 },
53220 "type" : "object"
53221 },
07b013aa
TL
53222 "links" : [
53223 {
53224 "href" : "{userid}",
53225 "rel" : "child"
53226 }
53227 ],
5370fa8c
TL
53228 "type" : "array"
53229 }
5370fa8c
TL
53230 }
53231 },
53232 "leaf" : 0,
53233 "path" : "/access/tfa",
53234 "text" : "tfa"
53235 },
56122987 53236 {
56122987 53237 "info" : {
44660702 53238 "GET" : {
e9cd3bd4 53239 "allowtoken" : 1,
2489d6df 53240 "description" : "Dummy. Useful for formatters which want to provide a login page.",
44660702
DM
53241 "method" : "GET",
53242 "name" : "get_ticket",
53243 "parameters" : {
53244 "additionalProperties" : 0
53245 },
53246 "permissions" : {
53247 "user" : "world"
53248 },
53249 "returns" : {
53250 "type" : "null"
53251 }
53252 },
56122987 53253 "POST" : {
e9cd3bd4 53254 "allowtoken" : 0,
44660702 53255 "description" : "Create or verify authentication ticket.",
56122987 53256 "method" : "POST",
44660702
DM
53257 "name" : "create_ticket",
53258 "parameters" : {
53259 "additionalProperties" : 0,
56122987 53260 "properties" : {
5370fa8c 53261 "new-format" : {
4a407cfd
TL
53262 "default" : 1,
53263 "description" : "This parameter is now ignored and assumed to be 1.",
5370fa8c
TL
53264 "optional" : 1,
53265 "type" : "boolean",
53266 "typetext" : "<boolean>"
53267 },
44660702
DM
53268 "otp" : {
53269 "description" : "One-time password for Two-factor authentication.",
7aacca6f 53270 "optional" : 1,
013dc89f
DM
53271 "type" : "string",
53272 "typetext" : "<string>"
56122987 53273 },
7aacca6f
DM
53274 "password" : {
53275 "description" : "The secret password. This can also be a valid ticket.",
013dc89f
DM
53276 "type" : "string",
53277 "typetext" : "<string>"
7aacca6f 53278 },
44660702
DM
53279 "path" : {
53280 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
7aacca6f 53281 "maxLength" : 64,
56122987 53282 "optional" : 1,
56122987 53283 "requires" : "privs",
013dc89f
DM
53284 "type" : "string",
53285 "typetext" : "<string>"
44660702
DM
53286 },
53287 "privs" : {
7aacca6f 53288 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
44660702
DM
53289 "format" : "pve-priv-list",
53290 "maxLength" : 64,
56122987 53291 "optional" : 1,
44660702 53292 "requires" : "path",
013dc89f
DM
53293 "type" : "string",
53294 "typetext" : "<string>"
56122987
DM
53295 },
53296 "realm" : {
56122987 53297 "description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
44660702 53298 "format" : "pve-realm",
7aacca6f 53299 "maxLength" : 32,
44660702 53300 "optional" : 1,
013dc89f
DM
53301 "type" : "string",
53302 "typetext" : "<string>"
56122987 53303 },
5370fa8c
TL
53304 "tfa-challenge" : {
53305 "description" : "The signed TFA challenge string the user wants to respond to.",
53306 "optional" : 1,
53307 "type" : "string",
53308 "typetext" : "<string>"
53309 },
56122987
DM
53310 "username" : {
53311 "description" : "User name",
44660702 53312 "maxLength" : 64,
013dc89f
DM
53313 "type" : "string",
53314 "typetext" : "<string>"
56122987 53315 }
44660702 53316 }
7aacca6f 53317 },
56122987 53318 "permissions" : {
44660702 53319 "description" : "You need to pass valid credientials.",
56122987
DM
53320 "user" : "world"
53321 },
44660702 53322 "protected" : 1,
7aacca6f 53323 "returns" : {
56122987 53324 "properties" : {
44660702
DM
53325 "CSRFPreventionToken" : {
53326 "optional" : 1,
53327 "type" : "string"
56122987 53328 },
e2d681b3
TL
53329 "clustername" : {
53330 "optional" : 1,
53331 "type" : "string"
53332 },
44660702
DM
53333 "ticket" : {
53334 "optional" : 1,
53335 "type" : "string"
53336 },
53337 "username" : {
56122987
DM
53338 "type" : "string"
53339 }
53340 },
44660702 53341 "type" : "object"
7aacca6f 53342 }
7aacca6f
DM
53343 }
53344 },
44660702
DM
53345 "leaf" : 1,
53346 "path" : "/access/ticket",
53347 "text" : "ticket"
7aacca6f 53348 },
56122987 53349 {
56122987 53350 "info" : {
7aacca6f 53351 "PUT" : {
e9cd3bd4 53352 "allowtoken" : 0,
44660702 53353 "description" : "Change user password.",
7aacca6f 53354 "method" : "PUT",
e2d681b3 53355 "name" : "change_password",
56122987
DM
53356 "parameters" : {
53357 "additionalProperties" : 0,
53358 "properties" : {
44660702
DM
53359 "password" : {
53360 "description" : "The new password.",
53361 "maxLength" : 64,
53362 "minLength" : 5,
013dc89f
DM
53363 "type" : "string",
53364 "typetext" : "<string>"
7aacca6f 53365 },
44660702 53366 "userid" : {
9d2e98ed 53367 "description" : "Full User ID, in the `name@realm` format.",
44660702
DM
53368 "format" : "pve-userid",
53369 "maxLength" : 64,
013dc89f
DM
53370 "type" : "string",
53371 "typetext" : "<string>"
56122987 53372 }
7aacca6f 53373 }
56122987
DM
53374 },
53375 "permissions" : {
53376 "check" : [
44660702 53377 "or",
56122987 53378 [
44660702
DM
53379 "userid-param",
53380 "self"
53381 ],
53382 [
53383 "and",
53384 [
53385 "userid-param",
53386 "Realm.AllocateUser"
53387 ],
53388 [
53389 "userid-group",
53390 [
53391 "User.Modify"
53392 ]
53393 ]
56122987 53394 ]
7aacca6f 53395 ],
44660702 53396 "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 53397 },
44660702 53398 "protected" : 1,
7aacca6f
DM
53399 "returns" : {
53400 "type" : "null"
44660702
DM
53401 }
53402 }
53403 },
53404 "leaf" : 1,
53405 "path" : "/access/password",
53406 "text" : "password"
95895385 53407 },
e9cd3bd4
TL
53408 {
53409 "info" : {
53410 "GET" : {
53411 "allowtoken" : 1,
53412 "description" : "Retrieve effective permissions of given user/token.",
53413 "method" : "GET",
53414 "name" : "permissions",
53415 "parameters" : {
53416 "additionalProperties" : 0,
53417 "properties" : {
53418 "path" : {
53419 "description" : "Only dump this specific path, not the whole tree.",
53420 "optional" : 1,
53421 "type" : "string",
53422 "typetext" : "<string>"
53423 },
53424 "userid" : {
53425 "description" : "User ID or full API token ID",
53426 "optional" : 1,
53427 "pattern" : "(?^:^(?^:[^\\s:/]+)\\@(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+))?$)",
53428 "type" : "string"
53429 }
53430 }
53431 },
53432 "permissions" : {
53433 "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.",
53434 "user" : "all"
53435 },
53436 "returns" : {
53437 "description" : "Map of \"path\" => (Map of \"privilege\" => \"propagate boolean\").",
53438 "type" : "object"
53439 }
53440 }
53441 },
53442 "leaf" : 1,
53443 "path" : "/access/permissions",
53444 "text" : "permissions"
44660702
DM
53445 }
53446 ],
53447 "info" : {
53448 "GET" : {
e9cd3bd4 53449 "allowtoken" : 1,
44660702
DM
53450 "description" : "Directory index.",
53451 "method" : "GET",
53452 "name" : "index",
53453 "parameters" : {
53454 "additionalProperties" : 0
53455 },
53456 "permissions" : {
53457 "user" : "all"
53458 },
53459 "returns" : {
53460 "items" : {
53461 "properties" : {
53462 "subdir" : {
53463 "type" : "string"
53464 }
7aacca6f 53465 },
44660702
DM
53466 "type" : "object"
53467 },
53468 "links" : [
53469 {
53470 "href" : "{subdir}",
53471 "rel" : "child"
53472 }
53473 ],
53474 "type" : "array"
53475 }
53476 }
53477 },
53478 "leaf" : 0,
53479 "path" : "/access",
53480 "text" : "access"
53481 },
53482 {
53483 "children" : [
53484 {
53485 "info" : {
53486 "DELETE" : {
e9cd3bd4 53487 "allowtoken" : 1,
7aacca6f 53488 "description" : "Delete pool.",
44660702
DM
53489 "method" : "DELETE",
53490 "name" : "delete_pool",
7aacca6f
DM
53491 "parameters" : {
53492 "additionalProperties" : 0,
53493 "properties" : {
53494 "poolid" : {
53495 "format" : "pve-poolid",
013dc89f
DM
53496 "type" : "string",
53497 "typetext" : "<string>"
7aacca6f
DM
53498 }
53499 }
53500 },
56122987
DM
53501 "permissions" : {
53502 "check" : [
53503 "perm",
53504 "/pool/{poolid}",
53505 [
53506 "Pool.Allocate"
53507 ]
44660702
DM
53508 ],
53509 "description" : "You can only delete empty pools (no members)."
53510 },
53511 "protected" : 1,
53512 "returns" : {
53513 "type" : "null"
7aacca6f
DM
53514 }
53515 },
53516 "GET" : {
e9cd3bd4 53517 "allowtoken" : 1,
7aacca6f 53518 "description" : "Get pool configuration.",
44660702 53519 "method" : "GET",
7aacca6f 53520 "name" : "read_pool",
56122987 53521 "parameters" : {
44660702 53522 "additionalProperties" : 0,
56122987
DM
53523 "properties" : {
53524 "poolid" : {
44660702 53525 "format" : "pve-poolid",
013dc89f
DM
53526 "type" : "string",
53527 "typetext" : "<string>"
c30bb419
TL
53528 },
53529 "type" : {
53530 "enum" : [
53531 "qemu",
53532 "lxc",
53533 "storage"
53534 ],
53535 "optional" : 1,
53536 "type" : "string"
56122987 53537 }
44660702 53538 }
56122987 53539 },
56122987 53540 "permissions" : {
56122987
DM
53541 "check" : [
53542 "perm",
53543 "/pool/{poolid}",
53544 [
0695fdaf 53545 "Pool.Audit"
56122987
DM
53546 ]
53547 ]
53548 },
7aacca6f 53549 "returns" : {
44660702 53550 "additionalProperties" : 0,
56122987 53551 "properties" : {
44660702
DM
53552 "comment" : {
53553 "optional" : 1,
53554 "type" : "string"
53555 },
7aacca6f 53556 "members" : {
7aacca6f
DM
53557 "items" : {
53558 "additionalProperties" : 1,
7aacca6f 53559 "properties" : {
7aacca6f
DM
53560 "id" : {
53561 "type" : "string"
53562 },
53563 "node" : {
53564 "type" : "string"
53565 },
44660702
DM
53566 "storage" : {
53567 "optional" : 1,
53568 "type" : "string"
53569 },
7aacca6f 53570 "type" : {
7aacca6f
DM
53571 "enum" : [
53572 "qemu",
53573 "lxc",
53574 "openvz",
53575 "storage"
44660702
DM
53576 ],
53577 "type" : "string"
53578 },
53579 "vmid" : {
53580 "optional" : 1,
53581 "type" : "integer"
7aacca6f 53582 }
44660702
DM
53583 },
53584 "type" : "object"
53585 },
53586 "type" : "array"
53587 }
53588 },
53589 "type" : "object"
53590 }
53591 },
53592 "PUT" : {
e9cd3bd4 53593 "allowtoken" : 1,
44660702
DM
53594 "description" : "Update pool data.",
53595 "method" : "PUT",
53596 "name" : "update_pool",
53597 "parameters" : {
53598 "additionalProperties" : 0,
53599 "properties" : {
82551b2b
TL
53600 "allow-move" : {
53601 "default" : 0,
53602 "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.",
53603 "optional" : 1,
53604 "type" : "boolean",
53605 "typetext" : "<boolean>"
53606 },
56122987
DM
53607 "comment" : {
53608 "optional" : 1,
013dc89f
DM
53609 "type" : "string",
53610 "typetext" : "<string>"
44660702
DM
53611 },
53612 "delete" : {
82551b2b
TL
53613 "default" : 0,
53614 "description" : "Remove the passed VMIDs and/or storage IDs instead of adding them.",
44660702 53615 "optional" : 1,
013dc89f
DM
53616 "type" : "boolean",
53617 "typetext" : "<boolean>"
44660702
DM
53618 },
53619 "poolid" : {
53620 "format" : "pve-poolid",
013dc89f
DM
53621 "type" : "string",
53622 "typetext" : "<string>"
44660702
DM
53623 },
53624 "storage" : {
82551b2b 53625 "description" : "List of storage IDs to add or remove from this pool.",
44660702
DM
53626 "format" : "pve-storage-id-list",
53627 "optional" : 1,
013dc89f
DM
53628 "type" : "string",
53629 "typetext" : "<string>"
44660702
DM
53630 },
53631 "vms" : {
82551b2b 53632 "description" : "List of guest VMIDs to add or remove from this pool.",
44660702
DM
53633 "format" : "pve-vmid-list",
53634 "optional" : 1,
013dc89f
DM
53635 "type" : "string",
53636 "typetext" : "<string>"
56122987 53637 }
44660702
DM
53638 }
53639 },
53640 "permissions" : {
53641 "check" : [
53642 "perm",
53643 "/pool/{poolid}",
53644 [
53645 "Pool.Allocate"
53646 ]
53647 ],
53648 "description" : "You also need the right to modify permissions on any object you add/delete."
53649 },
53650 "protected" : 1,
53651 "returns" : {
53652 "type" : "null"
56122987
DM
53653 }
53654 }
53655 },
44660702
DM
53656 "leaf" : 1,
53657 "path" : "/pools/{poolid}",
7aacca6f 53658 "text" : "{poolid}"
56122987 53659 }
7aacca6f 53660 ],
56122987
DM
53661 "info" : {
53662 "GET" : {
e9cd3bd4 53663 "allowtoken" : 1,
44660702
DM
53664 "description" : "Pool index.",
53665 "method" : "GET",
53666 "name" : "index",
53667 "parameters" : {
53668 "additionalProperties" : 0
53669 },
53670 "permissions" : {
0695fdaf 53671 "description" : "List all pools where you have Pool.Audit permissions on /pool/<pool>.",
44660702
DM
53672 "user" : "all"
53673 },
56122987 53674 "returns" : {
44660702
DM
53675 "items" : {
53676 "properties" : {
53677 "poolid" : {
53678 "type" : "string"
53679 }
56122987 53680 },
44660702
DM
53681 "type" : "object"
53682 },
53683 "links" : [
53684 {
53685 "href" : "{poolid}",
53686 "rel" : "child"
53687 }
53688 ],
53689 "type" : "array"
53690 }
53691 },
53692 "POST" : {
e9cd3bd4 53693 "allowtoken" : 1,
44660702
DM
53694 "description" : "Create new pool.",
53695 "method" : "POST",
53696 "name" : "create_pool",
53697 "parameters" : {
53698 "additionalProperties" : 0,
53699 "properties" : {
53700 "comment" : {
53701 "optional" : 1,
013dc89f
DM
53702 "type" : "string",
53703 "typetext" : "<string>"
7aacca6f 53704 },
44660702
DM
53705 "poolid" : {
53706 "format" : "pve-poolid",
013dc89f
DM
53707 "type" : "string",
53708 "typetext" : "<string>"
56122987
DM
53709 }
53710 }
53711 },
56122987 53712 "permissions" : {
44660702
DM
53713 "check" : [
53714 "perm",
53715 "/pool/{poolid}",
53716 [
53717 "Pool.Allocate"
53718 ]
53719 ]
56122987 53720 },
44660702
DM
53721 "protected" : 1,
53722 "returns" : {
53723 "type" : "null"
53724 }
53725 }
53726 },
53727 "leaf" : 0,
53728 "path" : "/pools",
53729 "text" : "pools"
53730 },
53731 {
53732 "info" : {
53733 "GET" : {
e9cd3bd4 53734 "allowtoken" : 1,
5370fa8c 53735 "description" : "API version details, including some parts of the global datacenter config.",
44660702
DM
53736 "method" : "GET",
53737 "name" : "version",
7aacca6f
DM
53738 "parameters" : {
53739 "additionalProperties" : 0
53740 },
44660702
DM
53741 "permissions" : {
53742 "user" : "all"
53743 },
53744 "returns" : {
53745 "properties" : {
5370fa8c
TL
53746 "console" : {
53747 "description" : "The default console viewer to use.",
53748 "enum" : [
53749 "applet",
53750 "vv",
53751 "html5",
53752 "xtermjs"
53753 ],
53754 "optional" : 1,
53755 "type" : "string"
53756 },
44660702 53757 "release" : {
5370fa8c 53758 "description" : "The current Proxmox VE point release in `x.y` format.",
44660702
DM
53759 "type" : "string"
53760 },
53761 "repoid" : {
5370fa8c 53762 "description" : "The short git revision from which this version was build.",
4a407cfd 53763 "pattern" : "[0-9a-fA-F]{8,64}",
44660702
DM
53764 "type" : "string"
53765 },
53766 "version" : {
5370fa8c 53767 "description" : "The full pve-manager package version of this node.",
44660702
DM
53768 "type" : "string"
53769 }
53770 },
53771 "type" : "object"
53772 }
56122987
DM
53773 }
53774 },
44660702
DM
53775 "leaf" : 1,
53776 "path" : "/version",
56122987
DM
53777 "text" : "version"
53778 }
53779]
53780;
53781