]> git.proxmox.com Git - pve-docs.git/blame - api-viewer/apidata.js
update static/schema info
[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" : {
100 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
101 "maxLength" : 40,
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 ],
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 },
4772952b
TL
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" : {
d2656385
TL
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 },
4772952b
TL
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 },
d2656385
TL
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 },
4772952b
TL
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 },
d2656385
TL
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 },
4772952b
TL
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",
d2656385
TL
432 "maximum" : 65536,
433 "minimum" : 1,
4772952b 434 "type" : "integer",
d2656385 435 "typetext" : "<integer> (1 - 65536)"
4772952b
TL
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 },
d2656385
TL
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 },
4772952b
TL
466 "type" : {
467 "description" : "Plugin type.",
468 "enum" : [
469 "graphite",
470 "influxdb"
471 ],
472 "format" : "pve-configid",
473 "type" : "string"
5370fa8c
TL
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>"
4772952b
TL
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" : {
d2656385
TL
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 },
4772952b
TL
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 different SHA1 digest. This can be used to prevent concurrent modifications.",
529 "maxLength" : 40,
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 },
d2656385
TL
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 },
4772952b
TL
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 },
d2656385
TL
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 },
4772952b
TL
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",
d2656385
TL
588 "maximum" : 65536,
589 "minimum" : 1,
4772952b 590 "type" : "integer",
d2656385 591 "typetext" : "<integer> (1 - 65536)"
4772952b
TL
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)"
d2656385
TL
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>"
5370fa8c
TL
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>"
4772952b
TL
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 },
32d876b5
DM
742 {
743 "children" : [
c5aa7e14
TL
744 {
745 "info" : {
746 "GET" : {
747 "allowtoken" : 1,
748 "description" : "Return the version of the cluster join API available on this node.",
749 "method" : "GET",
750 "name" : "join_api_version",
751 "parameters" : {
752 "additionalProperties" : 0
753 },
754 "permissions" : {
755 "check" : [
756 "perm",
757 "/",
758 [
759 "Sys.Audit"
760 ]
761 ]
762 },
763 "returns" : {
764 "description" : "Cluster Join API version, currently 1",
765 "minimum" : 0,
766 "type" : "integer"
767 }
768 }
769 },
770 "leaf" : 1,
771 "path" : "/cluster/config/apiversion",
772 "text" : "apiversion"
773 },
32d876b5 774 {
27a7acb2
DM
775 "children" : [
776 {
777 "info" : {
778 "DELETE" : {
e9cd3bd4 779 "allowtoken" : 1,
27a7acb2
DM
780 "description" : "Removes a node from the cluster configuration.",
781 "method" : "DELETE",
782 "name" : "delnode",
783 "parameters" : {
784 "additionalProperties" : 0,
785 "properties" : {
786 "node" : {
787 "description" : "The cluster node name.",
788 "format" : "pve-node",
789 "type" : "string",
790 "typetext" : "<string>"
791 }
792 }
793 },
794 "protected" : 1,
795 "returns" : {
796 "type" : "null"
797 }
798 },
799 "POST" : {
e9cd3bd4 800 "allowtoken" : 1,
e2d681b3 801 "description" : "Adds a node to the cluster configuration. This call is for internal use.",
27a7acb2
DM
802 "method" : "POST",
803 "name" : "addnode",
804 "parameters" : {
805 "additionalProperties" : 0,
806 "properties" : {
c5aa7e14
TL
807 "apiversion" : {
808 "description" : "The JOIN_API_VERSION of the new node.",
809 "optional" : 1,
810 "type" : "integer",
811 "typetext" : "<integer>"
812 },
27a7acb2
DM
813 "force" : {
814 "description" : "Do not throw error if node already exists.",
815 "optional" : 1,
816 "type" : "boolean",
817 "typetext" : "<boolean>"
818 },
1e3f8156 819 "link[n]" : {
c5aa7e14 820 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
821 "format" : {
822 "address" : {
823 "default_key" : 1,
824 "description" : "Hostname (or IP) of this corosync link address.",
825 "format" : "address",
826 "format_description" : "IP",
827 "type" : "string"
828 },
829 "priority" : {
830 "default" : 0,
c5aa7e14 831 "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
832 "maximum" : 255,
833 "minimum" : 0,
834 "optional" : 1,
835 "type" : "integer"
836 }
837 },
838 "optional" : 1,
839 "type" : "string",
840 "typetext" : "[address=]<IP> [,priority=<integer>]"
841 },
c5aa7e14
TL
842 "new_node_ip" : {
843 "description" : "IP Address of node to add. Used as fallback if no links are given.",
844 "format" : "ip",
845 "optional" : 1,
846 "type" : "string",
847 "typetext" : "<string>"
848 },
27a7acb2
DM
849 "node" : {
850 "description" : "The cluster node name.",
851 "format" : "pve-node",
852 "type" : "string",
853 "typetext" : "<string>"
854 },
855 "nodeid" : {
856 "description" : "Node id for this node.",
857 "minimum" : 1,
858 "optional" : 1,
859 "type" : "integer",
860 "typetext" : "<integer> (1 - N)"
861 },
27a7acb2
DM
862 "votes" : {
863 "description" : "Number of votes for this node",
864 "minimum" : 0,
865 "optional" : 1,
866 "type" : "integer",
867 "typetext" : "<integer> (0 - N)"
868 }
869 }
870 },
871 "protected" : 1,
872 "returns" : {
873 "properties" : {
874 "corosync_authkey" : {
875 "type" : "string"
876 },
877 "corosync_conf" : {
878 "type" : "string"
c5aa7e14
TL
879 },
880 "warnings" : {
881 "items" : {
882 "type" : "string"
883 },
884 "type" : "array"
27a7acb2
DM
885 }
886 },
887 "type" : "object"
888 }
889 }
890 },
891 "leaf" : 1,
892 "path" : "/cluster/config/nodes/{node}",
893 "text" : "{node}"
894 }
895 ],
32d876b5
DM
896 "info" : {
897 "GET" : {
e9cd3bd4 898 "allowtoken" : 1,
32d876b5
DM
899 "description" : "Corosync node list.",
900 "method" : "GET",
901 "name" : "nodes",
902 "parameters" : {
903 "additionalProperties" : 0
904 },
5d9c884c
DM
905 "permissions" : {
906 "check" : [
907 "perm",
908 "/",
909 [
910 "Sys.Audit"
911 ]
912 ]
913 },
32d876b5
DM
914 "returns" : {
915 "items" : {
916 "properties" : {
917 "node" : {
918 "type" : "string"
919 }
920 },
921 "type" : "object"
922 },
923 "links" : [
924 {
925 "href" : "{node}",
926 "rel" : "child"
927 }
928 ],
929 "type" : "array"
930 }
931 }
932 },
27a7acb2 933 "leaf" : 0,
32d876b5
DM
934 "path" : "/cluster/config/nodes",
935 "text" : "nodes"
936 },
27a7acb2
DM
937 {
938 "info" : {
939 "GET" : {
e9cd3bd4 940 "allowtoken" : 1,
27a7acb2
DM
941 "description" : "Get information needed to join this cluster over the connected node.",
942 "method" : "GET",
943 "name" : "join_info",
944 "parameters" : {
945 "additionalProperties" : 0,
946 "properties" : {
947 "node" : {
948 "default" : "current connected node",
949 "description" : "The node for which the joinee gets the nodeinfo. ",
950 "format" : "pve-node",
951 "optional" : 1,
952 "type" : "string",
953 "typetext" : "<string>"
954 }
955 }
956 },
a9a8e3d1
DM
957 "permissions" : {
958 "check" : [
959 "perm",
960 "/",
961 [
962 "Sys.Audit"
963 ]
964 ]
965 },
27a7acb2
DM
966 "returns" : {
967 "additionalProperties" : 0,
968 "properties" : {
969 "config_digest" : {
970 "type" : "string"
971 },
972 "nodelist" : {
973 "items" : {
974 "additionalProperties" : 1,
975 "properties" : {
976 "name" : {
977 "description" : "The cluster node name.",
978 "format" : "pve-node",
979 "type" : "string"
980 },
981 "nodeid" : {
982 "description" : "Node id for this node.",
983 "minimum" : 1,
984 "optional" : 1,
985 "type" : "integer"
986 },
987 "pve_addr" : {
988 "format" : "ip",
989 "type" : "string"
990 },
991 "pve_fp" : {
992 "description" : "Certificate SHA 256 fingerprint.",
993 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
994 "type" : "string"
995 },
996 "quorum_votes" : {
997 "minimum" : 0,
998 "type" : "integer"
999 },
1000 "ring0_addr" : {
c5aa7e14 1001 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
1002 "format" : {
1003 "address" : {
1004 "default_key" : 1,
1005 "description" : "Hostname (or IP) of this corosync link address.",
1006 "format" : "address",
1007 "format_description" : "IP",
1008 "type" : "string"
1009 },
1010 "priority" : {
1011 "default" : 0,
c5aa7e14 1012 "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
1013 "maximum" : 255,
1014 "minimum" : 0,
1015 "optional" : 1,
1016 "type" : "integer"
1017 }
1018 },
27a7acb2
DM
1019 "optional" : 1,
1020 "type" : "string"
1021 }
1022 },
1023 "type" : "object"
1024 },
1025 "type" : "array"
1026 },
1027 "preferred_node" : {
1028 "description" : "The cluster node name.",
1029 "format" : "pve-node",
1030 "type" : "string"
1031 },
1032 "totem" : {
1033 "type" : "object"
1034 }
1035 },
1036 "type" : "object"
1037 }
1038 },
1039 "POST" : {
e9cd3bd4 1040 "allowtoken" : 1,
c5aa7e14 1041 "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
1042 "method" : "POST",
1043 "name" : "join",
1044 "parameters" : {
1045 "additionalProperties" : 0,
1046 "properties" : {
1047 "fingerprint" : {
1048 "description" : "Certificate SHA 256 fingerprint.",
1049 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
1050 "type" : "string"
1051 },
1052 "force" : {
1053 "description" : "Do not throw error if node already exists.",
1054 "optional" : 1,
1055 "type" : "boolean",
1056 "typetext" : "<boolean>"
1057 },
1058 "hostname" : {
1059 "description" : "Hostname (or IP) of an existing cluster member.",
1060 "type" : "string",
1061 "typetext" : "<string>"
1062 },
1e3f8156 1063 "link[n]" : {
c5aa7e14 1064 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
1065 "format" : {
1066 "address" : {
1067 "default_key" : 1,
1068 "description" : "Hostname (or IP) of this corosync link address.",
1069 "format" : "address",
1070 "format_description" : "IP",
1071 "type" : "string"
1072 },
1073 "priority" : {
1074 "default" : 0,
c5aa7e14 1075 "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
1076 "maximum" : 255,
1077 "minimum" : 0,
1078 "optional" : 1,
1079 "type" : "integer"
1080 }
1081 },
1082 "optional" : 1,
1083 "type" : "string",
1084 "typetext" : "[address=]<IP> [,priority=<integer>]"
1085 },
27a7acb2
DM
1086 "nodeid" : {
1087 "description" : "Node id for this node.",
1088 "minimum" : 1,
1089 "optional" : 1,
1090 "type" : "integer",
1091 "typetext" : "<integer> (1 - N)"
1092 },
1093 "password" : {
1094 "description" : "Superuser (root) password of peer node.",
1095 "maxLength" : 128,
1096 "type" : "string",
1097 "typetext" : "<string>"
1098 },
27a7acb2
DM
1099 "votes" : {
1100 "description" : "Number of votes for this node",
1101 "minimum" : 0,
1102 "optional" : 1,
1103 "type" : "integer",
1104 "typetext" : "<integer> (0 - N)"
1105 }
1106 }
1107 },
1108 "protected" : 1,
1109 "returns" : {
1110 "type" : "string"
1111 }
1112 }
1113 },
1114 "leaf" : 1,
1115 "path" : "/cluster/config/join",
1116 "text" : "join"
1117 },
32d876b5
DM
1118 {
1119 "info" : {
1120 "GET" : {
e9cd3bd4 1121 "allowtoken" : 1,
32d876b5
DM
1122 "description" : "Get corosync totem protocol settings.",
1123 "method" : "GET",
1124 "name" : "totem",
1125 "parameters" : {
1126 "additionalProperties" : 0
1127 },
5d9c884c
DM
1128 "permissions" : {
1129 "check" : [
1130 "perm",
1131 "/",
1132 [
1133 "Sys.Audit"
1134 ]
1135 ]
1136 },
32d876b5 1137 "returns" : {
32d876b5
DM
1138 "type" : "object"
1139 }
1140 }
1141 },
1142 "leaf" : 1,
1143 "path" : "/cluster/config/totem",
1144 "text" : "totem"
9226ccbc
TL
1145 },
1146 {
1147 "info" : {
1148 "GET" : {
e9cd3bd4 1149 "allowtoken" : 1,
9226ccbc
TL
1150 "description" : "Get QDevice status",
1151 "method" : "GET",
1152 "name" : "status",
1153 "parameters" : {
1154 "additionalProperties" : 0
1155 },
1156 "permissions" : {
1157 "check" : [
1158 "perm",
1159 "/",
1160 [
1161 "Sys.Audit"
1162 ]
1163 ]
1164 },
1165 "returns" : {
1166 "type" : "object"
1167 }
1168 }
1169 },
1170 "leaf" : 1,
1171 "path" : "/cluster/config/qdevice",
1172 "text" : "qdevice"
32d876b5
DM
1173 }
1174 ],
1175 "info" : {
1176 "GET" : {
e9cd3bd4 1177 "allowtoken" : 1,
32d876b5
DM
1178 "description" : "Directory index.",
1179 "method" : "GET",
1180 "name" : "index",
1181 "parameters" : {
1182 "additionalProperties" : 0
1183 },
5d9c884c
DM
1184 "permissions" : {
1185 "check" : [
1186 "perm",
1187 "/",
1188 [
1189 "Sys.Audit"
1190 ]
1191 ]
1192 },
32d876b5
DM
1193 "returns" : {
1194 "items" : {
1195 "properties" : {},
1196 "type" : "object"
1197 },
1198 "links" : [
1199 {
1200 "href" : "{name}",
1201 "rel" : "child"
1202 }
1203 ],
1204 "type" : "array"
1205 }
27a7acb2
DM
1206 },
1207 "POST" : {
e9cd3bd4 1208 "allowtoken" : 1,
c5aa7e14 1209 "description" : "Generate new cluster configuration. If no links given, default to local IP address as link0.",
27a7acb2
DM
1210 "method" : "POST",
1211 "name" : "create",
1212 "parameters" : {
1213 "additionalProperties" : 0,
1214 "properties" : {
27a7acb2
DM
1215 "clustername" : {
1216 "description" : "The name of the cluster.",
1217 "format" : "pve-node",
1218 "maxLength" : 15,
1219 "type" : "string",
1220 "typetext" : "<string>"
1221 },
1e3f8156 1222 "link[n]" : {
c5aa7e14 1223 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
1224 "format" : {
1225 "address" : {
1226 "default_key" : 1,
1227 "description" : "Hostname (or IP) of this corosync link address.",
1228 "format" : "address",
1229 "format_description" : "IP",
1230 "type" : "string"
1231 },
1232 "priority" : {
1233 "default" : 0,
c5aa7e14 1234 "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
1235 "maximum" : 255,
1236 "minimum" : 0,
1237 "optional" : 1,
1238 "type" : "integer"
1239 }
1240 },
1241 "optional" : 1,
1242 "type" : "string",
1243 "typetext" : "[address=]<IP> [,priority=<integer>]"
1244 },
27a7acb2
DM
1245 "nodeid" : {
1246 "description" : "Node id for this node.",
1247 "minimum" : 1,
1248 "optional" : 1,
1249 "type" : "integer",
1250 "typetext" : "<integer> (1 - N)"
1251 },
27a7acb2
DM
1252 "votes" : {
1253 "description" : "Number of votes for this node.",
1254 "minimum" : 1,
1255 "optional" : 1,
1256 "type" : "integer",
1257 "typetext" : "<integer> (1 - N)"
1258 }
1259 }
1260 },
1261 "protected" : 1,
1262 "returns" : {
1263 "type" : "string"
1264 }
32d876b5
DM
1265 }
1266 },
1267 "leaf" : 0,
1268 "path" : "/cluster/config",
1269 "text" : "config"
1270 },
56122987 1271 {
56122987
DM
1272 "children" : [
1273 {
56122987
DM
1274 "children" : [
1275 {
44660702
DM
1276 "children" : [
1277 {
1278 "info" : {
1279 "DELETE" : {
e9cd3bd4 1280 "allowtoken" : 1,
44660702
DM
1281 "description" : "Delete rule.",
1282 "method" : "DELETE",
1283 "name" : "delete_rule",
1284 "parameters" : {
1285 "additionalProperties" : 0,
1286 "properties" : {
1287 "digest" : {
1288 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1289 "maxLength" : 40,
1290 "optional" : 1,
013dc89f
DM
1291 "type" : "string",
1292 "typetext" : "<string>"
44660702
DM
1293 },
1294 "group" : {
1295 "description" : "Security Group name.",
4bd7df8b 1296 "maxLength" : 18,
44660702
DM
1297 "minLength" : 2,
1298 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1299 "type" : "string"
1300 },
1301 "pos" : {
1302 "description" : "Update rule at position <pos>.",
1303 "minimum" : 0,
1304 "optional" : 1,
4bd7df8b 1305 "type" : "integer",
013dc89f 1306 "typetext" : "<integer> (0 - N)"
44660702
DM
1307 }
1308 }
1309 },
1310 "permissions" : {
1311 "check" : [
1312 "perm",
1313 "/",
1314 [
1315 "Sys.Modify"
1316 ]
1317 ]
1318 },
1319 "protected" : 1,
1320 "proxyto" : null,
1321 "returns" : {
1322 "type" : "null"
7aacca6f
DM
1323 }
1324 },
44660702 1325 "GET" : {
e9cd3bd4 1326 "allowtoken" : 1,
44660702
DM
1327 "description" : "Get single rule data.",
1328 "method" : "GET",
1329 "name" : "get_rule",
1330 "parameters" : {
1331 "additionalProperties" : 0,
1332 "properties" : {
1333 "group" : {
1334 "description" : "Security Group name.",
4bd7df8b 1335 "maxLength" : 18,
44660702
DM
1336 "minLength" : 2,
1337 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1338 "type" : "string"
1339 },
1340 "pos" : {
1341 "description" : "Update rule at position <pos>.",
1342 "minimum" : 0,
1343 "optional" : 1,
4bd7df8b 1344 "type" : "integer",
013dc89f 1345 "typetext" : "<integer> (0 - N)"
44660702 1346 }
7aacca6f 1347 }
56122987 1348 },
44660702
DM
1349 "permissions" : {
1350 "check" : [
1351 "perm",
1352 "/",
1353 [
1354 "Sys.Audit"
1355 ]
1356 ]
1357 },
1358 "proxyto" : null,
1359 "returns" : {
1360 "properties" : {
e2d681b3
TL
1361 "action" : {
1362 "type" : "string"
1363 },
1364 "comment" : {
1365 "optional" : 1,
1366 "type" : "string"
1367 },
1368 "dest" : {
1369 "optional" : 1,
1370 "type" : "string"
1371 },
1372 "dport" : {
1373 "optional" : 1,
1374 "type" : "string"
1375 },
1376 "enable" : {
1377 "optional" : 1,
1378 "type" : "integer"
1379 },
4772952b
TL
1380 "icmp-type" : {
1381 "optional" : 1,
1382 "type" : "string"
1383 },
e2d681b3
TL
1384 "iface" : {
1385 "optional" : 1,
1386 "type" : "string"
1387 },
1388 "ipversion" : {
1389 "optional" : 1,
1390 "type" : "integer"
1391 },
95895385
TL
1392 "log" : {
1393 "description" : "Log level for firewall rule",
1394 "enum" : [
1395 "emerg",
1396 "alert",
1397 "crit",
1398 "err",
1399 "warning",
1400 "notice",
1401 "info",
1402 "debug",
1403 "nolog"
1404 ],
1405 "optional" : 1,
1406 "type" : "string"
1407 },
e2d681b3
TL
1408 "macro" : {
1409 "optional" : 1,
5f26e15b 1410 "type" : "string"
e2d681b3 1411 },
44660702
DM
1412 "pos" : {
1413 "type" : "integer"
e2d681b3
TL
1414 },
1415 "proto" : {
1416 "optional" : 1,
1417 "type" : "string"
1418 },
1419 "source" : {
1420 "optional" : 1,
1421 "type" : "string"
1422 },
1423 "sport" : {
1424 "optional" : 1,
1425 "type" : "string"
1426 },
1427 "type" : {
1428 "type" : "string"
44660702
DM
1429 }
1430 },
1431 "type" : "object"
56122987 1432 }
44660702 1433 },
7aacca6f 1434 "PUT" : {
e9cd3bd4 1435 "allowtoken" : 1,
44660702
DM
1436 "description" : "Modify rule data.",
1437 "method" : "PUT",
1438 "name" : "update_rule",
7aacca6f
DM
1439 "parameters" : {
1440 "additionalProperties" : 0,
1441 "properties" : {
44660702
DM
1442 "action" : {
1443 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
7aacca6f 1444 "maxLength" : 20,
44660702 1445 "minLength" : 2,
7aacca6f 1446 "optional" : 1,
44660702 1447 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
1448 "type" : "string"
1449 },
44660702 1450 "comment" : {
e94f0d56 1451 "description" : "Descriptive comment.",
7aacca6f 1452 "optional" : 1,
013dc89f
DM
1453 "type" : "string",
1454 "typetext" : "<string>"
7aacca6f 1455 },
44660702
DM
1456 "delete" : {
1457 "description" : "A list of settings you want to delete.",
1458 "format" : "pve-configid-list",
7aacca6f 1459 "optional" : 1,
013dc89f
DM
1460 "type" : "string",
1461 "typetext" : "<string>"
7aacca6f 1462 },
44660702
DM
1463 "dest" : {
1464 "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.",
1465 "format" : "pve-fw-addr-spec",
0695fdaf 1466 "maxLength" : 512,
7aacca6f 1467 "optional" : 1,
013dc89f
DM
1468 "type" : "string",
1469 "typetext" : "<string>"
7aacca6f
DM
1470 },
1471 "digest" : {
1472 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 1473 "maxLength" : 40,
7aacca6f 1474 "optional" : 1,
013dc89f
DM
1475 "type" : "string",
1476 "typetext" : "<string>"
7aacca6f 1477 },
44660702
DM
1478 "dport" : {
1479 "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.",
1480 "format" : "pve-fw-dport-spec",
7aacca6f 1481 "optional" : 1,
013dc89f
DM
1482 "type" : "string",
1483 "typetext" : "<string>"
7aacca6f 1484 },
44660702 1485 "enable" : {
e94f0d56 1486 "description" : "Flag to enable/disable a rule.",
44660702 1487 "minimum" : 0,
7aacca6f 1488 "optional" : 1,
4bd7df8b 1489 "type" : "integer",
013dc89f 1490 "typetext" : "<integer> (0 - N)"
7aacca6f 1491 },
44660702
DM
1492 "group" : {
1493 "description" : "Security Group name.",
4bd7df8b 1494 "maxLength" : 18,
44660702
DM
1495 "minLength" : 2,
1496 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1497 "type" : "string"
1498 },
4772952b
TL
1499 "icmp-type" : {
1500 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
1501 "format" : "pve-fw-icmp-type-spec",
1502 "optional" : 1,
1503 "type" : "string",
1504 "typetext" : "<string>"
1505 },
44660702
DM
1506 "iface" : {
1507 "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.",
1508 "format" : "pve-iface",
1509 "maxLength" : 20,
1510 "minLength" : 2,
7aacca6f 1511 "optional" : 1,
013dc89f
DM
1512 "type" : "string",
1513 "typetext" : "<string>"
7aacca6f 1514 },
95895385
TL
1515 "log" : {
1516 "description" : "Log level for firewall rule.",
1517 "enum" : [
1518 "emerg",
1519 "alert",
1520 "crit",
1521 "err",
1522 "warning",
1523 "notice",
1524 "info",
1525 "debug",
1526 "nolog"
1527 ],
1528 "optional" : 1,
1529 "type" : "string"
1530 },
44660702 1531 "macro" : {
e94f0d56 1532 "description" : "Use predefined standard macro.",
44660702
DM
1533 "maxLength" : 128,
1534 "optional" : 1,
013dc89f
DM
1535 "type" : "string",
1536 "typetext" : "<string>"
7aacca6f
DM
1537 },
1538 "moveto" : {
1539 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
44660702 1540 "minimum" : 0,
7aacca6f 1541 "optional" : 1,
4bd7df8b 1542 "type" : "integer",
013dc89f 1543 "typetext" : "<integer> (0 - N)"
7aacca6f 1544 },
44660702
DM
1545 "pos" : {
1546 "description" : "Update rule at position <pos>.",
1547 "minimum" : 0,
1548 "optional" : 1,
4bd7df8b 1549 "type" : "integer",
013dc89f 1550 "typetext" : "<integer> (0 - N)"
7aacca6f 1551 },
44660702
DM
1552 "proto" : {
1553 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
1554 "format" : "pve-fw-protocol-spec",
7aacca6f 1555 "optional" : 1,
013dc89f
DM
1556 "type" : "string",
1557 "typetext" : "<string>"
44660702
DM
1558 },
1559 "source" : {
1560 "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.",
1561 "format" : "pve-fw-addr-spec",
0695fdaf 1562 "maxLength" : 512,
44660702 1563 "optional" : 1,
013dc89f
DM
1564 "type" : "string",
1565 "typetext" : "<string>"
44660702
DM
1566 },
1567 "sport" : {
1568 "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.",
1569 "format" : "pve-fw-sport-spec",
1570 "optional" : 1,
013dc89f
DM
1571 "type" : "string",
1572 "typetext" : "<string>"
7aacca6f
DM
1573 },
1574 "type" : {
e94f0d56 1575 "description" : "Rule type.",
7aacca6f
DM
1576 "enum" : [
1577 "in",
1578 "out",
1579 "group"
1580 ],
1581 "optional" : 1,
1582 "type" : "string"
1583 }
1584 }
1585 },
7aacca6f
DM
1586 "permissions" : {
1587 "check" : [
1588 "perm",
1589 "/",
1590 [
1591 "Sys.Modify"
1592 ]
1593 ]
1594 },
44660702 1595 "protected" : 1,
7aacca6f
DM
1596 "proxyto" : null,
1597 "returns" : {
1598 "type" : "null"
1599 }
7aacca6f
DM
1600 }
1601 },
44660702 1602 "leaf" : 1,
7aacca6f 1603 "path" : "/cluster/firewall/groups/{group}/{pos}",
44660702 1604 "text" : "{pos}"
7aacca6f
DM
1605 }
1606 ],
44660702
DM
1607 "info" : {
1608 "DELETE" : {
e9cd3bd4 1609 "allowtoken" : 1,
44660702
DM
1610 "description" : "Delete security group.",
1611 "method" : "DELETE",
1612 "name" : "delete_security_group",
1613 "parameters" : {
1614 "additionalProperties" : 0,
1615 "properties" : {
1616 "group" : {
1617 "description" : "Security Group name.",
4bd7df8b 1618 "maxLength" : 18,
44660702
DM
1619 "minLength" : 2,
1620 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1621 "type" : "string"
1622 }
56122987 1623 }
7aacca6f 1624 },
44660702
DM
1625 "permissions" : {
1626 "check" : [
1627 "perm",
1628 "/",
1629 [
1630 "Sys.Modify"
1631 ]
7aacca6f 1632 ]
56122987 1633 },
44660702
DM
1634 "protected" : 1,
1635 "returns" : {
1636 "type" : "null"
56122987 1637 }
7aacca6f 1638 },
7aacca6f 1639 "GET" : {
e9cd3bd4 1640 "allowtoken" : 1,
44660702 1641 "description" : "List rules.",
7aacca6f 1642 "method" : "GET",
44660702
DM
1643 "name" : "get_rules",
1644 "parameters" : {
1645 "additionalProperties" : 0,
7aacca6f 1646 "properties" : {
44660702
DM
1647 "group" : {
1648 "description" : "Security Group name.",
4bd7df8b 1649 "maxLength" : 18,
44660702
DM
1650 "minLength" : 2,
1651 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1652 "type" : "string"
7aacca6f 1653 }
44660702 1654 }
7aacca6f
DM
1655 },
1656 "permissions" : {
1657 "check" : [
1658 "perm",
1659 "/",
1660 [
1661 "Sys.Audit"
1662 ]
1663 ]
1664 },
44660702
DM
1665 "proxyto" : null,
1666 "returns" : {
1667 "items" : {
1668 "properties" : {
1669 "pos" : {
1670 "type" : "integer"
1671 }
1672 },
1673 "type" : "object"
1674 },
1675 "links" : [
1676 {
1677 "href" : "{pos}",
1678 "rel" : "child"
1679 }
1680 ],
1681 "type" : "array"
1682 }
1683 },
1684 "POST" : {
e9cd3bd4 1685 "allowtoken" : 1,
44660702
DM
1686 "description" : "Create new rule.",
1687 "method" : "POST",
1688 "name" : "create_rule",
7aacca6f
DM
1689 "parameters" : {
1690 "additionalProperties" : 0,
1691 "properties" : {
44660702
DM
1692 "action" : {
1693 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
1694 "maxLength" : 20,
56122987 1695 "minLength" : 2,
44660702
DM
1696 "optional" : 0,
1697 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 1698 "type" : "string"
56122987 1699 },
44660702 1700 "comment" : {
e94f0d56 1701 "description" : "Descriptive comment.",
56122987 1702 "optional" : 1,
013dc89f
DM
1703 "type" : "string",
1704 "typetext" : "<string>"
56122987 1705 },
44660702
DM
1706 "dest" : {
1707 "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 1708 "format" : "pve-fw-addr-spec",
0695fdaf 1709 "maxLength" : 512,
56122987 1710 "optional" : 1,
013dc89f
DM
1711 "type" : "string",
1712 "typetext" : "<string>"
56122987 1713 },
44660702
DM
1714 "digest" : {
1715 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1716 "maxLength" : 40,
7aacca6f 1717 "optional" : 1,
013dc89f
DM
1718 "type" : "string",
1719 "typetext" : "<string>"
56122987 1720 },
44660702
DM
1721 "dport" : {
1722 "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.",
1723 "format" : "pve-fw-dport-spec",
56122987 1724 "optional" : 1,
013dc89f
DM
1725 "type" : "string",
1726 "typetext" : "<string>"
56122987 1727 },
7aacca6f 1728 "enable" : {
e94f0d56 1729 "description" : "Flag to enable/disable a rule.",
44660702 1730 "minimum" : 0,
7aacca6f 1731 "optional" : 1,
4bd7df8b 1732 "type" : "integer",
013dc89f 1733 "typetext" : "<integer> (0 - N)"
56122987 1734 },
44660702
DM
1735 "group" : {
1736 "description" : "Security Group name.",
4bd7df8b 1737 "maxLength" : 18,
44660702 1738 "minLength" : 2,
7aacca6f 1739 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
1740 "type" : "string"
1741 },
4772952b
TL
1742 "icmp-type" : {
1743 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
1744 "format" : "pve-fw-icmp-type-spec",
1745 "optional" : 1,
1746 "type" : "string",
1747 "typetext" : "<string>"
1748 },
44660702
DM
1749 "iface" : {
1750 "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.",
1751 "format" : "pve-iface",
1752 "maxLength" : 20,
7aacca6f 1753 "minLength" : 2,
44660702 1754 "optional" : 1,
013dc89f
DM
1755 "type" : "string",
1756 "typetext" : "<string>"
56122987 1757 },
95895385
TL
1758 "log" : {
1759 "description" : "Log level for firewall rule.",
1760 "enum" : [
1761 "emerg",
1762 "alert",
1763 "crit",
1764 "err",
1765 "warning",
1766 "notice",
1767 "info",
1768 "debug",
1769 "nolog"
1770 ],
1771 "optional" : 1,
1772 "type" : "string"
1773 },
7aacca6f 1774 "macro" : {
e94f0d56 1775 "description" : "Use predefined standard macro.",
44660702 1776 "maxLength" : 128,
7aacca6f 1777 "optional" : 1,
013dc89f
DM
1778 "type" : "string",
1779 "typetext" : "<string>"
7aacca6f
DM
1780 },
1781 "pos" : {
1782 "description" : "Update rule at position <pos>.",
44660702 1783 "minimum" : 0,
56122987 1784 "optional" : 1,
4bd7df8b 1785 "type" : "integer",
013dc89f 1786 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
1787 },
1788 "proto" : {
1789 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
44660702 1790 "format" : "pve-fw-protocol-spec",
7aacca6f 1791 "optional" : 1,
013dc89f
DM
1792 "type" : "string",
1793 "typetext" : "<string>"
44660702
DM
1794 },
1795 "source" : {
1796 "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.",
1797 "format" : "pve-fw-addr-spec",
0695fdaf 1798 "maxLength" : 512,
44660702 1799 "optional" : 1,
013dc89f
DM
1800 "type" : "string",
1801 "typetext" : "<string>"
44660702
DM
1802 },
1803 "sport" : {
1804 "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.",
1805 "format" : "pve-fw-sport-spec",
1806 "optional" : 1,
013dc89f
DM
1807 "type" : "string",
1808 "typetext" : "<string>"
44660702
DM
1809 },
1810 "type" : {
e94f0d56 1811 "description" : "Rule type.",
44660702
DM
1812 "enum" : [
1813 "in",
1814 "out",
1815 "group"
1816 ],
1817 "optional" : 0,
1818 "type" : "string"
56122987 1819 }
44660702 1820 }
56122987 1821 },
56122987
DM
1822 "permissions" : {
1823 "check" : [
1824 "perm",
1825 "/",
1826 [
1827 "Sys.Modify"
1828 ]
1829 ]
1830 },
44660702
DM
1831 "protected" : 1,
1832 "proxyto" : null,
56122987
DM
1833 "returns" : {
1834 "type" : "null"
7aacca6f 1835 }
44660702
DM
1836 }
1837 },
1838 "leaf" : 0,
1839 "path" : "/cluster/firewall/groups/{group}",
1840 "text" : "{group}"
1841 }
1842 ],
1843 "info" : {
1844 "GET" : {
e9cd3bd4 1845 "allowtoken" : 1,
44660702
DM
1846 "description" : "List security groups.",
1847 "method" : "GET",
1848 "name" : "list_security_groups",
1849 "parameters" : {
1850 "additionalProperties" : 0
1851 },
1852 "permissions" : {
1853 "user" : "all"
1854 },
1855 "returns" : {
1856 "items" : {
1857 "properties" : {
1858 "comment" : {
1859 "optional" : 1,
1860 "type" : "string"
1861 },
1862 "digest" : {
1863 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1864 "maxLength" : 40,
1865 "optional" : 0,
1866 "type" : "string"
1867 },
1868 "group" : {
1869 "description" : "Security Group name.",
4bd7df8b 1870 "maxLength" : 18,
44660702
DM
1871 "minLength" : 2,
1872 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1873 "type" : "string"
1874 }
1875 },
1876 "type" : "object"
56122987 1877 },
44660702
DM
1878 "links" : [
1879 {
1880 "href" : "{group}",
1881 "rel" : "child"
1882 }
1883 ],
1884 "type" : "array"
1885 }
1886 },
1887 "POST" : {
e9cd3bd4 1888 "allowtoken" : 1,
44660702
DM
1889 "description" : "Create new security group.",
1890 "method" : "POST",
1891 "name" : "create_security_group",
1892 "parameters" : {
1893 "additionalProperties" : 0,
1894 "properties" : {
1895 "comment" : {
1896 "optional" : 1,
013dc89f
DM
1897 "type" : "string",
1898 "typetext" : "<string>"
44660702
DM
1899 },
1900 "digest" : {
1901 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1902 "maxLength" : 40,
1903 "optional" : 1,
013dc89f
DM
1904 "type" : "string",
1905 "typetext" : "<string>"
44660702
DM
1906 },
1907 "group" : {
1908 "description" : "Security Group name.",
4bd7df8b 1909 "maxLength" : 18,
44660702
DM
1910 "minLength" : 2,
1911 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1912 "type" : "string"
1913 },
1914 "rename" : {
1915 "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 1916 "maxLength" : 18,
44660702
DM
1917 "minLength" : 2,
1918 "optional" : 1,
1919 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1920 "type" : "string"
1921 }
1922 }
1923 },
1924 "permissions" : {
1925 "check" : [
1926 "perm",
1927 "/",
1928 [
1929 "Sys.Modify"
1930 ]
1931 ]
1932 },
1933 "protected" : 1,
1934 "returns" : {
1935 "type" : "null"
1936 }
1937 }
1938 },
1939 "leaf" : 0,
1940 "path" : "/cluster/firewall/groups",
1941 "text" : "groups"
1942 },
1943 {
1944 "children" : [
1945 {
1946 "info" : {
7aacca6f 1947 "DELETE" : {
e9cd3bd4 1948 "allowtoken" : 1,
44660702
DM
1949 "description" : "Delete rule.",
1950 "method" : "DELETE",
1951 "name" : "delete_rule",
1952 "parameters" : {
1953 "additionalProperties" : 0,
1954 "properties" : {
1955 "digest" : {
1956 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1957 "maxLength" : 40,
1958 "optional" : 1,
013dc89f
DM
1959 "type" : "string",
1960 "typetext" : "<string>"
44660702
DM
1961 },
1962 "pos" : {
1963 "description" : "Update rule at position <pos>.",
1964 "minimum" : 0,
1965 "optional" : 1,
4bd7df8b 1966 "type" : "integer",
013dc89f 1967 "typetext" : "<integer> (0 - N)"
44660702
DM
1968 }
1969 }
1970 },
56122987
DM
1971 "permissions" : {
1972 "check" : [
1973 "perm",
1974 "/",
1975 [
7aacca6f 1976 "Sys.Modify"
56122987
DM
1977 ]
1978 ]
1979 },
44660702 1980 "protected" : 1,
56122987
DM
1981 "proxyto" : null,
1982 "returns" : {
7aacca6f 1983 "type" : "null"
44660702
DM
1984 }
1985 },
1986 "GET" : {
e9cd3bd4 1987 "allowtoken" : 1,
44660702
DM
1988 "description" : "Get single rule data.",
1989 "method" : "GET",
1990 "name" : "get_rule",
56122987
DM
1991 "parameters" : {
1992 "additionalProperties" : 0,
1993 "properties" : {
1994 "pos" : {
7aacca6f 1995 "description" : "Update rule at position <pos>.",
44660702 1996 "minimum" : 0,
56122987 1997 "optional" : 1,
4bd7df8b 1998 "type" : "integer",
013dc89f 1999 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
2000 }
2001 }
2002 },
7aacca6f
DM
2003 "permissions" : {
2004 "check" : [
2005 "perm",
2006 "/",
2007 [
2008 "Sys.Audit"
2009 ]
2010 ]
56122987 2011 },
44660702
DM
2012 "proxyto" : null,
2013 "returns" : {
7aacca6f 2014 "properties" : {
e2d681b3
TL
2015 "action" : {
2016 "type" : "string"
2017 },
2018 "comment" : {
2019 "optional" : 1,
2020 "type" : "string"
2021 },
2022 "dest" : {
2023 "optional" : 1,
2024 "type" : "string"
2025 },
2026 "dport" : {
2027 "optional" : 1,
2028 "type" : "string"
2029 },
2030 "enable" : {
2031 "optional" : 1,
2032 "type" : "integer"
2033 },
4772952b
TL
2034 "icmp-type" : {
2035 "optional" : 1,
2036 "type" : "string"
2037 },
e2d681b3
TL
2038 "iface" : {
2039 "optional" : 1,
2040 "type" : "string"
2041 },
2042 "ipversion" : {
2043 "optional" : 1,
2044 "type" : "integer"
2045 },
95895385
TL
2046 "log" : {
2047 "description" : "Log level for firewall rule",
2048 "enum" : [
2049 "emerg",
2050 "alert",
2051 "crit",
2052 "err",
2053 "warning",
2054 "notice",
2055 "info",
2056 "debug",
2057 "nolog"
2058 ],
2059 "optional" : 1,
2060 "type" : "string"
2061 },
e2d681b3
TL
2062 "macro" : {
2063 "optional" : 1,
5f26e15b 2064 "type" : "string"
e2d681b3 2065 },
44660702
DM
2066 "pos" : {
2067 "type" : "integer"
e2d681b3
TL
2068 },
2069 "proto" : {
2070 "optional" : 1,
2071 "type" : "string"
2072 },
2073 "source" : {
2074 "optional" : 1,
2075 "type" : "string"
2076 },
2077 "sport" : {
2078 "optional" : 1,
2079 "type" : "string"
2080 },
2081 "type" : {
2082 "type" : "string"
7aacca6f 2083 }
44660702
DM
2084 },
2085 "type" : "object"
2086 }
56122987 2087 },
44660702 2088 "PUT" : {
e9cd3bd4 2089 "allowtoken" : 1,
44660702
DM
2090 "description" : "Modify rule data.",
2091 "method" : "PUT",
2092 "name" : "update_rule",
7aacca6f
DM
2093 "parameters" : {
2094 "additionalProperties" : 0,
2095 "properties" : {
44660702
DM
2096 "action" : {
2097 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
2098 "maxLength" : 20,
2099 "minLength" : 2,
2100 "optional" : 1,
2101 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2102 "type" : "string"
7aacca6f 2103 },
44660702 2104 "comment" : {
e94f0d56 2105 "description" : "Descriptive comment.",
44660702 2106 "optional" : 1,
013dc89f
DM
2107 "type" : "string",
2108 "typetext" : "<string>"
7aacca6f 2109 },
44660702
DM
2110 "delete" : {
2111 "description" : "A list of settings you want to delete.",
2112 "format" : "pve-configid-list",
2113 "optional" : 1,
013dc89f
DM
2114 "type" : "string",
2115 "typetext" : "<string>"
44660702
DM
2116 },
2117 "dest" : {
2118 "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.",
2119 "format" : "pve-fw-addr-spec",
0695fdaf 2120 "maxLength" : 512,
44660702 2121 "optional" : 1,
013dc89f
DM
2122 "type" : "string",
2123 "typetext" : "<string>"
44660702
DM
2124 },
2125 "digest" : {
2126 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2127 "maxLength" : 40,
2128 "optional" : 1,
013dc89f
DM
2129 "type" : "string",
2130 "typetext" : "<string>"
44660702
DM
2131 },
2132 "dport" : {
2133 "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.",
2134 "format" : "pve-fw-dport-spec",
2135 "optional" : 1,
013dc89f
DM
2136 "type" : "string",
2137 "typetext" : "<string>"
44660702
DM
2138 },
2139 "enable" : {
e94f0d56 2140 "description" : "Flag to enable/disable a rule.",
44660702
DM
2141 "minimum" : 0,
2142 "optional" : 1,
4bd7df8b 2143 "type" : "integer",
013dc89f 2144 "typetext" : "<integer> (0 - N)"
44660702 2145 },
4772952b
TL
2146 "icmp-type" : {
2147 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
2148 "format" : "pve-fw-icmp-type-spec",
2149 "optional" : 1,
2150 "type" : "string",
2151 "typetext" : "<string>"
2152 },
44660702
DM
2153 "iface" : {
2154 "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.",
2155 "format" : "pve-iface",
2156 "maxLength" : 20,
7aacca6f 2157 "minLength" : 2,
44660702 2158 "optional" : 1,
013dc89f
DM
2159 "type" : "string",
2160 "typetext" : "<string>"
7aacca6f 2161 },
95895385
TL
2162 "log" : {
2163 "description" : "Log level for firewall rule.",
2164 "enum" : [
2165 "emerg",
2166 "alert",
2167 "crit",
2168 "err",
2169 "warning",
2170 "notice",
2171 "info",
2172 "debug",
2173 "nolog"
2174 ],
2175 "optional" : 1,
2176 "type" : "string"
2177 },
44660702 2178 "macro" : {
e94f0d56 2179 "description" : "Use predefined standard macro.",
44660702
DM
2180 "maxLength" : 128,
2181 "optional" : 1,
013dc89f
DM
2182 "type" : "string",
2183 "typetext" : "<string>"
44660702
DM
2184 },
2185 "moveto" : {
2186 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
2187 "minimum" : 0,
2188 "optional" : 1,
4bd7df8b 2189 "type" : "integer",
013dc89f 2190 "typetext" : "<integer> (0 - N)"
44660702
DM
2191 },
2192 "pos" : {
2193 "description" : "Update rule at position <pos>.",
2194 "minimum" : 0,
2195 "optional" : 1,
4bd7df8b 2196 "type" : "integer",
013dc89f 2197 "typetext" : "<integer> (0 - N)"
44660702
DM
2198 },
2199 "proto" : {
2200 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
2201 "format" : "pve-fw-protocol-spec",
2202 "optional" : 1,
013dc89f
DM
2203 "type" : "string",
2204 "typetext" : "<string>"
44660702
DM
2205 },
2206 "source" : {
2207 "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.",
2208 "format" : "pve-fw-addr-spec",
0695fdaf 2209 "maxLength" : 512,
44660702 2210 "optional" : 1,
013dc89f
DM
2211 "type" : "string",
2212 "typetext" : "<string>"
44660702
DM
2213 },
2214 "sport" : {
2215 "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.",
2216 "format" : "pve-fw-sport-spec",
2217 "optional" : 1,
013dc89f
DM
2218 "type" : "string",
2219 "typetext" : "<string>"
44660702
DM
2220 },
2221 "type" : {
e94f0d56 2222 "description" : "Rule type.",
44660702
DM
2223 "enum" : [
2224 "in",
2225 "out",
2226 "group"
2227 ],
2228 "optional" : 1,
2229 "type" : "string"
7aacca6f 2230 }
56122987
DM
2231 }
2232 },
7aacca6f
DM
2233 "permissions" : {
2234 "check" : [
2235 "perm",
2236 "/",
2237 [
2238 "Sys.Modify"
2239 ]
2240 ]
2241 },
44660702
DM
2242 "protected" : 1,
2243 "proxyto" : null,
2244 "returns" : {
2245 "type" : "null"
2246 }
7aacca6f 2247 }
56122987 2248 },
44660702
DM
2249 "leaf" : 1,
2250 "path" : "/cluster/firewall/rules/{pos}",
2251 "text" : "{pos}"
7aacca6f
DM
2252 }
2253 ],
7aacca6f 2254 "info" : {
44660702 2255 "GET" : {
e9cd3bd4 2256 "allowtoken" : 1,
44660702
DM
2257 "description" : "List rules.",
2258 "method" : "GET",
2259 "name" : "get_rules",
7aacca6f 2260 "parameters" : {
44660702 2261 "additionalProperties" : 0
7aacca6f
DM
2262 },
2263 "permissions" : {
2264 "check" : [
2265 "perm",
2266 "/",
2267 [
44660702 2268 "Sys.Audit"
7aacca6f
DM
2269 ]
2270 ]
2271 },
44660702 2272 "proxyto" : null,
7aacca6f 2273 "returns" : {
7aacca6f
DM
2274 "items" : {
2275 "properties" : {
44660702
DM
2276 "pos" : {
2277 "type" : "integer"
7aacca6f
DM
2278 }
2279 },
2280 "type" : "object"
56122987 2281 },
7aacca6f
DM
2282 "links" : [
2283 {
44660702 2284 "href" : "{pos}",
7aacca6f
DM
2285 "rel" : "child"
2286 }
44660702
DM
2287 ],
2288 "type" : "array"
7aacca6f 2289 }
44660702 2290 },
7aacca6f 2291 "POST" : {
e9cd3bd4 2292 "allowtoken" : 1,
44660702 2293 "description" : "Create new rule.",
7aacca6f 2294 "method" : "POST",
44660702 2295 "name" : "create_rule",
7aacca6f
DM
2296 "parameters" : {
2297 "additionalProperties" : 0,
2298 "properties" : {
44660702
DM
2299 "action" : {
2300 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
2301 "maxLength" : 20,
7aacca6f 2302 "minLength" : 2,
44660702
DM
2303 "optional" : 0,
2304 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2305 "type" : "string"
7aacca6f
DM
2306 },
2307 "comment" : {
e94f0d56 2308 "description" : "Descriptive comment.",
7aacca6f 2309 "optional" : 1,
013dc89f
DM
2310 "type" : "string",
2311 "typetext" : "<string>"
44660702
DM
2312 },
2313 "dest" : {
2314 "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.",
2315 "format" : "pve-fw-addr-spec",
0695fdaf 2316 "maxLength" : 512,
44660702 2317 "optional" : 1,
013dc89f
DM
2318 "type" : "string",
2319 "typetext" : "<string>"
44660702
DM
2320 },
2321 "digest" : {
2322 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2323 "maxLength" : 40,
2324 "optional" : 1,
013dc89f
DM
2325 "type" : "string",
2326 "typetext" : "<string>"
44660702
DM
2327 },
2328 "dport" : {
2329 "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.",
2330 "format" : "pve-fw-dport-spec",
2331 "optional" : 1,
013dc89f
DM
2332 "type" : "string",
2333 "typetext" : "<string>"
44660702
DM
2334 },
2335 "enable" : {
e94f0d56 2336 "description" : "Flag to enable/disable a rule.",
44660702
DM
2337 "minimum" : 0,
2338 "optional" : 1,
4bd7df8b 2339 "type" : "integer",
013dc89f 2340 "typetext" : "<integer> (0 - N)"
44660702 2341 },
4772952b
TL
2342 "icmp-type" : {
2343 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
2344 "format" : "pve-fw-icmp-type-spec",
2345 "optional" : 1,
2346 "type" : "string",
2347 "typetext" : "<string>"
2348 },
44660702
DM
2349 "iface" : {
2350 "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.",
2351 "format" : "pve-iface",
2352 "maxLength" : 20,
2353 "minLength" : 2,
2354 "optional" : 1,
013dc89f
DM
2355 "type" : "string",
2356 "typetext" : "<string>"
44660702 2357 },
95895385
TL
2358 "log" : {
2359 "description" : "Log level for firewall rule.",
2360 "enum" : [
2361 "emerg",
2362 "alert",
2363 "crit",
2364 "err",
2365 "warning",
2366 "notice",
2367 "info",
2368 "debug",
2369 "nolog"
2370 ],
2371 "optional" : 1,
2372 "type" : "string"
2373 },
44660702 2374 "macro" : {
e94f0d56 2375 "description" : "Use predefined standard macro.",
44660702
DM
2376 "maxLength" : 128,
2377 "optional" : 1,
013dc89f
DM
2378 "type" : "string",
2379 "typetext" : "<string>"
44660702
DM
2380 },
2381 "pos" : {
2382 "description" : "Update rule at position <pos>.",
2383 "minimum" : 0,
2384 "optional" : 1,
4bd7df8b 2385 "type" : "integer",
013dc89f 2386 "typetext" : "<integer> (0 - N)"
44660702
DM
2387 },
2388 "proto" : {
2389 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
2390 "format" : "pve-fw-protocol-spec",
2391 "optional" : 1,
013dc89f
DM
2392 "type" : "string",
2393 "typetext" : "<string>"
44660702
DM
2394 },
2395 "source" : {
2396 "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.",
2397 "format" : "pve-fw-addr-spec",
0695fdaf 2398 "maxLength" : 512,
44660702 2399 "optional" : 1,
013dc89f
DM
2400 "type" : "string",
2401 "typetext" : "<string>"
44660702
DM
2402 },
2403 "sport" : {
2404 "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.",
2405 "format" : "pve-fw-sport-spec",
2406 "optional" : 1,
013dc89f
DM
2407 "type" : "string",
2408 "typetext" : "<string>"
44660702
DM
2409 },
2410 "type" : {
e94f0d56 2411 "description" : "Rule type.",
44660702
DM
2412 "enum" : [
2413 "in",
2414 "out",
2415 "group"
2416 ],
2417 "optional" : 0,
2418 "type" : "string"
7aacca6f
DM
2419 }
2420 }
2421 },
2422 "permissions" : {
2423 "check" : [
2424 "perm",
2425 "/",
2426 [
2427 "Sys.Modify"
2428 ]
2429 ]
2430 },
44660702
DM
2431 "protected" : 1,
2432 "proxyto" : null,
7aacca6f 2433 "returns" : {
44660702
DM
2434 "type" : "null"
2435 }
2436 }
2437 },
2438 "leaf" : 0,
2439 "path" : "/cluster/firewall/rules",
2440 "text" : "rules"
2441 },
2442 {
2443 "children" : [
2444 {
2445 "children" : [
2446 {
2447 "info" : {
2448 "DELETE" : {
e9cd3bd4 2449 "allowtoken" : 1,
44660702
DM
2450 "description" : "Remove IP or Network from IPSet.",
2451 "method" : "DELETE",
2452 "name" : "remove_ip",
2453 "parameters" : {
2454 "additionalProperties" : 0,
2455 "properties" : {
2456 "cidr" : {
2457 "description" : "Network/IP specification in CIDR format.",
2458 "format" : "IPorCIDRorAlias",
013dc89f
DM
2459 "type" : "string",
2460 "typetext" : "<string>"
44660702
DM
2461 },
2462 "digest" : {
2463 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2464 "maxLength" : 40,
2465 "optional" : 1,
013dc89f
DM
2466 "type" : "string",
2467 "typetext" : "<string>"
44660702
DM
2468 },
2469 "name" : {
2470 "description" : "IP set name.",
2471 "maxLength" : 64,
2472 "minLength" : 2,
2473 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2474 "type" : "string"
2475 }
2476 }
2477 },
2478 "permissions" : {
2479 "check" : [
2480 "perm",
2481 "/",
2482 [
2483 "Sys.Modify"
2484 ]
2485 ]
2486 },
2487 "protected" : 1,
2488 "returns" : {
2489 "type" : "null"
2490 }
7aacca6f 2491 },
44660702 2492 "GET" : {
e9cd3bd4 2493 "allowtoken" : 1,
44660702
DM
2494 "description" : "Read IP or Network settings from IPSet.",
2495 "method" : "GET",
2496 "name" : "read_ip",
2497 "parameters" : {
2498 "additionalProperties" : 0,
2499 "properties" : {
2500 "cidr" : {
2501 "description" : "Network/IP specification in CIDR format.",
2502 "format" : "IPorCIDRorAlias",
013dc89f
DM
2503 "type" : "string",
2504 "typetext" : "<string>"
44660702
DM
2505 },
2506 "name" : {
2507 "description" : "IP set name.",
2508 "maxLength" : 64,
2509 "minLength" : 2,
2510 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2511 "type" : "string"
2512 }
2513 }
2514 },
2515 "permissions" : {
2516 "check" : [
2517 "perm",
2518 "/",
2519 [
2520 "Sys.Audit"
2521 ]
2522 ]
2523 },
2524 "protected" : 1,
2525 "returns" : {
2526 "type" : "object"
2527 }
7aacca6f 2528 },
44660702 2529 "PUT" : {
e9cd3bd4 2530 "allowtoken" : 1,
44660702
DM
2531 "description" : "Update IP or Network settings",
2532 "method" : "PUT",
2533 "name" : "update_ip",
2534 "parameters" : {
2535 "additionalProperties" : 0,
2536 "properties" : {
2537 "cidr" : {
2538 "description" : "Network/IP specification in CIDR format.",
2539 "format" : "IPorCIDRorAlias",
013dc89f
DM
2540 "type" : "string",
2541 "typetext" : "<string>"
44660702
DM
2542 },
2543 "comment" : {
2544 "optional" : 1,
013dc89f
DM
2545 "type" : "string",
2546 "typetext" : "<string>"
44660702
DM
2547 },
2548 "digest" : {
2549 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2550 "maxLength" : 40,
2551 "optional" : 1,
013dc89f
DM
2552 "type" : "string",
2553 "typetext" : "<string>"
44660702
DM
2554 },
2555 "name" : {
2556 "description" : "IP set name.",
2557 "maxLength" : 64,
2558 "minLength" : 2,
2559 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2560 "type" : "string"
2561 },
2562 "nomatch" : {
2563 "optional" : 1,
013dc89f
DM
2564 "type" : "boolean",
2565 "typetext" : "<boolean>"
44660702
DM
2566 }
2567 }
2568 },
2569 "permissions" : {
2570 "check" : [
2571 "perm",
2572 "/",
2573 [
2574 "Sys.Modify"
2575 ]
2576 ]
2577 },
2578 "protected" : 1,
2579 "returns" : {
2580 "type" : "null"
2581 }
7aacca6f
DM
2582 }
2583 },
44660702
DM
2584 "leaf" : 1,
2585 "path" : "/cluster/firewall/ipset/{name}/{cidr}",
2586 "text" : "{cidr}"
7aacca6f 2587 }
44660702 2588 ],
7aacca6f
DM
2589 "info" : {
2590 "DELETE" : {
e9cd3bd4 2591 "allowtoken" : 1,
44660702
DM
2592 "description" : "Delete IPSet",
2593 "method" : "DELETE",
2594 "name" : "delete_ipset",
56122987 2595 "parameters" : {
44660702 2596 "additionalProperties" : 0,
56122987
DM
2597 "properties" : {
2598 "name" : {
44660702 2599 "description" : "IP set name.",
56122987 2600 "maxLength" : 64,
44660702 2601 "minLength" : 2,
56122987 2602 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 2603 "type" : "string"
56122987 2604 }
44660702 2605 }
7aacca6f 2606 },
56122987
DM
2607 "permissions" : {
2608 "check" : [
2609 "perm",
2610 "/",
2611 [
2612 "Sys.Modify"
2613 ]
2614 ]
2615 },
7aacca6f
DM
2616 "protected" : 1,
2617 "returns" : {
2618 "type" : "null"
44660702 2619 }
7aacca6f 2620 },
44660702 2621 "GET" : {
e9cd3bd4 2622 "allowtoken" : 1,
44660702
DM
2623 "description" : "List IPSet content",
2624 "method" : "GET",
2625 "name" : "get_ipset",
56122987
DM
2626 "parameters" : {
2627 "additionalProperties" : 0,
2628 "properties" : {
7aacca6f 2629 "name" : {
44660702 2630 "description" : "IP set name.",
7aacca6f 2631 "maxLength" : 64,
7aacca6f 2632 "minLength" : 2,
44660702 2633 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 2634 "type" : "string"
56122987 2635 }
7aacca6f 2636 }
56122987 2637 },
56122987
DM
2638 "permissions" : {
2639 "check" : [
2640 "perm",
2641 "/",
2642 [
44660702 2643 "Sys.Audit"
56122987
DM
2644 ]
2645 ]
44660702
DM
2646 },
2647 "returns" : {
2648 "items" : {
2649 "properties" : {
2650 "cidr" : {
2651 "type" : "string"
2652 },
2653 "comment" : {
2654 "optional" : 1,
2655 "type" : "string"
2656 },
2657 "digest" : {
2658 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2659 "maxLength" : 40,
2660 "optional" : 0,
2661 "type" : "string"
2662 },
2663 "nomatch" : {
2664 "optional" : 1,
2665 "type" : "boolean"
2666 }
2667 },
2668 "type" : "object"
2669 },
2670 "links" : [
2671 {
2672 "href" : "{cidr}",
2673 "rel" : "child"
2674 }
2675 ],
2676 "type" : "array"
7aacca6f
DM
2677 }
2678 },
44660702 2679 "POST" : {
e9cd3bd4 2680 "allowtoken" : 1,
44660702
DM
2681 "description" : "Add IP or Network to IPSet.",
2682 "method" : "POST",
2683 "name" : "create_ip",
56122987
DM
2684 "parameters" : {
2685 "additionalProperties" : 0,
2686 "properties" : {
44660702
DM
2687 "cidr" : {
2688 "description" : "Network/IP specification in CIDR format.",
2689 "format" : "IPorCIDRorAlias",
013dc89f
DM
2690 "type" : "string",
2691 "typetext" : "<string>"
44660702
DM
2692 },
2693 "comment" : {
2694 "optional" : 1,
013dc89f
DM
2695 "type" : "string",
2696 "typetext" : "<string>"
44660702
DM
2697 },
2698 "name" : {
2699 "description" : "IP set name.",
2700 "maxLength" : 64,
2701 "minLength" : 2,
2702 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2703 "type" : "string"
2704 },
2705 "nomatch" : {
2706 "optional" : 1,
013dc89f
DM
2707 "type" : "boolean",
2708 "typetext" : "<boolean>"
56122987
DM
2709 }
2710 }
2711 },
56122987
DM
2712 "permissions" : {
2713 "check" : [
2714 "perm",
2715 "/",
2716 [
44660702 2717 "Sys.Modify"
56122987
DM
2718 ]
2719 ]
2720 },
44660702 2721 "protected" : 1,
56122987 2722 "returns" : {
44660702
DM
2723 "type" : "null"
2724 }
56122987
DM
2725 }
2726 },
44660702
DM
2727 "leaf" : 0,
2728 "path" : "/cluster/firewall/ipset/{name}",
2729 "text" : "{name}"
56122987
DM
2730 }
2731 ],
56122987 2732 "info" : {
44660702 2733 "GET" : {
e9cd3bd4 2734 "allowtoken" : 1,
44660702
DM
2735 "description" : "List IPSets",
2736 "method" : "GET",
2737 "name" : "ipset_index",
56122987 2738 "parameters" : {
7aacca6f 2739 "additionalProperties" : 0
56122987 2740 },
56122987
DM
2741 "permissions" : {
2742 "check" : [
2743 "perm",
2744 "/",
2745 [
7aacca6f 2746 "Sys.Audit"
56122987
DM
2747 ]
2748 ]
2749 },
56122987
DM
2750 "returns" : {
2751 "items" : {
2752 "properties" : {
44660702
DM
2753 "comment" : {
2754 "optional" : 1,
2755 "type" : "string"
56122987 2756 },
44660702
DM
2757 "digest" : {
2758 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2759 "maxLength" : 40,
2760 "optional" : 0,
2761 "type" : "string"
2762 },
2763 "name" : {
2764 "description" : "IP set name.",
2765 "maxLength" : 64,
2766 "minLength" : 2,
2767 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 2768 "type" : "string"
56122987
DM
2769 }
2770 },
2771 "type" : "object"
44660702
DM
2772 },
2773 "links" : [
2774 {
2775 "href" : "{name}",
2776 "rel" : "child"
2777 }
2778 ],
2779 "type" : "array"
56122987 2780 }
44660702
DM
2781 },
2782 "POST" : {
e9cd3bd4 2783 "allowtoken" : 1,
44660702
DM
2784 "description" : "Create new IPSet",
2785 "method" : "POST",
2786 "name" : "create_ipset",
7aacca6f
DM
2787 "parameters" : {
2788 "additionalProperties" : 0,
2789 "properties" : {
44660702
DM
2790 "comment" : {
2791 "optional" : 1,
013dc89f
DM
2792 "type" : "string",
2793 "typetext" : "<string>"
44660702
DM
2794 },
2795 "digest" : {
2796 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2797 "maxLength" : 40,
2798 "optional" : 1,
013dc89f
DM
2799 "type" : "string",
2800 "typetext" : "<string>"
44660702
DM
2801 },
2802 "name" : {
2803 "description" : "IP set name.",
2804 "maxLength" : 64,
2805 "minLength" : 2,
2806 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2807 "type" : "string"
2808 },
2809 "rename" : {
2810 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
2811 "maxLength" : 64,
2812 "minLength" : 2,
2813 "optional" : 1,
2814 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2815 "type" : "string"
7aacca6f
DM
2816 }
2817 }
2818 },
56122987
DM
2819 "permissions" : {
2820 "check" : [
2821 "perm",
2822 "/",
2823 [
44660702 2824 "Sys.Modify"
56122987
DM
2825 ]
2826 ]
2827 },
44660702 2828 "protected" : 1,
56122987 2829 "returns" : {
44660702
DM
2830 "type" : "null"
2831 }
56122987 2832 }
7aacca6f 2833 },
44660702
DM
2834 "leaf" : 0,
2835 "path" : "/cluster/firewall/ipset",
2836 "text" : "ipset"
2837 },
56122987 2838 {
44660702
DM
2839 "children" : [
2840 {
2841 "info" : {
2842 "DELETE" : {
e9cd3bd4 2843 "allowtoken" : 1,
44660702
DM
2844 "description" : "Remove IP or Network alias.",
2845 "method" : "DELETE",
2846 "name" : "remove_alias",
2847 "parameters" : {
2848 "additionalProperties" : 0,
2849 "properties" : {
2850 "digest" : {
2851 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2852 "maxLength" : 40,
2853 "optional" : 1,
013dc89f
DM
2854 "type" : "string",
2855 "typetext" : "<string>"
44660702
DM
2856 },
2857 "name" : {
2858 "description" : "Alias name.",
2859 "maxLength" : 64,
2860 "minLength" : 2,
2861 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2862 "type" : "string"
2863 }
2864 }
2865 },
2866 "permissions" : {
2867 "check" : [
2868 "perm",
2869 "/",
2870 [
2871 "Sys.Modify"
2872 ]
2873 ]
2874 },
2875 "protected" : 1,
2876 "returns" : {
2877 "type" : "null"
2878 }
2879 },
2880 "GET" : {
e9cd3bd4 2881 "allowtoken" : 1,
44660702
DM
2882 "description" : "Read alias.",
2883 "method" : "GET",
2884 "name" : "read_alias",
2885 "parameters" : {
2886 "additionalProperties" : 0,
2887 "properties" : {
2888 "name" : {
2889 "description" : "Alias name.",
2890 "maxLength" : 64,
2891 "minLength" : 2,
2892 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2893 "type" : "string"
2894 }
2895 }
2896 },
2897 "permissions" : {
2898 "check" : [
2899 "perm",
2900 "/",
2901 [
2902 "Sys.Audit"
2903 ]
2904 ]
2905 },
2906 "returns" : {
2907 "type" : "object"
2908 }
2909 },
2910 "PUT" : {
e9cd3bd4 2911 "allowtoken" : 1,
44660702
DM
2912 "description" : "Update IP or Network alias.",
2913 "method" : "PUT",
2914 "name" : "update_alias",
2915 "parameters" : {
2916 "additionalProperties" : 0,
2917 "properties" : {
2918 "cidr" : {
2919 "description" : "Network/IP specification in CIDR format.",
2920 "format" : "IPorCIDR",
013dc89f
DM
2921 "type" : "string",
2922 "typetext" : "<string>"
44660702
DM
2923 },
2924 "comment" : {
2925 "optional" : 1,
013dc89f
DM
2926 "type" : "string",
2927 "typetext" : "<string>"
44660702
DM
2928 },
2929 "digest" : {
2930 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2931 "maxLength" : 40,
2932 "optional" : 1,
013dc89f
DM
2933 "type" : "string",
2934 "typetext" : "<string>"
44660702
DM
2935 },
2936 "name" : {
2937 "description" : "Alias name.",
2938 "maxLength" : 64,
2939 "minLength" : 2,
2940 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2941 "type" : "string"
2942 },
2943 "rename" : {
2944 "description" : "Rename an existing alias.",
2945 "maxLength" : 64,
2946 "minLength" : 2,
2947 "optional" : 1,
2948 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2949 "type" : "string"
2950 }
2951 }
2952 },
2953 "permissions" : {
2954 "check" : [
2955 "perm",
2956 "/",
2957 [
2958 "Sys.Modify"
2959 ]
2960 ]
2961 },
2962 "protected" : 1,
2963 "returns" : {
2964 "type" : "null"
2965 }
2966 }
2967 },
2968 "leaf" : 1,
2969 "path" : "/cluster/firewall/aliases/{name}",
2970 "text" : "{name}"
2971 }
2972 ],
2973 "info" : {
2974 "GET" : {
e9cd3bd4 2975 "allowtoken" : 1,
44660702
DM
2976 "description" : "List aliases",
2977 "method" : "GET",
2978 "name" : "get_aliases",
2979 "parameters" : {
2980 "additionalProperties" : 0
2981 },
2982 "permissions" : {
2983 "check" : [
2984 "perm",
2985 "/",
2986 [
2987 "Sys.Audit"
2988 ]
2989 ]
2990 },
2991 "returns" : {
2992 "items" : {
2993 "properties" : {
2994 "cidr" : {
2995 "type" : "string"
2996 },
2997 "comment" : {
2998 "optional" : 1,
2999 "type" : "string"
3000 },
3001 "digest" : {
3002 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
3003 "maxLength" : 40,
3004 "optional" : 0,
3005 "type" : "string"
3006 },
3007 "name" : {
3008 "type" : "string"
3009 }
3010 },
3011 "type" : "object"
3012 },
3013 "links" : [
3014 {
3015 "href" : "{name}",
3016 "rel" : "child"
3017 }
3018 ],
3019 "type" : "array"
3020 }
3021 },
3022 "POST" : {
e9cd3bd4 3023 "allowtoken" : 1,
44660702
DM
3024 "description" : "Create IP or Network Alias.",
3025 "method" : "POST",
3026 "name" : "create_alias",
56122987
DM
3027 "parameters" : {
3028 "additionalProperties" : 0,
3029 "properties" : {
44660702
DM
3030 "cidr" : {
3031 "description" : "Network/IP specification in CIDR format.",
3032 "format" : "IPorCIDR",
013dc89f
DM
3033 "type" : "string",
3034 "typetext" : "<string>"
44660702
DM
3035 },
3036 "comment" : {
3037 "optional" : 1,
013dc89f
DM
3038 "type" : "string",
3039 "typetext" : "<string>"
44660702
DM
3040 },
3041 "name" : {
3042 "description" : "Alias name.",
3043 "maxLength" : 64,
3044 "minLength" : 2,
3045 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3046 "type" : "string"
56122987
DM
3047 }
3048 }
3049 },
56122987
DM
3050 "permissions" : {
3051 "check" : [
3052 "perm",
3053 "/",
3054 [
3055 "Sys.Modify"
3056 ]
3057 ]
3058 },
44660702 3059 "protected" : 1,
56122987
DM
3060 "returns" : {
3061 "type" : "null"
3062 }
44660702
DM
3063 }
3064 },
3065 "leaf" : 0,
3066 "path" : "/cluster/firewall/aliases",
3067 "text" : "aliases"
3068 },
3069 {
3070 "info" : {
3071 "GET" : {
e9cd3bd4 3072 "allowtoken" : 1,
44660702
DM
3073 "description" : "Get Firewall options.",
3074 "method" : "GET",
3075 "name" : "get_options",
3076 "parameters" : {
3077 "additionalProperties" : 0
7aacca6f 3078 },
56122987
DM
3079 "permissions" : {
3080 "check" : [
3081 "perm",
3082 "/",
3083 [
44660702 3084 "Sys.Audit"
56122987
DM
3085 ]
3086 ]
3087 },
44660702 3088 "returns" : {
56122987 3089 "properties" : {
5da3d723
TL
3090 "ebtables" : {
3091 "default" : 1,
3092 "description" : "Enable ebtables rules cluster wide.",
3093 "optional" : 1,
3094 "type" : "boolean"
3095 },
44660702
DM
3096 "enable" : {
3097 "description" : "Enable or disable the firewall cluster wide.",
3098 "minimum" : 0,
56122987 3099 "optional" : 1,
7aacca6f 3100 "type" : "integer"
56122987 3101 },
95895385
TL
3102 "log_ratelimit" : {
3103 "description" : "Log ratelimiting settings",
3104 "format" : {
3105 "burst" : {
3106 "default" : 5,
4772952b 3107 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
3108 "minimum" : 0,
3109 "optional" : 1,
3110 "type" : "integer"
3111 },
3112 "enable" : {
3113 "default" : "1",
3114 "default_key" : 1,
3115 "description" : "Enable or disable log rate limiting",
3116 "type" : "boolean"
3117 },
3118 "rate" : {
3119 "default" : "1/second",
3120 "description" : "Frequency with which the burst bucket gets refilled",
3121 "format_description" : "rate",
3122 "optional" : 1,
3123 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
3124 "type" : "string"
3125 }
3126 },
3127 "optional" : 1,
3128 "type" : "string"
3129 },
44660702
DM
3130 "policy_in" : {
3131 "description" : "Input policy.",
3132 "enum" : [
3133 "ACCEPT",
3134 "REJECT",
3135 "DROP"
3136 ],
56122987 3137 "optional" : 1,
44660702 3138 "type" : "string"
7aacca6f 3139 },
44660702
DM
3140 "policy_out" : {
3141 "description" : "Output policy.",
3142 "enum" : [
3143 "ACCEPT",
3144 "REJECT",
3145 "DROP"
3146 ],
7aacca6f 3147 "optional" : 1,
44660702
DM
3148 "type" : "string"
3149 }
3150 },
3151 "type" : "object"
3152 }
3153 },
3154 "PUT" : {
e9cd3bd4 3155 "allowtoken" : 1,
44660702
DM
3156 "description" : "Set Firewall options.",
3157 "method" : "PUT",
3158 "name" : "set_options",
3159 "parameters" : {
3160 "additionalProperties" : 0,
3161 "properties" : {
3162 "delete" : {
3163 "description" : "A list of settings you want to delete.",
3164 "format" : "pve-configid-list",
56122987 3165 "optional" : 1,
013dc89f
DM
3166 "type" : "string",
3167 "typetext" : "<string>"
56122987 3168 },
44660702
DM
3169 "digest" : {
3170 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
3171 "maxLength" : 40,
56122987 3172 "optional" : 1,
013dc89f
DM
3173 "type" : "string",
3174 "typetext" : "<string>"
56122987 3175 },
5da3d723
TL
3176 "ebtables" : {
3177 "default" : 1,
3178 "description" : "Enable ebtables rules cluster wide.",
3179 "optional" : 1,
3180 "type" : "boolean",
3181 "typetext" : "<boolean>"
3182 },
44660702
DM
3183 "enable" : {
3184 "description" : "Enable or disable the firewall cluster wide.",
7aacca6f 3185 "minimum" : 0,
56122987 3186 "optional" : 1,
4bd7df8b 3187 "type" : "integer",
013dc89f 3188 "typetext" : "<integer> (0 - N)"
56122987 3189 },
95895385
TL
3190 "log_ratelimit" : {
3191 "description" : "Log ratelimiting settings",
3192 "format" : {
3193 "burst" : {
3194 "default" : 5,
4772952b 3195 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
3196 "minimum" : 0,
3197 "optional" : 1,
3198 "type" : "integer"
3199 },
3200 "enable" : {
3201 "default" : "1",
3202 "default_key" : 1,
3203 "description" : "Enable or disable log rate limiting",
3204 "type" : "boolean"
3205 },
3206 "rate" : {
3207 "default" : "1/second",
3208 "description" : "Frequency with which the burst bucket gets refilled",
3209 "format_description" : "rate",
3210 "optional" : 1,
3211 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
3212 "type" : "string"
3213 }
3214 },
3215 "optional" : 1,
3216 "type" : "string",
3217 "typetext" : "[enable=]<1|0> [,burst=<integer>] [,rate=<rate>]"
3218 },
44660702
DM
3219 "policy_in" : {
3220 "description" : "Input policy.",
56122987 3221 "enum" : [
44660702
DM
3222 "ACCEPT",
3223 "REJECT",
3224 "DROP"
56122987 3225 ],
56122987 3226 "optional" : 1,
44660702 3227 "type" : "string"
56122987 3228 },
44660702
DM
3229 "policy_out" : {
3230 "description" : "Output policy.",
56122987 3231 "enum" : [
44660702
DM
3232 "ACCEPT",
3233 "REJECT",
3234 "DROP"
56122987 3235 ],
7aacca6f 3236 "optional" : 1,
44660702 3237 "type" : "string"
56122987 3238 }
44660702
DM
3239 }
3240 },
3241 "permissions" : {
3242 "check" : [
3243 "perm",
3244 "/",
3245 [
3246 "Sys.Modify"
3247 ]
3248 ]
7aacca6f
DM
3249 },
3250 "protected" : 1,
44660702
DM
3251 "returns" : {
3252 "type" : "null"
3253 }
3254 }
3255 },
3256 "leaf" : 1,
3257 "path" : "/cluster/firewall/options",
3258 "text" : "options"
3259 },
3260 {
3261 "info" : {
7aacca6f 3262 "GET" : {
e9cd3bd4 3263 "allowtoken" : 1,
44660702 3264 "description" : "List available macros",
7aacca6f 3265 "method" : "GET",
44660702
DM
3266 "name" : "get_macros",
3267 "parameters" : {
3268 "additionalProperties" : 0
7aacca6f 3269 },
44660702
DM
3270 "permissions" : {
3271 "user" : "all"
3272 },
3273 "returns" : {
3274 "items" : {
3275 "properties" : {
3276 "descr" : {
3277 "description" : "More verbose description (if available).",
3278 "type" : "string"
3279 },
3280 "macro" : {
3281 "description" : "Macro name.",
3282 "type" : "string"
3283 }
3284 },
3285 "type" : "object"
3286 },
3287 "type" : "array"
3288 }
3289 }
3290 },
3291 "leaf" : 1,
3292 "path" : "/cluster/firewall/macros",
3293 "text" : "macros"
3294 },
3295 {
3296 "info" : {
3297 "GET" : {
e9cd3bd4 3298 "allowtoken" : 1,
44660702
DM
3299 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
3300 "method" : "GET",
3301 "name" : "refs",
7aacca6f 3302 "parameters" : {
44660702 3303 "additionalProperties" : 0,
7aacca6f 3304 "properties" : {
44660702
DM
3305 "type" : {
3306 "description" : "Only list references of specified type.",
3307 "enum" : [
3308 "alias",
3309 "ipset"
3310 ],
3311 "optional" : 1,
3312 "type" : "string"
7aacca6f 3313 }
44660702 3314 }
7aacca6f
DM
3315 },
3316 "permissions" : {
3317 "check" : [
3318 "perm",
3319 "/",
3320 [
3321 "Sys.Audit"
3322 ]
3323 ]
3324 },
44660702
DM
3325 "returns" : {
3326 "items" : {
3327 "properties" : {
3328 "comment" : {
3329 "optional" : 1,
3330 "type" : "string"
3331 },
3332 "name" : {
3333 "type" : "string"
3334 },
3335 "ref" : {
3336 "type" : "string"
3337 },
3338 "type" : {
3339 "enum" : [
3340 "alias",
3341 "ipset"
3342 ],
3343 "type" : "string"
3344 }
3345 },
3346 "type" : "object"
3347 },
3348 "type" : "array"
3349 }
56122987
DM
3350 }
3351 },
7aacca6f 3352 "leaf" : 1,
44660702
DM
3353 "path" : "/cluster/firewall/refs",
3354 "text" : "refs"
56122987
DM
3355 }
3356 ],
56122987 3357 "info" : {
44660702 3358 "GET" : {
e9cd3bd4 3359 "allowtoken" : 1,
44660702
DM
3360 "description" : "Directory index.",
3361 "method" : "GET",
3362 "name" : "index",
56122987 3363 "parameters" : {
56122987
DM
3364 "additionalProperties" : 0
3365 },
44660702
DM
3366 "permissions" : {
3367 "user" : "all"
3368 },
56122987 3369 "returns" : {
44660702
DM
3370 "items" : {
3371 "properties" : {},
3372 "type" : "object"
3373 },
7aacca6f
DM
3374 "links" : [
3375 {
44660702
DM
3376 "href" : "{name}",
3377 "rel" : "child"
7aacca6f
DM
3378 }
3379 ],
7aacca6f 3380 "type" : "array"
7aacca6f 3381 }
56122987
DM
3382 }
3383 },
44660702
DM
3384 "leaf" : 0,
3385 "path" : "/cluster/firewall",
3386 "text" : "firewall"
7aacca6f
DM
3387 },
3388 {
56122987
DM
3389 "children" : [
3390 {
04d22a9f
TL
3391 "children" : [
3392 {
3393 "info" : {
3394 "GET" : {
3395 "allowtoken" : 1,
3396 "description" : "Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.",
3397 "method" : "GET",
3398 "name" : "get_volume_backup_included",
3399 "parameters" : {
3400 "additionalProperties" : 0,
3401 "properties" : {
3402 "id" : {
3403 "description" : "The job ID.",
3404 "maxLength" : 50,
3405 "type" : "string",
3406 "typetext" : "<string>"
3407 }
3408 }
3409 },
3410 "permissions" : {
3411 "check" : [
3412 "perm",
3413 "/",
3414 [
3415 "Sys.Audit"
3416 ]
3417 ]
3418 },
3419 "protected" : 1,
3420 "returns" : {
3421 "description" : "Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest.",
3422 "properties" : {
3423 "children" : {
3424 "items" : {
3425 "properties" : {
3426 "children" : {
3427 "description" : "The volumes of the guest with the information if they will be included in backups.",
3428 "items" : {
3429 "properties" : {
3430 "id" : {
3431 "description" : "Configuration key of the volume.",
3432 "type" : "string"
3433 },
3434 "included" : {
3435 "description" : "Whether the volume is included in the backup or not.",
3436 "type" : "boolean"
3437 },
3438 "name" : {
3439 "description" : "Name of the volume.",
3440 "type" : "string"
3441 },
3442 "reason" : {
3443 "description" : "The reason why the volume is included (or excluded).",
3444 "type" : "string"
3445 }
3446 },
3447 "type" : "object"
3448 },
3449 "optional" : 1,
3450 "type" : "array"
3451 },
3452 "id" : {
3453 "description" : "VMID of the guest.",
3454 "type" : "integer"
3455 },
3456 "name" : {
3457 "description" : "Name of the guest",
3458 "optional" : 1,
3459 "type" : "string"
3460 },
3461 "type" : {
3462 "description" : "Type of the guest, VM, CT or unknown for removed but not purged guests.",
3463 "enum" : [
3464 "qemu",
3465 "lxc",
3466 "unknown"
3467 ],
3468 "type" : "string"
3469 }
3470 },
3471 "type" : "object"
3472 },
3473 "type" : "array"
3474 }
3475 },
3476 "type" : "object"
3477 }
3478 }
3479 },
3480 "leaf" : 1,
3481 "path" : "/cluster/backup/{id}/included_volumes",
3482 "text" : "included_volumes"
3483 }
3484 ],
56122987 3485 "info" : {
44660702 3486 "DELETE" : {
e9cd3bd4 3487 "allowtoken" : 1,
44660702
DM
3488 "description" : "Delete vzdump backup job definition.",
3489 "method" : "DELETE",
3490 "name" : "delete_job",
3491 "parameters" : {
3492 "additionalProperties" : 0,
3493 "properties" : {
3494 "id" : {
3495 "description" : "The job ID.",
3496 "maxLength" : 50,
013dc89f
DM
3497 "type" : "string",
3498 "typetext" : "<string>"
44660702
DM
3499 }
3500 }
3501 },
3502 "permissions" : {
3503 "check" : [
3504 "perm",
3505 "/",
3506 [
3507 "Sys.Modify"
3508 ]
3509 ]
3510 },
3511 "protected" : 1,
56122987
DM
3512 "returns" : {
3513 "type" : "null"
44660702
DM
3514 }
3515 },
3516 "GET" : {
e9cd3bd4 3517 "allowtoken" : 1,
44660702
DM
3518 "description" : "Read vzdump backup job definition.",
3519 "method" : "GET",
3520 "name" : "read_job",
3521 "parameters" : {
3522 "additionalProperties" : 0,
3523 "properties" : {
3524 "id" : {
3525 "description" : "The job ID.",
3526 "maxLength" : 50,
013dc89f
DM
3527 "type" : "string",
3528 "typetext" : "<string>"
44660702
DM
3529 }
3530 }
56122987 3531 },
7aacca6f
DM
3532 "permissions" : {
3533 "check" : [
3534 "perm",
3535 "/",
3536 [
44660702 3537 "Sys.Audit"
7aacca6f
DM
3538 ]
3539 ]
3540 },
44660702
DM
3541 "returns" : {
3542 "type" : "object"
3543 }
3544 },
3545 "PUT" : {
e9cd3bd4 3546 "allowtoken" : 1,
44660702
DM
3547 "description" : "Update vzdump backup job definition.",
3548 "method" : "PUT",
3549 "name" : "update_job",
56122987 3550 "parameters" : {
44660702 3551 "additionalProperties" : 0,
56122987 3552 "properties" : {
44660702
DM
3553 "all" : {
3554 "default" : 0,
3555 "description" : "Backup all known guest systems on this host.",
7aacca6f 3556 "optional" : 1,
013dc89f
DM
3557 "type" : "boolean",
3558 "typetext" : "<boolean>"
7aacca6f 3559 },
44660702
DM
3560 "bwlimit" : {
3561 "default" : 0,
3562 "description" : "Limit I/O bandwidth (KBytes per second).",
3563 "minimum" : 0,
3564 "optional" : 1,
4bd7df8b 3565 "type" : "integer",
013dc89f 3566 "typetext" : "<integer> (0 - N)"
44660702 3567 },
5370fa8c
TL
3568 "comment" : {
3569 "description" : "Description for the Job.",
3570 "maxLength" : 512,
3571 "optional" : 1,
3572 "type" : "string",
3573 "typetext" : "<string>"
3574 },
44660702
DM
3575 "compress" : {
3576 "default" : "0",
3577 "description" : "Compress dump file.",
7aacca6f 3578 "enum" : [
44660702
DM
3579 "0",
3580 "1",
3581 "gzip",
c5aa7e14
TL
3582 "lzo",
3583 "zstd"
7aacca6f 3584 ],
44660702
DM
3585 "optional" : 1,
3586 "type" : "string"
7aacca6f 3587 },
44660702
DM
3588 "delete" : {
3589 "description" : "A list of settings you want to delete.",
3590 "format" : "pve-configid-list",
7aacca6f 3591 "optional" : 1,
013dc89f
DM
3592 "type" : "string",
3593 "typetext" : "<string>"
56122987 3594 },
44660702
DM
3595 "dow" : {
3596 "description" : "Day of week selection.",
3597 "format" : "pve-day-of-week-list",
7aacca6f 3598 "optional" : 1,
5370fa8c 3599 "requires" : "starttime",
013dc89f
DM
3600 "type" : "string",
3601 "typetext" : "<string>"
56122987 3602 },
44660702
DM
3603 "dumpdir" : {
3604 "description" : "Store resulting files to specified directory.",
56122987 3605 "optional" : 1,
013dc89f
DM
3606 "type" : "string",
3607 "typetext" : "<string>"
56122987 3608 },
44660702
DM
3609 "enabled" : {
3610 "default" : "1",
3611 "description" : "Enable or disable the job.",
3612 "optional" : 1,
013dc89f
DM
3613 "type" : "boolean",
3614 "typetext" : "<boolean>"
44660702
DM
3615 },
3616 "exclude" : {
3617 "description" : "Exclude specified guest systems (assumes --all)",
3618 "format" : "pve-vmid-list",
3619 "optional" : 1,
013dc89f
DM
3620 "type" : "string",
3621 "typetext" : "<string>"
44660702
DM
3622 },
3623 "exclude-path" : {
d2656385 3624 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
44660702
DM
3625 "format" : "string-alist",
3626 "optional" : 1,
013dc89f
DM
3627 "type" : "string",
3628 "typetext" : "<string>"
44660702
DM
3629 },
3630 "id" : {
3631 "description" : "The job ID.",
3632 "maxLength" : 50,
013dc89f
DM
3633 "type" : "string",
3634 "typetext" : "<string>"
44660702
DM
3635 },
3636 "ionice" : {
3637 "default" : 7,
3638 "description" : "Set CFQ ionice priority.",
3639 "maximum" : 8,
3640 "minimum" : 0,
3641 "optional" : 1,
4bd7df8b 3642 "type" : "integer",
013dc89f 3643 "typetext" : "<integer> (0 - 8)"
44660702
DM
3644 },
3645 "lockwait" : {
3646 "default" : 180,
3647 "description" : "Maximal time to wait for the global lock (minutes).",
3648 "minimum" : 0,
3649 "optional" : 1,
4bd7df8b 3650 "type" : "integer",
013dc89f 3651 "typetext" : "<integer> (0 - N)"
44660702
DM
3652 },
3653 "mailnotification" : {
3654 "default" : "always",
3655 "description" : "Specify when to send an email",
56122987 3656 "enum" : [
44660702
DM
3657 "always",
3658 "failure"
56122987 3659 ],
44660702
DM
3660 "optional" : 1,
3661 "type" : "string"
3662 },
3663 "mailto" : {
d2656385
TL
3664 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
3665 "format" : "email-or-username-list",
44660702 3666 "optional" : 1,
013dc89f
DM
3667 "type" : "string",
3668 "typetext" : "<string>"
44660702
DM
3669 },
3670 "maxfiles" : {
0695fdaf 3671 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
3672 "minimum" : 1,
3673 "optional" : 1,
4bd7df8b 3674 "type" : "integer",
013dc89f 3675 "typetext" : "<integer> (1 - N)"
44660702
DM
3676 },
3677 "mode" : {
3678 "default" : "snapshot",
3679 "description" : "Backup mode.",
3680 "enum" : [
3681 "snapshot",
3682 "suspend",
3683 "stop"
3684 ],
3685 "optional" : 1,
3686 "type" : "string"
3687 },
3688 "node" : {
3689 "description" : "Only run if executed on this node.",
3690 "format" : "pve-node",
3691 "optional" : 1,
013dc89f
DM
3692 "type" : "string",
3693 "typetext" : "<string>"
44660702 3694 },
7af2edf9
TL
3695 "notes-template" : {
3696 "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.",
3697 "optional" : 1,
3698 "requires" : "storage",
3699 "type" : "string",
3700 "typetext" : "<string>"
3701 },
44660702
DM
3702 "pigz" : {
3703 "default" : 0,
3704 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
3705 "optional" : 1,
013dc89f
DM
3706 "type" : "integer",
3707 "typetext" : "<integer>"
44660702 3708 },
9226ccbc
TL
3709 "pool" : {
3710 "description" : "Backup all known guest systems included in the specified pool.",
3711 "optional" : 1,
3712 "type" : "string",
3713 "typetext" : "<string>"
3714 },
7af2edf9
TL
3715 "protected" : {
3716 "description" : "If true, mark backup(s) as protected.",
3717 "optional" : 1,
3718 "requires" : "storage",
3719 "type" : "boolean",
3720 "typetext" : "<boolean>"
3721 },
739d4d64 3722 "prune-backups" : {
0695fdaf 3723 "default" : "keep-all=1",
739d4d64
TL
3724 "description" : "Use these retention options instead of those from the storage configuration.",
3725 "format" : "prune-backups",
3726 "optional" : 1,
3727 "type" : "string",
4772952b 3728 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 3729 },
44660702
DM
3730 "quiet" : {
3731 "default" : 0,
3732 "description" : "Be quiet.",
3733 "optional" : 1,
013dc89f
DM
3734 "type" : "boolean",
3735 "typetext" : "<boolean>"
44660702
DM
3736 },
3737 "remove" : {
3738 "default" : 1,
0695fdaf 3739 "description" : "Prune older backups according to 'prune-backups'.",
44660702 3740 "optional" : 1,
013dc89f
DM
3741 "type" : "boolean",
3742 "typetext" : "<boolean>"
44660702 3743 },
5370fa8c
TL
3744 "schedule" : {
3745 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
3746 "format" : "pve-calendar-event",
3747 "maxLength" : 128,
3748 "optional" : 1,
3749 "type" : "string",
3750 "typetext" : "<string>"
3751 },
44660702
DM
3752 "script" : {
3753 "description" : "Use specified hook script.",
3754 "optional" : 1,
013dc89f
DM
3755 "type" : "string",
3756 "typetext" : "<string>"
44660702 3757 },
44660702
DM
3758 "starttime" : {
3759 "description" : "Job Start time.",
5370fa8c 3760 "optional" : 1,
44660702 3761 "pattern" : "\\d{1,2}:\\d{1,2}",
56122987 3762 "type" : "string",
44660702 3763 "typetext" : "HH:MM"
7aacca6f 3764 },
44660702
DM
3765 "stdexcludes" : {
3766 "default" : 1,
3767 "description" : "Exclude temporary files and logs.",
3768 "optional" : 1,
013dc89f
DM
3769 "type" : "boolean",
3770 "typetext" : "<boolean>"
44660702
DM
3771 },
3772 "stop" : {
3773 "default" : 0,
1e3f8156 3774 "description" : "Stop running backup jobs on this host.",
44660702 3775 "optional" : 1,
013dc89f
DM
3776 "type" : "boolean",
3777 "typetext" : "<boolean>"
44660702
DM
3778 },
3779 "stopwait" : {
3780 "default" : 10,
3781 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
3782 "minimum" : 0,
3783 "optional" : 1,
4bd7df8b 3784 "type" : "integer",
013dc89f 3785 "typetext" : "<integer> (0 - N)"
44660702
DM
3786 },
3787 "storage" : {
3788 "description" : "Store resulting file to this storage.",
3789 "format" : "pve-storage-id",
3790 "optional" : 1,
013dc89f
DM
3791 "type" : "string",
3792 "typetext" : "<string>"
56122987 3793 },
44660702
DM
3794 "tmpdir" : {
3795 "description" : "Store temporary files to specified directory.",
3796 "optional" : 1,
013dc89f
DM
3797 "type" : "string",
3798 "typetext" : "<string>"
44660702
DM
3799 },
3800 "vmid" : {
3801 "description" : "The ID of the guest system you want to backup.",
3802 "format" : "pve-vmid-list",
3803 "optional" : 1,
013dc89f
DM
3804 "type" : "string",
3805 "typetext" : "<string>"
c5aa7e14
TL
3806 },
3807 "zstd" : {
3808 "default" : 1,
3809 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
3810 "optional" : 1,
3811 "type" : "integer",
3812 "typetext" : "<integer>"
56122987 3813 }
44660702 3814 }
56122987
DM
3815 },
3816 "permissions" : {
3817 "check" : [
3818 "perm",
3819 "/",
3820 [
44660702 3821 "Sys.Modify"
56122987 3822 ]
04d22a9f
TL
3823 ],
3824 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
56122987 3825 },
44660702
DM
3826 "protected" : 1,
3827 "returns" : {
3828 "type" : "null"
7aacca6f 3829 }
56122987
DM
3830 }
3831 },
04d22a9f 3832 "leaf" : 0,
44660702
DM
3833 "path" : "/cluster/backup/{id}",
3834 "text" : "{id}"
3835 }
3836 ],
3837 "info" : {
3838 "GET" : {
e9cd3bd4 3839 "allowtoken" : 1,
44660702
DM
3840 "description" : "List vzdump backup schedule.",
3841 "method" : "GET",
3842 "name" : "index",
3843 "parameters" : {
3844 "additionalProperties" : 0
3845 },
3846 "permissions" : {
3847 "check" : [
3848 "perm",
3849 "/",
3850 [
3851 "Sys.Audit"
3852 ]
3853 ]
3854 },
3855 "returns" : {
3856 "items" : {
3857 "properties" : {
3858 "id" : {
1c532546
TL
3859 "description" : "The job ID.",
3860 "maxLength" : 50,
44660702
DM
3861 "type" : "string"
3862 }
3863 },
3864 "type" : "object"
3865 },
3866 "links" : [
3867 {
3868 "href" : "{id}",
3869 "rel" : "child"
3870 }
3871 ],
3872 "type" : "array"
3873 }
3874 },
3875 "POST" : {
e9cd3bd4 3876 "allowtoken" : 1,
44660702
DM
3877 "description" : "Create new vzdump backup job.",
3878 "method" : "POST",
3879 "name" : "create_job",
3880 "parameters" : {
3881 "additionalProperties" : 0,
3882 "properties" : {
3883 "all" : {
3884 "default" : 0,
3885 "description" : "Backup all known guest systems on this host.",
3886 "optional" : 1,
013dc89f
DM
3887 "type" : "boolean",
3888 "typetext" : "<boolean>"
44660702
DM
3889 },
3890 "bwlimit" : {
3891 "default" : 0,
3892 "description" : "Limit I/O bandwidth (KBytes per second).",
3893 "minimum" : 0,
3894 "optional" : 1,
4bd7df8b 3895 "type" : "integer",
013dc89f 3896 "typetext" : "<integer> (0 - N)"
44660702 3897 },
5370fa8c
TL
3898 "comment" : {
3899 "description" : "Description for the Job.",
3900 "maxLength" : 512,
3901 "optional" : 1,
3902 "type" : "string",
3903 "typetext" : "<string>"
3904 },
44660702
DM
3905 "compress" : {
3906 "default" : "0",
3907 "description" : "Compress dump file.",
3908 "enum" : [
3909 "0",
3910 "1",
3911 "gzip",
c5aa7e14
TL
3912 "lzo",
3913 "zstd"
44660702
DM
3914 ],
3915 "optional" : 1,
3916 "type" : "string"
3917 },
3918 "dow" : {
3919 "default" : "mon,tue,wed,thu,fri,sat,sun",
3920 "description" : "Day of week selection.",
3921 "format" : "pve-day-of-week-list",
3922 "optional" : 1,
5370fa8c 3923 "requires" : "starttime",
013dc89f
DM
3924 "type" : "string",
3925 "typetext" : "<string>"
44660702
DM
3926 },
3927 "dumpdir" : {
3928 "description" : "Store resulting files to specified directory.",
3929 "optional" : 1,
013dc89f
DM
3930 "type" : "string",
3931 "typetext" : "<string>"
44660702
DM
3932 },
3933 "enabled" : {
3934 "default" : "1",
3935 "description" : "Enable or disable the job.",
3936 "optional" : 1,
013dc89f
DM
3937 "type" : "boolean",
3938 "typetext" : "<boolean>"
44660702
DM
3939 },
3940 "exclude" : {
3941 "description" : "Exclude specified guest systems (assumes --all)",
3942 "format" : "pve-vmid-list",
3943 "optional" : 1,
013dc89f
DM
3944 "type" : "string",
3945 "typetext" : "<string>"
44660702
DM
3946 },
3947 "exclude-path" : {
d2656385 3948 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
44660702
DM
3949 "format" : "string-alist",
3950 "optional" : 1,
013dc89f
DM
3951 "type" : "string",
3952 "typetext" : "<string>"
44660702 3953 },
5370fa8c
TL
3954 "id" : {
3955 "description" : "Job ID (will be autogenerated).",
3956 "format" : "pve-configid",
3957 "optional" : 1,
3958 "type" : "string",
3959 "typetext" : "<string>"
3960 },
44660702
DM
3961 "ionice" : {
3962 "default" : 7,
3963 "description" : "Set CFQ ionice priority.",
3964 "maximum" : 8,
3965 "minimum" : 0,
3966 "optional" : 1,
4bd7df8b 3967 "type" : "integer",
013dc89f 3968 "typetext" : "<integer> (0 - 8)"
44660702
DM
3969 },
3970 "lockwait" : {
3971 "default" : 180,
3972 "description" : "Maximal time to wait for the global lock (minutes).",
3973 "minimum" : 0,
3974 "optional" : 1,
4bd7df8b 3975 "type" : "integer",
013dc89f 3976 "typetext" : "<integer> (0 - N)"
44660702
DM
3977 },
3978 "mailnotification" : {
3979 "default" : "always",
3980 "description" : "Specify when to send an email",
3981 "enum" : [
3982 "always",
3983 "failure"
3984 ],
3985 "optional" : 1,
3986 "type" : "string"
3987 },
3988 "mailto" : {
d2656385
TL
3989 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
3990 "format" : "email-or-username-list",
44660702 3991 "optional" : 1,
013dc89f
DM
3992 "type" : "string",
3993 "typetext" : "<string>"
44660702
DM
3994 },
3995 "maxfiles" : {
0695fdaf 3996 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
3997 "minimum" : 1,
3998 "optional" : 1,
4bd7df8b 3999 "type" : "integer",
013dc89f 4000 "typetext" : "<integer> (1 - N)"
44660702
DM
4001 },
4002 "mode" : {
4003 "default" : "snapshot",
4004 "description" : "Backup mode.",
4005 "enum" : [
4006 "snapshot",
4007 "suspend",
4008 "stop"
4009 ],
4010 "optional" : 1,
4011 "type" : "string"
4012 },
4013 "node" : {
4014 "description" : "Only run if executed on this node.",
4015 "format" : "pve-node",
4016 "optional" : 1,
013dc89f
DM
4017 "type" : "string",
4018 "typetext" : "<string>"
44660702 4019 },
7af2edf9
TL
4020 "notes-template" : {
4021 "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.",
4022 "optional" : 1,
4023 "requires" : "storage",
4024 "type" : "string",
4025 "typetext" : "<string>"
4026 },
44660702
DM
4027 "pigz" : {
4028 "default" : 0,
4029 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
4030 "optional" : 1,
013dc89f
DM
4031 "type" : "integer",
4032 "typetext" : "<integer>"
44660702 4033 },
9226ccbc
TL
4034 "pool" : {
4035 "description" : "Backup all known guest systems included in the specified pool.",
4036 "optional" : 1,
4037 "type" : "string",
4038 "typetext" : "<string>"
4039 },
7af2edf9
TL
4040 "protected" : {
4041 "description" : "If true, mark backup(s) as protected.",
4042 "optional" : 1,
4043 "requires" : "storage",
4044 "type" : "boolean",
4045 "typetext" : "<boolean>"
4046 },
739d4d64 4047 "prune-backups" : {
0695fdaf 4048 "default" : "keep-all=1",
739d4d64
TL
4049 "description" : "Use these retention options instead of those from the storage configuration.",
4050 "format" : "prune-backups",
4051 "optional" : 1,
4052 "type" : "string",
4772952b 4053 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 4054 },
44660702
DM
4055 "quiet" : {
4056 "default" : 0,
4057 "description" : "Be quiet.",
4058 "optional" : 1,
013dc89f
DM
4059 "type" : "boolean",
4060 "typetext" : "<boolean>"
44660702
DM
4061 },
4062 "remove" : {
4063 "default" : 1,
0695fdaf 4064 "description" : "Prune older backups according to 'prune-backups'.",
44660702 4065 "optional" : 1,
013dc89f
DM
4066 "type" : "boolean",
4067 "typetext" : "<boolean>"
44660702 4068 },
5370fa8c
TL
4069 "schedule" : {
4070 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
4071 "format" : "pve-calendar-event",
4072 "maxLength" : 128,
4073 "optional" : 1,
4074 "type" : "string",
4075 "typetext" : "<string>"
4076 },
44660702
DM
4077 "script" : {
4078 "description" : "Use specified hook script.",
4079 "optional" : 1,
013dc89f
DM
4080 "type" : "string",
4081 "typetext" : "<string>"
44660702 4082 },
44660702
DM
4083 "starttime" : {
4084 "description" : "Job Start time.",
5370fa8c 4085 "optional" : 1,
44660702
DM
4086 "pattern" : "\\d{1,2}:\\d{1,2}",
4087 "type" : "string",
4088 "typetext" : "HH:MM"
4089 },
4090 "stdexcludes" : {
4091 "default" : 1,
4092 "description" : "Exclude temporary files and logs.",
4093 "optional" : 1,
013dc89f
DM
4094 "type" : "boolean",
4095 "typetext" : "<boolean>"
44660702
DM
4096 },
4097 "stop" : {
4098 "default" : 0,
1e3f8156 4099 "description" : "Stop running backup jobs on this host.",
44660702 4100 "optional" : 1,
013dc89f
DM
4101 "type" : "boolean",
4102 "typetext" : "<boolean>"
44660702
DM
4103 },
4104 "stopwait" : {
4105 "default" : 10,
4106 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
4107 "minimum" : 0,
4108 "optional" : 1,
4bd7df8b 4109 "type" : "integer",
013dc89f 4110 "typetext" : "<integer> (0 - N)"
44660702
DM
4111 },
4112 "storage" : {
4113 "description" : "Store resulting file to this storage.",
4114 "format" : "pve-storage-id",
4115 "optional" : 1,
013dc89f
DM
4116 "type" : "string",
4117 "typetext" : "<string>"
44660702
DM
4118 },
4119 "tmpdir" : {
4120 "description" : "Store temporary files to specified directory.",
4121 "optional" : 1,
013dc89f
DM
4122 "type" : "string",
4123 "typetext" : "<string>"
44660702
DM
4124 },
4125 "vmid" : {
4126 "description" : "The ID of the guest system you want to backup.",
4127 "format" : "pve-vmid-list",
4128 "optional" : 1,
013dc89f
DM
4129 "type" : "string",
4130 "typetext" : "<string>"
c5aa7e14
TL
4131 },
4132 "zstd" : {
4133 "default" : 1,
4134 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
4135 "optional" : 1,
4136 "type" : "integer",
4137 "typetext" : "<integer>"
44660702
DM
4138 }
4139 }
4140 },
4141 "permissions" : {
4142 "check" : [
4143 "perm",
4144 "/",
4145 [
4146 "Sys.Modify"
4147 ]
de0983cb
DM
4148 ],
4149 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
44660702
DM
4150 },
4151 "protected" : 1,
4152 "returns" : {
4153 "type" : "null"
4154 }
4155 }
4156 },
4157 "leaf" : 0,
4158 "path" : "/cluster/backup",
4159 "text" : "backup"
4160 },
04d22a9f
TL
4161 {
4162 "children" : [
4163 {
4164 "info" : {
4165 "GET" : {
4166 "allowtoken" : 1,
4167 "description" : "Shows all guests which are not covered by any backup job.",
4168 "method" : "GET",
4169 "name" : "get_guests_not_in_backup",
4170 "parameters" : {
4171 "additionalProperties" : 0
4172 },
4173 "permissions" : {
4174 "check" : [
4175 "perm",
4176 "/",
4177 [
4178 "Sys.Audit"
4179 ]
4180 ]
4181 },
4182 "protected" : 1,
4183 "returns" : {
4184 "description" : "Contains the guest objects.",
4185 "items" : {
4186 "properties" : {
4187 "name" : {
4188 "description" : "Name of the guest",
4189 "optional" : 1,
4190 "type" : "string"
4191 },
4192 "type" : {
4193 "description" : "Type of the guest.",
4194 "enum" : [
4195 "qemu",
4196 "lxc"
4197 ],
4198 "type" : "string"
4199 },
4200 "vmid" : {
4201 "description" : "VMID of the guest.",
4202 "type" : "integer"
4203 }
4204 },
4205 "type" : "object"
4206 },
4207 "type" : "array"
4208 }
4209 }
4210 },
4211 "leaf" : 1,
34f3e481
TL
4212 "path" : "/cluster/backup-info/not-backed-up",
4213 "text" : "not-backed-up"
04d22a9f
TL
4214 }
4215 ],
4216 "info" : {
4217 "GET" : {
4218 "allowtoken" : 1,
34f3e481 4219 "description" : "Index for backup info related endpoints",
04d22a9f 4220 "method" : "GET",
34f3e481 4221 "name" : "index",
04d22a9f
TL
4222 "parameters" : {
4223 "additionalProperties" : 0
4224 },
04d22a9f 4225 "returns" : {
34f3e481
TL
4226 "description" : "Directory index.",
4227 "items" : {
4228 "properties" : {
4229 "subdir" : {
4230 "description" : "API sub-directory endpoint",
4231 "type" : "string"
4232 }
4233 },
4234 "type" : "object"
4235 },
4236 "links" : [
4237 {
4238 "href" : "{subdir}",
4239 "rel" : "child"
4240 }
4241 ],
4242 "type" : "array"
04d22a9f
TL
4243 }
4244 }
4245 },
4246 "leaf" : 0,
34f3e481
TL
4247 "path" : "/cluster/backup-info",
4248 "text" : "backup-info"
04d22a9f 4249 },
44660702
DM
4250 {
4251 "children" : [
4252 {
4253 "children" : [
4254 {
4255 "children" : [
56122987 4256 {
56122987
DM
4257 "info" : {
4258 "POST" : {
e9cd3bd4 4259 "allowtoken" : 1,
44660702
DM
4260 "description" : "Request resource migration (online) to another node.",
4261 "method" : "POST",
4262 "name" : "migrate",
56122987 4263 "parameters" : {
7aacca6f 4264 "additionalProperties" : 0,
56122987
DM
4265 "properties" : {
4266 "node" : {
95895385 4267 "description" : "Target node.",
44660702 4268 "format" : "pve-node",
013dc89f
DM
4269 "type" : "string",
4270 "typetext" : "<string>"
56122987
DM
4271 },
4272 "sid" : {
44660702 4273 "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 4274 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4275 "type" : "string",
44660702 4276 "typetext" : "<type>:<name>"
56122987 4277 }
7aacca6f 4278 }
56122987 4279 },
56122987
DM
4280 "permissions" : {
4281 "check" : [
4282 "perm",
4283 "/",
4284 [
4285 "Sys.Console"
4286 ]
4287 ]
4288 },
7aacca6f 4289 "protected" : 1,
7aacca6f
DM
4290 "returns" : {
4291 "type" : "null"
44660702 4292 }
56122987 4293 }
44660702
DM
4294 },
4295 "leaf" : 1,
4296 "path" : "/cluster/ha/resources/{sid}/migrate",
4297 "text" : "migrate"
4298 },
4299 {
4300 "info" : {
4301 "POST" : {
e9cd3bd4 4302 "allowtoken" : 1,
44660702
DM
4303 "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
4304 "method" : "POST",
4305 "name" : "relocate",
4306 "parameters" : {
4307 "additionalProperties" : 0,
4308 "properties" : {
4309 "node" : {
95895385 4310 "description" : "Target node.",
44660702 4311 "format" : "pve-node",
013dc89f
DM
4312 "type" : "string",
4313 "typetext" : "<string>"
44660702
DM
4314 },
4315 "sid" : {
4316 "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).",
4317 "format" : "pve-ha-resource-or-vm-id",
4318 "type" : "string",
4319 "typetext" : "<type>:<name>"
4320 }
4321 }
4322 },
4323 "permissions" : {
4324 "check" : [
4325 "perm",
4326 "/",
4327 [
4328 "Sys.Console"
4329 ]
4330 ]
4331 },
4332 "protected" : 1,
4333 "returns" : {
4334 "type" : "null"
4335 }
4336 }
4337 },
4338 "leaf" : 1,
4339 "path" : "/cluster/ha/resources/{sid}/relocate",
4340 "text" : "relocate"
4341 }
4342 ],
4343 "info" : {
4344 "DELETE" : {
e9cd3bd4 4345 "allowtoken" : 1,
44660702
DM
4346 "description" : "Delete resource configuration.",
4347 "method" : "DELETE",
4348 "name" : "delete",
7aacca6f 4349 "parameters" : {
44660702 4350 "additionalProperties" : 0,
7aacca6f
DM
4351 "properties" : {
4352 "sid" : {
4353 "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 4354 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4355 "type" : "string",
44660702
DM
4356 "typetext" : "<type>:<name>"
4357 }
4358 }
4359 },
4360 "permissions" : {
4361 "check" : [
4362 "perm",
4363 "/",
4364 [
4365 "Sys.Console"
4366 ]
4367 ]
4368 },
4369 "protected" : 1,
4370 "returns" : {
4371 "type" : "null"
4372 }
4373 },
4374 "GET" : {
e9cd3bd4 4375 "allowtoken" : 1,
44660702
DM
4376 "description" : "Read resource configuration.",
4377 "method" : "GET",
4378 "name" : "read",
4379 "parameters" : {
4380 "additionalProperties" : 0,
4381 "properties" : {
4382 "sid" : {
4383 "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 4384 "format" : "pve-ha-resource-or-vm-id",
44660702 4385 "type" : "string",
7aacca6f
DM
4386 "typetext" : "<type>:<name>"
4387 }
44660702 4388 }
7aacca6f
DM
4389 },
4390 "permissions" : {
4391 "check" : [
4392 "perm",
4393 "/",
4394 [
4395 "Sys.Audit"
4396 ]
4397 ]
4398 },
5f26e15b
TL
4399 "returns" : {
4400 "properties" : {
4401 "comment" : {
4402 "description" : "Description.",
4403 "optional" : 1,
4404 "type" : "string"
4405 },
4406 "digest" : {
4407 "description" : "Can be used to prevent concurrent modifications.",
4408 "type" : "string"
4409 },
4410 "group" : {
4411 "description" : "The HA group identifier.",
4412 "format" : "pve-configid",
4413 "optional" : 1,
4414 "type" : "string"
4415 },
4416 "max_relocate" : {
4417 "description" : "Maximal number of service relocate tries when a service failes to start.",
4418 "optional" : 1,
4419 "type" : "integer"
4420 },
4421 "max_restart" : {
4422 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4423 "optional" : 1,
4424 "type" : "integer"
4425 },
4426 "sid" : {
4427 "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).",
4428 "format" : "pve-ha-resource-or-vm-id",
4429 "type" : "string",
4430 "typetext" : "<type>:<name>"
4431 },
4432 "state" : {
4433 "description" : "Requested resource state.",
4434 "enum" : [
4435 "started",
4436 "stopped",
4437 "enabled",
4438 "disabled",
4439 "ignored"
4440 ],
4441 "optional" : 1,
4442 "type" : "string"
4443 },
4444 "type" : {
4445 "description" : "The type of the resources.",
4446 "type" : "string"
4447 }
4448 },
4449 "type" : "object"
4450 }
7aacca6f 4451 },
56122987 4452 "PUT" : {
e9cd3bd4 4453 "allowtoken" : 1,
44660702 4454 "description" : "Update resource configuration.",
7aacca6f 4455 "method" : "PUT",
44660702 4456 "name" : "update",
56122987
DM
4457 "parameters" : {
4458 "additionalProperties" : 0,
4459 "properties" : {
44660702
DM
4460 "comment" : {
4461 "description" : "Description.",
4462 "maxLength" : 4096,
56122987 4463 "optional" : 1,
013dc89f
DM
4464 "type" : "string",
4465 "typetext" : "<string>"
56122987 4466 },
7aacca6f
DM
4467 "delete" : {
4468 "description" : "A list of settings you want to delete.",
7aacca6f 4469 "format" : "pve-configid-list",
44660702
DM
4470 "maxLength" : 4096,
4471 "optional" : 1,
013dc89f
DM
4472 "type" : "string",
4473 "typetext" : "<string>"
56122987 4474 },
44660702
DM
4475 "digest" : {
4476 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4477 "maxLength" : 40,
4478 "optional" : 1,
013dc89f
DM
4479 "type" : "string",
4480 "typetext" : "<string>"
56122987 4481 },
44660702
DM
4482 "group" : {
4483 "description" : "The HA group identifier.",
4484 "format" : "pve-configid",
7aacca6f 4485 "optional" : 1,
013dc89f
DM
4486 "type" : "string",
4487 "typetext" : "<string>"
56122987
DM
4488 },
4489 "max_relocate" : {
7aacca6f 4490 "default" : 1,
56122987 4491 "description" : "Maximal number of service relocate tries when a service failes to start.",
44660702
DM
4492 "minimum" : 0,
4493 "optional" : 1,
4bd7df8b 4494 "type" : "integer",
013dc89f 4495 "typetext" : "<integer> (0 - N)"
7aacca6f 4496 },
44660702
DM
4497 "max_restart" : {
4498 "default" : 1,
4499 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4500 "minimum" : 0,
7aacca6f 4501 "optional" : 1,
4bd7df8b 4502 "type" : "integer",
013dc89f 4503 "typetext" : "<integer> (0 - N)"
44660702
DM
4504 },
4505 "sid" : {
4506 "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).",
4507 "format" : "pve-ha-resource-or-vm-id",
4508 "type" : "string",
4509 "typetext" : "<type>:<name>"
7aacca6f
DM
4510 },
4511 "state" : {
f13c1238
DM
4512 "default" : "started",
4513 "description" : "Requested resource state.",
7aacca6f 4514 "enum" : [
f13c1238
DM
4515 "started",
4516 "stopped",
7aacca6f 4517 "enabled",
2489d6df
WB
4518 "disabled",
4519 "ignored"
7aacca6f 4520 ],
7aacca6f 4521 "optional" : 1,
f13c1238 4522 "type" : "string",
2489d6df 4523 "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 4524 }
44660702
DM
4525 },
4526 "type" : "object"
56122987 4527 },
56122987
DM
4528 "permissions" : {
4529 "check" : [
4530 "perm",
4531 "/",
4532 [
4533 "Sys.Console"
4534 ]
4535 ]
4536 },
7aacca6f 4537 "protected" : 1,
56122987
DM
4538 "returns" : {
4539 "type" : "null"
4540 }
4541 }
4542 },
44660702 4543 "leaf" : 0,
7aacca6f 4544 "path" : "/cluster/ha/resources/{sid}",
44660702 4545 "text" : "{sid}"
56122987
DM
4546 }
4547 ],
7aacca6f
DM
4548 "info" : {
4549 "GET" : {
e9cd3bd4 4550 "allowtoken" : 1,
44660702
DM
4551 "description" : "List HA resources.",
4552 "method" : "GET",
4553 "name" : "index",
7aacca6f 4554 "parameters" : {
44660702
DM
4555 "additionalProperties" : 0,
4556 "properties" : {
4557 "type" : {
4558 "description" : "Only list resources of specific type",
4559 "enum" : [
4560 "ct",
4561 "vm"
4562 ],
4563 "optional" : 1,
4564 "type" : "string"
4565 }
4566 }
7aacca6f 4567 },
7aacca6f
DM
4568 "permissions" : {
4569 "check" : [
4570 "perm",
4571 "/",
4572 [
4573 "Sys.Audit"
4574 ]
4575 ]
4576 },
7aacca6f 4577 "returns" : {
7aacca6f 4578 "items" : {
7aacca6f 4579 "properties" : {
44660702 4580 "sid" : {
7aacca6f
DM
4581 "type" : "string"
4582 }
44660702
DM
4583 },
4584 "type" : "object"
7aacca6f
DM
4585 },
4586 "links" : [
4587 {
44660702 4588 "href" : "{sid}",
7aacca6f
DM
4589 "rel" : "child"
4590 }
44660702
DM
4591 ],
4592 "type" : "array"
7aacca6f
DM
4593 }
4594 },
4595 "POST" : {
e9cd3bd4 4596 "allowtoken" : 1,
44660702 4597 "description" : "Create a new HA resource.",
7aacca6f 4598 "method" : "POST",
44660702 4599 "name" : "create",
7aacca6f 4600 "parameters" : {
44660702 4601 "additionalProperties" : 0,
7aacca6f
DM
4602 "properties" : {
4603 "comment" : {
7aacca6f 4604 "description" : "Description.",
44660702 4605 "maxLength" : 4096,
7aacca6f 4606 "optional" : 1,
013dc89f
DM
4607 "type" : "string",
4608 "typetext" : "<string>"
7aacca6f 4609 },
44660702
DM
4610 "group" : {
4611 "description" : "The HA group identifier.",
4612 "format" : "pve-configid",
7aacca6f 4613 "optional" : 1,
013dc89f
DM
4614 "type" : "string",
4615 "typetext" : "<string>"
7aacca6f 4616 },
44660702
DM
4617 "max_relocate" : {
4618 "default" : 1,
4619 "description" : "Maximal number of service relocate tries when a service failes to start.",
4620 "minimum" : 0,
7aacca6f 4621 "optional" : 1,
4bd7df8b 4622 "type" : "integer",
013dc89f 4623 "typetext" : "<integer> (0 - N)"
7aacca6f 4624 },
44660702
DM
4625 "max_restart" : {
4626 "default" : 1,
4627 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4628 "minimum" : 0,
4629 "optional" : 1,
4bd7df8b 4630 "type" : "integer",
013dc89f 4631 "typetext" : "<integer> (0 - N)"
44660702
DM
4632 },
4633 "sid" : {
4634 "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).",
4635 "format" : "pve-ha-resource-or-vm-id",
4636 "type" : "string",
4637 "typetext" : "<type>:<name>"
4638 },
4639 "state" : {
f13c1238
DM
4640 "default" : "started",
4641 "description" : "Requested resource state.",
7aacca6f 4642 "enum" : [
f13c1238
DM
4643 "started",
4644 "stopped",
44660702 4645 "enabled",
2489d6df
WB
4646 "disabled",
4647 "ignored"
7aacca6f 4648 ],
7aacca6f 4649 "optional" : 1,
f13c1238 4650 "type" : "string",
2489d6df 4651 "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 4652 },
44660702
DM
4653 "type" : {
4654 "description" : "Resource type.",
4655 "enum" : [
4656 "ct",
4657 "vm"
4658 ],
4659 "optional" : 1,
4660 "type" : "string"
4661 }
7aacca6f 4662 },
44660702 4663 "type" : "object"
7aacca6f
DM
4664 },
4665 "permissions" : {
4666 "check" : [
4667 "perm",
4668 "/",
4669 [
4670 "Sys.Console"
4671 ]
4672 ]
4673 },
44660702
DM
4674 "protected" : 1,
4675 "returns" : {
4676 "type" : "null"
4677 }
7aacca6f
DM
4678 }
4679 },
44660702
DM
4680 "leaf" : 0,
4681 "path" : "/cluster/ha/resources",
4682 "text" : "resources"
4683 },
4684 {
56122987
DM
4685 "children" : [
4686 {
56122987 4687 "info" : {
44660702 4688 "DELETE" : {
e9cd3bd4 4689 "allowtoken" : 1,
44660702
DM
4690 "description" : "Delete ha group configuration.",
4691 "method" : "DELETE",
4692 "name" : "delete",
56122987 4693 "parameters" : {
7aacca6f 4694 "additionalProperties" : 0,
56122987 4695 "properties" : {
7aacca6f
DM
4696 "group" : {
4697 "description" : "The HA group identifier.",
44660702 4698 "format" : "pve-configid",
013dc89f
DM
4699 "type" : "string",
4700 "typetext" : "<string>"
56122987 4701 }
7aacca6f 4702 }
56122987 4703 },
56122987
DM
4704 "permissions" : {
4705 "check" : [
4706 "perm",
4707 "/",
4708 [
7aacca6f 4709 "Sys.Console"
56122987
DM
4710 ]
4711 ]
4712 },
44660702 4713 "protected" : 1,
7aacca6f
DM
4714 "returns" : {
4715 "type" : "null"
56122987
DM
4716 }
4717 },
44660702 4718 "GET" : {
e9cd3bd4 4719 "allowtoken" : 1,
44660702
DM
4720 "description" : "Read ha group configuration.",
4721 "method" : "GET",
4722 "name" : "read",
56122987 4723 "parameters" : {
44660702 4724 "additionalProperties" : 0,
56122987
DM
4725 "properties" : {
4726 "group" : {
4727 "description" : "The HA group identifier.",
44660702 4728 "format" : "pve-configid",
013dc89f
DM
4729 "type" : "string",
4730 "typetext" : "<string>"
56122987 4731 }
44660702 4732 }
56122987 4733 },
56122987
DM
4734 "permissions" : {
4735 "check" : [
4736 "perm",
4737 "/",
4738 [
44660702 4739 "Sys.Audit"
56122987
DM
4740 ]
4741 ]
4742 },
44660702 4743 "returns" : {}
7aacca6f 4744 },
44660702 4745 "PUT" : {
e9cd3bd4 4746 "allowtoken" : 1,
44660702
DM
4747 "description" : "Update ha group configuration.",
4748 "method" : "PUT",
4749 "name" : "update",
7aacca6f 4750 "parameters" : {
44660702 4751 "additionalProperties" : 0,
7aacca6f 4752 "properties" : {
44660702
DM
4753 "comment" : {
4754 "description" : "Description.",
4755 "maxLength" : 4096,
4756 "optional" : 1,
013dc89f
DM
4757 "type" : "string",
4758 "typetext" : "<string>"
44660702
DM
4759 },
4760 "delete" : {
4761 "description" : "A list of settings you want to delete.",
4762 "format" : "pve-configid-list",
4763 "maxLength" : 4096,
4764 "optional" : 1,
013dc89f
DM
4765 "type" : "string",
4766 "typetext" : "<string>"
44660702
DM
4767 },
4768 "digest" : {
4769 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4770 "maxLength" : 40,
4771 "optional" : 1,
013dc89f
DM
4772 "type" : "string",
4773 "typetext" : "<string>"
44660702 4774 },
7aacca6f
DM
4775 "group" : {
4776 "description" : "The HA group identifier.",
44660702 4777 "format" : "pve-configid",
013dc89f
DM
4778 "type" : "string",
4779 "typetext" : "<string>"
44660702
DM
4780 },
4781 "nodes" : {
f13c1238 4782 "description" : "List of cluster node names with optional priority.",
44660702
DM
4783 "format" : "pve-ha-group-node-list",
4784 "optional" : 1,
7aacca6f 4785 "type" : "string",
f13c1238
DM
4786 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4787 "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
4788 },
4789 "nofailback" : {
4790 "default" : 0,
4791 "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.",
4792 "optional" : 1,
013dc89f
DM
4793 "type" : "boolean",
4794 "typetext" : "<boolean>"
44660702
DM
4795 },
4796 "restricted" : {
4797 "default" : 0,
c4808e75 4798 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4799 "optional" : 1,
013dc89f 4800 "type" : "boolean",
c4808e75
DM
4801 "typetext" : "<boolean>",
4802 "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
4803 }
4804 },
44660702 4805 "type" : "object"
7aacca6f 4806 },
7aacca6f
DM
4807 "permissions" : {
4808 "check" : [
4809 "perm",
4810 "/",
4811 [
44660702 4812 "Sys.Console"
7aacca6f
DM
4813 ]
4814 ]
4815 },
44660702
DM
4816 "protected" : 1,
4817 "returns" : {
4818 "type" : "null"
4819 }
56122987
DM
4820 }
4821 },
4822 "leaf" : 1,
44660702
DM
4823 "path" : "/cluster/ha/groups/{group}",
4824 "text" : "{group}"
56122987 4825 }
44660702
DM
4826 ],
4827 "info" : {
4828 "GET" : {
e9cd3bd4 4829 "allowtoken" : 1,
44660702
DM
4830 "description" : "Get HA groups.",
4831 "method" : "GET",
4832 "name" : "index",
4833 "parameters" : {
4834 "additionalProperties" : 0
4835 },
4836 "permissions" : {
4837 "check" : [
4838 "perm",
4839 "/",
4840 [
4841 "Sys.Audit"
4842 ]
4843 ]
4844 },
4845 "returns" : {
4846 "items" : {
4847 "properties" : {
4848 "group" : {
4849 "type" : "string"
4850 }
4851 },
4852 "type" : "object"
4853 },
4854 "links" : [
4855 {
4856 "href" : "{group}",
4857 "rel" : "child"
4858 }
4859 ],
4860 "type" : "array"
4861 }
4862 },
4863 "POST" : {
e9cd3bd4 4864 "allowtoken" : 1,
44660702
DM
4865 "description" : "Create a new HA group.",
4866 "method" : "POST",
4867 "name" : "create",
4868 "parameters" : {
4869 "additionalProperties" : 0,
4870 "properties" : {
4871 "comment" : {
4872 "description" : "Description.",
4873 "maxLength" : 4096,
4874 "optional" : 1,
013dc89f
DM
4875 "type" : "string",
4876 "typetext" : "<string>"
44660702
DM
4877 },
4878 "group" : {
4879 "description" : "The HA group identifier.",
4880 "format" : "pve-configid",
013dc89f
DM
4881 "type" : "string",
4882 "typetext" : "<string>"
44660702
DM
4883 },
4884 "nodes" : {
f13c1238 4885 "description" : "List of cluster node names with optional priority.",
44660702
DM
4886 "format" : "pve-ha-group-node-list",
4887 "optional" : 0,
4888 "type" : "string",
f13c1238
DM
4889 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4890 "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
4891 },
4892 "nofailback" : {
4893 "default" : 0,
4894 "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.",
4895 "optional" : 1,
013dc89f
DM
4896 "type" : "boolean",
4897 "typetext" : "<boolean>"
44660702
DM
4898 },
4899 "restricted" : {
4900 "default" : 0,
c4808e75 4901 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4902 "optional" : 1,
013dc89f 4903 "type" : "boolean",
c4808e75
DM
4904 "typetext" : "<boolean>",
4905 "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
4906 },
4907 "type" : {
4908 "description" : "Group type.",
4909 "enum" : [
4910 "group"
4911 ],
4912 "optional" : 1,
4913 "type" : "string"
4914 }
4915 },
4916 "type" : "object"
4917 },
4918 "permissions" : {
4919 "check" : [
4920 "perm",
4921 "/",
4922 [
4923 "Sys.Console"
4924 ]
4925 ]
4926 },
4927 "protected" : 1,
4928 "returns" : {
4929 "type" : "null"
4930 }
4931 }
4932 },
4933 "leaf" : 0,
4934 "path" : "/cluster/ha/groups",
4935 "text" : "groups"
7aacca6f
DM
4936 },
4937 {
7aacca6f
DM
4938 "children" : [
4939 {
4940 "info" : {
4941 "GET" : {
e9cd3bd4 4942 "allowtoken" : 1,
56122987 4943 "description" : "Get HA manger status.",
44660702 4944 "method" : "GET",
7aacca6f 4945 "name" : "status",
44660702
DM
4946 "parameters" : {
4947 "additionalProperties" : 0
4948 },
56122987
DM
4949 "permissions" : {
4950 "check" : [
4951 "perm",
4952 "/",
4953 [
4954 "Sys.Audit"
4955 ]
4956 ]
7aacca6f 4957 },
44660702
DM
4958 "returns" : {
4959 "type" : "array"
56122987
DM
4960 }
4961 }
7aacca6f 4962 },
7aacca6f 4963 "leaf" : 1,
44660702
DM
4964 "path" : "/cluster/ha/status/current",
4965 "text" : "current"
56122987
DM
4966 },
4967 {
4968 "info" : {
4969 "GET" : {
e9cd3bd4 4970 "allowtoken" : 1,
7aacca6f 4971 "description" : "Get full HA manger status, including LRM status.",
44660702
DM
4972 "method" : "GET",
4973 "name" : "manager_status",
7aacca6f
DM
4974 "parameters" : {
4975 "additionalProperties" : 0
4976 },
56122987
DM
4977 "permissions" : {
4978 "check" : [
4979 "perm",
4980 "/",
4981 [
4982 "Sys.Audit"
4983 ]
4984 ]
44660702
DM
4985 },
4986 "returns" : {
4987 "type" : "object"
7aacca6f 4988 }
56122987
DM
4989 }
4990 },
56122987 4991 "leaf" : 1,
44660702
DM
4992 "path" : "/cluster/ha/status/manager_status",
4993 "text" : "manager_status"
56122987
DM
4994 }
4995 ],
56122987
DM
4996 "info" : {
4997 "GET" : {
e9cd3bd4 4998 "allowtoken" : 1,
44660702 4999 "description" : "Directory index.",
7aacca6f 5000 "method" : "GET",
44660702
DM
5001 "name" : "index",
5002 "parameters" : {
5003 "additionalProperties" : 0
5004 },
5005 "permissions" : {
5006 "user" : "all"
5007 },
56122987 5008 "returns" : {
56122987
DM
5009 "items" : {
5010 "properties" : {},
5011 "type" : "object"
5012 },
5013 "links" : [
5014 {
44660702
DM
5015 "href" : "{name}",
5016 "rel" : "child"
56122987 5017 }
7aacca6f
DM
5018 ],
5019 "type" : "array"
44660702 5020 }
56122987 5021 }
7aacca6f 5022 },
44660702 5023 "leaf" : 0,
7aacca6f 5024 "path" : "/cluster/ha/status",
44660702 5025 "text" : "status"
56122987
DM
5026 }
5027 ],
56122987
DM
5028 "info" : {
5029 "GET" : {
e9cd3bd4 5030 "allowtoken" : 1,
7aacca6f 5031 "description" : "Directory index.",
44660702
DM
5032 "method" : "GET",
5033 "name" : "index",
5034 "parameters" : {
5035 "additionalProperties" : 0
5036 },
7aacca6f
DM
5037 "permissions" : {
5038 "check" : [
5039 "perm",
5040 "/",
5041 [
5042 "Sys.Audit"
5043 ]
5044 ]
5045 },
56122987 5046 "returns" : {
56122987 5047 "items" : {
7aacca6f
DM
5048 "properties" : {
5049 "id" : {
5050 "type" : "string"
5051 }
44660702
DM
5052 },
5053 "type" : "object"
7aacca6f
DM
5054 },
5055 "links" : [
5056 {
5057 "href" : "{id}",
5058 "rel" : "child"
5059 }
44660702
DM
5060 ],
5061 "type" : "array"
7aacca6f
DM
5062 }
5063 }
44660702
DM
5064 },
5065 "leaf" : 0,
5066 "path" : "/cluster/ha",
5067 "text" : "ha"
7aacca6f 5068 },
a9a8e3d1
DM
5069 {
5070 "children" : [
c5aa7e14
TL
5071 {
5072 "children" : [
5073 {
5074 "info" : {
5075 "DELETE" : {
5076 "allowtoken" : 1,
5077 "description" : "Delete ACME plugin configuration.",
5078 "method" : "DELETE",
5079 "name" : "delete_plugin",
5080 "parameters" : {
5081 "additionalProperties" : 0,
5082 "properties" : {
5083 "id" : {
5084 "description" : "Unique identifier for ACME plugin instance.",
5085 "format" : "pve-configid",
5086 "type" : "string",
5087 "typetext" : "<string>"
5088 }
5089 }
5090 },
5091 "permissions" : {
5092 "check" : [
5093 "perm",
5094 "/",
5095 [
5096 "Sys.Modify"
5097 ]
5098 ]
5099 },
5100 "protected" : 1,
5101 "returns" : {
5102 "type" : "null"
5103 }
5104 },
5105 "GET" : {
5106 "allowtoken" : 1,
5107 "description" : "Get ACME plugin configuration.",
5108 "method" : "GET",
5109 "name" : "get_plugin_config",
5110 "parameters" : {
5111 "additionalProperties" : 0,
5112 "properties" : {
5113 "id" : {
5114 "description" : "Unique identifier for ACME plugin instance.",
5115 "format" : "pve-configid",
5116 "type" : "string",
5117 "typetext" : "<string>"
5118 }
5119 }
5120 },
5121 "permissions" : {
5122 "check" : [
5123 "perm",
5124 "/",
5125 [
5126 "Sys.Modify"
5127 ]
5128 ]
5129 },
5130 "protected" : 1,
5131 "returns" : {
5132 "type" : "object"
5133 }
5134 },
5135 "PUT" : {
5136 "allowtoken" : 1,
5137 "description" : "Update ACME plugin configuration.",
5138 "method" : "PUT",
5139 "name" : "update_plugin",
5140 "parameters" : {
5141 "additionalProperties" : 0,
5142 "properties" : {
5143 "api" : {
5144 "description" : "API plugin name",
5145 "enum" : [
d2656385 5146 "1984hosting",
c5aa7e14
TL
5147 "acmedns",
5148 "acmeproxy",
5149 "active24",
5150 "ad",
5151 "ali",
d2656385
TL
5152 "anx",
5153 "arvan",
e7084ef7 5154 "aurora",
c5aa7e14
TL
5155 "autodns",
5156 "aws",
5370fa8c 5157 "azion",
c5aa7e14
TL
5158 "azure",
5159 "cf",
5160 "clouddns",
5161 "cloudns",
5162 "cn",
5163 "conoha",
5164 "constellix",
5165 "cx",
5166 "cyon",
5167 "da",
5168 "ddnss",
5169 "desec",
ac70d7d1 5170 "df",
c5aa7e14
TL
5171 "dgon",
5172 "dnsimple",
5173 "do",
5174 "doapi",
5175 "domeneshop",
5176 "dp",
5177 "dpi",
5178 "dreamhost",
5179 "duckdns",
5180 "durabledns",
5181 "dyn",
5182 "dynu",
5183 "dynv6",
5184 "easydns",
d2656385 5185 "edgedns",
c5aa7e14
TL
5186 "euserv",
5187 "exoscale",
5188 "freedns",
5189 "gandi_livedns",
5190 "gcloud",
5191 "gd",
5192 "gdnsdk",
5193 "he",
d2656385 5194 "hetzner",
c5aa7e14
TL
5195 "hexonet",
5196 "hostingde",
d2656385 5197 "huaweicloud",
c5aa7e14 5198 "infoblox",
d2656385 5199 "infomaniak",
c5aa7e14
TL
5200 "internetbs",
5201 "inwx",
d2656385 5202 "ionos",
c5aa7e14
TL
5203 "ispconfig",
5204 "jd",
d2656385
TL
5205 "joker",
5206 "kappernet",
c5aa7e14
TL
5207 "kas",
5208 "kinghost",
5209 "knot",
5210 "leaseweb",
5211 "lexicon",
5212 "linode",
5213 "linode_v4",
5214 "loopia",
5215 "lua",
5216 "maradns",
5217 "me",
5218 "miab",
5219 "misaka",
5220 "myapi",
5221 "mydevil",
5222 "mydnsjp",
5223 "namecheap",
5224 "namecom",
5225 "namesilo",
5226 "nederhost",
5227 "neodigit",
5228 "netcup",
d2656385 5229 "netlify",
c5aa7e14 5230 "nic",
d2656385
TL
5231 "njalla",
5232 "nm",
c5aa7e14
TL
5233 "nsd",
5234 "nsone",
5235 "nsupdate",
5236 "nw",
5370fa8c 5237 "oci",
c5aa7e14
TL
5238 "one",
5239 "online",
5240 "openprovider",
d2656385 5241 "openstack",
c5aa7e14
TL
5242 "opnsense",
5243 "ovh",
5244 "pdns",
5245 "pleskxml",
5246 "pointhq",
e7084ef7 5247 "porkbun",
d2656385 5248 "rackcorp",
c5aa7e14
TL
5249 "rackspace",
5250 "rcode0",
5251 "regru",
d2656385 5252 "scaleway",
c5aa7e14
TL
5253 "schlundtech",
5254 "selectel",
5255 "servercow",
d2656385 5256 "simply",
c5aa7e14 5257 "tele3",
d2656385 5258 "transip",
c5aa7e14
TL
5259 "ultra",
5260 "unoeuro",
5261 "variomedia",
5370fa8c 5262 "veesp",
c5aa7e14
TL
5263 "vscale",
5264 "vultr",
e7084ef7 5265 "websupport",
d2656385 5266 "world4you",
c5aa7e14
TL
5267 "yandex",
5268 "zilore",
5269 "zone",
5270 "zonomi"
5271 ],
5272 "optional" : 1,
5273 "type" : "string"
5274 },
5275 "data" : {
5276 "description" : "DNS plugin data. (base64 encoded)",
5277 "optional" : 1,
5278 "type" : "string",
5279 "typetext" : "<string>"
5280 },
5281 "delete" : {
5282 "description" : "A list of settings you want to delete.",
5283 "format" : "pve-configid-list",
5284 "maxLength" : 4096,
5285 "optional" : 1,
5286 "type" : "string",
5287 "typetext" : "<string>"
5288 },
5289 "digest" : {
5290 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
5291 "maxLength" : 40,
5292 "optional" : 1,
5293 "type" : "string",
5294 "typetext" : "<string>"
5295 },
5296 "disable" : {
5297 "description" : "Flag to disable the config.",
5298 "optional" : 1,
5299 "type" : "boolean",
5300 "typetext" : "<boolean>"
5301 },
5302 "id" : {
5303 "description" : "ACME Plugin ID name",
5304 "format" : "pve-configid",
5305 "type" : "string",
5306 "typetext" : "<string>"
5307 },
5308 "nodes" : {
5309 "description" : "List of cluster node names.",
5310 "format" : "pve-node-list",
5311 "optional" : 1,
5312 "type" : "string",
5313 "typetext" : "<string>"
5314 },
5315 "validation-delay" : {
5316 "default" : 30,
5317 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5318 "maximum" : 172800,
5319 "minimum" : 0,
5320 "optional" : 1,
5321 "type" : "integer",
5322 "typetext" : "<integer> (0 - 172800)"
5323 }
5324 },
5325 "type" : "object"
5326 },
5327 "permissions" : {
5328 "check" : [
5329 "perm",
5330 "/",
5331 [
5332 "Sys.Modify"
5333 ]
5334 ]
5335 },
5336 "protected" : 1,
5337 "returns" : {
5338 "type" : "null"
5339 }
5340 }
5341 },
5342 "leaf" : 1,
5343 "path" : "/cluster/acme/plugins/{id}",
5344 "text" : "{id}"
5345 }
5346 ],
5347 "info" : {
5348 "GET" : {
5349 "allowtoken" : 1,
5350 "description" : "ACME plugin index.",
5351 "method" : "GET",
5352 "name" : "index",
5353 "parameters" : {
5354 "additionalProperties" : 0,
5355 "properties" : {
5356 "type" : {
5357 "description" : "Only list ACME plugins of a specific type",
5358 "enum" : [
5359 "dns",
5360 "standalone"
5361 ],
5362 "optional" : 1,
5363 "type" : "string"
5364 }
5365 }
5366 },
5367 "permissions" : {
5368 "check" : [
5369 "perm",
5370 "/",
5371 [
5372 "Sys.Modify"
5373 ]
5374 ]
5375 },
5376 "protected" : 1,
5377 "returns" : {
5378 "items" : {
5379 "properties" : {
5380 "plugin" : {
5381 "description" : "Unique identifier for ACME plugin instance.",
5382 "format" : "pve-configid",
5383 "type" : "string"
5384 }
5385 },
5386 "type" : "object"
5387 },
5388 "links" : [
5389 {
5390 "href" : "{plugin}",
5391 "rel" : "child"
5392 }
5393 ],
5394 "type" : "array"
5395 }
5396 },
5397 "POST" : {
5398 "allowtoken" : 1,
5399 "description" : "Add ACME plugin configuration.",
5400 "method" : "POST",
5401 "name" : "add_plugin",
5402 "parameters" : {
5403 "additionalProperties" : 0,
5404 "properties" : {
5405 "api" : {
5406 "description" : "API plugin name",
5407 "enum" : [
d2656385 5408 "1984hosting",
c5aa7e14
TL
5409 "acmedns",
5410 "acmeproxy",
5411 "active24",
5412 "ad",
5413 "ali",
d2656385
TL
5414 "anx",
5415 "arvan",
e7084ef7 5416 "aurora",
c5aa7e14
TL
5417 "autodns",
5418 "aws",
5370fa8c 5419 "azion",
c5aa7e14
TL
5420 "azure",
5421 "cf",
5422 "clouddns",
5423 "cloudns",
5424 "cn",
5425 "conoha",
5426 "constellix",
5427 "cx",
5428 "cyon",
5429 "da",
5430 "ddnss",
5431 "desec",
ac70d7d1 5432 "df",
c5aa7e14
TL
5433 "dgon",
5434 "dnsimple",
5435 "do",
5436 "doapi",
5437 "domeneshop",
5438 "dp",
5439 "dpi",
5440 "dreamhost",
5441 "duckdns",
5442 "durabledns",
5443 "dyn",
5444 "dynu",
5445 "dynv6",
5446 "easydns",
d2656385 5447 "edgedns",
c5aa7e14
TL
5448 "euserv",
5449 "exoscale",
5450 "freedns",
5451 "gandi_livedns",
5452 "gcloud",
5453 "gd",
5454 "gdnsdk",
5455 "he",
d2656385 5456 "hetzner",
c5aa7e14
TL
5457 "hexonet",
5458 "hostingde",
d2656385 5459 "huaweicloud",
c5aa7e14 5460 "infoblox",
d2656385 5461 "infomaniak",
c5aa7e14
TL
5462 "internetbs",
5463 "inwx",
d2656385 5464 "ionos",
c5aa7e14
TL
5465 "ispconfig",
5466 "jd",
d2656385
TL
5467 "joker",
5468 "kappernet",
c5aa7e14
TL
5469 "kas",
5470 "kinghost",
5471 "knot",
5472 "leaseweb",
5473 "lexicon",
5474 "linode",
5475 "linode_v4",
5476 "loopia",
5477 "lua",
5478 "maradns",
5479 "me",
5480 "miab",
5481 "misaka",
5482 "myapi",
5483 "mydevil",
5484 "mydnsjp",
5485 "namecheap",
5486 "namecom",
5487 "namesilo",
5488 "nederhost",
5489 "neodigit",
5490 "netcup",
d2656385 5491 "netlify",
c5aa7e14 5492 "nic",
d2656385
TL
5493 "njalla",
5494 "nm",
c5aa7e14
TL
5495 "nsd",
5496 "nsone",
5497 "nsupdate",
5498 "nw",
5370fa8c 5499 "oci",
c5aa7e14
TL
5500 "one",
5501 "online",
5502 "openprovider",
d2656385 5503 "openstack",
c5aa7e14
TL
5504 "opnsense",
5505 "ovh",
5506 "pdns",
5507 "pleskxml",
5508 "pointhq",
e7084ef7 5509 "porkbun",
d2656385 5510 "rackcorp",
c5aa7e14
TL
5511 "rackspace",
5512 "rcode0",
5513 "regru",
d2656385 5514 "scaleway",
c5aa7e14
TL
5515 "schlundtech",
5516 "selectel",
5517 "servercow",
d2656385 5518 "simply",
c5aa7e14 5519 "tele3",
d2656385 5520 "transip",
c5aa7e14
TL
5521 "ultra",
5522 "unoeuro",
5523 "variomedia",
5370fa8c 5524 "veesp",
c5aa7e14
TL
5525 "vscale",
5526 "vultr",
e7084ef7 5527 "websupport",
d2656385 5528 "world4you",
c5aa7e14
TL
5529 "yandex",
5530 "zilore",
5531 "zone",
5532 "zonomi"
5533 ],
5534 "optional" : 1,
5535 "type" : "string"
5536 },
5537 "data" : {
5538 "description" : "DNS plugin data. (base64 encoded)",
5539 "optional" : 1,
5540 "type" : "string",
5541 "typetext" : "<string>"
5542 },
5543 "disable" : {
5544 "description" : "Flag to disable the config.",
5545 "optional" : 1,
5546 "type" : "boolean",
5547 "typetext" : "<boolean>"
5548 },
5549 "id" : {
5550 "description" : "ACME Plugin ID name",
5551 "format" : "pve-configid",
5552 "type" : "string",
5553 "typetext" : "<string>"
5554 },
5555 "nodes" : {
5556 "description" : "List of cluster node names.",
5557 "format" : "pve-node-list",
5558 "optional" : 1,
5559 "type" : "string",
5560 "typetext" : "<string>"
5561 },
5562 "type" : {
5563 "description" : "ACME challenge type.",
5564 "enum" : [
5565 "dns",
5566 "standalone"
5567 ],
5568 "type" : "string"
5569 },
5570 "validation-delay" : {
5571 "default" : 30,
5572 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5573 "maximum" : 172800,
5574 "minimum" : 0,
5575 "optional" : 1,
5576 "type" : "integer",
5577 "typetext" : "<integer> (0 - 172800)"
5578 }
5579 },
5580 "type" : "object"
5581 },
5582 "permissions" : {
5583 "check" : [
5584 "perm",
5585 "/",
5586 [
5587 "Sys.Modify"
5588 ]
5589 ]
5590 },
5591 "protected" : 1,
5592 "returns" : {
5593 "type" : "null"
5594 }
5595 }
5596 },
5597 "leaf" : 0,
5598 "path" : "/cluster/acme/plugins",
5599 "text" : "plugins"
5600 },
a9a8e3d1
DM
5601 {
5602 "children" : [
5603 {
5604 "info" : {
5605 "DELETE" : {
e9cd3bd4 5606 "allowtoken" : 1,
a9a8e3d1
DM
5607 "description" : "Deactivate existing ACME account at CA.",
5608 "method" : "DELETE",
5609 "name" : "deactivate_account",
5610 "parameters" : {
5611 "additionalProperties" : 0,
5612 "properties" : {
5613 "name" : {
5614 "default" : "default",
5615 "description" : "ACME account config file name.",
5616 "format" : "pve-configid",
5617 "format_description" : "name",
5618 "optional" : 1,
5619 "type" : "string",
5620 "typetext" : "<name>"
5621 }
5622 }
5623 },
5624 "protected" : 1,
5625 "returns" : {
5626 "type" : "string"
5627 }
5628 },
5629 "GET" : {
e9cd3bd4 5630 "allowtoken" : 1,
a9a8e3d1
DM
5631 "description" : "Return existing ACME account information.",
5632 "method" : "GET",
5633 "name" : "get_account",
5634 "parameters" : {
5635 "additionalProperties" : 0,
5636 "properties" : {
5637 "name" : {
5638 "default" : "default",
5639 "description" : "ACME account config file name.",
5640 "format" : "pve-configid",
5641 "format_description" : "name",
5642 "optional" : 1,
5643 "type" : "string",
5644 "typetext" : "<name>"
5645 }
5646 }
5647 },
5648 "protected" : 1,
5649 "returns" : {
5650 "additionalProperties" : 0,
5651 "properties" : {
5652 "account" : {
5653 "optional" : 1,
4d47f125 5654 "renderer" : "yaml",
a9a8e3d1
DM
5655 "type" : "object"
5656 },
5657 "directory" : {
5658 "description" : "URL of ACME CA directory endpoint.",
5659 "optional" : 1,
5660 "pattern" : "^https?://.*",
5661 "type" : "string"
5662 },
5663 "location" : {
5664 "optional" : 1,
5665 "type" : "string"
5666 },
5667 "tos" : {
5668 "optional" : 1,
5669 "type" : "string"
5670 }
5671 },
5672 "type" : "object"
5673 }
5674 },
5675 "PUT" : {
e9cd3bd4 5676 "allowtoken" : 1,
a9a8e3d1
DM
5677 "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
5678 "method" : "PUT",
5679 "name" : "update_account",
5680 "parameters" : {
5681 "additionalProperties" : 0,
5682 "properties" : {
5683 "contact" : {
5684 "description" : "Contact email addresses.",
5685 "format" : "email-list",
5686 "optional" : 1,
5687 "type" : "string",
5688 "typetext" : "<string>"
5689 },
5690 "name" : {
5691 "default" : "default",
5692 "description" : "ACME account config file name.",
5693 "format" : "pve-configid",
5694 "format_description" : "name",
5695 "optional" : 1,
5696 "type" : "string",
5697 "typetext" : "<name>"
5698 }
5699 }
5700 },
5701 "protected" : 1,
5702 "returns" : {
5703 "type" : "string"
5704 }
5705 }
5706 },
5707 "leaf" : 1,
5708 "path" : "/cluster/acme/account/{name}",
5709 "text" : "{name}"
5710 }
5711 ],
5712 "info" : {
5713 "GET" : {
e9cd3bd4 5714 "allowtoken" : 1,
a9a8e3d1
DM
5715 "description" : "ACMEAccount index.",
5716 "method" : "GET",
5717 "name" : "account_index",
5718 "parameters" : {
5719 "additionalProperties" : 0
5720 },
5721 "permissions" : {
5722 "user" : "all"
5723 },
5724 "protected" : 1,
5725 "returns" : {
5726 "items" : {
5727 "properties" : {},
5728 "type" : "object"
5729 },
5730 "links" : [
5731 {
5732 "href" : "{name}",
5733 "rel" : "child"
5734 }
5735 ],
5736 "type" : "array"
5737 }
5738 },
5739 "POST" : {
e9cd3bd4 5740 "allowtoken" : 1,
a9a8e3d1
DM
5741 "description" : "Register a new ACME account with CA.",
5742 "method" : "POST",
5743 "name" : "register_account",
5744 "parameters" : {
5745 "additionalProperties" : 0,
5746 "properties" : {
5747 "contact" : {
5748 "description" : "Contact email addresses.",
5749 "format" : "email-list",
5750 "type" : "string",
5751 "typetext" : "<string>"
5752 },
5753 "directory" : {
5754 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5755 "description" : "URL of ACME CA directory endpoint.",
5756 "optional" : 1,
5757 "pattern" : "^https?://.*",
5758 "type" : "string"
5759 },
5760 "name" : {
5761 "default" : "default",
5762 "description" : "ACME account config file name.",
5763 "format" : "pve-configid",
5764 "format_description" : "name",
5765 "optional" : 1,
5766 "type" : "string",
5767 "typetext" : "<name>"
5768 },
5769 "tos_url" : {
5770 "description" : "URL of CA TermsOfService - setting this indicates agreement.",
5771 "optional" : 1,
5772 "type" : "string",
5773 "typetext" : "<string>"
5774 }
5775 }
5776 },
5777 "protected" : 1,
5778 "returns" : {
5779 "type" : "string"
5780 }
5781 }
5782 },
5783 "leaf" : 0,
5784 "path" : "/cluster/acme/account",
5785 "text" : "account"
5786 },
5787 {
5788 "info" : {
5789 "GET" : {
e9cd3bd4 5790 "allowtoken" : 1,
a9a8e3d1
DM
5791 "description" : "Retrieve ACME TermsOfService URL from CA.",
5792 "method" : "GET",
5793 "name" : "get_tos",
5794 "parameters" : {
5795 "additionalProperties" : 0,
5796 "properties" : {
5797 "directory" : {
5798 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5799 "description" : "URL of ACME CA directory endpoint.",
5800 "optional" : 1,
5801 "pattern" : "^https?://.*",
5802 "type" : "string"
5803 }
5804 }
5805 },
5da3d723
TL
5806 "permissions" : {
5807 "user" : "all"
5808 },
a9a8e3d1
DM
5809 "returns" : {
5810 "description" : "ACME TermsOfService URL.",
5c1699e5 5811 "optional" : 1,
a9a8e3d1
DM
5812 "type" : "string"
5813 }
5814 }
5815 },
5816 "leaf" : 1,
5817 "path" : "/cluster/acme/tos",
5818 "text" : "tos"
5819 },
5820 {
5821 "info" : {
5822 "GET" : {
e9cd3bd4 5823 "allowtoken" : 1,
a9a8e3d1
DM
5824 "description" : "Get named known ACME directory endpoints.",
5825 "method" : "GET",
5826 "name" : "get_directories",
5827 "parameters" : {
5828 "additionalProperties" : 0
5829 },
5da3d723
TL
5830 "permissions" : {
5831 "user" : "all"
5832 },
a9a8e3d1
DM
5833 "returns" : {
5834 "items" : {
5835 "additionalProperties" : 0,
5836 "properties" : {
5837 "name" : {
5838 "type" : "string"
5839 },
5840 "url" : {
5841 "description" : "URL of ACME CA directory endpoint.",
5842 "pattern" : "^https?://.*",
5843 "type" : "string"
5844 }
5845 },
5846 "type" : "object"
5847 },
5848 "type" : "array"
5849 }
5850 }
5851 },
5852 "leaf" : 1,
5853 "path" : "/cluster/acme/directories",
5854 "text" : "directories"
ac70d7d1
TL
5855 },
5856 {
5857 "info" : {
5858 "GET" : {
5859 "allowtoken" : 1,
5860 "description" : "Get schema of ACME challenge types.",
5861 "method" : "GET",
5862 "name" : "challengeschema",
5863 "parameters" : {
5864 "additionalProperties" : 0
5865 },
5866 "permissions" : {
5867 "user" : "all"
5868 },
5869 "returns" : {
5870 "items" : {
5871 "additionalProperties" : 0,
5872 "properties" : {
5873 "id" : {
5874 "type" : "string"
5875 },
5876 "name" : {
5877 "description" : "Human readable name, falls back to id",
5878 "type" : "string"
5879 },
5880 "schema" : {
5881 "type" : "object"
5882 },
5883 "type" : {
5884 "type" : "string"
5885 }
5886 },
5887 "type" : "object"
5888 },
5889 "type" : "array"
5890 }
5891 }
5892 },
5893 "leaf" : 1,
5894 "path" : "/cluster/acme/challenge-schema",
5895 "text" : "challenge-schema"
a9a8e3d1
DM
5896 }
5897 ],
5898 "info" : {
5899 "GET" : {
e9cd3bd4 5900 "allowtoken" : 1,
a9a8e3d1
DM
5901 "description" : "ACMEAccount index.",
5902 "method" : "GET",
5903 "name" : "index",
5904 "parameters" : {
5905 "additionalProperties" : 0
5906 },
5907 "permissions" : {
5908 "user" : "all"
5909 },
5910 "returns" : {
5911 "items" : {
5912 "properties" : {},
5913 "type" : "object"
5914 },
5915 "links" : [
5916 {
5917 "href" : "{name}",
5918 "rel" : "child"
5919 }
5920 ],
5921 "type" : "array"
5922 }
5923 }
5924 },
5925 "leaf" : 0,
5926 "path" : "/cluster/acme",
5927 "text" : "acme"
5928 },
1c532546
TL
5929 {
5930 "children" : [
5931 {
5932 "info" : {
5933 "GET" : {
e9cd3bd4 5934 "allowtoken" : 1,
1c532546
TL
5935 "description" : "Get ceph metadata.",
5936 "method" : "GET",
5937 "name" : "metadata",
5938 "parameters" : {
c5aa7e14
TL
5939 "additionalProperties" : 0,
5940 "properties" : {
5941 "scope" : {
5942 "default" : "all",
5943 "enum" : [
5944 "all",
5945 "versions"
5946 ],
5947 "optional" : 1,
5948 "type" : "string"
5949 }
5950 }
1c532546
TL
5951 },
5952 "permissions" : {
5953 "check" : [
5954 "perm",
5955 "/",
5956 [
5957 "Sys.Audit",
5958 "Datastore.Audit"
5959 ],
5960 "any",
5961 1
5962 ]
5963 },
5964 "protected" : 1,
5965 "returns" : {
5966 "type" : "object"
5967 }
5968 }
5969 },
5970 "leaf" : 1,
5971 "path" : "/cluster/ceph/metadata",
5972 "text" : "metadata"
5973 },
5974 {
5975 "info" : {
5976 "GET" : {
e9cd3bd4 5977 "allowtoken" : 1,
1c532546
TL
5978 "description" : "Get ceph status.",
5979 "method" : "GET",
5980 "name" : "status",
5981 "parameters" : {
5982 "additionalProperties" : 0
5983 },
5984 "permissions" : {
5985 "check" : [
5986 "perm",
5987 "/",
5988 [
5989 "Sys.Audit",
5990 "Datastore.Audit"
5991 ],
5992 "any",
5993 1
5994 ]
5995 },
5996 "protected" : 1,
5997 "returns" : {
5998 "type" : "object"
5999 }
6000 }
6001 },
6002 "leaf" : 1,
6003 "path" : "/cluster/ceph/status",
6004 "text" : "status"
6005 },
6006 {
6007 "children" : [
6008 {
6009 "info" : {
6010 "GET" : {
e9cd3bd4 6011 "allowtoken" : 1,
1c532546
TL
6012 "description" : "Get the status of a specific ceph flag.",
6013 "method" : "GET",
6014 "name" : "get_flag",
6015 "parameters" : {
6016 "additionalProperties" : 0,
6017 "properties" : {
6018 "flag" : {
6019 "description" : "The name of the flag name to get.",
6020 "enum" : [
6021 "nobackfill",
6022 "nodeep-scrub",
6023 "nodown",
6024 "noin",
6025 "noout",
6026 "norebalance",
6027 "norecover",
6028 "noscrub",
6029 "notieragent",
6030 "noup",
6031 "pause"
6032 ],
6033 "type" : "string"
6034 }
6035 }
6036 },
6037 "permissions" : {
6038 "check" : [
6039 "perm",
6040 "/",
6041 [
6042 "Sys.Audit"
6043 ]
6044 ]
6045 },
6046 "protected" : 1,
6047 "returns" : {
6048 "type" : "boolean"
6049 }
6050 },
6051 "PUT" : {
e9cd3bd4 6052 "allowtoken" : 1,
1c532546
TL
6053 "description" : "Set or clear (unset) a specific ceph flag",
6054 "method" : "PUT",
6055 "name" : "update_flag",
6056 "parameters" : {
6057 "additionalProperties" : 0,
6058 "properties" : {
6059 "flag" : {
6060 "description" : "The ceph flag to update",
6061 "enum" : [
6062 "nobackfill",
6063 "nodeep-scrub",
6064 "nodown",
6065 "noin",
6066 "noout",
6067 "norebalance",
6068 "norecover",
6069 "noscrub",
6070 "notieragent",
6071 "noup",
6072 "pause"
6073 ],
6074 "type" : "string"
6075 },
6076 "value" : {
6077 "description" : "The new value of the flag",
6078 "type" : "boolean",
6079 "typetext" : "<boolean>"
6080 }
6081 }
6082 },
6083 "permissions" : {
6084 "check" : [
6085 "perm",
6086 "/",
6087 [
6088 "Sys.Modify"
6089 ]
6090 ]
6091 },
6092 "protected" : 1,
6093 "returns" : {
6094 "type" : "null"
6095 }
6096 }
6097 },
6098 "leaf" : 1,
6099 "path" : "/cluster/ceph/flags/{flag}",
6100 "text" : "{flag}"
6101 }
6102 ],
6103 "info" : {
6104 "GET" : {
e9cd3bd4 6105 "allowtoken" : 1,
1c532546
TL
6106 "description" : "get the status of all ceph flags",
6107 "method" : "GET",
6108 "name" : "get_all_flags",
6109 "parameters" : {
6110 "additionalProperties" : 0
6111 },
6112 "permissions" : {
6113 "check" : [
6114 "perm",
6115 "/",
6116 [
6117 "Sys.Audit"
6118 ]
6119 ]
6120 },
6121 "protected" : 1,
6122 "returns" : {
6123 "items" : {
6124 "additionalProperties" : 1,
6125 "properties" : {
6126 "name" : {
6127 "description" : "Flag name.",
6128 "enum" : [
6129 "nobackfill",
6130 "nodeep-scrub",
6131 "nodown",
6132 "noin",
6133 "noout",
6134 "norebalance",
6135 "norecover",
6136 "noscrub",
6137 "notieragent",
6138 "noup",
6139 "pause"
6140 ],
6141 "type" : "string"
6142 }
6143 },
6144 "type" : "object"
6145 },
6146 "links" : [
6147 {
6148 "href" : "{name}",
6149 "rel" : "child"
6150 }
6151 ],
6152 "type" : "array"
6153 }
6154 },
6155 "PUT" : {
e9cd3bd4 6156 "allowtoken" : 1,
1c532546
TL
6157 "description" : "Set/Unset multiple ceph flags at once.",
6158 "method" : "PUT",
6159 "name" : "set_flags",
6160 "parameters" : {
6161 "additionalProperties" : 0,
6162 "properties" : {
6163 "nobackfill" : {
6164 "description" : "Backfilling of PGs is suspended.",
6165 "optional" : 1,
6166 "type" : "boolean",
6167 "typetext" : "<boolean>"
6168 },
6169 "nodeep-scrub" : {
6170 "description" : "Deep Scrubbing is disabled.",
6171 "optional" : 1,
6172 "type" : "boolean",
6173 "typetext" : "<boolean>"
6174 },
6175 "nodown" : {
6176 "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
6177 "optional" : 1,
6178 "type" : "boolean",
6179 "typetext" : "<boolean>"
6180 },
6181 "noin" : {
6182 "description" : "OSDs that were previously marked out will not be marked back in when they start.",
6183 "optional" : 1,
6184 "type" : "boolean",
6185 "typetext" : "<boolean>"
6186 },
6187 "noout" : {
6188 "description" : "OSDs will not automatically be marked out after the configured interval.",
6189 "optional" : 1,
6190 "type" : "boolean",
6191 "typetext" : "<boolean>"
6192 },
6193 "norebalance" : {
6194 "description" : "Rebalancing of PGs is suspended.",
6195 "optional" : 1,
6196 "type" : "boolean",
6197 "typetext" : "<boolean>"
6198 },
6199 "norecover" : {
6200 "description" : "Recovery of PGs is suspended.",
6201 "optional" : 1,
6202 "type" : "boolean",
6203 "typetext" : "<boolean>"
6204 },
6205 "noscrub" : {
6206 "description" : "Scrubbing is disabled.",
6207 "optional" : 1,
6208 "type" : "boolean",
6209 "typetext" : "<boolean>"
6210 },
6211 "notieragent" : {
6212 "description" : "Cache tiering activity is suspended.",
6213 "optional" : 1,
6214 "type" : "boolean",
6215 "typetext" : "<boolean>"
6216 },
6217 "noup" : {
6218 "description" : "OSDs are not allowed to start.",
6219 "optional" : 1,
6220 "type" : "boolean",
6221 "typetext" : "<boolean>"
6222 },
6223 "pause" : {
6224 "description" : "Pauses read and writes.",
6225 "optional" : 1,
6226 "type" : "boolean",
6227 "typetext" : "<boolean>"
6228 }
6229 }
6230 },
6231 "permissions" : {
6232 "check" : [
6233 "perm",
6234 "/",
6235 [
6236 "Sys.Modify"
6237 ]
6238 ]
6239 },
6240 "protected" : 1,
6241 "returns" : {
6242 "type" : "string"
6243 }
6244 }
6245 },
6246 "leaf" : 0,
6247 "path" : "/cluster/ceph/flags",
6248 "text" : "flags"
6249 }
6250 ],
6251 "info" : {
6252 "GET" : {
e9cd3bd4 6253 "allowtoken" : 1,
1c532546
TL
6254 "description" : "Cluster ceph index.",
6255 "method" : "GET",
6256 "name" : "cephindex",
6257 "parameters" : {
6258 "additionalProperties" : 0
6259 },
6260 "permissions" : {
6261 "user" : "all"
6262 },
6263 "returns" : {
6264 "items" : {
6265 "properties" : {},
6266 "type" : "object"
6267 },
6268 "links" : [
6269 {
6270 "href" : "{name}",
6271 "rel" : "child"
6272 }
6273 ],
6274 "type" : "array"
6275 }
6276 }
6277 },
6278 "leaf" : 0,
6279 "path" : "/cluster/ceph",
6280 "text" : "ceph"
6281 },
5370fa8c
TL
6282 {
6283 "children" : [
6284 {
6285 "info" : {
6286 "GET" : {
6287 "allowtoken" : 1,
6288 "description" : "Returns a list of future schedule runtimes.",
6289 "method" : "GET",
6290 "name" : "schedule-analyze",
6291 "parameters" : {
6292 "additionalProperties" : 0,
6293 "properties" : {
6294 "iterations" : {
6295 "default" : 10,
6296 "description" : "Number of event-iteration to simulate and return.",
6297 "maximum" : 100,
6298 "minimum" : 1,
6299 "optional" : 1,
6300 "type" : "integer",
6301 "typetext" : "<integer> (1 - 100)"
6302 },
6303 "schedule" : {
6304 "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
6305 "format" : "pve-calendar-event",
6306 "maxLength" : 128,
6307 "type" : "string",
6308 "typetext" : "<string>"
6309 },
6310 "starttime" : {
6311 "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
6312 "optional" : 1,
6313 "type" : "integer",
6314 "typetext" : "<integer>"
6315 }
6316 }
6317 },
6318 "permissions" : {
6319 "user" : "all"
6320 },
6321 "returns" : {
6322 "description" : "An array of the next <iterations> events since <starttime>.",
6323 "items" : {
6324 "properties" : {
6325 "timestamp" : {
6326 "description" : "UNIX timestamp for the run.",
6327 "type" : "integer"
6328 },
6329 "utc" : {
6330 "description" : "UTC timestamp for the run.",
6331 "type" : "string"
6332 }
6333 },
6334 "type" : "object"
6335 },
6336 "type" : "array"
6337 }
6338 }
6339 },
6340 "leaf" : 1,
6341 "path" : "/cluster/jobs/schedule-analyze",
6342 "text" : "schedule-analyze"
6343 }
6344 ],
6345 "info" : {
6346 "GET" : {
6347 "allowtoken" : 1,
6348 "description" : "Index for jobs related endpoints.",
6349 "method" : "GET",
6350 "name" : "index",
6351 "parameters" : {
6352 "additionalProperties" : 0
6353 },
6354 "permissions" : {
6355 "user" : "all"
6356 },
6357 "returns" : {
6358 "description" : "Directory index.",
6359 "items" : {
6360 "properties" : {
6361 "subdir" : {
6362 "description" : "API sub-directory endpoint",
6363 "type" : "string"
6364 }
6365 },
6366 "type" : "object"
6367 },
6368 "links" : [
6369 {
6370 "href" : "{subdir}",
6371 "rel" : "child"
6372 }
6373 ],
6374 "type" : "array"
6375 }
6376 }
6377 },
6378 "leaf" : 0,
6379 "path" : "/cluster/jobs",
6380 "text" : "jobs"
6381 },
c5aa7e14
TL
6382 {
6383 "children" : [
6384 {
6385 "children" : [
6386 {
d2656385
TL
6387 "children" : [
6388 {
6389 "children" : [
6390 {
6391 "info" : {
6392 "DELETE" : {
6393 "allowtoken" : 1,
6394 "description" : "Delete sdn subnet object configuration.",
6395 "method" : "DELETE",
6396 "name" : "delete",
6397 "parameters" : {
6398 "additionalProperties" : 0,
6399 "properties" : {
6400 "subnet" : {
6401 "description" : "The SDN subnet object identifier.",
6402 "format" : "pve-sdn-subnet-id",
6403 "type" : "string",
6404 "typetext" : "<string>"
6405 },
6406 "vnet" : {
6407 "description" : "The SDN vnet object identifier.",
6408 "format" : "pve-sdn-vnet-id",
6409 "type" : "string",
6410 "typetext" : "<string>"
6411 }
6412 }
6413 },
6414 "permissions" : {
6415 "check" : [
6416 "perm",
6417 "/sdn/vnets/{vnet}/subnets",
6418 [
6419 "SDN.Allocate"
6420 ]
6421 ]
6422 },
6423 "protected" : 1,
6424 "returns" : {
6425 "type" : "null"
6426 }
6427 },
6428 "GET" : {
6429 "allowtoken" : 1,
6430 "description" : "Read sdn subnet configuration.",
6431 "method" : "GET",
6432 "name" : "read",
6433 "parameters" : {
6434 "additionalProperties" : 0,
6435 "properties" : {
6436 "pending" : {
6437 "description" : "Display pending config.",
6438 "optional" : 1,
6439 "type" : "boolean",
6440 "typetext" : "<boolean>"
6441 },
6442 "running" : {
6443 "description" : "Display running config.",
6444 "optional" : 1,
6445 "type" : "boolean",
6446 "typetext" : "<boolean>"
6447 },
6448 "subnet" : {
6449 "description" : "The SDN subnet object identifier.",
6450 "format" : "pve-sdn-subnet-id",
6451 "type" : "string",
6452 "typetext" : "<string>"
6453 },
6454 "vnet" : {
6455 "description" : "The SDN vnet object identifier.",
6456 "format" : "pve-sdn-vnet-id",
6457 "type" : "string",
6458 "typetext" : "<string>"
6459 }
6460 }
6461 },
6462 "permissions" : {
6463 "check" : [
6464 "perm",
6465 "/sdn/vnets/{vnet}/subnets/{subnet}",
6466 [
6467 "SDN.Allocate"
6468 ]
6469 ]
6470 },
6471 "returns" : {
6472 "type" : "object"
6473 }
6474 },
6475 "PUT" : {
6476 "allowtoken" : 1,
6477 "description" : "Update sdn subnet object configuration.",
6478 "method" : "PUT",
6479 "name" : "update",
6480 "parameters" : {
6481 "additionalProperties" : 0,
6482 "properties" : {
6483 "delete" : {
6484 "description" : "A list of settings you want to delete.",
6485 "format" : "pve-configid-list",
6486 "maxLength" : 4096,
6487 "optional" : 1,
6488 "type" : "string",
6489 "typetext" : "<string>"
6490 },
6491 "digest" : {
6492 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
6493 "maxLength" : 40,
6494 "optional" : 1,
6495 "type" : "string",
6496 "typetext" : "<string>"
6497 },
6498 "dnszoneprefix" : {
6499 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
6500 "format" : "dns-name",
6501 "optional" : 1,
6502 "type" : "string",
6503 "typetext" : "<string>"
6504 },
6505 "gateway" : {
6506 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
6507 "format" : "ip",
6508 "optional" : 1,
6509 "type" : "string",
6510 "typetext" : "<string>"
6511 },
6512 "snat" : {
6513 "description" : "enable masquerade for this subnet if pve-firewall",
6514 "optional" : 1,
6515 "type" : "boolean",
6516 "typetext" : "<boolean>"
6517 },
6518 "subnet" : {
6519 "description" : "The SDN subnet object identifier.",
6520 "format" : "pve-sdn-subnet-id",
6521 "type" : "string",
6522 "typetext" : "<string>"
6523 },
6524 "vnet" : {
6525 "description" : "associated vnet",
6526 "optional" : 1,
6527 "type" : "string",
6528 "typetext" : "<string>"
6529 }
6530 },
6531 "type" : "object"
6532 },
6533 "permissions" : {
6534 "check" : [
6535 "perm",
6536 "/sdn/vnets/{vnet}/subnets",
6537 [
6538 "SDN.Allocate"
6539 ]
6540 ]
6541 },
6542 "protected" : 1,
6543 "returns" : {
6544 "type" : "null"
6545 }
6546 }
6547 },
6548 "leaf" : 1,
6549 "path" : "/cluster/sdn/vnets/{vnet}/subnets/{subnet}",
6550 "text" : "{subnet}"
6551 }
6552 ],
6553 "info" : {
6554 "GET" : {
6555 "allowtoken" : 1,
6556 "description" : "SDN subnets index.",
6557 "method" : "GET",
6558 "name" : "index",
6559 "parameters" : {
6560 "additionalProperties" : 0,
6561 "properties" : {
6562 "pending" : {
6563 "description" : "Display pending config.",
6564 "optional" : 1,
6565 "type" : "boolean",
6566 "typetext" : "<boolean>"
6567 },
6568 "running" : {
6569 "description" : "Display running config.",
6570 "optional" : 1,
6571 "type" : "boolean",
6572 "typetext" : "<boolean>"
6573 },
6574 "vnet" : {
6575 "description" : "The SDN vnet object identifier.",
6576 "format" : "pve-sdn-vnet-id",
6577 "type" : "string",
6578 "typetext" : "<string>"
6579 }
6580 }
6581 },
6582 "permissions" : {
6583 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/subnets/<subnet>'",
6584 "user" : "all"
6585 },
6586 "returns" : {
6587 "items" : {
6588 "properties" : {},
6589 "type" : "object"
6590 },
6591 "links" : [
6592 {
6593 "href" : "{subnet}",
6594 "rel" : "child"
6595 }
6596 ],
6597 "type" : "array"
6598 }
6599 },
6600 "POST" : {
6601 "allowtoken" : 1,
6602 "description" : "Create a new sdn subnet object.",
6603 "method" : "POST",
6604 "name" : "create",
6605 "parameters" : {
6606 "additionalProperties" : 0,
6607 "properties" : {
6608 "dnszoneprefix" : {
6609 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
6610 "format" : "dns-name",
6611 "optional" : 1,
6612 "type" : "string",
6613 "typetext" : "<string>"
6614 },
6615 "gateway" : {
6616 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
6617 "format" : "ip",
6618 "optional" : 1,
6619 "type" : "string",
6620 "typetext" : "<string>"
6621 },
6622 "snat" : {
6623 "description" : "enable masquerade for this subnet if pve-firewall",
6624 "optional" : 1,
6625 "type" : "boolean",
6626 "typetext" : "<boolean>"
6627 },
6628 "subnet" : {
6629 "description" : "The SDN subnet object identifier.",
6630 "format" : "pve-sdn-subnet-id",
6631 "type" : "string",
6632 "typetext" : "<string>"
6633 },
6634 "type" : {
6635 "enum" : [
6636 "subnet"
6637 ],
6638 "type" : "string"
6639 },
6640 "vnet" : {
6641 "description" : "associated vnet",
6642 "optional" : 0,
6643 "type" : "string",
6644 "typetext" : "<string>"
6645 }
6646 },
6647 "type" : "object"
6648 },
6649 "permissions" : {
6650 "check" : [
6651 "perm",
6652 "/sdn/vnets/{vnet}/subnets",
6653 [
6654 "SDN.Allocate"
6655 ]
6656 ]
6657 },
6658 "protected" : 1,
6659 "returns" : {
6660 "type" : "null"
6661 }
6662 }
6663 },
6664 "leaf" : 0,
6665 "path" : "/cluster/sdn/vnets/{vnet}/subnets",
6666 "text" : "subnets"
6667 }
6668 ],
c5aa7e14
TL
6669 "info" : {
6670 "DELETE" : {
6671 "allowtoken" : 1,
6672 "description" : "Delete sdn vnet object configuration.",
6673 "method" : "DELETE",
6674 "name" : "delete",
6675 "parameters" : {
6676 "additionalProperties" : 0,
6677 "properties" : {
6678 "vnet" : {
6679 "description" : "The SDN vnet object identifier.",
6680 "format" : "pve-sdn-vnet-id",
6681 "type" : "string",
6682 "typetext" : "<string>"
6683 }
6684 }
6685 },
6686 "permissions" : {
6687 "check" : [
6688 "perm",
6689 "/sdn/vnets",
6690 [
6691 "SDN.Allocate"
6692 ]
6693 ]
6694 },
6695 "protected" : 1,
6696 "returns" : {
6697 "type" : "null"
6698 }
6699 },
6700 "GET" : {
6701 "allowtoken" : 1,
6702 "description" : "Read sdn vnet configuration.",
6703 "method" : "GET",
6704 "name" : "read",
6705 "parameters" : {
6706 "additionalProperties" : 0,
6707 "properties" : {
d2656385
TL
6708 "pending" : {
6709 "description" : "Display pending config.",
6710 "optional" : 1,
6711 "type" : "boolean",
6712 "typetext" : "<boolean>"
6713 },
6714 "running" : {
6715 "description" : "Display running config.",
6716 "optional" : 1,
6717 "type" : "boolean",
6718 "typetext" : "<boolean>"
6719 },
c5aa7e14
TL
6720 "vnet" : {
6721 "description" : "The SDN vnet object identifier.",
6722 "format" : "pve-sdn-vnet-id",
6723 "type" : "string",
6724 "typetext" : "<string>"
6725 }
6726 }
6727 },
6728 "permissions" : {
6729 "check" : [
6730 "perm",
6731 "/sdn/vnets/{vnet}",
6732 [
6733 "SDN.Allocate"
6734 ]
6735 ]
6736 },
6737 "returns" : {
6738 "type" : "object"
6739 }
6740 },
6741 "PUT" : {
6742 "allowtoken" : 1,
6743 "description" : "Update sdn vnet object configuration.",
6744 "method" : "PUT",
6745 "name" : "update",
6746 "parameters" : {
6747 "additionalProperties" : 0,
6748 "properties" : {
6749 "alias" : {
6750 "description" : "alias name of the vnet",
5370fa8c 6751 "maxLength" : 256,
c5aa7e14 6752 "optional" : 1,
5370fa8c
TL
6753 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
6754 "type" : "string"
c5aa7e14
TL
6755 },
6756 "delete" : {
6757 "description" : "A list of settings you want to delete.",
6758 "format" : "pve-configid-list",
6759 "maxLength" : 4096,
6760 "optional" : 1,
6761 "type" : "string",
6762 "typetext" : "<string>"
6763 },
6764 "digest" : {
6765 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
6766 "maxLength" : 40,
6767 "optional" : 1,
6768 "type" : "string",
6769 "typetext" : "<string>"
6770 },
c5aa7e14
TL
6771 "tag" : {
6772 "description" : "vlan or vxlan id",
6773 "optional" : 1,
6774 "type" : "integer",
6775 "typetext" : "<integer>"
6776 },
ac70d7d1
TL
6777 "vlanaware" : {
6778 "description" : "Allow vm VLANs to pass through this vnet.",
6779 "optional" : 1,
6780 "type" : "boolean",
6781 "typetext" : "<boolean>"
6782 },
c5aa7e14
TL
6783 "vnet" : {
6784 "description" : "The SDN vnet object identifier.",
6785 "format" : "pve-sdn-vnet-id",
6786 "type" : "string",
6787 "typetext" : "<string>"
6788 },
6789 "zone" : {
6790 "description" : "zone id",
6791 "optional" : 1,
6792 "type" : "string",
6793 "typetext" : "<string>"
6794 }
6795 },
6796 "type" : "object"
6797 },
6798 "permissions" : {
6799 "check" : [
6800 "perm",
6801 "/sdn/vnets",
6802 [
6803 "SDN.Allocate"
6804 ]
6805 ]
6806 },
6807 "protected" : 1,
6808 "returns" : {
6809 "type" : "null"
6810 }
6811 }
6812 },
d2656385 6813 "leaf" : 0,
c5aa7e14
TL
6814 "path" : "/cluster/sdn/vnets/{vnet}",
6815 "text" : "{vnet}"
6816 }
6817 ],
6818 "info" : {
6819 "GET" : {
6820 "allowtoken" : 1,
6821 "description" : "SDN vnets index.",
6822 "method" : "GET",
6823 "name" : "index",
6824 "parameters" : {
d2656385
TL
6825 "additionalProperties" : 0,
6826 "properties" : {
6827 "pending" : {
6828 "description" : "Display pending config.",
6829 "optional" : 1,
6830 "type" : "boolean",
6831 "typetext" : "<boolean>"
6832 },
6833 "running" : {
6834 "description" : "Display running config.",
6835 "optional" : 1,
6836 "type" : "boolean",
6837 "typetext" : "<boolean>"
6838 }
6839 }
c5aa7e14
TL
6840 },
6841 "permissions" : {
6842 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/vnets/<vnet>'",
6843 "user" : "all"
6844 },
6845 "returns" : {
6846 "items" : {
6847 "properties" : {},
6848 "type" : "object"
6849 },
6850 "links" : [
6851 {
6852 "href" : "{vnet}",
6853 "rel" : "child"
6854 }
6855 ],
6856 "type" : "array"
6857 }
6858 },
6859 "POST" : {
6860 "allowtoken" : 1,
6861 "description" : "Create a new sdn vnet object.",
6862 "method" : "POST",
6863 "name" : "create",
6864 "parameters" : {
6865 "additionalProperties" : 0,
6866 "properties" : {
6867 "alias" : {
6868 "description" : "alias name of the vnet",
5370fa8c 6869 "maxLength" : 256,
c5aa7e14 6870 "optional" : 1,
5370fa8c
TL
6871 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
6872 "type" : "string"
c5aa7e14 6873 },
c5aa7e14
TL
6874 "tag" : {
6875 "description" : "vlan or vxlan id",
ac70d7d1 6876 "optional" : 1,
c5aa7e14
TL
6877 "type" : "integer",
6878 "typetext" : "<integer>"
6879 },
6880 "type" : {
6881 "description" : "Type",
6882 "enum" : [
6883 "vnet"
6884 ],
6885 "optional" : 1,
6886 "type" : "string"
6887 },
ac70d7d1
TL
6888 "vlanaware" : {
6889 "description" : "Allow vm VLANs to pass through this vnet.",
6890 "optional" : 1,
6891 "type" : "boolean",
6892 "typetext" : "<boolean>"
6893 },
c5aa7e14
TL
6894 "vnet" : {
6895 "description" : "The SDN vnet object identifier.",
6896 "format" : "pve-sdn-vnet-id",
6897 "type" : "string",
6898 "typetext" : "<string>"
6899 },
6900 "zone" : {
6901 "description" : "zone id",
6902 "optional" : 0,
6903 "type" : "string",
6904 "typetext" : "<string>"
6905 }
6906 },
6907 "type" : "object"
6908 },
6909 "permissions" : {
6910 "check" : [
6911 "perm",
6912 "/sdn/vnets",
6913 [
6914 "SDN.Allocate"
6915 ]
6916 ]
6917 },
6918 "protected" : 1,
6919 "returns" : {
6920 "type" : "null"
6921 }
6922 }
6923 },
6924 "leaf" : 0,
6925 "path" : "/cluster/sdn/vnets",
6926 "text" : "vnets"
6927 },
6928 {
6929 "children" : [
6930 {
6931 "info" : {
6932 "DELETE" : {
6933 "allowtoken" : 1,
6934 "description" : "Delete sdn zone object configuration.",
6935 "method" : "DELETE",
6936 "name" : "delete",
6937 "parameters" : {
6938 "additionalProperties" : 0,
6939 "properties" : {
6940 "zone" : {
6941 "description" : "The SDN zone object identifier.",
6942 "format" : "pve-sdn-zone-id",
6943 "type" : "string",
6944 "typetext" : "<string>"
6945 }
6946 }
6947 },
6948 "permissions" : {
6949 "check" : [
6950 "perm",
6951 "/sdn/zones",
6952 [
6953 "SDN.Allocate"
6954 ]
6955 ]
6956 },
6957 "protected" : 1,
6958 "returns" : {
6959 "type" : "null"
6960 }
6961 },
6962 "GET" : {
6963 "allowtoken" : 1,
6964 "description" : "Read sdn zone configuration.",
6965 "method" : "GET",
6966 "name" : "read",
6967 "parameters" : {
6968 "additionalProperties" : 0,
6969 "properties" : {
d2656385
TL
6970 "pending" : {
6971 "description" : "Display pending config.",
6972 "optional" : 1,
6973 "type" : "boolean",
6974 "typetext" : "<boolean>"
6975 },
6976 "running" : {
6977 "description" : "Display running config.",
6978 "optional" : 1,
6979 "type" : "boolean",
6980 "typetext" : "<boolean>"
6981 },
c5aa7e14
TL
6982 "zone" : {
6983 "description" : "The SDN zone object identifier.",
6984 "format" : "pve-sdn-zone-id",
6985 "type" : "string",
6986 "typetext" : "<string>"
6987 }
6988 }
6989 },
6990 "permissions" : {
6991 "check" : [
6992 "perm",
6993 "/sdn/zones/{zone}",
6994 [
6995 "SDN.Allocate"
6996 ]
6997 ]
6998 },
6999 "returns" : {
7000 "type" : "object"
7001 }
7002 },
7003 "PUT" : {
7004 "allowtoken" : 1,
7005 "description" : "Update sdn zone object configuration.",
7006 "method" : "PUT",
7007 "name" : "update",
7008 "parameters" : {
7009 "additionalProperties" : 0,
7010 "properties" : {
5370fa8c
TL
7011 "advertise-subnets" : {
7012 "description" : "Advertise evpn subnets if you have silent hosts",
7013 "optional" : 1,
7014 "type" : "boolean",
7015 "typetext" : "<boolean>"
7016 },
c5aa7e14
TL
7017 "bridge" : {
7018 "optional" : 1,
7019 "type" : "string",
7020 "typetext" : "<string>"
7021 },
7af2edf9
TL
7022 "bridge-disable-mac-learning" : {
7023 "description" : "Disable auto mac learning.",
7024 "optional" : 1,
7025 "type" : "boolean",
7026 "typetext" : "<boolean>"
7027 },
c5aa7e14
TL
7028 "controller" : {
7029 "description" : "Frr router name",
7030 "optional" : 1,
7031 "type" : "string",
7032 "typetext" : "<string>"
7033 },
7034 "delete" : {
7035 "description" : "A list of settings you want to delete.",
7036 "format" : "pve-configid-list",
7037 "maxLength" : 4096,
7038 "optional" : 1,
7039 "type" : "string",
7040 "typetext" : "<string>"
7041 },
7042 "digest" : {
7043 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7044 "maxLength" : 40,
7045 "optional" : 1,
7046 "type" : "string",
7047 "typetext" : "<string>"
7048 },
5370fa8c
TL
7049 "disable-arp-nd-suppression" : {
7050 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
7051 "optional" : 1,
7052 "type" : "boolean",
7053 "typetext" : "<boolean>"
7054 },
d2656385
TL
7055 "dns" : {
7056 "description" : "dns api server",
7057 "optional" : 1,
7058 "type" : "string",
7059 "typetext" : "<string>"
7060 },
7061 "dnszone" : {
7062 "description" : "dns domain zone ex: mydomain.com",
7063 "format" : "dns-name",
7064 "optional" : 1,
7065 "type" : "string",
7066 "typetext" : "<string>"
7067 },
c5aa7e14
TL
7068 "dp-id" : {
7069 "description" : "Faucet dataplane id",
7070 "optional" : 1,
7071 "type" : "integer",
7072 "typetext" : "<integer>"
7073 },
d2656385
TL
7074 "exitnodes" : {
7075 "description" : "List of cluster node names.",
7076 "format" : "pve-node-list",
7077 "optional" : 1,
7078 "type" : "string",
7079 "typetext" : "<string>"
7080 },
5370fa8c
TL
7081 "exitnodes-local-routing" : {
7082 "description" : "Allow exitnodes to connect to evpn guests",
7083 "optional" : 1,
7084 "type" : "boolean",
7085 "typetext" : "<boolean>"
7086 },
c30bb419
TL
7087 "exitnodes-primary" : {
7088 "description" : "Force traffic to this exitnode first.",
7089 "format" : "pve-node",
7090 "optional" : 1,
7091 "type" : "string",
7092 "typetext" : "<string>"
7093 },
d2656385
TL
7094 "ipam" : {
7095 "description" : "use a specific ipam",
e7084ef7 7096 "optional" : 1,
d2656385
TL
7097 "type" : "string",
7098 "typetext" : "<string>"
7099 },
7100 "mac" : {
7101 "description" : "Anycast logical router mac address",
7102 "format" : "mac-addr",
7103 "optional" : 1,
7104 "type" : "string",
7105 "typetext" : "<string>"
7106 },
c5aa7e14 7107 "mtu" : {
ac70d7d1 7108 "description" : "MTU",
c5aa7e14
TL
7109 "optional" : 1,
7110 "type" : "integer",
7111 "typetext" : "<integer>"
7112 },
7113 "nodes" : {
7114 "description" : "List of cluster node names.",
7115 "format" : "pve-node-list",
7116 "optional" : 1,
7117 "type" : "string",
7118 "typetext" : "<string>"
7119 },
7120 "peers" : {
7121 "description" : "peers address list.",
7122 "format" : "ip-list",
7123 "optional" : 1,
7124 "type" : "string",
7125 "typetext" : "<string>"
7126 },
d2656385
TL
7127 "reversedns" : {
7128 "description" : "reverse dns api server",
7129 "optional" : 1,
7130 "type" : "string",
7131 "typetext" : "<string>"
7132 },
c30bb419
TL
7133 "rt-import" : {
7134 "description" : "Route-Target import",
7135 "format" : "pve-sdn-bgp-rt-list",
7136 "optional" : 1,
7137 "type" : "string",
7138 "typetext" : "<string>"
7139 },
c5aa7e14 7140 "tag" : {
ac70d7d1
TL
7141 "description" : "Service-VLAN Tag",
7142 "minimum" : 0,
c5aa7e14
TL
7143 "optional" : 1,
7144 "type" : "integer",
ac70d7d1
TL
7145 "typetext" : "<integer> (0 - N)"
7146 },
7147 "vlan-protocol" : {
7148 "default" : "802.1q",
7149 "enum" : [
7150 "802.1q",
7151 "802.1ad"
7152 ],
7153 "optional" : 1,
7154 "type" : "string"
c5aa7e14
TL
7155 },
7156 "vrf-vxlan" : {
7157 "description" : "l3vni.",
7158 "optional" : 1,
7159 "type" : "integer",
7160 "typetext" : "<integer>"
7161 },
7162 "zone" : {
7163 "description" : "The SDN zone object identifier.",
7164 "format" : "pve-sdn-zone-id",
7165 "type" : "string",
7166 "typetext" : "<string>"
7167 }
7168 },
7169 "type" : "object"
7170 },
7171 "permissions" : {
7172 "check" : [
7173 "perm",
7174 "/sdn/zones",
7175 [
7176 "SDN.Allocate"
7177 ]
7178 ]
7179 },
7180 "protected" : 1,
7181 "returns" : {
7182 "type" : "null"
7183 }
7184 }
7185 },
7186 "leaf" : 1,
7187 "path" : "/cluster/sdn/zones/{zone}",
7188 "text" : "{zone}"
7189 }
7190 ],
7191 "info" : {
7192 "GET" : {
7193 "allowtoken" : 1,
7194 "description" : "SDN zones index.",
7195 "method" : "GET",
7196 "name" : "index",
7197 "parameters" : {
7198 "additionalProperties" : 0,
7199 "properties" : {
d2656385
TL
7200 "pending" : {
7201 "description" : "Display pending config.",
7202 "optional" : 1,
7203 "type" : "boolean",
7204 "typetext" : "<boolean>"
7205 },
7206 "running" : {
7207 "description" : "Display running config.",
7208 "optional" : 1,
7209 "type" : "boolean",
7210 "typetext" : "<boolean>"
7211 },
c5aa7e14 7212 "type" : {
e7084ef7 7213 "description" : "Only list SDN zones of specific type",
c5aa7e14
TL
7214 "enum" : [
7215 "evpn",
7216 "faucet",
7217 "qinq",
ac70d7d1 7218 "simple",
c5aa7e14
TL
7219 "vlan",
7220 "vxlan"
7221 ],
7222 "optional" : 1,
7223 "type" : "string"
7224 }
7225 }
7226 },
7227 "permissions" : {
7228 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>'",
7229 "user" : "all"
7230 },
7231 "returns" : {
7232 "items" : {
7233 "properties" : {
d2656385
TL
7234 "dns" : {
7235 "optional" : 1,
7236 "type" : "string"
7237 },
7238 "dnszone" : {
7239 "optional" : 1,
7240 "type" : "string"
7241 },
7242 "ipam" : {
7243 "optional" : 1,
7244 "type" : "string"
7245 },
7246 "mtu" : {
7247 "optional" : 1,
7248 "type" : "integer"
7249 },
7250 "nodes" : {
7251 "optional" : 1,
7252 "type" : "string"
7253 },
7254 "pending" : {
7255 "optional" : 1
7256 },
7257 "reversedns" : {
7258 "optional" : 1,
7259 "type" : "string"
7260 },
7261 "state" : {
7262 "optional" : 1,
7263 "type" : "string"
7264 },
c5aa7e14
TL
7265 "type" : {
7266 "type" : "string"
7267 },
7268 "zone" : {
7269 "type" : "string"
7270 }
7271 },
7272 "type" : "object"
7273 },
7274 "links" : [
7275 {
7276 "href" : "{zone}",
7277 "rel" : "child"
7278 }
7279 ],
7280 "type" : "array"
7281 }
7282 },
7283 "POST" : {
7284 "allowtoken" : 1,
7285 "description" : "Create a new sdn zone object.",
7286 "method" : "POST",
7287 "name" : "create",
7288 "parameters" : {
7289 "additionalProperties" : 0,
7290 "properties" : {
5370fa8c
TL
7291 "advertise-subnets" : {
7292 "description" : "Advertise evpn subnets if you have silent hosts",
7293 "optional" : 1,
7294 "type" : "boolean",
7295 "typetext" : "<boolean>"
7296 },
c5aa7e14
TL
7297 "bridge" : {
7298 "optional" : 1,
7299 "type" : "string",
7300 "typetext" : "<string>"
7301 },
7af2edf9
TL
7302 "bridge-disable-mac-learning" : {
7303 "description" : "Disable auto mac learning.",
7304 "optional" : 1,
7305 "type" : "boolean",
7306 "typetext" : "<boolean>"
7307 },
c5aa7e14
TL
7308 "controller" : {
7309 "description" : "Frr router name",
7310 "optional" : 1,
7311 "type" : "string",
7312 "typetext" : "<string>"
7313 },
5370fa8c
TL
7314 "disable-arp-nd-suppression" : {
7315 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
7316 "optional" : 1,
7317 "type" : "boolean",
7318 "typetext" : "<boolean>"
7319 },
d2656385
TL
7320 "dns" : {
7321 "description" : "dns api server",
7322 "optional" : 1,
7323 "type" : "string",
7324 "typetext" : "<string>"
7325 },
7326 "dnszone" : {
7327 "description" : "dns domain zone ex: mydomain.com",
7328 "format" : "dns-name",
7329 "optional" : 1,
7330 "type" : "string",
7331 "typetext" : "<string>"
7332 },
c5aa7e14
TL
7333 "dp-id" : {
7334 "description" : "Faucet dataplane id",
7335 "optional" : 1,
7336 "type" : "integer",
7337 "typetext" : "<integer>"
7338 },
d2656385
TL
7339 "exitnodes" : {
7340 "description" : "List of cluster node names.",
7341 "format" : "pve-node-list",
7342 "optional" : 1,
7343 "type" : "string",
7344 "typetext" : "<string>"
7345 },
5370fa8c
TL
7346 "exitnodes-local-routing" : {
7347 "description" : "Allow exitnodes to connect to evpn guests",
7348 "optional" : 1,
7349 "type" : "boolean",
7350 "typetext" : "<boolean>"
7351 },
c30bb419
TL
7352 "exitnodes-primary" : {
7353 "description" : "Force traffic to this exitnode first.",
7354 "format" : "pve-node",
7355 "optional" : 1,
7356 "type" : "string",
7357 "typetext" : "<string>"
7358 },
d2656385
TL
7359 "ipam" : {
7360 "description" : "use a specific ipam",
e7084ef7 7361 "optional" : 1,
d2656385
TL
7362 "type" : "string",
7363 "typetext" : "<string>"
7364 },
7365 "mac" : {
7366 "description" : "Anycast logical router mac address",
7367 "format" : "mac-addr",
7368 "optional" : 1,
7369 "type" : "string",
7370 "typetext" : "<string>"
7371 },
c5aa7e14 7372 "mtu" : {
ac70d7d1 7373 "description" : "MTU",
c5aa7e14
TL
7374 "optional" : 1,
7375 "type" : "integer",
7376 "typetext" : "<integer>"
7377 },
7378 "nodes" : {
7379 "description" : "List of cluster node names.",
7380 "format" : "pve-node-list",
7381 "optional" : 1,
7382 "type" : "string",
7383 "typetext" : "<string>"
7384 },
7385 "peers" : {
7386 "description" : "peers address list.",
7387 "format" : "ip-list",
7388 "optional" : 1,
7389 "type" : "string",
7390 "typetext" : "<string>"
7391 },
d2656385
TL
7392 "reversedns" : {
7393 "description" : "reverse dns api server",
7394 "optional" : 1,
7395 "type" : "string",
7396 "typetext" : "<string>"
7397 },
c30bb419
TL
7398 "rt-import" : {
7399 "description" : "Route-Target import",
7400 "format" : "pve-sdn-bgp-rt-list",
7401 "optional" : 1,
7402 "type" : "string",
7403 "typetext" : "<string>"
7404 },
c5aa7e14 7405 "tag" : {
ac70d7d1
TL
7406 "description" : "Service-VLAN Tag",
7407 "minimum" : 0,
c5aa7e14
TL
7408 "optional" : 1,
7409 "type" : "integer",
ac70d7d1 7410 "typetext" : "<integer> (0 - N)"
c5aa7e14
TL
7411 },
7412 "type" : {
7413 "description" : "Plugin type.",
7414 "enum" : [
7415 "evpn",
7416 "faucet",
7417 "qinq",
ac70d7d1 7418 "simple",
c5aa7e14
TL
7419 "vlan",
7420 "vxlan"
7421 ],
7422 "format" : "pve-configid",
7423 "type" : "string"
7424 },
ac70d7d1
TL
7425 "vlan-protocol" : {
7426 "default" : "802.1q",
7427 "enum" : [
7428 "802.1q",
7429 "802.1ad"
7430 ],
7431 "optional" : 1,
7432 "type" : "string"
7433 },
c5aa7e14
TL
7434 "vrf-vxlan" : {
7435 "description" : "l3vni.",
7436 "optional" : 1,
7437 "type" : "integer",
7438 "typetext" : "<integer>"
7439 },
7440 "zone" : {
7441 "description" : "The SDN zone object identifier.",
7442 "format" : "pve-sdn-zone-id",
7443 "type" : "string",
7444 "typetext" : "<string>"
7445 }
7446 },
7447 "type" : "object"
7448 },
7449 "permissions" : {
7450 "check" : [
7451 "perm",
7452 "/sdn/zones",
7453 [
7454 "SDN.Allocate"
7455 ]
7456 ]
7457 },
7458 "protected" : 1,
7459 "returns" : {
7460 "type" : "null"
7461 }
7462 }
7463 },
7464 "leaf" : 0,
7465 "path" : "/cluster/sdn/zones",
7466 "text" : "zones"
7467 },
7468 {
7469 "children" : [
7470 {
7471 "info" : {
7472 "DELETE" : {
7473 "allowtoken" : 1,
7474 "description" : "Delete sdn controller object configuration.",
7475 "method" : "DELETE",
7476 "name" : "delete",
7477 "parameters" : {
7478 "additionalProperties" : 0,
7479 "properties" : {
7480 "controller" : {
7481 "description" : "The SDN controller object identifier.",
7482 "format" : "pve-sdn-controller-id",
7483 "type" : "string",
7484 "typetext" : "<string>"
7485 }
7486 }
7487 },
7488 "permissions" : {
7489 "check" : [
7490 "perm",
7491 "/sdn/controllers",
7492 [
7493 "SDN.Allocate"
7494 ]
7495 ]
7496 },
7497 "protected" : 1,
7498 "returns" : {
7499 "type" : "null"
7500 }
7501 },
7502 "GET" : {
7503 "allowtoken" : 1,
7504 "description" : "Read sdn controller configuration.",
7505 "method" : "GET",
7506 "name" : "read",
7507 "parameters" : {
7508 "additionalProperties" : 0,
7509 "properties" : {
7510 "controller" : {
7511 "description" : "The SDN controller object identifier.",
7512 "format" : "pve-sdn-controller-id",
7513 "type" : "string",
7514 "typetext" : "<string>"
d2656385
TL
7515 },
7516 "pending" : {
7517 "description" : "Display pending config.",
7518 "optional" : 1,
7519 "type" : "boolean",
7520 "typetext" : "<boolean>"
7521 },
7522 "running" : {
7523 "description" : "Display running config.",
7524 "optional" : 1,
7525 "type" : "boolean",
7526 "typetext" : "<boolean>"
c5aa7e14
TL
7527 }
7528 }
7529 },
7530 "permissions" : {
7531 "check" : [
7532 "perm",
7533 "/sdn/controllers/{controller}",
7534 [
7535 "SDN.Allocate"
7536 ]
7537 ]
7538 },
7539 "returns" : {
7540 "type" : "object"
7541 }
7542 },
7543 "PUT" : {
7544 "allowtoken" : 1,
7545 "description" : "Update sdn controller object configuration.",
7546 "method" : "PUT",
7547 "name" : "update",
7548 "parameters" : {
7549 "additionalProperties" : 0,
7550 "properties" : {
7551 "asn" : {
7552 "description" : "autonomous system number",
c30bb419
TL
7553 "maximum" : 4294967296,
7554 "minimum" : 0,
c5aa7e14
TL
7555 "optional" : 1,
7556 "type" : "integer",
c30bb419
TL
7557 "typetext" : "<integer> (0 - 4294967296)"
7558 },
7559 "bgp-multipath-as-path-relax" : {
7560 "optional" : 1,
7561 "type" : "boolean",
7562 "typetext" : "<boolean>"
c5aa7e14
TL
7563 },
7564 "controller" : {
7565 "description" : "The SDN controller object identifier.",
7566 "format" : "pve-sdn-controller-id",
7567 "type" : "string",
7568 "typetext" : "<string>"
7569 },
7570 "delete" : {
7571 "description" : "A list of settings you want to delete.",
7572 "format" : "pve-configid-list",
7573 "maxLength" : 4096,
7574 "optional" : 1,
7575 "type" : "string",
7576 "typetext" : "<string>"
7577 },
7578 "digest" : {
7579 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7580 "maxLength" : 40,
7581 "optional" : 1,
7582 "type" : "string",
7583 "typetext" : "<string>"
7584 },
d2656385
TL
7585 "ebgp" : {
7586 "description" : "Enable ebgp. (remote-as external)",
7587 "optional" : 1,
7588 "type" : "boolean",
7589 "typetext" : "<boolean>"
7590 },
7591 "ebgp-multihop" : {
7592 "optional" : 1,
7593 "type" : "integer",
7594 "typetext" : "<integer>"
7595 },
7596 "loopback" : {
7597 "description" : "source loopback interface.",
c5aa7e14
TL
7598 "optional" : 1,
7599 "type" : "string",
7600 "typetext" : "<string>"
7601 },
d2656385
TL
7602 "node" : {
7603 "description" : "The cluster node name.",
7604 "format" : "pve-node",
c5aa7e14
TL
7605 "optional" : 1,
7606 "type" : "string",
7607 "typetext" : "<string>"
7608 },
7609 "peers" : {
7610 "description" : "peers address list.",
7611 "format" : "ip-list",
7612 "optional" : 1,
7613 "type" : "string",
7614 "typetext" : "<string>"
7615 }
7616 },
7617 "type" : "object"
7618 },
7619 "permissions" : {
7620 "check" : [
7621 "perm",
7622 "/sdn/controllers",
7623 [
7624 "SDN.Allocate"
7625 ]
7626 ]
7627 },
7628 "protected" : 1,
7629 "returns" : {
7630 "type" : "null"
7631 }
7632 }
7633 },
7634 "leaf" : 1,
7635 "path" : "/cluster/sdn/controllers/{controller}",
7636 "text" : "{controller}"
7637 }
7638 ],
7639 "info" : {
7640 "GET" : {
7641 "allowtoken" : 1,
7642 "description" : "SDN controllers index.",
7643 "method" : "GET",
7644 "name" : "index",
7645 "parameters" : {
7646 "additionalProperties" : 0,
7647 "properties" : {
d2656385
TL
7648 "pending" : {
7649 "description" : "Display pending config.",
7650 "optional" : 1,
7651 "type" : "boolean",
7652 "typetext" : "<boolean>"
7653 },
7654 "running" : {
7655 "description" : "Display running config.",
7656 "optional" : 1,
7657 "type" : "boolean",
7658 "typetext" : "<boolean>"
7659 },
c5aa7e14
TL
7660 "type" : {
7661 "description" : "Only list sdn controllers of specific type",
7662 "enum" : [
d2656385 7663 "bgp",
c5aa7e14
TL
7664 "evpn",
7665 "faucet"
7666 ],
7667 "optional" : 1,
7668 "type" : "string"
7669 }
7670 }
7671 },
7672 "permissions" : {
7673 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/controllers/<controller>'",
7674 "user" : "all"
7675 },
7676 "returns" : {
7677 "items" : {
7678 "properties" : {
7679 "controller" : {
7680 "type" : "string"
7681 },
d2656385
TL
7682 "pending" : {
7683 "optional" : 1
7684 },
7685 "state" : {
7686 "optional" : 1,
7687 "type" : "string"
7688 },
c5aa7e14
TL
7689 "type" : {
7690 "type" : "string"
7691 }
7692 },
7693 "type" : "object"
7694 },
7695 "links" : [
7696 {
7697 "href" : "{controller}",
7698 "rel" : "child"
7699 }
7700 ],
7701 "type" : "array"
7702 }
7703 },
7704 "POST" : {
7705 "allowtoken" : 1,
7706 "description" : "Create a new sdn controller object.",
7707 "method" : "POST",
7708 "name" : "create",
7709 "parameters" : {
7710 "additionalProperties" : 0,
7711 "properties" : {
7712 "asn" : {
7713 "description" : "autonomous system number",
c30bb419
TL
7714 "maximum" : 4294967296,
7715 "minimum" : 0,
c5aa7e14
TL
7716 "optional" : 1,
7717 "type" : "integer",
c30bb419
TL
7718 "typetext" : "<integer> (0 - 4294967296)"
7719 },
7720 "bgp-multipath-as-path-relax" : {
7721 "optional" : 1,
7722 "type" : "boolean",
7723 "typetext" : "<boolean>"
c5aa7e14
TL
7724 },
7725 "controller" : {
7726 "description" : "The SDN controller object identifier.",
7727 "format" : "pve-sdn-controller-id",
7728 "type" : "string",
7729 "typetext" : "<string>"
7730 },
d2656385
TL
7731 "ebgp" : {
7732 "description" : "Enable ebgp. (remote-as external)",
7733 "optional" : 1,
7734 "type" : "boolean",
7735 "typetext" : "<boolean>"
7736 },
7737 "ebgp-multihop" : {
7738 "optional" : 1,
7739 "type" : "integer",
7740 "typetext" : "<integer>"
7741 },
7742 "loopback" : {
7743 "description" : "source loopback interface.",
c5aa7e14
TL
7744 "optional" : 1,
7745 "type" : "string",
7746 "typetext" : "<string>"
7747 },
d2656385
TL
7748 "node" : {
7749 "description" : "The cluster node name.",
7750 "format" : "pve-node",
c5aa7e14
TL
7751 "optional" : 1,
7752 "type" : "string",
7753 "typetext" : "<string>"
7754 },
7755 "peers" : {
7756 "description" : "peers address list.",
7757 "format" : "ip-list",
7758 "optional" : 1,
7759 "type" : "string",
7760 "typetext" : "<string>"
7761 },
7762 "type" : {
7763 "description" : "Plugin type.",
7764 "enum" : [
d2656385 7765 "bgp",
c5aa7e14
TL
7766 "evpn",
7767 "faucet"
7768 ],
7769 "format" : "pve-configid",
7770 "type" : "string"
7771 }
7772 },
7773 "type" : "object"
7774 },
7775 "permissions" : {
7776 "check" : [
7777 "perm",
7778 "/sdn/controllers",
7779 [
7780 "SDN.Allocate"
7781 ]
7782 ]
7783 },
7784 "protected" : 1,
7785 "returns" : {
7786 "type" : "null"
7787 }
7788 }
7789 },
7790 "leaf" : 0,
7791 "path" : "/cluster/sdn/controllers",
7792 "text" : "controllers"
d2656385
TL
7793 },
7794 {
7795 "children" : [
7796 {
7797 "info" : {
7798 "DELETE" : {
7799 "allowtoken" : 1,
7800 "description" : "Delete sdn ipam object configuration.",
7801 "method" : "DELETE",
7802 "name" : "delete",
7803 "parameters" : {
7804 "additionalProperties" : 0,
7805 "properties" : {
7806 "ipam" : {
7807 "description" : "The SDN ipam object identifier.",
7808 "format" : "pve-sdn-ipam-id",
7809 "type" : "string",
7810 "typetext" : "<string>"
7811 }
7812 }
7813 },
7814 "permissions" : {
7815 "check" : [
7816 "perm",
7817 "/sdn/ipams",
7818 [
7819 "SDN.Allocate"
7820 ]
7821 ]
7822 },
7823 "protected" : 1,
7824 "returns" : {
7825 "type" : "null"
7826 }
7827 },
7828 "GET" : {
7829 "allowtoken" : 1,
7830 "description" : "Read sdn ipam configuration.",
7831 "method" : "GET",
7832 "name" : "read",
7833 "parameters" : {
7834 "additionalProperties" : 0,
7835 "properties" : {
7836 "ipam" : {
7837 "description" : "The SDN ipam object identifier.",
7838 "format" : "pve-sdn-ipam-id",
7839 "type" : "string",
7840 "typetext" : "<string>"
7841 }
7842 }
7843 },
7844 "permissions" : {
7845 "check" : [
7846 "perm",
7847 "/sdn/ipams/{ipam}",
7848 [
7849 "SDN.Allocate"
7850 ]
7851 ]
7852 },
7853 "returns" : {
7854 "type" : "object"
7855 }
7856 },
7857 "PUT" : {
7858 "allowtoken" : 1,
7859 "description" : "Update sdn ipam object configuration.",
7860 "method" : "PUT",
7861 "name" : "update",
7862 "parameters" : {
7863 "additionalProperties" : 0,
7864 "properties" : {
7865 "delete" : {
7866 "description" : "A list of settings you want to delete.",
7867 "format" : "pve-configid-list",
7868 "maxLength" : 4096,
7869 "optional" : 1,
7870 "type" : "string",
7871 "typetext" : "<string>"
7872 },
7873 "digest" : {
7874 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7875 "maxLength" : 40,
7876 "optional" : 1,
7877 "type" : "string",
7878 "typetext" : "<string>"
7879 },
7880 "ipam" : {
7881 "description" : "The SDN ipam object identifier.",
7882 "format" : "pve-sdn-ipam-id",
7883 "type" : "string",
7884 "typetext" : "<string>"
7885 },
7886 "section" : {
7887 "optional" : 1,
7888 "type" : "integer",
7889 "typetext" : "<integer>"
7890 },
7891 "token" : {
7892 "optional" : 1,
7893 "type" : "string",
7894 "typetext" : "<string>"
7895 },
7896 "url" : {
7897 "optional" : 1,
7898 "type" : "string",
7899 "typetext" : "<string>"
7900 }
7901 },
7902 "type" : "object"
7903 },
7904 "permissions" : {
7905 "check" : [
7906 "perm",
7907 "/sdn/ipams",
7908 [
7909 "SDN.Allocate"
7910 ]
7911 ]
7912 },
7913 "protected" : 1,
7914 "returns" : {
7915 "type" : "null"
7916 }
c5aa7e14
TL
7917 }
7918 },
d2656385
TL
7919 "leaf" : 1,
7920 "path" : "/cluster/sdn/ipams/{ipam}",
7921 "text" : "{ipam}"
7aacca6f 7922 }
d2656385
TL
7923 ],
7924 "info" : {
7925 "GET" : {
7926 "allowtoken" : 1,
7927 "description" : "SDN ipams index.",
7928 "method" : "GET",
7929 "name" : "index",
7930 "parameters" : {
7931 "additionalProperties" : 0,
7932 "properties" : {
7933 "type" : {
7934 "description" : "Only list sdn ipams of specific type",
7935 "enum" : [
7936 "netbox",
7937 "phpipam",
7938 "pve"
7939 ],
7940 "optional" : 1,
7941 "type" : "string"
7942 }
7943 }
7944 },
7945 "permissions" : {
7946 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/ipams/<ipam>'",
7947 "user" : "all"
7948 },
7949 "returns" : {
7950 "items" : {
7951 "properties" : {
7952 "ipam" : {
7953 "type" : "string"
7954 },
7955 "type" : {
7956 "type" : "string"
7957 }
7958 },
7959 "type" : "object"
7960 },
7961 "links" : [
7962 {
7963 "href" : "{ipam}",
7964 "rel" : "child"
7965 }
44660702 7966 ],
d2656385
TL
7967 "type" : "array"
7968 }
7969 },
7970 "POST" : {
7971 "allowtoken" : 1,
7972 "description" : "Create a new sdn ipam object.",
7973 "method" : "POST",
7974 "name" : "create",
7975 "parameters" : {
7976 "additionalProperties" : 0,
7977 "properties" : {
7978 "ipam" : {
7979 "description" : "The SDN ipam object identifier.",
7980 "format" : "pve-sdn-ipam-id",
7981 "type" : "string",
7982 "typetext" : "<string>"
7983 },
7984 "section" : {
7985 "optional" : 1,
7986 "type" : "integer",
7987 "typetext" : "<integer>"
7988 },
7989 "token" : {
7990 "optional" : 1,
7991 "type" : "string",
7992 "typetext" : "<string>"
7993 },
7994 "type" : {
7995 "description" : "Plugin type.",
7996 "enum" : [
7997 "netbox",
7998 "phpipam",
7999 "pve"
8000 ],
8001 "format" : "pve-configid",
8002 "type" : "string"
8003 },
8004 "url" : {
8005 "optional" : 1,
8006 "type" : "string",
8007 "typetext" : "<string>"
8008 }
8009 },
8010 "type" : "object"
8011 },
8012 "permissions" : {
8013 "check" : [
8014 "perm",
8015 "/sdn/ipams",
8016 [
8017 "SDN.Allocate"
8018 ]
8019 ]
8020 },
8021 "protected" : 1,
8022 "returns" : {
8023 "type" : "null"
56122987
DM
8024 }
8025 }
8026 },
d2656385
TL
8027 "leaf" : 0,
8028 "path" : "/cluster/sdn/ipams",
8029 "text" : "ipams"
8030 },
8031 {
8032 "children" : [
8033 {
8034 "info" : {
8035 "DELETE" : {
8036 "allowtoken" : 1,
8037 "description" : "Delete sdn dns object configuration.",
8038 "method" : "DELETE",
8039 "name" : "delete",
8040 "parameters" : {
8041 "additionalProperties" : 0,
8042 "properties" : {
8043 "dns" : {
8044 "description" : "The SDN dns object identifier.",
8045 "format" : "pve-sdn-dns-id",
8046 "type" : "string",
8047 "typetext" : "<string>"
8048 }
8049 }
8050 },
8051 "permissions" : {
8052 "check" : [
8053 "perm",
8054 "/sdn/dns",
8055 [
8056 "SDN.Allocate"
8057 ]
8058 ]
8059 },
8060 "protected" : 1,
8061 "returns" : {
8062 "type" : "null"
8063 }
8064 },
8065 "GET" : {
8066 "allowtoken" : 1,
8067 "description" : "Read sdn dns configuration.",
8068 "method" : "GET",
8069 "name" : "read",
8070 "parameters" : {
8071 "additionalProperties" : 0,
8072 "properties" : {
8073 "dns" : {
8074 "description" : "The SDN dns object identifier.",
8075 "format" : "pve-sdn-dns-id",
8076 "type" : "string",
8077 "typetext" : "<string>"
8078 }
8079 }
8080 },
8081 "permissions" : {
8082 "check" : [
8083 "perm",
8084 "/sdn/dns/{dns}",
8085 [
8086 "SDN.Allocate"
8087 ]
8088 ]
8089 },
8090 "returns" : {
8091 "type" : "object"
8092 }
8093 },
8094 "PUT" : {
8095 "allowtoken" : 1,
8096 "description" : "Update sdn dns object configuration.",
8097 "method" : "PUT",
8098 "name" : "update",
8099 "parameters" : {
8100 "additionalProperties" : 0,
8101 "properties" : {
8102 "delete" : {
8103 "description" : "A list of settings you want to delete.",
8104 "format" : "pve-configid-list",
8105 "maxLength" : 4096,
8106 "optional" : 1,
8107 "type" : "string",
8108 "typetext" : "<string>"
8109 },
8110 "digest" : {
8111 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
8112 "maxLength" : 40,
8113 "optional" : 1,
8114 "type" : "string",
8115 "typetext" : "<string>"
8116 },
8117 "dns" : {
8118 "description" : "The SDN dns object identifier.",
8119 "format" : "pve-sdn-dns-id",
8120 "type" : "string",
8121 "typetext" : "<string>"
8122 },
8123 "key" : {
8124 "optional" : 1,
8125 "type" : "string",
8126 "typetext" : "<string>"
8127 },
8128 "reversemaskv6" : {
8129 "optional" : 1,
8130 "type" : "integer",
8131 "typetext" : "<integer>"
8132 },
8133 "ttl" : {
8134 "optional" : 1,
8135 "type" : "integer",
8136 "typetext" : "<integer>"
8137 },
8138 "url" : {
8139 "optional" : 1,
8140 "type" : "string",
8141 "typetext" : "<string>"
8142 }
8143 },
8144 "type" : "object"
8145 },
8146 "permissions" : {
8147 "check" : [
8148 "perm",
8149 "/sdn/dns",
8150 [
8151 "SDN.Allocate"
8152 ]
8153 ]
8154 },
8155 "protected" : 1,
8156 "returns" : {
8157 "type" : "null"
8158 }
8159 }
8160 },
8161 "leaf" : 1,
8162 "path" : "/cluster/sdn/dns/{dns}",
8163 "text" : "{dns}"
8164 }
8165 ],
8166 "info" : {
8167 "GET" : {
8168 "allowtoken" : 1,
8169 "description" : "SDN dns index.",
8170 "method" : "GET",
8171 "name" : "index",
8172 "parameters" : {
8173 "additionalProperties" : 0,
8174 "properties" : {
8175 "type" : {
8176 "description" : "Only list sdn dns of specific type",
8177 "enum" : [
8178 "powerdns"
8179 ],
8180 "optional" : 1,
8181 "type" : "string"
8182 }
8183 }
8184 },
8185 "permissions" : {
8186 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/dns/<dns>'",
8187 "user" : "all"
8188 },
8189 "returns" : {
8190 "items" : {
8191 "properties" : {
8192 "dns" : {
8193 "type" : "string"
8194 },
8195 "type" : {
8196 "type" : "string"
8197 }
8198 },
8199 "type" : "object"
8200 },
8201 "links" : [
8202 {
8203 "href" : "{dns}",
8204 "rel" : "child"
8205 }
8206 ],
8207 "type" : "array"
8208 }
8209 },
8210 "POST" : {
8211 "allowtoken" : 1,
8212 "description" : "Create a new sdn dns object.",
8213 "method" : "POST",
8214 "name" : "create",
8215 "parameters" : {
8216 "additionalProperties" : 0,
8217 "properties" : {
8218 "dns" : {
8219 "description" : "The SDN dns object identifier.",
8220 "format" : "pve-sdn-dns-id",
8221 "type" : "string",
8222 "typetext" : "<string>"
8223 },
8224 "key" : {
8225 "optional" : 0,
8226 "type" : "string",
8227 "typetext" : "<string>"
8228 },
8229 "reversemaskv6" : {
8230 "optional" : 1,
8231 "type" : "integer",
8232 "typetext" : "<integer>"
8233 },
8234 "reversev6mask" : {
8235 "optional" : 1,
8236 "type" : "integer",
8237 "typetext" : "<integer>"
8238 },
8239 "ttl" : {
8240 "optional" : 1,
8241 "type" : "integer",
8242 "typetext" : "<integer>"
8243 },
8244 "type" : {
8245 "description" : "Plugin type.",
8246 "enum" : [
8247 "powerdns"
8248 ],
8249 "format" : "pve-configid",
8250 "type" : "string"
8251 },
8252 "url" : {
8253 "optional" : 0,
8254 "type" : "string",
8255 "typetext" : "<string>"
8256 }
8257 },
8258 "type" : "object"
8259 },
8260 "permissions" : {
8261 "check" : [
8262 "perm",
8263 "/sdn/dns",
8264 [
8265 "SDN.Allocate"
8266 ]
8267 ]
8268 },
8269 "protected" : 1,
8270 "returns" : {
8271 "type" : "null"
8272 }
8273 }
8274 },
8275 "leaf" : 0,
8276 "path" : "/cluster/sdn/dns",
8277 "text" : "dns"
8278 }
8279 ],
8280 "info" : {
8281 "GET" : {
8282 "allowtoken" : 1,
8283 "description" : "Directory index.",
8284 "method" : "GET",
8285 "name" : "index",
8286 "parameters" : {
8287 "additionalProperties" : 0
8288 },
8289 "permissions" : {
8290 "check" : [
8291 "perm",
8292 "/",
8293 [
8294 "SDN.Audit"
8295 ]
8296 ]
8297 },
8298 "returns" : {
8299 "items" : {
8300 "properties" : {
8301 "id" : {
8302 "type" : "string"
8303 }
8304 },
8305 "type" : "object"
8306 },
8307 "links" : [
8308 {
8309 "href" : "{id}",
8310 "rel" : "child"
8311 }
8312 ],
8313 "type" : "array"
8314 }
8315 },
8316 "PUT" : {
8317 "allowtoken" : 1,
8318 "description" : "Apply sdn controller changes && reload.",
8319 "method" : "PUT",
8320 "name" : "reload",
8321 "parameters" : {
8322 "additionalProperties" : 0
8323 },
8324 "permissions" : {
8325 "check" : [
8326 "perm",
8327 "/sdn",
8328 [
8329 "SDN.Allocate"
8330 ]
8331 ]
8332 },
8333 "protected" : 1,
8334 "returns" : {
8335 "type" : "string"
8336 }
8337 }
8338 },
8339 "leaf" : 0,
8340 "path" : "/cluster/sdn",
8341 "text" : "sdn"
8342 },
8343 {
8344 "info" : {
8345 "GET" : {
8346 "allowtoken" : 1,
8347 "description" : "Read cluster log",
8348 "method" : "GET",
8349 "name" : "log",
8350 "parameters" : {
8351 "additionalProperties" : 0,
8352 "properties" : {
8353 "max" : {
8354 "description" : "Maximum number of entries.",
8355 "minimum" : 1,
8356 "optional" : 1,
8357 "type" : "integer",
8358 "typetext" : "<integer> (1 - N)"
8359 }
8360 }
8361 },
8362 "permissions" : {
8363 "user" : "all"
8364 },
8365 "returns" : {
8366 "items" : {
8367 "properties" : {},
8368 "type" : "object"
8369 },
8370 "type" : "array"
8371 }
8372 }
8373 },
8374 "leaf" : 1,
8375 "path" : "/cluster/log",
8376 "text" : "log"
8377 },
8378 {
8379 "info" : {
8380 "GET" : {
8381 "allowtoken" : 1,
8382 "description" : "Resources index (cluster wide).",
8383 "method" : "GET",
8384 "name" : "resources",
8385 "parameters" : {
8386 "additionalProperties" : 0,
8387 "properties" : {
8388 "type" : {
8389 "enum" : [
8390 "vm",
8391 "storage",
8392 "node",
8393 "sdn"
8394 ],
8395 "optional" : 1,
8396 "type" : "string"
8397 }
8398 }
8399 },
8400 "permissions" : {
8401 "user" : "all"
8402 },
8403 "returns" : {
8404 "items" : {
8405 "properties" : {
8406 "content" : {
8407 "description" : "Allowed storage content types (when type == storage).",
8408 "format" : "pve-storage-content-list",
8409 "optional" : 1,
8410 "type" : "string"
8411 },
8412 "cpu" : {
8413 "description" : "CPU utilization (when type in node,qemu,lxc).",
4d47f125
TL
8414 "optional" : 1,
8415 "renderer" : "fraction_as_percentage",
8416 "type" : "number"
8417 },
8418 "disk" : {
8419 "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
8420 "optional" : 1,
8421 "renderer" : "bytes",
8422 "type" : "string"
8423 },
8424 "hastate" : {
8425 "description" : "HA service status (for HA managed VMs).",
8426 "optional" : 1,
8427 "type" : "string"
8428 },
8429 "id" : {
8430 "type" : "string"
8431 },
8432 "level" : {
8433 "description" : "Support level (when type == node).",
8434 "optional" : 1,
8435 "type" : "string"
8436 },
8437 "maxcpu" : {
8438 "description" : "Number of available CPUs (when type in node,qemu,lxc).",
8439 "optional" : 1,
8440 "type" : "number"
8441 },
8442 "maxdisk" : {
8443 "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
8444 "optional" : 1,
8445 "renderer" : "bytes",
8446 "type" : "integer"
8447 },
8448 "maxmem" : {
8449 "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
8450 "optional" : 1,
8451 "renderer" : "bytes",
8452 "type" : "integer"
8453 },
8454 "mem" : {
8455 "description" : "Used memory in bytes (when type in node,qemu,lxc).",
8456 "optional" : 1,
8457 "renderer" : "bytes",
8458 "type" : "string"
8459 },
34f3e481
TL
8460 "name" : {
8461 "description" : "Name of the resource.",
8462 "optional" : 1,
8463 "type" : "string"
8464 },
4d47f125
TL
8465 "node" : {
8466 "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
8467 "format" : "pve-node",
8468 "optional" : 1,
8469 "type" : "string"
8470 },
d2656385
TL
8471 "plugintype" : {
8472 "description" : "More specific type, if available.",
8473 "optional" : 1,
8474 "type" : "string"
8475 },
4d47f125
TL
8476 "pool" : {
8477 "description" : "The pool name (when type in pool,qemu,lxc).",
8478 "optional" : 1,
8479 "type" : "string"
8480 },
8481 "status" : {
8482 "description" : "Resource type dependent status.",
8483 "optional" : 1,
8484 "type" : "string"
8485 },
8486 "storage" : {
8487 "description" : "The storage identifier (when type == storage).",
8488 "format" : "pve-storage-id",
8489 "optional" : 1,
8490 "type" : "string"
8491 },
8492 "type" : {
8493 "description" : "Resource type.",
8494 "enum" : [
8495 "node",
8496 "storage",
8497 "pool",
8498 "qemu",
8499 "lxc",
1c532546
TL
8500 "openvz",
8501 "sdn"
4d47f125
TL
8502 ],
8503 "type" : "string"
8504 },
8505 "uptime" : {
8506 "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
8507 "optional" : 1,
8508 "renderer" : "duration",
8509 "type" : "integer"
8510 }
8511 },
44660702
DM
8512 "type" : "object"
8513 },
8514 "type" : "array"
8515 }
56122987
DM
8516 }
8517 },
7aacca6f 8518 "leaf" : 1,
44660702
DM
8519 "path" : "/cluster/resources",
8520 "text" : "resources"
56122987
DM
8521 },
8522 {
56122987
DM
8523 "info" : {
8524 "GET" : {
e9cd3bd4 8525 "allowtoken" : 1,
7aacca6f 8526 "description" : "List recent tasks (cluster wide).",
44660702 8527 "method" : "GET",
7aacca6f 8528 "name" : "tasks",
56122987
DM
8529 "parameters" : {
8530 "additionalProperties" : 0
8531 },
44660702
DM
8532 "permissions" : {
8533 "user" : "all"
8534 },
56122987
DM
8535 "returns" : {
8536 "items" : {
8537 "properties" : {
8538 "upid" : {
8539 "type" : "string"
8540 }
44660702
DM
8541 },
8542 "type" : "object"
8543 },
8544 "type" : "array"
7aacca6f 8545 }
56122987
DM
8546 }
8547 },
7aacca6f 8548 "leaf" : 1,
44660702
DM
8549 "path" : "/cluster/tasks",
8550 "text" : "tasks"
56122987
DM
8551 },
8552 {
56122987 8553 "info" : {
7aacca6f 8554 "GET" : {
e9cd3bd4 8555 "allowtoken" : 1,
44660702
DM
8556 "description" : "Get datacenter options.",
8557 "method" : "GET",
8558 "name" : "get_options",
56122987 8559 "parameters" : {
7aacca6f
DM
8560 "additionalProperties" : 0
8561 },
8562 "permissions" : {
8563 "check" : [
8564 "perm",
8565 "/",
8566 [
8567 "Sys.Audit"
8568 ]
8569 ]
8570 },
7aacca6f 8571 "returns" : {
44660702 8572 "type" : "object"
7aacca6f
DM
8573 }
8574 },
8575 "PUT" : {
e9cd3bd4 8576 "allowtoken" : 1,
44660702
DM
8577 "description" : "Set datacenter options.",
8578 "method" : "PUT",
7aacca6f
DM
8579 "name" : "set_options",
8580 "parameters" : {
8581 "additionalProperties" : 0,
8582 "properties" : {
27a7acb2
DM
8583 "bwlimit" : {
8584 "description" : "Set bandwidth/io limits various operations.",
8585 "format" : {
8586 "clone" : {
95895385 8587 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
8588 "format_description" : "LIMIT",
8589 "minimum" : "0",
8590 "optional" : 1,
8591 "type" : "number"
8592 },
8593 "default" : {
95895385 8594 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
8595 "format_description" : "LIMIT",
8596 "minimum" : "0",
8597 "optional" : 1,
8598 "type" : "number"
8599 },
8600 "migration" : {
95895385 8601 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
8602 "format_description" : "LIMIT",
8603 "minimum" : "0",
8604 "optional" : 1,
8605 "type" : "number"
8606 },
8607 "move" : {
95895385 8608 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
8609 "format_description" : "LIMIT",
8610 "minimum" : "0",
8611 "optional" : 1,
8612 "type" : "number"
8613 },
8614 "restore" : {
95895385 8615 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
8616 "format_description" : "LIMIT",
8617 "minimum" : "0",
8618 "optional" : 1,
8619 "type" : "number"
8620 }
8621 },
8622 "optional" : 1,
8623 "type" : "string",
8624 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
8625 },
56122987 8626 "console" : {
a9a8e3d1 8627 "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
8628 "enum" : [
8629 "applet",
8630 "vv",
a9a8e3d1
DM
8631 "html5",
8632 "xtermjs"
44660702
DM
8633 ],
8634 "optional" : 1,
8635 "type" : "string"
56122987 8636 },
7aacca6f 8637 "delete" : {
7aacca6f 8638 "description" : "A list of settings you want to delete.",
44660702 8639 "format" : "pve-configid-list",
7aacca6f 8640 "optional" : 1,
013dc89f
DM
8641 "type" : "string",
8642 "typetext" : "<string>"
7aacca6f 8643 },
5370fa8c
TL
8644 "description" : {
8645 "description" : "Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.",
8646 "maxLength" : 65536,
8647 "optional" : 1,
8648 "type" : "string",
8649 "typetext" : "<string>"
8650 },
44660702
DM
8651 "email_from" : {
8652 "description" : "Specify email address to send notification from (default is root@$hostname)",
8653 "format" : "email-opt",
7aacca6f 8654 "optional" : 1,
013dc89f
DM
8655 "type" : "string",
8656 "typetext" : "<string>"
44660702
DM
8657 },
8658 "fencing" : {
8659 "default" : "watchdog",
8660 "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 8661 "enum" : [
44660702
DM
8662 "watchdog",
8663 "hardware",
8664 "both"
7aacca6f 8665 ],
44660702
DM
8666 "optional" : 1,
8667 "type" : "string"
8668 },
5f26e15b
TL
8669 "ha" : {
8670 "description" : "Cluster wide HA settings.",
8671 "format" : {
8672 "shutdown_policy" : {
8673 "default" : "conditional",
5c1699e5 8674 "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
8675 "enum" : [
8676 "freeze",
8677 "failover",
5c1699e5
TL
8678 "conditional",
8679 "migrate"
5f26e15b
TL
8680 ],
8681 "type" : "string",
e9cd3bd4 8682 "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
8683 }
8684 },
8685 "optional" : 1,
8686 "type" : "string",
5c1699e5 8687 "typetext" : "shutdown_policy=<enum>"
5f26e15b 8688 },
44660702
DM
8689 "http_proxy" : {
8690 "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
8691 "optional" : 1,
8692 "pattern" : "http://.*",
8693 "type" : "string"
7aacca6f 8694 },
56122987 8695 "keyboard" : {
44660702 8696 "description" : "Default keybord layout for vnc server.",
56122987 8697 "enum" : [
44660702
DM
8698 "de",
8699 "de-ch",
7aacca6f 8700 "da",
56122987 8701 "en-gb",
44660702
DM
8702 "en-us",
8703 "es",
8704 "fi",
8705 "fr",
8706 "fr-be",
8707 "fr-ca",
8708 "fr-ch",
8709 "hu",
7aacca6f 8710 "is",
44660702
DM
8711 "it",
8712 "ja",
8713 "lt",
56122987 8714 "mk",
7aacca6f 8715 "nl",
56122987 8716 "no",
44660702 8717 "pl",
7aacca6f 8718 "pt",
44660702
DM
8719 "pt-br",
8720 "sv",
8721 "sl",
8722 "tr"
56122987 8723 ],
56122987
DM
8724 "optional" : 1,
8725 "type" : "string"
8726 },
44660702
DM
8727 "language" : {
8728 "description" : "Default GUI language.",
8729 "enum" : [
4d47f125 8730 "ca",
1c532546
TL
8731 "da",
8732 "de",
44660702 8733 "en",
1c532546 8734 "es",
4d47f125 8735 "eu",
1c532546 8736 "fa",
4d47f125 8737 "fr",
1c532546 8738 "he",
4d47f125 8739 "it",
4d47f125
TL
8740 "ja",
8741 "nb",
8742 "nn",
4d47f125
TL
8743 "pl",
8744 "pt_BR",
8745 "ru",
8746 "sl",
8747 "sv",
1c532546
TL
8748 "tr",
8749 "zh_CN",
8750 "zh_TW"
44660702 8751 ],
56122987 8752 "optional" : 1,
44660702 8753 "type" : "string"
56122987 8754 },
4bd7df8b
DM
8755 "mac_prefix" : {
8756 "description" : "Prefix for autogenerated MAC addresses.",
95895385 8757 "format" : "mac-prefix",
4bd7df8b 8758 "optional" : 1,
95895385
TL
8759 "type" : "string",
8760 "typetext" : "<string>"
4bd7df8b 8761 },
44660702
DM
8762 "max_workers" : {
8763 "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
8764 "minimum" : 1,
56122987 8765 "optional" : 1,
4bd7df8b 8766 "type" : "integer",
013dc89f 8767 "typetext" : "<integer> (1 - N)"
56122987 8768 },
de0983cb
DM
8769 "migration" : {
8770 "description" : "For cluster wide migration settings.",
8771 "format" : {
8772 "network" : {
8773 "description" : "CIDR of the (sub) network that is used for migration.",
8774 "format" : "CIDR",
8775 "format_description" : "CIDR",
8776 "optional" : 1,
8777 "type" : "string"
8778 },
8779 "type" : {
8780 "default" : "secure",
8781 "default_key" : 1,
8782 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
8783 "enum" : [
8784 "secure",
8785 "insecure"
8786 ],
8787 "type" : "string"
8788 }
8789 },
8790 "optional" : 1,
8791 "type" : "string",
8792 "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
8793 },
7aacca6f 8794 "migration_unsecure" : {
de0983cb 8795 "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 8796 "optional" : 1,
013dc89f
DM
8797 "type" : "boolean",
8798 "typetext" : "<boolean>"
95895385 8799 },
7af2edf9
TL
8800 "next-id" : {
8801 "description" : "Control the range for the free VMID auto-selection pool.",
8802 "format" : {
8803 "lower" : {
8804 "default" : 100,
8805 "description" : "Lower, inclusive boundary for free next-id API range.",
8806 "max" : 999999999,
8807 "min" : 100,
8808 "optional" : 1,
8809 "type" : "integer"
8810 },
8811 "upper" : {
8812 "default" : 1000000,
8813 "description" : "Upper, inclusive boundary for free next-id API range.",
8814 "max" : 999999999,
8815 "min" : 100,
8816 "optional" : 1,
8817 "type" : "integer"
8818 }
8819 },
8820 "optional" : 1,
8821 "type" : "string",
8822 "typetext" : "[lower=<integer>] [,upper=<integer>]"
8823 },
95895385
TL
8824 "u2f" : {
8825 "description" : "u2f",
8826 "format" : {
8827 "appid" : {
8828 "description" : "U2F AppId URL override. Defaults to the origin.",
8829 "format_description" : "APPID",
8830 "optional" : 1,
8831 "type" : "string"
8832 },
8833 "origin" : {
8834 "description" : "U2F Origin override. Mostly useful for single nodes with a single URL.",
8835 "format_description" : "URL",
8836 "optional" : 1,
8837 "type" : "string"
8838 }
8839 },
8840 "optional" : 1,
8841 "type" : "string",
8842 "typetext" : "[appid=<APPID>] [,origin=<URL>]"
5370fa8c
TL
8843 },
8844 "webauthn" : {
8845 "description" : "webauthn configuration",
8846 "format" : {
8847 "id" : {
8848 "description" : "Relying part ID. Must be the domain name without protocol, port or location. Changing this *will* break existing credentials.",
8849 "format_description" : "DOMAINNAME",
8850 "optional" : 1,
8851 "type" : "string"
8852 },
8853 "origin" : {
8854 "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.",
8855 "format_description" : "URL",
8856 "optional" : 1,
8857 "type" : "string"
8858 },
8859 "rp" : {
8860 "description" : "Relying party name. Any text identifier. Changing this *may* break existing credentials.",
8861 "format_description" : "RELYING_PARTY",
8862 "optional" : 1,
8863 "type" : "string"
8864 }
8865 },
8866 "optional" : 1,
8867 "type" : "string",
8868 "typetext" : "[id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>]"
56122987
DM
8869 }
8870 }
8871 },
44660702
DM
8872 "permissions" : {
8873 "check" : [
8874 "perm",
8875 "/",
8876 [
8877 "Sys.Modify"
8878 ]
8879 ]
8880 },
56122987 8881 "protected" : 1,
7aacca6f
DM
8882 "returns" : {
8883 "type" : "null"
44660702 8884 }
7aacca6f
DM
8885 }
8886 },
44660702
DM
8887 "leaf" : 1,
8888 "path" : "/cluster/options",
7aacca6f
DM
8889 "text" : "options"
8890 },
8891 {
7aacca6f 8892 "info" : {
56122987 8893 "GET" : {
e9cd3bd4 8894 "allowtoken" : 1,
1e3f8156 8895 "description" : "Get cluster status information.",
44660702
DM
8896 "method" : "GET",
8897 "name" : "get_status",
56122987
DM
8898 "parameters" : {
8899 "additionalProperties" : 0
8900 },
56122987
DM
8901 "permissions" : {
8902 "check" : [
8903 "perm",
8904 "/",
8905 [
8906 "Sys.Audit"
8907 ]
8908 ]
8909 },
7aacca6f 8910 "protected" : 1,
56122987 8911 "returns" : {
56122987 8912 "items" : {
56122987 8913 "properties" : {
e9cd3bd4
TL
8914 "id" : {
8915 "type" : "string"
8916 },
8917 "ip" : {
8918 "description" : "[node] IP of the resolved nodename.",
8919 "optional" : 1,
8920 "type" : "string"
8921 },
8922 "level" : {
8923 "description" : "[node] Proxmox VE Subscription level, indicates if eligible for enterprise support as well as access to the stable Proxmox VE Enterprise Repository.",
8924 "optional" : 1,
8925 "type" : "string"
8926 },
8927 "local" : {
8928 "description" : "[node] Indicates if this is the responding node.",
8929 "optional" : 1,
8930 "type" : "boolean"
8931 },
8932 "name" : {
8933 "type" : "string"
8934 },
8935 "nodeid" : {
8936 "description" : "[node] ID of the node from the corosync configuration.",
8937 "optional" : 1,
8938 "type" : "integer"
8939 },
8940 "nodes" : {
8941 "description" : "[cluster] Nodes count, including offline nodes.",
8942 "optional" : 1,
8943 "type" : "integer"
8944 },
8945 "online" : {
8946 "description" : "[node] Indicates if the node is online or offline.",
8947 "optional" : 1,
8948 "type" : "boolean"
8949 },
8950 "quorate" : {
8951 "description" : "[cluster] Indicates if there is a majority of nodes online to make decisions",
8952 "optional" : 1,
8953 "type" : "boolean"
8954 },
56122987 8955 "type" : {
e9cd3bd4
TL
8956 "description" : "Indicates the type, either cluster or node. The type defines the object properties e.g. quorate available for type cluster.",
8957 "enum" : [
8958 "cluster",
8959 "node"
8960 ],
56122987 8961 "type" : "string"
e9cd3bd4
TL
8962 },
8963 "version" : {
8964 "description" : "[cluster] Current version of the corosync configuration file.",
8965 "optional" : 1,
8966 "type" : "integer"
56122987 8967 }
44660702
DM
8968 },
8969 "type" : "object"
7aacca6f
DM
8970 },
8971 "type" : "array"
56122987
DM
8972 }
8973 }
8974 },
44660702 8975 "leaf" : 1,
7aacca6f 8976 "path" : "/cluster/status",
44660702 8977 "text" : "status"
56122987
DM
8978 },
8979 {
56122987
DM
8980 "info" : {
8981 "GET" : {
e9cd3bd4 8982 "allowtoken" : 1,
c30bb419 8983 "description" : "Get next free VMID. Pass a VMID to assert that its free (at time of check).",
44660702
DM
8984 "method" : "GET",
8985 "name" : "nextid",
56122987 8986 "parameters" : {
44660702 8987 "additionalProperties" : 0,
56122987
DM
8988 "properties" : {
8989 "vmid" : {
44660702 8990 "description" : "The (unique) ID of the VM.",
56122987 8991 "format" : "pve-vmid",
7aacca6f 8992 "minimum" : 1,
7aacca6f 8993 "optional" : 1,
4bd7df8b 8994 "type" : "integer",
013dc89f 8995 "typetext" : "<integer> (1 - N)"
56122987 8996 }
44660702 8997 }
56122987 8998 },
7aacca6f
DM
8999 "permissions" : {
9000 "user" : "all"
44660702
DM
9001 },
9002 "returns" : {
9003 "description" : "The next free VMID.",
9004 "type" : "integer"
7aacca6f 9005 }
56122987
DM
9006 }
9007 },
7aacca6f 9008 "leaf" : 1,
44660702
DM
9009 "path" : "/cluster/nextid",
9010 "text" : "nextid"
56122987
DM
9011 }
9012 ],
44660702
DM
9013 "info" : {
9014 "GET" : {
e9cd3bd4 9015 "allowtoken" : 1,
44660702
DM
9016 "description" : "Cluster index.",
9017 "method" : "GET",
9018 "name" : "index",
9019 "parameters" : {
9020 "additionalProperties" : 0
9021 },
9022 "permissions" : {
9023 "user" : "all"
9024 },
9025 "returns" : {
9026 "items" : {
9027 "properties" : {},
9028 "type" : "object"
9029 },
9030 "links" : [
9031 {
9032 "href" : "{name}",
9033 "rel" : "child"
9034 }
9035 ],
9036 "type" : "array"
9037 }
9038 }
9039 },
9040 "leaf" : 0,
9041 "path" : "/cluster",
7aacca6f 9042 "text" : "cluster"
56122987
DM
9043 },
9044 {
56122987
DM
9045 "children" : [
9046 {
7aacca6f
DM
9047 "children" : [
9048 {
9049 "children" : [
9050 {
56122987
DM
9051 "children" : [
9052 {
56122987
DM
9053 "children" : [
9054 {
9055 "children" : [
9056 {
56122987
DM
9057 "info" : {
9058 "DELETE" : {
e9cd3bd4 9059 "allowtoken" : 1,
44660702 9060 "description" : "Delete rule.",
7aacca6f 9061 "method" : "DELETE",
44660702 9062 "name" : "delete_rule",
56122987 9063 "parameters" : {
44660702 9064 "additionalProperties" : 0,
56122987 9065 "properties" : {
44660702
DM
9066 "digest" : {
9067 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9068 "maxLength" : 40,
9069 "optional" : 1,
013dc89f
DM
9070 "type" : "string",
9071 "typetext" : "<string>"
44660702 9072 },
56122987 9073 "node" : {
7aacca6f 9074 "description" : "The cluster node name.",
44660702 9075 "format" : "pve-node",
013dc89f
DM
9076 "type" : "string",
9077 "typetext" : "<string>"
7aacca6f 9078 },
56122987 9079 "pos" : {
7aacca6f 9080 "description" : "Update rule at position <pos>.",
44660702 9081 "minimum" : 0,
56122987 9082 "optional" : 1,
4bd7df8b 9083 "type" : "integer",
013dc89f 9084 "typetext" : "<integer> (0 - N)"
44660702
DM
9085 },
9086 "vmid" : {
9087 "description" : "The (unique) ID of the VM.",
9088 "format" : "pve-vmid",
9089 "minimum" : 1,
4bd7df8b 9090 "type" : "integer",
013dc89f 9091 "typetext" : "<integer> (1 - N)"
56122987 9092 }
44660702 9093 }
7aacca6f 9094 },
56122987
DM
9095 "permissions" : {
9096 "check" : [
9097 "perm",
9098 "/vms/{vmid}",
9099 [
9100 "VM.Config.Network"
9101 ]
9102 ]
9103 },
44660702
DM
9104 "protected" : 1,
9105 "proxyto" : null,
56122987
DM
9106 "returns" : {
9107 "type" : "null"
44660702
DM
9108 }
9109 },
9110 "GET" : {
e9cd3bd4 9111 "allowtoken" : 1,
44660702
DM
9112 "description" : "Get single rule data.",
9113 "method" : "GET",
9114 "name" : "get_rule",
9115 "parameters" : {
9116 "additionalProperties" : 0,
9117 "properties" : {
9118 "node" : {
9119 "description" : "The cluster node name.",
9120 "format" : "pve-node",
013dc89f
DM
9121 "type" : "string",
9122 "typetext" : "<string>"
44660702
DM
9123 },
9124 "pos" : {
9125 "description" : "Update rule at position <pos>.",
9126 "minimum" : 0,
9127 "optional" : 1,
4bd7df8b 9128 "type" : "integer",
013dc89f 9129 "typetext" : "<integer> (0 - N)"
44660702
DM
9130 },
9131 "vmid" : {
9132 "description" : "The (unique) ID of the VM.",
9133 "format" : "pve-vmid",
9134 "minimum" : 1,
4bd7df8b 9135 "type" : "integer",
013dc89f 9136 "typetext" : "<integer> (1 - N)"
44660702
DM
9137 }
9138 }
56122987 9139 },
56122987
DM
9140 "permissions" : {
9141 "check" : [
9142 "perm",
9143 "/vms/{vmid}",
9144 [
44660702 9145 "VM.Audit"
56122987
DM
9146 ]
9147 ]
9148 },
56122987 9149 "proxyto" : null,
44660702
DM
9150 "returns" : {
9151 "properties" : {
e2d681b3
TL
9152 "action" : {
9153 "type" : "string"
9154 },
9155 "comment" : {
9156 "optional" : 1,
9157 "type" : "string"
9158 },
9159 "dest" : {
9160 "optional" : 1,
9161 "type" : "string"
9162 },
9163 "dport" : {
9164 "optional" : 1,
9165 "type" : "string"
9166 },
9167 "enable" : {
9168 "optional" : 1,
9169 "type" : "integer"
9170 },
4772952b
TL
9171 "icmp-type" : {
9172 "optional" : 1,
9173 "type" : "string"
9174 },
e2d681b3
TL
9175 "iface" : {
9176 "optional" : 1,
9177 "type" : "string"
9178 },
9179 "ipversion" : {
9180 "optional" : 1,
9181 "type" : "integer"
9182 },
95895385
TL
9183 "log" : {
9184 "description" : "Log level for firewall rule",
9185 "enum" : [
9186 "emerg",
9187 "alert",
9188 "crit",
9189 "err",
9190 "warning",
9191 "notice",
9192 "info",
9193 "debug",
9194 "nolog"
9195 ],
9196 "optional" : 1,
9197 "type" : "string"
9198 },
e2d681b3
TL
9199 "macro" : {
9200 "optional" : 1,
5f26e15b 9201 "type" : "string"
e2d681b3 9202 },
44660702
DM
9203 "pos" : {
9204 "type" : "integer"
e2d681b3
TL
9205 },
9206 "proto" : {
9207 "optional" : 1,
9208 "type" : "string"
9209 },
9210 "source" : {
9211 "optional" : 1,
9212 "type" : "string"
9213 },
9214 "sport" : {
9215 "optional" : 1,
9216 "type" : "string"
9217 },
9218 "type" : {
9219 "type" : "string"
44660702
DM
9220 }
9221 },
9222 "type" : "object"
9223 }
9224 },
9225 "PUT" : {
e9cd3bd4 9226 "allowtoken" : 1,
7aacca6f
DM
9227 "description" : "Modify rule data.",
9228 "method" : "PUT",
44660702 9229 "name" : "update_rule",
56122987 9230 "parameters" : {
44660702 9231 "additionalProperties" : 0,
56122987 9232 "properties" : {
44660702
DM
9233 "action" : {
9234 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
9235 "maxLength" : 20,
9236 "minLength" : 2,
56122987 9237 "optional" : 1,
44660702 9238 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
9239 "type" : "string"
9240 },
7aacca6f 9241 "comment" : {
e94f0d56 9242 "description" : "Descriptive comment.",
7aacca6f 9243 "optional" : 1,
013dc89f
DM
9244 "type" : "string",
9245 "typetext" : "<string>"
7aacca6f
DM
9246 },
9247 "delete" : {
7aacca6f 9248 "description" : "A list of settings you want to delete.",
44660702
DM
9249 "format" : "pve-configid-list",
9250 "optional" : 1,
013dc89f
DM
9251 "type" : "string",
9252 "typetext" : "<string>"
7aacca6f
DM
9253 },
9254 "dest" : {
44660702 9255 "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 9256 "format" : "pve-fw-addr-spec",
0695fdaf 9257 "maxLength" : 512,
56122987 9258 "optional" : 1,
013dc89f
DM
9259 "type" : "string",
9260 "typetext" : "<string>"
56122987 9261 },
7aacca6f 9262 "digest" : {
44660702 9263 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 9264 "maxLength" : 40,
56122987 9265 "optional" : 1,
013dc89f
DM
9266 "type" : "string",
9267 "typetext" : "<string>"
44660702
DM
9268 },
9269 "dport" : {
9270 "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.",
9271 "format" : "pve-fw-dport-spec",
9272 "optional" : 1,
013dc89f
DM
9273 "type" : "string",
9274 "typetext" : "<string>"
56122987 9275 },
7aacca6f 9276 "enable" : {
e94f0d56 9277 "description" : "Flag to enable/disable a rule.",
44660702 9278 "minimum" : 0,
56122987 9279 "optional" : 1,
4bd7df8b 9280 "type" : "integer",
013dc89f 9281 "typetext" : "<integer> (0 - N)"
7aacca6f 9282 },
4772952b
TL
9283 "icmp-type" : {
9284 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
9285 "format" : "pve-fw-icmp-type-spec",
9286 "optional" : 1,
9287 "type" : "string",
9288 "typetext" : "<string>"
9289 },
44660702
DM
9290 "iface" : {
9291 "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.",
9292 "format" : "pve-iface",
9293 "maxLength" : 20,
7aacca6f 9294 "minLength" : 2,
56122987 9295 "optional" : 1,
013dc89f
DM
9296 "type" : "string",
9297 "typetext" : "<string>"
56122987 9298 },
95895385
TL
9299 "log" : {
9300 "description" : "Log level for firewall rule.",
9301 "enum" : [
9302 "emerg",
9303 "alert",
9304 "crit",
9305 "err",
9306 "warning",
9307 "notice",
9308 "info",
9309 "debug",
9310 "nolog"
9311 ],
9312 "optional" : 1,
9313 "type" : "string"
9314 },
44660702 9315 "macro" : {
e94f0d56 9316 "description" : "Use predefined standard macro.",
44660702 9317 "maxLength" : 128,
56122987 9318 "optional" : 1,
013dc89f
DM
9319 "type" : "string",
9320 "typetext" : "<string>"
56122987 9321 },
44660702
DM
9322 "moveto" : {
9323 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
9324 "minimum" : 0,
56122987 9325 "optional" : 1,
4bd7df8b 9326 "type" : "integer",
013dc89f 9327 "typetext" : "<integer> (0 - N)"
56122987 9328 },
44660702
DM
9329 "node" : {
9330 "description" : "The cluster node name.",
9331 "format" : "pve-node",
013dc89f
DM
9332 "type" : "string",
9333 "typetext" : "<string>"
44660702
DM
9334 },
9335 "pos" : {
9336 "description" : "Update rule at position <pos>.",
9337 "minimum" : 0,
9338 "optional" : 1,
4bd7df8b 9339 "type" : "integer",
013dc89f 9340 "typetext" : "<integer> (0 - N)"
56122987 9341 },
44660702
DM
9342 "proto" : {
9343 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
9344 "format" : "pve-fw-protocol-spec",
9345 "optional" : 1,
013dc89f
DM
9346 "type" : "string",
9347 "typetext" : "<string>"
7aacca6f 9348 },
44660702
DM
9349 "source" : {
9350 "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.",
9351 "format" : "pve-fw-addr-spec",
0695fdaf 9352 "maxLength" : 512,
56122987 9353 "optional" : 1,
013dc89f
DM
9354 "type" : "string",
9355 "typetext" : "<string>"
56122987
DM
9356 },
9357 "sport" : {
9358 "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
9359 "format" : "pve-fw-sport-spec",
9360 "optional" : 1,
013dc89f
DM
9361 "type" : "string",
9362 "typetext" : "<string>"
44660702
DM
9363 },
9364 "type" : {
e94f0d56 9365 "description" : "Rule type.",
44660702
DM
9366 "enum" : [
9367 "in",
9368 "out",
9369 "group"
9370 ],
56122987 9371 "optional" : 1,
56122987 9372 "type" : "string"
44660702
DM
9373 },
9374 "vmid" : {
9375 "description" : "The (unique) ID of the VM.",
9376 "format" : "pve-vmid",
9377 "minimum" : 1,
4bd7df8b 9378 "type" : "integer",
013dc89f 9379 "typetext" : "<integer> (1 - N)"
56122987 9380 }
44660702 9381 }
56122987 9382 },
56122987
DM
9383 "permissions" : {
9384 "check" : [
9385 "perm",
9386 "/vms/{vmid}",
9387 [
44660702 9388 "VM.Config.Network"
56122987
DM
9389 ]
9390 ]
7aacca6f 9391 },
44660702 9392 "protected" : 1,
7aacca6f 9393 "proxyto" : null,
7aacca6f 9394 "returns" : {
44660702
DM
9395 "type" : "null"
9396 }
56122987 9397 }
7aacca6f 9398 },
44660702 9399 "leaf" : 1,
7aacca6f 9400 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
44660702 9401 "text" : "{pos}"
56122987
DM
9402 }
9403 ],
56122987 9404 "info" : {
44660702 9405 "GET" : {
e9cd3bd4 9406 "allowtoken" : 1,
44660702
DM
9407 "description" : "List rules.",
9408 "method" : "GET",
9409 "name" : "get_rules",
9410 "parameters" : {
9411 "additionalProperties" : 0,
9412 "properties" : {
9413 "node" : {
9414 "description" : "The cluster node name.",
9415 "format" : "pve-node",
013dc89f
DM
9416 "type" : "string",
9417 "typetext" : "<string>"
44660702
DM
9418 },
9419 "vmid" : {
9420 "description" : "The (unique) ID of the VM.",
9421 "format" : "pve-vmid",
9422 "minimum" : 1,
4bd7df8b 9423 "type" : "integer",
013dc89f 9424 "typetext" : "<integer> (1 - N)"
44660702
DM
9425 }
9426 }
56122987 9427 },
56122987
DM
9428 "permissions" : {
9429 "check" : [
9430 "perm",
9431 "/vms/{vmid}",
9432 [
44660702 9433 "VM.Audit"
56122987
DM
9434 ]
9435 ]
7aacca6f 9436 },
44660702
DM
9437 "proxyto" : null,
9438 "returns" : {
9439 "items" : {
9440 "properties" : {
9441 "pos" : {
9442 "type" : "integer"
9443 }
9444 },
9445 "type" : "object"
9446 },
9447 "links" : [
9448 {
9449 "href" : "{pos}",
9450 "rel" : "child"
9451 }
9452 ],
9453 "type" : "array"
9454 }
9455 },
9456 "POST" : {
e9cd3bd4 9457 "allowtoken" : 1,
44660702 9458 "description" : "Create new rule.",
7aacca6f 9459 "method" : "POST",
44660702 9460 "name" : "create_rule",
56122987 9461 "parameters" : {
44660702 9462 "additionalProperties" : 0,
56122987 9463 "properties" : {
44660702
DM
9464 "action" : {
9465 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
9466 "maxLength" : 20,
9467 "minLength" : 2,
9468 "optional" : 0,
9469 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
9470 "type" : "string"
56122987 9471 },
44660702 9472 "comment" : {
e94f0d56 9473 "description" : "Descriptive comment.",
56122987 9474 "optional" : 1,
013dc89f
DM
9475 "type" : "string",
9476 "typetext" : "<string>"
56122987 9477 },
44660702
DM
9478 "dest" : {
9479 "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.",
9480 "format" : "pve-fw-addr-spec",
0695fdaf 9481 "maxLength" : 512,
44660702 9482 "optional" : 1,
013dc89f
DM
9483 "type" : "string",
9484 "typetext" : "<string>"
56122987 9485 },
44660702
DM
9486 "digest" : {
9487 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9488 "maxLength" : 40,
56122987 9489 "optional" : 1,
013dc89f
DM
9490 "type" : "string",
9491 "typetext" : "<string>"
56122987 9492 },
7aacca6f
DM
9493 "dport" : {
9494 "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 9495 "format" : "pve-fw-dport-spec",
7aacca6f 9496 "optional" : 1,
013dc89f
DM
9497 "type" : "string",
9498 "typetext" : "<string>"
56122987
DM
9499 },
9500 "enable" : {
e94f0d56 9501 "description" : "Flag to enable/disable a rule.",
56122987 9502 "minimum" : 0,
44660702 9503 "optional" : 1,
4bd7df8b 9504 "type" : "integer",
013dc89f 9505 "typetext" : "<integer> (0 - N)"
56122987 9506 },
4772952b
TL
9507 "icmp-type" : {
9508 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
9509 "format" : "pve-fw-icmp-type-spec",
9510 "optional" : 1,
9511 "type" : "string",
9512 "typetext" : "<string>"
9513 },
44660702
DM
9514 "iface" : {
9515 "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.",
9516 "format" : "pve-iface",
9517 "maxLength" : 20,
7aacca6f 9518 "minLength" : 2,
44660702 9519 "optional" : 1,
013dc89f
DM
9520 "type" : "string",
9521 "typetext" : "<string>"
56122987 9522 },
95895385
TL
9523 "log" : {
9524 "description" : "Log level for firewall rule.",
9525 "enum" : [
9526 "emerg",
9527 "alert",
9528 "crit",
9529 "err",
9530 "warning",
9531 "notice",
9532 "info",
9533 "debug",
9534 "nolog"
9535 ],
9536 "optional" : 1,
9537 "type" : "string"
9538 },
44660702 9539 "macro" : {
e94f0d56 9540 "description" : "Use predefined standard macro.",
44660702 9541 "maxLength" : 128,
56122987 9542 "optional" : 1,
013dc89f
DM
9543 "type" : "string",
9544 "typetext" : "<string>"
7aacca6f 9545 },
44660702
DM
9546 "node" : {
9547 "description" : "The cluster node name.",
9548 "format" : "pve-node",
013dc89f
DM
9549 "type" : "string",
9550 "typetext" : "<string>"
44660702
DM
9551 },
9552 "pos" : {
9553 "description" : "Update rule at position <pos>.",
9554 "minimum" : 0,
9555 "optional" : 1,
4bd7df8b 9556 "type" : "integer",
013dc89f 9557 "typetext" : "<integer> (0 - N)"
44660702
DM
9558 },
9559 "proto" : {
9560 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
9561 "format" : "pve-fw-protocol-spec",
7aacca6f 9562 "optional" : 1,
013dc89f
DM
9563 "type" : "string",
9564 "typetext" : "<string>"
7aacca6f
DM
9565 },
9566 "source" : {
9567 "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 9568 "format" : "pve-fw-addr-spec",
0695fdaf 9569 "maxLength" : 512,
7aacca6f 9570 "optional" : 1,
013dc89f
DM
9571 "type" : "string",
9572 "typetext" : "<string>"
7aacca6f 9573 },
44660702
DM
9574 "sport" : {
9575 "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.",
9576 "format" : "pve-fw-sport-spec",
7aacca6f 9577 "optional" : 1,
013dc89f
DM
9578 "type" : "string",
9579 "typetext" : "<string>"
7aacca6f 9580 },
44660702 9581 "type" : {
e94f0d56 9582 "description" : "Rule type.",
44660702
DM
9583 "enum" : [
9584 "in",
9585 "out",
9586 "group"
9587 ],
9588 "optional" : 0,
9589 "type" : "string"
7aacca6f 9590 },
7aacca6f 9591 "vmid" : {
44660702 9592 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
9593 "format" : "pve-vmid",
9594 "minimum" : 1,
4bd7df8b 9595 "type" : "integer",
013dc89f 9596 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
9597 }
9598 }
9599 },
56122987
DM
9600 "permissions" : {
9601 "check" : [
9602 "perm",
9603 "/vms/{vmid}",
9604 [
44660702 9605 "VM.Config.Network"
56122987
DM
9606 ]
9607 ]
9608 },
44660702
DM
9609 "protected" : 1,
9610 "proxyto" : null,
56122987 9611 "returns" : {
44660702
DM
9612 "type" : "null"
9613 }
56122987
DM
9614 }
9615 },
44660702 9616 "leaf" : 0,
7aacca6f 9617 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
44660702 9618 "text" : "rules"
56122987
DM
9619 },
9620 {
9621 "children" : [
9622 {
56122987 9623 "info" : {
44660702 9624 "DELETE" : {
e9cd3bd4 9625 "allowtoken" : 1,
44660702
DM
9626 "description" : "Remove IP or Network alias.",
9627 "method" : "DELETE",
9628 "name" : "remove_alias",
56122987 9629 "parameters" : {
44660702 9630 "additionalProperties" : 0,
56122987 9631 "properties" : {
44660702
DM
9632 "digest" : {
9633 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9634 "maxLength" : 40,
9635 "optional" : 1,
013dc89f
DM
9636 "type" : "string",
9637 "typetext" : "<string>"
56122987
DM
9638 },
9639 "name" : {
56122987 9640 "description" : "Alias name.",
44660702 9641 "maxLength" : 64,
7aacca6f 9642 "minLength" : 2,
44660702 9643 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987
DM
9644 "type" : "string"
9645 },
7aacca6f 9646 "node" : {
44660702 9647 "description" : "The cluster node name.",
7aacca6f 9648 "format" : "pve-node",
013dc89f
DM
9649 "type" : "string",
9650 "typetext" : "<string>"
44660702
DM
9651 },
9652 "vmid" : {
9653 "description" : "The (unique) ID of the VM.",
9654 "format" : "pve-vmid",
9655 "minimum" : 1,
4bd7df8b 9656 "type" : "integer",
013dc89f 9657 "typetext" : "<integer> (1 - N)"
56122987 9658 }
44660702 9659 }
56122987 9660 },
7aacca6f
DM
9661 "permissions" : {
9662 "check" : [
9663 "perm",
9664 "/vms/{vmid}",
9665 [
9666 "VM.Config.Network"
9667 ]
9668 ]
56122987 9669 },
44660702
DM
9670 "protected" : 1,
9671 "returns" : {
9672 "type" : "null"
9673 }
9674 },
9675 "GET" : {
e9cd3bd4 9676 "allowtoken" : 1,
44660702
DM
9677 "description" : "Read alias.",
9678 "method" : "GET",
9679 "name" : "read_alias",
56122987 9680 "parameters" : {
44660702 9681 "additionalProperties" : 0,
56122987 9682 "properties" : {
56122987 9683 "name" : {
7aacca6f 9684 "description" : "Alias name.",
44660702 9685 "maxLength" : 64,
56122987 9686 "minLength" : 2,
44660702 9687 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 9688 "type" : "string"
7aacca6f
DM
9689 },
9690 "node" : {
9691 "description" : "The cluster node name.",
44660702 9692 "format" : "pve-node",
013dc89f
DM
9693 "type" : "string",
9694 "typetext" : "<string>"
44660702
DM
9695 },
9696 "vmid" : {
9697 "description" : "The (unique) ID of the VM.",
9698 "format" : "pve-vmid",
9699 "minimum" : 1,
4bd7df8b 9700 "type" : "integer",
013dc89f 9701 "typetext" : "<integer> (1 - N)"
56122987 9702 }
44660702 9703 }
56122987 9704 },
44660702
DM
9705 "permissions" : {
9706 "check" : [
9707 "perm",
9708 "/vms/{vmid}",
9709 [
9710 "VM.Audit"
9711 ]
9712 ]
56122987 9713 },
44660702
DM
9714 "returns" : {
9715 "type" : "object"
9716 }
7aacca6f 9717 },
44660702 9718 "PUT" : {
e9cd3bd4 9719 "allowtoken" : 1,
44660702
DM
9720 "description" : "Update IP or Network alias.",
9721 "method" : "PUT",
9722 "name" : "update_alias",
56122987
DM
9723 "parameters" : {
9724 "additionalProperties" : 0,
9725 "properties" : {
44660702
DM
9726 "cidr" : {
9727 "description" : "Network/IP specification in CIDR format.",
9728 "format" : "IPorCIDR",
013dc89f
DM
9729 "type" : "string",
9730 "typetext" : "<string>"
44660702
DM
9731 },
9732 "comment" : {
9733 "optional" : 1,
013dc89f
DM
9734 "type" : "string",
9735 "typetext" : "<string>"
56122987
DM
9736 },
9737 "digest" : {
44660702 9738 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
56122987
DM
9739 "maxLength" : 40,
9740 "optional" : 1,
013dc89f
DM
9741 "type" : "string",
9742 "typetext" : "<string>"
56122987 9743 },
7aacca6f 9744 "name" : {
44660702 9745 "description" : "Alias name.",
56122987
DM
9746 "maxLength" : 64,
9747 "minLength" : 2,
9748 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 9749 "type" : "string"
7aacca6f
DM
9750 },
9751 "node" : {
7aacca6f 9752 "description" : "The cluster node name.",
44660702 9753 "format" : "pve-node",
013dc89f
DM
9754 "type" : "string",
9755 "typetext" : "<string>"
44660702
DM
9756 },
9757 "rename" : {
9758 "description" : "Rename an existing alias.",
9759 "maxLength" : 64,
9760 "minLength" : 2,
9761 "optional" : 1,
9762 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
9763 "type" : "string"
9764 },
9765 "vmid" : {
9766 "description" : "The (unique) ID of the VM.",
9767 "format" : "pve-vmid",
9768 "minimum" : 1,
4bd7df8b 9769 "type" : "integer",
013dc89f 9770 "typetext" : "<integer> (1 - N)"
56122987
DM
9771 }
9772 }
9773 },
7aacca6f
DM
9774 "permissions" : {
9775 "check" : [
9776 "perm",
9777 "/vms/{vmid}",
9778 [
9779 "VM.Config.Network"
9780 ]
9781 ]
9782 },
9783 "protected" : 1,
7aacca6f
DM
9784 "returns" : {
9785 "type" : "null"
44660702 9786 }
56122987
DM
9787 }
9788 },
44660702 9789 "leaf" : 1,
7aacca6f 9790 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
44660702 9791 "text" : "{name}"
56122987
DM
9792 }
9793 ],
9794 "info" : {
44660702 9795 "GET" : {
e9cd3bd4 9796 "allowtoken" : 1,
44660702
DM
9797 "description" : "List aliases",
9798 "method" : "GET",
9799 "name" : "get_aliases",
56122987 9800 "parameters" : {
44660702 9801 "additionalProperties" : 0,
56122987 9802 "properties" : {
7aacca6f 9803 "node" : {
7aacca6f 9804 "description" : "The cluster node name.",
44660702 9805 "format" : "pve-node",
013dc89f
DM
9806 "type" : "string",
9807 "typetext" : "<string>"
56122987 9808 },
44660702
DM
9809 "vmid" : {
9810 "description" : "The (unique) ID of the VM.",
9811 "format" : "pve-vmid",
9812 "minimum" : 1,
4bd7df8b 9813 "type" : "integer",
013dc89f 9814 "typetext" : "<integer> (1 - N)"
56122987 9815 }
44660702 9816 }
56122987 9817 },
56122987
DM
9818 "permissions" : {
9819 "check" : [
9820 "perm",
9821 "/vms/{vmid}",
9822 [
44660702 9823 "VM.Audit"
56122987
DM
9824 ]
9825 ]
9826 },
56122987
DM
9827 "returns" : {
9828 "items" : {
9829 "properties" : {
44660702 9830 "cidr" : {
56122987
DM
9831 "type" : "string"
9832 },
44660702
DM
9833 "comment" : {
9834 "optional" : 1,
7aacca6f 9835 "type" : "string"
56122987
DM
9836 },
9837 "digest" : {
56122987 9838 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 9839 "maxLength" : 40,
56122987
DM
9840 "optional" : 0,
9841 "type" : "string"
9842 },
44660702 9843 "name" : {
56122987
DM
9844 "type" : "string"
9845 }
44660702
DM
9846 },
9847 "type" : "object"
56122987 9848 },
56122987
DM
9849 "links" : [
9850 {
9851 "href" : "{name}",
9852 "rel" : "child"
9853 }
44660702
DM
9854 ],
9855 "type" : "array"
9856 }
9857 },
9858 "POST" : {
e9cd3bd4 9859 "allowtoken" : 1,
44660702
DM
9860 "description" : "Create IP or Network Alias.",
9861 "method" : "POST",
9862 "name" : "create_alias",
56122987 9863 "parameters" : {
7aacca6f 9864 "additionalProperties" : 0,
56122987 9865 "properties" : {
44660702
DM
9866 "cidr" : {
9867 "description" : "Network/IP specification in CIDR format.",
9868 "format" : "IPorCIDR",
013dc89f
DM
9869 "type" : "string",
9870 "typetext" : "<string>"
44660702
DM
9871 },
9872 "comment" : {
9873 "optional" : 1,
013dc89f
DM
9874 "type" : "string",
9875 "typetext" : "<string>"
44660702
DM
9876 },
9877 "name" : {
9878 "description" : "Alias name.",
9879 "maxLength" : 64,
9880 "minLength" : 2,
9881 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
9882 "type" : "string"
56122987
DM
9883 },
9884 "node" : {
7aacca6f 9885 "description" : "The cluster node name.",
44660702 9886 "format" : "pve-node",
013dc89f
DM
9887 "type" : "string",
9888 "typetext" : "<string>"
44660702
DM
9889 },
9890 "vmid" : {
9891 "description" : "The (unique) ID of the VM.",
9892 "format" : "pve-vmid",
9893 "minimum" : 1,
4bd7df8b 9894 "type" : "integer",
013dc89f 9895 "typetext" : "<integer> (1 - N)"
56122987 9896 }
7aacca6f 9897 }
56122987 9898 },
44660702
DM
9899 "permissions" : {
9900 "check" : [
9901 "perm",
9902 "/vms/{vmid}",
9903 [
9904 "VM.Config.Network"
9905 ]
9906 ]
9907 },
9908 "protected" : 1,
9909 "returns" : {
9910 "type" : "null"
9911 }
56122987 9912 }
44660702
DM
9913 },
9914 "leaf" : 0,
9915 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
9916 "text" : "aliases"
56122987
DM
9917 },
9918 {
56122987
DM
9919 "children" : [
9920 {
7aacca6f
DM
9921 "children" : [
9922 {
9923 "info" : {
9924 "DELETE" : {
e9cd3bd4 9925 "allowtoken" : 1,
44660702 9926 "description" : "Remove IP or Network from IPSet.",
7aacca6f 9927 "method" : "DELETE",
44660702 9928 "name" : "remove_ip",
7aacca6f 9929 "parameters" : {
44660702 9930 "additionalProperties" : 0,
7aacca6f 9931 "properties" : {
44660702
DM
9932 "cidr" : {
9933 "description" : "Network/IP specification in CIDR format.",
9934 "format" : "IPorCIDRorAlias",
013dc89f
DM
9935 "type" : "string",
9936 "typetext" : "<string>"
44660702
DM
9937 },
9938 "digest" : {
9939 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9940 "maxLength" : 40,
9941 "optional" : 1,
013dc89f
DM
9942 "type" : "string",
9943 "typetext" : "<string>"
44660702 9944 },
7aacca6f 9945 "name" : {
7aacca6f 9946 "description" : "IP set name.",
44660702
DM
9947 "maxLength" : 64,
9948 "minLength" : 2,
7aacca6f 9949 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 9950 "type" : "string"
7aacca6f
DM
9951 },
9952 "node" : {
9953 "description" : "The cluster node name.",
44660702 9954 "format" : "pve-node",
013dc89f
DM
9955 "type" : "string",
9956 "typetext" : "<string>"
7aacca6f
DM
9957 },
9958 "vmid" : {
44660702 9959 "description" : "The (unique) ID of the VM.",
7aacca6f 9960 "format" : "pve-vmid",
44660702 9961 "minimum" : 1,
4bd7df8b 9962 "type" : "integer",
013dc89f 9963 "typetext" : "<integer> (1 - N)"
7aacca6f 9964 }
44660702 9965 }
7aacca6f 9966 },
7aacca6f
DM
9967 "permissions" : {
9968 "check" : [
9969 "perm",
9970 "/vms/{vmid}",
9971 [
9972 "VM.Config.Network"
9973 ]
9974 ]
9975 },
9976 "protected" : 1,
44660702
DM
9977 "returns" : {
9978 "type" : "null"
9979 }
56122987 9980 },
44660702 9981 "GET" : {
e9cd3bd4 9982 "allowtoken" : 1,
44660702
DM
9983 "description" : "Read IP or Network settings from IPSet.",
9984 "method" : "GET",
9985 "name" : "read_ip",
7aacca6f 9986 "parameters" : {
44660702 9987 "additionalProperties" : 0,
7aacca6f 9988 "properties" : {
7aacca6f 9989 "cidr" : {
44660702 9990 "description" : "Network/IP specification in CIDR format.",
7aacca6f 9991 "format" : "IPorCIDRorAlias",
013dc89f
DM
9992 "type" : "string",
9993 "typetext" : "<string>"
7aacca6f
DM
9994 },
9995 "name" : {
7aacca6f 9996 "description" : "IP set name.",
44660702 9997 "maxLength" : 64,
7aacca6f 9998 "minLength" : 2,
44660702
DM
9999 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10000 "type" : "string"
7aacca6f 10001 },
44660702
DM
10002 "node" : {
10003 "description" : "The cluster node name.",
10004 "format" : "pve-node",
013dc89f
DM
10005 "type" : "string",
10006 "typetext" : "<string>"
7aacca6f 10007 },
44660702
DM
10008 "vmid" : {
10009 "description" : "The (unique) ID of the VM.",
10010 "format" : "pve-vmid",
10011 "minimum" : 1,
4bd7df8b 10012 "type" : "integer",
013dc89f 10013 "typetext" : "<integer> (1 - N)"
7aacca6f 10014 }
44660702 10015 }
7aacca6f 10016 },
44660702
DM
10017 "permissions" : {
10018 "check" : [
10019 "perm",
10020 "/vms/{vmid}",
10021 [
10022 "VM.Audit"
10023 ]
10024 ]
10025 },
10026 "protected" : 1,
7aacca6f 10027 "returns" : {
44660702 10028 "type" : "object"
7aacca6f 10029 }
56122987 10030 },
44660702 10031 "PUT" : {
e9cd3bd4 10032 "allowtoken" : 1,
44660702
DM
10033 "description" : "Update IP or Network settings",
10034 "method" : "PUT",
10035 "name" : "update_ip",
7aacca6f
DM
10036 "parameters" : {
10037 "additionalProperties" : 0,
10038 "properties" : {
44660702
DM
10039 "cidr" : {
10040 "description" : "Network/IP specification in CIDR format.",
10041 "format" : "IPorCIDRorAlias",
013dc89f
DM
10042 "type" : "string",
10043 "typetext" : "<string>"
44660702
DM
10044 },
10045 "comment" : {
10046 "optional" : 1,
013dc89f
DM
10047 "type" : "string",
10048 "typetext" : "<string>"
44660702
DM
10049 },
10050 "digest" : {
10051 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10052 "maxLength" : 40,
10053 "optional" : 1,
013dc89f
DM
10054 "type" : "string",
10055 "typetext" : "<string>"
44660702 10056 },
7aacca6f 10057 "name" : {
7aacca6f 10058 "description" : "IP set name.",
44660702 10059 "maxLength" : 64,
7aacca6f 10060 "minLength" : 2,
44660702
DM
10061 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10062 "type" : "string"
7aacca6f
DM
10063 },
10064 "node" : {
7aacca6f 10065 "description" : "The cluster node name.",
44660702 10066 "format" : "pve-node",
013dc89f
DM
10067 "type" : "string",
10068 "typetext" : "<string>"
7aacca6f 10069 },
44660702
DM
10070 "nomatch" : {
10071 "optional" : 1,
013dc89f
DM
10072 "type" : "boolean",
10073 "typetext" : "<boolean>"
7aacca6f
DM
10074 },
10075 "vmid" : {
10076 "description" : "The (unique) ID of the VM.",
44660702 10077 "format" : "pve-vmid",
7aacca6f 10078 "minimum" : 1,
4bd7df8b 10079 "type" : "integer",
013dc89f 10080 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
10081 }
10082 }
10083 },
10084 "permissions" : {
10085 "check" : [
10086 "perm",
10087 "/vms/{vmid}",
10088 [
44660702 10089 "VM.Config.Network"
7aacca6f
DM
10090 ]
10091 ]
10092 },
7aacca6f 10093 "protected" : 1,
7aacca6f 10094 "returns" : {
44660702 10095 "type" : "null"
7aacca6f 10096 }
56122987 10097 }
7aacca6f 10098 },
7aacca6f 10099 "leaf" : 1,
44660702
DM
10100 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
10101 "text" : "{cidr}"
7aacca6f 10102 }
44660702
DM
10103 ],
10104 "info" : {
10105 "DELETE" : {
e9cd3bd4 10106 "allowtoken" : 1,
44660702
DM
10107 "description" : "Delete IPSet",
10108 "method" : "DELETE",
10109 "name" : "delete_ipset",
10110 "parameters" : {
10111 "additionalProperties" : 0,
10112 "properties" : {
10113 "name" : {
10114 "description" : "IP set name.",
10115 "maxLength" : 64,
10116 "minLength" : 2,
10117 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10118 "type" : "string"
10119 },
10120 "node" : {
10121 "description" : "The cluster node name.",
10122 "format" : "pve-node",
013dc89f
DM
10123 "type" : "string",
10124 "typetext" : "<string>"
44660702
DM
10125 },
10126 "vmid" : {
10127 "description" : "The (unique) ID of the VM.",
10128 "format" : "pve-vmid",
10129 "minimum" : 1,
4bd7df8b 10130 "type" : "integer",
013dc89f 10131 "typetext" : "<integer> (1 - N)"
44660702
DM
10132 }
10133 }
7aacca6f 10134 },
44660702
DM
10135 "permissions" : {
10136 "check" : [
10137 "perm",
10138 "/vms/{vmid}",
10139 [
10140 "VM.Config.Network"
10141 ]
10142 ]
7aacca6f 10143 },
44660702
DM
10144 "protected" : 1,
10145 "returns" : {
10146 "type" : "null"
10147 }
10148 },
10149 "GET" : {
e9cd3bd4 10150 "allowtoken" : 1,
44660702
DM
10151 "description" : "List IPSet content",
10152 "method" : "GET",
10153 "name" : "get_ipset",
10154 "parameters" : {
10155 "additionalProperties" : 0,
10156 "properties" : {
10157 "name" : {
10158 "description" : "IP set name.",
10159 "maxLength" : 64,
10160 "minLength" : 2,
10161 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10162 "type" : "string"
10163 },
10164 "node" : {
10165 "description" : "The cluster node name.",
10166 "format" : "pve-node",
013dc89f
DM
10167 "type" : "string",
10168 "typetext" : "<string>"
44660702
DM
10169 },
10170 "vmid" : {
10171 "description" : "The (unique) ID of the VM.",
10172 "format" : "pve-vmid",
10173 "minimum" : 1,
4bd7df8b 10174 "type" : "integer",
013dc89f 10175 "typetext" : "<integer> (1 - N)"
44660702
DM
10176 }
10177 }
7aacca6f 10178 },
44660702
DM
10179 "permissions" : {
10180 "check" : [
10181 "perm",
10182 "/vms/{vmid}",
10183 [
10184 "VM.Audit"
10185 ]
10186 ]
7aacca6f 10187 },
44660702
DM
10188 "returns" : {
10189 "items" : {
10190 "properties" : {
10191 "cidr" : {
10192 "type" : "string"
10193 },
10194 "comment" : {
10195 "optional" : 1,
10196 "type" : "string"
10197 },
10198 "digest" : {
10199 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10200 "maxLength" : 40,
10201 "optional" : 0,
10202 "type" : "string"
10203 },
10204 "nomatch" : {
10205 "optional" : 1,
10206 "type" : "boolean"
10207 }
10208 },
10209 "type" : "object"
10210 },
10211 "links" : [
10212 {
10213 "href" : "{cidr}",
10214 "rel" : "child"
10215 }
10216 ],
10217 "type" : "array"
56122987
DM
10218 }
10219 },
44660702 10220 "POST" : {
e9cd3bd4 10221 "allowtoken" : 1,
44660702
DM
10222 "description" : "Add IP or Network to IPSet.",
10223 "method" : "POST",
10224 "name" : "create_ip",
10225 "parameters" : {
10226 "additionalProperties" : 0,
10227 "properties" : {
10228 "cidr" : {
10229 "description" : "Network/IP specification in CIDR format.",
10230 "format" : "IPorCIDRorAlias",
013dc89f
DM
10231 "type" : "string",
10232 "typetext" : "<string>"
44660702
DM
10233 },
10234 "comment" : {
10235 "optional" : 1,
013dc89f
DM
10236 "type" : "string",
10237 "typetext" : "<string>"
44660702
DM
10238 },
10239 "name" : {
10240 "description" : "IP set name.",
10241 "maxLength" : 64,
10242 "minLength" : 2,
10243 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10244 "type" : "string"
10245 },
10246 "node" : {
10247 "description" : "The cluster node name.",
10248 "format" : "pve-node",
013dc89f
DM
10249 "type" : "string",
10250 "typetext" : "<string>"
44660702
DM
10251 },
10252 "nomatch" : {
10253 "optional" : 1,
013dc89f
DM
10254 "type" : "boolean",
10255 "typetext" : "<boolean>"
44660702
DM
10256 },
10257 "vmid" : {
10258 "description" : "The (unique) ID of the VM.",
10259 "format" : "pve-vmid",
10260 "minimum" : 1,
4bd7df8b 10261 "type" : "integer",
013dc89f 10262 "typetext" : "<integer> (1 - N)"
44660702
DM
10263 }
10264 }
10265 },
10266 "permissions" : {
10267 "check" : [
10268 "perm",
10269 "/vms/{vmid}",
10270 [
10271 "VM.Config.Network"
10272 ]
10273 ]
10274 },
10275 "protected" : 1,
10276 "returns" : {
10277 "type" : "null"
10278 }
10279 }
10280 },
10281 "leaf" : 0,
10282 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
10283 "text" : "{name}"
10284 }
10285 ],
10286 "info" : {
10287 "GET" : {
e9cd3bd4 10288 "allowtoken" : 1,
44660702
DM
10289 "description" : "List IPSets",
10290 "method" : "GET",
10291 "name" : "ipset_index",
10292 "parameters" : {
10293 "additionalProperties" : 0,
10294 "properties" : {
10295 "node" : {
10296 "description" : "The cluster node name.",
10297 "format" : "pve-node",
013dc89f
DM
10298 "type" : "string",
10299 "typetext" : "<string>"
44660702
DM
10300 },
10301 "vmid" : {
10302 "description" : "The (unique) ID of the VM.",
10303 "format" : "pve-vmid",
10304 "minimum" : 1,
4bd7df8b 10305 "type" : "integer",
013dc89f 10306 "typetext" : "<integer> (1 - N)"
44660702
DM
10307 }
10308 }
56122987
DM
10309 },
10310 "permissions" : {
10311 "check" : [
10312 "perm",
10313 "/vms/{vmid}",
10314 [
44660702 10315 "VM.Audit"
56122987
DM
10316 ]
10317 ]
10318 },
7aacca6f 10319 "returns" : {
7aacca6f
DM
10320 "items" : {
10321 "properties" : {
7aacca6f
DM
10322 "comment" : {
10323 "optional" : 1,
10324 "type" : "string"
10325 },
10326 "digest" : {
7aacca6f 10327 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
10328 "maxLength" : 40,
10329 "optional" : 0,
10330 "type" : "string"
10331 },
10332 "name" : {
10333 "description" : "IP set name.",
10334 "maxLength" : 64,
10335 "minLength" : 2,
10336 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10337 "type" : "string"
7aacca6f
DM
10338 }
10339 },
10340 "type" : "object"
10341 },
10342 "links" : [
10343 {
44660702
DM
10344 "href" : "{name}",
10345 "rel" : "child"
7aacca6f 10346 }
44660702
DM
10347 ],
10348 "type" : "array"
10349 }
10350 },
10351 "POST" : {
e9cd3bd4 10352 "allowtoken" : 1,
44660702
DM
10353 "description" : "Create new IPSet",
10354 "method" : "POST",
10355 "name" : "create_ipset",
56122987
DM
10356 "parameters" : {
10357 "additionalProperties" : 0,
10358 "properties" : {
44660702
DM
10359 "comment" : {
10360 "optional" : 1,
013dc89f
DM
10361 "type" : "string",
10362 "typetext" : "<string>"
56122987 10363 },
44660702
DM
10364 "digest" : {
10365 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10366 "maxLength" : 40,
10367 "optional" : 1,
013dc89f
DM
10368 "type" : "string",
10369 "typetext" : "<string>"
44660702
DM
10370 },
10371 "name" : {
10372 "description" : "IP set name.",
10373 "maxLength" : 64,
10374 "minLength" : 2,
10375 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10376 "type" : "string"
10377 },
10378 "node" : {
10379 "description" : "The cluster node name.",
10380 "format" : "pve-node",
013dc89f
DM
10381 "type" : "string",
10382 "typetext" : "<string>"
44660702
DM
10383 },
10384 "rename" : {
10385 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
10386 "maxLength" : 64,
10387 "minLength" : 2,
10388 "optional" : 1,
10389 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10390 "type" : "string"
10391 },
10392 "vmid" : {
10393 "description" : "The (unique) ID of the VM.",
10394 "format" : "pve-vmid",
10395 "minimum" : 1,
4bd7df8b 10396 "type" : "integer",
013dc89f 10397 "typetext" : "<integer> (1 - N)"
44660702
DM
10398 }
10399 }
10400 },
7aacca6f
DM
10401 "permissions" : {
10402 "check" : [
10403 "perm",
10404 "/vms/{vmid}",
10405 [
10406 "VM.Config.Network"
10407 ]
10408 ]
10409 },
44660702 10410 "protected" : 1,
56122987 10411 "returns" : {
7aacca6f 10412 "type" : "null"
44660702
DM
10413 }
10414 }
10415 },
10416 "leaf" : 0,
10417 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
10418 "text" : "ipset"
10419 },
10420 {
10421 "info" : {
10422 "GET" : {
e9cd3bd4 10423 "allowtoken" : 1,
44660702
DM
10424 "description" : "Get VM firewall options.",
10425 "method" : "GET",
10426 "name" : "get_options",
7aacca6f
DM
10427 "parameters" : {
10428 "additionalProperties" : 0,
56122987 10429 "properties" : {
7aacca6f
DM
10430 "node" : {
10431 "description" : "The cluster node name.",
44660702 10432 "format" : "pve-node",
013dc89f
DM
10433 "type" : "string",
10434 "typetext" : "<string>"
7aacca6f 10435 },
44660702
DM
10436 "vmid" : {
10437 "description" : "The (unique) ID of the VM.",
10438 "format" : "pve-vmid",
10439 "minimum" : 1,
4bd7df8b 10440 "type" : "integer",
013dc89f 10441 "typetext" : "<integer> (1 - N)"
44660702
DM
10442 }
10443 }
10444 },
10445 "permissions" : {
10446 "check" : [
10447 "perm",
10448 "/vms/{vmid}",
10449 [
10450 "VM.Audit"
10451 ]
10452 ]
10453 },
10454 "proxyto" : "node",
10455 "returns" : {
10456 "properties" : {
10457 "dhcp" : {
5c1699e5 10458 "default" : 0,
44660702 10459 "description" : "Enable DHCP.",
56122987 10460 "optional" : 1,
44660702 10461 "type" : "boolean"
56122987 10462 },
44660702 10463 "enable" : {
5c1699e5 10464 "default" : 0,
44660702 10465 "description" : "Enable/disable firewall rules.",
7aacca6f 10466 "optional" : 1,
44660702 10467 "type" : "boolean"
56122987 10468 },
44660702
DM
10469 "ipfilter" : {
10470 "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 10471 "optional" : 1,
44660702 10472 "type" : "boolean"
7aacca6f 10473 },
56122987 10474 "log_level_in" : {
7aacca6f 10475 "description" : "Log level for incoming traffic.",
56122987
DM
10476 "enum" : [
10477 "emerg",
10478 "alert",
10479 "crit",
10480 "err",
10481 "warning",
10482 "notice",
10483 "info",
10484 "debug",
10485 "nolog"
10486 ],
56122987
DM
10487 "optional" : 1,
10488 "type" : "string"
10489 },
44660702
DM
10490 "log_level_out" : {
10491 "description" : "Log level for outgoing traffic.",
10492 "enum" : [
10493 "emerg",
10494 "alert",
10495 "crit",
10496 "err",
10497 "warning",
10498 "notice",
10499 "info",
10500 "debug",
10501 "nolog"
10502 ],
10503 "optional" : 1,
10504 "type" : "string"
10505 },
10506 "macfilter" : {
5c1699e5 10507 "default" : 0,
44660702 10508 "description" : "Enable/disable MAC address filter.",
56122987 10509 "optional" : 1,
7aacca6f 10510 "type" : "boolean"
56122987
DM
10511 },
10512 "ndp" : {
5c1699e5
TL
10513 "default" : 0,
10514 "description" : "Enable NDP (Neighbor Discovery Protocol).",
56122987 10515 "optional" : 1,
44660702 10516 "type" : "boolean"
56122987
DM
10517 },
10518 "policy_in" : {
56122987
DM
10519 "description" : "Input policy.",
10520 "enum" : [
10521 "ACCEPT",
10522 "REJECT",
10523 "DROP"
44660702
DM
10524 ],
10525 "optional" : 1,
10526 "type" : "string"
56122987 10527 },
44660702
DM
10528 "policy_out" : {
10529 "description" : "Output policy.",
10530 "enum" : [
10531 "ACCEPT",
10532 "REJECT",
10533 "DROP"
10534 ],
10535 "optional" : 1,
10536 "type" : "string"
10537 },
10538 "radv" : {
10539 "description" : "Allow sending Router Advertisement.",
10540 "optional" : 1,
10541 "type" : "boolean"
10542 }
10543 },
10544 "type" : "object"
10545 }
10546 },
10547 "PUT" : {
e9cd3bd4 10548 "allowtoken" : 1,
44660702
DM
10549 "description" : "Set Firewall options.",
10550 "method" : "PUT",
10551 "name" : "set_options",
10552 "parameters" : {
10553 "additionalProperties" : 0,
10554 "properties" : {
10555 "delete" : {
10556 "description" : "A list of settings you want to delete.",
10557 "format" : "pve-configid-list",
10558 "optional" : 1,
013dc89f
DM
10559 "type" : "string",
10560 "typetext" : "<string>"
44660702
DM
10561 },
10562 "dhcp" : {
5c1699e5 10563 "default" : 0,
44660702 10564 "description" : "Enable DHCP.",
7aacca6f 10565 "optional" : 1,
013dc89f
DM
10566 "type" : "boolean",
10567 "typetext" : "<boolean>"
7aacca6f
DM
10568 },
10569 "digest" : {
10570 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 10571 "maxLength" : 40,
7aacca6f 10572 "optional" : 1,
013dc89f
DM
10573 "type" : "string",
10574 "typetext" : "<string>"
7aacca6f
DM
10575 },
10576 "enable" : {
5c1699e5 10577 "default" : 0,
7aacca6f 10578 "description" : "Enable/disable firewall rules.",
56122987 10579 "optional" : 1,
013dc89f
DM
10580 "type" : "boolean",
10581 "typetext" : "<boolean>"
7aacca6f 10582 },
44660702
DM
10583 "ipfilter" : {
10584 "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.",
10585 "optional" : 1,
013dc89f
DM
10586 "type" : "boolean",
10587 "typetext" : "<boolean>"
44660702
DM
10588 },
10589 "log_level_in" : {
10590 "description" : "Log level for incoming traffic.",
56122987
DM
10591 "enum" : [
10592 "emerg",
10593 "alert",
10594 "crit",
10595 "err",
10596 "warning",
10597 "notice",
10598 "info",
10599 "debug",
10600 "nolog"
7aacca6f 10601 ],
7aacca6f 10602 "optional" : 1,
44660702 10603 "type" : "string"
7aacca6f 10604 },
44660702
DM
10605 "log_level_out" : {
10606 "description" : "Log level for outgoing traffic.",
56122987
DM
10607 "enum" : [
10608 "emerg",
10609 "alert",
10610 "crit",
10611 "err",
10612 "warning",
10613 "notice",
10614 "info",
10615 "debug",
10616 "nolog"
10617 ],
56122987 10618 "optional" : 1,
44660702 10619 "type" : "string"
56122987
DM
10620 },
10621 "macfilter" : {
5c1699e5 10622 "default" : 0,
56122987 10623 "description" : "Enable/disable MAC address filter.",
7aacca6f 10624 "optional" : 1,
013dc89f
DM
10625 "type" : "boolean",
10626 "typetext" : "<boolean>"
56122987 10627 },
44660702 10628 "ndp" : {
5c1699e5
TL
10629 "default" : 0,
10630 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702 10631 "optional" : 1,
013dc89f
DM
10632 "type" : "boolean",
10633 "typetext" : "<boolean>"
44660702
DM
10634 },
10635 "node" : {
10636 "description" : "The cluster node name.",
10637 "format" : "pve-node",
013dc89f
DM
10638 "type" : "string",
10639 "typetext" : "<string>"
44660702 10640 },
56122987 10641 "policy_in" : {
44660702 10642 "description" : "Input policy.",
56122987
DM
10643 "enum" : [
10644 "ACCEPT",
10645 "REJECT",
10646 "DROP"
7aacca6f 10647 ],
56122987 10648 "optional" : 1,
7aacca6f 10649 "type" : "string"
56122987 10650 },
44660702
DM
10651 "policy_out" : {
10652 "description" : "Output policy.",
10653 "enum" : [
10654 "ACCEPT",
10655 "REJECT",
10656 "DROP"
10657 ],
56122987 10658 "optional" : 1,
44660702 10659 "type" : "string"
56122987 10660 },
44660702
DM
10661 "radv" : {
10662 "description" : "Allow sending Router Advertisement.",
56122987 10663 "optional" : 1,
013dc89f
DM
10664 "type" : "boolean",
10665 "typetext" : "<boolean>"
7aacca6f
DM
10666 },
10667 "vmid" : {
10668 "description" : "The (unique) ID of the VM.",
44660702 10669 "format" : "pve-vmid",
7aacca6f 10670 "minimum" : 1,
4bd7df8b 10671 "type" : "integer",
013dc89f 10672 "typetext" : "<integer> (1 - N)"
56122987
DM
10673 }
10674 }
10675 },
56122987
DM
10676 "permissions" : {
10677 "check" : [
10678 "perm",
10679 "/vms/{vmid}",
10680 [
44660702 10681 "VM.Config.Network"
56122987
DM
10682 ]
10683 ]
7aacca6f 10684 },
44660702 10685 "protected" : 1,
7aacca6f 10686 "proxyto" : "node",
44660702
DM
10687 "returns" : {
10688 "type" : "null"
10689 }
56122987
DM
10690 }
10691 },
44660702 10692 "leaf" : 1,
7aacca6f 10693 "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
44660702 10694 "text" : "options"
56122987
DM
10695 },
10696 {
56122987
DM
10697 "info" : {
10698 "GET" : {
e9cd3bd4 10699 "allowtoken" : 1,
44660702
DM
10700 "description" : "Read firewall log",
10701 "method" : "GET",
10702 "name" : "log",
10703 "parameters" : {
10704 "additionalProperties" : 0,
10705 "properties" : {
10706 "limit" : {
10707 "minimum" : 0,
10708 "optional" : 1,
4bd7df8b 10709 "type" : "integer",
013dc89f 10710 "typetext" : "<integer> (0 - N)"
56122987 10711 },
44660702
DM
10712 "node" : {
10713 "description" : "The cluster node name.",
10714 "format" : "pve-node",
013dc89f
DM
10715 "type" : "string",
10716 "typetext" : "<string>"
44660702
DM
10717 },
10718 "start" : {
10719 "minimum" : 0,
10720 "optional" : 1,
4bd7df8b 10721 "type" : "integer",
013dc89f 10722 "typetext" : "<integer> (0 - N)"
44660702
DM
10723 },
10724 "vmid" : {
10725 "description" : "The (unique) ID of the VM.",
10726 "format" : "pve-vmid",
10727 "minimum" : 1,
4bd7df8b 10728 "type" : "integer",
013dc89f 10729 "typetext" : "<integer> (1 - N)"
44660702
DM
10730 }
10731 }
7aacca6f 10732 },
7aacca6f
DM
10733 "permissions" : {
10734 "check" : [
10735 "perm",
10736 "/vms/{vmid}",
10737 [
10738 "VM.Console"
10739 ]
10740 ]
56122987 10741 },
7aacca6f 10742 "protected" : 1,
44660702
DM
10743 "proxyto" : "node",
10744 "returns" : {
10745 "items" : {
10746 "properties" : {
10747 "n" : {
10748 "description" : "Line number",
10749 "type" : "integer"
10750 },
10751 "t" : {
10752 "description" : "Line text",
10753 "type" : "string"
10754 }
56122987 10755 },
44660702 10756 "type" : "object"
7aacca6f 10757 },
44660702 10758 "type" : "array"
7aacca6f
DM
10759 }
10760 }
10761 },
44660702 10762 "leaf" : 1,
7aacca6f 10763 "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
44660702 10764 "text" : "log"
7aacca6f
DM
10765 },
10766 {
7aacca6f
DM
10767 "info" : {
10768 "GET" : {
e9cd3bd4 10769 "allowtoken" : 1,
7aacca6f 10770 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702
DM
10771 "method" : "GET",
10772 "name" : "refs",
56122987 10773 "parameters" : {
44660702 10774 "additionalProperties" : 0,
56122987
DM
10775 "properties" : {
10776 "node" : {
7aacca6f 10777 "description" : "The cluster node name.",
44660702 10778 "format" : "pve-node",
013dc89f
DM
10779 "type" : "string",
10780 "typetext" : "<string>"
56122987
DM
10781 },
10782 "type" : {
56122987
DM
10783 "description" : "Only list references of specified type.",
10784 "enum" : [
10785 "alias",
10786 "ipset"
7aacca6f 10787 ],
44660702
DM
10788 "optional" : 1,
10789 "type" : "string"
10790 },
10791 "vmid" : {
10792 "description" : "The (unique) ID of the VM.",
10793 "format" : "pve-vmid",
10794 "minimum" : 1,
4bd7df8b 10795 "type" : "integer",
013dc89f 10796 "typetext" : "<integer> (1 - N)"
56122987 10797 }
44660702
DM
10798 }
10799 },
10800 "permissions" : {
10801 "check" : [
10802 "perm",
10803 "/vms/{vmid}",
10804 [
10805 "VM.Audit"
10806 ]
10807 ]
56122987
DM
10808 },
10809 "returns" : {
56122987
DM
10810 "items" : {
10811 "properties" : {
44660702
DM
10812 "comment" : {
10813 "optional" : 1,
56122987
DM
10814 "type" : "string"
10815 },
10816 "name" : {
10817 "type" : "string"
10818 },
44660702
DM
10819 "type" : {
10820 "enum" : [
10821 "alias",
10822 "ipset"
10823 ],
7aacca6f 10824 "type" : "string"
56122987
DM
10825 }
10826 },
10827 "type" : "object"
7aacca6f
DM
10828 },
10829 "type" : "array"
10830 }
56122987 10831 }
44660702
DM
10832 },
10833 "leaf" : 1,
10834 "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
10835 "text" : "refs"
56122987
DM
10836 }
10837 ],
56122987
DM
10838 "info" : {
10839 "GET" : {
e9cd3bd4 10840 "allowtoken" : 1,
44660702 10841 "description" : "Directory index.",
56122987 10842 "method" : "GET",
44660702 10843 "name" : "index",
56122987 10844 "parameters" : {
44660702 10845 "additionalProperties" : 0,
56122987
DM
10846 "properties" : {
10847 "node" : {
10848 "description" : "The cluster node name.",
44660702 10849 "format" : "pve-node",
013dc89f
DM
10850 "type" : "string",
10851 "typetext" : "<string>"
56122987
DM
10852 },
10853 "vmid" : {
44660702 10854 "description" : "The (unique) ID of the VM.",
56122987
DM
10855 "format" : "pve-vmid",
10856 "minimum" : 1,
4bd7df8b 10857 "type" : "integer",
013dc89f 10858 "typetext" : "<integer> (1 - N)"
56122987 10859 }
44660702 10860 }
56122987 10861 },
56122987 10862 "permissions" : {
27a7acb2
DM
10863 "user" : "all"
10864 },
10865 "returns" : {
10866 "items" : {
10867 "properties" : {},
10868 "type" : "object"
10869 },
10870 "links" : [
10871 {
10872 "href" : "{name}",
10873 "rel" : "child"
10874 }
10875 ],
10876 "type" : "array"
10877 }
10878 }
10879 },
10880 "leaf" : 0,
10881 "path" : "/nodes/{node}/qemu/{vmid}/firewall",
10882 "text" : "firewall"
10883 },
10884 {
10885 "children" : [
10886 {
10887 "info" : {
10888 "POST" : {
e9cd3bd4 10889 "allowtoken" : 1,
27a7acb2
DM
10890 "description" : "Execute fsfreeze-freeze.",
10891 "method" : "POST",
10892 "name" : "fsfreeze-freeze",
10893 "parameters" : {
10894 "additionalProperties" : 0,
10895 "properties" : {
10896 "node" : {
10897 "description" : "The cluster node name.",
10898 "format" : "pve-node",
10899 "type" : "string",
10900 "typetext" : "<string>"
10901 },
10902 "vmid" : {
10903 "description" : "The (unique) ID of the VM.",
10904 "format" : "pve-vmid",
10905 "minimum" : 1,
10906 "type" : "integer",
10907 "typetext" : "<integer> (1 - N)"
10908 }
10909 }
10910 },
10911 "permissions" : {
10912 "check" : [
10913 "perm",
10914 "/vms/{vmid}",
10915 [
10916 "VM.Monitor"
10917 ]
10918 ]
10919 },
10920 "protected" : 1,
10921 "proxyto" : "node",
10922 "returns" : {
10923 "description" : "Returns an object with a single `result` property.",
10924 "type" : "object"
10925 }
10926 }
10927 },
10928 "leaf" : 1,
10929 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze",
10930 "text" : "fsfreeze-freeze"
10931 },
10932 {
10933 "info" : {
10934 "POST" : {
e9cd3bd4 10935 "allowtoken" : 1,
27a7acb2
DM
10936 "description" : "Execute fsfreeze-status.",
10937 "method" : "POST",
10938 "name" : "fsfreeze-status",
10939 "parameters" : {
10940 "additionalProperties" : 0,
10941 "properties" : {
10942 "node" : {
10943 "description" : "The cluster node name.",
10944 "format" : "pve-node",
10945 "type" : "string",
10946 "typetext" : "<string>"
10947 },
10948 "vmid" : {
10949 "description" : "The (unique) ID of the VM.",
10950 "format" : "pve-vmid",
10951 "minimum" : 1,
10952 "type" : "integer",
10953 "typetext" : "<integer> (1 - N)"
10954 }
10955 }
10956 },
10957 "permissions" : {
10958 "check" : [
10959 "perm",
10960 "/vms/{vmid}",
10961 [
10962 "VM.Monitor"
10963 ]
10964 ]
10965 },
10966 "protected" : 1,
10967 "proxyto" : "node",
10968 "returns" : {
10969 "description" : "Returns an object with a single `result` property.",
10970 "type" : "object"
10971 }
10972 }
10973 },
10974 "leaf" : 1,
10975 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status",
10976 "text" : "fsfreeze-status"
10977 },
10978 {
10979 "info" : {
10980 "POST" : {
e9cd3bd4 10981 "allowtoken" : 1,
27a7acb2
DM
10982 "description" : "Execute fsfreeze-thaw.",
10983 "method" : "POST",
10984 "name" : "fsfreeze-thaw",
10985 "parameters" : {
10986 "additionalProperties" : 0,
10987 "properties" : {
10988 "node" : {
10989 "description" : "The cluster node name.",
10990 "format" : "pve-node",
10991 "type" : "string",
10992 "typetext" : "<string>"
10993 },
10994 "vmid" : {
10995 "description" : "The (unique) ID of the VM.",
10996 "format" : "pve-vmid",
10997 "minimum" : 1,
10998 "type" : "integer",
10999 "typetext" : "<integer> (1 - N)"
11000 }
11001 }
11002 },
11003 "permissions" : {
11004 "check" : [
11005 "perm",
11006 "/vms/{vmid}",
11007 [
11008 "VM.Monitor"
11009 ]
11010 ]
11011 },
11012 "protected" : 1,
11013 "proxyto" : "node",
11014 "returns" : {
11015 "description" : "Returns an object with a single `result` property.",
11016 "type" : "object"
11017 }
11018 }
11019 },
11020 "leaf" : 1,
11021 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw",
11022 "text" : "fsfreeze-thaw"
11023 },
11024 {
11025 "info" : {
11026 "POST" : {
e9cd3bd4 11027 "allowtoken" : 1,
27a7acb2
DM
11028 "description" : "Execute fstrim.",
11029 "method" : "POST",
11030 "name" : "fstrim",
11031 "parameters" : {
11032 "additionalProperties" : 0,
11033 "properties" : {
11034 "node" : {
11035 "description" : "The cluster node name.",
11036 "format" : "pve-node",
11037 "type" : "string",
11038 "typetext" : "<string>"
11039 },
11040 "vmid" : {
11041 "description" : "The (unique) ID of the VM.",
11042 "format" : "pve-vmid",
11043 "minimum" : 1,
11044 "type" : "integer",
11045 "typetext" : "<integer> (1 - N)"
11046 }
11047 }
11048 },
11049 "permissions" : {
11050 "check" : [
11051 "perm",
11052 "/vms/{vmid}",
11053 [
11054 "VM.Monitor"
11055 ]
11056 ]
11057 },
11058 "protected" : 1,
11059 "proxyto" : "node",
11060 "returns" : {
11061 "description" : "Returns an object with a single `result` property.",
11062 "type" : "object"
11063 }
11064 }
11065 },
11066 "leaf" : 1,
11067 "path" : "/nodes/{node}/qemu/{vmid}/agent/fstrim",
11068 "text" : "fstrim"
11069 },
11070 {
11071 "info" : {
11072 "GET" : {
e9cd3bd4 11073 "allowtoken" : 1,
27a7acb2
DM
11074 "description" : "Execute get-fsinfo.",
11075 "method" : "GET",
11076 "name" : "get-fsinfo",
11077 "parameters" : {
11078 "additionalProperties" : 0,
11079 "properties" : {
11080 "node" : {
11081 "description" : "The cluster node name.",
11082 "format" : "pve-node",
11083 "type" : "string",
11084 "typetext" : "<string>"
11085 },
11086 "vmid" : {
11087 "description" : "The (unique) ID of the VM.",
11088 "format" : "pve-vmid",
11089 "minimum" : 1,
11090 "type" : "integer",
11091 "typetext" : "<integer> (1 - N)"
11092 }
11093 }
11094 },
11095 "permissions" : {
11096 "check" : [
11097 "perm",
11098 "/vms/{vmid}",
11099 [
11100 "VM.Monitor"
11101 ]
11102 ]
11103 },
11104 "protected" : 1,
11105 "proxyto" : "node",
11106 "returns" : {
11107 "description" : "Returns an object with a single `result` property.",
11108 "type" : "object"
11109 }
11110 }
11111 },
11112 "leaf" : 1,
11113 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-fsinfo",
11114 "text" : "get-fsinfo"
11115 },
11116 {
11117 "info" : {
11118 "GET" : {
e9cd3bd4 11119 "allowtoken" : 1,
27a7acb2
DM
11120 "description" : "Execute get-host-name.",
11121 "method" : "GET",
11122 "name" : "get-host-name",
11123 "parameters" : {
11124 "additionalProperties" : 0,
11125 "properties" : {
11126 "node" : {
11127 "description" : "The cluster node name.",
11128 "format" : "pve-node",
11129 "type" : "string",
11130 "typetext" : "<string>"
11131 },
11132 "vmid" : {
11133 "description" : "The (unique) ID of the VM.",
11134 "format" : "pve-vmid",
11135 "minimum" : 1,
11136 "type" : "integer",
11137 "typetext" : "<integer> (1 - N)"
11138 }
11139 }
11140 },
11141 "permissions" : {
11142 "check" : [
11143 "perm",
11144 "/vms/{vmid}",
11145 [
11146 "VM.Monitor"
11147 ]
11148 ]
11149 },
11150 "protected" : 1,
11151 "proxyto" : "node",
11152 "returns" : {
11153 "description" : "Returns an object with a single `result` property.",
11154 "type" : "object"
11155 }
11156 }
11157 },
11158 "leaf" : 1,
11159 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-host-name",
11160 "text" : "get-host-name"
11161 },
11162 {
11163 "info" : {
11164 "GET" : {
e9cd3bd4 11165 "allowtoken" : 1,
27a7acb2
DM
11166 "description" : "Execute get-memory-block-info.",
11167 "method" : "GET",
11168 "name" : "get-memory-block-info",
11169 "parameters" : {
11170 "additionalProperties" : 0,
11171 "properties" : {
11172 "node" : {
11173 "description" : "The cluster node name.",
11174 "format" : "pve-node",
11175 "type" : "string",
11176 "typetext" : "<string>"
11177 },
11178 "vmid" : {
11179 "description" : "The (unique) ID of the VM.",
11180 "format" : "pve-vmid",
11181 "minimum" : 1,
11182 "type" : "integer",
11183 "typetext" : "<integer> (1 - N)"
11184 }
11185 }
11186 },
11187 "permissions" : {
11188 "check" : [
11189 "perm",
11190 "/vms/{vmid}",
11191 [
11192 "VM.Monitor"
11193 ]
11194 ]
11195 },
11196 "protected" : 1,
11197 "proxyto" : "node",
11198 "returns" : {
11199 "description" : "Returns an object with a single `result` property.",
11200 "type" : "object"
11201 }
11202 }
11203 },
11204 "leaf" : 1,
11205 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info",
11206 "text" : "get-memory-block-info"
11207 },
11208 {
11209 "info" : {
11210 "GET" : {
e9cd3bd4 11211 "allowtoken" : 1,
27a7acb2
DM
11212 "description" : "Execute get-memory-blocks.",
11213 "method" : "GET",
11214 "name" : "get-memory-blocks",
11215 "parameters" : {
11216 "additionalProperties" : 0,
11217 "properties" : {
11218 "node" : {
11219 "description" : "The cluster node name.",
11220 "format" : "pve-node",
11221 "type" : "string",
11222 "typetext" : "<string>"
11223 },
11224 "vmid" : {
11225 "description" : "The (unique) ID of the VM.",
11226 "format" : "pve-vmid",
11227 "minimum" : 1,
11228 "type" : "integer",
11229 "typetext" : "<integer> (1 - N)"
11230 }
11231 }
11232 },
11233 "permissions" : {
11234 "check" : [
11235 "perm",
11236 "/vms/{vmid}",
11237 [
11238 "VM.Monitor"
11239 ]
11240 ]
11241 },
11242 "protected" : 1,
11243 "proxyto" : "node",
11244 "returns" : {
11245 "description" : "Returns an object with a single `result` property.",
11246 "type" : "object"
11247 }
11248 }
11249 },
11250 "leaf" : 1,
11251 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks",
11252 "text" : "get-memory-blocks"
11253 },
11254 {
11255 "info" : {
11256 "GET" : {
e9cd3bd4 11257 "allowtoken" : 1,
27a7acb2
DM
11258 "description" : "Execute get-osinfo.",
11259 "method" : "GET",
11260 "name" : "get-osinfo",
11261 "parameters" : {
11262 "additionalProperties" : 0,
11263 "properties" : {
11264 "node" : {
11265 "description" : "The cluster node name.",
11266 "format" : "pve-node",
11267 "type" : "string",
11268 "typetext" : "<string>"
11269 },
11270 "vmid" : {
11271 "description" : "The (unique) ID of the VM.",
11272 "format" : "pve-vmid",
11273 "minimum" : 1,
11274 "type" : "integer",
11275 "typetext" : "<integer> (1 - N)"
11276 }
11277 }
11278 },
11279 "permissions" : {
11280 "check" : [
11281 "perm",
11282 "/vms/{vmid}",
11283 [
11284 "VM.Monitor"
11285 ]
11286 ]
11287 },
11288 "protected" : 1,
11289 "proxyto" : "node",
11290 "returns" : {
11291 "description" : "Returns an object with a single `result` property.",
11292 "type" : "object"
11293 }
11294 }
11295 },
11296 "leaf" : 1,
11297 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-osinfo",
11298 "text" : "get-osinfo"
11299 },
11300 {
11301 "info" : {
11302 "GET" : {
e9cd3bd4 11303 "allowtoken" : 1,
27a7acb2
DM
11304 "description" : "Execute get-time.",
11305 "method" : "GET",
11306 "name" : "get-time",
11307 "parameters" : {
11308 "additionalProperties" : 0,
11309 "properties" : {
11310 "node" : {
11311 "description" : "The cluster node name.",
11312 "format" : "pve-node",
11313 "type" : "string",
11314 "typetext" : "<string>"
11315 },
11316 "vmid" : {
11317 "description" : "The (unique) ID of the VM.",
11318 "format" : "pve-vmid",
11319 "minimum" : 1,
11320 "type" : "integer",
11321 "typetext" : "<integer> (1 - N)"
11322 }
11323 }
11324 },
11325 "permissions" : {
11326 "check" : [
11327 "perm",
11328 "/vms/{vmid}",
11329 [
11330 "VM.Monitor"
11331 ]
11332 ]
11333 },
11334 "protected" : 1,
11335 "proxyto" : "node",
11336 "returns" : {
11337 "description" : "Returns an object with a single `result` property.",
11338 "type" : "object"
11339 }
11340 }
11341 },
11342 "leaf" : 1,
11343 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-time",
11344 "text" : "get-time"
11345 },
11346 {
11347 "info" : {
11348 "GET" : {
e9cd3bd4 11349 "allowtoken" : 1,
27a7acb2
DM
11350 "description" : "Execute get-timezone.",
11351 "method" : "GET",
11352 "name" : "get-timezone",
11353 "parameters" : {
11354 "additionalProperties" : 0,
11355 "properties" : {
11356 "node" : {
11357 "description" : "The cluster node name.",
11358 "format" : "pve-node",
11359 "type" : "string",
11360 "typetext" : "<string>"
11361 },
11362 "vmid" : {
11363 "description" : "The (unique) ID of the VM.",
11364 "format" : "pve-vmid",
11365 "minimum" : 1,
11366 "type" : "integer",
11367 "typetext" : "<integer> (1 - N)"
11368 }
11369 }
11370 },
11371 "permissions" : {
11372 "check" : [
11373 "perm",
11374 "/vms/{vmid}",
11375 [
11376 "VM.Monitor"
11377 ]
11378 ]
11379 },
11380 "protected" : 1,
11381 "proxyto" : "node",
11382 "returns" : {
11383 "description" : "Returns an object with a single `result` property.",
11384 "type" : "object"
11385 }
11386 }
11387 },
11388 "leaf" : 1,
11389 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-timezone",
11390 "text" : "get-timezone"
11391 },
11392 {
11393 "info" : {
11394 "GET" : {
e9cd3bd4 11395 "allowtoken" : 1,
27a7acb2
DM
11396 "description" : "Execute get-users.",
11397 "method" : "GET",
11398 "name" : "get-users",
11399 "parameters" : {
11400 "additionalProperties" : 0,
11401 "properties" : {
11402 "node" : {
11403 "description" : "The cluster node name.",
11404 "format" : "pve-node",
11405 "type" : "string",
11406 "typetext" : "<string>"
11407 },
11408 "vmid" : {
11409 "description" : "The (unique) ID of the VM.",
11410 "format" : "pve-vmid",
11411 "minimum" : 1,
11412 "type" : "integer",
11413 "typetext" : "<integer> (1 - N)"
11414 }
11415 }
11416 },
11417 "permissions" : {
11418 "check" : [
11419 "perm",
11420 "/vms/{vmid}",
11421 [
11422 "VM.Monitor"
11423 ]
11424 ]
11425 },
11426 "protected" : 1,
11427 "proxyto" : "node",
11428 "returns" : {
11429 "description" : "Returns an object with a single `result` property.",
11430 "type" : "object"
11431 }
11432 }
11433 },
11434 "leaf" : 1,
11435 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-users",
11436 "text" : "get-users"
11437 },
11438 {
11439 "info" : {
11440 "GET" : {
e9cd3bd4 11441 "allowtoken" : 1,
27a7acb2
DM
11442 "description" : "Execute get-vcpus.",
11443 "method" : "GET",
11444 "name" : "get-vcpus",
11445 "parameters" : {
11446 "additionalProperties" : 0,
11447 "properties" : {
11448 "node" : {
11449 "description" : "The cluster node name.",
11450 "format" : "pve-node",
11451 "type" : "string",
11452 "typetext" : "<string>"
11453 },
11454 "vmid" : {
11455 "description" : "The (unique) ID of the VM.",
11456 "format" : "pve-vmid",
11457 "minimum" : 1,
11458 "type" : "integer",
11459 "typetext" : "<integer> (1 - N)"
11460 }
11461 }
11462 },
11463 "permissions" : {
11464 "check" : [
11465 "perm",
11466 "/vms/{vmid}",
11467 [
11468 "VM.Monitor"
11469 ]
11470 ]
11471 },
11472 "protected" : 1,
11473 "proxyto" : "node",
11474 "returns" : {
11475 "description" : "Returns an object with a single `result` property.",
11476 "type" : "object"
11477 }
11478 }
11479 },
11480 "leaf" : 1,
11481 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-vcpus",
11482 "text" : "get-vcpus"
11483 },
11484 {
11485 "info" : {
11486 "GET" : {
e9cd3bd4 11487 "allowtoken" : 1,
27a7acb2
DM
11488 "description" : "Execute info.",
11489 "method" : "GET",
11490 "name" : "info",
11491 "parameters" : {
11492 "additionalProperties" : 0,
11493 "properties" : {
11494 "node" : {
11495 "description" : "The cluster node name.",
11496 "format" : "pve-node",
11497 "type" : "string",
11498 "typetext" : "<string>"
11499 },
11500 "vmid" : {
11501 "description" : "The (unique) ID of the VM.",
11502 "format" : "pve-vmid",
11503 "minimum" : 1,
11504 "type" : "integer",
11505 "typetext" : "<integer> (1 - N)"
11506 }
11507 }
11508 },
11509 "permissions" : {
11510 "check" : [
11511 "perm",
11512 "/vms/{vmid}",
11513 [
11514 "VM.Monitor"
11515 ]
11516 ]
11517 },
11518 "protected" : 1,
11519 "proxyto" : "node",
11520 "returns" : {
11521 "description" : "Returns an object with a single `result` property.",
11522 "type" : "object"
11523 }
11524 }
11525 },
11526 "leaf" : 1,
11527 "path" : "/nodes/{node}/qemu/{vmid}/agent/info",
11528 "text" : "info"
11529 },
11530 {
11531 "info" : {
11532 "GET" : {
e9cd3bd4 11533 "allowtoken" : 1,
27a7acb2
DM
11534 "description" : "Execute network-get-interfaces.",
11535 "method" : "GET",
11536 "name" : "network-get-interfaces",
11537 "parameters" : {
11538 "additionalProperties" : 0,
11539 "properties" : {
11540 "node" : {
11541 "description" : "The cluster node name.",
11542 "format" : "pve-node",
11543 "type" : "string",
11544 "typetext" : "<string>"
11545 },
11546 "vmid" : {
11547 "description" : "The (unique) ID of the VM.",
11548 "format" : "pve-vmid",
11549 "minimum" : 1,
11550 "type" : "integer",
11551 "typetext" : "<integer> (1 - N)"
11552 }
11553 }
11554 },
11555 "permissions" : {
11556 "check" : [
11557 "perm",
11558 "/vms/{vmid}",
11559 [
11560 "VM.Monitor"
11561 ]
11562 ]
11563 },
11564 "protected" : 1,
11565 "proxyto" : "node",
11566 "returns" : {
11567 "description" : "Returns an object with a single `result` property.",
11568 "type" : "object"
11569 }
11570 }
11571 },
11572 "leaf" : 1,
11573 "path" : "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces",
11574 "text" : "network-get-interfaces"
11575 },
11576 {
11577 "info" : {
11578 "POST" : {
e9cd3bd4 11579 "allowtoken" : 1,
27a7acb2
DM
11580 "description" : "Execute ping.",
11581 "method" : "POST",
11582 "name" : "ping",
11583 "parameters" : {
11584 "additionalProperties" : 0,
11585 "properties" : {
11586 "node" : {
11587 "description" : "The cluster node name.",
11588 "format" : "pve-node",
11589 "type" : "string",
11590 "typetext" : "<string>"
11591 },
11592 "vmid" : {
11593 "description" : "The (unique) ID of the VM.",
11594 "format" : "pve-vmid",
11595 "minimum" : 1,
11596 "type" : "integer",
11597 "typetext" : "<integer> (1 - N)"
11598 }
11599 }
11600 },
11601 "permissions" : {
11602 "check" : [
11603 "perm",
11604 "/vms/{vmid}",
11605 [
11606 "VM.Monitor"
11607 ]
11608 ]
11609 },
11610 "protected" : 1,
11611 "proxyto" : "node",
11612 "returns" : {
11613 "description" : "Returns an object with a single `result` property.",
11614 "type" : "object"
11615 }
11616 }
11617 },
11618 "leaf" : 1,
11619 "path" : "/nodes/{node}/qemu/{vmid}/agent/ping",
11620 "text" : "ping"
11621 },
11622 {
11623 "info" : {
11624 "POST" : {
e9cd3bd4 11625 "allowtoken" : 1,
27a7acb2
DM
11626 "description" : "Execute shutdown.",
11627 "method" : "POST",
11628 "name" : "shutdown",
11629 "parameters" : {
11630 "additionalProperties" : 0,
11631 "properties" : {
11632 "node" : {
11633 "description" : "The cluster node name.",
11634 "format" : "pve-node",
11635 "type" : "string",
11636 "typetext" : "<string>"
11637 },
11638 "vmid" : {
11639 "description" : "The (unique) ID of the VM.",
11640 "format" : "pve-vmid",
11641 "minimum" : 1,
11642 "type" : "integer",
11643 "typetext" : "<integer> (1 - N)"
11644 }
11645 }
11646 },
11647 "permissions" : {
11648 "check" : [
11649 "perm",
11650 "/vms/{vmid}",
11651 [
11652 "VM.Monitor"
11653 ]
11654 ]
11655 },
11656 "protected" : 1,
11657 "proxyto" : "node",
11658 "returns" : {
11659 "description" : "Returns an object with a single `result` property.",
11660 "type" : "object"
11661 }
11662 }
11663 },
11664 "leaf" : 1,
11665 "path" : "/nodes/{node}/qemu/{vmid}/agent/shutdown",
11666 "text" : "shutdown"
11667 },
11668 {
11669 "info" : {
11670 "POST" : {
e9cd3bd4 11671 "allowtoken" : 1,
27a7acb2
DM
11672 "description" : "Execute suspend-disk.",
11673 "method" : "POST",
11674 "name" : "suspend-disk",
11675 "parameters" : {
11676 "additionalProperties" : 0,
11677 "properties" : {
11678 "node" : {
11679 "description" : "The cluster node name.",
11680 "format" : "pve-node",
11681 "type" : "string",
11682 "typetext" : "<string>"
11683 },
11684 "vmid" : {
11685 "description" : "The (unique) ID of the VM.",
11686 "format" : "pve-vmid",
11687 "minimum" : 1,
11688 "type" : "integer",
11689 "typetext" : "<integer> (1 - N)"
11690 }
11691 }
11692 },
11693 "permissions" : {
11694 "check" : [
11695 "perm",
11696 "/vms/{vmid}",
11697 [
11698 "VM.Monitor"
11699 ]
11700 ]
11701 },
11702 "protected" : 1,
11703 "proxyto" : "node",
11704 "returns" : {
11705 "description" : "Returns an object with a single `result` property.",
11706 "type" : "object"
11707 }
11708 }
11709 },
11710 "leaf" : 1,
11711 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-disk",
11712 "text" : "suspend-disk"
11713 },
11714 {
11715 "info" : {
11716 "POST" : {
e9cd3bd4 11717 "allowtoken" : 1,
27a7acb2
DM
11718 "description" : "Execute suspend-hybrid.",
11719 "method" : "POST",
11720 "name" : "suspend-hybrid",
11721 "parameters" : {
11722 "additionalProperties" : 0,
11723 "properties" : {
11724 "node" : {
11725 "description" : "The cluster node name.",
11726 "format" : "pve-node",
11727 "type" : "string",
11728 "typetext" : "<string>"
11729 },
11730 "vmid" : {
11731 "description" : "The (unique) ID of the VM.",
11732 "format" : "pve-vmid",
11733 "minimum" : 1,
11734 "type" : "integer",
11735 "typetext" : "<integer> (1 - N)"
11736 }
11737 }
11738 },
11739 "permissions" : {
11740 "check" : [
11741 "perm",
11742 "/vms/{vmid}",
11743 [
11744 "VM.Monitor"
11745 ]
11746 ]
11747 },
11748 "protected" : 1,
11749 "proxyto" : "node",
11750 "returns" : {
11751 "description" : "Returns an object with a single `result` property.",
11752 "type" : "object"
11753 }
11754 }
11755 },
11756 "leaf" : 1,
11757 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid",
11758 "text" : "suspend-hybrid"
11759 },
11760 {
11761 "info" : {
11762 "POST" : {
e9cd3bd4 11763 "allowtoken" : 1,
27a7acb2
DM
11764 "description" : "Execute suspend-ram.",
11765 "method" : "POST",
11766 "name" : "suspend-ram",
11767 "parameters" : {
11768 "additionalProperties" : 0,
11769 "properties" : {
11770 "node" : {
11771 "description" : "The cluster node name.",
11772 "format" : "pve-node",
11773 "type" : "string",
11774 "typetext" : "<string>"
11775 },
11776 "vmid" : {
11777 "description" : "The (unique) ID of the VM.",
11778 "format" : "pve-vmid",
11779 "minimum" : 1,
11780 "type" : "integer",
11781 "typetext" : "<integer> (1 - N)"
11782 }
11783 }
11784 },
11785 "permissions" : {
11786 "check" : [
11787 "perm",
11788 "/vms/{vmid}",
11789 [
11790 "VM.Monitor"
11791 ]
11792 ]
11793 },
11794 "protected" : 1,
11795 "proxyto" : "node",
11796 "returns" : {
11797 "description" : "Returns an object with a single `result` property.",
11798 "type" : "object"
11799 }
11800 }
11801 },
11802 "leaf" : 1,
11803 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram",
11804 "text" : "suspend-ram"
4d47f125
TL
11805 },
11806 {
11807 "info" : {
11808 "POST" : {
e9cd3bd4 11809 "allowtoken" : 1,
4d47f125
TL
11810 "description" : "Sets the password for the given user to the given password",
11811 "method" : "POST",
11812 "name" : "set-user-password",
11813 "parameters" : {
11814 "additionalProperties" : 0,
11815 "properties" : {
11816 "crypted" : {
11817 "default" : 0,
11818 "description" : "set to 1 if the password has already been passed through crypt()",
11819 "optional" : 1,
11820 "type" : "boolean",
11821 "typetext" : "<boolean>"
11822 },
11823 "node" : {
11824 "description" : "The cluster node name.",
11825 "format" : "pve-node",
11826 "type" : "string",
11827 "typetext" : "<string>"
11828 },
11829 "password" : {
11830 "description" : "The new password.",
1c532546 11831 "maxLength" : 1024,
4d47f125
TL
11832 "minLength" : 5,
11833 "type" : "string",
11834 "typetext" : "<string>"
11835 },
11836 "username" : {
11837 "description" : "The user to set the password for.",
11838 "type" : "string",
11839 "typetext" : "<string>"
11840 },
11841 "vmid" : {
11842 "description" : "The (unique) ID of the VM.",
11843 "format" : "pve-vmid",
11844 "minimum" : 1,
11845 "type" : "integer",
11846 "typetext" : "<integer> (1 - N)"
11847 }
11848 }
27a7acb2 11849 },
4d47f125
TL
11850 "permissions" : {
11851 "check" : [
11852 "perm",
11853 "/vms/{vmid}",
11854 [
11855 "VM.Monitor"
11856 ]
11857 ]
11858 },
11859 "protected" : 1,
11860 "proxyto" : "node",
11861 "returns" : {
11862 "description" : "Returns an object with a single `result` property.",
11863 "type" : "object"
27a7acb2
DM
11864 }
11865 }
11866 },
4d47f125
TL
11867 "leaf" : 1,
11868 "path" : "/nodes/{node}/qemu/{vmid}/agent/set-user-password",
11869 "text" : "set-user-password"
27a7acb2 11870 },
4d47f125
TL
11871 {
11872 "info" : {
11873 "POST" : {
e9cd3bd4 11874 "allowtoken" : 1,
4d47f125
TL
11875 "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.",
11876 "method" : "POST",
11877 "name" : "exec",
11878 "parameters" : {
11879 "additionalProperties" : 0,
11880 "properties" : {
11881 "command" : {
11882 "description" : "The command as a list of program + arguments",
11883 "format" : "string-alist",
c5aa7e14
TL
11884 "optional" : 1,
11885 "type" : "string",
11886 "typetext" : "<string>"
11887 },
11888 "input-data" : {
11889 "description" : "Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'.",
11890 "maxLength" : 65536,
11891 "optional" : 1,
4d47f125
TL
11892 "type" : "string",
11893 "typetext" : "<string>"
11894 },
11895 "node" : {
11896 "description" : "The cluster node name.",
11897 "format" : "pve-node",
11898 "type" : "string",
11899 "typetext" : "<string>"
11900 },
11901 "vmid" : {
11902 "description" : "The (unique) ID of the VM.",
11903 "format" : "pve-vmid",
11904 "minimum" : 1,
11905 "type" : "integer",
11906 "typetext" : "<integer> (1 - N)"
11907 }
11908 }
27a7acb2 11909 },
4d47f125
TL
11910 "permissions" : {
11911 "check" : [
11912 "perm",
11913 "/vms/{vmid}",
11914 [
11915 "VM.Monitor"
11916 ]
11917 ]
27a7acb2 11918 },
4d47f125
TL
11919 "protected" : 1,
11920 "proxyto" : "node",
11921 "returns" : {
11922 "properties" : {
11923 "pid" : {
11924 "description" : "The PID of the process started by the guest-agent.",
11925 "type" : "integer"
11926 }
11927 },
11928 "type" : "object"
27a7acb2
DM
11929 }
11930 }
11931 },
4d47f125
TL
11932 "leaf" : 1,
11933 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec",
11934 "text" : "exec"
11935 },
11936 {
11937 "info" : {
11938 "GET" : {
e9cd3bd4 11939 "allowtoken" : 1,
4d47f125
TL
11940 "description" : "Gets the status of the given pid started by the guest-agent",
11941 "method" : "GET",
11942 "name" : "exec-status",
11943 "parameters" : {
11944 "additionalProperties" : 0,
11945 "properties" : {
11946 "node" : {
11947 "description" : "The cluster node name.",
11948 "format" : "pve-node",
11949 "type" : "string",
11950 "typetext" : "<string>"
11951 },
11952 "pid" : {
11953 "description" : "The PID to query",
11954 "type" : "integer",
11955 "typetext" : "<integer>"
11956 },
11957 "vmid" : {
11958 "description" : "The (unique) ID of the VM.",
11959 "format" : "pve-vmid",
11960 "minimum" : 1,
11961 "type" : "integer",
11962 "typetext" : "<integer> (1 - N)"
11963 }
11964 }
56122987 11965 },
4d47f125
TL
11966 "permissions" : {
11967 "check" : [
11968 "perm",
11969 "/vms/{vmid}",
11970 [
11971 "VM.Monitor"
11972 ]
11973 ]
56122987 11974 },
4d47f125
TL
11975 "protected" : 1,
11976 "proxyto" : "node",
11977 "returns" : {
11978 "properties" : {
11979 "err-data" : {
11980 "description" : "stderr of the process",
11981 "optional" : 1,
11982 "type" : "string"
11983 },
11984 "err-truncated" : {
11985 "description" : "true if stderr was not fully captured",
11986 "optional" : 1,
11987 "type" : "boolean"
11988 },
11989 "exitcode" : {
11990 "description" : "process exit code if it was normally terminated.",
11991 "optional" : 1,
11992 "type" : "integer"
11993 },
11994 "exited" : {
11995 "description" : "Tells if the given command has exited yet.",
11996 "type" : "boolean"
11997 },
11998 "out-data" : {
11999 "description" : "stdout of the process",
12000 "optional" : 1,
12001 "type" : "string"
12002 },
12003 "out-truncated" : {
12004 "description" : "true if stdout was not fully captured",
12005 "optional" : 1,
12006 "type" : "boolean"
12007 },
12008 "signal" : {
12009 "description" : "signal number or exception code if the process was abnormally terminated.",
12010 "optional" : 1,
12011 "type" : "integer"
12012 }
12013 },
12014 "type" : "object"
56122987
DM
12015 }
12016 }
12017 },
4d47f125
TL
12018 "leaf" : 1,
12019 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status",
12020 "text" : "exec-status"
12021 },
12022 {
12023 "info" : {
12024 "GET" : {
e9cd3bd4 12025 "allowtoken" : 1,
4d47f125
TL
12026 "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
12027 "method" : "GET",
12028 "name" : "file-read",
12029 "parameters" : {
12030 "additionalProperties" : 0,
12031 "properties" : {
12032 "file" : {
12033 "description" : "The path to the file",
12034 "type" : "string",
12035 "typetext" : "<string>"
12036 },
12037 "node" : {
12038 "description" : "The cluster node name.",
12039 "format" : "pve-node",
12040 "type" : "string",
12041 "typetext" : "<string>"
12042 },
12043 "vmid" : {
12044 "description" : "The (unique) ID of the VM.",
12045 "format" : "pve-vmid",
12046 "minimum" : 1,
12047 "type" : "integer",
12048 "typetext" : "<integer> (1 - N)"
12049 }
12050 }
12051 },
12052 "permissions" : {
12053 "check" : [
12054 "perm",
12055 "/vms/{vmid}",
12056 [
12057 "VM.Monitor"
12058 ]
12059 ]
12060 },
12061 "protected" : 1,
12062 "proxyto" : "node",
12063 "returns" : {
12064 "description" : "Returns an object with a `content` property.",
12065 "properties" : {
12066 "content" : {
12067 "description" : "The content of the file, maximum 16777216",
12068 "type" : "string"
12069 },
12070 "truncated" : {
12071 "description" : "If set to 1, the output is truncated and not complete",
12072 "optional" : 1,
12073 "type" : "boolean"
12074 }
12075 },
12076 "type" : "object"
12077 }
12078 }
56122987 12079 },
4d47f125
TL
12080 "leaf" : 1,
12081 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-read",
12082 "text" : "file-read"
12083 },
12084 {
12085 "info" : {
12086 "POST" : {
e9cd3bd4 12087 "allowtoken" : 1,
4d47f125
TL
12088 "description" : "Writes the given file via guest agent.",
12089 "method" : "POST",
12090 "name" : "file-write",
12091 "parameters" : {
12092 "additionalProperties" : 0,
12093 "properties" : {
12094 "content" : {
12095 "description" : "The content to write into the file.",
12096 "maxLength" : 61440,
12097 "type" : "string",
12098 "typetext" : "<string>"
12099 },
7af2edf9
TL
12100 "encode" : {
12101 "default" : 1,
12102 "description" : "If set, the content will be encoded as base64 (required by QEMU).Otherwise the content needs to be encoded beforehand - defaults to true.",
12103 "optional" : 1,
12104 "type" : "boolean",
12105 "typetext" : "<boolean>"
12106 },
4d47f125
TL
12107 "file" : {
12108 "description" : "The path to the file.",
12109 "type" : "string",
12110 "typetext" : "<string>"
12111 },
12112 "node" : {
12113 "description" : "The cluster node name.",
12114 "format" : "pve-node",
12115 "type" : "string",
12116 "typetext" : "<string>"
12117 },
12118 "vmid" : {
12119 "description" : "The (unique) ID of the VM.",
12120 "format" : "pve-vmid",
12121 "minimum" : 1,
12122 "type" : "integer",
12123 "typetext" : "<integer> (1 - N)"
12124 }
12125 }
12126 },
12127 "permissions" : {
12128 "check" : [
12129 "perm",
12130 "/vms/{vmid}",
12131 [
12132 "VM.Monitor"
12133 ]
12134 ]
12135 },
12136 "protected" : 1,
12137 "proxyto" : "node",
12138 "returns" : {
12139 "type" : "null"
7aacca6f 12140 }
4d47f125
TL
12141 }
12142 },
12143 "leaf" : 1,
12144 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write",
12145 "text" : "file-write"
56122987 12146 }
4d47f125 12147 ],
7aacca6f 12148 "info" : {
56122987 12149 "GET" : {
e9cd3bd4 12150 "allowtoken" : 1,
4d47f125 12151 "description" : "Qemu Agent command index.",
44660702 12152 "method" : "GET",
4d47f125 12153 "name" : "index",
56122987 12154 "parameters" : {
4d47f125 12155 "additionalProperties" : 1,
56122987
DM
12156 "properties" : {
12157 "node" : {
44660702 12158 "description" : "The cluster node name.",
56122987 12159 "format" : "pve-node",
013dc89f
DM
12160 "type" : "string",
12161 "typetext" : "<string>"
56122987 12162 },
7aacca6f 12163 "vmid" : {
7aacca6f
DM
12164 "description" : "The (unique) ID of the VM.",
12165 "format" : "pve-vmid",
44660702 12166 "minimum" : 1,
4bd7df8b 12167 "type" : "integer",
013dc89f 12168 "typetext" : "<integer> (1 - N)"
56122987 12169 }
44660702 12170 }
56122987 12171 },
56122987 12172 "permissions" : {
4d47f125 12173 "user" : "all"
56122987 12174 },
4d47f125 12175 "proxyto" : "node",
7aacca6f 12176 "returns" : {
4d47f125 12177 "description" : "Returns the list of Qemu Agent commands",
7aacca6f 12178 "items" : {
44660702
DM
12179 "properties" : {},
12180 "type" : "object"
12181 },
4d47f125
TL
12182 "links" : [
12183 {
12184 "href" : "{name}",
12185 "rel" : "child"
12186 }
12187 ],
44660702 12188 "type" : "array"
7aacca6f 12189 }
4d47f125
TL
12190 },
12191 "POST" : {
e9cd3bd4 12192 "allowtoken" : 1,
4d47f125
TL
12193 "description" : "Execute Qemu Guest Agent commands.",
12194 "method" : "POST",
12195 "name" : "agent",
44660702
DM
12196 "parameters" : {
12197 "additionalProperties" : 0,
12198 "properties" : {
4d47f125
TL
12199 "command" : {
12200 "description" : "The QGA command.",
12201 "enum" : [
12202 "fsfreeze-freeze",
12203 "fsfreeze-status",
12204 "fsfreeze-thaw",
12205 "fstrim",
12206 "get-fsinfo",
12207 "get-host-name",
12208 "get-memory-block-info",
12209 "get-memory-blocks",
12210 "get-osinfo",
12211 "get-time",
12212 "get-timezone",
12213 "get-users",
12214 "get-vcpus",
12215 "info",
12216 "network-get-interfaces",
12217 "ping",
12218 "shutdown",
12219 "suspend-disk",
12220 "suspend-hybrid",
12221 "suspend-ram"
12222 ],
12223 "type" : "string"
12224 },
12225 "node" : {
12226 "description" : "The cluster node name.",
12227 "format" : "pve-node",
12228 "type" : "string",
12229 "typetext" : "<string>"
12230 },
12231 "vmid" : {
12232 "description" : "The (unique) ID of the VM.",
12233 "format" : "pve-vmid",
12234 "minimum" : 1,
12235 "type" : "integer",
12236 "typetext" : "<integer> (1 - N)"
12237 }
12238 }
12239 },
12240 "permissions" : {
12241 "check" : [
12242 "perm",
12243 "/vms/{vmid}",
12244 [
12245 "VM.Monitor"
12246 ]
12247 ]
12248 },
12249 "protected" : 1,
12250 "proxyto" : "node",
12251 "returns" : {
12252 "description" : "Returns an object with a single `result` property.",
12253 "type" : "object"
12254 }
12255 }
12256 },
12257 "leaf" : 0,
12258 "path" : "/nodes/{node}/qemu/{vmid}/agent",
12259 "text" : "agent"
12260 },
12261 {
12262 "info" : {
12263 "GET" : {
e9cd3bd4 12264 "allowtoken" : 1,
4d47f125
TL
12265 "description" : "Read VM RRD statistics (returns PNG)",
12266 "method" : "GET",
12267 "name" : "rrd",
12268 "parameters" : {
12269 "additionalProperties" : 0,
12270 "properties" : {
12271 "cf" : {
12272 "description" : "The RRD consolidation function",
12273 "enum" : [
12274 "AVERAGE",
12275 "MAX"
12276 ],
44660702 12277 "optional" : 1,
4d47f125
TL
12278 "type" : "string"
12279 },
12280 "ds" : {
12281 "description" : "The list of datasources you want to display.",
12282 "format" : "pve-configid-list",
12283 "type" : "string",
12284 "typetext" : "<string>"
44660702
DM
12285 },
12286 "node" : {
12287 "description" : "The cluster node name.",
12288 "format" : "pve-node",
013dc89f
DM
12289 "type" : "string",
12290 "typetext" : "<string>"
44660702 12291 },
4d47f125
TL
12292 "timeframe" : {
12293 "description" : "Specify the time frame you are interested in.",
12294 "enum" : [
12295 "hour",
12296 "day",
12297 "week",
12298 "month",
12299 "year"
12300 ],
12301 "type" : "string"
12302 },
44660702
DM
12303 "vmid" : {
12304 "description" : "The (unique) ID of the VM.",
12305 "format" : "pve-vmid",
12306 "minimum" : 1,
4bd7df8b 12307 "type" : "integer",
013dc89f 12308 "typetext" : "<integer> (1 - N)"
44660702
DM
12309 }
12310 }
7aacca6f 12311 },
56122987
DM
12312 "permissions" : {
12313 "check" : [
12314 "perm",
12315 "/vms/{vmid}",
12316 [
44660702
DM
12317 "VM.Audit"
12318 ]
56122987
DM
12319 ]
12320 },
4d47f125 12321 "protected" : 1,
44660702
DM
12322 "returns" : {
12323 "properties" : {
4d47f125 12324 "filename" : {
44660702
DM
12325 "type" : "string"
12326 }
12327 },
12328 "type" : "object"
12329 }
4d47f125
TL
12330 }
12331 },
12332 "leaf" : 1,
12333 "path" : "/nodes/{node}/qemu/{vmid}/rrd",
12334 "text" : "rrd"
12335 },
12336 {
12337 "info" : {
12338 "GET" : {
e9cd3bd4 12339 "allowtoken" : 1,
4d47f125
TL
12340 "description" : "Read VM RRD statistics",
12341 "method" : "GET",
12342 "name" : "rrddata",
12343 "parameters" : {
12344 "additionalProperties" : 0,
12345 "properties" : {
12346 "cf" : {
12347 "description" : "The RRD consolidation function",
12348 "enum" : [
12349 "AVERAGE",
12350 "MAX"
12351 ],
12352 "optional" : 1,
12353 "type" : "string"
12354 },
12355 "node" : {
12356 "description" : "The cluster node name.",
12357 "format" : "pve-node",
12358 "type" : "string",
12359 "typetext" : "<string>"
12360 },
12361 "timeframe" : {
12362 "description" : "Specify the time frame you are interested in.",
12363 "enum" : [
12364 "hour",
12365 "day",
12366 "week",
12367 "month",
12368 "year"
12369 ],
12370 "type" : "string"
12371 },
12372 "vmid" : {
12373 "description" : "The (unique) ID of the VM.",
12374 "format" : "pve-vmid",
12375 "minimum" : 1,
12376 "type" : "integer",
12377 "typetext" : "<integer> (1 - N)"
12378 }
12379 }
12380 },
12381 "permissions" : {
12382 "check" : [
12383 "perm",
12384 "/vms/{vmid}",
12385 [
12386 "VM.Audit"
12387 ]
12388 ]
12389 },
12390 "protected" : 1,
12391 "returns" : {
12392 "items" : {
12393 "properties" : {},
12394 "type" : "object"
12395 },
12396 "type" : "array"
12397 }
12398 }
12399 },
12400 "leaf" : 1,
12401 "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
12402 "text" : "rrddata"
12403 },
12404 {
12405 "info" : {
12406 "GET" : {
e9cd3bd4
TL
12407 "allowtoken" : 1,
12408 "description" : "Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead.",
4d47f125
TL
12409 "method" : "GET",
12410 "name" : "vm_config",
56122987 12411 "parameters" : {
44660702 12412 "additionalProperties" : 0,
4d47f125
TL
12413 "properties" : {
12414 "current" : {
12415 "default" : 0,
12416 "description" : "Get current values (instead of pending values).",
12417 "optional" : 1,
12418 "type" : "boolean",
12419 "typetext" : "<boolean>"
12420 },
12421 "node" : {
12422 "description" : "The cluster node name.",
12423 "format" : "pve-node",
12424 "type" : "string",
12425 "typetext" : "<string>"
12426 },
5f26e15b
TL
12427 "snapshot" : {
12428 "description" : "Fetch config values from given snapshot.",
12429 "format" : "pve-configid",
12430 "maxLength" : 40,
12431 "optional" : 1,
12432 "type" : "string",
12433 "typetext" : "<string>"
12434 },
4d47f125
TL
12435 "vmid" : {
12436 "description" : "The (unique) ID of the VM.",
12437 "format" : "pve-vmid",
12438 "minimum" : 1,
12439 "type" : "integer",
12440 "typetext" : "<integer> (1 - N)"
12441 }
12442 }
12443 },
12444 "permissions" : {
12445 "check" : [
12446 "perm",
12447 "/vms/{vmid}",
12448 [
12449 "VM.Audit"
12450 ]
12451 ]
12452 },
12453 "proxyto" : "node",
12454 "returns" : {
e9cd3bd4 12455 "description" : "The VM configuration.",
56122987 12456 "properties" : {
44660702
DM
12457 "acpi" : {
12458 "default" : 1,
12459 "description" : "Enable/disable ACPI.",
12460 "optional" : 1,
4d47f125 12461 "type" : "boolean"
44660702
DM
12462 },
12463 "agent" : {
5370fa8c 12464 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
12465 "format" : {
12466 "enabled" : {
12467 "default" : 0,
12468 "default_key" : 1,
5370fa8c 12469 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
12470 "type" : "boolean"
12471 },
12472 "fstrim_cloned_disks" : {
12473 "default" : 0,
d2656385 12474 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
12475 "optional" : 1,
12476 "type" : "boolean"
5c1699e5
TL
12477 },
12478 "type" : {
12479 "default" : "virtio",
12480 "description" : "Select the agent type",
12481 "enum" : [
12482 "virtio",
12483 "isa"
12484 ],
12485 "optional" : 1,
12486 "type" : "string"
4d47f125
TL
12487 }
12488 },
7aacca6f 12489 "optional" : 1,
4d47f125 12490 "type" : "string"
7aacca6f 12491 },
e2d681b3
TL
12492 "arch" : {
12493 "description" : "Virtual processor architecture. Defaults to the host.",
12494 "enum" : [
12495 "x86_64",
12496 "aarch64"
12497 ],
12498 "optional" : 1,
12499 "type" : "string"
12500 },
44660702 12501 "args" : {
c2993fe5 12502 "description" : "Arbitrary arguments passed to kvm.",
44660702 12503 "optional" : 1,
c2993fe5
DM
12504 "type" : "string",
12505 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
7aacca6f 12506 },
1c532546
TL
12507 "audio0" : {
12508 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
12509 "format" : {
12510 "device" : {
12511 "description" : "Configure an audio device.",
12512 "enum" : [
12513 "ich9-intel-hda",
12514 "intel-hda",
12515 "AC97"
12516 ],
12517 "type" : "string"
12518 },
12519 "driver" : {
12520 "default" : "spice",
12521 "description" : "Driver backend for the audio device.",
12522 "enum" : [
d2656385
TL
12523 "spice",
12524 "none"
1c532546
TL
12525 ],
12526 "optional" : 1,
12527 "type" : "string"
12528 }
12529 },
12530 "optional" : 1,
12531 "type" : "string"
12532 },
44660702
DM
12533 "autostart" : {
12534 "default" : 0,
12535 "description" : "Automatic restart after crash (currently ignored).",
56122987 12536 "optional" : 1,
4d47f125 12537 "type" : "boolean"
56122987 12538 },
4d47f125
TL
12539 "balloon" : {
12540 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
12541 "minimum" : 0,
7aacca6f 12542 "optional" : 1,
4d47f125 12543 "type" : "integer"
7aacca6f 12544 },
44660702
DM
12545 "bios" : {
12546 "default" : "seabios",
12547 "description" : "Select BIOS implementation.",
12548 "enum" : [
12549 "seabios",
12550 "ovmf"
12551 ],
56122987 12552 "optional" : 1,
44660702 12553 "type" : "string"
7aacca6f 12554 },
44660702 12555 "boot" : {
5370fa8c 12556 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 12557 "format" : "pve-qm-boot",
44660702 12558 "optional" : 1,
44660702
DM
12559 "type" : "string"
12560 },
12561 "bootdisk" : {
4772952b 12562 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
12563 "format" : "pve-qm-bootdisk",
12564 "optional" : 1,
12565 "pattern" : "(ide|sata|scsi|virtio)\\d+",
12566 "type" : "string"
12567 },
12568 "cdrom" : {
12569 "description" : "This is an alias for option -ide2",
de0983cb 12570 "format" : "pve-qm-ide",
44660702 12571 "optional" : 1,
7aacca6f 12572 "type" : "string",
013dc89f 12573 "typetext" : "<volume>"
44660702 12574 },
95895385
TL
12575 "cicustom" : {
12576 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
12577 "format" : "pve-qm-cicustom",
12578 "optional" : 1,
12579 "type" : "string"
12580 },
27a7acb2
DM
12581 "cipassword" : {
12582 "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.",
12583 "optional" : 1,
4d47f125 12584 "type" : "string"
27a7acb2
DM
12585 },
12586 "citype" : {
12587 "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.",
12588 "enum" : [
12589 "configdrive2",
d2656385
TL
12590 "nocloud",
12591 "opennebula"
27a7acb2
DM
12592 ],
12593 "optional" : 1,
12594 "type" : "string"
12595 },
12596 "ciuser" : {
12597 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
12598 "optional" : 1,
4d47f125 12599 "type" : "string"
27a7acb2 12600 },
44660702
DM
12601 "cores" : {
12602 "default" : 1,
12603 "description" : "The number of cores per socket.",
12604 "minimum" : 1,
7aacca6f 12605 "optional" : 1,
4d47f125 12606 "type" : "integer"
7aacca6f 12607 },
44660702
DM
12608 "cpu" : {
12609 "description" : "Emulated CPU type.",
c5aa7e14 12610 "format" : "pve-vm-cpu-conf",
44660702 12611 "optional" : 1,
4d47f125 12612 "type" : "string"
44660702
DM
12613 },
12614 "cpulimit" : {
12615 "default" : 0,
c2993fe5 12616 "description" : "Limit of CPU usage.",
44660702
DM
12617 "maximum" : 128,
12618 "minimum" : 0,
12619 "optional" : 1,
c2993fe5
DM
12620 "type" : "number",
12621 "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
12622 },
12623 "cpuunits" : {
5370fa8c
TL
12624 "default" : "cgroup v1: 1024, cgroup v2: 100",
12625 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 12626 "maximum" : 262144,
7af2edf9 12627 "minimum" : 1,
44660702 12628 "optional" : 1,
c2993fe5 12629 "type" : "integer",
2489d6df 12630 "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 12631 },
44660702 12632 "description" : {
8f4d9c87
TL
12633 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
12634 "maxLength" : 8192,
44660702 12635 "optional" : 1,
4d47f125 12636 "type" : "string"
44660702
DM
12637 },
12638 "digest" : {
4d47f125
TL
12639 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
12640 "type" : "string"
44660702 12641 },
4d47f125 12642 "efidisk0" : {
7af2edf9 12643 "description" : "Configure a Disk for storing EFI vars.",
4d47f125 12644 "format" : {
5370fa8c
TL
12645 "efitype" : {
12646 "default" : "2m",
12647 "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.",
12648 "enum" : [
12649 "2m",
12650 "4m"
12651 ],
12652 "optional" : 1,
12653 "type" : "string"
12654 },
4d47f125
TL
12655 "file" : {
12656 "default_key" : 1,
12657 "description" : "The drive's backing volume.",
12658 "format" : "pve-volume-id-or-qm-path",
12659 "format_description" : "volume",
12660 "type" : "string"
12661 },
12662 "format" : {
12663 "description" : "The drive's backing file's data format.",
12664 "enum" : [
12665 "raw",
12666 "cow",
12667 "qcow",
12668 "qed",
12669 "qcow2",
12670 "vmdk",
12671 "cloop"
12672 ],
12673 "optional" : 1,
12674 "type" : "string"
12675 },
5370fa8c
TL
12676 "pre-enrolled-keys" : {
12677 "default" : 0,
12678 "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.",
12679 "optional" : 1,
12680 "type" : "boolean"
12681 },
4d47f125
TL
12682 "size" : {
12683 "description" : "Disk size. This is purely informational and has no effect.",
12684 "format" : "disk-size",
12685 "format_description" : "DiskSize",
12686 "optional" : 1,
12687 "type" : "string"
12688 },
12689 "volume" : {
12690 "alias" : "file"
12691 }
12692 },
44660702 12693 "optional" : 1,
4d47f125 12694 "type" : "string"
44660702
DM
12695 },
12696 "freeze" : {
12697 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
12698 "optional" : 1,
4d47f125 12699 "type" : "boolean"
44660702 12700 },
5f26e15b
TL
12701 "hookscript" : {
12702 "description" : "Script that will be executed during various steps in the vms lifetime.",
12703 "format" : "pve-volume-id",
12704 "optional" : 1,
12705 "type" : "string"
12706 },
44660702 12707 "hostpci[n]" : {
c2993fe5 12708 "description" : "Map host PCI devices into guest.",
44660702
DM
12709 "format" : "pve-qm-hostpci",
12710 "optional" : 1,
57b78691 12711 "type" : "string",
bb4c8cf8 12712 "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
12713 },
12714 "hotplug" : {
12715 "default" : "network,disk,usb",
5370fa8c 12716 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`.",
44660702
DM
12717 "format" : "pve-hotplug-features",
12718 "optional" : 1,
4d47f125 12719 "type" : "string"
44660702 12720 },
4bd7df8b
DM
12721 "hugepages" : {
12722 "description" : "Enable/disable hugepages memory.",
12723 "enum" : [
12724 "any",
12725 "2",
12726 "1024"
12727 ],
12728 "optional" : 1,
12729 "type" : "string"
12730 },
44660702 12731 "ide[n]" : {
7af2edf9 12732 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
44660702
DM
12733 "format" : {
12734 "aio" : {
12735 "description" : "AIO type to use.",
12736 "enum" : [
12737 "native",
8f4d9c87
TL
12738 "threads",
12739 "io_uring"
56122987 12740 ],
56122987 12741 "optional" : 1,
44660702 12742 "type" : "string"
56122987 12743 },
44660702
DM
12744 "backup" : {
12745 "description" : "Whether the drive should be included when making backups.",
56122987 12746 "optional" : 1,
44660702 12747 "type" : "boolean"
56122987 12748 },
7aacca6f 12749 "bps" : {
de0983cb 12750 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
12751 "format_description" : "bps",
12752 "optional" : 1,
12753 "type" : "integer"
12754 },
de0983cb
DM
12755 "bps_max_length" : {
12756 "description" : "Maximum length of I/O bursts in seconds.",
12757 "format_description" : "seconds",
12758 "minimum" : 1,
12759 "optional" : 1,
12760 "type" : "integer"
12761 },
44660702 12762 "bps_rd" : {
de0983cb 12763 "description" : "Maximum read speed in bytes per second.",
44660702 12764 "format_description" : "bps",
56122987 12765 "optional" : 1,
44660702 12766 "type" : "integer"
56122987 12767 },
de0983cb 12768 "bps_rd_length" : {
5d9c884c
DM
12769 "alias" : "bps_rd_max_length"
12770 },
12771 "bps_rd_max_length" : {
de0983cb
DM
12772 "description" : "Maximum length of read I/O bursts in seconds.",
12773 "format_description" : "seconds",
12774 "minimum" : 1,
12775 "optional" : 1,
12776 "type" : "integer"
12777 },
44660702 12778 "bps_wr" : {
de0983cb 12779 "description" : "Maximum write speed in bytes per second.",
44660702
DM
12780 "format_description" : "bps",
12781 "optional" : 1,
12782 "type" : "integer"
12783 },
de0983cb 12784 "bps_wr_length" : {
5d9c884c
DM
12785 "alias" : "bps_wr_max_length"
12786 },
12787 "bps_wr_max_length" : {
de0983cb
DM
12788 "description" : "Maximum length of write I/O bursts in seconds.",
12789 "format_description" : "seconds",
12790 "minimum" : 1,
12791 "optional" : 1,
12792 "type" : "integer"
12793 },
44660702
DM
12794 "cache" : {
12795 "description" : "The drive's cache mode",
12796 "enum" : [
12797 "none",
12798 "writethrough",
12799 "writeback",
12800 "unsafe",
12801 "directsync"
12802 ],
44660702
DM
12803 "optional" : 1,
12804 "type" : "string"
12805 },
12806 "cyls" : {
12807 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
12808 "optional" : 1,
12809 "type" : "integer"
12810 },
12811 "detect_zeroes" : {
12812 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
12813 "optional" : 1,
12814 "type" : "boolean"
12815 },
12816 "discard" : {
12817 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
12818 "enum" : [
12819 "ignore",
12820 "on"
12821 ],
56122987 12822 "optional" : 1,
44660702
DM
12823 "type" : "string"
12824 },
12825 "file" : {
12826 "default_key" : 1,
12827 "description" : "The drive's backing volume.",
12828 "format" : "pve-volume-id-or-qm-path",
12829 "format_description" : "volume",
12830 "type" : "string"
56122987 12831 },
7aacca6f 12832 "format" : {
7aacca6f 12833 "description" : "The drive's backing file's data format.",
56122987 12834 "enum" : [
7aacca6f
DM
12835 "raw",
12836 "cow",
12837 "qcow",
12838 "qed",
12839 "qcow2",
12840 "vmdk",
12841 "cloop"
56122987
DM
12842 ],
12843 "optional" : 1,
56122987
DM
12844 "type" : "string"
12845 },
44660702
DM
12846 "heads" : {
12847 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
12848 "optional" : 1,
12849 "type" : "integer"
7aacca6f 12850 },
44660702 12851 "iops" : {
de0983cb 12852 "description" : "Maximum r/w I/O in operations per second.",
44660702 12853 "format_description" : "iops",
56122987 12854 "optional" : 1,
44660702 12855 "type" : "integer"
56122987 12856 },
44660702 12857 "iops_max" : {
de0983cb 12858 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 12859 "format_description" : "iops",
56122987 12860 "optional" : 1,
44660702 12861 "type" : "integer"
56122987 12862 },
de0983cb
DM
12863 "iops_max_length" : {
12864 "description" : "Maximum length of I/O bursts in seconds.",
12865 "format_description" : "seconds",
12866 "minimum" : 1,
12867 "optional" : 1,
12868 "type" : "integer"
12869 },
44660702 12870 "iops_rd" : {
de0983cb 12871 "description" : "Maximum read I/O in operations per second.",
44660702
DM
12872 "format_description" : "iops",
12873 "optional" : 1,
12874 "type" : "integer"
12875 },
de0983cb 12876 "iops_rd_length" : {
5d9c884c 12877 "alias" : "iops_rd_max_length"
de0983cb 12878 },
44660702 12879 "iops_rd_max" : {
de0983cb 12880 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 12881 "format_description" : "iops",
44660702
DM
12882 "optional" : 1,
12883 "type" : "integer"
12884 },
5d9c884c
DM
12885 "iops_rd_max_length" : {
12886 "description" : "Maximum length of read I/O bursts in seconds.",
12887 "format_description" : "seconds",
12888 "minimum" : 1,
12889 "optional" : 1,
12890 "type" : "integer"
12891 },
44660702 12892 "iops_wr" : {
de0983cb 12893 "description" : "Maximum write I/O in operations per second.",
44660702 12894 "format_description" : "iops",
56122987 12895 "optional" : 1,
7aacca6f 12896 "type" : "integer"
56122987 12897 },
de0983cb 12898 "iops_wr_length" : {
5d9c884c 12899 "alias" : "iops_wr_max_length"
de0983cb 12900 },
44660702 12901 "iops_wr_max" : {
de0983cb 12902 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 12903 "format_description" : "iops",
7aacca6f 12904 "optional" : 1,
44660702 12905 "type" : "integer"
56122987 12906 },
5d9c884c
DM
12907 "iops_wr_max_length" : {
12908 "description" : "Maximum length of write I/O bursts in seconds.",
12909 "format_description" : "seconds",
12910 "minimum" : 1,
12911 "optional" : 1,
12912 "type" : "integer"
12913 },
44660702 12914 "mbps" : {
de0983cb 12915 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
12916 "format_description" : "mbps",
12917 "optional" : 1,
12918 "type" : "number"
12919 },
12920 "mbps_max" : {
de0983cb 12921 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
12922 "format_description" : "mbps",
12923 "optional" : 1,
12924 "type" : "number"
12925 },
12926 "mbps_rd" : {
de0983cb 12927 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
12928 "format_description" : "mbps",
12929 "optional" : 1,
12930 "type" : "number"
12931 },
12932 "mbps_rd_max" : {
de0983cb 12933 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
12934 "format_description" : "mbps",
12935 "optional" : 1,
12936 "type" : "number"
12937 },
12938 "mbps_wr" : {
de0983cb 12939 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
12940 "format_description" : "mbps",
12941 "optional" : 1,
12942 "type" : "number"
12943 },
12944 "mbps_wr_max" : {
de0983cb 12945 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 12946 "format_description" : "mbps",
56122987 12947 "optional" : 1,
44660702 12948 "type" : "number"
56122987 12949 },
7aacca6f 12950 "media" : {
7aacca6f 12951 "default" : "disk",
7aacca6f
DM
12952 "description" : "The drive's media type.",
12953 "enum" : [
12954 "cdrom",
12955 "disk"
44660702 12956 ],
44660702
DM
12957 "optional" : 1,
12958 "type" : "string"
56122987 12959 },
44660702
DM
12960 "model" : {
12961 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
12962 "format" : "urlencoded",
12963 "format_description" : "model",
12964 "maxLength" : 120,
56122987 12965 "optional" : 1,
44660702 12966 "type" : "string"
56122987 12967 },
5d9c884c
DM
12968 "replicate" : {
12969 "default" : 1,
12970 "description" : "Whether the drive should considered for replication jobs.",
12971 "optional" : 1,
12972 "type" : "boolean"
12973 },
44660702
DM
12974 "rerror" : {
12975 "description" : "Read error action.",
12976 "enum" : [
12977 "ignore",
12978 "report",
12979 "stop"
12980 ],
56122987 12981 "optional" : 1,
44660702
DM
12982 "type" : "string"
12983 },
12984 "secs" : {
12985 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
12986 "optional" : 1,
12987 "type" : "integer"
12988 },
12989 "serial" : {
12990 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
12991 "format" : "urlencoded",
12992 "format_description" : "serial",
12993 "maxLength" : 60,
12994 "optional" : 1,
12995 "type" : "string"
12996 },
27a7acb2
DM
12997 "shared" : {
12998 "default" : 0,
12999 "description" : "Mark this locally-managed volume as available on all nodes",
13000 "optional" : 1,
13001 "type" : "boolean",
13002 "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!"
13003 },
44660702
DM
13004 "size" : {
13005 "description" : "Disk size. This is purely informational and has no effect.",
13006 "format" : "disk-size",
f004f5b9 13007 "format_description" : "DiskSize",
44660702
DM
13008 "optional" : 1,
13009 "type" : "string"
13010 },
13011 "snapshot" : {
27a7acb2 13012 "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
13013 "optional" : 1,
13014 "type" : "boolean"
13015 },
25203dc1
NC
13016 "ssd" : {
13017 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
13018 "optional" : 1,
13019 "type" : "boolean"
13020 },
44660702
DM
13021 "trans" : {
13022 "description" : "Force disk geometry bios translation mode.",
13023 "enum" : [
13024 "none",
13025 "lba",
13026 "auto"
13027 ],
44660702
DM
13028 "optional" : 1,
13029 "type" : "string"
13030 },
13031 "volume" : {
13032 "alias" : "file"
13033 },
13034 "werror" : {
13035 "description" : "Write error action.",
13036 "enum" : [
13037 "enospc",
13038 "ignore",
13039 "report",
13040 "stop"
13041 ],
44660702
DM
13042 "optional" : 1,
13043 "type" : "string"
95895385
TL
13044 },
13045 "wwn" : {
13046 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
13047 "format_description" : "wwn",
13048 "optional" : 1,
13049 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
13050 "type" : "string"
56122987
DM
13051 }
13052 },
44660702 13053 "optional" : 1,
4d47f125 13054 "type" : "string"
27a7acb2
DM
13055 },
13056 "ipconfig[n]" : {
d2656385 13057 "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
13058 "format" : "pve-qm-ipconfig",
13059 "optional" : 1,
4d47f125 13060 "type" : "string"
56122987 13061 },
95895385
TL
13062 "ivshmem" : {
13063 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
13064 "format" : {
13065 "name" : {
13066 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
13067 "format_description" : "string",
13068 "optional" : 1,
13069 "pattern" : "[a-zA-Z0-9\\-]+",
13070 "type" : "string"
13071 },
13072 "size" : {
13073 "description" : "The size of the file in MB.",
13074 "minimum" : 1,
13075 "type" : "integer"
13076 }
13077 },
13078 "optional" : 1,
13079 "type" : "string"
13080 },
4772952b
TL
13081 "keephugepages" : {
13082 "default" : 0,
13083 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
13084 "optional" : 1,
13085 "type" : "boolean"
13086 },
44660702 13087 "keyboard" : {
35a75dd3 13088 "default" : null,
7af2edf9 13089 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
13090 "enum" : [
13091 "de",
13092 "de-ch",
13093 "da",
13094 "en-gb",
13095 "en-us",
13096 "es",
13097 "fi",
13098 "fr",
13099 "fr-be",
13100 "fr-ca",
13101 "fr-ch",
13102 "hu",
13103 "is",
13104 "it",
13105 "ja",
13106 "lt",
13107 "mk",
13108 "nl",
13109 "no",
13110 "pl",
13111 "pt",
13112 "pt-br",
13113 "sv",
13114 "sl",
13115 "tr"
13116 ],
56122987 13117 "optional" : 1,
44660702
DM
13118 "type" : "string"
13119 },
13120 "kvm" : {
7aacca6f 13121 "default" : 1,
44660702
DM
13122 "description" : "Enable/disable KVM hardware virtualization.",
13123 "optional" : 1,
4d47f125 13124 "type" : "boolean"
56122987 13125 },
44660702 13126 "localtime" : {
5370fa8c 13127 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 13128 "optional" : 1,
4d47f125 13129 "type" : "boolean"
56122987 13130 },
44660702
DM
13131 "lock" : {
13132 "description" : "Lock/unlock the VM.",
13133 "enum" : [
44660702 13134 "backup",
5f26e15b
TL
13135 "clone",
13136 "create",
13137 "migrate",
13138 "rollback",
44660702 13139 "snapshot",
95895385
TL
13140 "snapshot-delete",
13141 "suspending",
13142 "suspended"
44660702 13143 ],
7aacca6f 13144 "optional" : 1,
44660702
DM
13145 "type" : "string"
13146 },
13147 "machine" : {
4d47f125 13148 "description" : "Specifies the Qemu machine type.",
44660702
DM
13149 "maxLength" : 40,
13150 "optional" : 1,
5c1699e5 13151 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
13152 "type" : "string"
13153 },
13154 "memory" : {
13155 "default" : 512,
13156 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
13157 "minimum" : 16,
13158 "optional" : 1,
4d47f125 13159 "type" : "integer"
44660702
DM
13160 },
13161 "migrate_downtime" : {
13162 "default" : 0.1,
13163 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
13164 "minimum" : 0,
13165 "optional" : 1,
4d47f125 13166 "type" : "number"
44660702
DM
13167 },
13168 "migrate_speed" : {
13169 "default" : 0,
13170 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
13171 "minimum" : 0,
13172 "optional" : 1,
4d47f125 13173 "type" : "integer"
44660702
DM
13174 },
13175 "name" : {
13176 "description" : "Set a name for the VM. Only used on the configuration web interface.",
13177 "format" : "dns-name",
13178 "optional" : 1,
4d47f125 13179 "type" : "string"
44660702 13180 },
27a7acb2 13181 "nameserver" : {
4772952b 13182 "description" : "cloud-init: Sets DNS server IP address for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
27a7acb2
DM
13183 "format" : "address-list",
13184 "optional" : 1,
4d47f125 13185 "type" : "string"
27a7acb2 13186 },
44660702 13187 "net[n]" : {
c2993fe5 13188 "description" : "Specify network devices.",
f004f5b9
DM
13189 "format" : {
13190 "bridge" : {
c2993fe5 13191 "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 13192 "format" : "pve-bridge-id",
f004f5b9
DM
13193 "format_description" : "bridge",
13194 "optional" : 1,
13195 "type" : "string"
13196 },
13197 "e1000" : {
13198 "alias" : "macaddr",
13199 "keyAlias" : "model"
13200 },
13201 "e1000-82540em" : {
13202 "alias" : "macaddr",
13203 "keyAlias" : "model"
13204 },
13205 "e1000-82544gc" : {
13206 "alias" : "macaddr",
13207 "keyAlias" : "model"
13208 },
13209 "e1000-82545em" : {
13210 "alias" : "macaddr",
13211 "keyAlias" : "model"
13212 },
5370fa8c
TL
13213 "e1000e" : {
13214 "alias" : "macaddr",
13215 "keyAlias" : "model"
13216 },
f004f5b9
DM
13217 "firewall" : {
13218 "description" : "Whether this interface should be protected by the firewall.",
13219 "optional" : 1,
13220 "type" : "boolean"
13221 },
13222 "i82551" : {
13223 "alias" : "macaddr",
13224 "keyAlias" : "model"
13225 },
13226 "i82557b" : {
13227 "alias" : "macaddr",
13228 "keyAlias" : "model"
13229 },
13230 "i82559er" : {
13231 "alias" : "macaddr",
13232 "keyAlias" : "model"
13233 },
13234 "link_down" : {
c2993fe5 13235 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
13236 "optional" : 1,
13237 "type" : "boolean"
13238 },
13239 "macaddr" : {
c2993fe5 13240 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 13241 "format" : "mac-addr",
f004f5b9 13242 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 13243 "optional" : 1,
95895385
TL
13244 "type" : "string",
13245 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
13246 },
13247 "model" : {
13248 "default_key" : 1,
c2993fe5 13249 "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 13250 "enum" : [
f004f5b9 13251 "e1000",
5370fa8c
TL
13252 "e1000-82540em",
13253 "e1000-82544gc",
13254 "e1000-82545em",
13255 "e1000e",
f004f5b9
DM
13256 "i82551",
13257 "i82557b",
13258 "i82559er",
5370fa8c
TL
13259 "ne2k_isa",
13260 "ne2k_pci",
13261 "pcnet",
13262 "rtl8139",
13263 "virtio",
13264 "vmxnet3"
f004f5b9 13265 ],
f004f5b9
DM
13266 "type" : "string"
13267 },
ac70d7d1
TL
13268 "mtu" : {
13269 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
13270 "maximum" : 65520,
13271 "minimum" : 1,
13272 "optional" : 1,
13273 "type" : "integer"
13274 },
f004f5b9
DM
13275 "ne2k_isa" : {
13276 "alias" : "macaddr",
13277 "keyAlias" : "model"
13278 },
13279 "ne2k_pci" : {
13280 "alias" : "macaddr",
13281 "keyAlias" : "model"
13282 },
13283 "pcnet" : {
13284 "alias" : "macaddr",
13285 "keyAlias" : "model"
13286 },
13287 "queues" : {
13288 "description" : "Number of packet queues to be used on the device.",
13289 "maximum" : 16,
13290 "minimum" : 0,
13291 "optional" : 1,
13292 "type" : "integer"
13293 },
13294 "rate" : {
c2993fe5 13295 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
13296 "minimum" : 0,
13297 "optional" : 1,
13298 "type" : "number"
13299 },
13300 "rtl8139" : {
13301 "alias" : "macaddr",
13302 "keyAlias" : "model"
13303 },
13304 "tag" : {
13305 "description" : "VLAN tag to apply to packets on this interface.",
13306 "maximum" : 4094,
c2993fe5 13307 "minimum" : 1,
f004f5b9
DM
13308 "optional" : 1,
13309 "type" : "integer"
13310 },
13311 "trunks" : {
13312 "description" : "VLAN trunks to pass through this interface.",
13313 "format_description" : "vlanid[;vlanid...]",
13314 "optional" : 1,
13315 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
13316 "type" : "string"
13317 },
13318 "virtio" : {
13319 "alias" : "macaddr",
13320 "keyAlias" : "model"
13321 },
13322 "vmxnet3" : {
13323 "alias" : "macaddr",
13324 "keyAlias" : "model"
13325 }
13326 },
44660702 13327 "optional" : 1,
4d47f125 13328 "type" : "string"
44660702
DM
13329 },
13330 "numa" : {
13331 "default" : 0,
13332 "description" : "Enable/disable NUMA.",
13333 "optional" : 1,
4d47f125 13334 "type" : "boolean"
44660702
DM
13335 },
13336 "numa[n]" : {
c2993fe5 13337 "description" : "NUMA topology.",
56122987 13338 "format" : {
7aacca6f 13339 "cpus" : {
c2993fe5 13340 "description" : "CPUs accessing this NUMA node.",
44660702
DM
13341 "format_description" : "id[-id];...",
13342 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
13343 "type" : "string"
7aacca6f
DM
13344 },
13345 "hostnodes" : {
c2993fe5 13346 "description" : "Host NUMA nodes to use.",
44660702 13347 "format_description" : "id[-id];...",
7aacca6f 13348 "optional" : 1,
7aacca6f 13349 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
44660702 13350 "type" : "string"
7aacca6f 13351 },
44660702 13352 "memory" : {
c2993fe5 13353 "description" : "Amount of memory this NUMA node provides.",
7aacca6f 13354 "optional" : 1,
44660702
DM
13355 "type" : "number"
13356 },
13357 "policy" : {
c2993fe5 13358 "description" : "NUMA allocation policy.",
7aacca6f
DM
13359 "enum" : [
13360 "preferred",
13361 "bind",
13362 "interleave"
13363 ],
44660702
DM
13364 "optional" : 1,
13365 "type" : "string"
56122987 13366 }
44660702 13367 },
56122987 13368 "optional" : 1,
4d47f125 13369 "type" : "string"
56122987 13370 },
44660702 13371 "onboot" : {
7aacca6f 13372 "default" : 0,
44660702
DM
13373 "description" : "Specifies whether a VM will be started during system bootup.",
13374 "optional" : 1,
4d47f125 13375 "type" : "boolean"
7aacca6f
DM
13376 },
13377 "ostype" : {
c2993fe5 13378 "description" : "Specify guest operating system.",
7aacca6f
DM
13379 "enum" : [
13380 "other",
13381 "wxp",
13382 "w2k",
13383 "w2k3",
13384 "w2k8",
13385 "wvista",
13386 "win7",
13387 "win8",
32d876b5 13388 "win10",
5370fa8c 13389 "win11",
7aacca6f
DM
13390 "l24",
13391 "l26",
13392 "solaris"
13393 ],
7aacca6f 13394 "optional" : 1,
c2993fe5 13395 "type" : "string",
5370fa8c 13396 "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 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
56122987 13397 },
44660702 13398 "parallel[n]" : {
c2993fe5 13399 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 13400 "optional" : 1,
44660702 13401 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 13402 "type" : "string",
4772952b 13403 "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
13404 },
13405 "protection" : {
13406 "default" : 0,
c2993fe5 13407 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 13408 "optional" : 1,
4d47f125 13409 "type" : "boolean"
7aacca6f 13410 },
44660702
DM
13411 "reboot" : {
13412 "default" : 1,
13413 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 13414 "optional" : 1,
4d47f125 13415 "type" : "boolean"
44660702 13416 },
c5aa7e14
TL
13417 "rng0" : {
13418 "description" : "Configure a VirtIO-based Random Number Generator.",
13419 "format" : {
13420 "max_bytes" : {
13421 "default" : 1024,
5370fa8c 13422 "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
13423 "optional" : 1,
13424 "type" : "integer"
13425 },
13426 "period" : {
13427 "default" : 1000,
13428 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
13429 "optional" : 1,
13430 "type" : "integer"
13431 },
13432 "source" : {
13433 "default_key" : 1,
5370fa8c 13434 "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
13435 "enum" : [
13436 "/dev/urandom",
13437 "/dev/random",
13438 "/dev/hwrng"
13439 ],
13440 "type" : "string"
13441 }
13442 },
13443 "optional" : 1,
13444 "type" : "string"
13445 },
44660702 13446 "sata[n]" : {
7af2edf9 13447 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
56122987 13448 "format" : {
44660702
DM
13449 "aio" : {
13450 "description" : "AIO type to use.",
7aacca6f 13451 "enum" : [
44660702 13452 "native",
8f4d9c87
TL
13453 "threads",
13454 "io_uring"
7aacca6f 13455 ],
44660702
DM
13456 "optional" : 1,
13457 "type" : "string"
7aacca6f 13458 },
44660702
DM
13459 "backup" : {
13460 "description" : "Whether the drive should be included when making backups.",
56122987 13461 "optional" : 1,
7aacca6f 13462 "type" : "boolean"
44660702
DM
13463 },
13464 "bps" : {
de0983cb 13465 "description" : "Maximum r/w speed in bytes per second.",
44660702 13466 "format_description" : "bps",
7aacca6f 13467 "optional" : 1,
44660702 13468 "type" : "integer"
56122987 13469 },
de0983cb
DM
13470 "bps_max_length" : {
13471 "description" : "Maximum length of I/O bursts in seconds.",
13472 "format_description" : "seconds",
13473 "minimum" : 1,
13474 "optional" : 1,
13475 "type" : "integer"
13476 },
44660702 13477 "bps_rd" : {
de0983cb 13478 "description" : "Maximum read speed in bytes per second.",
44660702 13479 "format_description" : "bps",
56122987 13480 "optional" : 1,
44660702 13481 "type" : "integer"
56122987 13482 },
de0983cb 13483 "bps_rd_length" : {
5d9c884c
DM
13484 "alias" : "bps_rd_max_length"
13485 },
13486 "bps_rd_max_length" : {
de0983cb
DM
13487 "description" : "Maximum length of read I/O bursts in seconds.",
13488 "format_description" : "seconds",
13489 "minimum" : 1,
13490 "optional" : 1,
13491 "type" : "integer"
13492 },
44660702 13493 "bps_wr" : {
de0983cb 13494 "description" : "Maximum write speed in bytes per second.",
44660702 13495 "format_description" : "bps",
56122987 13496 "optional" : 1,
44660702 13497 "type" : "integer"
56122987 13498 },
de0983cb 13499 "bps_wr_length" : {
5d9c884c
DM
13500 "alias" : "bps_wr_max_length"
13501 },
13502 "bps_wr_max_length" : {
de0983cb
DM
13503 "description" : "Maximum length of write I/O bursts in seconds.",
13504 "format_description" : "seconds",
13505 "minimum" : 1,
13506 "optional" : 1,
13507 "type" : "integer"
13508 },
56122987 13509 "cache" : {
44660702 13510 "description" : "The drive's cache mode",
56122987
DM
13511 "enum" : [
13512 "none",
13513 "writethrough",
13514 "writeback",
13515 "unsafe",
13516 "directsync"
13517 ],
56122987 13518 "optional" : 1,
44660702 13519 "type" : "string"
56122987 13520 },
44660702
DM
13521 "cyls" : {
13522 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 13523 "optional" : 1,
44660702 13524 "type" : "integer"
7aacca6f
DM
13525 },
13526 "detect_zeroes" : {
13527 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 13528 "optional" : 1,
44660702 13529 "type" : "boolean"
56122987 13530 },
44660702
DM
13531 "discard" : {
13532 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
13533 "enum" : [
13534 "ignore",
13535 "on"
13536 ],
56122987 13537 "optional" : 1,
44660702 13538 "type" : "string"
7aacca6f 13539 },
44660702
DM
13540 "file" : {
13541 "default_key" : 1,
13542 "description" : "The drive's backing volume.",
13543 "format" : "pve-volume-id-or-qm-path",
13544 "format_description" : "volume",
13545 "type" : "string"
56122987 13546 },
7aacca6f 13547 "format" : {
44660702 13548 "description" : "The drive's backing file's data format.",
7aacca6f
DM
13549 "enum" : [
13550 "raw",
13551 "cow",
13552 "qcow",
13553 "qed",
13554 "qcow2",
13555 "vmdk",
13556 "cloop"
13557 ],
7aacca6f 13558 "optional" : 1,
44660702 13559 "type" : "string"
56122987 13560 },
7aacca6f 13561 "heads" : {
7aacca6f 13562 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 13563 "optional" : 1,
7aacca6f 13564 "type" : "integer"
56122987 13565 },
44660702 13566 "iops" : {
de0983cb 13567 "description" : "Maximum r/w I/O in operations per second.",
44660702 13568 "format_description" : "iops",
56122987 13569 "optional" : 1,
44660702 13570 "type" : "integer"
56122987 13571 },
44660702 13572 "iops_max" : {
de0983cb 13573 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 13574 "format_description" : "iops",
56122987 13575 "optional" : 1,
44660702 13576 "type" : "integer"
56122987 13577 },
de0983cb
DM
13578 "iops_max_length" : {
13579 "description" : "Maximum length of I/O bursts in seconds.",
13580 "format_description" : "seconds",
13581 "minimum" : 1,
13582 "optional" : 1,
13583 "type" : "integer"
13584 },
44660702 13585 "iops_rd" : {
de0983cb 13586 "description" : "Maximum read I/O in operations per second.",
44660702 13587 "format_description" : "iops",
7aacca6f 13588 "optional" : 1,
44660702 13589 "type" : "integer"
56122987 13590 },
de0983cb 13591 "iops_rd_length" : {
5d9c884c 13592 "alias" : "iops_rd_max_length"
de0983cb 13593 },
44660702 13594 "iops_rd_max" : {
de0983cb 13595 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 13596 "format_description" : "iops",
56122987 13597 "optional" : 1,
44660702 13598 "type" : "integer"
7aacca6f 13599 },
5d9c884c
DM
13600 "iops_rd_max_length" : {
13601 "description" : "Maximum length of read I/O bursts in seconds.",
13602 "format_description" : "seconds",
13603 "minimum" : 1,
13604 "optional" : 1,
13605 "type" : "integer"
13606 },
44660702 13607 "iops_wr" : {
de0983cb 13608 "description" : "Maximum write I/O in operations per second.",
44660702 13609 "format_description" : "iops",
56122987 13610 "optional" : 1,
44660702 13611 "type" : "integer"
56122987 13612 },
de0983cb 13613 "iops_wr_length" : {
5d9c884c 13614 "alias" : "iops_wr_max_length"
de0983cb 13615 },
56122987 13616 "iops_wr_max" : {
de0983cb 13617 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 13618 "format_description" : "iops",
56122987 13619 "optional" : 1,
44660702 13620 "type" : "integer"
56122987 13621 },
5d9c884c
DM
13622 "iops_wr_max_length" : {
13623 "description" : "Maximum length of write I/O bursts in seconds.",
13624 "format_description" : "seconds",
13625 "minimum" : 1,
13626 "optional" : 1,
13627 "type" : "integer"
13628 },
44660702 13629 "mbps" : {
de0983cb 13630 "description" : "Maximum r/w speed in megabytes per second.",
44660702 13631 "format_description" : "mbps",
56122987 13632 "optional" : 1,
44660702 13633 "type" : "number"
56122987 13634 },
44660702 13635 "mbps_max" : {
de0983cb 13636 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
13637 "format_description" : "mbps",
13638 "optional" : 1,
13639 "type" : "number"
56122987 13640 },
44660702 13641 "mbps_rd" : {
de0983cb 13642 "description" : "Maximum read speed in megabytes per second.",
44660702 13643 "format_description" : "mbps",
56122987 13644 "optional" : 1,
44660702 13645 "type" : "number"
56122987 13646 },
44660702 13647 "mbps_rd_max" : {
de0983cb 13648 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 13649 "format_description" : "mbps",
56122987 13650 "optional" : 1,
44660702 13651 "type" : "number"
56122987 13652 },
44660702 13653 "mbps_wr" : {
de0983cb 13654 "description" : "Maximum write speed in megabytes per second.",
56122987 13655 "format_description" : "mbps",
44660702
DM
13656 "optional" : 1,
13657 "type" : "number"
56122987 13658 },
44660702 13659 "mbps_wr_max" : {
de0983cb 13660 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
13661 "format_description" : "mbps",
13662 "optional" : 1,
13663 "type" : "number"
7aacca6f 13664 },
44660702
DM
13665 "media" : {
13666 "default" : "disk",
13667 "description" : "The drive's media type.",
13668 "enum" : [
13669 "cdrom",
13670 "disk"
13671 ],
56122987 13672 "optional" : 1,
44660702
DM
13673 "type" : "string"
13674 },
5d9c884c
DM
13675 "replicate" : {
13676 "default" : 1,
13677 "description" : "Whether the drive should considered for replication jobs.",
13678 "optional" : 1,
13679 "type" : "boolean"
13680 },
44660702
DM
13681 "rerror" : {
13682 "description" : "Read error action.",
7aacca6f 13683 "enum" : [
44660702
DM
13684 "ignore",
13685 "report",
13686 "stop"
13687 ],
7aacca6f 13688 "optional" : 1,
44660702 13689 "type" : "string"
56122987 13690 },
44660702
DM
13691 "secs" : {
13692 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 13693 "optional" : 1,
44660702 13694 "type" : "integer"
56122987 13695 },
44660702
DM
13696 "serial" : {
13697 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
13698 "format" : "urlencoded",
13699 "format_description" : "serial",
13700 "maxLength" : 60,
56122987 13701 "optional" : 1,
44660702 13702 "type" : "string"
56122987 13703 },
27a7acb2
DM
13704 "shared" : {
13705 "default" : 0,
13706 "description" : "Mark this locally-managed volume as available on all nodes",
13707 "optional" : 1,
13708 "type" : "boolean",
13709 "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!"
13710 },
44660702
DM
13711 "size" : {
13712 "description" : "Disk size. This is purely informational and has no effect.",
13713 "format" : "disk-size",
f004f5b9 13714 "format_description" : "DiskSize",
44660702
DM
13715 "optional" : 1,
13716 "type" : "string"
13717 },
13718 "snapshot" : {
27a7acb2 13719 "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 13720 "optional" : 1,
44660702
DM
13721 "type" : "boolean"
13722 },
25203dc1
NC
13723 "ssd" : {
13724 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
13725 "optional" : 1,
13726 "type" : "boolean"
13727 },
44660702
DM
13728 "trans" : {
13729 "description" : "Force disk geometry bios translation mode.",
56122987 13730 "enum" : [
7aacca6f
DM
13731 "none",
13732 "lba",
13733 "auto"
56122987 13734 ],
44660702
DM
13735 "optional" : 1,
13736 "type" : "string"
56122987 13737 },
7aacca6f
DM
13738 "volume" : {
13739 "alias" : "file"
56122987 13740 },
44660702
DM
13741 "werror" : {
13742 "description" : "Write error action.",
13743 "enum" : [
13744 "enospc",
13745 "ignore",
13746 "report",
13747 "stop"
13748 ],
7aacca6f 13749 "optional" : 1,
44660702 13750 "type" : "string"
95895385
TL
13751 },
13752 "wwn" : {
13753 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
13754 "format_description" : "wwn",
13755 "optional" : 1,
13756 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
13757 "type" : "string"
44660702
DM
13758 }
13759 },
13760 "optional" : 1,
4d47f125 13761 "type" : "string"
44660702
DM
13762 },
13763 "scsi[n]" : {
7af2edf9 13764 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).",
44660702 13765 "format" : {
56122987 13766 "aio" : {
56122987
DM
13767 "description" : "AIO type to use.",
13768 "enum" : [
13769 "native",
8f4d9c87
TL
13770 "threads",
13771 "io_uring"
56122987 13772 ],
7aacca6f 13773 "optional" : 1,
44660702 13774 "type" : "string"
56122987 13775 },
44660702
DM
13776 "backup" : {
13777 "description" : "Whether the drive should be included when making backups.",
56122987 13778 "optional" : 1,
44660702 13779 "type" : "boolean"
56122987 13780 },
44660702 13781 "bps" : {
de0983cb 13782 "description" : "Maximum r/w speed in bytes per second.",
44660702 13783 "format_description" : "bps",
56122987 13784 "optional" : 1,
44660702 13785 "type" : "integer"
56122987 13786 },
de0983cb
DM
13787 "bps_max_length" : {
13788 "description" : "Maximum length of I/O bursts in seconds.",
13789 "format_description" : "seconds",
13790 "minimum" : 1,
13791 "optional" : 1,
13792 "type" : "integer"
13793 },
44660702 13794 "bps_rd" : {
de0983cb 13795 "description" : "Maximum read speed in bytes per second.",
44660702 13796 "format_description" : "bps",
56122987 13797 "optional" : 1,
44660702 13798 "type" : "integer"
56122987 13799 },
de0983cb 13800 "bps_rd_length" : {
5d9c884c
DM
13801 "alias" : "bps_rd_max_length"
13802 },
13803 "bps_rd_max_length" : {
de0983cb
DM
13804 "description" : "Maximum length of read I/O bursts in seconds.",
13805 "format_description" : "seconds",
13806 "minimum" : 1,
13807 "optional" : 1,
13808 "type" : "integer"
13809 },
7aacca6f 13810 "bps_wr" : {
de0983cb 13811 "description" : "Maximum write speed in bytes per second.",
7aacca6f 13812 "format_description" : "bps",
56122987 13813 "optional" : 1,
44660702 13814 "type" : "integer"
56122987 13815 },
de0983cb 13816 "bps_wr_length" : {
5d9c884c
DM
13817 "alias" : "bps_wr_max_length"
13818 },
13819 "bps_wr_max_length" : {
de0983cb
DM
13820 "description" : "Maximum length of write I/O bursts in seconds.",
13821 "format_description" : "seconds",
13822 "minimum" : 1,
13823 "optional" : 1,
13824 "type" : "integer"
13825 },
44660702
DM
13826 "cache" : {
13827 "description" : "The drive's cache mode",
7aacca6f 13828 "enum" : [
44660702
DM
13829 "none",
13830 "writethrough",
13831 "writeback",
13832 "unsafe",
13833 "directsync"
7aacca6f 13834 ],
56122987 13835 "optional" : 1,
44660702 13836 "type" : "string"
56122987 13837 },
44660702
DM
13838 "cyls" : {
13839 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 13840 "optional" : 1,
44660702 13841 "type" : "integer"
56122987 13842 },
44660702
DM
13843 "detect_zeroes" : {
13844 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 13845 "optional" : 1,
44660702 13846 "type" : "boolean"
56122987 13847 },
44660702
DM
13848 "discard" : {
13849 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
13850 "enum" : [
13851 "ignore",
13852 "on"
13853 ],
7aacca6f 13854 "optional" : 1,
44660702 13855 "type" : "string"
56122987 13856 },
44660702
DM
13857 "file" : {
13858 "default_key" : 1,
13859 "description" : "The drive's backing volume.",
13860 "format" : "pve-volume-id-or-qm-path",
13861 "format_description" : "volume",
13862 "type" : "string"
56122987 13863 },
7aacca6f 13864 "format" : {
44660702 13865 "description" : "The drive's backing file's data format.",
56122987 13866 "enum" : [
7aacca6f
DM
13867 "raw",
13868 "cow",
13869 "qcow",
13870 "qed",
13871 "qcow2",
13872 "vmdk",
13873 "cloop"
13874 ],
44660702
DM
13875 "optional" : 1,
13876 "type" : "string"
56122987 13877 },
44660702
DM
13878 "heads" : {
13879 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 13880 "optional" : 1,
7aacca6f 13881 "type" : "integer"
56122987 13882 },
44660702 13883 "iops" : {
de0983cb 13884 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 13885 "format_description" : "iops",
44660702
DM
13886 "optional" : 1,
13887 "type" : "integer"
7aacca6f 13888 },
44660702 13889 "iops_max" : {
de0983cb 13890 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 13891 "format_description" : "iops",
56122987 13892 "optional" : 1,
44660702 13893 "type" : "integer"
7aacca6f 13894 },
de0983cb
DM
13895 "iops_max_length" : {
13896 "description" : "Maximum length of I/O bursts in seconds.",
13897 "format_description" : "seconds",
13898 "minimum" : 1,
13899 "optional" : 1,
13900 "type" : "integer"
13901 },
44660702 13902 "iops_rd" : {
de0983cb 13903 "description" : "Maximum read I/O in operations per second.",
44660702 13904 "format_description" : "iops",
7aacca6f 13905 "optional" : 1,
44660702 13906 "type" : "integer"
56122987 13907 },
de0983cb 13908 "iops_rd_length" : {
5d9c884c 13909 "alias" : "iops_rd_max_length"
de0983cb 13910 },
44660702 13911 "iops_rd_max" : {
de0983cb 13912 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
13913 "format_description" : "iops",
13914 "optional" : 1,
13915 "type" : "integer"
13916 },
5d9c884c
DM
13917 "iops_rd_max_length" : {
13918 "description" : "Maximum length of read I/O bursts in seconds.",
13919 "format_description" : "seconds",
13920 "minimum" : 1,
13921 "optional" : 1,
13922 "type" : "integer"
13923 },
44660702 13924 "iops_wr" : {
de0983cb 13925 "description" : "Maximum write I/O in operations per second.",
44660702 13926 "format_description" : "iops",
56122987 13927 "optional" : 1,
44660702
DM
13928 "type" : "integer"
13929 },
de0983cb 13930 "iops_wr_length" : {
5d9c884c 13931 "alias" : "iops_wr_max_length"
de0983cb 13932 },
44660702 13933 "iops_wr_max" : {
de0983cb 13934 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
13935 "format_description" : "iops",
13936 "optional" : 1,
13937 "type" : "integer"
56122987 13938 },
5d9c884c
DM
13939 "iops_wr_max_length" : {
13940 "description" : "Maximum length of write I/O bursts in seconds.",
13941 "format_description" : "seconds",
13942 "minimum" : 1,
13943 "optional" : 1,
13944 "type" : "integer"
13945 },
7aacca6f 13946 "iothread" : {
7aacca6f 13947 "description" : "Whether to use iothreads for this drive",
56122987 13948 "optional" : 1,
56122987
DM
13949 "type" : "boolean"
13950 },
44660702 13951 "mbps" : {
de0983cb 13952 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
13953 "format_description" : "mbps",
13954 "optional" : 1,
13955 "type" : "number"
13956 },
13957 "mbps_max" : {
de0983cb 13958 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
13959 "format_description" : "mbps",
13960 "optional" : 1,
13961 "type" : "number"
13962 },
13963 "mbps_rd" : {
de0983cb 13964 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
13965 "format_description" : "mbps",
13966 "optional" : 1,
13967 "type" : "number"
13968 },
13969 "mbps_rd_max" : {
de0983cb 13970 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
13971 "format_description" : "mbps",
13972 "optional" : 1,
13973 "type" : "number"
13974 },
13975 "mbps_wr" : {
de0983cb 13976 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
13977 "format_description" : "mbps",
13978 "optional" : 1,
13979 "type" : "number"
13980 },
13981 "mbps_wr_max" : {
de0983cb 13982 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
13983 "format_description" : "mbps",
13984 "optional" : 1,
13985 "type" : "number"
13986 },
7aacca6f 13987 "media" : {
44660702
DM
13988 "default" : "disk",
13989 "description" : "The drive's media type.",
7aacca6f
DM
13990 "enum" : [
13991 "cdrom",
13992 "disk"
13993 ],
56122987 13994 "optional" : 1,
44660702
DM
13995 "type" : "string"
13996 },
13997 "queues" : {
13998 "description" : "Number of queues.",
44660702
DM
13999 "minimum" : 2,
14000 "optional" : 1,
14001 "type" : "integer"
14002 },
5d9c884c
DM
14003 "replicate" : {
14004 "default" : 1,
14005 "description" : "Whether the drive should considered for replication jobs.",
14006 "optional" : 1,
14007 "type" : "boolean"
14008 },
14009 "rerror" : {
14010 "description" : "Read error action.",
14011 "enum" : [
14012 "ignore",
14013 "report",
14014 "stop"
14015 ],
14016 "optional" : 1,
14017 "type" : "string"
14018 },
5370fa8c
TL
14019 "ro" : {
14020 "description" : "Whether the drive is read-only.",
14021 "optional" : 1,
14022 "type" : "boolean"
14023 },
52e44c50
FG
14024 "scsiblock" : {
14025 "default" : 0,
14026 "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",
14027 "optional" : 1,
14028 "type" : "boolean"
14029 },
44660702
DM
14030 "secs" : {
14031 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
14032 "optional" : 1,
14033 "type" : "integer"
14034 },
14035 "serial" : {
14036 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
14037 "format" : "urlencoded",
14038 "format_description" : "serial",
14039 "maxLength" : 60,
14040 "optional" : 1,
14041 "type" : "string"
14042 },
27a7acb2
DM
14043 "shared" : {
14044 "default" : 0,
14045 "description" : "Mark this locally-managed volume as available on all nodes",
14046 "optional" : 1,
14047 "type" : "boolean",
14048 "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!"
14049 },
44660702
DM
14050 "size" : {
14051 "description" : "Disk size. This is purely informational and has no effect.",
14052 "format" : "disk-size",
f004f5b9 14053 "format_description" : "DiskSize",
44660702
DM
14054 "optional" : 1,
14055 "type" : "string"
56122987 14056 },
7aacca6f 14057 "snapshot" : {
27a7acb2 14058 "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 14059 "optional" : 1,
44660702 14060 "type" : "boolean"
7aacca6f 14061 },
25203dc1
NC
14062 "ssd" : {
14063 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
14064 "optional" : 1,
14065 "type" : "boolean"
14066 },
44660702
DM
14067 "trans" : {
14068 "description" : "Force disk geometry bios translation mode.",
14069 "enum" : [
14070 "none",
14071 "lba",
14072 "auto"
14073 ],
44660702
DM
14074 "optional" : 1,
14075 "type" : "string"
14076 },
14077 "volume" : {
14078 "alias" : "file"
14079 },
14080 "werror" : {
14081 "description" : "Write error action.",
14082 "enum" : [
14083 "enospc",
14084 "ignore",
14085 "report",
14086 "stop"
14087 ],
56122987 14088 "optional" : 1,
44660702 14089 "type" : "string"
95895385
TL
14090 },
14091 "wwn" : {
14092 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
14093 "format_description" : "wwn",
14094 "optional" : 1,
14095 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
14096 "type" : "string"
56122987 14097 }
44660702 14098 },
7aacca6f 14099 "optional" : 1,
4d47f125 14100 "type" : "string"
44660702
DM
14101 },
14102 "scsihw" : {
14103 "default" : "lsi",
c2993fe5 14104 "description" : "SCSI controller model",
7aacca6f 14105 "enum" : [
44660702
DM
14106 "lsi",
14107 "lsi53c810",
14108 "virtio-scsi-pci",
14109 "virtio-scsi-single",
14110 "megasas",
14111 "pvscsi"
7aacca6f 14112 ],
44660702
DM
14113 "optional" : 1,
14114 "type" : "string"
56122987 14115 },
27a7acb2 14116 "searchdomain" : {
4772952b 14117 "description" : "cloud-init: Sets DNS search domains for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
27a7acb2 14118 "optional" : 1,
4d47f125 14119 "type" : "string"
27a7acb2 14120 },
44660702 14121 "serial[n]" : {
c2993fe5 14122 "description" : "Create a serial device inside the VM (n is 0 to 3)",
7aacca6f 14123 "optional" : 1,
44660702 14124 "pattern" : "(/dev/.+|socket)",
c2993fe5 14125 "type" : "string",
4772952b 14126 "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 14127 },
44660702
DM
14128 "shares" : {
14129 "default" : 1000,
5da3d723 14130 "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
14131 "maximum" : 50000,
14132 "minimum" : 0,
56122987 14133 "optional" : 1,
4d47f125 14134 "type" : "integer"
56122987 14135 },
44660702
DM
14136 "smbios1" : {
14137 "description" : "Specify SMBIOS type 1 fields.",
14138 "format" : "pve-qm-smbios1",
1e3f8156 14139 "maxLength" : 512,
56122987 14140 "optional" : 1,
4d47f125 14141 "type" : "string"
56122987 14142 },
44660702
DM
14143 "smp" : {
14144 "default" : 1,
14145 "description" : "The number of CPUs. Please use option -sockets instead.",
7aacca6f 14146 "minimum" : 1,
7aacca6f 14147 "optional" : 1,
4d47f125 14148 "type" : "integer"
7aacca6f 14149 },
44660702
DM
14150 "sockets" : {
14151 "default" : 1,
14152 "description" : "The number of CPU sockets.",
14153 "minimum" : 1,
7aacca6f 14154 "optional" : 1,
4d47f125 14155 "type" : "integer"
56122987 14156 },
1c532546
TL
14157 "spice_enhancements" : {
14158 "description" : "Configure additional enhancements for SPICE.",
14159 "format" : {
14160 "foldersharing" : {
14161 "default" : "0",
14162 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
14163 "optional" : 1,
14164 "type" : "boolean"
14165 },
14166 "videostreaming" : {
14167 "default" : "off",
14168 "description" : "Enable video streaming. Uses compression for detected video streams.",
14169 "enum" : [
14170 "off",
14171 "all",
14172 "filter"
14173 ],
14174 "optional" : 1,
14175 "type" : "string"
14176 }
14177 },
14178 "optional" : 1,
14179 "type" : "string"
14180 },
27a7acb2
DM
14181 "sshkeys" : {
14182 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
14183 "format" : "urlencoded",
14184 "optional" : 1,
4d47f125 14185 "type" : "string"
27a7acb2 14186 },
44660702
DM
14187 "startdate" : {
14188 "default" : "now",
4772952b 14189 "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 14190 "optional" : 1,
44660702 14191 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 14192 "type" : "string",
44660702 14193 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
56122987 14194 },
7aacca6f 14195 "startup" : {
7aacca6f 14196 "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 14197 "format" : "pve-startup-order",
56122987 14198 "optional" : 1,
44660702
DM
14199 "type" : "string",
14200 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
56122987 14201 },
44660702 14202 "tablet" : {
7aacca6f 14203 "default" : 1,
c2993fe5 14204 "description" : "Enable/disable the USB tablet device.",
7aacca6f 14205 "optional" : 1,
c2993fe5 14206 "type" : "boolean",
4772952b 14207 "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 14208 },
5c1699e5
TL
14209 "tags" : {
14210 "description" : "Tags of the VM. This is only meta information.",
14211 "format" : "pve-tag-list",
14212 "optional" : 1,
14213 "type" : "string"
14214 },
44660702
DM
14215 "tdf" : {
14216 "default" : 0,
14217 "description" : "Enable/disable time drift fix.",
7aacca6f 14218 "optional" : 1,
4d47f125 14219 "type" : "boolean"
7aacca6f 14220 },
44660702
DM
14221 "template" : {
14222 "default" : 0,
14223 "description" : "Enable/disable Template.",
7aacca6f 14224 "optional" : 1,
4d47f125 14225 "type" : "boolean"
7aacca6f 14226 },
5370fa8c 14227 "tpmstate0" : {
7af2edf9 14228 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'.",
5370fa8c
TL
14229 "format" : {
14230 "file" : {
14231 "default_key" : 1,
14232 "description" : "The drive's backing volume.",
14233 "format" : "pve-volume-id-or-qm-path",
14234 "format_description" : "volume",
14235 "type" : "string"
14236 },
14237 "size" : {
14238 "description" : "Disk size. This is purely informational and has no effect.",
14239 "format" : "disk-size",
14240 "format_description" : "DiskSize",
14241 "optional" : 1,
14242 "type" : "string"
14243 },
14244 "version" : {
14245 "default" : "v2.0",
14246 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
14247 "enum" : [
14248 "v1.2",
14249 "v2.0"
14250 ],
14251 "optional" : 1,
14252 "type" : "string"
14253 },
14254 "volume" : {
14255 "alias" : "file"
14256 }
14257 },
14258 "optional" : 1,
14259 "type" : "string"
14260 },
44660702 14261 "unused[n]" : {
c2993fe5 14262 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
14263 "format" : {
14264 "file" : {
14265 "default_key" : 1,
14266 "description" : "The drive's backing volume.",
14267 "format" : "pve-volume-id",
14268 "format_description" : "volume",
14269 "type" : "string"
14270 },
14271 "volume" : {
14272 "alias" : "file"
14273 }
14274 },
7aacca6f 14275 "optional" : 1,
4d47f125 14276 "type" : "string"
7aacca6f 14277 },
44660702 14278 "usb[n]" : {
c2993fe5 14279 "description" : "Configure an USB device (n is 0 to 4).",
44660702
DM
14280 "format" : {
14281 "host" : {
14282 "default_key" : 1,
4772952b 14283 "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",
44660702
DM
14284 "format" : "pve-qm-usb-device",
14285 "format_description" : "HOSTUSBDEVICE|spice",
14286 "type" : "string"
14287 },
14288 "usb3" : {
c2993fe5 14289 "default" : 0,
1c532546 14290 "description" : "Specifies whether if given host option is a USB3 device or port.",
44660702
DM
14291 "optional" : 1,
14292 "type" : "boolean"
14293 }
14294 },
7aacca6f 14295 "optional" : 1,
4d47f125 14296 "type" : "string"
56122987 14297 },
44660702
DM
14298 "vcpus" : {
14299 "default" : 0,
14300 "description" : "Number of hotplugged vcpus.",
14301 "minimum" : 1,
56122987 14302 "optional" : 1,
4d47f125 14303 "type" : "integer"
56122987 14304 },
44660702 14305 "vga" : {
e2d681b3
TL
14306 "description" : "Configure the VGA hardware.",
14307 "format" : {
14308 "memory" : {
14309 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
14310 "maximum" : 512,
14311 "minimum" : 4,
14312 "optional" : 1,
14313 "type" : "integer"
14314 },
14315 "type" : {
14316 "default" : "std",
14317 "default_key" : 1,
14318 "description" : "Select the VGA type.",
14319 "enum" : [
14320 "cirrus",
14321 "qxl",
14322 "qxl2",
14323 "qxl3",
14324 "qxl4",
5f26e15b 14325 "none",
e2d681b3
TL
14326 "serial0",
14327 "serial1",
14328 "serial2",
14329 "serial3",
14330 "std",
14331 "virtio",
7af2edf9 14332 "virtio-gl",
e2d681b3
TL
14333 "vmware"
14334 ],
14335 "optional" : 1,
14336 "type" : "string"
14337 }
14338 },
56122987 14339 "optional" : 1,
c2993fe5 14340 "type" : "string",
e2d681b3 14341 "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 14342 },
44660702 14343 "virtio[n]" : {
7af2edf9 14344 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
56122987 14345 "format" : {
44660702
DM
14346 "aio" : {
14347 "description" : "AIO type to use.",
56122987 14348 "enum" : [
44660702 14349 "native",
8f4d9c87
TL
14350 "threads",
14351 "io_uring"
56122987 14352 ],
56122987
DM
14353 "optional" : 1,
14354 "type" : "string"
14355 },
44660702
DM
14356 "backup" : {
14357 "description" : "Whether the drive should be included when making backups.",
44660702
DM
14358 "optional" : 1,
14359 "type" : "boolean"
7aacca6f 14360 },
44660702 14361 "bps" : {
de0983cb 14362 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
14363 "format_description" : "bps",
14364 "optional" : 1,
14365 "type" : "integer"
56122987 14366 },
de0983cb
DM
14367 "bps_max_length" : {
14368 "description" : "Maximum length of I/O bursts in seconds.",
14369 "format_description" : "seconds",
14370 "minimum" : 1,
14371 "optional" : 1,
14372 "type" : "integer"
14373 },
44660702 14374 "bps_rd" : {
de0983cb 14375 "description" : "Maximum read speed in bytes per second.",
44660702 14376 "format_description" : "bps",
56122987 14377 "optional" : 1,
44660702 14378 "type" : "integer"
56122987 14379 },
de0983cb 14380 "bps_rd_length" : {
5d9c884c
DM
14381 "alias" : "bps_rd_max_length"
14382 },
14383 "bps_rd_max_length" : {
de0983cb
DM
14384 "description" : "Maximum length of read I/O bursts in seconds.",
14385 "format_description" : "seconds",
14386 "minimum" : 1,
14387 "optional" : 1,
14388 "type" : "integer"
14389 },
44660702 14390 "bps_wr" : {
de0983cb 14391 "description" : "Maximum write speed in bytes per second.",
44660702 14392 "format_description" : "bps",
56122987 14393 "optional" : 1,
44660702
DM
14394 "type" : "integer"
14395 },
de0983cb 14396 "bps_wr_length" : {
5d9c884c
DM
14397 "alias" : "bps_wr_max_length"
14398 },
14399 "bps_wr_max_length" : {
de0983cb
DM
14400 "description" : "Maximum length of write I/O bursts in seconds.",
14401 "format_description" : "seconds",
14402 "minimum" : 1,
14403 "optional" : 1,
14404 "type" : "integer"
14405 },
44660702
DM
14406 "cache" : {
14407 "description" : "The drive's cache mode",
56122987 14408 "enum" : [
44660702
DM
14409 "none",
14410 "writethrough",
14411 "writeback",
14412 "unsafe",
14413 "directsync"
56122987 14414 ],
56122987 14415 "optional" : 1,
44660702 14416 "type" : "string"
56122987 14417 },
44660702
DM
14418 "cyls" : {
14419 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 14420 "optional" : 1,
44660702 14421 "type" : "integer"
7aacca6f 14422 },
44660702
DM
14423 "detect_zeroes" : {
14424 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
14425 "optional" : 1,
14426 "type" : "boolean"
7aacca6f 14427 },
44660702
DM
14428 "discard" : {
14429 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
14430 "enum" : [
14431 "ignore",
14432 "on"
14433 ],
56122987 14434 "optional" : 1,
44660702 14435 "type" : "string"
56122987
DM
14436 },
14437 "file" : {
7aacca6f 14438 "default_key" : 1,
44660702 14439 "description" : "The drive's backing volume.",
7aacca6f 14440 "format" : "pve-volume-id-or-qm-path",
44660702
DM
14441 "format_description" : "volume",
14442 "type" : "string"
7aacca6f
DM
14443 },
14444 "format" : {
7aacca6f
DM
14445 "description" : "The drive's backing file's data format.",
14446 "enum" : [
14447 "raw",
14448 "cow",
14449 "qcow",
14450 "qed",
14451 "qcow2",
14452 "vmdk",
14453 "cloop"
56122987
DM
14454 ],
14455 "optional" : 1,
56122987
DM
14456 "type" : "string"
14457 },
44660702
DM
14458 "heads" : {
14459 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 14460 "optional" : 1,
44660702 14461 "type" : "integer"
56122987 14462 },
44660702 14463 "iops" : {
de0983cb 14464 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 14465 "format_description" : "iops",
56122987 14466 "optional" : 1,
44660702 14467 "type" : "integer"
56122987 14468 },
44660702 14469 "iops_max" : {
de0983cb 14470 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 14471 "format_description" : "iops",
56122987 14472 "optional" : 1,
56122987
DM
14473 "type" : "integer"
14474 },
de0983cb
DM
14475 "iops_max_length" : {
14476 "description" : "Maximum length of I/O bursts in seconds.",
14477 "format_description" : "seconds",
14478 "minimum" : 1,
14479 "optional" : 1,
14480 "type" : "integer"
14481 },
44660702 14482 "iops_rd" : {
de0983cb 14483 "description" : "Maximum read I/O in operations per second.",
44660702 14484 "format_description" : "iops",
56122987 14485 "optional" : 1,
44660702 14486 "type" : "integer"
56122987 14487 },
de0983cb 14488 "iops_rd_length" : {
5d9c884c 14489 "alias" : "iops_rd_max_length"
de0983cb 14490 },
44660702 14491 "iops_rd_max" : {
de0983cb 14492 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 14493 "format_description" : "iops",
7aacca6f 14494 "optional" : 1,
44660702 14495 "type" : "integer"
56122987 14496 },
5d9c884c
DM
14497 "iops_rd_max_length" : {
14498 "description" : "Maximum length of read I/O bursts in seconds.",
14499 "format_description" : "seconds",
14500 "minimum" : 1,
14501 "optional" : 1,
14502 "type" : "integer"
14503 },
44660702 14504 "iops_wr" : {
de0983cb 14505 "description" : "Maximum write I/O in operations per second.",
44660702 14506 "format_description" : "iops",
7aacca6f 14507 "optional" : 1,
44660702 14508 "type" : "integer"
56122987 14509 },
de0983cb 14510 "iops_wr_length" : {
5d9c884c 14511 "alias" : "iops_wr_max_length"
de0983cb 14512 },
44660702 14513 "iops_wr_max" : {
de0983cb 14514 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 14515 "format_description" : "iops",
56122987
DM
14516 "optional" : 1,
14517 "type" : "integer"
14518 },
5d9c884c
DM
14519 "iops_wr_max_length" : {
14520 "description" : "Maximum length of write I/O bursts in seconds.",
14521 "format_description" : "seconds",
14522 "minimum" : 1,
14523 "optional" : 1,
14524 "type" : "integer"
14525 },
44660702
DM
14526 "iothread" : {
14527 "description" : "Whether to use iothreads for this drive",
44660702
DM
14528 "optional" : 1,
14529 "type" : "boolean"
14530 },
14531 "mbps" : {
de0983cb 14532 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 14533 "format_description" : "mbps",
44660702
DM
14534 "optional" : 1,
14535 "type" : "number"
14536 },
14537 "mbps_max" : {
de0983cb 14538 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
14539 "format_description" : "mbps",
14540 "optional" : 1,
14541 "type" : "number"
7aacca6f 14542 },
44660702 14543 "mbps_rd" : {
de0983cb 14544 "description" : "Maximum read speed in megabytes per second.",
44660702 14545 "format_description" : "mbps",
56122987 14546 "optional" : 1,
44660702 14547 "type" : "number"
56122987 14548 },
44660702 14549 "mbps_rd_max" : {
de0983cb 14550 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 14551 "format_description" : "mbps",
7aacca6f 14552 "optional" : 1,
44660702 14553 "type" : "number"
56122987 14554 },
44660702 14555 "mbps_wr" : {
de0983cb 14556 "description" : "Maximum write speed in megabytes per second.",
44660702 14557 "format_description" : "mbps",
56122987 14558 "optional" : 1,
44660702 14559 "type" : "number"
56122987 14560 },
44660702 14561 "mbps_wr_max" : {
de0983cb 14562 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 14563 "format_description" : "mbps",
56122987 14564 "optional" : 1,
44660702 14565 "type" : "number"
56122987
DM
14566 },
14567 "media" : {
7aacca6f 14568 "default" : "disk",
44660702 14569 "description" : "The drive's media type.",
56122987
DM
14570 "enum" : [
14571 "cdrom",
14572 "disk"
14573 ],
44660702
DM
14574 "optional" : 1,
14575 "type" : "string"
56122987 14576 },
5d9c884c
DM
14577 "replicate" : {
14578 "default" : 1,
14579 "description" : "Whether the drive should considered for replication jobs.",
14580 "optional" : 1,
14581 "type" : "boolean"
14582 },
7aacca6f 14583 "rerror" : {
44660702 14584 "description" : "Read error action.",
56122987 14585 "enum" : [
7aacca6f
DM
14586 "ignore",
14587 "report",
14588 "stop"
56122987 14589 ],
56122987 14590 "optional" : 1,
44660702 14591 "type" : "string"
56122987 14592 },
5370fa8c
TL
14593 "ro" : {
14594 "description" : "Whether the drive is read-only.",
14595 "optional" : 1,
14596 "type" : "boolean"
14597 },
44660702
DM
14598 "secs" : {
14599 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
14600 "optional" : 1,
14601 "type" : "integer"
14602 },
14603 "serial" : {
14604 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
14605 "format" : "urlencoded",
14606 "format_description" : "serial",
14607 "maxLength" : 60,
56122987 14608 "optional" : 1,
7aacca6f 14609 "type" : "string"
56122987 14610 },
27a7acb2
DM
14611 "shared" : {
14612 "default" : 0,
14613 "description" : "Mark this locally-managed volume as available on all nodes",
14614 "optional" : 1,
14615 "type" : "boolean",
14616 "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!"
14617 },
44660702
DM
14618 "size" : {
14619 "description" : "Disk size. This is purely informational and has no effect.",
14620 "format" : "disk-size",
f004f5b9 14621 "format_description" : "DiskSize",
56122987 14622 "optional" : 1,
44660702 14623 "type" : "string"
56122987 14624 },
44660702 14625 "snapshot" : {
27a7acb2 14626 "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 14627 "optional" : 1,
44660702 14628 "type" : "boolean"
56122987 14629 },
44660702
DM
14630 "trans" : {
14631 "description" : "Force disk geometry bios translation mode.",
14632 "enum" : [
14633 "none",
14634 "lba",
14635 "auto"
14636 ],
44660702
DM
14637 "optional" : 1,
14638 "type" : "string"
14639 },
14640 "volume" : {
14641 "alias" : "file"
14642 },
14643 "werror" : {
14644 "description" : "Write error action.",
14645 "enum" : [
14646 "enospc",
14647 "ignore",
14648 "report",
14649 "stop"
14650 ],
56122987 14651 "optional" : 1,
44660702 14652 "type" : "string"
56122987 14653 }
44660702 14654 },
56122987 14655 "optional" : 1,
4d47f125 14656 "type" : "string"
56122987 14657 },
4d47f125
TL
14658 "vmgenid" : {
14659 "default" : "1 (autogenerated)",
14660 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
14661 "format_description" : "UUID",
14662 "optional" : 1,
14663 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
14664 "type" : "string",
4772952b 14665 "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 14666 },
2489d6df
WB
14667 "vmstatestorage" : {
14668 "description" : "Default storage for VM state volumes/files.",
14669 "format" : "pve-storage-id",
14670 "optional" : 1,
4d47f125 14671 "type" : "string"
2489d6df 14672 },
44660702 14673 "watchdog" : {
c2993fe5 14674 "description" : "Create a virtual hardware watchdog device.",
44660702 14675 "format" : "pve-qm-watchdog",
56122987 14676 "optional" : 1,
c2993fe5
DM
14677 "type" : "string",
14678 "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 14679 }
4d47f125
TL
14680 },
14681 "type" : "object"
44660702 14682 }
56122987 14683 },
4d47f125 14684 "POST" : {
e9cd3bd4 14685 "allowtoken" : 1,
4d47f125
TL
14686 "description" : "Set virtual machine options (asynchrounous API).",
14687 "method" : "POST",
14688 "name" : "update_vm_async",
56122987 14689 "parameters" : {
7aacca6f 14690 "additionalProperties" : 0,
56122987 14691 "properties" : {
44660702
DM
14692 "acpi" : {
14693 "default" : 1,
14694 "description" : "Enable/disable ACPI.",
7aacca6f 14695 "optional" : 1,
013dc89f
DM
14696 "type" : "boolean",
14697 "typetext" : "<boolean>"
7aacca6f 14698 },
44660702 14699 "agent" : {
5370fa8c 14700 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
14701 "format" : {
14702 "enabled" : {
14703 "default" : 0,
14704 "default_key" : 1,
5370fa8c 14705 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
14706 "type" : "boolean"
14707 },
14708 "fstrim_cloned_disks" : {
14709 "default" : 0,
d2656385 14710 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
14711 "optional" : 1,
14712 "type" : "boolean"
5c1699e5
TL
14713 },
14714 "type" : {
14715 "default" : "virtio",
14716 "description" : "Select the agent type",
14717 "enum" : [
14718 "virtio",
14719 "isa"
14720 ],
14721 "optional" : 1,
14722 "type" : "string"
4d47f125
TL
14723 }
14724 },
7aacca6f 14725 "optional" : 1,
4d47f125 14726 "type" : "string",
5c1699e5 14727 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 14728 },
e2d681b3
TL
14729 "arch" : {
14730 "description" : "Virtual processor architecture. Defaults to the host.",
14731 "enum" : [
14732 "x86_64",
14733 "aarch64"
14734 ],
14735 "optional" : 1,
14736 "type" : "string"
14737 },
44660702 14738 "args" : {
c2993fe5 14739 "description" : "Arbitrary arguments passed to kvm.",
7aacca6f 14740 "optional" : 1,
c2993fe5 14741 "type" : "string",
013dc89f 14742 "typetext" : "<string>",
c2993fe5 14743 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
7aacca6f 14744 },
1c532546
TL
14745 "audio0" : {
14746 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
14747 "format" : {
14748 "device" : {
14749 "description" : "Configure an audio device.",
14750 "enum" : [
14751 "ich9-intel-hda",
14752 "intel-hda",
14753 "AC97"
14754 ],
14755 "type" : "string"
14756 },
14757 "driver" : {
14758 "default" : "spice",
14759 "description" : "Driver backend for the audio device.",
14760 "enum" : [
d2656385
TL
14761 "spice",
14762 "none"
1c532546
TL
14763 ],
14764 "optional" : 1,
14765 "type" : "string"
14766 }
14767 },
14768 "optional" : 1,
14769 "type" : "string",
d2656385 14770 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 14771 },
44660702
DM
14772 "autostart" : {
14773 "default" : 0,
14774 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 14775 "optional" : 1,
013dc89f
DM
14776 "type" : "boolean",
14777 "typetext" : "<boolean>"
7aacca6f 14778 },
4d47f125
TL
14779 "background_delay" : {
14780 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
14781 "maximum" : 30,
14782 "minimum" : 1,
14783 "optional" : 1,
14784 "type" : "integer",
14785 "typetext" : "<integer> (1 - 30)"
14786 },
44660702
DM
14787 "balloon" : {
14788 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
14789 "minimum" : 0,
14790 "optional" : 1,
4bd7df8b 14791 "type" : "integer",
013dc89f 14792 "typetext" : "<integer> (0 - N)"
44660702
DM
14793 },
14794 "bios" : {
14795 "default" : "seabios",
14796 "description" : "Select BIOS implementation.",
7aacca6f 14797 "enum" : [
44660702
DM
14798 "seabios",
14799 "ovmf"
7aacca6f 14800 ],
56122987 14801 "optional" : 1,
7aacca6f
DM
14802 "type" : "string"
14803 },
44660702 14804 "boot" : {
5370fa8c 14805 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 14806 "format" : "pve-qm-boot",
7aacca6f 14807 "optional" : 1,
4772952b
TL
14808 "type" : "string",
14809 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 14810 },
44660702 14811 "bootdisk" : {
4772952b 14812 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
14813 "format" : "pve-qm-bootdisk",
14814 "optional" : 1,
14815 "pattern" : "(ide|sata|scsi|virtio)\\d+",
14816 "type" : "string"
14817 },
14818 "cdrom" : {
14819 "description" : "This is an alias for option -ide2",
de0983cb 14820 "format" : "pve-qm-ide",
56122987 14821 "optional" : 1,
7aacca6f 14822 "type" : "string",
013dc89f 14823 "typetext" : "<volume>"
44660702 14824 },
95895385
TL
14825 "cicustom" : {
14826 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
14827 "format" : "pve-qm-cicustom",
14828 "optional" : 1,
14829 "type" : "string",
5370fa8c 14830 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 14831 },
27a7acb2
DM
14832 "cipassword" : {
14833 "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.",
14834 "optional" : 1,
14835 "type" : "string",
14836 "typetext" : "<string>"
14837 },
14838 "citype" : {
14839 "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.",
14840 "enum" : [
14841 "configdrive2",
d2656385
TL
14842 "nocloud",
14843 "opennebula"
27a7acb2
DM
14844 ],
14845 "optional" : 1,
14846 "type" : "string"
14847 },
14848 "ciuser" : {
14849 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
14850 "optional" : 1,
14851 "type" : "string",
14852 "typetext" : "<string>"
14853 },
44660702
DM
14854 "cores" : {
14855 "default" : 1,
14856 "description" : "The number of cores per socket.",
14857 "minimum" : 1,
14858 "optional" : 1,
4bd7df8b 14859 "type" : "integer",
013dc89f 14860 "typetext" : "<integer> (1 - N)"
44660702
DM
14861 },
14862 "cpu" : {
14863 "description" : "Emulated CPU type.",
c5aa7e14 14864 "format" : "pve-vm-cpu-conf",
44660702 14865 "optional" : 1,
4bd7df8b 14866 "type" : "string",
04d22a9f 14867 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702
DM
14868 },
14869 "cpulimit" : {
14870 "default" : 0,
c2993fe5 14871 "description" : "Limit of CPU usage.",
44660702
DM
14872 "maximum" : 128,
14873 "minimum" : 0,
14874 "optional" : 1,
c2993fe5 14875 "type" : "number",
013dc89f 14876 "typetext" : "<number> (0 - 128)",
c2993fe5 14877 "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
14878 },
14879 "cpuunits" : {
5370fa8c
TL
14880 "default" : "cgroup v1: 1024, cgroup v2: 100",
14881 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 14882 "maximum" : 262144,
7af2edf9 14883 "minimum" : 1,
44660702 14884 "optional" : 1,
c2993fe5 14885 "type" : "integer",
7af2edf9 14886 "typetext" : "<integer> (1 - 262144)",
2489d6df 14887 "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
14888 },
14889 "delete" : {
14890 "description" : "A list of settings you want to delete.",
14891 "format" : "pve-configid-list",
14892 "optional" : 1,
013dc89f
DM
14893 "type" : "string",
14894 "typetext" : "<string>"
44660702
DM
14895 },
14896 "description" : {
8f4d9c87
TL
14897 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
14898 "maxLength" : 8192,
44660702 14899 "optional" : 1,
013dc89f
DM
14900 "type" : "string",
14901 "typetext" : "<string>"
44660702
DM
14902 },
14903 "digest" : {
14904 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
14905 "maxLength" : 40,
14906 "optional" : 1,
013dc89f
DM
14907 "type" : "string",
14908 "typetext" : "<string>"
44660702 14909 },
4d47f125 14910 "efidisk0" : {
7af2edf9 14911 "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 14912 "format" : {
5370fa8c
TL
14913 "efitype" : {
14914 "default" : "2m",
14915 "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.",
14916 "enum" : [
14917 "2m",
14918 "4m"
14919 ],
14920 "optional" : 1,
14921 "type" : "string"
14922 },
4d47f125
TL
14923 "file" : {
14924 "default_key" : 1,
14925 "description" : "The drive's backing volume.",
14926 "format" : "pve-volume-id-or-qm-path",
14927 "format_description" : "volume",
14928 "type" : "string"
14929 },
14930 "format" : {
14931 "description" : "The drive's backing file's data format.",
14932 "enum" : [
14933 "raw",
14934 "cow",
14935 "qcow",
14936 "qed",
14937 "qcow2",
14938 "vmdk",
14939 "cloop"
14940 ],
14941 "optional" : 1,
14942 "type" : "string"
14943 },
7af2edf9
TL
14944 "import-from" : {
14945 "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!",
14946 "format" : "pve-volume-id-or-absolute-path",
14947 "format_description" : "source volume",
14948 "optional" : 1,
14949 "type" : "string"
14950 },
5370fa8c
TL
14951 "pre-enrolled-keys" : {
14952 "default" : 0,
14953 "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.",
14954 "optional" : 1,
14955 "type" : "boolean"
14956 },
4d47f125
TL
14957 "size" : {
14958 "description" : "Disk size. This is purely informational and has no effect.",
14959 "format" : "disk-size",
14960 "format_description" : "DiskSize",
14961 "optional" : 1,
14962 "type" : "string"
14963 },
14964 "volume" : {
14965 "alias" : "file"
14966 }
14967 },
14968 "optional" : 1,
14969 "type" : "string",
7af2edf9 14970 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 14971 },
44660702
DM
14972 "force" : {
14973 "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.",
14974 "optional" : 1,
14975 "requires" : "delete",
013dc89f
DM
14976 "type" : "boolean",
14977 "typetext" : "<boolean>"
44660702
DM
14978 },
14979 "freeze" : {
14980 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
14981 "optional" : 1,
013dc89f
DM
14982 "type" : "boolean",
14983 "typetext" : "<boolean>"
44660702 14984 },
5f26e15b
TL
14985 "hookscript" : {
14986 "description" : "Script that will be executed during various steps in the vms lifetime.",
14987 "format" : "pve-volume-id",
14988 "optional" : 1,
14989 "type" : "string",
14990 "typetext" : "<string>"
14991 },
44660702 14992 "hostpci[n]" : {
c2993fe5 14993 "description" : "Map host PCI devices into guest.",
44660702
DM
14994 "format" : "pve-qm-hostpci",
14995 "optional" : 1,
57b78691 14996 "type" : "string",
7af2edf9 14997 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,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 14998 "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 14999 },
7aacca6f 15000 "hotplug" : {
7aacca6f 15001 "default" : "network,disk,usb",
5370fa8c 15002 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`.",
44660702 15003 "format" : "pve-hotplug-features",
56122987 15004 "optional" : 1,
013dc89f
DM
15005 "type" : "string",
15006 "typetext" : "<string>"
56122987 15007 },
4bd7df8b
DM
15008 "hugepages" : {
15009 "description" : "Enable/disable hugepages memory.",
15010 "enum" : [
15011 "any",
15012 "2",
15013 "1024"
15014 ],
15015 "optional" : 1,
15016 "type" : "string"
15017 },
56122987 15018 "ide[n]" : {
7af2edf9 15019 "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 15020 "format" : {
44660702
DM
15021 "aio" : {
15022 "description" : "AIO type to use.",
15023 "enum" : [
15024 "native",
8f4d9c87
TL
15025 "threads",
15026 "io_uring"
44660702 15027 ],
56122987 15028 "optional" : 1,
44660702 15029 "type" : "string"
56122987 15030 },
44660702
DM
15031 "backup" : {
15032 "description" : "Whether the drive should be included when making backups.",
44660702
DM
15033 "optional" : 1,
15034 "type" : "boolean"
15035 },
15036 "bps" : {
de0983cb 15037 "description" : "Maximum r/w speed in bytes per second.",
44660702 15038 "format_description" : "bps",
56122987 15039 "optional" : 1,
44660702 15040 "type" : "integer"
56122987 15041 },
de0983cb
DM
15042 "bps_max_length" : {
15043 "description" : "Maximum length of I/O bursts in seconds.",
15044 "format_description" : "seconds",
15045 "minimum" : 1,
15046 "optional" : 1,
15047 "type" : "integer"
15048 },
44660702 15049 "bps_rd" : {
de0983cb 15050 "description" : "Maximum read speed in bytes per second.",
44660702 15051 "format_description" : "bps",
56122987 15052 "optional" : 1,
44660702 15053 "type" : "integer"
56122987 15054 },
de0983cb 15055 "bps_rd_length" : {
5d9c884c
DM
15056 "alias" : "bps_rd_max_length"
15057 },
15058 "bps_rd_max_length" : {
de0983cb
DM
15059 "description" : "Maximum length of read I/O bursts in seconds.",
15060 "format_description" : "seconds",
15061 "minimum" : 1,
15062 "optional" : 1,
15063 "type" : "integer"
15064 },
7aacca6f 15065 "bps_wr" : {
de0983cb 15066 "description" : "Maximum write speed in bytes per second.",
44660702
DM
15067 "format_description" : "bps",
15068 "optional" : 1,
15069 "type" : "integer"
7aacca6f 15070 },
de0983cb 15071 "bps_wr_length" : {
5d9c884c
DM
15072 "alias" : "bps_wr_max_length"
15073 },
15074 "bps_wr_max_length" : {
de0983cb
DM
15075 "description" : "Maximum length of write I/O bursts in seconds.",
15076 "format_description" : "seconds",
15077 "minimum" : 1,
15078 "optional" : 1,
15079 "type" : "integer"
15080 },
44660702
DM
15081 "cache" : {
15082 "description" : "The drive's cache mode",
15083 "enum" : [
15084 "none",
15085 "writethrough",
15086 "writeback",
15087 "unsafe",
15088 "directsync"
15089 ],
56122987 15090 "optional" : 1,
44660702
DM
15091 "type" : "string"
15092 },
15093 "cyls" : {
15094 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
15095 "optional" : 1,
15096 "type" : "integer"
15097 },
15098 "detect_zeroes" : {
15099 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
15100 "optional" : 1,
15101 "type" : "boolean"
56122987 15102 },
7aacca6f 15103 "discard" : {
7aacca6f 15104 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 15105 "enum" : [
7aacca6f
DM
15106 "ignore",
15107 "on"
56122987
DM
15108 ],
15109 "optional" : 1,
44660702 15110 "type" : "string"
7aacca6f 15111 },
44660702
DM
15112 "file" : {
15113 "default_key" : 1,
15114 "description" : "The drive's backing volume.",
15115 "format" : "pve-volume-id-or-qm-path",
15116 "format_description" : "volume",
15117 "type" : "string"
7aacca6f
DM
15118 },
15119 "format" : {
44660702 15120 "description" : "The drive's backing file's data format.",
7aacca6f
DM
15121 "enum" : [
15122 "raw",
15123 "cow",
15124 "qcow",
15125 "qed",
15126 "qcow2",
15127 "vmdk",
15128 "cloop"
15129 ],
7aacca6f 15130 "optional" : 1,
44660702 15131 "type" : "string"
56122987 15132 },
7aacca6f 15133 "heads" : {
44660702 15134 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 15135 "optional" : 1,
44660702 15136 "type" : "integer"
7aacca6f 15137 },
7af2edf9
TL
15138 "import-from" : {
15139 "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!",
15140 "format" : "pve-volume-id-or-absolute-path",
15141 "format_description" : "source volume",
15142 "optional" : 1,
15143 "type" : "string"
15144 },
44660702 15145 "iops" : {
de0983cb 15146 "description" : "Maximum r/w I/O in operations per second.",
44660702 15147 "format_description" : "iops",
7aacca6f 15148 "optional" : 1,
44660702 15149 "type" : "integer"
56122987 15150 },
44660702 15151 "iops_max" : {
de0983cb 15152 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 15153 "format_description" : "iops",
56122987 15154 "optional" : 1,
44660702 15155 "type" : "integer"
56122987 15156 },
de0983cb
DM
15157 "iops_max_length" : {
15158 "description" : "Maximum length of I/O bursts in seconds.",
15159 "format_description" : "seconds",
15160 "minimum" : 1,
15161 "optional" : 1,
15162 "type" : "integer"
15163 },
44660702 15164 "iops_rd" : {
de0983cb 15165 "description" : "Maximum read I/O in operations per second.",
44660702 15166 "format_description" : "iops",
56122987 15167 "optional" : 1,
44660702 15168 "type" : "integer"
7aacca6f 15169 },
de0983cb 15170 "iops_rd_length" : {
5d9c884c 15171 "alias" : "iops_rd_max_length"
de0983cb 15172 },
44660702 15173 "iops_rd_max" : {
de0983cb 15174 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 15175 "format_description" : "iops",
7aacca6f 15176 "optional" : 1,
44660702 15177 "type" : "integer"
7aacca6f 15178 },
5d9c884c
DM
15179 "iops_rd_max_length" : {
15180 "description" : "Maximum length of read I/O bursts in seconds.",
15181 "format_description" : "seconds",
15182 "minimum" : 1,
15183 "optional" : 1,
15184 "type" : "integer"
15185 },
44660702 15186 "iops_wr" : {
de0983cb 15187 "description" : "Maximum write I/O in operations per second.",
44660702 15188 "format_description" : "iops",
7aacca6f 15189 "optional" : 1,
44660702 15190 "type" : "integer"
56122987 15191 },
de0983cb 15192 "iops_wr_length" : {
5d9c884c 15193 "alias" : "iops_wr_max_length"
de0983cb 15194 },
44660702 15195 "iops_wr_max" : {
de0983cb 15196 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 15197 "format_description" : "iops",
7aacca6f 15198 "optional" : 1,
44660702 15199 "type" : "integer"
7aacca6f 15200 },
5d9c884c
DM
15201 "iops_wr_max_length" : {
15202 "description" : "Maximum length of write I/O bursts in seconds.",
15203 "format_description" : "seconds",
15204 "minimum" : 1,
15205 "optional" : 1,
15206 "type" : "integer"
15207 },
7aacca6f 15208 "mbps" : {
de0983cb 15209 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 15210 "format_description" : "mbps",
7aacca6f 15211 "optional" : 1,
44660702 15212 "type" : "number"
7aacca6f 15213 },
44660702 15214 "mbps_max" : {
de0983cb 15215 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 15216 "format_description" : "mbps",
7aacca6f 15217 "optional" : 1,
44660702 15218 "type" : "number"
7aacca6f 15219 },
44660702 15220 "mbps_rd" : {
de0983cb 15221 "description" : "Maximum read speed in megabytes per second.",
44660702 15222 "format_description" : "mbps",
7aacca6f 15223 "optional" : 1,
44660702 15224 "type" : "number"
7aacca6f 15225 },
44660702 15226 "mbps_rd_max" : {
de0983cb 15227 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
15228 "format_description" : "mbps",
15229 "optional" : 1,
15230 "type" : "number"
7aacca6f 15231 },
44660702 15232 "mbps_wr" : {
de0983cb 15233 "description" : "Maximum write speed in megabytes per second.",
44660702 15234 "format_description" : "mbps",
7aacca6f 15235 "optional" : 1,
44660702
DM
15236 "type" : "number"
15237 },
15238 "mbps_wr_max" : {
de0983cb 15239 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
15240 "format_description" : "mbps",
15241 "optional" : 1,
15242 "type" : "number"
15243 },
15244 "media" : {
15245 "default" : "disk",
15246 "description" : "The drive's media type.",
56122987 15247 "enum" : [
44660702
DM
15248 "cdrom",
15249 "disk"
56122987 15250 ],
44660702
DM
15251 "optional" : 1,
15252 "type" : "string"
56122987 15253 },
7aacca6f 15254 "model" : {
44660702 15255 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
56122987 15256 "format" : "urlencoded",
7aacca6f 15257 "format_description" : "model",
44660702 15258 "maxLength" : 120,
56122987 15259 "optional" : 1,
44660702 15260 "type" : "string"
56122987 15261 },
5d9c884c
DM
15262 "replicate" : {
15263 "default" : 1,
15264 "description" : "Whether the drive should considered for replication jobs.",
15265 "optional" : 1,
15266 "type" : "boolean"
15267 },
44660702
DM
15268 "rerror" : {
15269 "description" : "Read error action.",
15270 "enum" : [
15271 "ignore",
15272 "report",
15273 "stop"
15274 ],
56122987 15275 "optional" : 1,
44660702 15276 "type" : "string"
56122987 15277 },
44660702
DM
15278 "secs" : {
15279 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
15280 "optional" : 1,
15281 "type" : "integer"
56122987 15282 },
44660702
DM
15283 "serial" : {
15284 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
15285 "format" : "urlencoded",
15286 "format_description" : "serial",
15287 "maxLength" : 60,
56122987 15288 "optional" : 1,
44660702 15289 "type" : "string"
56122987 15290 },
27a7acb2
DM
15291 "shared" : {
15292 "default" : 0,
15293 "description" : "Mark this locally-managed volume as available on all nodes",
15294 "optional" : 1,
15295 "type" : "boolean",
15296 "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!"
15297 },
44660702
DM
15298 "size" : {
15299 "description" : "Disk size. This is purely informational and has no effect.",
15300 "format" : "disk-size",
f004f5b9 15301 "format_description" : "DiskSize",
56122987 15302 "optional" : 1,
44660702 15303 "type" : "string"
56122987 15304 },
44660702 15305 "snapshot" : {
27a7acb2 15306 "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 15307 "optional" : 1,
44660702 15308 "type" : "boolean"
56122987 15309 },
25203dc1
NC
15310 "ssd" : {
15311 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
15312 "optional" : 1,
15313 "type" : "boolean"
15314 },
44660702
DM
15315 "trans" : {
15316 "description" : "Force disk geometry bios translation mode.",
15317 "enum" : [
15318 "none",
15319 "lba",
15320 "auto"
15321 ],
56122987 15322 "optional" : 1,
44660702
DM
15323 "type" : "string"
15324 },
15325 "volume" : {
15326 "alias" : "file"
56122987 15327 },
7aacca6f 15328 "werror" : {
44660702 15329 "description" : "Write error action.",
7aacca6f
DM
15330 "enum" : [
15331 "enospc",
15332 "ignore",
15333 "report",
15334 "stop"
15335 ],
56122987 15336 "optional" : 1,
44660702 15337 "type" : "string"
95895385
TL
15338 },
15339 "wwn" : {
15340 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
15341 "format_description" : "wwn",
15342 "optional" : 1,
15343 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
15344 "type" : "string"
7aacca6f 15345 }
44660702
DM
15346 },
15347 "optional" : 1,
4bd7df8b 15348 "type" : "string",
7af2edf9 15349 "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
15350 },
15351 "ipconfig[n]" : {
d2656385 15352 "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
15353 "format" : "pve-qm-ipconfig",
15354 "optional" : 1,
15355 "type" : "string",
15356 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
7aacca6f 15357 },
95895385
TL
15358 "ivshmem" : {
15359 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
15360 "format" : {
15361 "name" : {
15362 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
15363 "format_description" : "string",
15364 "optional" : 1,
15365 "pattern" : "[a-zA-Z0-9\\-]+",
15366 "type" : "string"
15367 },
15368 "size" : {
15369 "description" : "The size of the file in MB.",
15370 "minimum" : 1,
15371 "type" : "integer"
15372 }
15373 },
15374 "optional" : 1,
15375 "type" : "string",
15376 "typetext" : "size=<integer> [,name=<string>]"
15377 },
4772952b
TL
15378 "keephugepages" : {
15379 "default" : 0,
15380 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
15381 "optional" : 1,
15382 "type" : "boolean",
15383 "typetext" : "<boolean>"
15384 },
44660702 15385 "keyboard" : {
35a75dd3 15386 "default" : null,
7af2edf9 15387 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
15388 "enum" : [
15389 "de",
15390 "de-ch",
15391 "da",
15392 "en-gb",
15393 "en-us",
15394 "es",
15395 "fi",
15396 "fr",
15397 "fr-be",
15398 "fr-ca",
15399 "fr-ch",
15400 "hu",
15401 "is",
15402 "it",
15403 "ja",
15404 "lt",
15405 "mk",
15406 "nl",
15407 "no",
15408 "pl",
15409 "pt",
15410 "pt-br",
15411 "sv",
15412 "sl",
15413 "tr"
15414 ],
7aacca6f 15415 "optional" : 1,
44660702 15416 "type" : "string"
7aacca6f 15417 },
44660702 15418 "kvm" : {
7aacca6f 15419 "default" : 1,
44660702 15420 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 15421 "optional" : 1,
013dc89f
DM
15422 "type" : "boolean",
15423 "typetext" : "<boolean>"
7aacca6f 15424 },
44660702 15425 "localtime" : {
5370fa8c 15426 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
7aacca6f 15427 "optional" : 1,
013dc89f
DM
15428 "type" : "boolean",
15429 "typetext" : "<boolean>"
7aacca6f 15430 },
44660702
DM
15431 "lock" : {
15432 "description" : "Lock/unlock the VM.",
15433 "enum" : [
44660702 15434 "backup",
5f26e15b
TL
15435 "clone",
15436 "create",
15437 "migrate",
15438 "rollback",
44660702 15439 "snapshot",
95895385
TL
15440 "snapshot-delete",
15441 "suspending",
15442 "suspended"
44660702 15443 ],
7aacca6f 15444 "optional" : 1,
44660702 15445 "type" : "string"
7aacca6f 15446 },
44660702 15447 "machine" : {
4d47f125 15448 "description" : "Specifies the Qemu machine type.",
44660702 15449 "maxLength" : 40,
7aacca6f 15450 "optional" : 1,
5c1699e5 15451 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702 15452 "type" : "string"
7aacca6f 15453 },
44660702
DM
15454 "memory" : {
15455 "default" : 512,
15456 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
15457 "minimum" : 16,
7aacca6f 15458 "optional" : 1,
4bd7df8b 15459 "type" : "integer",
013dc89f 15460 "typetext" : "<integer> (16 - N)"
7aacca6f 15461 },
44660702
DM
15462 "migrate_downtime" : {
15463 "default" : 0.1,
15464 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
15465 "minimum" : 0,
7aacca6f 15466 "optional" : 1,
4bd7df8b 15467 "type" : "number",
013dc89f 15468 "typetext" : "<number> (0 - N)"
7aacca6f 15469 },
44660702 15470 "migrate_speed" : {
7aacca6f 15471 "default" : 0,
44660702
DM
15472 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
15473 "minimum" : 0,
15474 "optional" : 1,
4bd7df8b 15475 "type" : "integer",
013dc89f 15476 "typetext" : "<integer> (0 - N)"
7aacca6f 15477 },
44660702
DM
15478 "name" : {
15479 "description" : "Set a name for the VM. Only used on the configuration web interface.",
15480 "format" : "dns-name",
7aacca6f 15481 "optional" : 1,
013dc89f
DM
15482 "type" : "string",
15483 "typetext" : "<string>"
7aacca6f 15484 },
27a7acb2 15485 "nameserver" : {
4772952b 15486 "description" : "cloud-init: Sets DNS server IP address for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
27a7acb2
DM
15487 "format" : "address-list",
15488 "optional" : 1,
15489 "type" : "string",
15490 "typetext" : "<string>"
15491 },
44660702 15492 "net[n]" : {
c2993fe5 15493 "description" : "Specify network devices.",
f004f5b9
DM
15494 "format" : {
15495 "bridge" : {
c2993fe5 15496 "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 15497 "format" : "pve-bridge-id",
f004f5b9
DM
15498 "format_description" : "bridge",
15499 "optional" : 1,
15500 "type" : "string"
15501 },
15502 "e1000" : {
15503 "alias" : "macaddr",
15504 "keyAlias" : "model"
15505 },
15506 "e1000-82540em" : {
15507 "alias" : "macaddr",
15508 "keyAlias" : "model"
15509 },
15510 "e1000-82544gc" : {
15511 "alias" : "macaddr",
15512 "keyAlias" : "model"
15513 },
15514 "e1000-82545em" : {
15515 "alias" : "macaddr",
15516 "keyAlias" : "model"
15517 },
5370fa8c
TL
15518 "e1000e" : {
15519 "alias" : "macaddr",
15520 "keyAlias" : "model"
15521 },
f004f5b9
DM
15522 "firewall" : {
15523 "description" : "Whether this interface should be protected by the firewall.",
15524 "optional" : 1,
15525 "type" : "boolean"
15526 },
15527 "i82551" : {
15528 "alias" : "macaddr",
15529 "keyAlias" : "model"
15530 },
15531 "i82557b" : {
15532 "alias" : "macaddr",
15533 "keyAlias" : "model"
15534 },
15535 "i82559er" : {
15536 "alias" : "macaddr",
15537 "keyAlias" : "model"
15538 },
15539 "link_down" : {
c2993fe5 15540 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
15541 "optional" : 1,
15542 "type" : "boolean"
15543 },
15544 "macaddr" : {
c2993fe5 15545 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 15546 "format" : "mac-addr",
f004f5b9 15547 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 15548 "optional" : 1,
95895385
TL
15549 "type" : "string",
15550 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
15551 },
15552 "model" : {
15553 "default_key" : 1,
c2993fe5 15554 "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 15555 "enum" : [
f004f5b9 15556 "e1000",
5370fa8c
TL
15557 "e1000-82540em",
15558 "e1000-82544gc",
15559 "e1000-82545em",
15560 "e1000e",
f004f5b9
DM
15561 "i82551",
15562 "i82557b",
15563 "i82559er",
5370fa8c
TL
15564 "ne2k_isa",
15565 "ne2k_pci",
15566 "pcnet",
15567 "rtl8139",
15568 "virtio",
15569 "vmxnet3"
f004f5b9 15570 ],
f004f5b9
DM
15571 "type" : "string"
15572 },
ac70d7d1
TL
15573 "mtu" : {
15574 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
15575 "maximum" : 65520,
15576 "minimum" : 1,
15577 "optional" : 1,
15578 "type" : "integer"
15579 },
f004f5b9
DM
15580 "ne2k_isa" : {
15581 "alias" : "macaddr",
15582 "keyAlias" : "model"
15583 },
15584 "ne2k_pci" : {
15585 "alias" : "macaddr",
15586 "keyAlias" : "model"
15587 },
15588 "pcnet" : {
15589 "alias" : "macaddr",
15590 "keyAlias" : "model"
15591 },
15592 "queues" : {
15593 "description" : "Number of packet queues to be used on the device.",
15594 "maximum" : 16,
15595 "minimum" : 0,
15596 "optional" : 1,
15597 "type" : "integer"
15598 },
15599 "rate" : {
c2993fe5 15600 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
15601 "minimum" : 0,
15602 "optional" : 1,
15603 "type" : "number"
15604 },
15605 "rtl8139" : {
15606 "alias" : "macaddr",
15607 "keyAlias" : "model"
15608 },
15609 "tag" : {
15610 "description" : "VLAN tag to apply to packets on this interface.",
15611 "maximum" : 4094,
c2993fe5 15612 "minimum" : 1,
f004f5b9
DM
15613 "optional" : 1,
15614 "type" : "integer"
15615 },
15616 "trunks" : {
15617 "description" : "VLAN trunks to pass through this interface.",
15618 "format_description" : "vlanid[;vlanid...]",
15619 "optional" : 1,
15620 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15621 "type" : "string"
15622 },
15623 "virtio" : {
15624 "alias" : "macaddr",
15625 "keyAlias" : "model"
15626 },
15627 "vmxnet3" : {
15628 "alias" : "macaddr",
15629 "keyAlias" : "model"
15630 }
15631 },
7aacca6f 15632 "optional" : 1,
4bd7df8b 15633 "type" : "string",
ac70d7d1 15634 "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 15635 },
44660702
DM
15636 "node" : {
15637 "description" : "The cluster node name.",
15638 "format" : "pve-node",
013dc89f
DM
15639 "type" : "string",
15640 "typetext" : "<string>"
44660702
DM
15641 },
15642 "numa" : {
15643 "default" : 0,
15644 "description" : "Enable/disable NUMA.",
7aacca6f 15645 "optional" : 1,
013dc89f
DM
15646 "type" : "boolean",
15647 "typetext" : "<boolean>"
7aacca6f 15648 },
44660702 15649 "numa[n]" : {
c2993fe5 15650 "description" : "NUMA topology.",
44660702
DM
15651 "format" : {
15652 "cpus" : {
c2993fe5 15653 "description" : "CPUs accessing this NUMA node.",
44660702
DM
15654 "format_description" : "id[-id];...",
15655 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15656 "type" : "string"
15657 },
15658 "hostnodes" : {
c2993fe5 15659 "description" : "Host NUMA nodes to use.",
44660702
DM
15660 "format_description" : "id[-id];...",
15661 "optional" : 1,
15662 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15663 "type" : "string"
15664 },
15665 "memory" : {
c2993fe5 15666 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
15667 "optional" : 1,
15668 "type" : "number"
15669 },
15670 "policy" : {
c2993fe5 15671 "description" : "NUMA allocation policy.",
44660702
DM
15672 "enum" : [
15673 "preferred",
15674 "bind",
15675 "interleave"
15676 ],
44660702
DM
15677 "optional" : 1,
15678 "type" : "string"
15679 }
15680 },
7aacca6f 15681 "optional" : 1,
4bd7df8b
DM
15682 "type" : "string",
15683 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
7aacca6f 15684 },
44660702
DM
15685 "onboot" : {
15686 "default" : 0,
15687 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 15688 "optional" : 1,
013dc89f
DM
15689 "type" : "boolean",
15690 "typetext" : "<boolean>"
7aacca6f 15691 },
44660702 15692 "ostype" : {
c2993fe5 15693 "description" : "Specify guest operating system.",
44660702
DM
15694 "enum" : [
15695 "other",
15696 "wxp",
15697 "w2k",
15698 "w2k3",
15699 "w2k8",
15700 "wvista",
15701 "win7",
15702 "win8",
32d876b5 15703 "win10",
5370fa8c 15704 "win11",
44660702
DM
15705 "l24",
15706 "l26",
15707 "solaris"
15708 ],
7aacca6f 15709 "optional" : 1,
c2993fe5 15710 "type" : "string",
5370fa8c 15711 "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 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
7aacca6f 15712 },
44660702 15713 "parallel[n]" : {
c2993fe5 15714 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 15715 "optional" : 1,
44660702 15716 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 15717 "type" : "string",
4772952b 15718 "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 15719 },
44660702
DM
15720 "protection" : {
15721 "default" : 0,
c2993fe5 15722 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 15723 "optional" : 1,
013dc89f
DM
15724 "type" : "boolean",
15725 "typetext" : "<boolean>"
7aacca6f 15726 },
44660702
DM
15727 "reboot" : {
15728 "default" : 1,
15729 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 15730 "optional" : 1,
013dc89f
DM
15731 "type" : "boolean",
15732 "typetext" : "<boolean>"
7aacca6f 15733 },
44660702
DM
15734 "revert" : {
15735 "description" : "Revert a pending change.",
15736 "format" : "pve-configid-list",
7aacca6f 15737 "optional" : 1,
013dc89f
DM
15738 "type" : "string",
15739 "typetext" : "<string>"
7aacca6f 15740 },
c5aa7e14
TL
15741 "rng0" : {
15742 "description" : "Configure a VirtIO-based Random Number Generator.",
15743 "format" : {
15744 "max_bytes" : {
15745 "default" : 1024,
5370fa8c 15746 "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
15747 "optional" : 1,
15748 "type" : "integer"
15749 },
15750 "period" : {
15751 "default" : 1000,
15752 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
15753 "optional" : 1,
15754 "type" : "integer"
15755 },
15756 "source" : {
15757 "default_key" : 1,
5370fa8c 15758 "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
15759 "enum" : [
15760 "/dev/urandom",
15761 "/dev/random",
15762 "/dev/hwrng"
15763 ],
15764 "type" : "string"
15765 }
15766 },
15767 "optional" : 1,
15768 "type" : "string",
15769 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
15770 },
44660702 15771 "sata[n]" : {
7af2edf9 15772 "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 15773 "format" : {
44660702
DM
15774 "aio" : {
15775 "description" : "AIO type to use.",
15776 "enum" : [
15777 "native",
8f4d9c87
TL
15778 "threads",
15779 "io_uring"
44660702 15780 ],
44660702
DM
15781 "optional" : 1,
15782 "type" : "string"
15783 },
15784 "backup" : {
15785 "description" : "Whether the drive should be included when making backups.",
44660702
DM
15786 "optional" : 1,
15787 "type" : "boolean"
15788 },
15789 "bps" : {
de0983cb 15790 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 15791 "format_description" : "bps",
7aacca6f
DM
15792 "optional" : 1,
15793 "type" : "integer"
56122987 15794 },
de0983cb
DM
15795 "bps_max_length" : {
15796 "description" : "Maximum length of I/O bursts in seconds.",
15797 "format_description" : "seconds",
15798 "minimum" : 1,
15799 "optional" : 1,
15800 "type" : "integer"
15801 },
44660702 15802 "bps_rd" : {
de0983cb 15803 "description" : "Maximum read speed in bytes per second.",
44660702 15804 "format_description" : "bps",
7aacca6f 15805 "optional" : 1,
44660702 15806 "type" : "integer"
7aacca6f 15807 },
de0983cb 15808 "bps_rd_length" : {
5d9c884c
DM
15809 "alias" : "bps_rd_max_length"
15810 },
15811 "bps_rd_max_length" : {
de0983cb
DM
15812 "description" : "Maximum length of read I/O bursts in seconds.",
15813 "format_description" : "seconds",
15814 "minimum" : 1,
15815 "optional" : 1,
15816 "type" : "integer"
15817 },
44660702 15818 "bps_wr" : {
de0983cb 15819 "description" : "Maximum write speed in bytes per second.",
44660702 15820 "format_description" : "bps",
7aacca6f 15821 "optional" : 1,
44660702 15822 "type" : "integer"
7aacca6f 15823 },
de0983cb 15824 "bps_wr_length" : {
5d9c884c
DM
15825 "alias" : "bps_wr_max_length"
15826 },
15827 "bps_wr_max_length" : {
de0983cb
DM
15828 "description" : "Maximum length of write I/O bursts in seconds.",
15829 "format_description" : "seconds",
15830 "minimum" : 1,
15831 "optional" : 1,
15832 "type" : "integer"
15833 },
44660702
DM
15834 "cache" : {
15835 "description" : "The drive's cache mode",
15836 "enum" : [
15837 "none",
15838 "writethrough",
15839 "writeback",
15840 "unsafe",
15841 "directsync"
15842 ],
7aacca6f 15843 "optional" : 1,
44660702 15844 "type" : "string"
7aacca6f 15845 },
44660702
DM
15846 "cyls" : {
15847 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 15848 "optional" : 1,
44660702 15849 "type" : "integer"
7aacca6f 15850 },
44660702
DM
15851 "detect_zeroes" : {
15852 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
7aacca6f 15853 "optional" : 1,
44660702 15854 "type" : "boolean"
7aacca6f 15855 },
44660702
DM
15856 "discard" : {
15857 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
15858 "enum" : [
15859 "ignore",
15860 "on"
15861 ],
7aacca6f 15862 "optional" : 1,
44660702
DM
15863 "type" : "string"
15864 },
15865 "file" : {
15866 "default_key" : 1,
15867 "description" : "The drive's backing volume.",
15868 "format" : "pve-volume-id-or-qm-path",
15869 "format_description" : "volume",
15870 "type" : "string"
7aacca6f
DM
15871 },
15872 "format" : {
7aacca6f 15873 "description" : "The drive's backing file's data format.",
56122987
DM
15874 "enum" : [
15875 "raw",
15876 "cow",
15877 "qcow",
15878 "qed",
15879 "qcow2",
15880 "vmdk",
15881 "cloop"
15882 ],
15883 "optional" : 1,
7aacca6f 15884 "type" : "string"
56122987 15885 },
7aacca6f 15886 "heads" : {
7aacca6f 15887 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
15888 "optional" : 1,
15889 "type" : "integer"
56122987 15890 },
7af2edf9
TL
15891 "import-from" : {
15892 "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!",
15893 "format" : "pve-volume-id-or-absolute-path",
15894 "format_description" : "source volume",
15895 "optional" : 1,
15896 "type" : "string"
15897 },
44660702 15898 "iops" : {
de0983cb 15899 "description" : "Maximum r/w I/O in operations per second.",
44660702 15900 "format_description" : "iops",
56122987 15901 "optional" : 1,
44660702 15902 "type" : "integer"
7aacca6f 15903 },
44660702 15904 "iops_max" : {
de0983cb 15905 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 15906 "format_description" : "iops",
7aacca6f 15907 "optional" : 1,
44660702 15908 "type" : "integer"
56122987 15909 },
de0983cb
DM
15910 "iops_max_length" : {
15911 "description" : "Maximum length of I/O bursts in seconds.",
15912 "format_description" : "seconds",
15913 "minimum" : 1,
15914 "optional" : 1,
15915 "type" : "integer"
15916 },
44660702 15917 "iops_rd" : {
de0983cb 15918 "description" : "Maximum read I/O in operations per second.",
44660702 15919 "format_description" : "iops",
56122987 15920 "optional" : 1,
44660702 15921 "type" : "integer"
7aacca6f 15922 },
de0983cb 15923 "iops_rd_length" : {
5d9c884c 15924 "alias" : "iops_rd_max_length"
de0983cb 15925 },
44660702 15926 "iops_rd_max" : {
de0983cb 15927 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 15928 "format_description" : "iops",
56122987 15929 "optional" : 1,
44660702 15930 "type" : "integer"
56122987 15931 },
5d9c884c
DM
15932 "iops_rd_max_length" : {
15933 "description" : "Maximum length of read I/O bursts in seconds.",
15934 "format_description" : "seconds",
15935 "minimum" : 1,
15936 "optional" : 1,
15937 "type" : "integer"
15938 },
44660702 15939 "iops_wr" : {
de0983cb 15940 "description" : "Maximum write I/O in operations per second.",
44660702
DM
15941 "format_description" : "iops",
15942 "optional" : 1,
15943 "type" : "integer"
56122987 15944 },
de0983cb 15945 "iops_wr_length" : {
5d9c884c 15946 "alias" : "iops_wr_max_length"
de0983cb 15947 },
44660702 15948 "iops_wr_max" : {
de0983cb 15949 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
15950 "format_description" : "iops",
15951 "optional" : 1,
15952 "type" : "integer"
15953 },
5d9c884c
DM
15954 "iops_wr_max_length" : {
15955 "description" : "Maximum length of write I/O bursts in seconds.",
15956 "format_description" : "seconds",
15957 "minimum" : 1,
15958 "optional" : 1,
15959 "type" : "integer"
15960 },
44660702 15961 "mbps" : {
de0983cb 15962 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
15963 "format_description" : "mbps",
15964 "optional" : 1,
15965 "type" : "number"
15966 },
15967 "mbps_max" : {
de0983cb 15968 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
15969 "format_description" : "mbps",
15970 "optional" : 1,
15971 "type" : "number"
15972 },
15973 "mbps_rd" : {
de0983cb 15974 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
15975 "format_description" : "mbps",
15976 "optional" : 1,
15977 "type" : "number"
15978 },
15979 "mbps_rd_max" : {
de0983cb 15980 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
15981 "format_description" : "mbps",
15982 "optional" : 1,
15983 "type" : "number"
15984 },
15985 "mbps_wr" : {
de0983cb 15986 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
15987 "format_description" : "mbps",
15988 "optional" : 1,
15989 "type" : "number"
15990 },
15991 "mbps_wr_max" : {
de0983cb 15992 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
15993 "format_description" : "mbps",
15994 "optional" : 1,
15995 "type" : "number"
15996 },
15997 "media" : {
15998 "default" : "disk",
15999 "description" : "The drive's media type.",
16000 "enum" : [
16001 "cdrom",
16002 "disk"
16003 ],
56122987 16004 "optional" : 1,
44660702
DM
16005 "type" : "string"
16006 },
5d9c884c
DM
16007 "replicate" : {
16008 "default" : 1,
16009 "description" : "Whether the drive should considered for replication jobs.",
16010 "optional" : 1,
16011 "type" : "boolean"
16012 },
44660702 16013 "rerror" : {
7aacca6f
DM
16014 "description" : "Read error action.",
16015 "enum" : [
16016 "ignore",
16017 "report",
16018 "stop"
44660702 16019 ],
56122987 16020 "optional" : 1,
44660702 16021 "type" : "string"
56122987 16022 },
7aacca6f 16023 "secs" : {
44660702 16024 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 16025 "optional" : 1,
44660702 16026 "type" : "integer"
56122987 16027 },
44660702
DM
16028 "serial" : {
16029 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16030 "format" : "urlencoded",
16031 "format_description" : "serial",
16032 "maxLength" : 60,
56122987 16033 "optional" : 1,
44660702 16034 "type" : "string"
56122987 16035 },
27a7acb2
DM
16036 "shared" : {
16037 "default" : 0,
16038 "description" : "Mark this locally-managed volume as available on all nodes",
16039 "optional" : 1,
16040 "type" : "boolean",
16041 "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!"
16042 },
44660702
DM
16043 "size" : {
16044 "description" : "Disk size. This is purely informational and has no effect.",
16045 "format" : "disk-size",
f004f5b9 16046 "format_description" : "DiskSize",
56122987 16047 "optional" : 1,
44660702 16048 "type" : "string"
56122987
DM
16049 },
16050 "snapshot" : {
27a7acb2 16051 "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 16052 "optional" : 1,
44660702 16053 "type" : "boolean"
56122987 16054 },
25203dc1
NC
16055 "ssd" : {
16056 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
16057 "optional" : 1,
16058 "type" : "boolean"
16059 },
56122987 16060 "trans" : {
7aacca6f 16061 "description" : "Force disk geometry bios translation mode.",
56122987
DM
16062 "enum" : [
16063 "none",
16064 "lba",
16065 "auto"
16066 ],
16067 "optional" : 1,
44660702 16068 "type" : "string"
56122987 16069 },
44660702
DM
16070 "volume" : {
16071 "alias" : "file"
56122987 16072 },
7aacca6f 16073 "werror" : {
44660702 16074 "description" : "Write error action.",
56122987 16075 "enum" : [
7aacca6f 16076 "enospc",
56122987 16077 "ignore",
7aacca6f
DM
16078 "report",
16079 "stop"
16080 ],
7aacca6f 16081 "optional" : 1,
44660702 16082 "type" : "string"
95895385
TL
16083 },
16084 "wwn" : {
16085 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
16086 "format_description" : "wwn",
16087 "optional" : 1,
16088 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
16089 "type" : "string"
44660702
DM
16090 }
16091 },
16092 "optional" : 1,
4bd7df8b 16093 "type" : "string",
7af2edf9 16094 "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
16095 },
16096 "scsi[n]" : {
7af2edf9 16097 "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
16098 "format" : {
16099 "aio" : {
7aacca6f 16100 "description" : "AIO type to use.",
56122987
DM
16101 "enum" : [
16102 "native",
8f4d9c87
TL
16103 "threads",
16104 "io_uring"
44660702 16105 ],
56122987 16106 "optional" : 1,
44660702 16107 "type" : "string"
56122987 16108 },
7aacca6f 16109 "backup" : {
7aacca6f 16110 "description" : "Whether the drive should be included when making backups.",
7aacca6f 16111 "optional" : 1,
44660702 16112 "type" : "boolean"
56122987 16113 },
44660702 16114 "bps" : {
de0983cb 16115 "description" : "Maximum r/w speed in bytes per second.",
44660702 16116 "format_description" : "bps",
7aacca6f 16117 "optional" : 1,
44660702 16118 "type" : "integer"
7aacca6f 16119 },
de0983cb
DM
16120 "bps_max_length" : {
16121 "description" : "Maximum length of I/O bursts in seconds.",
16122 "format_description" : "seconds",
16123 "minimum" : 1,
16124 "optional" : 1,
16125 "type" : "integer"
16126 },
44660702 16127 "bps_rd" : {
de0983cb 16128 "description" : "Maximum read speed in bytes per second.",
44660702 16129 "format_description" : "bps",
56122987 16130 "optional" : 1,
44660702 16131 "type" : "integer"
56122987 16132 },
de0983cb 16133 "bps_rd_length" : {
5d9c884c
DM
16134 "alias" : "bps_rd_max_length"
16135 },
16136 "bps_rd_max_length" : {
de0983cb
DM
16137 "description" : "Maximum length of read I/O bursts in seconds.",
16138 "format_description" : "seconds",
16139 "minimum" : 1,
16140 "optional" : 1,
16141 "type" : "integer"
16142 },
44660702 16143 "bps_wr" : {
de0983cb 16144 "description" : "Maximum write speed in bytes per second.",
44660702 16145 "format_description" : "bps",
56122987 16146 "optional" : 1,
44660702 16147 "type" : "integer"
56122987 16148 },
de0983cb 16149 "bps_wr_length" : {
5d9c884c
DM
16150 "alias" : "bps_wr_max_length"
16151 },
16152 "bps_wr_max_length" : {
de0983cb
DM
16153 "description" : "Maximum length of write I/O bursts in seconds.",
16154 "format_description" : "seconds",
16155 "minimum" : 1,
16156 "optional" : 1,
16157 "type" : "integer"
16158 },
44660702
DM
16159 "cache" : {
16160 "description" : "The drive's cache mode",
16161 "enum" : [
16162 "none",
16163 "writethrough",
16164 "writeback",
16165 "unsafe",
16166 "directsync"
16167 ],
56122987 16168 "optional" : 1,
44660702
DM
16169 "type" : "string"
16170 },
16171 "cyls" : {
16172 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16173 "optional" : 1,
16174 "type" : "integer"
16175 },
16176 "detect_zeroes" : {
16177 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16178 "optional" : 1,
16179 "type" : "boolean"
16180 },
16181 "discard" : {
16182 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
16183 "enum" : [
16184 "ignore",
16185 "on"
16186 ],
44660702
DM
16187 "optional" : 1,
16188 "type" : "string"
16189 },
16190 "file" : {
16191 "default_key" : 1,
16192 "description" : "The drive's backing volume.",
16193 "format" : "pve-volume-id-or-qm-path",
16194 "format_description" : "volume",
16195 "type" : "string"
56122987 16196 },
7aacca6f 16197 "format" : {
44660702 16198 "description" : "The drive's backing file's data format.",
7aacca6f
DM
16199 "enum" : [
16200 "raw",
16201 "cow",
16202 "qcow",
16203 "qed",
16204 "qcow2",
16205 "vmdk",
16206 "cloop"
16207 ],
56122987 16208 "optional" : 1,
44660702 16209 "type" : "string"
56122987 16210 },
44660702
DM
16211 "heads" : {
16212 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 16213 "optional" : 1,
44660702 16214 "type" : "integer"
56122987 16215 },
7af2edf9
TL
16216 "import-from" : {
16217 "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!",
16218 "format" : "pve-volume-id-or-absolute-path",
16219 "format_description" : "source volume",
16220 "optional" : 1,
16221 "type" : "string"
16222 },
44660702 16223 "iops" : {
de0983cb 16224 "description" : "Maximum r/w I/O in operations per second.",
44660702 16225 "format_description" : "iops",
7aacca6f 16226 "optional" : 1,
44660702 16227 "type" : "integer"
56122987 16228 },
44660702 16229 "iops_max" : {
de0983cb 16230 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
7aacca6f 16231 "format_description" : "iops",
7aacca6f 16232 "optional" : 1,
44660702 16233 "type" : "integer"
56122987 16234 },
de0983cb
DM
16235 "iops_max_length" : {
16236 "description" : "Maximum length of I/O bursts in seconds.",
16237 "format_description" : "seconds",
16238 "minimum" : 1,
16239 "optional" : 1,
16240 "type" : "integer"
16241 },
44660702 16242 "iops_rd" : {
de0983cb 16243 "description" : "Maximum read I/O in operations per second.",
44660702 16244 "format_description" : "iops",
56122987 16245 "optional" : 1,
44660702 16246 "type" : "integer"
56122987 16247 },
de0983cb 16248 "iops_rd_length" : {
5d9c884c 16249 "alias" : "iops_rd_max_length"
de0983cb 16250 },
44660702 16251 "iops_rd_max" : {
de0983cb 16252 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 16253 "format_description" : "iops",
56122987 16254 "optional" : 1,
44660702 16255 "type" : "integer"
56122987 16256 },
5d9c884c
DM
16257 "iops_rd_max_length" : {
16258 "description" : "Maximum length of read I/O bursts in seconds.",
16259 "format_description" : "seconds",
16260 "minimum" : 1,
16261 "optional" : 1,
16262 "type" : "integer"
16263 },
44660702 16264 "iops_wr" : {
de0983cb 16265 "description" : "Maximum write I/O in operations per second.",
44660702 16266 "format_description" : "iops",
56122987 16267 "optional" : 1,
44660702 16268 "type" : "integer"
56122987 16269 },
de0983cb 16270 "iops_wr_length" : {
5d9c884c 16271 "alias" : "iops_wr_max_length"
de0983cb 16272 },
44660702 16273 "iops_wr_max" : {
de0983cb 16274 "description" : "Maximum unthrottled write I/O pool in operations per second.",
7aacca6f 16275 "format_description" : "iops",
44660702
DM
16276 "optional" : 1,
16277 "type" : "integer"
7aacca6f 16278 },
5d9c884c
DM
16279 "iops_wr_max_length" : {
16280 "description" : "Maximum length of write I/O bursts in seconds.",
16281 "format_description" : "seconds",
16282 "minimum" : 1,
16283 "optional" : 1,
16284 "type" : "integer"
16285 },
7aacca6f 16286 "iothread" : {
44660702 16287 "description" : "Whether to use iothreads for this drive",
56122987 16288 "optional" : 1,
44660702 16289 "type" : "boolean"
56122987 16290 },
44660702 16291 "mbps" : {
de0983cb 16292 "description" : "Maximum r/w speed in megabytes per second.",
44660702 16293 "format_description" : "mbps",
56122987 16294 "optional" : 1,
44660702 16295 "type" : "number"
56122987 16296 },
44660702 16297 "mbps_max" : {
de0983cb 16298 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 16299 "format_description" : "mbps",
56122987 16300 "optional" : 1,
44660702 16301 "type" : "number"
56122987 16302 },
44660702 16303 "mbps_rd" : {
de0983cb 16304 "description" : "Maximum read speed in megabytes per second.",
44660702 16305 "format_description" : "mbps",
7aacca6f 16306 "optional" : 1,
44660702 16307 "type" : "number"
56122987 16308 },
44660702 16309 "mbps_rd_max" : {
de0983cb 16310 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 16311 "format_description" : "mbps",
7aacca6f 16312 "optional" : 1,
44660702 16313 "type" : "number"
7aacca6f 16314 },
44660702 16315 "mbps_wr" : {
de0983cb 16316 "description" : "Maximum write speed in megabytes per second.",
44660702 16317 "format_description" : "mbps",
56122987 16318 "optional" : 1,
44660702 16319 "type" : "number"
56122987 16320 },
44660702 16321 "mbps_wr_max" : {
de0983cb 16322 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 16323 "format_description" : "mbps",
56122987 16324 "optional" : 1,
44660702
DM
16325 "type" : "number"
16326 },
16327 "media" : {
16328 "default" : "disk",
16329 "description" : "The drive's media type.",
7aacca6f 16330 "enum" : [
44660702
DM
16331 "cdrom",
16332 "disk"
7aacca6f 16333 ],
56122987 16334 "optional" : 1,
44660702 16335 "type" : "string"
56122987 16336 },
7aacca6f 16337 "queues" : {
44660702 16338 "description" : "Number of queues.",
7aacca6f 16339 "minimum" : 2,
7aacca6f
DM
16340 "optional" : 1,
16341 "type" : "integer"
56122987 16342 },
5d9c884c
DM
16343 "replicate" : {
16344 "default" : 1,
16345 "description" : "Whether the drive should considered for replication jobs.",
16346 "optional" : 1,
16347 "type" : "boolean"
16348 },
16349 "rerror" : {
16350 "description" : "Read error action.",
16351 "enum" : [
16352 "ignore",
16353 "report",
16354 "stop"
16355 ],
16356 "optional" : 1,
16357 "type" : "string"
16358 },
5370fa8c
TL
16359 "ro" : {
16360 "description" : "Whether the drive is read-only.",
16361 "optional" : 1,
16362 "type" : "boolean"
16363 },
52e44c50
FG
16364 "scsiblock" : {
16365 "default" : 0,
16366 "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",
16367 "optional" : 1,
16368 "type" : "boolean"
16369 },
44660702
DM
16370 "secs" : {
16371 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 16372 "optional" : 1,
44660702 16373 "type" : "integer"
56122987 16374 },
44660702
DM
16375 "serial" : {
16376 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16377 "format" : "urlencoded",
16378 "format_description" : "serial",
16379 "maxLength" : 60,
56122987 16380 "optional" : 1,
44660702 16381 "type" : "string"
56122987 16382 },
27a7acb2
DM
16383 "shared" : {
16384 "default" : 0,
16385 "description" : "Mark this locally-managed volume as available on all nodes",
16386 "optional" : 1,
16387 "type" : "boolean",
16388 "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!"
16389 },
44660702
DM
16390 "size" : {
16391 "description" : "Disk size. This is purely informational and has no effect.",
16392 "format" : "disk-size",
f004f5b9 16393 "format_description" : "DiskSize",
44660702
DM
16394 "optional" : 1,
16395 "type" : "string"
16396 },
16397 "snapshot" : {
27a7acb2 16398 "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 16399 "optional" : 1,
44660702
DM
16400 "type" : "boolean"
16401 },
25203dc1
NC
16402 "ssd" : {
16403 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
16404 "optional" : 1,
16405 "type" : "boolean"
16406 },
44660702
DM
16407 "trans" : {
16408 "description" : "Force disk geometry bios translation mode.",
56122987 16409 "enum" : [
44660702
DM
16410 "none",
16411 "lba",
16412 "auto"
56122987 16413 ],
44660702
DM
16414 "optional" : 1,
16415 "type" : "string"
16416 },
16417 "volume" : {
16418 "alias" : "file"
56122987 16419 },
7aacca6f 16420 "werror" : {
7aacca6f
DM
16421 "description" : "Write error action.",
16422 "enum" : [
16423 "enospc",
16424 "ignore",
16425 "report",
16426 "stop"
44660702 16427 ],
56122987 16428 "optional" : 1,
7aacca6f 16429 "type" : "string"
95895385
TL
16430 },
16431 "wwn" : {
16432 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
16433 "format_description" : "wwn",
16434 "optional" : 1,
16435 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
16436 "type" : "string"
56122987 16437 }
44660702 16438 },
56122987 16439 "optional" : 1,
4bd7df8b 16440 "type" : "string",
7af2edf9 16441 "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
16442 },
16443 "scsihw" : {
44660702 16444 "default" : "lsi",
c2993fe5 16445 "description" : "SCSI controller model",
56122987
DM
16446 "enum" : [
16447 "lsi",
16448 "lsi53c810",
16449 "virtio-scsi-pci",
16450 "virtio-scsi-single",
16451 "megasas",
16452 "pvscsi"
16453 ],
16454 "optional" : 1,
56122987
DM
16455 "type" : "string"
16456 },
27a7acb2 16457 "searchdomain" : {
4772952b 16458 "description" : "cloud-init: Sets DNS search domains for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
27a7acb2
DM
16459 "optional" : 1,
16460 "type" : "string",
16461 "typetext" : "<string>"
16462 },
44660702 16463 "serial[n]" : {
c2993fe5 16464 "description" : "Create a serial device inside the VM (n is 0 to 3)",
56122987 16465 "optional" : 1,
44660702 16466 "pattern" : "(/dev/.+|socket)",
c2993fe5 16467 "type" : "string",
4772952b 16468 "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 16469 },
44660702
DM
16470 "shares" : {
16471 "default" : 1000,
5da3d723 16472 "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
16473 "maximum" : 50000,
16474 "minimum" : 0,
7aacca6f 16475 "optional" : 1,
4bd7df8b 16476 "type" : "integer",
013dc89f 16477 "typetext" : "<integer> (0 - 50000)"
56122987 16478 },
7aacca6f
DM
16479 "skiplock" : {
16480 "description" : "Ignore locks - only root is allowed to use this option.",
44660702 16481 "optional" : 1,
013dc89f
DM
16482 "type" : "boolean",
16483 "typetext" : "<boolean>"
56122987 16484 },
44660702
DM
16485 "smbios1" : {
16486 "description" : "Specify SMBIOS type 1 fields.",
16487 "format" : "pve-qm-smbios1",
1e3f8156 16488 "maxLength" : 512,
56122987 16489 "optional" : 1,
4bd7df8b 16490 "type" : "string",
1e3f8156 16491 "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 16492 },
44660702
DM
16493 "smp" : {
16494 "default" : 1,
16495 "description" : "The number of CPUs. Please use option -sockets instead.",
16496 "minimum" : 1,
56122987 16497 "optional" : 1,
4bd7df8b 16498 "type" : "integer",
013dc89f 16499 "typetext" : "<integer> (1 - N)"
56122987 16500 },
44660702
DM
16501 "sockets" : {
16502 "default" : 1,
16503 "description" : "The number of CPU sockets.",
16504 "minimum" : 1,
56122987 16505 "optional" : 1,
4bd7df8b 16506 "type" : "integer",
013dc89f 16507 "typetext" : "<integer> (1 - N)"
56122987 16508 },
1c532546
TL
16509 "spice_enhancements" : {
16510 "description" : "Configure additional enhancements for SPICE.",
16511 "format" : {
16512 "foldersharing" : {
16513 "default" : "0",
16514 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
16515 "optional" : 1,
16516 "type" : "boolean"
16517 },
16518 "videostreaming" : {
16519 "default" : "off",
16520 "description" : "Enable video streaming. Uses compression for detected video streams.",
16521 "enum" : [
16522 "off",
16523 "all",
16524 "filter"
16525 ],
16526 "optional" : 1,
16527 "type" : "string"
16528 }
16529 },
16530 "optional" : 1,
16531 "type" : "string",
16532 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
16533 },
27a7acb2
DM
16534 "sshkeys" : {
16535 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
16536 "format" : "urlencoded",
16537 "optional" : 1,
16538 "type" : "string",
16539 "typetext" : "<string>"
16540 },
44660702
DM
16541 "startdate" : {
16542 "default" : "now",
4772952b 16543 "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
16544 "optional" : 1,
16545 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 16546 "type" : "string",
44660702
DM
16547 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
16548 },
16549 "startup" : {
16550 "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.",
16551 "format" : "pve-startup-order",
7aacca6f 16552 "optional" : 1,
44660702
DM
16553 "type" : "string",
16554 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
7aacca6f 16555 },
44660702
DM
16556 "tablet" : {
16557 "default" : 1,
c2993fe5 16558 "description" : "Enable/disable the USB tablet device.",
7aacca6f 16559 "optional" : 1,
c2993fe5 16560 "type" : "boolean",
013dc89f 16561 "typetext" : "<boolean>",
4772952b 16562 "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 16563 },
5c1699e5
TL
16564 "tags" : {
16565 "description" : "Tags of the VM. This is only meta information.",
16566 "format" : "pve-tag-list",
16567 "optional" : 1,
16568 "type" : "string",
16569 "typetext" : "<string>"
16570 },
44660702
DM
16571 "tdf" : {
16572 "default" : 0,
16573 "description" : "Enable/disable time drift fix.",
7aacca6f 16574 "optional" : 1,
013dc89f
DM
16575 "type" : "boolean",
16576 "typetext" : "<boolean>"
7aacca6f 16577 },
44660702
DM
16578 "template" : {
16579 "default" : 0,
16580 "description" : "Enable/disable Template.",
7aacca6f 16581 "optional" : 1,
013dc89f
DM
16582 "type" : "boolean",
16583 "typetext" : "<boolean>"
7aacca6f 16584 },
5370fa8c 16585 "tpmstate0" : {
7af2edf9 16586 "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
16587 "format" : {
16588 "file" : {
16589 "default_key" : 1,
16590 "description" : "The drive's backing volume.",
16591 "format" : "pve-volume-id-or-qm-path",
16592 "format_description" : "volume",
16593 "type" : "string"
16594 },
7af2edf9
TL
16595 "import-from" : {
16596 "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!",
16597 "format" : "pve-volume-id-or-absolute-path",
16598 "format_description" : "source volume",
16599 "optional" : 1,
16600 "type" : "string"
16601 },
5370fa8c
TL
16602 "size" : {
16603 "description" : "Disk size. This is purely informational and has no effect.",
16604 "format" : "disk-size",
16605 "format_description" : "DiskSize",
16606 "optional" : 1,
16607 "type" : "string"
16608 },
16609 "version" : {
16610 "default" : "v2.0",
16611 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
16612 "enum" : [
16613 "v1.2",
16614 "v2.0"
16615 ],
16616 "optional" : 1,
16617 "type" : "string"
16618 },
16619 "volume" : {
16620 "alias" : "file"
16621 }
16622 },
16623 "optional" : 1,
16624 "type" : "string",
7af2edf9 16625 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 16626 },
44660702 16627 "unused[n]" : {
c2993fe5 16628 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
16629 "format" : {
16630 "file" : {
16631 "default_key" : 1,
16632 "description" : "The drive's backing volume.",
16633 "format" : "pve-volume-id",
16634 "format_description" : "volume",
16635 "type" : "string"
16636 },
16637 "volume" : {
16638 "alias" : "file"
16639 }
16640 },
7aacca6f 16641 "optional" : 1,
013dc89f 16642 "type" : "string",
c5aa7e14 16643 "typetext" : "[file=]<volume>"
7aacca6f 16644 },
44660702 16645 "usb[n]" : {
c2993fe5 16646 "description" : "Configure an USB device (n is 0 to 4).",
56122987 16647 "format" : {
44660702
DM
16648 "host" : {
16649 "default_key" : 1,
4772952b 16650 "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",
44660702
DM
16651 "format" : "pve-qm-usb-device",
16652 "format_description" : "HOSTUSBDEVICE|spice",
16653 "type" : "string"
7aacca6f 16654 },
44660702 16655 "usb3" : {
c2993fe5 16656 "default" : 0,
1c532546 16657 "description" : "Specifies whether if given host option is a USB3 device or port.",
7aacca6f 16658 "optional" : 1,
44660702 16659 "type" : "boolean"
7aacca6f 16660 }
44660702 16661 },
7aacca6f 16662 "optional" : 1,
4bd7df8b
DM
16663 "type" : "string",
16664 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
7aacca6f 16665 },
44660702 16666 "vcpus" : {
7aacca6f 16667 "default" : 0,
44660702
DM
16668 "description" : "Number of hotplugged vcpus.",
16669 "minimum" : 1,
7aacca6f 16670 "optional" : 1,
4bd7df8b 16671 "type" : "integer",
013dc89f 16672 "typetext" : "<integer> (1 - N)"
7aacca6f 16673 },
44660702 16674 "vga" : {
e2d681b3
TL
16675 "description" : "Configure the VGA hardware.",
16676 "format" : {
16677 "memory" : {
16678 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
16679 "maximum" : 512,
16680 "minimum" : 4,
16681 "optional" : 1,
16682 "type" : "integer"
16683 },
16684 "type" : {
16685 "default" : "std",
16686 "default_key" : 1,
16687 "description" : "Select the VGA type.",
16688 "enum" : [
16689 "cirrus",
16690 "qxl",
16691 "qxl2",
16692 "qxl3",
16693 "qxl4",
5f26e15b 16694 "none",
e2d681b3
TL
16695 "serial0",
16696 "serial1",
16697 "serial2",
16698 "serial3",
16699 "std",
16700 "virtio",
7af2edf9 16701 "virtio-gl",
e2d681b3
TL
16702 "vmware"
16703 ],
16704 "optional" : 1,
16705 "type" : "string"
16706 }
16707 },
7aacca6f 16708 "optional" : 1,
c2993fe5 16709 "type" : "string",
e2d681b3
TL
16710 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
16711 "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 16712 },
44660702 16713 "virtio[n]" : {
7af2edf9 16714 "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 16715 "format" : {
7aacca6f 16716 "aio" : {
7aacca6f 16717 "description" : "AIO type to use.",
56122987 16718 "enum" : [
7aacca6f 16719 "native",
8f4d9c87
TL
16720 "threads",
16721 "io_uring"
7aacca6f 16722 ],
44660702
DM
16723 "optional" : 1,
16724 "type" : "string"
56122987 16725 },
44660702
DM
16726 "backup" : {
16727 "description" : "Whether the drive should be included when making backups.",
56122987 16728 "optional" : 1,
44660702 16729 "type" : "boolean"
7aacca6f 16730 },
44660702 16731 "bps" : {
de0983cb 16732 "description" : "Maximum r/w speed in bytes per second.",
44660702 16733 "format_description" : "bps",
7aacca6f 16734 "optional" : 1,
44660702 16735 "type" : "integer"
56122987 16736 },
de0983cb
DM
16737 "bps_max_length" : {
16738 "description" : "Maximum length of I/O bursts in seconds.",
16739 "format_description" : "seconds",
16740 "minimum" : 1,
16741 "optional" : 1,
16742 "type" : "integer"
16743 },
56122987 16744 "bps_rd" : {
de0983cb 16745 "description" : "Maximum read speed in bytes per second.",
44660702 16746 "format_description" : "bps",
56122987 16747 "optional" : 1,
7aacca6f 16748 "type" : "integer"
56122987 16749 },
de0983cb 16750 "bps_rd_length" : {
5d9c884c
DM
16751 "alias" : "bps_rd_max_length"
16752 },
16753 "bps_rd_max_length" : {
de0983cb
DM
16754 "description" : "Maximum length of read I/O bursts in seconds.",
16755 "format_description" : "seconds",
16756 "minimum" : 1,
16757 "optional" : 1,
16758 "type" : "integer"
16759 },
44660702 16760 "bps_wr" : {
de0983cb 16761 "description" : "Maximum write speed in bytes per second.",
44660702 16762 "format_description" : "bps",
56122987 16763 "optional" : 1,
7aacca6f 16764 "type" : "integer"
56122987 16765 },
de0983cb 16766 "bps_wr_length" : {
5d9c884c
DM
16767 "alias" : "bps_wr_max_length"
16768 },
16769 "bps_wr_max_length" : {
de0983cb
DM
16770 "description" : "Maximum length of write I/O bursts in seconds.",
16771 "format_description" : "seconds",
16772 "minimum" : 1,
16773 "optional" : 1,
16774 "type" : "integer"
16775 },
7aacca6f 16776 "cache" : {
44660702 16777 "description" : "The drive's cache mode",
7aacca6f
DM
16778 "enum" : [
16779 "none",
16780 "writethrough",
16781 "writeback",
16782 "unsafe",
16783 "directsync"
16784 ],
56122987 16785 "optional" : 1,
44660702 16786 "type" : "string"
7aacca6f 16787 },
44660702
DM
16788 "cyls" : {
16789 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16790 "optional" : 1,
16791 "type" : "integer"
16792 },
16793 "detect_zeroes" : {
16794 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16795 "optional" : 1,
16796 "type" : "boolean"
16797 },
16798 "discard" : {
16799 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 16800 "enum" : [
44660702
DM
16801 "ignore",
16802 "on"
56122987
DM
16803 ],
16804 "optional" : 1,
44660702 16805 "type" : "string"
56122987 16806 },
44660702
DM
16807 "file" : {
16808 "default_key" : 1,
16809 "description" : "The drive's backing volume.",
16810 "format" : "pve-volume-id-or-qm-path",
16811 "format_description" : "volume",
16812 "type" : "string"
16813 },
16814 "format" : {
16815 "description" : "The drive's backing file's data format.",
16816 "enum" : [
16817 "raw",
16818 "cow",
16819 "qcow",
16820 "qed",
16821 "qcow2",
16822 "vmdk",
16823 "cloop"
16824 ],
56122987 16825 "optional" : 1,
44660702 16826 "type" : "string"
56122987 16827 },
44660702
DM
16828 "heads" : {
16829 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
16830 "optional" : 1,
16831 "type" : "integer"
16832 },
7af2edf9
TL
16833 "import-from" : {
16834 "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!",
16835 "format" : "pve-volume-id-or-absolute-path",
16836 "format_description" : "source volume",
16837 "optional" : 1,
16838 "type" : "string"
16839 },
44660702 16840 "iops" : {
de0983cb 16841 "description" : "Maximum r/w I/O in operations per second.",
44660702 16842 "format_description" : "iops",
56122987 16843 "optional" : 1,
44660702
DM
16844 "type" : "integer"
16845 },
16846 "iops_max" : {
de0983cb 16847 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
16848 "format_description" : "iops",
16849 "optional" : 1,
16850 "type" : "integer"
56122987 16851 },
de0983cb
DM
16852 "iops_max_length" : {
16853 "description" : "Maximum length of I/O bursts in seconds.",
16854 "format_description" : "seconds",
16855 "minimum" : 1,
16856 "optional" : 1,
16857 "type" : "integer"
16858 },
7aacca6f 16859 "iops_rd" : {
de0983cb 16860 "description" : "Maximum read I/O in operations per second.",
7aacca6f 16861 "format_description" : "iops",
7aacca6f 16862 "optional" : 1,
44660702 16863 "type" : "integer"
56122987 16864 },
de0983cb 16865 "iops_rd_length" : {
5d9c884c 16866 "alias" : "iops_rd_max_length"
de0983cb 16867 },
44660702 16868 "iops_rd_max" : {
de0983cb 16869 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
16870 "format_description" : "iops",
16871 "optional" : 1,
16872 "type" : "integer"
16873 },
5d9c884c
DM
16874 "iops_rd_max_length" : {
16875 "description" : "Maximum length of read I/O bursts in seconds.",
16876 "format_description" : "seconds",
16877 "minimum" : 1,
16878 "optional" : 1,
16879 "type" : "integer"
16880 },
44660702 16881 "iops_wr" : {
de0983cb 16882 "description" : "Maximum write I/O in operations per second.",
44660702
DM
16883 "format_description" : "iops",
16884 "optional" : 1,
16885 "type" : "integer"
16886 },
de0983cb 16887 "iops_wr_length" : {
5d9c884c 16888 "alias" : "iops_wr_max_length"
de0983cb 16889 },
44660702 16890 "iops_wr_max" : {
de0983cb 16891 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
16892 "format_description" : "iops",
16893 "optional" : 1,
16894 "type" : "integer"
16895 },
5d9c884c
DM
16896 "iops_wr_max_length" : {
16897 "description" : "Maximum length of write I/O bursts in seconds.",
16898 "format_description" : "seconds",
16899 "minimum" : 1,
16900 "optional" : 1,
16901 "type" : "integer"
16902 },
44660702
DM
16903 "iothread" : {
16904 "description" : "Whether to use iothreads for this drive",
44660702
DM
16905 "optional" : 1,
16906 "type" : "boolean"
16907 },
16908 "mbps" : {
de0983cb 16909 "description" : "Maximum r/w speed in megabytes per second.",
44660702 16910 "format_description" : "mbps",
7aacca6f 16911 "optional" : 1,
44660702 16912 "type" : "number"
7aacca6f
DM
16913 },
16914 "mbps_max" : {
de0983cb 16915 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 16916 "format_description" : "mbps",
56122987 16917 "optional" : 1,
44660702 16918 "type" : "number"
56122987 16919 },
44660702 16920 "mbps_rd" : {
de0983cb 16921 "description" : "Maximum read speed in megabytes per second.",
44660702 16922 "format_description" : "mbps",
56122987 16923 "optional" : 1,
44660702 16924 "type" : "number"
56122987 16925 },
44660702 16926 "mbps_rd_max" : {
de0983cb 16927 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
16928 "format_description" : "mbps",
16929 "optional" : 1,
16930 "type" : "number"
16931 },
16932 "mbps_wr" : {
de0983cb 16933 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
16934 "format_description" : "mbps",
16935 "optional" : 1,
16936 "type" : "number"
16937 },
16938 "mbps_wr_max" : {
de0983cb 16939 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
16940 "format_description" : "mbps",
16941 "optional" : 1,
16942 "type" : "number"
16943 },
16944 "media" : {
16945 "default" : "disk",
16946 "description" : "The drive's media type.",
56122987 16947 "enum" : [
44660702
DM
16948 "cdrom",
16949 "disk"
56122987
DM
16950 ],
16951 "optional" : 1,
44660702 16952 "type" : "string"
56122987 16953 },
5d9c884c
DM
16954 "replicate" : {
16955 "default" : 1,
16956 "description" : "Whether the drive should considered for replication jobs.",
16957 "optional" : 1,
16958 "type" : "boolean"
16959 },
44660702
DM
16960 "rerror" : {
16961 "description" : "Read error action.",
16962 "enum" : [
16963 "ignore",
16964 "report",
16965 "stop"
16966 ],
56122987 16967 "optional" : 1,
44660702 16968 "type" : "string"
56122987 16969 },
5370fa8c
TL
16970 "ro" : {
16971 "description" : "Whether the drive is read-only.",
16972 "optional" : 1,
16973 "type" : "boolean"
16974 },
44660702
DM
16975 "secs" : {
16976 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 16977 "optional" : 1,
44660702 16978 "type" : "integer"
56122987 16979 },
7aacca6f
DM
16980 "serial" : {
16981 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
7aacca6f 16982 "format" : "urlencoded",
44660702 16983 "format_description" : "serial",
7aacca6f 16984 "maxLength" : 60,
44660702
DM
16985 "optional" : 1,
16986 "type" : "string"
56122987 16987 },
27a7acb2
DM
16988 "shared" : {
16989 "default" : 0,
16990 "description" : "Mark this locally-managed volume as available on all nodes",
16991 "optional" : 1,
16992 "type" : "boolean",
16993 "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!"
16994 },
44660702
DM
16995 "size" : {
16996 "description" : "Disk size. This is purely informational and has no effect.",
16997 "format" : "disk-size",
f004f5b9 16998 "format_description" : "DiskSize",
44660702
DM
16999 "optional" : 1,
17000 "type" : "string"
56122987 17001 },
44660702 17002 "snapshot" : {
27a7acb2 17003 "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 17004 "optional" : 1,
44660702 17005 "type" : "boolean"
56122987 17006 },
44660702
DM
17007 "trans" : {
17008 "description" : "Force disk geometry bios translation mode.",
17009 "enum" : [
17010 "none",
17011 "lba",
17012 "auto"
17013 ],
7aacca6f 17014 "optional" : 1,
44660702 17015 "type" : "string"
7aacca6f 17016 },
44660702
DM
17017 "volume" : {
17018 "alias" : "file"
17019 },
17020 "werror" : {
17021 "description" : "Write error action.",
17022 "enum" : [
17023 "enospc",
17024 "ignore",
17025 "report",
17026 "stop"
17027 ],
7aacca6f 17028 "optional" : 1,
44660702 17029 "type" : "string"
56122987
DM
17030 }
17031 },
7aacca6f 17032 "optional" : 1,
4bd7df8b 17033 "type" : "string",
7af2edf9 17034 "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 17035 },
4d47f125
TL
17036 "vmgenid" : {
17037 "default" : "1 (autogenerated)",
17038 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
17039 "format_description" : "UUID",
17040 "optional" : 1,
17041 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
17042 "type" : "string",
4772952b 17043 "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 17044 },
44660702
DM
17045 "vmid" : {
17046 "description" : "The (unique) ID of the VM.",
17047 "format" : "pve-vmid",
17048 "minimum" : 1,
4bd7df8b 17049 "type" : "integer",
013dc89f 17050 "typetext" : "<integer> (1 - N)"
56122987 17051 },
2489d6df
WB
17052 "vmstatestorage" : {
17053 "description" : "Default storage for VM state volumes/files.",
17054 "format" : "pve-storage-id",
17055 "optional" : 1,
17056 "type" : "string",
17057 "typetext" : "<string>"
17058 },
44660702 17059 "watchdog" : {
c2993fe5 17060 "description" : "Create a virtual hardware watchdog device.",
44660702 17061 "format" : "pve-qm-watchdog",
56122987 17062 "optional" : 1,
c2993fe5 17063 "type" : "string",
013dc89f 17064 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 17065 "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 17066 }
7aacca6f 17067 }
56122987 17068 },
56122987
DM
17069 "permissions" : {
17070 "check" : [
17071 "perm",
17072 "/vms/{vmid}",
17073 [
17074 "VM.Config.Disk",
17075 "VM.Config.CDROM",
17076 "VM.Config.CPU",
17077 "VM.Config.Memory",
17078 "VM.Config.Network",
17079 "VM.Config.HWType",
ac70d7d1
TL
17080 "VM.Config.Options",
17081 "VM.Config.Cloudinit"
56122987
DM
17082 ],
17083 "any",
17084 1
17085 ]
17086 },
44660702 17087 "protected" : 1,
7aacca6f 17088 "proxyto" : "node",
56122987 17089 "returns" : {
4d47f125
TL
17090 "optional" : 1,
17091 "type" : "string"
7aacca6f 17092 }
4d47f125
TL
17093 },
17094 "PUT" : {
e9cd3bd4 17095 "allowtoken" : 1,
4d47f125
TL
17096 "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
17097 "method" : "PUT",
17098 "name" : "update_vm",
7aacca6f 17099 "parameters" : {
44660702 17100 "additionalProperties" : 0,
7aacca6f 17101 "properties" : {
4d47f125
TL
17102 "acpi" : {
17103 "default" : 1,
17104 "description" : "Enable/disable ACPI.",
17105 "optional" : 1,
17106 "type" : "boolean",
17107 "typetext" : "<boolean>"
7aacca6f 17108 },
4d47f125 17109 "agent" : {
5370fa8c 17110 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
17111 "format" : {
17112 "enabled" : {
17113 "default" : 0,
17114 "default_key" : 1,
5370fa8c 17115 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
17116 "type" : "boolean"
17117 },
17118 "fstrim_cloned_disks" : {
17119 "default" : 0,
d2656385 17120 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
17121 "optional" : 1,
17122 "type" : "boolean"
5c1699e5
TL
17123 },
17124 "type" : {
17125 "default" : "virtio",
17126 "description" : "Select the agent type",
17127 "enum" : [
17128 "virtio",
17129 "isa"
17130 ],
17131 "optional" : 1,
17132 "type" : "string"
4d47f125 17133 }
44660702 17134 },
4d47f125
TL
17135 "optional" : 1,
17136 "type" : "string",
5c1699e5 17137 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
44660702 17138 },
e2d681b3
TL
17139 "arch" : {
17140 "description" : "Virtual processor architecture. Defaults to the host.",
17141 "enum" : [
17142 "x86_64",
17143 "aarch64"
17144 ],
17145 "optional" : 1,
17146 "type" : "string"
17147 },
4d47f125
TL
17148 "args" : {
17149 "description" : "Arbitrary arguments passed to kvm.",
17150 "optional" : 1,
17151 "type" : "string",
17152 "typetext" : "<string>",
17153 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
17154 },
1c532546
TL
17155 "audio0" : {
17156 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
17157 "format" : {
17158 "device" : {
17159 "description" : "Configure an audio device.",
17160 "enum" : [
17161 "ich9-intel-hda",
17162 "intel-hda",
17163 "AC97"
17164 ],
17165 "type" : "string"
17166 },
17167 "driver" : {
17168 "default" : "spice",
17169 "description" : "Driver backend for the audio device.",
17170 "enum" : [
d2656385
TL
17171 "spice",
17172 "none"
1c532546
TL
17173 ],
17174 "optional" : 1,
17175 "type" : "string"
17176 }
17177 },
17178 "optional" : 1,
17179 "type" : "string",
d2656385 17180 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 17181 },
4d47f125
TL
17182 "autostart" : {
17183 "default" : 0,
17184 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 17185 "optional" : 1,
013dc89f
DM
17186 "type" : "boolean",
17187 "typetext" : "<boolean>"
7aacca6f 17188 },
4d47f125
TL
17189 "balloon" : {
17190 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
17191 "minimum" : 0,
17192 "optional" : 1,
17193 "type" : "integer",
17194 "typetext" : "<integer> (0 - N)"
17195 },
17196 "bios" : {
17197 "default" : "seabios",
17198 "description" : "Select BIOS implementation.",
17199 "enum" : [
17200 "seabios",
17201 "ovmf"
17202 ],
17203 "optional" : 1,
17204 "type" : "string"
17205 },
17206 "boot" : {
5370fa8c 17207 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 17208 "format" : "pve-qm-boot",
4d47f125 17209 "optional" : 1,
4772952b
TL
17210 "type" : "string",
17211 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
4d47f125
TL
17212 },
17213 "bootdisk" : {
4772952b 17214 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
4d47f125
TL
17215 "format" : "pve-qm-bootdisk",
17216 "optional" : 1,
17217 "pattern" : "(ide|sata|scsi|virtio)\\d+",
17218 "type" : "string"
17219 },
17220 "cdrom" : {
17221 "description" : "This is an alias for option -ide2",
17222 "format" : "pve-qm-ide",
17223 "optional" : 1,
17224 "type" : "string",
17225 "typetext" : "<volume>"
17226 },
95895385
TL
17227 "cicustom" : {
17228 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
17229 "format" : "pve-qm-cicustom",
17230 "optional" : 1,
17231 "type" : "string",
5370fa8c 17232 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 17233 },
4d47f125
TL
17234 "cipassword" : {
17235 "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.",
17236 "optional" : 1,
013dc89f
DM
17237 "type" : "string",
17238 "typetext" : "<string>"
44660702 17239 },
4d47f125
TL
17240 "citype" : {
17241 "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.",
17242 "enum" : [
17243 "configdrive2",
d2656385
TL
17244 "nocloud",
17245 "opennebula"
4d47f125
TL
17246 ],
17247 "optional" : 1,
17248 "type" : "string"
17249 },
17250 "ciuser" : {
17251 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
17252 "optional" : 1,
013dc89f
DM
17253 "type" : "string",
17254 "typetext" : "<string>"
56122987 17255 },
4d47f125
TL
17256 "cores" : {
17257 "default" : 1,
17258 "description" : "The number of cores per socket.",
7aacca6f 17259 "minimum" : 1,
4d47f125 17260 "optional" : 1,
4bd7df8b 17261 "type" : "integer",
013dc89f 17262 "typetext" : "<integer> (1 - N)"
4d47f125
TL
17263 },
17264 "cpu" : {
17265 "description" : "Emulated CPU type.",
c5aa7e14 17266 "format" : "pve-vm-cpu-conf",
4d47f125 17267 "optional" : 1,
013dc89f 17268 "type" : "string",
04d22a9f 17269 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702 17270 },
4d47f125
TL
17271 "cpulimit" : {
17272 "default" : 0,
17273 "description" : "Limit of CPU usage.",
17274 "maximum" : 128,
17275 "minimum" : 0,
17276 "optional" : 1,
17277 "type" : "number",
17278 "typetext" : "<number> (0 - 128)",
17279 "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."
17280 },
17281 "cpuunits" : {
5370fa8c
TL
17282 "default" : "cgroup v1: 1024, cgroup v2: 100",
17283 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
4d47f125 17284 "maximum" : 262144,
7af2edf9 17285 "minimum" : 1,
4d47f125 17286 "optional" : 1,
4bd7df8b 17287 "type" : "integer",
7af2edf9 17288 "typetext" : "<integer> (1 - 262144)",
4d47f125 17289 "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 17290 },
4d47f125
TL
17291 "delete" : {
17292 "description" : "A list of settings you want to delete.",
17293 "format" : "pve-configid-list",
17294 "optional" : 1,
17295 "type" : "string",
17296 "typetext" : "<string>"
17297 },
17298 "description" : {
8f4d9c87
TL
17299 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
17300 "maxLength" : 8192,
4d47f125
TL
17301 "optional" : 1,
17302 "type" : "string",
17303 "typetext" : "<string>"
17304 },
17305 "digest" : {
17306 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
17307 "maxLength" : 40,
44660702 17308 "optional" : 1,
4d47f125
TL
17309 "type" : "string",
17310 "typetext" : "<string>"
17311 },
17312 "efidisk0" : {
7af2edf9 17313 "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 17314 "format" : {
5370fa8c
TL
17315 "efitype" : {
17316 "default" : "2m",
17317 "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.",
17318 "enum" : [
17319 "2m",
17320 "4m"
17321 ],
17322 "optional" : 1,
17323 "type" : "string"
17324 },
4d47f125
TL
17325 "file" : {
17326 "default_key" : 1,
17327 "description" : "The drive's backing volume.",
17328 "format" : "pve-volume-id-or-qm-path",
17329 "format_description" : "volume",
17330 "type" : "string"
17331 },
17332 "format" : {
17333 "description" : "The drive's backing file's data format.",
17334 "enum" : [
17335 "raw",
17336 "cow",
17337 "qcow",
17338 "qed",
17339 "qcow2",
17340 "vmdk",
17341 "cloop"
17342 ],
17343 "optional" : 1,
17344 "type" : "string"
17345 },
7af2edf9
TL
17346 "import-from" : {
17347 "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!",
17348 "format" : "pve-volume-id-or-absolute-path",
17349 "format_description" : "source volume",
17350 "optional" : 1,
17351 "type" : "string"
17352 },
5370fa8c
TL
17353 "pre-enrolled-keys" : {
17354 "default" : 0,
17355 "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.",
17356 "optional" : 1,
17357 "type" : "boolean"
17358 },
4d47f125
TL
17359 "size" : {
17360 "description" : "Disk size. This is purely informational and has no effect.",
17361 "format" : "disk-size",
17362 "format_description" : "DiskSize",
17363 "optional" : 1,
17364 "type" : "string"
17365 },
17366 "volume" : {
17367 "alias" : "file"
17368 }
17369 },
17370 "optional" : 1,
17371 "type" : "string",
7af2edf9 17372 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125
TL
17373 },
17374 "force" : {
17375 "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.",
17376 "optional" : 1,
17377 "requires" : "delete",
013dc89f
DM
17378 "type" : "boolean",
17379 "typetext" : "<boolean>"
56122987 17380 },
4d47f125
TL
17381 "freeze" : {
17382 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
17383 "optional" : 1,
17384 "type" : "boolean",
17385 "typetext" : "<boolean>"
7aacca6f 17386 },
5f26e15b
TL
17387 "hookscript" : {
17388 "description" : "Script that will be executed during various steps in the vms lifetime.",
17389 "format" : "pve-volume-id",
17390 "optional" : 1,
17391 "type" : "string",
17392 "typetext" : "<string>"
17393 },
4d47f125
TL
17394 "hostpci[n]" : {
17395 "description" : "Map host PCI devices into guest.",
17396 "format" : "pve-qm-hostpci",
17397 "optional" : 1,
17398 "type" : "string",
7af2edf9 17399 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,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 17400 "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 17401 },
4d47f125
TL
17402 "hotplug" : {
17403 "default" : "network,disk,usb",
5370fa8c 17404 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`.",
4d47f125
TL
17405 "format" : "pve-hotplug-features",
17406 "optional" : 1,
35a75dd3
DM
17407 "type" : "string",
17408 "typetext" : "<string>"
17409 },
4d47f125
TL
17410 "hugepages" : {
17411 "description" : "Enable/disable hugepages memory.",
35a75dd3 17412 "enum" : [
4d47f125
TL
17413 "any",
17414 "2",
17415 "1024"
35a75dd3
DM
17416 ],
17417 "optional" : 1,
17418 "type" : "string"
17419 },
4d47f125 17420 "ide[n]" : {
7af2edf9 17421 "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
17422 "format" : {
17423 "aio" : {
17424 "description" : "AIO type to use.",
17425 "enum" : [
17426 "native",
8f4d9c87
TL
17427 "threads",
17428 "io_uring"
4d47f125 17429 ],
44660702 17430 "optional" : 1,
44660702
DM
17431 "type" : "string"
17432 },
4d47f125
TL
17433 "backup" : {
17434 "description" : "Whether the drive should be included when making backups.",
56122987 17435 "optional" : 1,
4d47f125 17436 "type" : "boolean"
56122987 17437 },
4d47f125
TL
17438 "bps" : {
17439 "description" : "Maximum r/w speed in bytes per second.",
17440 "format_description" : "bps",
de0983cb 17441 "optional" : 1,
4d47f125 17442 "type" : "integer"
de0983cb 17443 },
4d47f125
TL
17444 "bps_max_length" : {
17445 "description" : "Maximum length of I/O bursts in seconds.",
17446 "format_description" : "seconds",
17447 "minimum" : 1,
de0983cb 17448 "optional" : 1,
4d47f125 17449 "type" : "integer"
7aacca6f 17450 },
4d47f125
TL
17451 "bps_rd" : {
17452 "description" : "Maximum read speed in bytes per second.",
17453 "format_description" : "bps",
7aacca6f 17454 "optional" : 1,
4d47f125 17455 "type" : "integer"
56122987 17456 },
4d47f125
TL
17457 "bps_rd_length" : {
17458 "alias" : "bps_rd_max_length"
17459 },
17460 "bps_rd_max_length" : {
17461 "description" : "Maximum length of read I/O bursts in seconds.",
17462 "format_description" : "seconds",
17463 "minimum" : 1,
56122987 17464 "optional" : 1,
4d47f125 17465 "type" : "integer"
56122987 17466 },
4d47f125
TL
17467 "bps_wr" : {
17468 "description" : "Maximum write speed in bytes per second.",
17469 "format_description" : "bps",
52e44c50 17470 "optional" : 1,
4d47f125 17471 "type" : "integer"
52e44c50 17472 },
4d47f125
TL
17473 "bps_wr_length" : {
17474 "alias" : "bps_wr_max_length"
17475 },
17476 "bps_wr_max_length" : {
17477 "description" : "Maximum length of write I/O bursts in seconds.",
17478 "format_description" : "seconds",
44660702 17479 "minimum" : 1,
56122987 17480 "optional" : 1,
4d47f125 17481 "type" : "integer"
56122987 17482 },
4d47f125
TL
17483 "cache" : {
17484 "description" : "The drive's cache mode",
17485 "enum" : [
17486 "none",
17487 "writethrough",
17488 "writeback",
17489 "unsafe",
17490 "directsync"
17491 ],
7aacca6f 17492 "optional" : 1,
4d47f125 17493 "type" : "string"
7aacca6f 17494 },
4d47f125
TL
17495 "cyls" : {
17496 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
17497 "optional" : 1,
17498 "type" : "integer"
56122987 17499 },
4d47f125
TL
17500 "detect_zeroes" : {
17501 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 17502 "optional" : 1,
4d47f125 17503 "type" : "boolean"
56122987 17504 },
4d47f125
TL
17505 "discard" : {
17506 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17507 "enum" : [
17508 "ignore",
17509 "on"
17510 ],
56122987 17511 "optional" : 1,
4d47f125 17512 "type" : "string"
7aacca6f 17513 },
4d47f125
TL
17514 "file" : {
17515 "default_key" : 1,
17516 "description" : "The drive's backing volume.",
17517 "format" : "pve-volume-id-or-qm-path",
17518 "format_description" : "volume",
17519 "type" : "string"
56122987 17520 },
4d47f125
TL
17521 "format" : {
17522 "description" : "The drive's backing file's data format.",
17523 "enum" : [
17524 "raw",
17525 "cow",
17526 "qcow",
17527 "qed",
17528 "qcow2",
17529 "vmdk",
17530 "cloop"
17531 ],
7aacca6f 17532 "optional" : 1,
4d47f125 17533 "type" : "string"
7aacca6f 17534 },
4d47f125
TL
17535 "heads" : {
17536 "description" : "Force the drive's physical geometry to have a specific head count.",
7aacca6f 17537 "optional" : 1,
4d47f125 17538 "type" : "integer"
56122987 17539 },
7af2edf9
TL
17540 "import-from" : {
17541 "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!",
17542 "format" : "pve-volume-id-or-absolute-path",
17543 "format_description" : "source volume",
17544 "optional" : 1,
17545 "type" : "string"
17546 },
4d47f125
TL
17547 "iops" : {
17548 "description" : "Maximum r/w I/O in operations per second.",
17549 "format_description" : "iops",
44660702 17550 "optional" : 1,
4d47f125 17551 "type" : "integer"
44660702 17552 },
4d47f125
TL
17553 "iops_max" : {
17554 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
17555 "format_description" : "iops",
44660702 17556 "optional" : 1,
4d47f125 17557 "type" : "integer"
56122987 17558 },
4d47f125
TL
17559 "iops_max_length" : {
17560 "description" : "Maximum length of I/O bursts in seconds.",
17561 "format_description" : "seconds",
17562 "minimum" : 1,
7aacca6f 17563 "optional" : 1,
4d47f125 17564 "type" : "integer"
7aacca6f 17565 },
4d47f125
TL
17566 "iops_rd" : {
17567 "description" : "Maximum read I/O in operations per second.",
17568 "format_description" : "iops",
17569 "optional" : 1,
17570 "type" : "integer"
17571 },
17572 "iops_rd_length" : {
17573 "alias" : "iops_rd_max_length"
17574 },
17575 "iops_rd_max" : {
17576 "description" : "Maximum unthrottled read I/O pool in operations per second.",
17577 "format_description" : "iops",
17578 "optional" : 1,
17579 "type" : "integer"
17580 },
17581 "iops_rd_max_length" : {
17582 "description" : "Maximum length of read I/O bursts in seconds.",
17583 "format_description" : "seconds",
44660702 17584 "minimum" : 1,
4d47f125
TL
17585 "optional" : 1,
17586 "type" : "integer"
7aacca6f 17587 },
4d47f125
TL
17588 "iops_wr" : {
17589 "description" : "Maximum write I/O in operations per second.",
17590 "format_description" : "iops",
44660702 17591 "optional" : 1,
4d47f125 17592 "type" : "integer"
44660702 17593 },
4d47f125
TL
17594 "iops_wr_length" : {
17595 "alias" : "iops_wr_max_length"
17596 },
17597 "iops_wr_max" : {
17598 "description" : "Maximum unthrottled write I/O pool in operations per second.",
17599 "format_description" : "iops",
17600 "optional" : 1,
17601 "type" : "integer"
17602 },
17603 "iops_wr_max_length" : {
17604 "description" : "Maximum length of write I/O bursts in seconds.",
17605 "format_description" : "seconds",
44660702 17606 "minimum" : 1,
44660702 17607 "optional" : 1,
4d47f125 17608 "type" : "integer"
44660702 17609 },
4d47f125
TL
17610 "mbps" : {
17611 "description" : "Maximum r/w speed in megabytes per second.",
17612 "format_description" : "mbps",
17613 "optional" : 1,
17614 "type" : "number"
56122987 17615 },
4d47f125
TL
17616 "mbps_max" : {
17617 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
17618 "format_description" : "mbps",
17619 "optional" : 1,
17620 "type" : "number"
17621 },
17622 "mbps_rd" : {
17623 "description" : "Maximum read speed in megabytes per second.",
17624 "format_description" : "mbps",
17625 "optional" : 1,
17626 "type" : "number"
17627 },
17628 "mbps_rd_max" : {
17629 "description" : "Maximum unthrottled read pool in megabytes per second.",
17630 "format_description" : "mbps",
17631 "optional" : 1,
17632 "type" : "number"
17633 },
17634 "mbps_wr" : {
17635 "description" : "Maximum write speed in megabytes per second.",
17636 "format_description" : "mbps",
17637 "optional" : 1,
17638 "type" : "number"
17639 },
17640 "mbps_wr_max" : {
17641 "description" : "Maximum unthrottled write pool in megabytes per second.",
17642 "format_description" : "mbps",
17643 "optional" : 1,
17644 "type" : "number"
17645 },
17646 "media" : {
17647 "default" : "disk",
17648 "description" : "The drive's media type.",
17649 "enum" : [
17650 "cdrom",
17651 "disk"
17652 ],
17653 "optional" : 1,
17654 "type" : "string"
17655 },
17656 "model" : {
17657 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
17658 "format" : "urlencoded",
17659 "format_description" : "model",
17660 "maxLength" : 120,
17661 "optional" : 1,
17662 "type" : "string"
17663 },
17664 "replicate" : {
17665 "default" : 1,
17666 "description" : "Whether the drive should considered for replication jobs.",
17667 "optional" : 1,
17668 "type" : "boolean"
17669 },
17670 "rerror" : {
17671 "description" : "Read error action.",
17672 "enum" : [
17673 "ignore",
17674 "report",
17675 "stop"
17676 ],
17677 "optional" : 1,
17678 "type" : "string"
17679 },
17680 "secs" : {
17681 "description" : "Force the drive's physical geometry to have a specific sector count.",
17682 "optional" : 1,
17683 "type" : "integer"
17684 },
17685 "serial" : {
17686 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
17687 "format" : "urlencoded",
17688 "format_description" : "serial",
17689 "maxLength" : 60,
17690 "optional" : 1,
17691 "type" : "string"
17692 },
17693 "shared" : {
17694 "default" : 0,
17695 "description" : "Mark this locally-managed volume as available on all nodes",
44660702 17696 "optional" : 1,
013dc89f 17697 "type" : "boolean",
4d47f125 17698 "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 17699 },
4d47f125
TL
17700 "size" : {
17701 "description" : "Disk size. This is purely informational and has no effect.",
17702 "format" : "disk-size",
17703 "format_description" : "DiskSize",
17704 "optional" : 1,
17705 "type" : "string"
17706 },
17707 "snapshot" : {
17708 "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.",
17709 "optional" : 1,
17710 "type" : "boolean"
17711 },
25203dc1
NC
17712 "ssd" : {
17713 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17714 "optional" : 1,
17715 "type" : "boolean"
17716 },
4d47f125
TL
17717 "trans" : {
17718 "description" : "Force disk geometry bios translation mode.",
17719 "enum" : [
17720 "none",
17721 "lba",
17722 "auto"
17723 ],
17724 "optional" : 1,
17725 "type" : "string"
17726 },
17727 "volume" : {
17728 "alias" : "file"
17729 },
17730 "werror" : {
17731 "description" : "Write error action.",
17732 "enum" : [
17733 "enospc",
17734 "ignore",
17735 "report",
17736 "stop"
17737 ],
17738 "optional" : 1,
17739 "type" : "string"
95895385
TL
17740 },
17741 "wwn" : {
17742 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17743 "format_description" : "wwn",
17744 "optional" : 1,
17745 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17746 "type" : "string"
4d47f125
TL
17747 }
17748 },
17749 "optional" : 1,
013dc89f 17750 "type" : "string",
7af2edf9 17751 "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 17752 },
4d47f125 17753 "ipconfig[n]" : {
d2656385 17754 "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
17755 "format" : "pve-qm-ipconfig",
17756 "optional" : 1,
013dc89f 17757 "type" : "string",
4d47f125 17758 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
44660702 17759 },
95895385
TL
17760 "ivshmem" : {
17761 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
17762 "format" : {
17763 "name" : {
17764 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
17765 "format_description" : "string",
17766 "optional" : 1,
17767 "pattern" : "[a-zA-Z0-9\\-]+",
17768 "type" : "string"
17769 },
17770 "size" : {
17771 "description" : "The size of the file in MB.",
17772 "minimum" : 1,
17773 "type" : "integer"
17774 }
17775 },
17776 "optional" : 1,
17777 "type" : "string",
17778 "typetext" : "size=<integer> [,name=<string>]"
17779 },
4772952b
TL
17780 "keephugepages" : {
17781 "default" : 0,
17782 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
17783 "optional" : 1,
17784 "type" : "boolean",
17785 "typetext" : "<boolean>"
17786 },
4d47f125
TL
17787 "keyboard" : {
17788 "default" : null,
7af2edf9 17789 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
4d47f125
TL
17790 "enum" : [
17791 "de",
17792 "de-ch",
17793 "da",
17794 "en-gb",
17795 "en-us",
17796 "es",
17797 "fi",
17798 "fr",
17799 "fr-be",
17800 "fr-ca",
17801 "fr-ch",
17802 "hu",
17803 "is",
17804 "it",
17805 "ja",
17806 "lt",
17807 "mk",
17808 "nl",
17809 "no",
17810 "pl",
17811 "pt",
17812 "pt-br",
17813 "sv",
17814 "sl",
17815 "tr"
17816 ],
17817 "optional" : 1,
17818 "type" : "string"
44660702 17819 },
4d47f125
TL
17820 "kvm" : {
17821 "default" : 1,
17822 "description" : "Enable/disable KVM hardware virtualization.",
44660702 17823 "optional" : 1,
013dc89f
DM
17824 "type" : "boolean",
17825 "typetext" : "<boolean>"
7aacca6f 17826 },
4d47f125 17827 "localtime" : {
5370fa8c 17828 "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
17829 "optional" : 1,
17830 "type" : "boolean",
17831 "typetext" : "<boolean>"
17832 },
17833 "lock" : {
17834 "description" : "Lock/unlock the VM.",
56122987 17835 "enum" : [
4d47f125 17836 "backup",
5f26e15b
TL
17837 "clone",
17838 "create",
17839 "migrate",
17840 "rollback",
56122987 17841 "snapshot",
95895385
TL
17842 "snapshot-delete",
17843 "suspending",
17844 "suspended"
56122987 17845 ],
4d47f125 17846 "optional" : 1,
44660702
DM
17847 "type" : "string"
17848 },
4d47f125
TL
17849 "machine" : {
17850 "description" : "Specifies the Qemu machine type.",
17851 "maxLength" : 40,
17852 "optional" : 1,
5c1699e5 17853 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
17854 "type" : "string"
17855 },
17856 "memory" : {
17857 "default" : 512,
17858 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
17859 "minimum" : 16,
17860 "optional" : 1,
17861 "type" : "integer",
17862 "typetext" : "<integer> (16 - N)"
17863 },
17864 "migrate_downtime" : {
17865 "default" : 0.1,
17866 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
17867 "minimum" : 0,
17868 "optional" : 1,
17869 "type" : "number",
17870 "typetext" : "<number> (0 - N)"
17871 },
17872 "migrate_speed" : {
17873 "default" : 0,
17874 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
17875 "minimum" : 0,
17876 "optional" : 1,
17877 "type" : "integer",
17878 "typetext" : "<integer> (0 - N)"
17879 },
17880 "name" : {
17881 "description" : "Set a name for the VM. Only used on the configuration web interface.",
17882 "format" : "dns-name",
17883 "optional" : 1,
013dc89f
DM
17884 "type" : "string",
17885 "typetext" : "<string>"
56122987 17886 },
4d47f125 17887 "nameserver" : {
4772952b 17888 "description" : "cloud-init: Sets DNS server IP address for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
4d47f125 17889 "format" : "address-list",
7aacca6f 17890 "optional" : 1,
013dc89f
DM
17891 "type" : "string",
17892 "typetext" : "<string>"
7aacca6f 17893 },
4d47f125
TL
17894 "net[n]" : {
17895 "description" : "Specify network devices.",
17896 "format" : {
17897 "bridge" : {
17898 "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 17899 "format" : "pve-bridge-id",
4d47f125
TL
17900 "format_description" : "bridge",
17901 "optional" : 1,
17902 "type" : "string"
17903 },
17904 "e1000" : {
17905 "alias" : "macaddr",
17906 "keyAlias" : "model"
17907 },
17908 "e1000-82540em" : {
17909 "alias" : "macaddr",
17910 "keyAlias" : "model"
17911 },
17912 "e1000-82544gc" : {
17913 "alias" : "macaddr",
17914 "keyAlias" : "model"
17915 },
17916 "e1000-82545em" : {
17917 "alias" : "macaddr",
17918 "keyAlias" : "model"
17919 },
5370fa8c
TL
17920 "e1000e" : {
17921 "alias" : "macaddr",
17922 "keyAlias" : "model"
17923 },
4d47f125
TL
17924 "firewall" : {
17925 "description" : "Whether this interface should be protected by the firewall.",
17926 "optional" : 1,
17927 "type" : "boolean"
17928 },
17929 "i82551" : {
17930 "alias" : "macaddr",
17931 "keyAlias" : "model"
17932 },
17933 "i82557b" : {
17934 "alias" : "macaddr",
17935 "keyAlias" : "model"
17936 },
17937 "i82559er" : {
17938 "alias" : "macaddr",
17939 "keyAlias" : "model"
17940 },
17941 "link_down" : {
17942 "description" : "Whether this interface should be disconnected (like pulling the plug).",
17943 "optional" : 1,
17944 "type" : "boolean"
17945 },
17946 "macaddr" : {
17947 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 17948 "format" : "mac-addr",
4d47f125
TL
17949 "format_description" : "XX:XX:XX:XX:XX:XX",
17950 "optional" : 1,
95895385
TL
17951 "type" : "string",
17952 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
17953 },
17954 "model" : {
17955 "default_key" : 1,
17956 "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'.",
17957 "enum" : [
4d47f125 17958 "e1000",
5370fa8c
TL
17959 "e1000-82540em",
17960 "e1000-82544gc",
17961 "e1000-82545em",
17962 "e1000e",
4d47f125
TL
17963 "i82551",
17964 "i82557b",
17965 "i82559er",
5370fa8c
TL
17966 "ne2k_isa",
17967 "ne2k_pci",
17968 "pcnet",
17969 "rtl8139",
17970 "virtio",
17971 "vmxnet3"
4d47f125
TL
17972 ],
17973 "type" : "string"
17974 },
ac70d7d1
TL
17975 "mtu" : {
17976 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
17977 "maximum" : 65520,
17978 "minimum" : 1,
17979 "optional" : 1,
17980 "type" : "integer"
17981 },
4d47f125
TL
17982 "ne2k_isa" : {
17983 "alias" : "macaddr",
17984 "keyAlias" : "model"
17985 },
17986 "ne2k_pci" : {
17987 "alias" : "macaddr",
17988 "keyAlias" : "model"
17989 },
17990 "pcnet" : {
17991 "alias" : "macaddr",
17992 "keyAlias" : "model"
17993 },
17994 "queues" : {
17995 "description" : "Number of packet queues to be used on the device.",
17996 "maximum" : 16,
17997 "minimum" : 0,
17998 "optional" : 1,
17999 "type" : "integer"
18000 },
18001 "rate" : {
18002 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
18003 "minimum" : 0,
18004 "optional" : 1,
18005 "type" : "number"
18006 },
18007 "rtl8139" : {
18008 "alias" : "macaddr",
18009 "keyAlias" : "model"
18010 },
18011 "tag" : {
18012 "description" : "VLAN tag to apply to packets on this interface.",
18013 "maximum" : 4094,
18014 "minimum" : 1,
18015 "optional" : 1,
18016 "type" : "integer"
18017 },
18018 "trunks" : {
18019 "description" : "VLAN trunks to pass through this interface.",
18020 "format_description" : "vlanid[;vlanid...]",
18021 "optional" : 1,
18022 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
18023 "type" : "string"
18024 },
18025 "virtio" : {
18026 "alias" : "macaddr",
18027 "keyAlias" : "model"
18028 },
18029 "vmxnet3" : {
18030 "alias" : "macaddr",
18031 "keyAlias" : "model"
18032 }
44660702 18033 },
44660702 18034 "optional" : 1,
013dc89f 18035 "type" : "string",
ac70d7d1 18036 "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
18037 },
18038 "node" : {
18039 "description" : "The cluster node name.",
18040 "format" : "pve-node",
013dc89f
DM
18041 "type" : "string",
18042 "typetext" : "<string>"
7aacca6f 18043 },
4d47f125
TL
18044 "numa" : {
18045 "default" : 0,
18046 "description" : "Enable/disable NUMA.",
56122987 18047 "optional" : 1,
4d47f125
TL
18048 "type" : "boolean",
18049 "typetext" : "<boolean>"
56122987 18050 },
4d47f125
TL
18051 "numa[n]" : {
18052 "description" : "NUMA topology.",
18053 "format" : {
18054 "cpus" : {
18055 "description" : "CPUs accessing this NUMA node.",
18056 "format_description" : "id[-id];...",
18057 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
18058 "type" : "string"
18059 },
18060 "hostnodes" : {
18061 "description" : "Host NUMA nodes to use.",
18062 "format_description" : "id[-id];...",
18063 "optional" : 1,
18064 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
18065 "type" : "string"
18066 },
18067 "memory" : {
18068 "description" : "Amount of memory this NUMA node provides.",
18069 "optional" : 1,
18070 "type" : "number"
18071 },
18072 "policy" : {
18073 "description" : "NUMA allocation policy.",
18074 "enum" : [
18075 "preferred",
18076 "bind",
18077 "interleave"
18078 ],
18079 "optional" : 1,
18080 "type" : "string"
18081 }
18082 },
7aacca6f 18083 "optional" : 1,
013dc89f 18084 "type" : "string",
4d47f125 18085 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 18086 },
4d47f125 18087 "onboot" : {
44660702 18088 "default" : 0,
4d47f125 18089 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 18090 "optional" : 1,
013dc89f
DM
18091 "type" : "boolean",
18092 "typetext" : "<boolean>"
56122987 18093 },
4d47f125
TL
18094 "ostype" : {
18095 "description" : "Specify guest operating system.",
7aacca6f 18096 "enum" : [
4d47f125
TL
18097 "other",
18098 "wxp",
18099 "w2k",
18100 "w2k3",
18101 "w2k8",
18102 "wvista",
18103 "win7",
18104 "win8",
18105 "win10",
5370fa8c 18106 "win11",
4d47f125
TL
18107 "l24",
18108 "l26",
18109 "solaris"
7aacca6f
DM
18110 ],
18111 "optional" : 1,
013dc89f 18112 "type" : "string",
5370fa8c 18113 "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 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
44660702 18114 },
4d47f125
TL
18115 "parallel[n]" : {
18116 "description" : "Map host parallel devices (n is 0 to 2).",
18117 "optional" : 1,
18118 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
013dc89f 18119 "type" : "string",
4772952b 18120 "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 18121 },
4d47f125
TL
18122 "protection" : {
18123 "default" : 0,
18124 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
44660702 18125 "optional" : 1,
013dc89f
DM
18126 "type" : "boolean",
18127 "typetext" : "<boolean>"
44660702 18128 },
4d47f125
TL
18129 "reboot" : {
18130 "default" : 1,
18131 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
56122987 18132 "optional" : 1,
013dc89f
DM
18133 "type" : "boolean",
18134 "typetext" : "<boolean>"
56122987 18135 },
4d47f125
TL
18136 "revert" : {
18137 "description" : "Revert a pending change.",
18138 "format" : "pve-configid-list",
18139 "optional" : 1,
013dc89f
DM
18140 "type" : "string",
18141 "typetext" : "<string>"
56122987 18142 },
c5aa7e14
TL
18143 "rng0" : {
18144 "description" : "Configure a VirtIO-based Random Number Generator.",
18145 "format" : {
18146 "max_bytes" : {
18147 "default" : 1024,
5370fa8c 18148 "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
18149 "optional" : 1,
18150 "type" : "integer"
18151 },
18152 "period" : {
18153 "default" : 1000,
18154 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
18155 "optional" : 1,
18156 "type" : "integer"
18157 },
18158 "source" : {
18159 "default_key" : 1,
5370fa8c 18160 "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
18161 "enum" : [
18162 "/dev/urandom",
18163 "/dev/random",
18164 "/dev/hwrng"
18165 ],
18166 "type" : "string"
18167 }
18168 },
18169 "optional" : 1,
18170 "type" : "string",
18171 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
18172 },
4d47f125 18173 "sata[n]" : {
7af2edf9 18174 "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
18175 "format" : {
18176 "aio" : {
18177 "description" : "AIO type to use.",
18178 "enum" : [
18179 "native",
8f4d9c87
TL
18180 "threads",
18181 "io_uring"
4d47f125
TL
18182 ],
18183 "optional" : 1,
18184 "type" : "string"
18185 },
18186 "backup" : {
18187 "description" : "Whether the drive should be included when making backups.",
18188 "optional" : 1,
18189 "type" : "boolean"
18190 },
18191 "bps" : {
18192 "description" : "Maximum r/w speed in bytes per second.",
18193 "format_description" : "bps",
18194 "optional" : 1,
18195 "type" : "integer"
18196 },
18197 "bps_max_length" : {
18198 "description" : "Maximum length of I/O bursts in seconds.",
18199 "format_description" : "seconds",
18200 "minimum" : 1,
18201 "optional" : 1,
18202 "type" : "integer"
18203 },
18204 "bps_rd" : {
18205 "description" : "Maximum read speed in bytes per second.",
18206 "format_description" : "bps",
18207 "optional" : 1,
18208 "type" : "integer"
18209 },
18210 "bps_rd_length" : {
18211 "alias" : "bps_rd_max_length"
18212 },
18213 "bps_rd_max_length" : {
18214 "description" : "Maximum length of read I/O bursts in seconds.",
18215 "format_description" : "seconds",
18216 "minimum" : 1,
18217 "optional" : 1,
18218 "type" : "integer"
18219 },
18220 "bps_wr" : {
18221 "description" : "Maximum write speed in bytes per second.",
18222 "format_description" : "bps",
18223 "optional" : 1,
18224 "type" : "integer"
18225 },
18226 "bps_wr_length" : {
18227 "alias" : "bps_wr_max_length"
18228 },
18229 "bps_wr_max_length" : {
18230 "description" : "Maximum length of write I/O bursts in seconds.",
18231 "format_description" : "seconds",
18232 "minimum" : 1,
18233 "optional" : 1,
18234 "type" : "integer"
18235 },
18236 "cache" : {
18237 "description" : "The drive's cache mode",
18238 "enum" : [
18239 "none",
18240 "writethrough",
18241 "writeback",
18242 "unsafe",
18243 "directsync"
18244 ],
18245 "optional" : 1,
18246 "type" : "string"
18247 },
18248 "cyls" : {
18249 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
18250 "optional" : 1,
18251 "type" : "integer"
18252 },
18253 "detect_zeroes" : {
18254 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
18255 "optional" : 1,
18256 "type" : "boolean"
18257 },
18258 "discard" : {
18259 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
18260 "enum" : [
18261 "ignore",
18262 "on"
18263 ],
18264 "optional" : 1,
18265 "type" : "string"
18266 },
18267 "file" : {
18268 "default_key" : 1,
18269 "description" : "The drive's backing volume.",
18270 "format" : "pve-volume-id-or-qm-path",
18271 "format_description" : "volume",
18272 "type" : "string"
18273 },
18274 "format" : {
18275 "description" : "The drive's backing file's data format.",
18276 "enum" : [
18277 "raw",
18278 "cow",
18279 "qcow",
18280 "qed",
18281 "qcow2",
18282 "vmdk",
18283 "cloop"
18284 ],
18285 "optional" : 1,
18286 "type" : "string"
18287 },
18288 "heads" : {
18289 "description" : "Force the drive's physical geometry to have a specific head count.",
18290 "optional" : 1,
18291 "type" : "integer"
18292 },
7af2edf9
TL
18293 "import-from" : {
18294 "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!",
18295 "format" : "pve-volume-id-or-absolute-path",
18296 "format_description" : "source volume",
18297 "optional" : 1,
18298 "type" : "string"
18299 },
4d47f125
TL
18300 "iops" : {
18301 "description" : "Maximum r/w I/O in operations per second.",
18302 "format_description" : "iops",
18303 "optional" : 1,
18304 "type" : "integer"
18305 },
18306 "iops_max" : {
18307 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
18308 "format_description" : "iops",
18309 "optional" : 1,
18310 "type" : "integer"
18311 },
18312 "iops_max_length" : {
18313 "description" : "Maximum length of I/O bursts in seconds.",
18314 "format_description" : "seconds",
18315 "minimum" : 1,
18316 "optional" : 1,
18317 "type" : "integer"
18318 },
18319 "iops_rd" : {
18320 "description" : "Maximum read I/O in operations per second.",
18321 "format_description" : "iops",
18322 "optional" : 1,
18323 "type" : "integer"
18324 },
18325 "iops_rd_length" : {
18326 "alias" : "iops_rd_max_length"
18327 },
18328 "iops_rd_max" : {
18329 "description" : "Maximum unthrottled read I/O pool in operations per second.",
18330 "format_description" : "iops",
18331 "optional" : 1,
18332 "type" : "integer"
18333 },
18334 "iops_rd_max_length" : {
18335 "description" : "Maximum length of read I/O bursts in seconds.",
18336 "format_description" : "seconds",
18337 "minimum" : 1,
18338 "optional" : 1,
18339 "type" : "integer"
18340 },
18341 "iops_wr" : {
18342 "description" : "Maximum write I/O in operations per second.",
18343 "format_description" : "iops",
18344 "optional" : 1,
18345 "type" : "integer"
18346 },
18347 "iops_wr_length" : {
18348 "alias" : "iops_wr_max_length"
18349 },
18350 "iops_wr_max" : {
18351 "description" : "Maximum unthrottled write I/O pool in operations per second.",
18352 "format_description" : "iops",
18353 "optional" : 1,
18354 "type" : "integer"
18355 },
18356 "iops_wr_max_length" : {
18357 "description" : "Maximum length of write I/O bursts in seconds.",
18358 "format_description" : "seconds",
18359 "minimum" : 1,
18360 "optional" : 1,
18361 "type" : "integer"
18362 },
18363 "mbps" : {
18364 "description" : "Maximum r/w speed in megabytes per second.",
18365 "format_description" : "mbps",
18366 "optional" : 1,
18367 "type" : "number"
18368 },
18369 "mbps_max" : {
18370 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
18371 "format_description" : "mbps",
18372 "optional" : 1,
18373 "type" : "number"
18374 },
18375 "mbps_rd" : {
18376 "description" : "Maximum read speed in megabytes per second.",
18377 "format_description" : "mbps",
18378 "optional" : 1,
18379 "type" : "number"
18380 },
18381 "mbps_rd_max" : {
18382 "description" : "Maximum unthrottled read pool in megabytes per second.",
18383 "format_description" : "mbps",
18384 "optional" : 1,
18385 "type" : "number"
18386 },
18387 "mbps_wr" : {
18388 "description" : "Maximum write speed in megabytes per second.",
18389 "format_description" : "mbps",
18390 "optional" : 1,
18391 "type" : "number"
18392 },
18393 "mbps_wr_max" : {
18394 "description" : "Maximum unthrottled write pool in megabytes per second.",
18395 "format_description" : "mbps",
18396 "optional" : 1,
18397 "type" : "number"
18398 },
18399 "media" : {
18400 "default" : "disk",
18401 "description" : "The drive's media type.",
18402 "enum" : [
18403 "cdrom",
18404 "disk"
18405 ],
18406 "optional" : 1,
18407 "type" : "string"
18408 },
18409 "replicate" : {
18410 "default" : 1,
18411 "description" : "Whether the drive should considered for replication jobs.",
18412 "optional" : 1,
18413 "type" : "boolean"
18414 },
18415 "rerror" : {
18416 "description" : "Read error action.",
18417 "enum" : [
18418 "ignore",
18419 "report",
18420 "stop"
18421 ],
18422 "optional" : 1,
18423 "type" : "string"
18424 },
18425 "secs" : {
18426 "description" : "Force the drive's physical geometry to have a specific sector count.",
18427 "optional" : 1,
18428 "type" : "integer"
18429 },
18430 "serial" : {
18431 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18432 "format" : "urlencoded",
18433 "format_description" : "serial",
18434 "maxLength" : 60,
18435 "optional" : 1,
18436 "type" : "string"
18437 },
18438 "shared" : {
18439 "default" : 0,
18440 "description" : "Mark this locally-managed volume as available on all nodes",
18441 "optional" : 1,
18442 "type" : "boolean",
18443 "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!"
18444 },
18445 "size" : {
18446 "description" : "Disk size. This is purely informational and has no effect.",
18447 "format" : "disk-size",
18448 "format_description" : "DiskSize",
18449 "optional" : 1,
18450 "type" : "string"
18451 },
18452 "snapshot" : {
18453 "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.",
18454 "optional" : 1,
18455 "type" : "boolean"
18456 },
25203dc1
NC
18457 "ssd" : {
18458 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18459 "optional" : 1,
18460 "type" : "boolean"
18461 },
4d47f125
TL
18462 "trans" : {
18463 "description" : "Force disk geometry bios translation mode.",
18464 "enum" : [
18465 "none",
18466 "lba",
18467 "auto"
18468 ],
18469 "optional" : 1,
18470 "type" : "string"
18471 },
18472 "volume" : {
18473 "alias" : "file"
18474 },
18475 "werror" : {
18476 "description" : "Write error action.",
18477 "enum" : [
18478 "enospc",
18479 "ignore",
18480 "report",
18481 "stop"
18482 ],
18483 "optional" : 1,
18484 "type" : "string"
95895385
TL
18485 },
18486 "wwn" : {
18487 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
18488 "format_description" : "wwn",
18489 "optional" : 1,
18490 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
18491 "type" : "string"
4d47f125
TL
18492 }
18493 },
18494 "optional" : 1,
18495 "type" : "string",
7af2edf9 18496 "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
18497 },
18498 "scsi[n]" : {
7af2edf9 18499 "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
18500 "format" : {
18501 "aio" : {
18502 "description" : "AIO type to use.",
18503 "enum" : [
18504 "native",
8f4d9c87
TL
18505 "threads",
18506 "io_uring"
4d47f125
TL
18507 ],
18508 "optional" : 1,
18509 "type" : "string"
18510 },
18511 "backup" : {
18512 "description" : "Whether the drive should be included when making backups.",
18513 "optional" : 1,
18514 "type" : "boolean"
18515 },
18516 "bps" : {
18517 "description" : "Maximum r/w speed in bytes per second.",
18518 "format_description" : "bps",
18519 "optional" : 1,
18520 "type" : "integer"
18521 },
18522 "bps_max_length" : {
18523 "description" : "Maximum length of I/O bursts in seconds.",
18524 "format_description" : "seconds",
18525 "minimum" : 1,
18526 "optional" : 1,
18527 "type" : "integer"
18528 },
18529 "bps_rd" : {
18530 "description" : "Maximum read speed in bytes per second.",
18531 "format_description" : "bps",
18532 "optional" : 1,
18533 "type" : "integer"
18534 },
18535 "bps_rd_length" : {
18536 "alias" : "bps_rd_max_length"
18537 },
18538 "bps_rd_max_length" : {
18539 "description" : "Maximum length of read I/O bursts in seconds.",
18540 "format_description" : "seconds",
18541 "minimum" : 1,
18542 "optional" : 1,
18543 "type" : "integer"
18544 },
18545 "bps_wr" : {
18546 "description" : "Maximum write speed in bytes per second.",
18547 "format_description" : "bps",
18548 "optional" : 1,
18549 "type" : "integer"
18550 },
18551 "bps_wr_length" : {
18552 "alias" : "bps_wr_max_length"
18553 },
18554 "bps_wr_max_length" : {
18555 "description" : "Maximum length of write I/O bursts in seconds.",
18556 "format_description" : "seconds",
18557 "minimum" : 1,
18558 "optional" : 1,
18559 "type" : "integer"
18560 },
18561 "cache" : {
18562 "description" : "The drive's cache mode",
18563 "enum" : [
18564 "none",
18565 "writethrough",
18566 "writeback",
18567 "unsafe",
18568 "directsync"
18569 ],
18570 "optional" : 1,
18571 "type" : "string"
18572 },
18573 "cyls" : {
18574 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
18575 "optional" : 1,
18576 "type" : "integer"
18577 },
18578 "detect_zeroes" : {
18579 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
18580 "optional" : 1,
18581 "type" : "boolean"
18582 },
18583 "discard" : {
18584 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
18585 "enum" : [
18586 "ignore",
18587 "on"
18588 ],
18589 "optional" : 1,
18590 "type" : "string"
18591 },
18592 "file" : {
18593 "default_key" : 1,
18594 "description" : "The drive's backing volume.",
18595 "format" : "pve-volume-id-or-qm-path",
18596 "format_description" : "volume",
18597 "type" : "string"
18598 },
18599 "format" : {
18600 "description" : "The drive's backing file's data format.",
18601 "enum" : [
18602 "raw",
18603 "cow",
18604 "qcow",
18605 "qed",
18606 "qcow2",
18607 "vmdk",
18608 "cloop"
18609 ],
18610 "optional" : 1,
18611 "type" : "string"
18612 },
18613 "heads" : {
18614 "description" : "Force the drive's physical geometry to have a specific head count.",
18615 "optional" : 1,
18616 "type" : "integer"
18617 },
7af2edf9
TL
18618 "import-from" : {
18619 "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!",
18620 "format" : "pve-volume-id-or-absolute-path",
18621 "format_description" : "source volume",
18622 "optional" : 1,
18623 "type" : "string"
18624 },
4d47f125
TL
18625 "iops" : {
18626 "description" : "Maximum r/w I/O in operations per second.",
18627 "format_description" : "iops",
18628 "optional" : 1,
18629 "type" : "integer"
18630 },
18631 "iops_max" : {
18632 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
18633 "format_description" : "iops",
18634 "optional" : 1,
18635 "type" : "integer"
18636 },
18637 "iops_max_length" : {
18638 "description" : "Maximum length of I/O bursts in seconds.",
18639 "format_description" : "seconds",
18640 "minimum" : 1,
18641 "optional" : 1,
18642 "type" : "integer"
18643 },
18644 "iops_rd" : {
18645 "description" : "Maximum read I/O in operations per second.",
18646 "format_description" : "iops",
18647 "optional" : 1,
18648 "type" : "integer"
18649 },
18650 "iops_rd_length" : {
18651 "alias" : "iops_rd_max_length"
18652 },
18653 "iops_rd_max" : {
18654 "description" : "Maximum unthrottled read I/O pool in operations per second.",
18655 "format_description" : "iops",
18656 "optional" : 1,
18657 "type" : "integer"
18658 },
18659 "iops_rd_max_length" : {
18660 "description" : "Maximum length of read I/O bursts in seconds.",
18661 "format_description" : "seconds",
18662 "minimum" : 1,
18663 "optional" : 1,
18664 "type" : "integer"
18665 },
18666 "iops_wr" : {
18667 "description" : "Maximum write I/O in operations per second.",
18668 "format_description" : "iops",
18669 "optional" : 1,
18670 "type" : "integer"
18671 },
18672 "iops_wr_length" : {
18673 "alias" : "iops_wr_max_length"
18674 },
18675 "iops_wr_max" : {
18676 "description" : "Maximum unthrottled write I/O pool in operations per second.",
18677 "format_description" : "iops",
18678 "optional" : 1,
18679 "type" : "integer"
18680 },
18681 "iops_wr_max_length" : {
18682 "description" : "Maximum length of write I/O bursts in seconds.",
18683 "format_description" : "seconds",
18684 "minimum" : 1,
18685 "optional" : 1,
18686 "type" : "integer"
18687 },
18688 "iothread" : {
18689 "description" : "Whether to use iothreads for this drive",
18690 "optional" : 1,
18691 "type" : "boolean"
18692 },
18693 "mbps" : {
18694 "description" : "Maximum r/w speed in megabytes per second.",
18695 "format_description" : "mbps",
18696 "optional" : 1,
18697 "type" : "number"
18698 },
18699 "mbps_max" : {
18700 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
18701 "format_description" : "mbps",
18702 "optional" : 1,
18703 "type" : "number"
18704 },
18705 "mbps_rd" : {
18706 "description" : "Maximum read speed in megabytes per second.",
18707 "format_description" : "mbps",
18708 "optional" : 1,
18709 "type" : "number"
18710 },
18711 "mbps_rd_max" : {
18712 "description" : "Maximum unthrottled read pool in megabytes per second.",
18713 "format_description" : "mbps",
18714 "optional" : 1,
18715 "type" : "number"
18716 },
18717 "mbps_wr" : {
18718 "description" : "Maximum write speed in megabytes per second.",
18719 "format_description" : "mbps",
18720 "optional" : 1,
18721 "type" : "number"
18722 },
18723 "mbps_wr_max" : {
18724 "description" : "Maximum unthrottled write pool in megabytes per second.",
18725 "format_description" : "mbps",
18726 "optional" : 1,
18727 "type" : "number"
18728 },
18729 "media" : {
18730 "default" : "disk",
18731 "description" : "The drive's media type.",
18732 "enum" : [
18733 "cdrom",
18734 "disk"
18735 ],
18736 "optional" : 1,
18737 "type" : "string"
18738 },
18739 "queues" : {
18740 "description" : "Number of queues.",
18741 "minimum" : 2,
18742 "optional" : 1,
18743 "type" : "integer"
18744 },
18745 "replicate" : {
18746 "default" : 1,
18747 "description" : "Whether the drive should considered for replication jobs.",
18748 "optional" : 1,
18749 "type" : "boolean"
18750 },
18751 "rerror" : {
18752 "description" : "Read error action.",
18753 "enum" : [
18754 "ignore",
18755 "report",
18756 "stop"
18757 ],
18758 "optional" : 1,
18759 "type" : "string"
18760 },
5370fa8c
TL
18761 "ro" : {
18762 "description" : "Whether the drive is read-only.",
18763 "optional" : 1,
18764 "type" : "boolean"
18765 },
4d47f125
TL
18766 "scsiblock" : {
18767 "default" : 0,
18768 "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",
18769 "optional" : 1,
18770 "type" : "boolean"
18771 },
18772 "secs" : {
18773 "description" : "Force the drive's physical geometry to have a specific sector count.",
18774 "optional" : 1,
18775 "type" : "integer"
18776 },
18777 "serial" : {
18778 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18779 "format" : "urlencoded",
18780 "format_description" : "serial",
18781 "maxLength" : 60,
18782 "optional" : 1,
18783 "type" : "string"
18784 },
18785 "shared" : {
18786 "default" : 0,
18787 "description" : "Mark this locally-managed volume as available on all nodes",
18788 "optional" : 1,
18789 "type" : "boolean",
18790 "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!"
18791 },
18792 "size" : {
18793 "description" : "Disk size. This is purely informational and has no effect.",
18794 "format" : "disk-size",
18795 "format_description" : "DiskSize",
18796 "optional" : 1,
18797 "type" : "string"
18798 },
18799 "snapshot" : {
18800 "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.",
18801 "optional" : 1,
18802 "type" : "boolean"
18803 },
25203dc1
NC
18804 "ssd" : {
18805 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18806 "optional" : 1,
18807 "type" : "boolean"
18808 },
4d47f125
TL
18809 "trans" : {
18810 "description" : "Force disk geometry bios translation mode.",
18811 "enum" : [
18812 "none",
18813 "lba",
18814 "auto"
18815 ],
18816 "optional" : 1,
18817 "type" : "string"
18818 },
18819 "volume" : {
18820 "alias" : "file"
18821 },
18822 "werror" : {
18823 "description" : "Write error action.",
18824 "enum" : [
18825 "enospc",
18826 "ignore",
18827 "report",
18828 "stop"
18829 ],
18830 "optional" : 1,
18831 "type" : "string"
95895385
TL
18832 },
18833 "wwn" : {
18834 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
18835 "format_description" : "wwn",
18836 "optional" : 1,
18837 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
18838 "type" : "string"
4d47f125
TL
18839 }
18840 },
18841 "optional" : 1,
18842 "type" : "string",
7af2edf9 18843 "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
18844 },
18845 "scsihw" : {
18846 "default" : "lsi",
18847 "description" : "SCSI controller model",
18848 "enum" : [
18849 "lsi",
18850 "lsi53c810",
18851 "virtio-scsi-pci",
18852 "virtio-scsi-single",
18853 "megasas",
18854 "pvscsi"
18855 ],
18856 "optional" : 1,
18857 "type" : "string"
18858 },
18859 "searchdomain" : {
4772952b 18860 "description" : "cloud-init: Sets DNS search domains for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
4d47f125
TL
18861 "optional" : 1,
18862 "type" : "string",
18863 "typetext" : "<string>"
18864 },
18865 "serial[n]" : {
18866 "description" : "Create a serial device inside the VM (n is 0 to 3)",
18867 "optional" : 1,
18868 "pattern" : "(/dev/.+|socket)",
18869 "type" : "string",
4772952b 18870 "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
18871 },
18872 "shares" : {
18873 "default" : 1000,
18874 "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.",
18875 "maximum" : 50000,
18876 "minimum" : 0,
18877 "optional" : 1,
18878 "type" : "integer",
18879 "typetext" : "<integer> (0 - 50000)"
18880 },
18881 "skiplock" : {
18882 "description" : "Ignore locks - only root is allowed to use this option.",
18883 "optional" : 1,
18884 "type" : "boolean",
18885 "typetext" : "<boolean>"
18886 },
18887 "smbios1" : {
18888 "description" : "Specify SMBIOS type 1 fields.",
18889 "format" : "pve-qm-smbios1",
1e3f8156 18890 "maxLength" : 512,
4d47f125
TL
18891 "optional" : 1,
18892 "type" : "string",
1e3f8156 18893 "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
18894 },
18895 "smp" : {
18896 "default" : 1,
18897 "description" : "The number of CPUs. Please use option -sockets instead.",
18898 "minimum" : 1,
18899 "optional" : 1,
18900 "type" : "integer",
18901 "typetext" : "<integer> (1 - N)"
18902 },
18903 "sockets" : {
18904 "default" : 1,
18905 "description" : "The number of CPU sockets.",
18906 "minimum" : 1,
18907 "optional" : 1,
18908 "type" : "integer",
18909 "typetext" : "<integer> (1 - N)"
18910 },
1c532546
TL
18911 "spice_enhancements" : {
18912 "description" : "Configure additional enhancements for SPICE.",
18913 "format" : {
18914 "foldersharing" : {
18915 "default" : "0",
18916 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
18917 "optional" : 1,
18918 "type" : "boolean"
18919 },
18920 "videostreaming" : {
18921 "default" : "off",
18922 "description" : "Enable video streaming. Uses compression for detected video streams.",
18923 "enum" : [
18924 "off",
18925 "all",
18926 "filter"
18927 ],
18928 "optional" : 1,
18929 "type" : "string"
18930 }
18931 },
18932 "optional" : 1,
18933 "type" : "string",
18934 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
18935 },
4d47f125
TL
18936 "sshkeys" : {
18937 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
18938 "format" : "urlencoded",
18939 "optional" : 1,
18940 "type" : "string",
18941 "typetext" : "<string>"
18942 },
18943 "startdate" : {
18944 "default" : "now",
4772952b 18945 "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
18946 "optional" : 1,
18947 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
18948 "type" : "string",
18949 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
18950 },
18951 "startup" : {
18952 "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.",
18953 "format" : "pve-startup-order",
18954 "optional" : 1,
18955 "type" : "string",
18956 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
18957 },
18958 "tablet" : {
18959 "default" : 1,
18960 "description" : "Enable/disable the USB tablet device.",
18961 "optional" : 1,
18962 "type" : "boolean",
18963 "typetext" : "<boolean>",
4772952b 18964 "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 18965 },
5c1699e5
TL
18966 "tags" : {
18967 "description" : "Tags of the VM. This is only meta information.",
18968 "format" : "pve-tag-list",
18969 "optional" : 1,
18970 "type" : "string",
18971 "typetext" : "<string>"
18972 },
4d47f125
TL
18973 "tdf" : {
18974 "default" : 0,
18975 "description" : "Enable/disable time drift fix.",
18976 "optional" : 1,
18977 "type" : "boolean",
18978 "typetext" : "<boolean>"
18979 },
18980 "template" : {
18981 "default" : 0,
18982 "description" : "Enable/disable Template.",
18983 "optional" : 1,
18984 "type" : "boolean",
18985 "typetext" : "<boolean>"
18986 },
5370fa8c 18987 "tpmstate0" : {
7af2edf9 18988 "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
18989 "format" : {
18990 "file" : {
18991 "default_key" : 1,
18992 "description" : "The drive's backing volume.",
18993 "format" : "pve-volume-id-or-qm-path",
18994 "format_description" : "volume",
18995 "type" : "string"
18996 },
7af2edf9
TL
18997 "import-from" : {
18998 "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!",
18999 "format" : "pve-volume-id-or-absolute-path",
19000 "format_description" : "source volume",
19001 "optional" : 1,
19002 "type" : "string"
19003 },
5370fa8c
TL
19004 "size" : {
19005 "description" : "Disk size. This is purely informational and has no effect.",
19006 "format" : "disk-size",
19007 "format_description" : "DiskSize",
19008 "optional" : 1,
19009 "type" : "string"
19010 },
19011 "version" : {
19012 "default" : "v2.0",
19013 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
19014 "enum" : [
19015 "v1.2",
19016 "v2.0"
19017 ],
19018 "optional" : 1,
19019 "type" : "string"
19020 },
19021 "volume" : {
19022 "alias" : "file"
19023 }
19024 },
19025 "optional" : 1,
19026 "type" : "string",
7af2edf9 19027 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 19028 },
4d47f125
TL
19029 "unused[n]" : {
19030 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
19031 "format" : {
19032 "file" : {
19033 "default_key" : 1,
19034 "description" : "The drive's backing volume.",
19035 "format" : "pve-volume-id",
19036 "format_description" : "volume",
19037 "type" : "string"
19038 },
19039 "volume" : {
19040 "alias" : "file"
19041 }
19042 },
4d47f125
TL
19043 "optional" : 1,
19044 "type" : "string",
c5aa7e14 19045 "typetext" : "[file=]<volume>"
4d47f125
TL
19046 },
19047 "usb[n]" : {
19048 "description" : "Configure an USB device (n is 0 to 4).",
19049 "format" : {
19050 "host" : {
19051 "default_key" : 1,
4772952b 19052 "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",
4d47f125
TL
19053 "format" : "pve-qm-usb-device",
19054 "format_description" : "HOSTUSBDEVICE|spice",
19055 "type" : "string"
19056 },
19057 "usb3" : {
19058 "default" : 0,
1c532546 19059 "description" : "Specifies whether if given host option is a USB3 device or port.",
4d47f125
TL
19060 "optional" : 1,
19061 "type" : "boolean"
19062 }
19063 },
19064 "optional" : 1,
19065 "type" : "string",
19066 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
19067 },
19068 "vcpus" : {
19069 "default" : 0,
19070 "description" : "Number of hotplugged vcpus.",
19071 "minimum" : 1,
19072 "optional" : 1,
19073 "type" : "integer",
19074 "typetext" : "<integer> (1 - N)"
19075 },
19076 "vga" : {
e2d681b3
TL
19077 "description" : "Configure the VGA hardware.",
19078 "format" : {
19079 "memory" : {
19080 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
19081 "maximum" : 512,
19082 "minimum" : 4,
19083 "optional" : 1,
19084 "type" : "integer"
19085 },
19086 "type" : {
19087 "default" : "std",
19088 "default_key" : 1,
19089 "description" : "Select the VGA type.",
19090 "enum" : [
19091 "cirrus",
19092 "qxl",
19093 "qxl2",
19094 "qxl3",
19095 "qxl4",
5f26e15b 19096 "none",
e2d681b3
TL
19097 "serial0",
19098 "serial1",
19099 "serial2",
19100 "serial3",
19101 "std",
19102 "virtio",
7af2edf9 19103 "virtio-gl",
e2d681b3
TL
19104 "vmware"
19105 ],
19106 "optional" : 1,
19107 "type" : "string"
19108 }
19109 },
4d47f125
TL
19110 "optional" : 1,
19111 "type" : "string",
e2d681b3
TL
19112 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
19113 "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
19114 },
19115 "virtio[n]" : {
7af2edf9 19116 "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
19117 "format" : {
19118 "aio" : {
19119 "description" : "AIO type to use.",
19120 "enum" : [
19121 "native",
8f4d9c87
TL
19122 "threads",
19123 "io_uring"
4d47f125
TL
19124 ],
19125 "optional" : 1,
19126 "type" : "string"
19127 },
19128 "backup" : {
19129 "description" : "Whether the drive should be included when making backups.",
19130 "optional" : 1,
19131 "type" : "boolean"
19132 },
19133 "bps" : {
19134 "description" : "Maximum r/w speed in bytes per second.",
19135 "format_description" : "bps",
19136 "optional" : 1,
19137 "type" : "integer"
19138 },
19139 "bps_max_length" : {
19140 "description" : "Maximum length of I/O bursts in seconds.",
19141 "format_description" : "seconds",
19142 "minimum" : 1,
19143 "optional" : 1,
19144 "type" : "integer"
19145 },
19146 "bps_rd" : {
19147 "description" : "Maximum read speed in bytes per second.",
19148 "format_description" : "bps",
19149 "optional" : 1,
19150 "type" : "integer"
19151 },
19152 "bps_rd_length" : {
19153 "alias" : "bps_rd_max_length"
19154 },
19155 "bps_rd_max_length" : {
19156 "description" : "Maximum length of read I/O bursts in seconds.",
19157 "format_description" : "seconds",
19158 "minimum" : 1,
19159 "optional" : 1,
19160 "type" : "integer"
19161 },
19162 "bps_wr" : {
19163 "description" : "Maximum write speed in bytes per second.",
19164 "format_description" : "bps",
19165 "optional" : 1,
19166 "type" : "integer"
19167 },
19168 "bps_wr_length" : {
19169 "alias" : "bps_wr_max_length"
19170 },
19171 "bps_wr_max_length" : {
19172 "description" : "Maximum length of write I/O bursts in seconds.",
19173 "format_description" : "seconds",
19174 "minimum" : 1,
19175 "optional" : 1,
19176 "type" : "integer"
19177 },
19178 "cache" : {
19179 "description" : "The drive's cache mode",
19180 "enum" : [
19181 "none",
19182 "writethrough",
19183 "writeback",
19184 "unsafe",
19185 "directsync"
19186 ],
19187 "optional" : 1,
19188 "type" : "string"
19189 },
19190 "cyls" : {
19191 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
19192 "optional" : 1,
19193 "type" : "integer"
19194 },
19195 "detect_zeroes" : {
19196 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
19197 "optional" : 1,
19198 "type" : "boolean"
19199 },
19200 "discard" : {
19201 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
19202 "enum" : [
19203 "ignore",
19204 "on"
19205 ],
19206 "optional" : 1,
19207 "type" : "string"
19208 },
19209 "file" : {
19210 "default_key" : 1,
19211 "description" : "The drive's backing volume.",
19212 "format" : "pve-volume-id-or-qm-path",
19213 "format_description" : "volume",
19214 "type" : "string"
19215 },
19216 "format" : {
19217 "description" : "The drive's backing file's data format.",
19218 "enum" : [
19219 "raw",
19220 "cow",
19221 "qcow",
19222 "qed",
19223 "qcow2",
19224 "vmdk",
19225 "cloop"
19226 ],
19227 "optional" : 1,
19228 "type" : "string"
19229 },
19230 "heads" : {
19231 "description" : "Force the drive's physical geometry to have a specific head count.",
19232 "optional" : 1,
19233 "type" : "integer"
19234 },
7af2edf9
TL
19235 "import-from" : {
19236 "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!",
19237 "format" : "pve-volume-id-or-absolute-path",
19238 "format_description" : "source volume",
19239 "optional" : 1,
19240 "type" : "string"
19241 },
4d47f125
TL
19242 "iops" : {
19243 "description" : "Maximum r/w I/O in operations per second.",
19244 "format_description" : "iops",
19245 "optional" : 1,
19246 "type" : "integer"
19247 },
19248 "iops_max" : {
19249 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
19250 "format_description" : "iops",
19251 "optional" : 1,
19252 "type" : "integer"
19253 },
19254 "iops_max_length" : {
19255 "description" : "Maximum length of I/O bursts in seconds.",
19256 "format_description" : "seconds",
19257 "minimum" : 1,
19258 "optional" : 1,
19259 "type" : "integer"
19260 },
19261 "iops_rd" : {
19262 "description" : "Maximum read I/O in operations per second.",
19263 "format_description" : "iops",
19264 "optional" : 1,
19265 "type" : "integer"
19266 },
19267 "iops_rd_length" : {
19268 "alias" : "iops_rd_max_length"
19269 },
19270 "iops_rd_max" : {
19271 "description" : "Maximum unthrottled read I/O pool in operations per second.",
19272 "format_description" : "iops",
19273 "optional" : 1,
19274 "type" : "integer"
19275 },
19276 "iops_rd_max_length" : {
19277 "description" : "Maximum length of read I/O bursts in seconds.",
19278 "format_description" : "seconds",
19279 "minimum" : 1,
19280 "optional" : 1,
19281 "type" : "integer"
19282 },
19283 "iops_wr" : {
19284 "description" : "Maximum write I/O in operations per second.",
19285 "format_description" : "iops",
19286 "optional" : 1,
19287 "type" : "integer"
19288 },
19289 "iops_wr_length" : {
19290 "alias" : "iops_wr_max_length"
19291 },
19292 "iops_wr_max" : {
19293 "description" : "Maximum unthrottled write I/O pool in operations per second.",
19294 "format_description" : "iops",
19295 "optional" : 1,
19296 "type" : "integer"
19297 },
19298 "iops_wr_max_length" : {
19299 "description" : "Maximum length of write I/O bursts in seconds.",
19300 "format_description" : "seconds",
19301 "minimum" : 1,
19302 "optional" : 1,
19303 "type" : "integer"
19304 },
19305 "iothread" : {
19306 "description" : "Whether to use iothreads for this drive",
19307 "optional" : 1,
19308 "type" : "boolean"
19309 },
19310 "mbps" : {
19311 "description" : "Maximum r/w speed in megabytes per second.",
19312 "format_description" : "mbps",
19313 "optional" : 1,
19314 "type" : "number"
19315 },
19316 "mbps_max" : {
19317 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
19318 "format_description" : "mbps",
19319 "optional" : 1,
19320 "type" : "number"
19321 },
19322 "mbps_rd" : {
19323 "description" : "Maximum read speed in megabytes per second.",
19324 "format_description" : "mbps",
19325 "optional" : 1,
19326 "type" : "number"
19327 },
19328 "mbps_rd_max" : {
19329 "description" : "Maximum unthrottled read pool in megabytes per second.",
19330 "format_description" : "mbps",
19331 "optional" : 1,
19332 "type" : "number"
19333 },
19334 "mbps_wr" : {
19335 "description" : "Maximum write speed in megabytes per second.",
19336 "format_description" : "mbps",
19337 "optional" : 1,
19338 "type" : "number"
19339 },
19340 "mbps_wr_max" : {
19341 "description" : "Maximum unthrottled write pool in megabytes per second.",
19342 "format_description" : "mbps",
19343 "optional" : 1,
19344 "type" : "number"
19345 },
19346 "media" : {
19347 "default" : "disk",
19348 "description" : "The drive's media type.",
19349 "enum" : [
19350 "cdrom",
19351 "disk"
19352 ],
19353 "optional" : 1,
19354 "type" : "string"
19355 },
19356 "replicate" : {
19357 "default" : 1,
19358 "description" : "Whether the drive should considered for replication jobs.",
19359 "optional" : 1,
19360 "type" : "boolean"
19361 },
19362 "rerror" : {
19363 "description" : "Read error action.",
19364 "enum" : [
19365 "ignore",
19366 "report",
19367 "stop"
19368 ],
19369 "optional" : 1,
19370 "type" : "string"
19371 },
5370fa8c
TL
19372 "ro" : {
19373 "description" : "Whether the drive is read-only.",
19374 "optional" : 1,
19375 "type" : "boolean"
19376 },
4d47f125
TL
19377 "secs" : {
19378 "description" : "Force the drive's physical geometry to have a specific sector count.",
19379 "optional" : 1,
19380 "type" : "integer"
19381 },
19382 "serial" : {
19383 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
19384 "format" : "urlencoded",
19385 "format_description" : "serial",
19386 "maxLength" : 60,
19387 "optional" : 1,
19388 "type" : "string"
19389 },
19390 "shared" : {
19391 "default" : 0,
19392 "description" : "Mark this locally-managed volume as available on all nodes",
19393 "optional" : 1,
19394 "type" : "boolean",
19395 "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!"
19396 },
19397 "size" : {
19398 "description" : "Disk size. This is purely informational and has no effect.",
19399 "format" : "disk-size",
19400 "format_description" : "DiskSize",
19401 "optional" : 1,
19402 "type" : "string"
19403 },
19404 "snapshot" : {
19405 "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.",
19406 "optional" : 1,
19407 "type" : "boolean"
19408 },
19409 "trans" : {
19410 "description" : "Force disk geometry bios translation mode.",
19411 "enum" : [
19412 "none",
19413 "lba",
19414 "auto"
19415 ],
19416 "optional" : 1,
19417 "type" : "string"
19418 },
19419 "volume" : {
19420 "alias" : "file"
19421 },
19422 "werror" : {
19423 "description" : "Write error action.",
19424 "enum" : [
19425 "enospc",
19426 "ignore",
19427 "report",
19428 "stop"
19429 ],
19430 "optional" : 1,
19431 "type" : "string"
19432 }
19433 },
19434 "optional" : 1,
19435 "type" : "string",
7af2edf9 19436 "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
19437 },
19438 "vmgenid" : {
19439 "default" : "1 (autogenerated)",
19440 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
19441 "format_description" : "UUID",
19442 "optional" : 1,
19443 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
19444 "type" : "string",
4772952b 19445 "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
19446 },
19447 "vmid" : {
19448 "description" : "The (unique) ID of the VM.",
19449 "format" : "pve-vmid",
19450 "minimum" : 1,
19451 "type" : "integer",
19452 "typetext" : "<integer> (1 - N)"
19453 },
19454 "vmstatestorage" : {
19455 "description" : "Default storage for VM state volumes/files.",
19456 "format" : "pve-storage-id",
19457 "optional" : 1,
19458 "type" : "string",
19459 "typetext" : "<string>"
19460 },
19461 "watchdog" : {
19462 "description" : "Create a virtual hardware watchdog device.",
19463 "format" : "pve-qm-watchdog",
19464 "optional" : 1,
19465 "type" : "string",
19466 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
19467 "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)"
19468 }
19469 }
19470 },
19471 "permissions" : {
19472 "check" : [
19473 "perm",
19474 "/vms/{vmid}",
19475 [
19476 "VM.Config.Disk",
19477 "VM.Config.CDROM",
19478 "VM.Config.CPU",
19479 "VM.Config.Memory",
19480 "VM.Config.Network",
19481 "VM.Config.HWType",
ac70d7d1
TL
19482 "VM.Config.Options",
19483 "VM.Config.Cloudinit"
4d47f125
TL
19484 ],
19485 "any",
19486 1
19487 ]
19488 },
19489 "protected" : 1,
19490 "proxyto" : "node",
19491 "returns" : {
19492 "type" : "null"
19493 }
19494 }
19495 },
19496 "leaf" : 1,
19497 "path" : "/nodes/{node}/qemu/{vmid}/config",
19498 "text" : "config"
19499 },
19500 {
19501 "info" : {
19502 "GET" : {
e9cd3bd4
TL
19503 "allowtoken" : 1,
19504 "description" : "Get the virtual machine configuration with both current and pending values.",
4d47f125
TL
19505 "method" : "GET",
19506 "name" : "vm_pending",
19507 "parameters" : {
19508 "additionalProperties" : 0,
19509 "properties" : {
19510 "node" : {
19511 "description" : "The cluster node name.",
19512 "format" : "pve-node",
19513 "type" : "string",
19514 "typetext" : "<string>"
19515 },
19516 "vmid" : {
19517 "description" : "The (unique) ID of the VM.",
19518 "format" : "pve-vmid",
19519 "minimum" : 1,
19520 "type" : "integer",
19521 "typetext" : "<integer> (1 - N)"
19522 }
19523 }
19524 },
19525 "permissions" : {
19526 "check" : [
19527 "perm",
19528 "/vms/{vmid}",
19529 [
19530 "VM.Audit"
19531 ]
19532 ]
19533 },
19534 "proxyto" : "node",
19535 "returns" : {
19536 "items" : {
19537 "properties" : {
19538 "delete" : {
19539 "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
19540 "maximum" : 2,
19541 "minimum" : 0,
19542 "optional" : 1,
19543 "type" : "integer"
19544 },
19545 "key" : {
19546 "description" : "Configuration option name.",
19547 "type" : "string"
19548 },
19549 "pending" : {
19550 "description" : "Pending value.",
19551 "optional" : 1,
19552 "type" : "string"
19553 },
19554 "value" : {
19555 "description" : "Current value.",
19556 "optional" : 1,
19557 "type" : "string"
19558 }
19559 },
19560 "type" : "object"
19561 },
19562 "type" : "array"
19563 }
19564 }
19565 },
19566 "leaf" : 1,
19567 "path" : "/nodes/{node}/qemu/{vmid}/pending",
19568 "text" : "pending"
19569 },
19570 {
19571 "info" : {
19572 "PUT" : {
e9cd3bd4 19573 "allowtoken" : 1,
4d47f125
TL
19574 "description" : "Unlink/delete disk images.",
19575 "method" : "PUT",
19576 "name" : "unlink",
19577 "parameters" : {
19578 "additionalProperties" : 0,
19579 "properties" : {
19580 "force" : {
19581 "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.",
19582 "optional" : 1,
19583 "type" : "boolean",
19584 "typetext" : "<boolean>"
19585 },
19586 "idlist" : {
19587 "description" : "A list of disk IDs you want to delete.",
19588 "format" : "pve-configid-list",
19589 "type" : "string",
19590 "typetext" : "<string>"
19591 },
19592 "node" : {
19593 "description" : "The cluster node name.",
19594 "format" : "pve-node",
19595 "type" : "string",
19596 "typetext" : "<string>"
19597 },
19598 "vmid" : {
19599 "description" : "The (unique) ID of the VM.",
19600 "format" : "pve-vmid",
19601 "minimum" : 1,
19602 "type" : "integer",
19603 "typetext" : "<integer> (1 - N)"
19604 }
19605 }
19606 },
19607 "permissions" : {
19608 "check" : [
19609 "perm",
19610 "/vms/{vmid}",
19611 [
19612 "VM.Config.Disk"
19613 ]
19614 ]
19615 },
19616 "protected" : 1,
19617 "proxyto" : "node",
19618 "returns" : {
19619 "type" : "null"
19620 }
19621 }
19622 },
19623 "leaf" : 1,
19624 "path" : "/nodes/{node}/qemu/{vmid}/unlink",
19625 "text" : "unlink"
19626 },
19627 {
19628 "info" : {
19629 "POST" : {
e9cd3bd4 19630 "allowtoken" : 1,
4d47f125
TL
19631 "description" : "Creates a TCP VNC proxy connections.",
19632 "method" : "POST",
19633 "name" : "vncproxy",
19634 "parameters" : {
19635 "additionalProperties" : 0,
19636 "properties" : {
ac70d7d1
TL
19637 "generate-password" : {
19638 "default" : 0,
19639 "description" : "Generates a random password to be used as ticket instead of the API ticket.",
19640 "optional" : 1,
19641 "type" : "boolean",
19642 "typetext" : "<boolean>"
19643 },
4d47f125
TL
19644 "node" : {
19645 "description" : "The cluster node name.",
19646 "format" : "pve-node",
19647 "type" : "string",
19648 "typetext" : "<string>"
19649 },
19650 "vmid" : {
19651 "description" : "The (unique) ID of the VM.",
19652 "format" : "pve-vmid",
19653 "minimum" : 1,
19654 "type" : "integer",
19655 "typetext" : "<integer> (1 - N)"
19656 },
19657 "websocket" : {
19658 "description" : "starts websockify instead of vncproxy",
19659 "optional" : 1,
19660 "type" : "boolean",
19661 "typetext" : "<boolean>"
19662 }
19663 }
19664 },
19665 "permissions" : {
19666 "check" : [
19667 "perm",
19668 "/vms/{vmid}",
19669 [
19670 "VM.Console"
19671 ]
19672 ]
19673 },
19674 "protected" : 1,
19675 "returns" : {
19676 "additionalProperties" : 0,
19677 "properties" : {
19678 "cert" : {
19679 "type" : "string"
19680 },
ac70d7d1
TL
19681 "password" : {
19682 "description" : "Returned if requested with 'generate-password' param. Consists of printable ASCII characters ('!' .. '~').",
19683 "optional" : 1,
19684 "type" : "string"
19685 },
4d47f125
TL
19686 "port" : {
19687 "type" : "integer"
19688 },
19689 "ticket" : {
19690 "type" : "string"
19691 },
19692 "upid" : {
19693 "type" : "string"
19694 },
19695 "user" : {
19696 "type" : "string"
19697 }
19698 }
19699 }
19700 }
19701 },
19702 "leaf" : 1,
19703 "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
19704 "text" : "vncproxy"
19705 },
19706 {
19707 "info" : {
19708 "POST" : {
e9cd3bd4 19709 "allowtoken" : 1,
4d47f125
TL
19710 "description" : "Creates a TCP proxy connections.",
19711 "method" : "POST",
19712 "name" : "termproxy",
19713 "parameters" : {
19714 "additionalProperties" : 0,
19715 "properties" : {
19716 "node" : {
19717 "description" : "The cluster node name.",
19718 "format" : "pve-node",
19719 "type" : "string",
19720 "typetext" : "<string>"
19721 },
19722 "serial" : {
19723 "description" : "opens a serial terminal (defaults to display)",
19724 "enum" : [
19725 "serial0",
19726 "serial1",
19727 "serial2",
19728 "serial3"
19729 ],
19730 "optional" : 1,
19731 "type" : "string"
19732 },
19733 "vmid" : {
19734 "description" : "The (unique) ID of the VM.",
19735 "format" : "pve-vmid",
19736 "minimum" : 1,
19737 "type" : "integer",
19738 "typetext" : "<integer> (1 - N)"
19739 }
19740 }
19741 },
19742 "permissions" : {
19743 "check" : [
19744 "perm",
19745 "/vms/{vmid}",
19746 [
19747 "VM.Console"
19748 ]
19749 ]
19750 },
19751 "protected" : 1,
19752 "returns" : {
19753 "additionalProperties" : 0,
19754 "properties" : {
19755 "port" : {
19756 "type" : "integer"
19757 },
19758 "ticket" : {
19759 "type" : "string"
19760 },
19761 "upid" : {
19762 "type" : "string"
19763 },
19764 "user" : {
19765 "type" : "string"
19766 }
19767 }
19768 }
19769 }
19770 },
19771 "leaf" : 1,
19772 "path" : "/nodes/{node}/qemu/{vmid}/termproxy",
19773 "text" : "termproxy"
19774 },
19775 {
19776 "info" : {
19777 "GET" : {
e9cd3bd4 19778 "allowtoken" : 1,
4d47f125
TL
19779 "description" : "Opens a weksocket for VNC traffic.",
19780 "method" : "GET",
19781 "name" : "vncwebsocket",
19782 "parameters" : {
19783 "additionalProperties" : 0,
19784 "properties" : {
19785 "node" : {
19786 "description" : "The cluster node name.",
19787 "format" : "pve-node",
19788 "type" : "string",
19789 "typetext" : "<string>"
19790 },
19791 "port" : {
19792 "description" : "Port number returned by previous vncproxy call.",
19793 "maximum" : 5999,
19794 "minimum" : 5900,
19795 "type" : "integer",
19796 "typetext" : "<integer> (5900 - 5999)"
19797 },
19798 "vmid" : {
19799 "description" : "The (unique) ID of the VM.",
19800 "format" : "pve-vmid",
19801 "minimum" : 1,
19802 "type" : "integer",
19803 "typetext" : "<integer> (1 - N)"
19804 },
19805 "vncticket" : {
19806 "description" : "Ticket from previous call to vncproxy.",
19807 "maxLength" : 512,
19808 "type" : "string",
19809 "typetext" : "<string>"
19810 }
19811 }
19812 },
19813 "permissions" : {
19814 "check" : [
19815 "perm",
19816 "/vms/{vmid}",
19817 [
19818 "VM.Console"
19819 ]
19820 ],
19821 "description" : "You also need to pass a valid ticket (vncticket)."
19822 },
19823 "returns" : {
19824 "properties" : {
19825 "port" : {
19826 "type" : "string"
19827 }
19828 },
19829 "type" : "object"
19830 }
19831 }
19832 },
19833 "leaf" : 1,
19834 "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
19835 "text" : "vncwebsocket"
19836 },
19837 {
19838 "info" : {
19839 "POST" : {
e9cd3bd4 19840 "allowtoken" : 1,
4d47f125
TL
19841 "description" : "Returns a SPICE configuration to connect to the VM.",
19842 "method" : "POST",
19843 "name" : "spiceproxy",
19844 "parameters" : {
19845 "additionalProperties" : 0,
19846 "properties" : {
19847 "node" : {
19848 "description" : "The cluster node name.",
19849 "format" : "pve-node",
19850 "type" : "string",
19851 "typetext" : "<string>"
19852 },
19853 "proxy" : {
19854 "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).",
19855 "format" : "address",
19856 "optional" : 1,
19857 "type" : "string",
19858 "typetext" : "<string>"
19859 },
19860 "vmid" : {
19861 "description" : "The (unique) ID of the VM.",
19862 "format" : "pve-vmid",
19863 "minimum" : 1,
19864 "type" : "integer",
19865 "typetext" : "<integer> (1 - N)"
19866 }
19867 }
19868 },
19869 "permissions" : {
19870 "check" : [
19871 "perm",
19872 "/vms/{vmid}",
19873 [
19874 "VM.Console"
19875 ]
19876 ]
19877 },
19878 "protected" : 1,
19879 "proxyto" : "node",
19880 "returns" : {
19881 "additionalProperties" : 1,
19882 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
19883 "properties" : {
19884 "host" : {
19885 "type" : "string"
19886 },
19887 "password" : {
19888 "type" : "string"
19889 },
19890 "proxy" : {
19891 "type" : "string"
19892 },
19893 "tls-port" : {
19894 "type" : "integer"
19895 },
19896 "type" : {
19897 "type" : "string"
19898 }
19899 }
19900 }
19901 }
19902 },
19903 "leaf" : 1,
19904 "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
19905 "text" : "spiceproxy"
19906 },
19907 {
19908 "children" : [
19909 {
19910 "info" : {
19911 "GET" : {
e9cd3bd4 19912 "allowtoken" : 1,
4d47f125
TL
19913 "description" : "Get virtual machine status.",
19914 "method" : "GET",
19915 "name" : "vm_status",
19916 "parameters" : {
19917 "additionalProperties" : 0,
19918 "properties" : {
19919 "node" : {
19920 "description" : "The cluster node name.",
19921 "format" : "pve-node",
19922 "type" : "string",
19923 "typetext" : "<string>"
19924 },
19925 "vmid" : {
19926 "description" : "The (unique) ID of the VM.",
19927 "format" : "pve-vmid",
19928 "minimum" : 1,
19929 "type" : "integer",
19930 "typetext" : "<integer> (1 - N)"
19931 }
19932 }
19933 },
19934 "permissions" : {
19935 "check" : [
19936 "perm",
19937 "/vms/{vmid}",
19938 [
19939 "VM.Audit"
19940 ]
19941 ]
19942 },
19943 "protected" : 1,
19944 "proxyto" : "node",
19945 "returns" : {
19946 "properties" : {
19947 "agent" : {
19948 "description" : "Qemu GuestAgent enabled in config.",
19949 "optional" : 1,
19950 "type" : "boolean"
19951 },
19952 "cpus" : {
19953 "description" : "Maximum usable CPUs.",
19954 "optional" : 1,
19955 "type" : "number"
19956 },
19957 "ha" : {
19958 "description" : "HA manager service status.",
19959 "type" : "object"
19960 },
95895385
TL
19961 "lock" : {
19962 "description" : "The current config lock, if any.",
19963 "optional" : 1,
19964 "type" : "string"
19965 },
4d47f125
TL
19966 "maxdisk" : {
19967 "description" : "Root disk size in bytes.",
19968 "optional" : 1,
19969 "renderer" : "bytes",
19970 "type" : "integer"
19971 },
19972 "maxmem" : {
19973 "description" : "Maximum memory in bytes.",
19974 "optional" : 1,
19975 "renderer" : "bytes",
19976 "type" : "integer"
19977 },
19978 "name" : {
19979 "description" : "VM name.",
19980 "optional" : 1,
19981 "type" : "string"
19982 },
19983 "pid" : {
19984 "description" : "PID of running qemu process.",
19985 "optional" : 1,
19986 "type" : "integer"
19987 },
19988 "qmpstatus" : {
19989 "description" : "Qemu QMP agent status.",
19990 "optional" : 1,
19991 "type" : "string"
19992 },
d2656385
TL
19993 "running-machine" : {
19994 "description" : "The currently running machine type (if running).",
19995 "optional" : 1,
19996 "type" : "string"
19997 },
19998 "running-qemu" : {
19999 "description" : "The currently running QEMU version (if running).",
20000 "optional" : 1,
20001 "type" : "string"
20002 },
4d47f125
TL
20003 "spice" : {
20004 "description" : "Qemu VGA configuration supports spice.",
20005 "optional" : 1,
20006 "type" : "boolean"
20007 },
20008 "status" : {
20009 "description" : "Qemu process status.",
20010 "enum" : [
20011 "stopped",
20012 "running"
20013 ],
20014 "type" : "string"
20015 },
5c1699e5
TL
20016 "tags" : {
20017 "description" : "The current configured tags, if any",
20018 "optional" : 1,
20019 "type" : "string"
20020 },
4d47f125
TL
20021 "uptime" : {
20022 "description" : "Uptime.",
20023 "optional" : 1,
20024 "renderer" : "duration",
20025 "type" : "integer"
20026 },
20027 "vmid" : {
20028 "description" : "The (unique) ID of the VM.",
20029 "format" : "pve-vmid",
20030 "minimum" : 1,
20031 "type" : "integer"
20032 }
20033 },
20034 "type" : "object"
20035 }
20036 }
20037 },
20038 "leaf" : 1,
20039 "path" : "/nodes/{node}/qemu/{vmid}/status/current",
20040 "text" : "current"
20041 },
20042 {
20043 "info" : {
20044 "POST" : {
e9cd3bd4 20045 "allowtoken" : 1,
4d47f125
TL
20046 "description" : "Start virtual machine.",
20047 "method" : "POST",
20048 "name" : "vm_start",
20049 "parameters" : {
20050 "additionalProperties" : 0,
20051 "properties" : {
c5aa7e14
TL
20052 "force-cpu" : {
20053 "description" : "Override QEMU's -cpu argument with the given string.",
20054 "optional" : 1,
20055 "type" : "string",
20056 "typetext" : "<string>"
20057 },
4d47f125
TL
20058 "machine" : {
20059 "description" : "Specifies the Qemu machine type.",
20060 "maxLength" : 40,
20061 "optional" : 1,
5c1699e5 20062 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
20063 "type" : "string"
20064 },
20065 "migratedfrom" : {
20066 "description" : "The cluster node name.",
20067 "format" : "pve-node",
20068 "optional" : 1,
20069 "type" : "string",
20070 "typetext" : "<string>"
20071 },
20072 "migration_network" : {
20073 "description" : "CIDR of the (sub) network that is used for migration.",
20074 "format" : "CIDR",
20075 "optional" : 1,
20076 "type" : "string",
20077 "typetext" : "<string>"
20078 },
20079 "migration_type" : {
20080 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
20081 "enum" : [
20082 "secure",
20083 "insecure"
20084 ],
20085 "optional" : 1,
20086 "type" : "string"
20087 },
20088 "node" : {
20089 "description" : "The cluster node name.",
20090 "format" : "pve-node",
20091 "type" : "string",
20092 "typetext" : "<string>"
20093 },
20094 "skiplock" : {
20095 "description" : "Ignore locks - only root is allowed to use this option.",
20096 "optional" : 1,
20097 "type" : "boolean",
20098 "typetext" : "<boolean>"
20099 },
20100 "stateuri" : {
20101 "description" : "Some command save/restore state from this location.",
20102 "maxLength" : 128,
20103 "optional" : 1,
20104 "type" : "string",
20105 "typetext" : "<string>"
20106 },
20107 "targetstorage" : {
c5aa7e14 20108 "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 20109 "format" : "storage-pair-list",
4d47f125
TL
20110 "optional" : 1,
20111 "type" : "string",
20112 "typetext" : "<string>"
20113 },
e9cd3bd4
TL
20114 "timeout" : {
20115 "default" : "max(30, vm memory in GiB)",
20116 "description" : "Wait maximal timeout seconds.",
20117 "minimum" : 0,
20118 "optional" : 1,
20119 "type" : "integer",
20120 "typetext" : "<integer> (0 - N)"
20121 },
4d47f125
TL
20122 "vmid" : {
20123 "description" : "The (unique) ID of the VM.",
20124 "format" : "pve-vmid",
20125 "minimum" : 1,
20126 "type" : "integer",
20127 "typetext" : "<integer> (1 - N)"
20128 }
20129 }
20130 },
20131 "permissions" : {
20132 "check" : [
20133 "perm",
20134 "/vms/{vmid}",
20135 [
20136 "VM.PowerMgmt"
20137 ]
20138 ]
20139 },
20140 "protected" : 1,
20141 "proxyto" : "node",
20142 "returns" : {
20143 "type" : "string"
20144 }
20145 }
20146 },
20147 "leaf" : 1,
20148 "path" : "/nodes/{node}/qemu/{vmid}/status/start",
20149 "text" : "start"
20150 },
20151 {
20152 "info" : {
20153 "POST" : {
e9cd3bd4 20154 "allowtoken" : 1,
4d47f125
TL
20155 "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",
20156 "method" : "POST",
20157 "name" : "vm_stop",
20158 "parameters" : {
20159 "additionalProperties" : 0,
20160 "properties" : {
20161 "keepActive" : {
20162 "default" : 0,
20163 "description" : "Do not deactivate storage volumes.",
20164 "optional" : 1,
20165 "type" : "boolean",
20166 "typetext" : "<boolean>"
20167 },
20168 "migratedfrom" : {
20169 "description" : "The cluster node name.",
20170 "format" : "pve-node",
20171 "optional" : 1,
20172 "type" : "string",
20173 "typetext" : "<string>"
20174 },
20175 "node" : {
20176 "description" : "The cluster node name.",
20177 "format" : "pve-node",
20178 "type" : "string",
20179 "typetext" : "<string>"
20180 },
20181 "skiplock" : {
20182 "description" : "Ignore locks - only root is allowed to use this option.",
20183 "optional" : 1,
20184 "type" : "boolean",
20185 "typetext" : "<boolean>"
20186 },
20187 "timeout" : {
20188 "description" : "Wait maximal timeout seconds.",
20189 "minimum" : 0,
20190 "optional" : 1,
20191 "type" : "integer",
20192 "typetext" : "<integer> (0 - N)"
20193 },
20194 "vmid" : {
20195 "description" : "The (unique) ID of the VM.",
20196 "format" : "pve-vmid",
20197 "minimum" : 1,
20198 "type" : "integer",
20199 "typetext" : "<integer> (1 - N)"
20200 }
20201 }
20202 },
20203 "permissions" : {
20204 "check" : [
20205 "perm",
20206 "/vms/{vmid}",
20207 [
20208 "VM.PowerMgmt"
20209 ]
20210 ]
20211 },
20212 "protected" : 1,
20213 "proxyto" : "node",
20214 "returns" : {
20215 "type" : "string"
20216 }
20217 }
20218 },
20219 "leaf" : 1,
20220 "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
20221 "text" : "stop"
20222 },
20223 {
20224 "info" : {
20225 "POST" : {
e9cd3bd4 20226 "allowtoken" : 1,
4d47f125
TL
20227 "description" : "Reset virtual machine.",
20228 "method" : "POST",
20229 "name" : "vm_reset",
20230 "parameters" : {
20231 "additionalProperties" : 0,
20232 "properties" : {
20233 "node" : {
20234 "description" : "The cluster node name.",
20235 "format" : "pve-node",
20236 "type" : "string",
20237 "typetext" : "<string>"
20238 },
20239 "skiplock" : {
20240 "description" : "Ignore locks - only root is allowed to use this option.",
20241 "optional" : 1,
20242 "type" : "boolean",
20243 "typetext" : "<boolean>"
20244 },
20245 "vmid" : {
20246 "description" : "The (unique) ID of the VM.",
20247 "format" : "pve-vmid",
20248 "minimum" : 1,
20249 "type" : "integer",
20250 "typetext" : "<integer> (1 - N)"
20251 }
20252 }
20253 },
20254 "permissions" : {
20255 "check" : [
20256 "perm",
20257 "/vms/{vmid}",
20258 [
20259 "VM.PowerMgmt"
20260 ]
20261 ]
20262 },
20263 "protected" : 1,
20264 "proxyto" : "node",
20265 "returns" : {
20266 "type" : "string"
20267 }
20268 }
20269 },
20270 "leaf" : 1,
20271 "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
20272 "text" : "reset"
20273 },
20274 {
20275 "info" : {
20276 "POST" : {
e9cd3bd4 20277 "allowtoken" : 1,
4d47f125
TL
20278 "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.",
20279 "method" : "POST",
20280 "name" : "vm_shutdown",
20281 "parameters" : {
20282 "additionalProperties" : 0,
20283 "properties" : {
20284 "forceStop" : {
20285 "default" : 0,
20286 "description" : "Make sure the VM stops.",
20287 "optional" : 1,
20288 "type" : "boolean",
20289 "typetext" : "<boolean>"
20290 },
20291 "keepActive" : {
20292 "default" : 0,
20293 "description" : "Do not deactivate storage volumes.",
20294 "optional" : 1,
20295 "type" : "boolean",
20296 "typetext" : "<boolean>"
20297 },
20298 "node" : {
20299 "description" : "The cluster node name.",
20300 "format" : "pve-node",
20301 "type" : "string",
20302 "typetext" : "<string>"
20303 },
20304 "skiplock" : {
20305 "description" : "Ignore locks - only root is allowed to use this option.",
20306 "optional" : 1,
20307 "type" : "boolean",
20308 "typetext" : "<boolean>"
20309 },
20310 "timeout" : {
20311 "description" : "Wait maximal timeout seconds.",
20312 "minimum" : 0,
20313 "optional" : 1,
20314 "type" : "integer",
20315 "typetext" : "<integer> (0 - N)"
20316 },
20317 "vmid" : {
20318 "description" : "The (unique) ID of the VM.",
20319 "format" : "pve-vmid",
20320 "minimum" : 1,
20321 "type" : "integer",
20322 "typetext" : "<integer> (1 - N)"
20323 }
20324 }
20325 },
20326 "permissions" : {
20327 "check" : [
20328 "perm",
20329 "/vms/{vmid}",
20330 [
20331 "VM.PowerMgmt"
20332 ]
20333 ]
20334 },
20335 "protected" : 1,
20336 "proxyto" : "node",
20337 "returns" : {
20338 "type" : "string"
20339 }
20340 }
20341 },
20342 "leaf" : 1,
20343 "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
20344 "text" : "shutdown"
20345 },
1c532546
TL
20346 {
20347 "info" : {
20348 "POST" : {
e9cd3bd4 20349 "allowtoken" : 1,
1c532546
TL
20350 "description" : "Reboot the VM by shutting it down, and starting it again. Applies pending changes.",
20351 "method" : "POST",
20352 "name" : "vm_reboot",
20353 "parameters" : {
20354 "additionalProperties" : 0,
20355 "properties" : {
20356 "node" : {
20357 "description" : "The cluster node name.",
20358 "format" : "pve-node",
20359 "type" : "string",
20360 "typetext" : "<string>"
20361 },
20362 "timeout" : {
20363 "description" : "Wait maximal timeout seconds for the shutdown.",
20364 "minimum" : 0,
20365 "optional" : 1,
20366 "type" : "integer",
20367 "typetext" : "<integer> (0 - N)"
20368 },
20369 "vmid" : {
20370 "description" : "The (unique) ID of the VM.",
20371 "format" : "pve-vmid",
20372 "minimum" : 1,
20373 "type" : "integer",
20374 "typetext" : "<integer> (1 - N)"
20375 }
20376 }
20377 },
20378 "permissions" : {
20379 "check" : [
20380 "perm",
20381 "/vms/{vmid}",
20382 [
20383 "VM.PowerMgmt"
20384 ]
20385 ]
20386 },
20387 "protected" : 1,
20388 "proxyto" : "node",
20389 "returns" : {
20390 "type" : "string"
20391 }
20392 }
20393 },
20394 "leaf" : 1,
20395 "path" : "/nodes/{node}/qemu/{vmid}/status/reboot",
20396 "text" : "reboot"
20397 },
4d47f125
TL
20398 {
20399 "info" : {
20400 "POST" : {
e9cd3bd4 20401 "allowtoken" : 1,
4d47f125
TL
20402 "description" : "Suspend virtual machine.",
20403 "method" : "POST",
20404 "name" : "vm_suspend",
20405 "parameters" : {
20406 "additionalProperties" : 0,
20407 "properties" : {
20408 "node" : {
20409 "description" : "The cluster node name.",
20410 "format" : "pve-node",
20411 "type" : "string",
20412 "typetext" : "<string>"
20413 },
20414 "skiplock" : {
20415 "description" : "Ignore locks - only root is allowed to use this option.",
20416 "optional" : 1,
20417 "type" : "boolean",
20418 "typetext" : "<boolean>"
20419 },
95895385
TL
20420 "statestorage" : {
20421 "description" : "The storage for the VM state",
20422 "format" : "pve-storage-id",
20423 "optional" : 1,
20424 "requires" : "todisk",
20425 "type" : "string",
20426 "typetext" : "<string>"
20427 },
20428 "todisk" : {
20429 "default" : 0,
20430 "description" : "If set, suspends the VM to disk. Will be resumed on next VM start.",
20431 "optional" : 1,
20432 "type" : "boolean",
20433 "typetext" : "<boolean>"
20434 },
4d47f125
TL
20435 "vmid" : {
20436 "description" : "The (unique) ID of the VM.",
20437 "format" : "pve-vmid",
20438 "minimum" : 1,
20439 "type" : "integer",
20440 "typetext" : "<integer> (1 - N)"
20441 }
20442 }
20443 },
20444 "permissions" : {
20445 "check" : [
20446 "perm",
20447 "/vms/{vmid}",
20448 [
20449 "VM.PowerMgmt"
20450 ]
e9cd3bd4
TL
20451 ],
20452 "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
20453 },
20454 "protected" : 1,
20455 "proxyto" : "node",
20456 "returns" : {
20457 "type" : "string"
20458 }
20459 }
20460 },
20461 "leaf" : 1,
20462 "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
20463 "text" : "suspend"
20464 },
20465 {
20466 "info" : {
20467 "POST" : {
e9cd3bd4 20468 "allowtoken" : 1,
4d47f125
TL
20469 "description" : "Resume virtual machine.",
20470 "method" : "POST",
20471 "name" : "vm_resume",
20472 "parameters" : {
20473 "additionalProperties" : 0,
20474 "properties" : {
20475 "nocheck" : {
20476 "optional" : 1,
20477 "type" : "boolean",
20478 "typetext" : "<boolean>"
20479 },
20480 "node" : {
20481 "description" : "The cluster node name.",
20482 "format" : "pve-node",
20483 "type" : "string",
20484 "typetext" : "<string>"
20485 },
20486 "skiplock" : {
20487 "description" : "Ignore locks - only root is allowed to use this option.",
20488 "optional" : 1,
20489 "type" : "boolean",
20490 "typetext" : "<boolean>"
20491 },
20492 "vmid" : {
20493 "description" : "The (unique) ID of the VM.",
20494 "format" : "pve-vmid",
20495 "minimum" : 1,
20496 "type" : "integer",
20497 "typetext" : "<integer> (1 - N)"
20498 }
20499 }
20500 },
20501 "permissions" : {
20502 "check" : [
20503 "perm",
20504 "/vms/{vmid}",
20505 [
20506 "VM.PowerMgmt"
20507 ]
20508 ]
20509 },
20510 "protected" : 1,
20511 "proxyto" : "node",
20512 "returns" : {
20513 "type" : "string"
20514 }
20515 }
20516 },
20517 "leaf" : 1,
20518 "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
20519 "text" : "resume"
20520 }
20521 ],
20522 "info" : {
20523 "GET" : {
e9cd3bd4 20524 "allowtoken" : 1,
4d47f125
TL
20525 "description" : "Directory index",
20526 "method" : "GET",
20527 "name" : "vmcmdidx",
20528 "parameters" : {
20529 "additionalProperties" : 0,
20530 "properties" : {
20531 "node" : {
20532 "description" : "The cluster node name.",
20533 "format" : "pve-node",
20534 "type" : "string",
20535 "typetext" : "<string>"
20536 },
20537 "vmid" : {
20538 "description" : "The (unique) ID of the VM.",
20539 "format" : "pve-vmid",
20540 "minimum" : 1,
20541 "type" : "integer",
20542 "typetext" : "<integer> (1 - N)"
20543 }
20544 }
20545 },
20546 "permissions" : {
20547 "user" : "all"
20548 },
20549 "proxyto" : "node",
20550 "returns" : {
20551 "items" : {
20552 "properties" : {
20553 "subdir" : {
20554 "type" : "string"
20555 }
20556 },
20557 "type" : "object"
20558 },
20559 "links" : [
20560 {
20561 "href" : "{subdir}",
20562 "rel" : "child"
20563 }
20564 ],
20565 "type" : "array"
20566 }
20567 }
20568 },
20569 "leaf" : 0,
20570 "path" : "/nodes/{node}/qemu/{vmid}/status",
20571 "text" : "status"
20572 },
20573 {
20574 "info" : {
20575 "PUT" : {
e9cd3bd4 20576 "allowtoken" : 1,
4d47f125
TL
20577 "description" : "Send key event to virtual machine.",
20578 "method" : "PUT",
20579 "name" : "vm_sendkey",
20580 "parameters" : {
20581 "additionalProperties" : 0,
20582 "properties" : {
20583 "key" : {
20584 "description" : "The key (qemu monitor encoding).",
20585 "type" : "string",
20586 "typetext" : "<string>"
20587 },
20588 "node" : {
20589 "description" : "The cluster node name.",
20590 "format" : "pve-node",
20591 "type" : "string",
20592 "typetext" : "<string>"
20593 },
20594 "skiplock" : {
20595 "description" : "Ignore locks - only root is allowed to use this option.",
20596 "optional" : 1,
20597 "type" : "boolean",
20598 "typetext" : "<boolean>"
20599 },
20600 "vmid" : {
20601 "description" : "The (unique) ID of the VM.",
20602 "format" : "pve-vmid",
20603 "minimum" : 1,
20604 "type" : "integer",
20605 "typetext" : "<integer> (1 - N)"
20606 }
20607 }
20608 },
20609 "permissions" : {
20610 "check" : [
20611 "perm",
20612 "/vms/{vmid}",
20613 [
20614 "VM.Console"
20615 ]
20616 ]
20617 },
20618 "protected" : 1,
20619 "proxyto" : "node",
20620 "returns" : {
20621 "type" : "null"
20622 }
20623 }
20624 },
20625 "leaf" : 1,
20626 "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
20627 "text" : "sendkey"
20628 },
20629 {
20630 "info" : {
20631 "GET" : {
e9cd3bd4 20632 "allowtoken" : 1,
4d47f125
TL
20633 "description" : "Check if feature for virtual machine is available.",
20634 "method" : "GET",
20635 "name" : "vm_feature",
20636 "parameters" : {
20637 "additionalProperties" : 0,
20638 "properties" : {
20639 "feature" : {
20640 "description" : "Feature to check.",
20641 "enum" : [
20642 "snapshot",
20643 "clone",
20644 "copy"
20645 ],
20646 "type" : "string"
20647 },
20648 "node" : {
20649 "description" : "The cluster node name.",
20650 "format" : "pve-node",
20651 "type" : "string",
20652 "typetext" : "<string>"
20653 },
20654 "snapname" : {
20655 "description" : "The name of the snapshot.",
20656 "format" : "pve-configid",
20657 "maxLength" : 40,
20658 "optional" : 1,
20659 "type" : "string",
20660 "typetext" : "<string>"
20661 },
20662 "vmid" : {
20663 "description" : "The (unique) ID of the VM.",
20664 "format" : "pve-vmid",
20665 "minimum" : 1,
20666 "type" : "integer",
20667 "typetext" : "<integer> (1 - N)"
20668 }
20669 }
20670 },
20671 "permissions" : {
20672 "check" : [
20673 "perm",
20674 "/vms/{vmid}",
20675 [
20676 "VM.Audit"
20677 ]
20678 ]
20679 },
20680 "protected" : 1,
20681 "proxyto" : "node",
20682 "returns" : {
20683 "properties" : {
20684 "hasFeature" : {
20685 "type" : "boolean"
20686 },
20687 "nodes" : {
20688 "items" : {
20689 "type" : "string"
20690 },
20691 "type" : "array"
20692 }
20693 },
20694 "type" : "object"
20695 }
20696 }
20697 },
20698 "leaf" : 1,
20699 "path" : "/nodes/{node}/qemu/{vmid}/feature",
20700 "text" : "feature"
20701 },
20702 {
20703 "info" : {
20704 "POST" : {
e9cd3bd4 20705 "allowtoken" : 1,
4d47f125
TL
20706 "description" : "Create a copy of virtual machine/template.",
20707 "method" : "POST",
20708 "name" : "clone_vm",
20709 "parameters" : {
20710 "additionalProperties" : 0,
20711 "properties" : {
95895385
TL
20712 "bwlimit" : {
20713 "default" : "clone limit from datacenter or storage config",
20714 "description" : "Override I/O bandwidth limit (in KiB/s).",
20715 "minimum" : "0",
20716 "optional" : 1,
20717 "type" : "integer",
20718 "typetext" : "<integer> (0 - N)"
20719 },
4d47f125
TL
20720 "description" : {
20721 "description" : "Description for the new VM.",
20722 "optional" : 1,
20723 "type" : "string",
20724 "typetext" : "<string>"
20725 },
20726 "format" : {
20727 "description" : "Target format for file storage. Only valid for full clone.",
20728 "enum" : [
20729 "raw",
20730 "qcow2",
20731 "vmdk"
20732 ],
20733 "optional" : 1,
20734 "type" : "string"
20735 },
20736 "full" : {
20737 "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.",
20738 "optional" : 1,
20739 "type" : "boolean",
20740 "typetext" : "<boolean>"
20741 },
20742 "name" : {
20743 "description" : "Set a name for the new VM.",
20744 "format" : "dns-name",
20745 "optional" : 1,
20746 "type" : "string",
20747 "typetext" : "<string>"
20748 },
20749 "newid" : {
20750 "description" : "VMID for the clone.",
20751 "format" : "pve-vmid",
20752 "minimum" : 1,
20753 "type" : "integer",
20754 "typetext" : "<integer> (1 - N)"
20755 },
20756 "node" : {
20757 "description" : "The cluster node name.",
20758 "format" : "pve-node",
20759 "type" : "string",
20760 "typetext" : "<string>"
20761 },
20762 "pool" : {
20763 "description" : "Add the new VM to the specified pool.",
20764 "format" : "pve-poolid",
20765 "optional" : 1,
20766 "type" : "string",
20767 "typetext" : "<string>"
20768 },
20769 "snapname" : {
20770 "description" : "The name of the snapshot.",
20771 "format" : "pve-configid",
20772 "maxLength" : 40,
20773 "optional" : 1,
20774 "type" : "string",
20775 "typetext" : "<string>"
20776 },
20777 "storage" : {
20778 "description" : "Target storage for full clone.",
20779 "format" : "pve-storage-id",
20780 "optional" : 1,
20781 "type" : "string",
20782 "typetext" : "<string>"
20783 },
20784 "target" : {
20785 "description" : "Target node. Only allowed if the original VM is on shared storage.",
20786 "format" : "pve-node",
20787 "optional" : 1,
20788 "type" : "string",
20789 "typetext" : "<string>"
20790 },
20791 "vmid" : {
20792 "description" : "The (unique) ID of the VM.",
20793 "format" : "pve-vmid",
20794 "minimum" : 1,
20795 "type" : "integer",
20796 "typetext" : "<integer> (1 - N)"
20797 }
20798 }
20799 },
20800 "permissions" : {
20801 "check" : [
20802 "and",
20803 [
20804 "perm",
20805 "/vms/{vmid}",
20806 [
20807 "VM.Clone"
20808 ]
20809 ],
20810 [
20811 "or",
20812 [
20813 "perm",
20814 "/vms/{newid}",
20815 [
20816 "VM.Allocate"
20817 ]
20818 ],
20819 [
20820 "perm",
20821 "/pool/{pool}",
20822 [
20823 "VM.Allocate"
20824 ],
20825 "require_param",
20826 "pool"
20827 ]
20828 ]
20829 ],
20830 "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."
20831 },
20832 "protected" : 1,
20833 "proxyto" : "node",
20834 "returns" : {
20835 "type" : "string"
20836 }
20837 }
20838 },
20839 "leaf" : 1,
20840 "path" : "/nodes/{node}/qemu/{vmid}/clone",
20841 "text" : "clone"
20842 },
20843 {
20844 "info" : {
20845 "POST" : {
e9cd3bd4 20846 "allowtoken" : 1,
5370fa8c 20847 "description" : "Move volume to different storage or to a different VM.",
4d47f125
TL
20848 "method" : "POST",
20849 "name" : "move_vm_disk",
20850 "parameters" : {
20851 "additionalProperties" : 0,
20852 "properties" : {
95895385
TL
20853 "bwlimit" : {
20854 "default" : "move limit from datacenter or storage config",
20855 "description" : "Override I/O bandwidth limit (in KiB/s).",
20856 "minimum" : "0",
20857 "optional" : 1,
20858 "type" : "integer",
20859 "typetext" : "<integer> (0 - N)"
20860 },
4d47f125
TL
20861 "delete" : {
20862 "default" : 0,
20863 "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
20864 "optional" : 1,
20865 "type" : "boolean",
20866 "typetext" : "<boolean>"
20867 },
20868 "digest" : {
5370fa8c 20869 "description" : "Prevent changes if current configuration file has different SHA1\"\n\t\t .\" digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
20870 "maxLength" : 40,
20871 "optional" : 1,
20872 "type" : "string",
20873 "typetext" : "<string>"
20874 },
20875 "disk" : {
20876 "description" : "The disk you want to move.",
20877 "enum" : [
20878 "ide0",
20879 "ide1",
20880 "ide2",
20881 "ide3",
20882 "scsi0",
20883 "scsi1",
20884 "scsi2",
20885 "scsi3",
20886 "scsi4",
20887 "scsi5",
20888 "scsi6",
20889 "scsi7",
20890 "scsi8",
20891 "scsi9",
20892 "scsi10",
20893 "scsi11",
20894 "scsi12",
20895 "scsi13",
e9cd3bd4
TL
20896 "scsi14",
20897 "scsi15",
20898 "scsi16",
20899 "scsi17",
20900 "scsi18",
20901 "scsi19",
20902 "scsi20",
20903 "scsi21",
20904 "scsi22",
20905 "scsi23",
20906 "scsi24",
20907 "scsi25",
20908 "scsi26",
20909 "scsi27",
20910 "scsi28",
20911 "scsi29",
20912 "scsi30",
4d47f125
TL
20913 "virtio0",
20914 "virtio1",
20915 "virtio2",
20916 "virtio3",
20917 "virtio4",
20918 "virtio5",
20919 "virtio6",
20920 "virtio7",
20921 "virtio8",
20922 "virtio9",
20923 "virtio10",
20924 "virtio11",
20925 "virtio12",
20926 "virtio13",
20927 "virtio14",
20928 "virtio15",
20929 "sata0",
20930 "sata1",
20931 "sata2",
20932 "sata3",
20933 "sata4",
20934 "sata5",
5370fa8c
TL
20935 "efidisk0",
20936 "tpmstate0",
20937 "unused0",
20938 "unused1",
20939 "unused2",
20940 "unused3",
20941 "unused4",
20942 "unused5",
20943 "unused6",
20944 "unused7",
20945 "unused8",
20946 "unused9",
20947 "unused10",
20948 "unused11",
20949 "unused12",
20950 "unused13",
20951 "unused14",
20952 "unused15",
20953 "unused16",
20954 "unused17",
20955 "unused18",
20956 "unused19",
20957 "unused20",
20958 "unused21",
20959 "unused22",
20960 "unused23",
20961 "unused24",
20962 "unused25",
20963 "unused26",
20964 "unused27",
20965 "unused28",
20966 "unused29",
20967 "unused30",
20968 "unused31",
20969 "unused32",
20970 "unused33",
20971 "unused34",
20972 "unused35",
20973 "unused36",
20974 "unused37",
20975 "unused38",
20976 "unused39",
20977 "unused40",
20978 "unused41",
20979 "unused42",
20980 "unused43",
20981 "unused44",
20982 "unused45",
20983 "unused46",
20984 "unused47",
20985 "unused48",
20986 "unused49",
20987 "unused50",
20988 "unused51",
20989 "unused52",
20990 "unused53",
20991 "unused54",
20992 "unused55",
20993 "unused56",
20994 "unused57",
20995 "unused58",
20996 "unused59",
20997 "unused60",
20998 "unused61",
20999 "unused62",
21000 "unused63",
21001 "unused64",
21002 "unused65",
21003 "unused66",
21004 "unused67",
21005 "unused68",
21006 "unused69",
21007 "unused70",
21008 "unused71",
21009 "unused72",
21010 "unused73",
21011 "unused74",
21012 "unused75",
21013 "unused76",
21014 "unused77",
21015 "unused78",
21016 "unused79",
21017 "unused80",
21018 "unused81",
21019 "unused82",
21020 "unused83",
21021 "unused84",
21022 "unused85",
21023 "unused86",
21024 "unused87",
21025 "unused88",
21026 "unused89",
21027 "unused90",
21028 "unused91",
21029 "unused92",
21030 "unused93",
21031 "unused94",
21032 "unused95",
21033 "unused96",
21034 "unused97",
21035 "unused98",
21036 "unused99",
21037 "unused100",
21038 "unused101",
21039 "unused102",
21040 "unused103",
21041 "unused104",
21042 "unused105",
21043 "unused106",
21044 "unused107",
21045 "unused108",
21046 "unused109",
21047 "unused110",
21048 "unused111",
21049 "unused112",
21050 "unused113",
21051 "unused114",
21052 "unused115",
21053 "unused116",
21054 "unused117",
21055 "unused118",
21056 "unused119",
21057 "unused120",
21058 "unused121",
21059 "unused122",
21060 "unused123",
21061 "unused124",
21062 "unused125",
21063 "unused126",
21064 "unused127",
21065 "unused128",
21066 "unused129",
21067 "unused130",
21068 "unused131",
21069 "unused132",
21070 "unused133",
21071 "unused134",
21072 "unused135",
21073 "unused136",
21074 "unused137",
21075 "unused138",
21076 "unused139",
21077 "unused140",
21078 "unused141",
21079 "unused142",
21080 "unused143",
21081 "unused144",
21082 "unused145",
21083 "unused146",
21084 "unused147",
21085 "unused148",
21086 "unused149",
21087 "unused150",
21088 "unused151",
21089 "unused152",
21090 "unused153",
21091 "unused154",
21092 "unused155",
21093 "unused156",
21094 "unused157",
21095 "unused158",
21096 "unused159",
21097 "unused160",
21098 "unused161",
21099 "unused162",
21100 "unused163",
21101 "unused164",
21102 "unused165",
21103 "unused166",
21104 "unused167",
21105 "unused168",
21106 "unused169",
21107 "unused170",
21108 "unused171",
21109 "unused172",
21110 "unused173",
21111 "unused174",
21112 "unused175",
21113 "unused176",
21114 "unused177",
21115 "unused178",
21116 "unused179",
21117 "unused180",
21118 "unused181",
21119 "unused182",
21120 "unused183",
21121 "unused184",
21122 "unused185",
21123 "unused186",
21124 "unused187",
21125 "unused188",
21126 "unused189",
21127 "unused190",
21128 "unused191",
21129 "unused192",
21130 "unused193",
21131 "unused194",
21132 "unused195",
21133 "unused196",
21134 "unused197",
21135 "unused198",
21136 "unused199",
21137 "unused200",
21138 "unused201",
21139 "unused202",
21140 "unused203",
21141 "unused204",
21142 "unused205",
21143 "unused206",
21144 "unused207",
21145 "unused208",
21146 "unused209",
21147 "unused210",
21148 "unused211",
21149 "unused212",
21150 "unused213",
21151 "unused214",
21152 "unused215",
21153 "unused216",
21154 "unused217",
21155 "unused218",
21156 "unused219",
21157 "unused220",
21158 "unused221",
21159 "unused222",
21160 "unused223",
21161 "unused224",
21162 "unused225",
21163 "unused226",
21164 "unused227",
21165 "unused228",
21166 "unused229",
21167 "unused230",
21168 "unused231",
21169 "unused232",
21170 "unused233",
21171 "unused234",
21172 "unused235",
21173 "unused236",
21174 "unused237",
21175 "unused238",
21176 "unused239",
21177 "unused240",
21178 "unused241",
21179 "unused242",
21180 "unused243",
21181 "unused244",
21182 "unused245",
21183 "unused246",
21184 "unused247",
21185 "unused248",
21186 "unused249",
21187 "unused250",
21188 "unused251",
21189 "unused252",
21190 "unused253",
21191 "unused254",
21192 "unused255"
4d47f125
TL
21193 ],
21194 "type" : "string"
21195 },
21196 "format" : {
21197 "description" : "Target Format.",
21198 "enum" : [
21199 "raw",
21200 "qcow2",
21201 "vmdk"
21202 ],
21203 "optional" : 1,
21204 "type" : "string"
21205 },
21206 "node" : {
21207 "description" : "The cluster node name.",
21208 "format" : "pve-node",
21209 "type" : "string",
21210 "typetext" : "<string>"
21211 },
21212 "storage" : {
21213 "description" : "Target storage.",
21214 "format" : "pve-storage-id",
5370fa8c 21215 "optional" : 1,
4d47f125
TL
21216 "type" : "string",
21217 "typetext" : "<string>"
21218 },
5370fa8c
TL
21219 "target-digest" : {
21220 "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.",
21221 "maxLength" : 40,
21222 "optional" : 1,
21223 "type" : "string",
21224 "typetext" : "<string>"
21225 },
21226 "target-disk" : {
21227 "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.",
21228 "enum" : [
21229 "ide0",
21230 "ide1",
21231 "ide2",
21232 "ide3",
21233 "scsi0",
21234 "scsi1",
21235 "scsi2",
21236 "scsi3",
21237 "scsi4",
21238 "scsi5",
21239 "scsi6",
21240 "scsi7",
21241 "scsi8",
21242 "scsi9",
21243 "scsi10",
21244 "scsi11",
21245 "scsi12",
21246 "scsi13",
21247 "scsi14",
21248 "scsi15",
21249 "scsi16",
21250 "scsi17",
21251 "scsi18",
21252 "scsi19",
21253 "scsi20",
21254 "scsi21",
21255 "scsi22",
21256 "scsi23",
21257 "scsi24",
21258 "scsi25",
21259 "scsi26",
21260 "scsi27",
21261 "scsi28",
21262 "scsi29",
21263 "scsi30",
21264 "virtio0",
21265 "virtio1",
21266 "virtio2",
21267 "virtio3",
21268 "virtio4",
21269 "virtio5",
21270 "virtio6",
21271 "virtio7",
21272 "virtio8",
21273 "virtio9",
21274 "virtio10",
21275 "virtio11",
21276 "virtio12",
21277 "virtio13",
21278 "virtio14",
21279 "virtio15",
21280 "sata0",
21281 "sata1",
21282 "sata2",
21283 "sata3",
21284 "sata4",
21285 "sata5",
21286 "efidisk0",
21287 "tpmstate0",
21288 "unused0",
21289 "unused1",
21290 "unused2",
21291 "unused3",
21292 "unused4",
21293 "unused5",
21294 "unused6",
21295 "unused7",
21296 "unused8",
21297 "unused9",
21298 "unused10",
21299 "unused11",
21300 "unused12",
21301 "unused13",
21302 "unused14",
21303 "unused15",
21304 "unused16",
21305 "unused17",
21306 "unused18",
21307 "unused19",
21308 "unused20",
21309 "unused21",
21310 "unused22",
21311 "unused23",
21312 "unused24",
21313 "unused25",
21314 "unused26",
21315 "unused27",
21316 "unused28",
21317 "unused29",
21318 "unused30",
21319 "unused31",
21320 "unused32",
21321 "unused33",
21322 "unused34",
21323 "unused35",
21324 "unused36",
21325 "unused37",
21326 "unused38",
21327 "unused39",
21328 "unused40",
21329 "unused41",
21330 "unused42",
21331 "unused43",
21332 "unused44",
21333 "unused45",
21334 "unused46",
21335 "unused47",
21336 "unused48",
21337 "unused49",
21338 "unused50",
21339 "unused51",
21340 "unused52",
21341 "unused53",
21342 "unused54",
21343 "unused55",
21344 "unused56",
21345 "unused57",
21346 "unused58",
21347 "unused59",
21348 "unused60",
21349 "unused61",
21350 "unused62",
21351 "unused63",
21352 "unused64",
21353 "unused65",
21354 "unused66",
21355 "unused67",
21356 "unused68",
21357 "unused69",
21358 "unused70",
21359 "unused71",
21360 "unused72",
21361 "unused73",
21362 "unused74",
21363 "unused75",
21364 "unused76",
21365 "unused77",
21366 "unused78",
21367 "unused79",
21368 "unused80",
21369 "unused81",
21370 "unused82",
21371 "unused83",
21372 "unused84",
21373 "unused85",
21374 "unused86",
21375 "unused87",
21376 "unused88",
21377 "unused89",
21378 "unused90",
21379 "unused91",
21380 "unused92",
21381 "unused93",
21382 "unused94",
21383 "unused95",
21384 "unused96",
21385 "unused97",
21386 "unused98",
21387 "unused99",
21388 "unused100",
21389 "unused101",
21390 "unused102",
21391 "unused103",
21392 "unused104",
21393 "unused105",
21394 "unused106",
21395 "unused107",
21396 "unused108",
21397 "unused109",
21398 "unused110",
21399 "unused111",
21400 "unused112",
21401 "unused113",
21402 "unused114",
21403 "unused115",
21404 "unused116",
21405 "unused117",
21406 "unused118",
21407 "unused119",
21408 "unused120",
21409 "unused121",
21410 "unused122",
21411 "unused123",
21412 "unused124",
21413 "unused125",
21414 "unused126",
21415 "unused127",
21416 "unused128",
21417 "unused129",
21418 "unused130",
21419 "unused131",
21420 "unused132",
21421 "unused133",
21422 "unused134",
21423 "unused135",
21424 "unused136",
21425 "unused137",
21426 "unused138",
21427 "unused139",
21428 "unused140",
21429 "unused141",
21430 "unused142",
21431 "unused143",
21432 "unused144",
21433 "unused145",
21434 "unused146",
21435 "unused147",
21436 "unused148",
21437 "unused149",
21438 "unused150",
21439 "unused151",
21440 "unused152",
21441 "unused153",
21442 "unused154",
21443 "unused155",
21444 "unused156",
21445 "unused157",
21446 "unused158",
21447 "unused159",
21448 "unused160",
21449 "unused161",
21450 "unused162",
21451 "unused163",
21452 "unused164",
21453 "unused165",
21454 "unused166",
21455 "unused167",
21456 "unused168",
21457 "unused169",
21458 "unused170",
21459 "unused171",
21460 "unused172",
21461 "unused173",
21462 "unused174",
21463 "unused175",
21464 "unused176",
21465 "unused177",
21466 "unused178",
21467 "unused179",
21468 "unused180",
21469 "unused181",
21470 "unused182",
21471 "unused183",
21472 "unused184",
21473 "unused185",
21474 "unused186",
21475 "unused187",
21476 "unused188",
21477 "unused189",
21478 "unused190",
21479 "unused191",
21480 "unused192",
21481 "unused193",
21482 "unused194",
21483 "unused195",
21484 "unused196",
21485 "unused197",
21486 "unused198",
21487 "unused199",
21488 "unused200",
21489 "unused201",
21490 "unused202",
21491 "unused203",
21492 "unused204",
21493 "unused205",
21494 "unused206",
21495 "unused207",
21496 "unused208",
21497 "unused209",
21498 "unused210",
21499 "unused211",
21500 "unused212",
21501 "unused213",
21502 "unused214",
21503 "unused215",
21504 "unused216",
21505 "unused217",
21506 "unused218",
21507 "unused219",
21508 "unused220",
21509 "unused221",
21510 "unused222",
21511 "unused223",
21512 "unused224",
21513 "unused225",
21514 "unused226",
21515 "unused227",
21516 "unused228",
21517 "unused229",
21518 "unused230",
21519 "unused231",
21520 "unused232",
21521 "unused233",
21522 "unused234",
21523 "unused235",
21524 "unused236",
21525 "unused237",
21526 "unused238",
21527 "unused239",
21528 "unused240",
21529 "unused241",
21530 "unused242",
21531 "unused243",
21532 "unused244",
21533 "unused245",
21534 "unused246",
21535 "unused247",
21536 "unused248",
21537 "unused249",
21538 "unused250",
21539 "unused251",
21540 "unused252",
21541 "unused253",
21542 "unused254",
21543 "unused255"
21544 ],
21545 "optional" : 1,
21546 "type" : "string"
21547 },
21548 "target-vmid" : {
21549 "description" : "The (unique) ID of the VM.",
21550 "format" : "pve-vmid",
21551 "minimum" : 1,
21552 "optional" : 1,
21553 "type" : "integer",
21554 "typetext" : "<integer> (1 - N)"
21555 },
4d47f125
TL
21556 "vmid" : {
21557 "description" : "The (unique) ID of the VM.",
21558 "format" : "pve-vmid",
21559 "minimum" : 1,
21560 "type" : "integer",
21561 "typetext" : "<integer> (1 - N)"
21562 }
21563 }
21564 },
21565 "permissions" : {
21566 "check" : [
5370fa8c
TL
21567 "perm",
21568 "/vms/{vmid}",
4d47f125 21569 [
5370fa8c 21570 "VM.Config.Disk"
4d47f125
TL
21571 ]
21572 ],
5370fa8c 21573 "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
21574 },
21575 "protected" : 1,
21576 "proxyto" : "node",
21577 "returns" : {
21578 "description" : "the task ID.",
21579 "type" : "string"
21580 }
21581 }
21582 },
21583 "leaf" : 1,
21584 "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
21585 "text" : "move_disk"
21586 },
21587 {
21588 "info" : {
1e3f8156 21589 "GET" : {
e9cd3bd4 21590 "allowtoken" : 1,
1e3f8156
TL
21591 "description" : "Get preconditions for migration.",
21592 "method" : "GET",
21593 "name" : "migrate_vm_precondition",
21594 "parameters" : {
21595 "additionalProperties" : 0,
21596 "properties" : {
21597 "node" : {
21598 "description" : "The cluster node name.",
21599 "format" : "pve-node",
21600 "type" : "string",
21601 "typetext" : "<string>"
21602 },
21603 "target" : {
21604 "description" : "Target node.",
21605 "format" : "pve-node",
21606 "optional" : 1,
21607 "type" : "string",
21608 "typetext" : "<string>"
21609 },
21610 "vmid" : {
21611 "description" : "The (unique) ID of the VM.",
21612 "format" : "pve-vmid",
21613 "minimum" : 1,
21614 "type" : "integer",
21615 "typetext" : "<integer> (1 - N)"
21616 }
21617 }
21618 },
21619 "permissions" : {
21620 "check" : [
21621 "perm",
21622 "/vms/{vmid}",
21623 [
21624 "VM.Migrate"
21625 ]
21626 ]
21627 },
21628 "protected" : 1,
21629 "proxyto" : "node",
21630 "returns" : {
21631 "properties" : {
21632 "allowed_nodes" : {
9226ccbc 21633 "description" : "List nodes allowed for offline migration, only passed if VM is offline",
1e3f8156
TL
21634 "optional" : 1,
21635 "type" : "array"
21636 },
21637 "local_disks" : {
21638 "description" : "List local disks including CD-Rom, unsused and not referenced disks",
21639 "type" : "array"
21640 },
21641 "local_resources" : {
21642 "description" : "List local resources e.g. pci, usb",
21643 "type" : "array"
21644 },
9226ccbc
TL
21645 "not_allowed_nodes" : {
21646 "description" : "List not allowed nodes with additional informations, only passed if VM is offline",
21647 "optional" : 1,
21648 "type" : "object"
21649 },
1e3f8156
TL
21650 "running" : {
21651 "type" : "boolean"
21652 }
21653 },
21654 "type" : "object"
21655 }
21656 },
4d47f125 21657 "POST" : {
e9cd3bd4 21658 "allowtoken" : 1,
4d47f125
TL
21659 "description" : "Migrate virtual machine. Creates a new migration task.",
21660 "method" : "POST",
21661 "name" : "migrate_vm",
21662 "parameters" : {
21663 "additionalProperties" : 0,
21664 "properties" : {
95895385
TL
21665 "bwlimit" : {
21666 "default" : "migrate limit from datacenter or storage config",
21667 "description" : "Override I/O bandwidth limit (in KiB/s).",
21668 "minimum" : "0",
21669 "optional" : 1,
21670 "type" : "integer",
21671 "typetext" : "<integer> (0 - N)"
21672 },
4d47f125
TL
21673 "force" : {
21674 "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
21675 "optional" : 1,
21676 "type" : "boolean",
21677 "typetext" : "<boolean>"
21678 },
21679 "migration_network" : {
21680 "description" : "CIDR of the (sub) network that is used for migration.",
21681 "format" : "CIDR",
21682 "optional" : 1,
21683 "type" : "string",
21684 "typetext" : "<string>"
21685 },
21686 "migration_type" : {
21687 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
21688 "enum" : [
21689 "secure",
21690 "insecure"
21691 ],
21692 "optional" : 1,
21693 "type" : "string"
21694 },
21695 "node" : {
21696 "description" : "The cluster node name.",
21697 "format" : "pve-node",
21698 "type" : "string",
21699 "typetext" : "<string>"
21700 },
21701 "online" : {
1c532546 21702 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
4d47f125
TL
21703 "optional" : 1,
21704 "type" : "boolean",
21705 "typetext" : "<boolean>"
21706 },
21707 "target" : {
21708 "description" : "Target node.",
21709 "format" : "pve-node",
21710 "type" : "string",
21711 "typetext" : "<string>"
21712 },
21713 "targetstorage" : {
c5aa7e14 21714 "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 21715 "format" : "storage-pair-list",
4d47f125 21716 "optional" : 1,
52e44c50
FG
21717 "type" : "string",
21718 "typetext" : "<string>"
21719 },
7aacca6f 21720 "vmid" : {
7aacca6f 21721 "description" : "The (unique) ID of the VM.",
44660702 21722 "format" : "pve-vmid",
7aacca6f 21723 "minimum" : 1,
4bd7df8b 21724 "type" : "integer",
013dc89f 21725 "typetext" : "<integer> (1 - N)"
52e44c50
FG
21726 },
21727 "with-local-disks" : {
21728 "description" : "Enable live storage migration for local disk",
21729 "optional" : 1,
21730 "type" : "boolean",
21731 "typetext" : "<boolean>"
56122987 21732 }
44660702
DM
21733 }
21734 },
21735 "permissions" : {
21736 "check" : [
21737 "perm",
21738 "/vms/{vmid}",
21739 [
21740 "VM.Migrate"
21741 ]
21742 ]
56122987
DM
21743 },
21744 "protected" : 1,
44660702
DM
21745 "proxyto" : "node",
21746 "returns" : {
21747 "description" : "the task ID.",
21748 "type" : "string"
21749 }
56122987 21750 }
7aacca6f 21751 },
44660702
DM
21752 "leaf" : 1,
21753 "path" : "/nodes/{node}/qemu/{vmid}/migrate",
7aacca6f 21754 "text" : "migrate"
56122987
DM
21755 },
21756 {
21757 "info" : {
21758 "POST" : {
e9cd3bd4 21759 "allowtoken" : 1,
44660702 21760 "description" : "Execute Qemu monitor commands.",
56122987 21761 "method" : "POST",
44660702 21762 "name" : "monitor",
56122987 21763 "parameters" : {
7aacca6f 21764 "additionalProperties" : 0,
56122987 21765 "properties" : {
44660702
DM
21766 "command" : {
21767 "description" : "The monitor command.",
013dc89f
DM
21768 "type" : "string",
21769 "typetext" : "<string>"
44660702 21770 },
56122987 21771 "node" : {
44660702 21772 "description" : "The cluster node name.",
7aacca6f 21773 "format" : "pve-node",
013dc89f
DM
21774 "type" : "string",
21775 "typetext" : "<string>"
56122987
DM
21776 },
21777 "vmid" : {
44660702 21778 "description" : "The (unique) ID of the VM.",
56122987 21779 "format" : "pve-vmid",
7aacca6f 21780 "minimum" : 1,
4bd7df8b 21781 "type" : "integer",
013dc89f 21782 "typetext" : "<integer> (1 - N)"
56122987 21783 }
7aacca6f 21784 }
56122987 21785 },
56122987
DM
21786 "permissions" : {
21787 "check" : [
21788 "perm",
21789 "/vms/{vmid}",
21790 [
21791 "VM.Monitor"
21792 ]
32d876b5
DM
21793 ],
21794 "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
7aacca6f 21795 },
44660702
DM
21796 "protected" : 1,
21797 "proxyto" : "node",
21798 "returns" : {
21799 "type" : "string"
21800 }
56122987 21801 }
44660702
DM
21802 },
21803 "leaf" : 1,
21804 "path" : "/nodes/{node}/qemu/{vmid}/monitor",
21805 "text" : "monitor"
56122987
DM
21806 },
21807 {
56122987
DM
21808 "info" : {
21809 "PUT" : {
e9cd3bd4 21810 "allowtoken" : 1,
44660702
DM
21811 "description" : "Extend volume size.",
21812 "method" : "PUT",
21813 "name" : "resize_vm",
56122987 21814 "parameters" : {
44660702 21815 "additionalProperties" : 0,
56122987 21816 "properties" : {
44660702
DM
21817 "digest" : {
21818 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
21819 "maxLength" : 40,
21820 "optional" : 1,
013dc89f
DM
21821 "type" : "string",
21822 "typetext" : "<string>"
56122987 21823 },
56122987
DM
21824 "disk" : {
21825 "description" : "The disk you want to resize.",
21826 "enum" : [
21827 "ide0",
21828 "ide1",
21829 "ide2",
21830 "ide3",
21831 "scsi0",
21832 "scsi1",
21833 "scsi2",
21834 "scsi3",
21835 "scsi4",
21836 "scsi5",
21837 "scsi6",
21838 "scsi7",
21839 "scsi8",
21840 "scsi9",
21841 "scsi10",
21842 "scsi11",
21843 "scsi12",
21844 "scsi13",
e9cd3bd4
TL
21845 "scsi14",
21846 "scsi15",
21847 "scsi16",
21848 "scsi17",
21849 "scsi18",
21850 "scsi19",
21851 "scsi20",
21852 "scsi21",
21853 "scsi22",
21854 "scsi23",
21855 "scsi24",
21856 "scsi25",
21857 "scsi26",
21858 "scsi27",
21859 "scsi28",
21860 "scsi29",
21861 "scsi30",
56122987
DM
21862 "virtio0",
21863 "virtio1",
21864 "virtio2",
21865 "virtio3",
21866 "virtio4",
21867 "virtio5",
21868 "virtio6",
21869 "virtio7",
21870 "virtio8",
21871 "virtio9",
21872 "virtio10",
21873 "virtio11",
21874 "virtio12",
21875 "virtio13",
21876 "virtio14",
21877 "virtio15",
21878 "sata0",
21879 "sata1",
21880 "sata2",
21881 "sata3",
21882 "sata4",
2c0dde61 21883 "sata5",
5370fa8c
TL
21884 "efidisk0",
21885 "tpmstate0"
44660702
DM
21886 ],
21887 "type" : "string"
56122987 21888 },
44660702
DM
21889 "node" : {
21890 "description" : "The cluster node name.",
21891 "format" : "pve-node",
013dc89f
DM
21892 "type" : "string",
21893 "typetext" : "<string>"
7aacca6f 21894 },
44660702 21895 "size" : {
5d9c884c 21896 "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
21897 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
21898 "type" : "string"
56122987
DM
21899 },
21900 "skiplock" : {
21901 "description" : "Ignore locks - only root is allowed to use this option.",
21902 "optional" : 1,
013dc89f
DM
21903 "type" : "boolean",
21904 "typetext" : "<boolean>"
56122987
DM
21905 },
21906 "vmid" : {
7aacca6f 21907 "description" : "The (unique) ID of the VM.",
56122987 21908 "format" : "pve-vmid",
44660702 21909 "minimum" : 1,
4bd7df8b 21910 "type" : "integer",
013dc89f 21911 "typetext" : "<integer> (1 - N)"
56122987
DM
21912 }
21913 }
21914 },
21915 "permissions" : {
21916 "check" : [
21917 "perm",
21918 "/vms/{vmid}",
21919 [
44660702 21920 "VM.Config.Disk"
56122987
DM
21921 ]
21922 ]
21923 },
7aacca6f 21924 "protected" : 1,
7aacca6f 21925 "proxyto" : "node",
44660702
DM
21926 "returns" : {
21927 "type" : "null"
21928 }
7aacca6f
DM
21929 }
21930 },
44660702
DM
21931 "leaf" : 1,
21932 "path" : "/nodes/{node}/qemu/{vmid}/resize",
21933 "text" : "resize"
21934 },
21935 {
56122987
DM
21936 "children" : [
21937 {
21938 "children" : [
21939 {
56122987 21940 "info" : {
44660702 21941 "GET" : {
e9cd3bd4 21942 "allowtoken" : 1,
44660702
DM
21943 "description" : "Get snapshot configuration",
21944 "method" : "GET",
21945 "name" : "get_snapshot_config",
56122987 21946 "parameters" : {
44660702 21947 "additionalProperties" : 0,
56122987 21948 "properties" : {
56122987 21949 "node" : {
44660702 21950 "description" : "The cluster node name.",
56122987 21951 "format" : "pve-node",
013dc89f
DM
21952 "type" : "string",
21953 "typetext" : "<string>"
7aacca6f
DM
21954 },
21955 "snapname" : {
44660702 21956 "description" : "The name of the snapshot.",
7aacca6f 21957 "format" : "pve-configid",
44660702 21958 "maxLength" : 40,
013dc89f
DM
21959 "type" : "string",
21960 "typetext" : "<string>"
7aacca6f
DM
21961 },
21962 "vmid" : {
44660702 21963 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
21964 "format" : "pve-vmid",
21965 "minimum" : 1,
4bd7df8b 21966 "type" : "integer",
013dc89f 21967 "typetext" : "<integer> (1 - N)"
56122987 21968 }
44660702 21969 }
56122987
DM
21970 },
21971 "permissions" : {
21972 "check" : [
21973 "perm",
21974 "/vms/{vmid}",
21975 [
2489d6df 21976 "VM.Snapshot",
e9cd3bd4
TL
21977 "VM.Snapshot.Rollback",
21978 "VM.Audit"
2489d6df
WB
21979 ],
21980 "any",
21981 1
56122987
DM
21982 ]
21983 },
44660702 21984 "proxyto" : "node",
56122987 21985 "returns" : {
44660702 21986 "type" : "object"
7aacca6f
DM
21987 }
21988 },
44660702 21989 "PUT" : {
e9cd3bd4 21990 "allowtoken" : 1,
44660702
DM
21991 "description" : "Update snapshot metadata.",
21992 "method" : "PUT",
21993 "name" : "update_snapshot_config",
56122987 21994 "parameters" : {
44660702 21995 "additionalProperties" : 0,
56122987 21996 "properties" : {
44660702
DM
21997 "description" : {
21998 "description" : "A textual description or comment.",
21999 "optional" : 1,
013dc89f
DM
22000 "type" : "string",
22001 "typetext" : "<string>"
44660702 22002 },
56122987 22003 "node" : {
7aacca6f 22004 "description" : "The cluster node name.",
44660702 22005 "format" : "pve-node",
013dc89f
DM
22006 "type" : "string",
22007 "typetext" : "<string>"
56122987 22008 },
56122987
DM
22009 "snapname" : {
22010 "description" : "The name of the snapshot.",
44660702 22011 "format" : "pve-configid",
7aacca6f 22012 "maxLength" : 40,
013dc89f
DM
22013 "type" : "string",
22014 "typetext" : "<string>"
7aacca6f
DM
22015 },
22016 "vmid" : {
22017 "description" : "The (unique) ID of the VM.",
44660702 22018 "format" : "pve-vmid",
7aacca6f 22019 "minimum" : 1,
4bd7df8b 22020 "type" : "integer",
013dc89f 22021 "typetext" : "<integer> (1 - N)"
56122987 22022 }
44660702 22023 }
56122987 22024 },
7aacca6f
DM
22025 "permissions" : {
22026 "check" : [
22027 "perm",
22028 "/vms/{vmid}",
22029 [
22030 "VM.Snapshot"
22031 ]
22032 ]
44660702
DM
22033 },
22034 "protected" : 1,
22035 "proxyto" : "node",
22036 "returns" : {
22037 "type" : "null"
7aacca6f 22038 }
56122987
DM
22039 }
22040 },
44660702 22041 "leaf" : 1,
7aacca6f 22042 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
44660702 22043 "text" : "config"
56122987
DM
22044 },
22045 {
56122987
DM
22046 "info" : {
22047 "POST" : {
e9cd3bd4 22048 "allowtoken" : 1,
44660702 22049 "description" : "Rollback VM state to specified snapshot.",
7aacca6f 22050 "method" : "POST",
44660702 22051 "name" : "rollback",
56122987
DM
22052 "parameters" : {
22053 "additionalProperties" : 0,
22054 "properties" : {
44660702
DM
22055 "node" : {
22056 "description" : "The cluster node name.",
22057 "format" : "pve-node",
013dc89f
DM
22058 "type" : "string",
22059 "typetext" : "<string>"
44660702 22060 },
56122987 22061 "snapname" : {
44660702 22062 "description" : "The name of the snapshot.",
56122987
DM
22063 "format" : "pve-configid",
22064 "maxLength" : 40,
013dc89f
DM
22065 "type" : "string",
22066 "typetext" : "<string>"
7aacca6f 22067 },
56122987 22068 "vmid" : {
7aacca6f 22069 "description" : "The (unique) ID of the VM.",
44660702 22070 "format" : "pve-vmid",
56122987 22071 "minimum" : 1,
4bd7df8b 22072 "type" : "integer",
013dc89f 22073 "typetext" : "<integer> (1 - N)"
56122987
DM
22074 }
22075 }
22076 },
7aacca6f 22077 "permissions" : {
56122987
DM
22078 "check" : [
22079 "perm",
22080 "/vms/{vmid}",
22081 [
2489d6df
WB
22082 "VM.Snapshot",
22083 "VM.Snapshot.Rollback"
22084 ],
22085 "any",
22086 1
56122987
DM
22087 ]
22088 },
44660702 22089 "protected" : 1,
7aacca6f 22090 "proxyto" : "node",
44660702
DM
22091 "returns" : {
22092 "description" : "the task ID.",
22093 "type" : "string"
22094 }
56122987
DM
22095 }
22096 },
44660702
DM
22097 "leaf" : 1,
22098 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
7aacca6f 22099 "text" : "rollback"
56122987 22100 }
44660702
DM
22101 ],
22102 "info" : {
22103 "DELETE" : {
e9cd3bd4 22104 "allowtoken" : 1,
44660702
DM
22105 "description" : "Delete a VM snapshot.",
22106 "method" : "DELETE",
22107 "name" : "delsnapshot",
22108 "parameters" : {
22109 "additionalProperties" : 0,
22110 "properties" : {
22111 "force" : {
22112 "description" : "For removal from config file, even if removing disk snapshots fails.",
22113 "optional" : 1,
013dc89f
DM
22114 "type" : "boolean",
22115 "typetext" : "<boolean>"
44660702
DM
22116 },
22117 "node" : {
22118 "description" : "The cluster node name.",
22119 "format" : "pve-node",
013dc89f
DM
22120 "type" : "string",
22121 "typetext" : "<string>"
44660702
DM
22122 },
22123 "snapname" : {
22124 "description" : "The name of the snapshot.",
22125 "format" : "pve-configid",
22126 "maxLength" : 40,
013dc89f
DM
22127 "type" : "string",
22128 "typetext" : "<string>"
44660702
DM
22129 },
22130 "vmid" : {
22131 "description" : "The (unique) ID of the VM.",
22132 "format" : "pve-vmid",
22133 "minimum" : 1,
4bd7df8b 22134 "type" : "integer",
013dc89f 22135 "typetext" : "<integer> (1 - N)"
44660702
DM
22136 }
22137 }
22138 },
22139 "permissions" : {
22140 "check" : [
22141 "perm",
22142 "/vms/{vmid}",
22143 [
22144 "VM.Snapshot"
22145 ]
22146 ]
22147 },
22148 "protected" : 1,
22149 "proxyto" : "node",
22150 "returns" : {
22151 "description" : "the task ID.",
22152 "type" : "string"
22153 }
22154 },
22155 "GET" : {
e9cd3bd4 22156 "allowtoken" : 1,
44660702
DM
22157 "description" : "",
22158 "method" : "GET",
22159 "name" : "snapshot_cmd_idx",
22160 "parameters" : {
22161 "additionalProperties" : 0,
22162 "properties" : {
22163 "node" : {
22164 "description" : "The cluster node name.",
22165 "format" : "pve-node",
013dc89f
DM
22166 "type" : "string",
22167 "typetext" : "<string>"
44660702
DM
22168 },
22169 "snapname" : {
22170 "description" : "The name of the snapshot.",
22171 "format" : "pve-configid",
22172 "maxLength" : 40,
013dc89f
DM
22173 "type" : "string",
22174 "typetext" : "<string>"
44660702
DM
22175 },
22176 "vmid" : {
22177 "description" : "The (unique) ID of the VM.",
22178 "format" : "pve-vmid",
22179 "minimum" : 1,
4bd7df8b 22180 "type" : "integer",
013dc89f 22181 "typetext" : "<integer> (1 - N)"
44660702
DM
22182 }
22183 }
22184 },
22185 "permissions" : {
22186 "user" : "all"
22187 },
22188 "returns" : {
22189 "items" : {
22190 "properties" : {},
22191 "type" : "object"
22192 },
22193 "links" : [
22194 {
22195 "href" : "{cmd}",
22196 "rel" : "child"
22197 }
22198 ],
22199 "type" : "array"
22200 }
22201 }
22202 },
22203 "leaf" : 0,
22204 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
22205 "text" : "{snapname}"
56122987
DM
22206 }
22207 ],
44660702
DM
22208 "info" : {
22209 "GET" : {
e9cd3bd4 22210 "allowtoken" : 1,
44660702
DM
22211 "description" : "List all snapshots.",
22212 "method" : "GET",
22213 "name" : "snapshot_list",
22214 "parameters" : {
22215 "additionalProperties" : 0,
22216 "properties" : {
22217 "node" : {
22218 "description" : "The cluster node name.",
22219 "format" : "pve-node",
013dc89f
DM
22220 "type" : "string",
22221 "typetext" : "<string>"
44660702
DM
22222 },
22223 "vmid" : {
22224 "description" : "The (unique) ID of the VM.",
22225 "format" : "pve-vmid",
22226 "minimum" : 1,
4bd7df8b 22227 "type" : "integer",
013dc89f 22228 "typetext" : "<integer> (1 - N)"
44660702
DM
22229 }
22230 }
22231 },
22232 "permissions" : {
22233 "check" : [
22234 "perm",
22235 "/vms/{vmid}",
22236 [
22237 "VM.Audit"
22238 ]
22239 ]
22240 },
22241 "protected" : 1,
22242 "proxyto" : "node",
22243 "returns" : {
22244 "items" : {
4d47f125
TL
22245 "properties" : {
22246 "description" : {
22247 "description" : "Snapshot description.",
22248 "type" : "string"
22249 },
22250 "name" : {
22251 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
22252 "type" : "string"
22253 },
22254 "parent" : {
22255 "description" : "Parent snapshot identifier.",
22256 "optional" : 1,
22257 "type" : "string"
22258 },
22259 "snaptime" : {
22260 "description" : "Snapshot creation time",
22261 "optional" : 1,
22262 "renderer" : "timestamp",
22263 "type" : "integer"
22264 },
22265 "vmstate" : {
22266 "description" : "Snapshot includes RAM.",
22267 "optional" : 1,
22268 "type" : "boolean"
22269 }
22270 },
44660702
DM
22271 "type" : "object"
22272 },
22273 "links" : [
22274 {
22275 "href" : "{name}",
22276 "rel" : "child"
22277 }
22278 ],
22279 "type" : "array"
22280 }
22281 },
22282 "POST" : {
e9cd3bd4 22283 "allowtoken" : 1,
44660702
DM
22284 "description" : "Snapshot a VM.",
22285 "method" : "POST",
22286 "name" : "snapshot",
22287 "parameters" : {
22288 "additionalProperties" : 0,
22289 "properties" : {
22290 "description" : {
22291 "description" : "A textual description or comment.",
22292 "optional" : 1,
013dc89f
DM
22293 "type" : "string",
22294 "typetext" : "<string>"
44660702
DM
22295 },
22296 "node" : {
22297 "description" : "The cluster node name.",
22298 "format" : "pve-node",
013dc89f
DM
22299 "type" : "string",
22300 "typetext" : "<string>"
44660702
DM
22301 },
22302 "snapname" : {
22303 "description" : "The name of the snapshot.",
22304 "format" : "pve-configid",
22305 "maxLength" : 40,
013dc89f
DM
22306 "type" : "string",
22307 "typetext" : "<string>"
44660702
DM
22308 },
22309 "vmid" : {
22310 "description" : "The (unique) ID of the VM.",
22311 "format" : "pve-vmid",
22312 "minimum" : 1,
4bd7df8b 22313 "type" : "integer",
013dc89f 22314 "typetext" : "<integer> (1 - N)"
44660702
DM
22315 },
22316 "vmstate" : {
22317 "description" : "Save the vmstate",
22318 "optional" : 1,
013dc89f
DM
22319 "type" : "boolean",
22320 "typetext" : "<boolean>"
44660702
DM
22321 }
22322 }
22323 },
22324 "permissions" : {
22325 "check" : [
22326 "perm",
22327 "/vms/{vmid}",
22328 [
22329 "VM.Snapshot"
22330 ]
22331 ]
22332 },
22333 "protected" : 1,
22334 "proxyto" : "node",
22335 "returns" : {
22336 "description" : "the task ID.",
22337 "type" : "string"
22338 }
22339 }
22340 },
22341 "leaf" : 0,
22342 "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
7aacca6f 22343 "text" : "snapshot"
56122987
DM
22344 },
22345 {
56122987
DM
22346 "info" : {
22347 "POST" : {
e9cd3bd4 22348 "allowtoken" : 1,
44660702
DM
22349 "description" : "Create a Template.",
22350 "method" : "POST",
56122987 22351 "name" : "template",
56122987 22352 "parameters" : {
7aacca6f 22353 "additionalProperties" : 0,
56122987 22354 "properties" : {
56122987 22355 "disk" : {
56122987
DM
22356 "description" : "If you want to convert only 1 disk to base image.",
22357 "enum" : [
22358 "ide0",
22359 "ide1",
22360 "ide2",
22361 "ide3",
22362 "scsi0",
22363 "scsi1",
22364 "scsi2",
22365 "scsi3",
22366 "scsi4",
22367 "scsi5",
22368 "scsi6",
22369 "scsi7",
22370 "scsi8",
22371 "scsi9",
22372 "scsi10",
22373 "scsi11",
22374 "scsi12",
22375 "scsi13",
e9cd3bd4
TL
22376 "scsi14",
22377 "scsi15",
22378 "scsi16",
22379 "scsi17",
22380 "scsi18",
22381 "scsi19",
22382 "scsi20",
22383 "scsi21",
22384 "scsi22",
22385 "scsi23",
22386 "scsi24",
22387 "scsi25",
22388 "scsi26",
22389 "scsi27",
22390 "scsi28",
22391 "scsi29",
22392 "scsi30",
56122987
DM
22393 "virtio0",
22394 "virtio1",
22395 "virtio2",
22396 "virtio3",
22397 "virtio4",
22398 "virtio5",
22399 "virtio6",
22400 "virtio7",
22401 "virtio8",
22402 "virtio9",
22403 "virtio10",
22404 "virtio11",
22405 "virtio12",
22406 "virtio13",
22407 "virtio14",
22408 "virtio15",
22409 "sata0",
22410 "sata1",
22411 "sata2",
22412 "sata3",
22413 "sata4",
2c0dde61 22414 "sata5",
5370fa8c
TL
22415 "efidisk0",
22416 "tpmstate0"
56122987 22417 ],
7aacca6f 22418 "optional" : 1,
56122987
DM
22419 "type" : "string"
22420 },
44660702
DM
22421 "node" : {
22422 "description" : "The cluster node name.",
22423 "format" : "pve-node",
013dc89f
DM
22424 "type" : "string",
22425 "typetext" : "<string>"
44660702
DM
22426 },
22427 "vmid" : {
22428 "description" : "The (unique) ID of the VM.",
7aacca6f 22429 "format" : "pve-vmid",
44660702 22430 "minimum" : 1,
4bd7df8b 22431 "type" : "integer",
013dc89f 22432 "typetext" : "<integer> (1 - N)"
56122987 22433 }
7aacca6f 22434 }
56122987 22435 },
7aacca6f
DM
22436 "permissions" : {
22437 "check" : [
22438 "perm",
22439 "/vms/{vmid}",
22440 [
22441 "VM.Allocate"
22442 ]
22443 ],
22444 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
22445 },
44660702 22446 "protected" : 1,
7aacca6f 22447 "proxyto" : "node",
7aacca6f 22448 "returns" : {
5370fa8c
TL
22449 "description" : "the task ID.",
22450 "type" : "string"
7aacca6f 22451 }
56122987
DM
22452 }
22453 },
44660702 22454 "leaf" : 1,
7aacca6f 22455 "path" : "/nodes/{node}/qemu/{vmid}/template",
44660702 22456 "text" : "template"
1e3f8156
TL
22457 },
22458 {
22459 "children" : [
22460 {
22461 "info" : {
22462 "GET" : {
e9cd3bd4 22463 "allowtoken" : 1,
1e3f8156
TL
22464 "description" : "Get automatically generated cloudinit config.",
22465 "method" : "GET",
22466 "name" : "cloudinit_generated_config_dump",
22467 "parameters" : {
22468 "additionalProperties" : 0,
22469 "properties" : {
22470 "node" : {
22471 "description" : "The cluster node name.",
22472 "format" : "pve-node",
22473 "type" : "string",
22474 "typetext" : "<string>"
22475 },
22476 "type" : {
22477 "description" : "Config type.",
22478 "enum" : [
22479 "user",
22480 "network",
22481 "meta"
22482 ],
22483 "type" : "string"
22484 },
22485 "vmid" : {
22486 "description" : "The (unique) ID of the VM.",
22487 "format" : "pve-vmid",
22488 "minimum" : 1,
22489 "type" : "integer",
22490 "typetext" : "<integer> (1 - N)"
22491 }
22492 }
22493 },
22494 "permissions" : {
22495 "check" : [
22496 "perm",
22497 "/vms/{vmid}",
22498 [
22499 "VM.Audit"
22500 ]
22501 ]
22502 },
22503 "proxyto" : "node",
22504 "returns" : {
22505 "type" : "string"
22506 }
22507 }
22508 },
22509 "leaf" : 1,
22510 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit/dump",
22511 "text" : "dump"
22512 }
22513 ],
22514 "leaf" : 0,
22515 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit",
22516 "text" : "cloudinit"
56122987
DM
22517 }
22518 ],
7aacca6f 22519 "info" : {
44660702 22520 "DELETE" : {
e9cd3bd4 22521 "allowtoken" : 1,
d2656385 22522 "description" : "Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules",
44660702
DM
22523 "method" : "DELETE",
22524 "name" : "destroy_vm",
7aacca6f 22525 "parameters" : {
44660702 22526 "additionalProperties" : 0,
7aacca6f 22527 "properties" : {
d2656385 22528 "destroy-unreferenced-disks" : {
8f4d9c87 22529 "default" : 0,
d2656385
TL
22530 "description" : "If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages.",
22531 "optional" : 1,
22532 "type" : "boolean",
22533 "typetext" : "<boolean>"
22534 },
7aacca6f 22535 "node" : {
44660702 22536 "description" : "The cluster node name.",
7aacca6f 22537 "format" : "pve-node",
013dc89f
DM
22538 "type" : "string",
22539 "typetext" : "<string>"
44660702 22540 },
1c532546 22541 "purge" : {
d2656385 22542 "description" : "Remove VMID from configurations, like backup & replication jobs and HA.",
1c532546
TL
22543 "optional" : 1,
22544 "type" : "boolean",
22545 "typetext" : "<boolean>"
22546 },
44660702
DM
22547 "skiplock" : {
22548 "description" : "Ignore locks - only root is allowed to use this option.",
22549 "optional" : 1,
013dc89f
DM
22550 "type" : "boolean",
22551 "typetext" : "<boolean>"
7aacca6f
DM
22552 },
22553 "vmid" : {
44660702 22554 "description" : "The (unique) ID of the VM.",
7aacca6f 22555 "format" : "pve-vmid",
44660702 22556 "minimum" : 1,
4bd7df8b 22557 "type" : "integer",
013dc89f 22558 "typetext" : "<integer> (1 - N)"
7aacca6f 22559 }
44660702 22560 }
7aacca6f 22561 },
7aacca6f
DM
22562 "permissions" : {
22563 "check" : [
22564 "perm",
22565 "/vms/{vmid}",
22566 [
22567 "VM.Allocate"
22568 ]
22569 ]
22570 },
44660702
DM
22571 "protected" : 1,
22572 "proxyto" : "node",
7aacca6f
DM
22573 "returns" : {
22574 "type" : "string"
44660702
DM
22575 }
22576 },
22577 "GET" : {
e9cd3bd4 22578 "allowtoken" : 1,
44660702
DM
22579 "description" : "Directory index",
22580 "method" : "GET",
22581 "name" : "vmdiridx",
7aacca6f 22582 "parameters" : {
44660702 22583 "additionalProperties" : 0,
7aacca6f 22584 "properties" : {
7aacca6f 22585 "node" : {
7aacca6f 22586 "description" : "The cluster node name.",
44660702 22587 "format" : "pve-node",
013dc89f
DM
22588 "type" : "string",
22589 "typetext" : "<string>"
44660702
DM
22590 },
22591 "vmid" : {
22592 "description" : "The (unique) ID of the VM.",
22593 "format" : "pve-vmid",
22594 "minimum" : 1,
4bd7df8b 22595 "type" : "integer",
013dc89f 22596 "typetext" : "<integer> (1 - N)"
7aacca6f 22597 }
44660702 22598 }
7aacca6f 22599 },
44660702
DM
22600 "permissions" : {
22601 "user" : "all"
22602 },
22603 "proxyto" : "node",
22604 "returns" : {
22605 "items" : {
22606 "properties" : {
22607 "subdir" : {
22608 "type" : "string"
22609 }
22610 },
22611 "type" : "object"
22612 },
22613 "links" : [
22614 {
22615 "href" : "{subdir}",
22616 "rel" : "child"
22617 }
22618 ],
22619 "type" : "array"
22620 }
7aacca6f 22621 }
44660702
DM
22622 },
22623 "leaf" : 0,
22624 "path" : "/nodes/{node}/qemu/{vmid}",
22625 "text" : "{vmid}"
56122987
DM
22626 }
22627 ],
22628 "info" : {
44660702 22629 "GET" : {
e9cd3bd4 22630 "allowtoken" : 1,
44660702
DM
22631 "description" : "Virtual machine index (per node).",
22632 "method" : "GET",
22633 "name" : "vmlist",
56122987 22634 "parameters" : {
44660702 22635 "additionalProperties" : 0,
56122987 22636 "properties" : {
44660702
DM
22637 "full" : {
22638 "description" : "Determine the full status of active VMs.",
56122987 22639 "optional" : 1,
013dc89f
DM
22640 "type" : "boolean",
22641 "typetext" : "<boolean>"
56122987 22642 },
44660702
DM
22643 "node" : {
22644 "description" : "The cluster node name.",
22645 "format" : "pve-node",
013dc89f
DM
22646 "type" : "string",
22647 "typetext" : "<string>"
44660702
DM
22648 }
22649 }
22650 },
22651 "permissions" : {
22652 "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
22653 "user" : "all"
22654 },
22655 "protected" : 1,
22656 "proxyto" : "node",
22657 "returns" : {
22658 "items" : {
4d47f125
TL
22659 "properties" : {
22660 "cpus" : {
22661 "description" : "Maximum usable CPUs.",
22662 "optional" : 1,
22663 "type" : "number"
22664 },
95895385
TL
22665 "lock" : {
22666 "description" : "The current config lock, if any.",
22667 "optional" : 1,
22668 "type" : "string"
22669 },
4d47f125
TL
22670 "maxdisk" : {
22671 "description" : "Root disk size in bytes.",
22672 "optional" : 1,
22673 "renderer" : "bytes",
22674 "type" : "integer"
22675 },
22676 "maxmem" : {
22677 "description" : "Maximum memory in bytes.",
22678 "optional" : 1,
22679 "renderer" : "bytes",
22680 "type" : "integer"
22681 },
22682 "name" : {
22683 "description" : "VM name.",
22684 "optional" : 1,
22685 "type" : "string"
22686 },
22687 "pid" : {
22688 "description" : "PID of running qemu process.",
22689 "optional" : 1,
22690 "type" : "integer"
22691 },
22692 "qmpstatus" : {
22693 "description" : "Qemu QMP agent status.",
22694 "optional" : 1,
22695 "type" : "string"
22696 },
d2656385
TL
22697 "running-machine" : {
22698 "description" : "The currently running machine type (if running).",
22699 "optional" : 1,
22700 "type" : "string"
22701 },
22702 "running-qemu" : {
22703 "description" : "The currently running QEMU version (if running).",
22704 "optional" : 1,
22705 "type" : "string"
22706 },
4d47f125
TL
22707 "status" : {
22708 "description" : "Qemu process status.",
22709 "enum" : [
22710 "stopped",
22711 "running"
22712 ],
22713 "type" : "string"
22714 },
5c1699e5
TL
22715 "tags" : {
22716 "description" : "The current configured tags, if any",
22717 "optional" : 1,
22718 "type" : "string"
22719 },
4d47f125
TL
22720 "uptime" : {
22721 "description" : "Uptime.",
22722 "optional" : 1,
22723 "renderer" : "duration",
22724 "type" : "integer"
22725 },
22726 "vmid" : {
22727 "description" : "The (unique) ID of the VM.",
22728 "format" : "pve-vmid",
22729 "minimum" : 1,
22730 "type" : "integer"
22731 }
22732 },
44660702
DM
22733 "type" : "object"
22734 },
22735 "links" : [
22736 {
22737 "href" : "{vmid}",
22738 "rel" : "child"
22739 }
22740 ],
22741 "type" : "array"
22742 }
22743 },
22744 "POST" : {
e9cd3bd4 22745 "allowtoken" : 1,
44660702
DM
22746 "description" : "Create or restore a virtual machine.",
22747 "method" : "POST",
22748 "name" : "create_vm",
22749 "parameters" : {
22750 "additionalProperties" : 0,
22751 "properties" : {
7aacca6f 22752 "acpi" : {
7aacca6f 22753 "default" : 1,
44660702 22754 "description" : "Enable/disable ACPI.",
56122987 22755 "optional" : 1,
013dc89f
DM
22756 "type" : "boolean",
22757 "typetext" : "<boolean>"
56122987 22758 },
44660702 22759 "agent" : {
5370fa8c 22760 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
22761 "format" : {
22762 "enabled" : {
22763 "default" : 0,
22764 "default_key" : 1,
5370fa8c 22765 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
22766 "type" : "boolean"
22767 },
22768 "fstrim_cloned_disks" : {
22769 "default" : 0,
d2656385 22770 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
22771 "optional" : 1,
22772 "type" : "boolean"
5c1699e5
TL
22773 },
22774 "type" : {
22775 "default" : "virtio",
22776 "description" : "Select the agent type",
22777 "enum" : [
22778 "virtio",
22779 "isa"
22780 ],
22781 "optional" : 1,
22782 "type" : "string"
4d47f125
TL
22783 }
22784 },
7aacca6f 22785 "optional" : 1,
4d47f125 22786 "type" : "string",
5c1699e5 22787 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 22788 },
e2d681b3
TL
22789 "arch" : {
22790 "description" : "Virtual processor architecture. Defaults to the host.",
22791 "enum" : [
22792 "x86_64",
22793 "aarch64"
22794 ],
22795 "optional" : 1,
22796 "type" : "string"
22797 },
44660702 22798 "archive" : {
c5aa7e14 22799 "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 22800 "maxLength" : 255,
56122987 22801 "optional" : 1,
013dc89f
DM
22802 "type" : "string",
22803 "typetext" : "<string>"
56122987 22804 },
44660702 22805 "args" : {
c2993fe5 22806 "description" : "Arbitrary arguments passed to kvm.",
56122987 22807 "optional" : 1,
c2993fe5 22808 "type" : "string",
013dc89f 22809 "typetext" : "<string>",
c2993fe5 22810 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
56122987 22811 },
1c532546
TL
22812 "audio0" : {
22813 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
22814 "format" : {
22815 "device" : {
22816 "description" : "Configure an audio device.",
22817 "enum" : [
22818 "ich9-intel-hda",
22819 "intel-hda",
22820 "AC97"
22821 ],
22822 "type" : "string"
22823 },
22824 "driver" : {
22825 "default" : "spice",
22826 "description" : "Driver backend for the audio device.",
22827 "enum" : [
d2656385
TL
22828 "spice",
22829 "none"
1c532546
TL
22830 ],
22831 "optional" : 1,
22832 "type" : "string"
22833 }
22834 },
22835 "optional" : 1,
22836 "type" : "string",
d2656385 22837 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 22838 },
44660702 22839 "autostart" : {
7aacca6f 22840 "default" : 0,
44660702
DM
22841 "description" : "Automatic restart after crash (currently ignored).",
22842 "optional" : 1,
013dc89f
DM
22843 "type" : "boolean",
22844 "typetext" : "<boolean>"
7aacca6f 22845 },
44660702
DM
22846 "balloon" : {
22847 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
22848 "minimum" : 0,
56122987 22849 "optional" : 1,
4bd7df8b 22850 "type" : "integer",
013dc89f 22851 "typetext" : "<integer> (0 - N)"
56122987 22852 },
44660702
DM
22853 "bios" : {
22854 "default" : "seabios",
22855 "description" : "Select BIOS implementation.",
22856 "enum" : [
22857 "seabios",
22858 "ovmf"
22859 ],
56122987 22860 "optional" : 1,
44660702 22861 "type" : "string"
56122987 22862 },
44660702 22863 "boot" : {
5370fa8c 22864 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 22865 "format" : "pve-qm-boot",
56122987 22866 "optional" : 1,
4772952b
TL
22867 "type" : "string",
22868 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 22869 },
7aacca6f 22870 "bootdisk" : {
4772952b 22871 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
22872 "format" : "pve-qm-bootdisk",
22873 "optional" : 1,
7aacca6f 22874 "pattern" : "(ide|sata|scsi|virtio)\\d+",
44660702
DM
22875 "type" : "string"
22876 },
27a7acb2 22877 "bwlimit" : {
95895385
TL
22878 "default" : "restore limit from datacenter or storage config",
22879 "description" : "Override I/O bandwidth limit (in KiB/s).",
27a7acb2
DM
22880 "minimum" : "0",
22881 "optional" : 1,
22882 "type" : "integer",
22883 "typetext" : "<integer> (0 - N)"
22884 },
44660702
DM
22885 "cdrom" : {
22886 "description" : "This is an alias for option -ide2",
de0983cb 22887 "format" : "pve-qm-ide",
56122987 22888 "optional" : 1,
44660702 22889 "type" : "string",
013dc89f 22890 "typetext" : "<volume>"
56122987 22891 },
95895385
TL
22892 "cicustom" : {
22893 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
22894 "format" : "pve-qm-cicustom",
22895 "optional" : 1,
22896 "type" : "string",
5370fa8c 22897 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 22898 },
27a7acb2
DM
22899 "cipassword" : {
22900 "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.",
22901 "optional" : 1,
22902 "type" : "string",
22903 "typetext" : "<string>"
22904 },
22905 "citype" : {
22906 "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.",
22907 "enum" : [
22908 "configdrive2",
d2656385
TL
22909 "nocloud",
22910 "opennebula"
27a7acb2
DM
22911 ],
22912 "optional" : 1,
22913 "type" : "string"
22914 },
22915 "ciuser" : {
22916 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
22917 "optional" : 1,
22918 "type" : "string",
22919 "typetext" : "<string>"
22920 },
44660702
DM
22921 "cores" : {
22922 "default" : 1,
22923 "description" : "The number of cores per socket.",
7aacca6f 22924 "minimum" : 1,
44660702 22925 "optional" : 1,
4bd7df8b 22926 "type" : "integer",
013dc89f 22927 "typetext" : "<integer> (1 - N)"
7aacca6f 22928 },
44660702
DM
22929 "cpu" : {
22930 "description" : "Emulated CPU type.",
c5aa7e14 22931 "format" : "pve-vm-cpu-conf",
56122987 22932 "optional" : 1,
4bd7df8b 22933 "type" : "string",
04d22a9f 22934 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
56122987 22935 },
44660702 22936 "cpulimit" : {
7aacca6f 22937 "default" : 0,
c2993fe5 22938 "description" : "Limit of CPU usage.",
44660702
DM
22939 "maximum" : 128,
22940 "minimum" : 0,
7aacca6f 22941 "optional" : 1,
c2993fe5 22942 "type" : "number",
013dc89f 22943 "typetext" : "<number> (0 - 128)",
c2993fe5 22944 "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
22945 },
22946 "cpuunits" : {
5370fa8c
TL
22947 "default" : "cgroup v1: 1024, cgroup v2: 100",
22948 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 22949 "maximum" : 262144,
7af2edf9 22950 "minimum" : 1,
44660702 22951 "optional" : 1,
c2993fe5 22952 "type" : "integer",
7af2edf9 22953 "typetext" : "<integer> (1 - 262144)",
2489d6df 22954 "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
22955 },
22956 "description" : {
8f4d9c87
TL
22957 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
22958 "maxLength" : 8192,
56122987 22959 "optional" : 1,
013dc89f
DM
22960 "type" : "string",
22961 "typetext" : "<string>"
44660702 22962 },
4d47f125 22963 "efidisk0" : {
7af2edf9 22964 "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 22965 "format" : {
5370fa8c
TL
22966 "efitype" : {
22967 "default" : "2m",
22968 "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.",
22969 "enum" : [
22970 "2m",
22971 "4m"
22972 ],
22973 "optional" : 1,
22974 "type" : "string"
22975 },
4d47f125
TL
22976 "file" : {
22977 "default_key" : 1,
22978 "description" : "The drive's backing volume.",
22979 "format" : "pve-volume-id-or-qm-path",
22980 "format_description" : "volume",
22981 "type" : "string"
22982 },
22983 "format" : {
22984 "description" : "The drive's backing file's data format.",
22985 "enum" : [
22986 "raw",
22987 "cow",
22988 "qcow",
22989 "qed",
22990 "qcow2",
22991 "vmdk",
22992 "cloop"
22993 ],
22994 "optional" : 1,
22995 "type" : "string"
22996 },
7af2edf9
TL
22997 "import-from" : {
22998 "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!",
22999 "format" : "pve-volume-id-or-absolute-path",
23000 "format_description" : "source volume",
23001 "optional" : 1,
23002 "type" : "string"
23003 },
5370fa8c
TL
23004 "pre-enrolled-keys" : {
23005 "default" : 0,
23006 "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.",
23007 "optional" : 1,
23008 "type" : "boolean"
23009 },
4d47f125
TL
23010 "size" : {
23011 "description" : "Disk size. This is purely informational and has no effect.",
23012 "format" : "disk-size",
23013 "format_description" : "DiskSize",
23014 "optional" : 1,
23015 "type" : "string"
23016 },
23017 "volume" : {
23018 "alias" : "file"
23019 }
23020 },
23021 "optional" : 1,
23022 "type" : "string",
7af2edf9 23023 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 23024 },
44660702
DM
23025 "force" : {
23026 "description" : "Allow to overwrite existing VM.",
23027 "optional" : 1,
23028 "requires" : "archive",
013dc89f
DM
23029 "type" : "boolean",
23030 "typetext" : "<boolean>"
44660702
DM
23031 },
23032 "freeze" : {
23033 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
23034 "optional" : 1,
013dc89f
DM
23035 "type" : "boolean",
23036 "typetext" : "<boolean>"
44660702 23037 },
5f26e15b
TL
23038 "hookscript" : {
23039 "description" : "Script that will be executed during various steps in the vms lifetime.",
23040 "format" : "pve-volume-id",
23041 "optional" : 1,
23042 "type" : "string",
23043 "typetext" : "<string>"
23044 },
44660702 23045 "hostpci[n]" : {
c2993fe5 23046 "description" : "Map host PCI devices into guest.",
44660702
DM
23047 "format" : "pve-qm-hostpci",
23048 "optional" : 1,
57b78691 23049 "type" : "string",
7af2edf9 23050 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,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 23051 "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
23052 },
23053 "hotplug" : {
23054 "default" : "network,disk,usb",
5370fa8c 23055 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory' and 'usb'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`.",
44660702
DM
23056 "format" : "pve-hotplug-features",
23057 "optional" : 1,
013dc89f
DM
23058 "type" : "string",
23059 "typetext" : "<string>"
7aacca6f 23060 },
4bd7df8b
DM
23061 "hugepages" : {
23062 "description" : "Enable/disable hugepages memory.",
23063 "enum" : [
23064 "any",
23065 "2",
23066 "1024"
23067 ],
23068 "optional" : 1,
23069 "type" : "string"
23070 },
7aacca6f 23071 "ide[n]" : {
7af2edf9 23072 "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 23073 "format" : {
44660702
DM
23074 "aio" : {
23075 "description" : "AIO type to use.",
23076 "enum" : [
23077 "native",
8f4d9c87
TL
23078 "threads",
23079 "io_uring"
44660702 23080 ],
44660702
DM
23081 "optional" : 1,
23082 "type" : "string"
23083 },
23084 "backup" : {
23085 "description" : "Whether the drive should be included when making backups.",
44660702
DM
23086 "optional" : 1,
23087 "type" : "boolean"
23088 },
23089 "bps" : {
de0983cb 23090 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 23091 "format_description" : "bps",
56122987 23092 "optional" : 1,
44660702 23093 "type" : "integer"
56122987 23094 },
de0983cb
DM
23095 "bps_max_length" : {
23096 "description" : "Maximum length of I/O bursts in seconds.",
23097 "format_description" : "seconds",
23098 "minimum" : 1,
23099 "optional" : 1,
23100 "type" : "integer"
23101 },
44660702 23102 "bps_rd" : {
de0983cb 23103 "description" : "Maximum read speed in bytes per second.",
44660702 23104 "format_description" : "bps",
56122987 23105 "optional" : 1,
44660702 23106 "type" : "integer"
56122987 23107 },
de0983cb 23108 "bps_rd_length" : {
5d9c884c
DM
23109 "alias" : "bps_rd_max_length"
23110 },
23111 "bps_rd_max_length" : {
de0983cb
DM
23112 "description" : "Maximum length of read I/O bursts in seconds.",
23113 "format_description" : "seconds",
23114 "minimum" : 1,
23115 "optional" : 1,
23116 "type" : "integer"
23117 },
44660702 23118 "bps_wr" : {
de0983cb 23119 "description" : "Maximum write speed in bytes per second.",
44660702 23120 "format_description" : "bps",
56122987 23121 "optional" : 1,
44660702 23122 "type" : "integer"
56122987 23123 },
de0983cb 23124 "bps_wr_length" : {
5d9c884c
DM
23125 "alias" : "bps_wr_max_length"
23126 },
23127 "bps_wr_max_length" : {
de0983cb
DM
23128 "description" : "Maximum length of write I/O bursts in seconds.",
23129 "format_description" : "seconds",
23130 "minimum" : 1,
23131 "optional" : 1,
23132 "type" : "integer"
23133 },
44660702
DM
23134 "cache" : {
23135 "description" : "The drive's cache mode",
56122987 23136 "enum" : [
7aacca6f 23137 "none",
44660702
DM
23138 "writethrough",
23139 "writeback",
23140 "unsafe",
23141 "directsync"
56122987 23142 ],
56122987 23143 "optional" : 1,
44660702 23144 "type" : "string"
56122987 23145 },
44660702
DM
23146 "cyls" : {
23147 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
23148 "optional" : 1,
23149 "type" : "integer"
7aacca6f 23150 },
44660702
DM
23151 "detect_zeroes" : {
23152 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 23153 "optional" : 1,
44660702 23154 "type" : "boolean"
56122987 23155 },
44660702
DM
23156 "discard" : {
23157 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
23158 "enum" : [
23159 "ignore",
23160 "on"
23161 ],
56122987 23162 "optional" : 1,
44660702 23163 "type" : "string"
56122987 23164 },
7aacca6f 23165 "file" : {
44660702 23166 "default_key" : 1,
7aacca6f 23167 "description" : "The drive's backing volume.",
7aacca6f
DM
23168 "format" : "pve-volume-id-or-qm-path",
23169 "format_description" : "volume",
7aacca6f 23170 "type" : "string"
56122987 23171 },
44660702
DM
23172 "format" : {
23173 "description" : "The drive's backing file's data format.",
56122987 23174 "enum" : [
44660702
DM
23175 "raw",
23176 "cow",
23177 "qcow",
23178 "qed",
23179 "qcow2",
23180 "vmdk",
23181 "cloop"
7aacca6f 23182 ],
7aacca6f
DM
23183 "optional" : 1,
23184 "type" : "string"
56122987 23185 },
44660702
DM
23186 "heads" : {
23187 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 23188 "optional" : 1,
44660702 23189 "type" : "integer"
56122987 23190 },
7af2edf9
TL
23191 "import-from" : {
23192 "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!",
23193 "format" : "pve-volume-id-or-absolute-path",
23194 "format_description" : "source volume",
23195 "optional" : 1,
23196 "type" : "string"
23197 },
44660702 23198 "iops" : {
de0983cb 23199 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 23200 "format_description" : "iops",
56122987 23201 "optional" : 1,
44660702 23202 "type" : "integer"
56122987 23203 },
44660702 23204 "iops_max" : {
de0983cb 23205 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 23206 "format_description" : "iops",
56122987 23207 "optional" : 1,
44660702 23208 "type" : "integer"
56122987 23209 },
de0983cb
DM
23210 "iops_max_length" : {
23211 "description" : "Maximum length of I/O bursts in seconds.",
23212 "format_description" : "seconds",
23213 "minimum" : 1,
23214 "optional" : 1,
23215 "type" : "integer"
23216 },
7aacca6f 23217 "iops_rd" : {
de0983cb 23218 "description" : "Maximum read I/O in operations per second.",
44660702
DM
23219 "format_description" : "iops",
23220 "optional" : 1,
23221 "type" : "integer"
7aacca6f 23222 },
de0983cb 23223 "iops_rd_length" : {
5d9c884c 23224 "alias" : "iops_rd_max_length"
de0983cb 23225 },
44660702 23226 "iops_rd_max" : {
de0983cb 23227 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 23228 "format_description" : "iops",
56122987 23229 "optional" : 1,
44660702 23230 "type" : "integer"
56122987 23231 },
5d9c884c
DM
23232 "iops_rd_max_length" : {
23233 "description" : "Maximum length of read I/O bursts in seconds.",
23234 "format_description" : "seconds",
23235 "minimum" : 1,
23236 "optional" : 1,
23237 "type" : "integer"
23238 },
44660702 23239 "iops_wr" : {
de0983cb 23240 "description" : "Maximum write I/O in operations per second.",
44660702 23241 "format_description" : "iops",
56122987 23242 "optional" : 1,
44660702 23243 "type" : "integer"
7aacca6f 23244 },
de0983cb 23245 "iops_wr_length" : {
5d9c884c 23246 "alias" : "iops_wr_max_length"
de0983cb 23247 },
44660702 23248 "iops_wr_max" : {
de0983cb 23249 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 23250 "format_description" : "iops",
7aacca6f 23251 "optional" : 1,
44660702 23252 "type" : "integer"
56122987 23253 },
5d9c884c
DM
23254 "iops_wr_max_length" : {
23255 "description" : "Maximum length of write I/O bursts in seconds.",
23256 "format_description" : "seconds",
23257 "minimum" : 1,
23258 "optional" : 1,
23259 "type" : "integer"
23260 },
44660702 23261 "mbps" : {
de0983cb 23262 "description" : "Maximum r/w speed in megabytes per second.",
44660702 23263 "format_description" : "mbps",
7aacca6f 23264 "optional" : 1,
44660702 23265 "type" : "number"
56122987 23266 },
44660702 23267 "mbps_max" : {
de0983cb 23268 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
7aacca6f 23269 "format_description" : "mbps",
56122987 23270 "optional" : 1,
44660702 23271 "type" : "number"
56122987 23272 },
44660702 23273 "mbps_rd" : {
de0983cb 23274 "description" : "Maximum read speed in megabytes per second.",
44660702 23275 "format_description" : "mbps",
7aacca6f 23276 "optional" : 1,
44660702 23277 "type" : "number"
7aacca6f 23278 },
44660702 23279 "mbps_rd_max" : {
de0983cb 23280 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 23281 "format_description" : "mbps",
56122987 23282 "optional" : 1,
44660702 23283 "type" : "number"
56122987 23284 },
44660702 23285 "mbps_wr" : {
de0983cb 23286 "description" : "Maximum write speed in megabytes per second.",
44660702 23287 "format_description" : "mbps",
7aacca6f 23288 "optional" : 1,
44660702 23289 "type" : "number"
56122987 23290 },
44660702 23291 "mbps_wr_max" : {
de0983cb 23292 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 23293 "format_description" : "mbps",
56122987 23294 "optional" : 1,
44660702 23295 "type" : "number"
7aacca6f
DM
23296 },
23297 "media" : {
44660702
DM
23298 "default" : "disk",
23299 "description" : "The drive's media type.",
56122987 23300 "enum" : [
7aacca6f
DM
23301 "cdrom",
23302 "disk"
56122987 23303 ],
56122987 23304 "optional" : 1,
44660702 23305 "type" : "string"
56122987 23306 },
44660702
DM
23307 "model" : {
23308 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
23309 "format" : "urlencoded",
23310 "format_description" : "model",
23311 "maxLength" : 120,
56122987 23312 "optional" : 1,
44660702 23313 "type" : "string"
56122987 23314 },
5d9c884c
DM
23315 "replicate" : {
23316 "default" : 1,
23317 "description" : "Whether the drive should considered for replication jobs.",
23318 "optional" : 1,
23319 "type" : "boolean"
23320 },
7aacca6f 23321 "rerror" : {
7aacca6f
DM
23322 "description" : "Read error action.",
23323 "enum" : [
23324 "ignore",
23325 "report",
23326 "stop"
44660702 23327 ],
44660702
DM
23328 "optional" : 1,
23329 "type" : "string"
56122987 23330 },
44660702
DM
23331 "secs" : {
23332 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 23333 "optional" : 1,
44660702
DM
23334 "type" : "integer"
23335 },
23336 "serial" : {
23337 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
23338 "format" : "urlencoded",
23339 "format_description" : "serial",
23340 "maxLength" : 60,
23341 "optional" : 1,
23342 "type" : "string"
23343 },
27a7acb2
DM
23344 "shared" : {
23345 "default" : 0,
23346 "description" : "Mark this locally-managed volume as available on all nodes",
23347 "optional" : 1,
23348 "type" : "boolean",
23349 "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!"
23350 },
44660702
DM
23351 "size" : {
23352 "description" : "Disk size. This is purely informational and has no effect.",
23353 "format" : "disk-size",
f004f5b9 23354 "format_description" : "DiskSize",
44660702
DM
23355 "optional" : 1,
23356 "type" : "string"
7aacca6f
DM
23357 },
23358 "snapshot" : {
27a7acb2 23359 "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 23360 "optional" : 1,
44660702 23361 "type" : "boolean"
7aacca6f 23362 },
25203dc1
NC
23363 "ssd" : {
23364 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
23365 "optional" : 1,
23366 "type" : "boolean"
23367 },
44660702
DM
23368 "trans" : {
23369 "description" : "Force disk geometry bios translation mode.",
23370 "enum" : [
23371 "none",
23372 "lba",
23373 "auto"
23374 ],
7aacca6f 23375 "optional" : 1,
44660702
DM
23376 "type" : "string"
23377 },
23378 "volume" : {
23379 "alias" : "file"
23380 },
23381 "werror" : {
23382 "description" : "Write error action.",
23383 "enum" : [
23384 "enospc",
23385 "ignore",
23386 "report",
23387 "stop"
23388 ],
44660702
DM
23389 "optional" : 1,
23390 "type" : "string"
95895385
TL
23391 },
23392 "wwn" : {
23393 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
23394 "format_description" : "wwn",
23395 "optional" : 1,
23396 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
23397 "type" : "string"
56122987
DM
23398 }
23399 },
56122987 23400 "optional" : 1,
4bd7df8b 23401 "type" : "string",
7af2edf9 23402 "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
23403 },
23404 "ipconfig[n]" : {
d2656385 23405 "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
23406 "format" : "pve-qm-ipconfig",
23407 "optional" : 1,
23408 "type" : "string",
23409 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
56122987 23410 },
95895385
TL
23411 "ivshmem" : {
23412 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
23413 "format" : {
23414 "name" : {
23415 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
23416 "format_description" : "string",
23417 "optional" : 1,
23418 "pattern" : "[a-zA-Z0-9\\-]+",
23419 "type" : "string"
23420 },
23421 "size" : {
23422 "description" : "The size of the file in MB.",
23423 "minimum" : 1,
23424 "type" : "integer"
23425 }
23426 },
23427 "optional" : 1,
23428 "type" : "string",
23429 "typetext" : "size=<integer> [,name=<string>]"
23430 },
4772952b
TL
23431 "keephugepages" : {
23432 "default" : 0,
23433 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
23434 "optional" : 1,
23435 "type" : "boolean",
23436 "typetext" : "<boolean>"
23437 },
56122987 23438 "keyboard" : {
35a75dd3 23439 "default" : null,
7af2edf9 23440 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
56122987 23441 "enum" : [
44660702
DM
23442 "de",
23443 "de-ch",
7aacca6f 23444 "da",
56122987 23445 "en-gb",
44660702
DM
23446 "en-us",
23447 "es",
23448 "fi",
23449 "fr",
23450 "fr-be",
23451 "fr-ca",
23452 "fr-ch",
23453 "hu",
7aacca6f 23454 "is",
44660702
DM
23455 "it",
23456 "ja",
23457 "lt",
56122987 23458 "mk",
7aacca6f 23459 "nl",
56122987 23460 "no",
44660702 23461 "pl",
7aacca6f 23462 "pt",
44660702
DM
23463 "pt-br",
23464 "sv",
23465 "sl",
23466 "tr"
56122987 23467 ],
44660702
DM
23468 "optional" : 1,
23469 "type" : "string"
56122987 23470 },
44660702
DM
23471 "kvm" : {
23472 "default" : 1,
23473 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 23474 "optional" : 1,
013dc89f
DM
23475 "type" : "boolean",
23476 "typetext" : "<boolean>"
7aacca6f 23477 },
d2656385
TL
23478 "live-restore" : {
23479 "description" : "Start the VM immediately from the backup and restore in background. PBS only.",
23480 "optional" : 1,
23481 "requires" : "archive",
23482 "type" : "boolean",
23483 "typetext" : "<boolean>"
23484 },
44660702 23485 "localtime" : {
5370fa8c 23486 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 23487 "optional" : 1,
013dc89f
DM
23488 "type" : "boolean",
23489 "typetext" : "<boolean>"
44660702
DM
23490 },
23491 "lock" : {
23492 "description" : "Lock/unlock the VM.",
7aacca6f 23493 "enum" : [
7aacca6f 23494 "backup",
5f26e15b
TL
23495 "clone",
23496 "create",
23497 "migrate",
23498 "rollback",
7aacca6f 23499 "snapshot",
95895385
TL
23500 "snapshot-delete",
23501 "suspending",
23502 "suspended"
7aacca6f 23503 ],
44660702
DM
23504 "optional" : 1,
23505 "type" : "string"
56122987 23506 },
44660702 23507 "machine" : {
4d47f125 23508 "description" : "Specifies the Qemu machine type.",
44660702
DM
23509 "maxLength" : 40,
23510 "optional" : 1,
5c1699e5 23511 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
23512 "type" : "string"
23513 },
23514 "memory" : {
23515 "default" : 512,
23516 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
23517 "minimum" : 16,
23518 "optional" : 1,
4bd7df8b 23519 "type" : "integer",
013dc89f 23520 "typetext" : "<integer> (16 - N)"
44660702
DM
23521 },
23522 "migrate_downtime" : {
23523 "default" : 0.1,
23524 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
23525 "minimum" : 0,
23526 "optional" : 1,
4bd7df8b 23527 "type" : "number",
013dc89f 23528 "typetext" : "<number> (0 - N)"
44660702
DM
23529 },
23530 "migrate_speed" : {
56122987 23531 "default" : 0,
44660702
DM
23532 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
23533 "minimum" : 0,
56122987 23534 "optional" : 1,
4bd7df8b 23535 "type" : "integer",
013dc89f 23536 "typetext" : "<integer> (0 - N)"
56122987 23537 },
27a7acb2
DM
23538 "name" : {
23539 "description" : "Set a name for the VM. Only used on the configuration web interface.",
23540 "format" : "dns-name",
23541 "optional" : 1,
23542 "type" : "string",
23543 "typetext" : "<string>"
23544 },
23545 "nameserver" : {
4772952b 23546 "description" : "cloud-init: Sets DNS server IP address for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
27a7acb2 23547 "format" : "address-list",
44660702 23548 "optional" : 1,
013dc89f
DM
23549 "type" : "string",
23550 "typetext" : "<string>"
44660702
DM
23551 },
23552 "net[n]" : {
c2993fe5 23553 "description" : "Specify network devices.",
f004f5b9
DM
23554 "format" : {
23555 "bridge" : {
c2993fe5 23556 "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 23557 "format" : "pve-bridge-id",
f004f5b9
DM
23558 "format_description" : "bridge",
23559 "optional" : 1,
23560 "type" : "string"
23561 },
23562 "e1000" : {
23563 "alias" : "macaddr",
23564 "keyAlias" : "model"
23565 },
23566 "e1000-82540em" : {
23567 "alias" : "macaddr",
23568 "keyAlias" : "model"
23569 },
23570 "e1000-82544gc" : {
23571 "alias" : "macaddr",
23572 "keyAlias" : "model"
23573 },
23574 "e1000-82545em" : {
23575 "alias" : "macaddr",
23576 "keyAlias" : "model"
23577 },
5370fa8c
TL
23578 "e1000e" : {
23579 "alias" : "macaddr",
23580 "keyAlias" : "model"
23581 },
f004f5b9
DM
23582 "firewall" : {
23583 "description" : "Whether this interface should be protected by the firewall.",
23584 "optional" : 1,
23585 "type" : "boolean"
23586 },
23587 "i82551" : {
23588 "alias" : "macaddr",
23589 "keyAlias" : "model"
23590 },
23591 "i82557b" : {
23592 "alias" : "macaddr",
23593 "keyAlias" : "model"
23594 },
23595 "i82559er" : {
23596 "alias" : "macaddr",
23597 "keyAlias" : "model"
23598 },
23599 "link_down" : {
c2993fe5 23600 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
23601 "optional" : 1,
23602 "type" : "boolean"
23603 },
23604 "macaddr" : {
c2993fe5 23605 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 23606 "format" : "mac-addr",
f004f5b9 23607 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 23608 "optional" : 1,
95895385
TL
23609 "type" : "string",
23610 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
23611 },
23612 "model" : {
23613 "default_key" : 1,
c2993fe5 23614 "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 23615 "enum" : [
f004f5b9 23616 "e1000",
5370fa8c
TL
23617 "e1000-82540em",
23618 "e1000-82544gc",
23619 "e1000-82545em",
23620 "e1000e",
f004f5b9
DM
23621 "i82551",
23622 "i82557b",
23623 "i82559er",
5370fa8c
TL
23624 "ne2k_isa",
23625 "ne2k_pci",
23626 "pcnet",
23627 "rtl8139",
23628 "virtio",
23629 "vmxnet3"
f004f5b9 23630 ],
f004f5b9
DM
23631 "type" : "string"
23632 },
ac70d7d1
TL
23633 "mtu" : {
23634 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
23635 "maximum" : 65520,
23636 "minimum" : 1,
23637 "optional" : 1,
23638 "type" : "integer"
23639 },
f004f5b9
DM
23640 "ne2k_isa" : {
23641 "alias" : "macaddr",
23642 "keyAlias" : "model"
23643 },
23644 "ne2k_pci" : {
23645 "alias" : "macaddr",
23646 "keyAlias" : "model"
23647 },
23648 "pcnet" : {
23649 "alias" : "macaddr",
23650 "keyAlias" : "model"
23651 },
23652 "queues" : {
23653 "description" : "Number of packet queues to be used on the device.",
23654 "maximum" : 16,
23655 "minimum" : 0,
23656 "optional" : 1,
23657 "type" : "integer"
23658 },
23659 "rate" : {
c2993fe5 23660 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
23661 "minimum" : 0,
23662 "optional" : 1,
23663 "type" : "number"
23664 },
23665 "rtl8139" : {
23666 "alias" : "macaddr",
23667 "keyAlias" : "model"
23668 },
23669 "tag" : {
23670 "description" : "VLAN tag to apply to packets on this interface.",
23671 "maximum" : 4094,
c2993fe5 23672 "minimum" : 1,
f004f5b9
DM
23673 "optional" : 1,
23674 "type" : "integer"
23675 },
23676 "trunks" : {
23677 "description" : "VLAN trunks to pass through this interface.",
23678 "format_description" : "vlanid[;vlanid...]",
23679 "optional" : 1,
23680 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
23681 "type" : "string"
23682 },
23683 "virtio" : {
23684 "alias" : "macaddr",
23685 "keyAlias" : "model"
23686 },
23687 "vmxnet3" : {
23688 "alias" : "macaddr",
23689 "keyAlias" : "model"
23690 }
23691 },
44660702 23692 "optional" : 1,
4bd7df8b 23693 "type" : "string",
ac70d7d1 23694 "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
23695 },
23696 "node" : {
23697 "description" : "The cluster node name.",
23698 "format" : "pve-node",
013dc89f
DM
23699 "type" : "string",
23700 "typetext" : "<string>"
44660702
DM
23701 },
23702 "numa" : {
7aacca6f 23703 "default" : 0,
44660702
DM
23704 "description" : "Enable/disable NUMA.",
23705 "optional" : 1,
013dc89f
DM
23706 "type" : "boolean",
23707 "typetext" : "<boolean>"
56122987 23708 },
7aacca6f 23709 "numa[n]" : {
c2993fe5 23710 "description" : "NUMA topology.",
7aacca6f 23711 "format" : {
44660702 23712 "cpus" : {
c2993fe5 23713 "description" : "CPUs accessing this NUMA node.",
44660702
DM
23714 "format_description" : "id[-id];...",
23715 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
23716 "type" : "string"
23717 },
7aacca6f 23718 "hostnodes" : {
c2993fe5 23719 "description" : "Host NUMA nodes to use.",
44660702 23720 "format_description" : "id[-id];...",
7aacca6f 23721 "optional" : 1,
44660702
DM
23722 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
23723 "type" : "string"
7aacca6f 23724 },
44660702 23725 "memory" : {
c2993fe5 23726 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
23727 "optional" : 1,
23728 "type" : "number"
7aacca6f
DM
23729 },
23730 "policy" : {
c2993fe5 23731 "description" : "NUMA allocation policy.",
7aacca6f
DM
23732 "enum" : [
23733 "preferred",
23734 "bind",
23735 "interleave"
23736 ],
7aacca6f 23737 "optional" : 1,
44660702 23738 "type" : "string"
7aacca6f
DM
23739 }
23740 },
56122987 23741 "optional" : 1,
4bd7df8b
DM
23742 "type" : "string",
23743 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 23744 },
44660702
DM
23745 "onboot" : {
23746 "default" : 0,
23747 "description" : "Specifies whether a VM will be started during system bootup.",
56122987 23748 "optional" : 1,
013dc89f
DM
23749 "type" : "boolean",
23750 "typetext" : "<boolean>"
56122987
DM
23751 },
23752 "ostype" : {
c2993fe5 23753 "description" : "Specify guest operating system.",
56122987
DM
23754 "enum" : [
23755 "other",
23756 "wxp",
23757 "w2k",
23758 "w2k3",
23759 "w2k8",
23760 "wvista",
23761 "win7",
23762 "win8",
32d876b5 23763 "win10",
5370fa8c 23764 "win11",
56122987
DM
23765 "l24",
23766 "l26",
23767 "solaris"
44660702 23768 ],
56122987 23769 "optional" : 1,
c2993fe5 23770 "type" : "string",
5370fa8c 23771 "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 - 5.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n"
56122987 23772 },
44660702 23773 "parallel[n]" : {
c2993fe5 23774 "description" : "Map host parallel devices (n is 0 to 2).",
56122987 23775 "optional" : 1,
44660702 23776 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 23777 "type" : "string",
4772952b 23778 "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 23779 },
44660702
DM
23780 "pool" : {
23781 "description" : "Add the VM to the specified pool.",
23782 "format" : "pve-poolid",
56122987 23783 "optional" : 1,
013dc89f
DM
23784 "type" : "string",
23785 "typetext" : "<string>"
56122987 23786 },
44660702
DM
23787 "protection" : {
23788 "default" : 0,
c2993fe5 23789 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
56122987 23790 "optional" : 1,
013dc89f
DM
23791 "type" : "boolean",
23792 "typetext" : "<boolean>"
56122987 23793 },
44660702 23794 "reboot" : {
7aacca6f 23795 "default" : 1,
44660702
DM
23796 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
23797 "optional" : 1,
013dc89f
DM
23798 "type" : "boolean",
23799 "typetext" : "<boolean>"
56122987 23800 },
c5aa7e14
TL
23801 "rng0" : {
23802 "description" : "Configure a VirtIO-based Random Number Generator.",
23803 "format" : {
23804 "max_bytes" : {
23805 "default" : 1024,
5370fa8c 23806 "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
23807 "optional" : 1,
23808 "type" : "integer"
23809 },
23810 "period" : {
23811 "default" : 1000,
23812 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
23813 "optional" : 1,
23814 "type" : "integer"
23815 },
23816 "source" : {
23817 "default_key" : 1,
5370fa8c 23818 "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
23819 "enum" : [
23820 "/dev/urandom",
23821 "/dev/random",
23822 "/dev/hwrng"
23823 ],
23824 "type" : "string"
23825 }
23826 },
23827 "optional" : 1,
23828 "type" : "string",
23829 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
23830 },
56122987 23831 "sata[n]" : {
7af2edf9 23832 "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 23833 "format" : {
7aacca6f 23834 "aio" : {
44660702 23835 "description" : "AIO type to use.",
56122987 23836 "enum" : [
7aacca6f 23837 "native",
8f4d9c87
TL
23838 "threads",
23839 "io_uring"
56122987 23840 ],
7aacca6f 23841 "optional" : 1,
44660702 23842 "type" : "string"
7aacca6f
DM
23843 },
23844 "backup" : {
7aacca6f 23845 "description" : "Whether the drive should be included when making backups.",
7aacca6f 23846 "optional" : 1,
44660702 23847 "type" : "boolean"
56122987 23848 },
44660702 23849 "bps" : {
de0983cb 23850 "description" : "Maximum r/w speed in bytes per second.",
44660702 23851 "format_description" : "bps",
7aacca6f 23852 "optional" : 1,
44660702 23853 "type" : "integer"
56122987 23854 },
de0983cb
DM
23855 "bps_max_length" : {
23856 "description" : "Maximum length of I/O bursts in seconds.",
23857 "format_description" : "seconds",
23858 "minimum" : 1,
23859 "optional" : 1,
23860 "type" : "integer"
23861 },
44660702 23862 "bps_rd" : {
de0983cb 23863 "description" : "Maximum read speed in bytes per second.",
44660702 23864 "format_description" : "bps",
56122987 23865 "optional" : 1,
44660702 23866 "type" : "integer"
7aacca6f 23867 },
de0983cb 23868 "bps_rd_length" : {
5d9c884c
DM
23869 "alias" : "bps_rd_max_length"
23870 },
23871 "bps_rd_max_length" : {
de0983cb
DM
23872 "description" : "Maximum length of read I/O bursts in seconds.",
23873 "format_description" : "seconds",
23874 "minimum" : 1,
23875 "optional" : 1,
23876 "type" : "integer"
23877 },
44660702 23878 "bps_wr" : {
de0983cb 23879 "description" : "Maximum write speed in bytes per second.",
44660702 23880 "format_description" : "bps",
56122987 23881 "optional" : 1,
44660702 23882 "type" : "integer"
56122987 23883 },
de0983cb 23884 "bps_wr_length" : {
5d9c884c
DM
23885 "alias" : "bps_wr_max_length"
23886 },
23887 "bps_wr_max_length" : {
de0983cb
DM
23888 "description" : "Maximum length of write I/O bursts in seconds.",
23889 "format_description" : "seconds",
23890 "minimum" : 1,
23891 "optional" : 1,
23892 "type" : "integer"
23893 },
7aacca6f 23894 "cache" : {
7aacca6f
DM
23895 "description" : "The drive's cache mode",
23896 "enum" : [
23897 "none",
23898 "writethrough",
23899 "writeback",
23900 "unsafe",
23901 "directsync"
23902 ],
44660702
DM
23903 "optional" : 1,
23904 "type" : "string"
56122987 23905 },
44660702
DM
23906 "cyls" : {
23907 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 23908 "optional" : 1,
7aacca6f 23909 "type" : "integer"
56122987 23910 },
7aacca6f
DM
23911 "detect_zeroes" : {
23912 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 23913 "optional" : 1,
7aacca6f 23914 "type" : "boolean"
56122987 23915 },
44660702
DM
23916 "discard" : {
23917 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
23918 "enum" : [
23919 "ignore",
23920 "on"
23921 ],
56122987 23922 "optional" : 1,
44660702 23923 "type" : "string"
56122987 23924 },
44660702
DM
23925 "file" : {
23926 "default_key" : 1,
23927 "description" : "The drive's backing volume.",
23928 "format" : "pve-volume-id-or-qm-path",
23929 "format_description" : "volume",
23930 "type" : "string"
56122987
DM
23931 },
23932 "format" : {
44660702 23933 "description" : "The drive's backing file's data format.",
56122987
DM
23934 "enum" : [
23935 "raw",
23936 "cow",
23937 "qcow",
23938 "qed",
23939 "qcow2",
23940 "vmdk",
23941 "cloop"
23942 ],
56122987 23943 "optional" : 1,
44660702 23944 "type" : "string"
56122987 23945 },
7aacca6f 23946 "heads" : {
7aacca6f 23947 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
23948 "optional" : 1,
23949 "type" : "integer"
56122987 23950 },
7af2edf9
TL
23951 "import-from" : {
23952 "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!",
23953 "format" : "pve-volume-id-or-absolute-path",
23954 "format_description" : "source volume",
23955 "optional" : 1,
23956 "type" : "string"
23957 },
44660702 23958 "iops" : {
de0983cb 23959 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
23960 "format_description" : "iops",
23961 "optional" : 1,
23962 "type" : "integer"
56122987 23963 },
44660702 23964 "iops_max" : {
de0983cb 23965 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 23966 "format_description" : "iops",
56122987 23967 "optional" : 1,
44660702 23968 "type" : "integer"
56122987 23969 },
de0983cb
DM
23970 "iops_max_length" : {
23971 "description" : "Maximum length of I/O bursts in seconds.",
23972 "format_description" : "seconds",
23973 "minimum" : 1,
23974 "optional" : 1,
23975 "type" : "integer"
23976 },
44660702 23977 "iops_rd" : {
de0983cb 23978 "description" : "Maximum read I/O in operations per second.",
44660702 23979 "format_description" : "iops",
56122987 23980 "optional" : 1,
44660702 23981 "type" : "integer"
56122987 23982 },
de0983cb 23983 "iops_rd_length" : {
5d9c884c 23984 "alias" : "iops_rd_max_length"
de0983cb 23985 },
44660702 23986 "iops_rd_max" : {
de0983cb 23987 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 23988 "format_description" : "iops",
56122987 23989 "optional" : 1,
44660702 23990 "type" : "integer"
56122987 23991 },
5d9c884c
DM
23992 "iops_rd_max_length" : {
23993 "description" : "Maximum length of read I/O bursts in seconds.",
23994 "format_description" : "seconds",
23995 "minimum" : 1,
23996 "optional" : 1,
23997 "type" : "integer"
23998 },
44660702 23999 "iops_wr" : {
de0983cb 24000 "description" : "Maximum write I/O in operations per second.",
44660702 24001 "format_description" : "iops",
7aacca6f 24002 "optional" : 1,
44660702 24003 "type" : "integer"
7aacca6f 24004 },
de0983cb 24005 "iops_wr_length" : {
5d9c884c 24006 "alias" : "iops_wr_max_length"
de0983cb 24007 },
44660702 24008 "iops_wr_max" : {
de0983cb 24009 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 24010 "format_description" : "iops",
56122987 24011 "optional" : 1,
7aacca6f 24012 "type" : "integer"
56122987 24013 },
5d9c884c
DM
24014 "iops_wr_max_length" : {
24015 "description" : "Maximum length of write I/O bursts in seconds.",
24016 "format_description" : "seconds",
24017 "minimum" : 1,
24018 "optional" : 1,
24019 "type" : "integer"
24020 },
44660702 24021 "mbps" : {
de0983cb 24022 "description" : "Maximum r/w speed in megabytes per second.",
44660702 24023 "format_description" : "mbps",
56122987 24024 "optional" : 1,
44660702 24025 "type" : "number"
56122987 24026 },
44660702 24027 "mbps_max" : {
de0983cb 24028 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 24029 "format_description" : "mbps",
7aacca6f 24030 "optional" : 1,
44660702 24031 "type" : "number"
7aacca6f 24032 },
44660702 24033 "mbps_rd" : {
de0983cb 24034 "description" : "Maximum read speed in megabytes per second.",
44660702 24035 "format_description" : "mbps",
7aacca6f 24036 "optional" : 1,
44660702 24037 "type" : "number"
7aacca6f 24038 },
44660702 24039 "mbps_rd_max" : {
de0983cb 24040 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 24041 "format_description" : "mbps",
7aacca6f 24042 "optional" : 1,
44660702 24043 "type" : "number"
7aacca6f 24044 },
44660702 24045 "mbps_wr" : {
de0983cb 24046 "description" : "Maximum write speed in megabytes per second.",
44660702 24047 "format_description" : "mbps",
7aacca6f 24048 "optional" : 1,
44660702 24049 "type" : "number"
7aacca6f
DM
24050 },
24051 "mbps_wr_max" : {
de0983cb 24052 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 24053 "format_description" : "mbps",
7aacca6f 24054 "optional" : 1,
44660702 24055 "type" : "number"
7aacca6f 24056 },
44660702
DM
24057 "media" : {
24058 "default" : "disk",
24059 "description" : "The drive's media type.",
56122987 24060 "enum" : [
44660702
DM
24061 "cdrom",
24062 "disk"
56122987 24063 ],
56122987 24064 "optional" : 1,
44660702 24065 "type" : "string"
56122987 24066 },
5d9c884c
DM
24067 "replicate" : {
24068 "default" : 1,
24069 "description" : "Whether the drive should considered for replication jobs.",
24070 "optional" : 1,
24071 "type" : "boolean"
24072 },
44660702
DM
24073 "rerror" : {
24074 "description" : "Read error action.",
7aacca6f
DM
24075 "enum" : [
24076 "ignore",
44660702
DM
24077 "report",
24078 "stop"
7aacca6f 24079 ],
56122987 24080 "optional" : 1,
44660702 24081 "type" : "string"
56122987 24082 },
44660702
DM
24083 "secs" : {
24084 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 24085 "optional" : 1,
44660702 24086 "type" : "integer"
56122987 24087 },
44660702
DM
24088 "serial" : {
24089 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
24090 "format" : "urlencoded",
24091 "format_description" : "serial",
24092 "maxLength" : 60,
24093 "optional" : 1,
24094 "type" : "string"
7aacca6f 24095 },
27a7acb2
DM
24096 "shared" : {
24097 "default" : 0,
24098 "description" : "Mark this locally-managed volume as available on all nodes",
24099 "optional" : 1,
24100 "type" : "boolean",
24101 "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!"
24102 },
7aacca6f
DM
24103 "size" : {
24104 "description" : "Disk size. This is purely informational and has no effect.",
44660702 24105 "format" : "disk-size",
f004f5b9 24106 "format_description" : "DiskSize",
56122987 24107 "optional" : 1,
44660702 24108 "type" : "string"
56122987 24109 },
44660702 24110 "snapshot" : {
27a7acb2 24111 "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 24112 "optional" : 1,
44660702 24113 "type" : "boolean"
56122987 24114 },
25203dc1
NC
24115 "ssd" : {
24116 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
24117 "optional" : 1,
24118 "type" : "boolean"
24119 },
44660702
DM
24120 "trans" : {
24121 "description" : "Force disk geometry bios translation mode.",
56122987 24122 "enum" : [
44660702
DM
24123 "none",
24124 "lba",
24125 "auto"
7aacca6f 24126 ],
44660702
DM
24127 "optional" : 1,
24128 "type" : "string"
24129 },
24130 "volume" : {
24131 "alias" : "file"
56122987
DM
24132 },
24133 "werror" : {
56122987
DM
24134 "description" : "Write error action.",
24135 "enum" : [
24136 "enospc",
24137 "ignore",
24138 "report",
24139 "stop"
24140 ],
56122987 24141 "optional" : 1,
44660702 24142 "type" : "string"
95895385
TL
24143 },
24144 "wwn" : {
24145 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
24146 "format_description" : "wwn",
24147 "optional" : 1,
24148 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
24149 "type" : "string"
44660702
DM
24150 }
24151 },
24152 "optional" : 1,
4bd7df8b 24153 "type" : "string",
7af2edf9 24154 "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
24155 },
24156 "scsi[n]" : {
7af2edf9 24157 "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
24158 "format" : {
24159 "aio" : {
24160 "description" : "AIO type to use.",
24161 "enum" : [
24162 "native",
8f4d9c87
TL
24163 "threads",
24164 "io_uring"
44660702 24165 ],
44660702
DM
24166 "optional" : 1,
24167 "type" : "string"
56122987 24168 },
7aacca6f 24169 "backup" : {
44660702 24170 "description" : "Whether the drive should be included when making backups.",
7aacca6f 24171 "optional" : 1,
44660702 24172 "type" : "boolean"
7aacca6f 24173 },
44660702 24174 "bps" : {
de0983cb 24175 "description" : "Maximum r/w speed in bytes per second.",
44660702 24176 "format_description" : "bps",
7aacca6f 24177 "optional" : 1,
44660702 24178 "type" : "integer"
7aacca6f 24179 },
de0983cb
DM
24180 "bps_max_length" : {
24181 "description" : "Maximum length of I/O bursts in seconds.",
24182 "format_description" : "seconds",
24183 "minimum" : 1,
24184 "optional" : 1,
24185 "type" : "integer"
24186 },
44660702 24187 "bps_rd" : {
de0983cb 24188 "description" : "Maximum read speed in bytes per second.",
44660702 24189 "format_description" : "bps",
56122987 24190 "optional" : 1,
44660702 24191 "type" : "integer"
56122987 24192 },
de0983cb 24193 "bps_rd_length" : {
5d9c884c
DM
24194 "alias" : "bps_rd_max_length"
24195 },
24196 "bps_rd_max_length" : {
de0983cb
DM
24197 "description" : "Maximum length of read I/O bursts in seconds.",
24198 "format_description" : "seconds",
24199 "minimum" : 1,
24200 "optional" : 1,
24201 "type" : "integer"
24202 },
44660702 24203 "bps_wr" : {
de0983cb 24204 "description" : "Maximum write speed in bytes per second.",
44660702 24205 "format_description" : "bps",
7aacca6f 24206 "optional" : 1,
44660702 24207 "type" : "integer"
56122987 24208 },
de0983cb 24209 "bps_wr_length" : {
5d9c884c
DM
24210 "alias" : "bps_wr_max_length"
24211 },
24212 "bps_wr_max_length" : {
de0983cb
DM
24213 "description" : "Maximum length of write I/O bursts in seconds.",
24214 "format_description" : "seconds",
24215 "minimum" : 1,
24216 "optional" : 1,
24217 "type" : "integer"
24218 },
44660702
DM
24219 "cache" : {
24220 "description" : "The drive's cache mode",
7aacca6f
DM
24221 "enum" : [
24222 "none",
44660702
DM
24223 "writethrough",
24224 "writeback",
24225 "unsafe",
24226 "directsync"
7aacca6f 24227 ],
56122987 24228 "optional" : 1,
44660702 24229 "type" : "string"
56122987 24230 },
7aacca6f
DM
24231 "cyls" : {
24232 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
24233 "optional" : 1,
44660702 24234 "type" : "integer"
7aacca6f 24235 },
44660702
DM
24236 "detect_zeroes" : {
24237 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 24238 "optional" : 1,
44660702 24239 "type" : "boolean"
56122987 24240 },
44660702
DM
24241 "discard" : {
24242 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
7aacca6f 24243 "enum" : [
44660702
DM
24244 "ignore",
24245 "on"
7aacca6f 24246 ],
7aacca6f 24247 "optional" : 1,
44660702 24248 "type" : "string"
56122987
DM
24249 },
24250 "file" : {
7aacca6f
DM
24251 "default_key" : 1,
24252 "description" : "The drive's backing volume.",
44660702
DM
24253 "format" : "pve-volume-id-or-qm-path",
24254 "format_description" : "volume",
7aacca6f 24255 "type" : "string"
56122987 24256 },
7aacca6f 24257 "format" : {
44660702 24258 "description" : "The drive's backing file's data format.",
56122987 24259 "enum" : [
7aacca6f
DM
24260 "raw",
24261 "cow",
24262 "qcow",
24263 "qed",
24264 "qcow2",
24265 "vmdk",
24266 "cloop"
56122987 24267 ],
44660702
DM
24268 "optional" : 1,
24269 "type" : "string"
56122987 24270 },
44660702
DM
24271 "heads" : {
24272 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
24273 "optional" : 1,
24274 "type" : "integer"
24275 },
7af2edf9
TL
24276 "import-from" : {
24277 "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!",
24278 "format" : "pve-volume-id-or-absolute-path",
24279 "format_description" : "source volume",
24280 "optional" : 1,
24281 "type" : "string"
24282 },
44660702 24283 "iops" : {
de0983cb 24284 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 24285 "format_description" : "iops",
56122987 24286 "optional" : 1,
44660702 24287 "type" : "integer"
56122987 24288 },
44660702 24289 "iops_max" : {
de0983cb 24290 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 24291 "format_description" : "iops",
7aacca6f 24292 "optional" : 1,
44660702 24293 "type" : "integer"
56122987 24294 },
de0983cb
DM
24295 "iops_max_length" : {
24296 "description" : "Maximum length of I/O bursts in seconds.",
24297 "format_description" : "seconds",
24298 "minimum" : 1,
24299 "optional" : 1,
24300 "type" : "integer"
24301 },
44660702 24302 "iops_rd" : {
de0983cb 24303 "description" : "Maximum read I/O in operations per second.",
44660702 24304 "format_description" : "iops",
56122987 24305 "optional" : 1,
44660702 24306 "type" : "integer"
56122987 24307 },
de0983cb 24308 "iops_rd_length" : {
5d9c884c 24309 "alias" : "iops_rd_max_length"
de0983cb 24310 },
44660702 24311 "iops_rd_max" : {
de0983cb 24312 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
24313 "format_description" : "iops",
24314 "optional" : 1,
24315 "type" : "integer"
56122987 24316 },
5d9c884c
DM
24317 "iops_rd_max_length" : {
24318 "description" : "Maximum length of read I/O bursts in seconds.",
24319 "format_description" : "seconds",
24320 "minimum" : 1,
24321 "optional" : 1,
24322 "type" : "integer"
24323 },
44660702 24324 "iops_wr" : {
de0983cb 24325 "description" : "Maximum write I/O in operations per second.",
44660702 24326 "format_description" : "iops",
56122987 24327 "optional" : 1,
44660702 24328 "type" : "integer"
56122987 24329 },
de0983cb 24330 "iops_wr_length" : {
5d9c884c 24331 "alias" : "iops_wr_max_length"
de0983cb 24332 },
44660702 24333 "iops_wr_max" : {
de0983cb 24334 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 24335 "format_description" : "iops",
56122987 24336 "optional" : 1,
56122987
DM
24337 "type" : "integer"
24338 },
5d9c884c
DM
24339 "iops_wr_max_length" : {
24340 "description" : "Maximum length of write I/O bursts in seconds.",
24341 "format_description" : "seconds",
24342 "minimum" : 1,
24343 "optional" : 1,
24344 "type" : "integer"
24345 },
44660702
DM
24346 "iothread" : {
24347 "description" : "Whether to use iothreads for this drive",
44660702
DM
24348 "optional" : 1,
24349 "type" : "boolean"
24350 },
24351 "mbps" : {
de0983cb 24352 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
24353 "format_description" : "mbps",
24354 "optional" : 1,
24355 "type" : "number"
24356 },
7aacca6f 24357 "mbps_max" : {
de0983cb 24358 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 24359 "format_description" : "mbps",
56122987 24360 "optional" : 1,
44660702 24361 "type" : "number"
56122987 24362 },
44660702 24363 "mbps_rd" : {
de0983cb 24364 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
24365 "format_description" : "mbps",
24366 "optional" : 1,
24367 "type" : "number"
56122987 24368 },
44660702 24369 "mbps_rd_max" : {
de0983cb 24370 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 24371 "format_description" : "mbps",
56122987 24372 "optional" : 1,
44660702 24373 "type" : "number"
56122987 24374 },
44660702 24375 "mbps_wr" : {
de0983cb 24376 "description" : "Maximum write speed in megabytes per second.",
44660702 24377 "format_description" : "mbps",
56122987 24378 "optional" : 1,
44660702 24379 "type" : "number"
56122987 24380 },
44660702 24381 "mbps_wr_max" : {
de0983cb 24382 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 24383 "format_description" : "mbps",
7aacca6f 24384 "optional" : 1,
44660702 24385 "type" : "number"
56122987 24386 },
7aacca6f 24387 "media" : {
44660702 24388 "default" : "disk",
7aacca6f
DM
24389 "description" : "The drive's media type.",
24390 "enum" : [
24391 "cdrom",
24392 "disk"
24393 ],
56122987 24394 "optional" : 1,
44660702 24395 "type" : "string"
56122987 24396 },
44660702
DM
24397 "queues" : {
24398 "description" : "Number of queues.",
44660702
DM
24399 "minimum" : 2,
24400 "optional" : 1,
24401 "type" : "integer"
56122987 24402 },
5d9c884c
DM
24403 "replicate" : {
24404 "default" : 1,
24405 "description" : "Whether the drive should considered for replication jobs.",
24406 "optional" : 1,
24407 "type" : "boolean"
24408 },
24409 "rerror" : {
24410 "description" : "Read error action.",
24411 "enum" : [
24412 "ignore",
24413 "report",
24414 "stop"
24415 ],
24416 "optional" : 1,
24417 "type" : "string"
24418 },
5370fa8c
TL
24419 "ro" : {
24420 "description" : "Whether the drive is read-only.",
24421 "optional" : 1,
24422 "type" : "boolean"
24423 },
52e44c50
FG
24424 "scsiblock" : {
24425 "default" : 0,
24426 "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",
24427 "optional" : 1,
24428 "type" : "boolean"
24429 },
7aacca6f 24430 "secs" : {
7aacca6f 24431 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
24432 "optional" : 1,
24433 "type" : "integer"
24434 },
24435 "serial" : {
24436 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
24437 "format" : "urlencoded",
24438 "format_description" : "serial",
24439 "maxLength" : 60,
24440 "optional" : 1,
24441 "type" : "string"
24442 },
27a7acb2
DM
24443 "shared" : {
24444 "default" : 0,
24445 "description" : "Mark this locally-managed volume as available on all nodes",
24446 "optional" : 1,
24447 "type" : "boolean",
24448 "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!"
24449 },
44660702
DM
24450 "size" : {
24451 "description" : "Disk size. This is purely informational and has no effect.",
24452 "format" : "disk-size",
f004f5b9 24453 "format_description" : "DiskSize",
44660702
DM
24454 "optional" : 1,
24455 "type" : "string"
24456 },
24457 "snapshot" : {
27a7acb2 24458 "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
24459 "optional" : 1,
24460 "type" : "boolean"
24461 },
25203dc1
NC
24462 "ssd" : {
24463 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
24464 "optional" : 1,
24465 "type" : "boolean"
24466 },
44660702
DM
24467 "trans" : {
24468 "description" : "Force disk geometry bios translation mode.",
24469 "enum" : [
24470 "none",
24471 "lba",
24472 "auto"
24473 ],
44660702
DM
24474 "optional" : 1,
24475 "type" : "string"
24476 },
24477 "volume" : {
24478 "alias" : "file"
24479 },
24480 "werror" : {
24481 "description" : "Write error action.",
24482 "enum" : [
24483 "enospc",
24484 "ignore",
24485 "report",
24486 "stop"
24487 ],
44660702
DM
24488 "optional" : 1,
24489 "type" : "string"
95895385
TL
24490 },
24491 "wwn" : {
24492 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
24493 "format_description" : "wwn",
24494 "optional" : 1,
24495 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
24496 "type" : "string"
56122987
DM
24497 }
24498 },
7aacca6f 24499 "optional" : 1,
4bd7df8b 24500 "type" : "string",
7af2edf9 24501 "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 24502 },
44660702
DM
24503 "scsihw" : {
24504 "default" : "lsi",
c2993fe5 24505 "description" : "SCSI controller model",
44660702
DM
24506 "enum" : [
24507 "lsi",
24508 "lsi53c810",
24509 "virtio-scsi-pci",
24510 "virtio-scsi-single",
24511 "megasas",
24512 "pvscsi"
24513 ],
7aacca6f 24514 "optional" : 1,
44660702 24515 "type" : "string"
7aacca6f 24516 },
27a7acb2 24517 "searchdomain" : {
4772952b 24518 "description" : "cloud-init: Sets DNS search domains for a container. Create will'\n\t .' automatically use the setting from the host if neither searchdomain nor nameserver'\n\t .' are set.",
27a7acb2
DM
24519 "optional" : 1,
24520 "type" : "string",
24521 "typetext" : "<string>"
24522 },
44660702 24523 "serial[n]" : {
c2993fe5 24524 "description" : "Create a serial device inside the VM (n is 0 to 3)",
44660702
DM
24525 "optional" : 1,
24526 "pattern" : "(/dev/.+|socket)",
c2993fe5 24527 "type" : "string",
4772952b 24528 "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
24529 },
24530 "shares" : {
24531 "default" : 1000,
5da3d723 24532 "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
24533 "maximum" : 50000,
24534 "minimum" : 0,
24535 "optional" : 1,
4bd7df8b 24536 "type" : "integer",
013dc89f 24537 "typetext" : "<integer> (0 - 50000)"
44660702
DM
24538 },
24539 "smbios1" : {
24540 "description" : "Specify SMBIOS type 1 fields.",
24541 "format" : "pve-qm-smbios1",
1e3f8156 24542 "maxLength" : 512,
7aacca6f 24543 "optional" : 1,
4bd7df8b 24544 "type" : "string",
1e3f8156 24545 "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
24546 },
24547 "smp" : {
44660702 24548 "default" : 1,
7aacca6f 24549 "description" : "The number of CPUs. Please use option -sockets instead.",
44660702 24550 "minimum" : 1,
56122987 24551 "optional" : 1,
4bd7df8b 24552 "type" : "integer",
013dc89f 24553 "typetext" : "<integer> (1 - N)"
44660702
DM
24554 },
24555 "sockets" : {
7aacca6f 24556 "default" : 1,
44660702
DM
24557 "description" : "The number of CPU sockets.",
24558 "minimum" : 1,
24559 "optional" : 1,
4bd7df8b 24560 "type" : "integer",
013dc89f 24561 "typetext" : "<integer> (1 - N)"
7aacca6f 24562 },
1c532546
TL
24563 "spice_enhancements" : {
24564 "description" : "Configure additional enhancements for SPICE.",
24565 "format" : {
24566 "foldersharing" : {
24567 "default" : "0",
24568 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
24569 "optional" : 1,
24570 "type" : "boolean"
24571 },
24572 "videostreaming" : {
24573 "default" : "off",
24574 "description" : "Enable video streaming. Uses compression for detected video streams.",
24575 "enum" : [
24576 "off",
24577 "all",
24578 "filter"
24579 ],
24580 "optional" : 1,
24581 "type" : "string"
24582 }
24583 },
24584 "optional" : 1,
24585 "type" : "string",
24586 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
24587 },
27a7acb2
DM
24588 "sshkeys" : {
24589 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
24590 "format" : "urlencoded",
24591 "optional" : 1,
24592 "type" : "string",
24593 "typetext" : "<string>"
24594 },
5da3d723
TL
24595 "start" : {
24596 "default" : 0,
24597 "description" : "Start VM after it was created successfully.",
24598 "optional" : 1,
24599 "type" : "boolean",
24600 "typetext" : "<boolean>"
24601 },
44660702
DM
24602 "startdate" : {
24603 "default" : "now",
4772952b 24604 "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
24605 "optional" : 1,
24606 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
24607 "type" : "string",
24608 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
24609 },
24610 "startup" : {
24611 "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.",
24612 "format" : "pve-startup-order",
24613 "optional" : 1,
24614 "type" : "string",
24615 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
24616 },
24617 "storage" : {
24618 "description" : "Default storage.",
24619 "format" : "pve-storage-id",
7aacca6f 24620 "optional" : 1,
013dc89f
DM
24621 "type" : "string",
24622 "typetext" : "<string>"
56122987 24623 },
44660702
DM
24624 "tablet" : {
24625 "default" : 1,
c2993fe5 24626 "description" : "Enable/disable the USB tablet device.",
56122987 24627 "optional" : 1,
c2993fe5 24628 "type" : "boolean",
013dc89f 24629 "typetext" : "<boolean>",
4772952b 24630 "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 24631 },
5c1699e5
TL
24632 "tags" : {
24633 "description" : "Tags of the VM. This is only meta information.",
24634 "format" : "pve-tag-list",
24635 "optional" : 1,
24636 "type" : "string",
24637 "typetext" : "<string>"
24638 },
44660702
DM
24639 "tdf" : {
24640 "default" : 0,
24641 "description" : "Enable/disable time drift fix.",
24642 "optional" : 1,
013dc89f
DM
24643 "type" : "boolean",
24644 "typetext" : "<boolean>"
7aacca6f
DM
24645 },
24646 "template" : {
7aacca6f 24647 "default" : 0,
44660702 24648 "description" : "Enable/disable Template.",
7aacca6f 24649 "optional" : 1,
013dc89f
DM
24650 "type" : "boolean",
24651 "typetext" : "<boolean>"
7aacca6f 24652 },
5370fa8c 24653 "tpmstate0" : {
7af2edf9 24654 "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
24655 "format" : {
24656 "file" : {
24657 "default_key" : 1,
24658 "description" : "The drive's backing volume.",
24659 "format" : "pve-volume-id-or-qm-path",
24660 "format_description" : "volume",
24661 "type" : "string"
24662 },
7af2edf9
TL
24663 "import-from" : {
24664 "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!",
24665 "format" : "pve-volume-id-or-absolute-path",
24666 "format_description" : "source volume",
24667 "optional" : 1,
24668 "type" : "string"
24669 },
5370fa8c
TL
24670 "size" : {
24671 "description" : "Disk size. This is purely informational and has no effect.",
24672 "format" : "disk-size",
24673 "format_description" : "DiskSize",
24674 "optional" : 1,
24675 "type" : "string"
24676 },
24677 "version" : {
24678 "default" : "v2.0",
24679 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
24680 "enum" : [
24681 "v1.2",
24682 "v2.0"
24683 ],
24684 "optional" : 1,
24685 "type" : "string"
24686 },
24687 "volume" : {
24688 "alias" : "file"
24689 }
24690 },
24691 "optional" : 1,
24692 "type" : "string",
7af2edf9 24693 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 24694 },
44660702
DM
24695 "unique" : {
24696 "description" : "Assign a unique random ethernet address.",
7aacca6f 24697 "optional" : 1,
44660702 24698 "requires" : "archive",
013dc89f
DM
24699 "type" : "boolean",
24700 "typetext" : "<boolean>"
56122987 24701 },
44660702 24702 "unused[n]" : {
c2993fe5 24703 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
24704 "format" : {
24705 "file" : {
24706 "default_key" : 1,
24707 "description" : "The drive's backing volume.",
24708 "format" : "pve-volume-id",
24709 "format_description" : "volume",
24710 "type" : "string"
24711 },
24712 "volume" : {
24713 "alias" : "file"
24714 }
24715 },
7aacca6f 24716 "optional" : 1,
013dc89f 24717 "type" : "string",
c5aa7e14 24718 "typetext" : "[file=]<volume>"
44660702
DM
24719 },
24720 "usb[n]" : {
c2993fe5 24721 "description" : "Configure an USB device (n is 0 to 4).",
56122987 24722 "format" : {
7aacca6f
DM
24723 "host" : {
24724 "default_key" : 1,
4772952b 24725 "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",
7aacca6f 24726 "format" : "pve-qm-usb-device",
44660702
DM
24727 "format_description" : "HOSTUSBDEVICE|spice",
24728 "type" : "string"
7aacca6f 24729 },
56122987 24730 "usb3" : {
c2993fe5 24731 "default" : 0,
1c532546 24732 "description" : "Specifies whether if given host option is a USB3 device or port.",
56122987 24733 "optional" : 1,
56122987 24734 "type" : "boolean"
7aacca6f 24735 }
56122987 24736 },
56122987 24737 "optional" : 1,
4bd7df8b
DM
24738 "type" : "string",
24739 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
56122987 24740 },
44660702
DM
24741 "vcpus" : {
24742 "default" : 0,
24743 "description" : "Number of hotplugged vcpus.",
24744 "minimum" : 1,
56122987 24745 "optional" : 1,
4bd7df8b 24746 "type" : "integer",
013dc89f 24747 "typetext" : "<integer> (1 - N)"
7aacca6f 24748 },
44660702 24749 "vga" : {
e2d681b3
TL
24750 "description" : "Configure the VGA hardware.",
24751 "format" : {
24752 "memory" : {
24753 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
24754 "maximum" : 512,
24755 "minimum" : 4,
24756 "optional" : 1,
24757 "type" : "integer"
24758 },
24759 "type" : {
24760 "default" : "std",
24761 "default_key" : 1,
24762 "description" : "Select the VGA type.",
24763 "enum" : [
24764 "cirrus",
24765 "qxl",
24766 "qxl2",
24767 "qxl3",
24768 "qxl4",
5f26e15b 24769 "none",
e2d681b3
TL
24770 "serial0",
24771 "serial1",
24772 "serial2",
24773 "serial3",
24774 "std",
24775 "virtio",
7af2edf9 24776 "virtio-gl",
e2d681b3
TL
24777 "vmware"
24778 ],
24779 "optional" : 1,
24780 "type" : "string"
24781 }
24782 },
44660702 24783 "optional" : 1,
c2993fe5 24784 "type" : "string",
e2d681b3
TL
24785 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
24786 "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 24787 },
44660702 24788 "virtio[n]" : {
7af2edf9 24789 "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
24790 "format" : {
24791 "aio" : {
24792 "description" : "AIO type to use.",
24793 "enum" : [
24794 "native",
8f4d9c87
TL
24795 "threads",
24796 "io_uring"
44660702 24797 ],
44660702
DM
24798 "optional" : 1,
24799 "type" : "string"
24800 },
24801 "backup" : {
24802 "description" : "Whether the drive should be included when making backups.",
44660702
DM
24803 "optional" : 1,
24804 "type" : "boolean"
24805 },
24806 "bps" : {
de0983cb 24807 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
24808 "format_description" : "bps",
24809 "optional" : 1,
24810 "type" : "integer"
24811 },
de0983cb
DM
24812 "bps_max_length" : {
24813 "description" : "Maximum length of I/O bursts in seconds.",
24814 "format_description" : "seconds",
24815 "minimum" : 1,
24816 "optional" : 1,
24817 "type" : "integer"
24818 },
44660702 24819 "bps_rd" : {
de0983cb 24820 "description" : "Maximum read speed in bytes per second.",
44660702
DM
24821 "format_description" : "bps",
24822 "optional" : 1,
24823 "type" : "integer"
24824 },
de0983cb 24825 "bps_rd_length" : {
5d9c884c
DM
24826 "alias" : "bps_rd_max_length"
24827 },
24828 "bps_rd_max_length" : {
de0983cb
DM
24829 "description" : "Maximum length of read I/O bursts in seconds.",
24830 "format_description" : "seconds",
24831 "minimum" : 1,
24832 "optional" : 1,
24833 "type" : "integer"
24834 },
44660702 24835 "bps_wr" : {
de0983cb 24836 "description" : "Maximum write speed in bytes per second.",
44660702
DM
24837 "format_description" : "bps",
24838 "optional" : 1,
24839 "type" : "integer"
24840 },
de0983cb 24841 "bps_wr_length" : {
5d9c884c
DM
24842 "alias" : "bps_wr_max_length"
24843 },
24844 "bps_wr_max_length" : {
de0983cb
DM
24845 "description" : "Maximum length of write I/O bursts in seconds.",
24846 "format_description" : "seconds",
24847 "minimum" : 1,
24848 "optional" : 1,
24849 "type" : "integer"
24850 },
44660702
DM
24851 "cache" : {
24852 "description" : "The drive's cache mode",
24853 "enum" : [
24854 "none",
24855 "writethrough",
24856 "writeback",
24857 "unsafe",
24858 "directsync"
24859 ],
44660702
DM
24860 "optional" : 1,
24861 "type" : "string"
24862 },
24863 "cyls" : {
24864 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
24865 "optional" : 1,
24866 "type" : "integer"
24867 },
24868 "detect_zeroes" : {
24869 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
24870 "optional" : 1,
24871 "type" : "boolean"
24872 },
24873 "discard" : {
24874 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
24875 "enum" : [
24876 "ignore",
24877 "on"
24878 ],
44660702
DM
24879 "optional" : 1,
24880 "type" : "string"
24881 },
24882 "file" : {
24883 "default_key" : 1,
24884 "description" : "The drive's backing volume.",
24885 "format" : "pve-volume-id-or-qm-path",
24886 "format_description" : "volume",
24887 "type" : "string"
24888 },
24889 "format" : {
24890 "description" : "The drive's backing file's data format.",
24891 "enum" : [
24892 "raw",
24893 "cow",
24894 "qcow",
24895 "qed",
24896 "qcow2",
24897 "vmdk",
24898 "cloop"
24899 ],
44660702
DM
24900 "optional" : 1,
24901 "type" : "string"
24902 },
24903 "heads" : {
24904 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
24905 "optional" : 1,
24906 "type" : "integer"
24907 },
7af2edf9
TL
24908 "import-from" : {
24909 "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!",
24910 "format" : "pve-volume-id-or-absolute-path",
24911 "format_description" : "source volume",
24912 "optional" : 1,
24913 "type" : "string"
24914 },
44660702 24915 "iops" : {
de0983cb 24916 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
24917 "format_description" : "iops",
24918 "optional" : 1,
24919 "type" : "integer"
24920 },
24921 "iops_max" : {
de0983cb 24922 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
24923 "format_description" : "iops",
24924 "optional" : 1,
24925 "type" : "integer"
24926 },
de0983cb
DM
24927 "iops_max_length" : {
24928 "description" : "Maximum length of I/O bursts in seconds.",
24929 "format_description" : "seconds",
24930 "minimum" : 1,
24931 "optional" : 1,
24932 "type" : "integer"
24933 },
44660702 24934 "iops_rd" : {
de0983cb 24935 "description" : "Maximum read I/O in operations per second.",
44660702
DM
24936 "format_description" : "iops",
24937 "optional" : 1,
24938 "type" : "integer"
24939 },
de0983cb 24940 "iops_rd_length" : {
5d9c884c 24941 "alias" : "iops_rd_max_length"
de0983cb 24942 },
44660702 24943 "iops_rd_max" : {
de0983cb 24944 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
24945 "format_description" : "iops",
24946 "optional" : 1,
24947 "type" : "integer"
24948 },
5d9c884c
DM
24949 "iops_rd_max_length" : {
24950 "description" : "Maximum length of read I/O bursts in seconds.",
24951 "format_description" : "seconds",
24952 "minimum" : 1,
24953 "optional" : 1,
24954 "type" : "integer"
24955 },
44660702 24956 "iops_wr" : {
de0983cb 24957 "description" : "Maximum write I/O in operations per second.",
44660702
DM
24958 "format_description" : "iops",
24959 "optional" : 1,
24960 "type" : "integer"
24961 },
de0983cb 24962 "iops_wr_length" : {
5d9c884c 24963 "alias" : "iops_wr_max_length"
de0983cb 24964 },
44660702 24965 "iops_wr_max" : {
de0983cb 24966 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
24967 "format_description" : "iops",
24968 "optional" : 1,
24969 "type" : "integer"
24970 },
5d9c884c
DM
24971 "iops_wr_max_length" : {
24972 "description" : "Maximum length of write I/O bursts in seconds.",
24973 "format_description" : "seconds",
24974 "minimum" : 1,
24975 "optional" : 1,
24976 "type" : "integer"
24977 },
44660702
DM
24978 "iothread" : {
24979 "description" : "Whether to use iothreads for this drive",
44660702
DM
24980 "optional" : 1,
24981 "type" : "boolean"
24982 },
24983 "mbps" : {
de0983cb 24984 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
24985 "format_description" : "mbps",
24986 "optional" : 1,
24987 "type" : "number"
24988 },
24989 "mbps_max" : {
de0983cb 24990 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
24991 "format_description" : "mbps",
24992 "optional" : 1,
24993 "type" : "number"
24994 },
24995 "mbps_rd" : {
de0983cb 24996 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
24997 "format_description" : "mbps",
24998 "optional" : 1,
24999 "type" : "number"
25000 },
25001 "mbps_rd_max" : {
de0983cb 25002 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
25003 "format_description" : "mbps",
25004 "optional" : 1,
25005 "type" : "number"
25006 },
25007 "mbps_wr" : {
de0983cb 25008 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
25009 "format_description" : "mbps",
25010 "optional" : 1,
25011 "type" : "number"
25012 },
25013 "mbps_wr_max" : {
de0983cb 25014 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
25015 "format_description" : "mbps",
25016 "optional" : 1,
25017 "type" : "number"
25018 },
25019 "media" : {
25020 "default" : "disk",
25021 "description" : "The drive's media type.",
25022 "enum" : [
25023 "cdrom",
25024 "disk"
25025 ],
44660702
DM
25026 "optional" : 1,
25027 "type" : "string"
25028 },
5d9c884c
DM
25029 "replicate" : {
25030 "default" : 1,
25031 "description" : "Whether the drive should considered for replication jobs.",
25032 "optional" : 1,
25033 "type" : "boolean"
25034 },
44660702
DM
25035 "rerror" : {
25036 "description" : "Read error action.",
25037 "enum" : [
25038 "ignore",
25039 "report",
25040 "stop"
25041 ],
44660702
DM
25042 "optional" : 1,
25043 "type" : "string"
25044 },
5370fa8c
TL
25045 "ro" : {
25046 "description" : "Whether the drive is read-only.",
25047 "optional" : 1,
25048 "type" : "boolean"
25049 },
44660702
DM
25050 "secs" : {
25051 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
25052 "optional" : 1,
25053 "type" : "integer"
25054 },
25055 "serial" : {
25056 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
25057 "format" : "urlencoded",
25058 "format_description" : "serial",
25059 "maxLength" : 60,
25060 "optional" : 1,
25061 "type" : "string"
25062 },
27a7acb2
DM
25063 "shared" : {
25064 "default" : 0,
25065 "description" : "Mark this locally-managed volume as available on all nodes",
25066 "optional" : 1,
25067 "type" : "boolean",
25068 "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!"
25069 },
44660702
DM
25070 "size" : {
25071 "description" : "Disk size. This is purely informational and has no effect.",
25072 "format" : "disk-size",
f004f5b9 25073 "format_description" : "DiskSize",
44660702
DM
25074 "optional" : 1,
25075 "type" : "string"
25076 },
25077 "snapshot" : {
27a7acb2 25078 "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
25079 "optional" : 1,
25080 "type" : "boolean"
25081 },
25082 "trans" : {
25083 "description" : "Force disk geometry bios translation mode.",
25084 "enum" : [
25085 "none",
25086 "lba",
25087 "auto"
25088 ],
44660702
DM
25089 "optional" : 1,
25090 "type" : "string"
25091 },
25092 "volume" : {
25093 "alias" : "file"
25094 },
25095 "werror" : {
25096 "description" : "Write error action.",
25097 "enum" : [
25098 "enospc",
25099 "ignore",
25100 "report",
25101 "stop"
25102 ],
44660702
DM
25103 "optional" : 1,
25104 "type" : "string"
25105 }
25106 },
25107 "optional" : 1,
4bd7df8b 25108 "type" : "string",
7af2edf9 25109 "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 25110 },
4d47f125
TL
25111 "vmgenid" : {
25112 "default" : "1 (autogenerated)",
25113 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
25114 "format_description" : "UUID",
25115 "optional" : 1,
25116 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
25117 "type" : "string",
4772952b 25118 "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 25119 },
44660702
DM
25120 "vmid" : {
25121 "description" : "The (unique) ID of the VM.",
25122 "format" : "pve-vmid",
25123 "minimum" : 1,
4bd7df8b 25124 "type" : "integer",
013dc89f 25125 "typetext" : "<integer> (1 - N)"
44660702 25126 },
2489d6df
WB
25127 "vmstatestorage" : {
25128 "description" : "Default storage for VM state volumes/files.",
25129 "format" : "pve-storage-id",
25130 "optional" : 1,
25131 "type" : "string",
25132 "typetext" : "<string>"
25133 },
44660702 25134 "watchdog" : {
c2993fe5 25135 "description" : "Create a virtual hardware watchdog device.",
44660702 25136 "format" : "pve-qm-watchdog",
7aacca6f 25137 "optional" : 1,
c2993fe5 25138 "type" : "string",
013dc89f 25139 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 25140 "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 25141 }
44660702 25142 }
56122987 25143 },
56122987 25144 "permissions" : {
44660702
DM
25145 "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.",
25146 "user" : "all"
56122987 25147 },
44660702
DM
25148 "protected" : 1,
25149 "proxyto" : "node",
56122987 25150 "returns" : {
44660702 25151 "type" : "string"
7aacca6f 25152 }
56122987 25153 }
7aacca6f 25154 },
44660702 25155 "leaf" : 0,
7aacca6f 25156 "path" : "/nodes/{node}/qemu",
44660702 25157 "text" : "qemu"
56122987
DM
25158 },
25159 {
25160 "children" : [
25161 {
56122987
DM
25162 "children" : [
25163 {
56122987 25164 "info" : {
44660702 25165 "GET" : {
e9cd3bd4 25166 "allowtoken" : 1,
44660702
DM
25167 "description" : "Get container configuration.",
25168 "method" : "GET",
25169 "name" : "vm_config",
25170 "parameters" : {
25171 "additionalProperties" : 0,
25172 "properties" : {
1c532546
TL
25173 "current" : {
25174 "default" : 0,
25175 "description" : "Get current values (instead of pending values).",
25176 "optional" : 1,
25177 "type" : "boolean",
25178 "typetext" : "<boolean>"
25179 },
44660702
DM
25180 "node" : {
25181 "description" : "The cluster node name.",
25182 "format" : "pve-node",
013dc89f 25183 "type" : "string",
4d47f125
TL
25184 "typetext" : "<string>"
25185 },
5f26e15b
TL
25186 "snapshot" : {
25187 "description" : "Fetch config values from given snapshot.",
25188 "format" : "pve-configid",
25189 "maxLength" : 40,
25190 "optional" : 1,
25191 "type" : "string",
25192 "typetext" : "<string>"
25193 },
4d47f125
TL
25194 "vmid" : {
25195 "description" : "The (unique) ID of the VM.",
25196 "format" : "pve-vmid",
25197 "minimum" : 1,
25198 "type" : "integer",
25199 "typetext" : "<integer> (1 - N)"
25200 }
25201 }
25202 },
25203 "permissions" : {
25204 "check" : [
25205 "perm",
25206 "/vms/{vmid}",
25207 [
25208 "VM.Audit"
25209 ]
25210 ]
25211 },
25212 "proxyto" : "node",
25213 "returns" : {
25214 "properties" : {
25215 "arch" : {
25216 "default" : "amd64",
25217 "description" : "OS architecture type.",
25218 "enum" : [
25219 "amd64",
25220 "i386",
25221 "arm64",
25222 "armhf"
25223 ],
25224 "optional" : 1,
25225 "type" : "string"
25226 },
25227 "cmode" : {
25228 "default" : "tty",
25229 "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).",
25230 "enum" : [
25231 "shell",
25232 "console",
25233 "tty"
25234 ],
25235 "optional" : 1,
25236 "type" : "string"
25237 },
25238 "console" : {
25239 "default" : 1,
25240 "description" : "Attach a console device (/dev/console) to the container.",
25241 "optional" : 1,
25242 "type" : "boolean"
25243 },
25244 "cores" : {
25245 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 25246 "maximum" : 8192,
4d47f125
TL
25247 "minimum" : 1,
25248 "optional" : 1,
25249 "type" : "integer"
25250 },
25251 "cpulimit" : {
25252 "default" : 0,
25253 "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 25254 "maximum" : 8192,
4d47f125
TL
25255 "minimum" : 0,
25256 "optional" : 1,
25257 "type" : "number"
25258 },
25259 "cpuunits" : {
25260 "default" : 1024,
25261 "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 the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
25262 "maximum" : 500000,
25263 "minimum" : 0,
25264 "optional" : 1,
25265 "type" : "integer"
25266 },
739d4d64
TL
25267 "debug" : {
25268 "default" : 0,
25269 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
25270 "optional" : 1,
25271 "type" : "boolean"
25272 },
4d47f125 25273 "description" : {
8f4d9c87
TL
25274 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
25275 "maxLength" : 8192,
4d47f125
TL
25276 "optional" : 1,
25277 "type" : "string"
25278 },
25279 "digest" : {
25280 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
25281 "type" : "string"
25282 },
25283 "features" : {
25284 "description" : "Allow containers access to advanced features.",
25285 "format" : {
c5aa7e14
TL
25286 "force_rw_sys" : {
25287 "default" : 0,
25288 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
25289 "optional" : 1,
25290 "type" : "boolean"
25291 },
e2d681b3
TL
25292 "fuse" : {
25293 "default" : 0,
25294 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
25295 "optional" : 1,
25296 "type" : "boolean"
25297 },
4d47f125
TL
25298 "keyctl" : {
25299 "default" : 0,
25300 "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.",
25301 "optional" : 1,
25302 "type" : "boolean"
25303 },
c5aa7e14
TL
25304 "mknod" : {
25305 "default" : 0,
25306 "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.",
25307 "optional" : 1,
25308 "type" : "boolean"
25309 },
4d47f125
TL
25310 "mount" : {
25311 "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.",
25312 "format_description" : "fstype;fstype;...",
25313 "optional" : 1,
95895385 25314 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
25315 "type" : "string"
25316 },
25317 "nesting" : {
25318 "default" : 0,
25319 "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.",
25320 "optional" : 1,
25321 "type" : "boolean"
25322 }
25323 },
25324 "optional" : 1,
25325 "type" : "string"
25326 },
5f26e15b
TL
25327 "hookscript" : {
25328 "description" : "Script that will be exectued during various steps in the containers lifetime.",
25329 "format" : "pve-volume-id",
25330 "optional" : 1,
25331 "type" : "string"
25332 },
4d47f125
TL
25333 "hostname" : {
25334 "description" : "Set a host name for the container.",
25335 "format" : "dns-name",
25336 "maxLength" : 255,
25337 "optional" : 1,
25338 "type" : "string"
25339 },
25340 "lock" : {
25341 "description" : "Lock/unlock the VM.",
25342 "enum" : [
25343 "backup",
bb4c8cf8 25344 "create",
1c532546 25345 "destroyed",
4d47f125 25346 "disk",
bb4c8cf8 25347 "fstrim",
4d47f125
TL
25348 "migrate",
25349 "mounted",
25350 "rollback",
25351 "snapshot",
25352 "snapshot-delete"
25353 ],
25354 "optional" : 1,
25355 "type" : "string"
25356 },
25357 "lxc" : {
25358 "description" : "Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).",
25359 "items" : {
25360 "items" : {
25361 "type" : "string"
25362 },
25363 "type" : "array"
25364 },
25365 "optional" : 1,
25366 "type" : "array"
25367 },
25368 "memory" : {
25369 "default" : 512,
25370 "description" : "Amount of RAM for the VM in MB.",
25371 "minimum" : 16,
25372 "optional" : 1,
25373 "type" : "integer"
25374 },
25375 "mp[n]" : {
d2656385 25376 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
25377 "format" : {
25378 "acl" : {
25379 "description" : "Explicitly enable or disable ACL support.",
25380 "optional" : 1,
25381 "type" : "boolean"
25382 },
25383 "backup" : {
25384 "description" : "Whether to include the mount point in backups.",
25385 "optional" : 1,
25386 "type" : "boolean",
25387 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
25388 },
7cbed89a
TL
25389 "mountoptions" : {
25390 "description" : "Extra mount options for rootfs/mps.",
25391 "format_description" : "opt[;opt...]",
25392 "optional" : 1,
c30bb419 25393 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
25394 "type" : "string"
25395 },
4d47f125
TL
25396 "mp" : {
25397 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
25398 "format" : "pve-lxc-mp-string",
25399 "format_description" : "Path",
25400 "type" : "string",
25401 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
25402 },
25403 "quota" : {
25404 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
25405 "optional" : 1,
25406 "type" : "boolean"
25407 },
25408 "replicate" : {
25409 "default" : 1,
25410 "description" : "Will include this volume to a storage replica job.",
25411 "optional" : 1,
25412 "type" : "boolean"
25413 },
25414 "ro" : {
25415 "description" : "Read-only mount point",
25416 "optional" : 1,
25417 "type" : "boolean"
25418 },
25419 "shared" : {
25420 "default" : 0,
25421 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
25422 "optional" : 1,
25423 "type" : "boolean",
25424 "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!"
25425 },
25426 "size" : {
25427 "description" : "Volume size (read only value).",
25428 "format" : "disk-size",
25429 "format_description" : "DiskSize",
25430 "optional" : 1,
25431 "type" : "string"
25432 },
25433 "volume" : {
25434 "default_key" : 1,
25435 "description" : "Volume, device or directory to mount into the container.",
25436 "format" : "pve-lxc-mp-string",
25437 "format_description" : "volume",
25438 "type" : "string"
25439 }
25440 },
25441 "optional" : 1,
25442 "type" : "string"
25443 },
25444 "nameserver" : {
25445 "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 25446 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
25447 "optional" : 1,
25448 "type" : "string"
25449 },
25450 "net[n]" : {
25451 "description" : "Specifies network interfaces for the container.",
25452 "format" : {
25453 "bridge" : {
25454 "description" : "Bridge to attach the network device to.",
25455 "format_description" : "bridge",
25456 "optional" : 1,
25457 "pattern" : "[-_.\\w\\d]+",
25458 "type" : "string"
25459 },
25460 "firewall" : {
25461 "description" : "Controls whether this interface's firewall rules should be used.",
25462 "optional" : 1,
25463 "type" : "boolean"
25464 },
25465 "gw" : {
25466 "description" : "Default gateway for IPv4 traffic.",
25467 "format" : "ipv4",
25468 "format_description" : "GatewayIPv4",
25469 "optional" : 1,
25470 "type" : "string"
25471 },
25472 "gw6" : {
25473 "description" : "Default gateway for IPv6 traffic.",
25474 "format" : "ipv6",
25475 "format_description" : "GatewayIPv6",
25476 "optional" : 1,
25477 "type" : "string"
25478 },
25479 "hwaddr" : {
25480 "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 25481 "format" : "mac-addr",
4d47f125
TL
25482 "format_description" : "XX:XX:XX:XX:XX:XX",
25483 "optional" : 1,
95895385
TL
25484 "type" : "string",
25485 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
25486 },
25487 "ip" : {
25488 "description" : "IPv4 address in CIDR format.",
25489 "format" : "pve-ipv4-config",
25490 "format_description" : "(IPv4/CIDR|dhcp|manual)",
25491 "optional" : 1,
25492 "type" : "string"
25493 },
25494 "ip6" : {
25495 "description" : "IPv6 address in CIDR format.",
25496 "format" : "pve-ipv6-config",
25497 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
25498 "optional" : 1,
25499 "type" : "string"
25500 },
25501 "mtu" : {
25502 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
25503 "minimum" : 64,
25504 "optional" : 1,
25505 "type" : "integer"
25506 },
25507 "name" : {
25508 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
25509 "format_description" : "string",
25510 "pattern" : "[-_.\\w\\d]+",
25511 "type" : "string"
25512 },
25513 "rate" : {
25514 "description" : "Apply rate limiting to the interface",
25515 "format_description" : "mbps",
25516 "optional" : 1,
25517 "type" : "number"
25518 },
25519 "tag" : {
25520 "description" : "VLAN tag for this interface.",
25521 "maximum" : 4094,
25522 "minimum" : 1,
25523 "optional" : 1,
25524 "type" : "integer"
25525 },
25526 "trunks" : {
25527 "description" : "VLAN ids to pass through the interface",
25528 "format_description" : "vlanid[;vlanid...]",
25529 "optional" : 1,
25530 "pattern" : "(?^:\\d+(?:;\\d+)*)",
25531 "type" : "string"
25532 },
25533 "type" : {
25534 "description" : "Network interface type.",
25535 "enum" : [
25536 "veth"
25537 ],
25538 "optional" : 1,
25539 "type" : "string"
25540 }
25541 },
25542 "optional" : 1,
25543 "type" : "string"
25544 },
25545 "onboot" : {
25546 "default" : 0,
25547 "description" : "Specifies whether a VM will be started during system bootup.",
25548 "optional" : 1,
25549 "type" : "boolean"
25550 },
25551 "ostype" : {
25552 "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.",
25553 "enum" : [
25554 "debian",
d2656385 25555 "devuan",
4d47f125
TL
25556 "ubuntu",
25557 "centos",
25558 "fedora",
25559 "opensuse",
25560 "archlinux",
25561 "alpine",
25562 "gentoo",
7af2edf9 25563 "nixos",
4d47f125
TL
25564 "unmanaged"
25565 ],
25566 "optional" : 1,
25567 "type" : "string"
25568 },
25569 "protection" : {
25570 "default" : 0,
25571 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
25572 "optional" : 1,
25573 "type" : "boolean"
25574 },
25575 "rootfs" : {
25576 "description" : "Use volume as container root.",
25577 "format" : {
25578 "acl" : {
25579 "description" : "Explicitly enable or disable ACL support.",
25580 "optional" : 1,
25581 "type" : "boolean"
25582 },
7cbed89a
TL
25583 "mountoptions" : {
25584 "description" : "Extra mount options for rootfs/mps.",
25585 "format_description" : "opt[;opt...]",
25586 "optional" : 1,
c30bb419 25587 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
25588 "type" : "string"
25589 },
4d47f125
TL
25590 "quota" : {
25591 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
25592 "optional" : 1,
25593 "type" : "boolean"
25594 },
25595 "replicate" : {
25596 "default" : 1,
25597 "description" : "Will include this volume to a storage replica job.",
25598 "optional" : 1,
25599 "type" : "boolean"
25600 },
25601 "ro" : {
25602 "description" : "Read-only mount point",
25603 "optional" : 1,
25604 "type" : "boolean"
25605 },
25606 "shared" : {
25607 "default" : 0,
25608 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
25609 "optional" : 1,
25610 "type" : "boolean",
25611 "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!"
25612 },
25613 "size" : {
25614 "description" : "Volume size (read only value).",
25615 "format" : "disk-size",
25616 "format_description" : "DiskSize",
25617 "optional" : 1,
25618 "type" : "string"
25619 },
25620 "volume" : {
25621 "default_key" : 1,
25622 "description" : "Volume, device or directory to mount into the container.",
25623 "format" : "pve-lxc-mp-string",
25624 "format_description" : "volume",
25625 "type" : "string"
25626 }
25627 },
25628 "optional" : 1,
25629 "type" : "string"
25630 },
25631 "searchdomain" : {
25632 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
25633 "format" : "dns-name-list",
25634 "optional" : 1,
25635 "type" : "string"
25636 },
25637 "startup" : {
25638 "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.",
25639 "format" : "pve-startup-order",
25640 "optional" : 1,
25641 "type" : "string",
25642 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
25643 },
25644 "swap" : {
25645 "default" : 512,
25646 "description" : "Amount of SWAP for the VM in MB.",
25647 "minimum" : 0,
25648 "optional" : 1,
25649 "type" : "integer"
25650 },
5c1699e5
TL
25651 "tags" : {
25652 "description" : "Tags of the Container. This is only meta information.",
25653 "format" : "pve-tag-list",
25654 "optional" : 1,
25655 "type" : "string"
25656 },
4d47f125
TL
25657 "template" : {
25658 "default" : 0,
25659 "description" : "Enable/disable Template.",
25660 "optional" : 1,
25661 "type" : "boolean"
44660702 25662 },
04d22a9f
TL
25663 "timezone" : {
25664 "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",
25665 "format" : "pve-ct-timezone",
25666 "optional" : 1,
25667 "type" : "string"
25668 },
4d47f125
TL
25669 "tty" : {
25670 "default" : 2,
25671 "description" : "Specify the number of tty available to the container",
25672 "maximum" : 6,
25673 "minimum" : 0,
25674 "optional" : 1,
25675 "type" : "integer"
25676 },
25677 "unprivileged" : {
25678 "default" : 0,
25679 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
25680 "optional" : 1,
25681 "type" : "boolean"
25682 },
25683 "unused[n]" : {
25684 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
25685 "format" : {
25686 "volume" : {
25687 "default_key" : 1,
25688 "description" : "The volume that is not used currently.",
25689 "format" : "pve-volume-id",
25690 "format_description" : "volume",
25691 "type" : "string"
25692 }
25693 },
4d47f125 25694 "optional" : 1,
44660702
DM
25695 "type" : "string"
25696 }
25697 },
25698 "type" : "object"
25699 }
25700 },
56122987 25701 "PUT" : {
e9cd3bd4 25702 "allowtoken" : 1,
44660702
DM
25703 "description" : "Set container options.",
25704 "method" : "PUT",
25705 "name" : "update_vm",
56122987 25706 "parameters" : {
44660702 25707 "additionalProperties" : 0,
56122987 25708 "properties" : {
44660702
DM
25709 "arch" : {
25710 "default" : "amd64",
25711 "description" : "OS architecture type.",
25712 "enum" : [
25713 "amd64",
4d47f125
TL
25714 "i386",
25715 "arm64",
25716 "armhf"
44660702 25717 ],
7aacca6f 25718 "optional" : 1,
44660702
DM
25719 "type" : "string"
25720 },
25721 "cmode" : {
7aacca6f 25722 "default" : "tty",
44660702 25723 "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
25724 "enum" : [
25725 "shell",
25726 "console",
25727 "tty"
25728 ],
44660702
DM
25729 "optional" : 1,
25730 "type" : "string"
7aacca6f 25731 },
44660702
DM
25732 "console" : {
25733 "default" : 1,
25734 "description" : "Attach a console device (/dev/console) to the container.",
7aacca6f 25735 "optional" : 1,
013dc89f
DM
25736 "type" : "boolean",
25737 "typetext" : "<boolean>"
7aacca6f 25738 },
de0983cb
DM
25739 "cores" : {
25740 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 25741 "maximum" : 8192,
de0983cb
DM
25742 "minimum" : 1,
25743 "optional" : 1,
25744 "type" : "integer",
4772952b 25745 "typetext" : "<integer> (1 - 8192)"
de0983cb 25746 },
44660702
DM
25747 "cpulimit" : {
25748 "default" : 0,
25749 "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 25750 "maximum" : 8192,
7aacca6f 25751 "minimum" : 0,
7aacca6f 25752 "optional" : 1,
4bd7df8b 25753 "type" : "number",
4772952b 25754 "typetext" : "<number> (0 - 8192)"
7aacca6f 25755 },
44660702
DM
25756 "cpuunits" : {
25757 "default" : 1024,
25758 "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 the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
25759 "maximum" : 500000,
25760 "minimum" : 0,
25761 "optional" : 1,
4bd7df8b 25762 "type" : "integer",
013dc89f 25763 "typetext" : "<integer> (0 - 500000)"
7aacca6f 25764 },
739d4d64
TL
25765 "debug" : {
25766 "default" : 0,
25767 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
25768 "optional" : 1,
25769 "type" : "boolean",
25770 "typetext" : "<boolean>"
25771 },
44660702
DM
25772 "delete" : {
25773 "description" : "A list of settings you want to delete.",
25774 "format" : "pve-configid-list",
7aacca6f 25775 "optional" : 1,
013dc89f
DM
25776 "type" : "string",
25777 "typetext" : "<string>"
7aacca6f 25778 },
44660702 25779 "description" : {
8f4d9c87
TL
25780 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
25781 "maxLength" : 8192,
7aacca6f 25782 "optional" : 1,
013dc89f
DM
25783 "type" : "string",
25784 "typetext" : "<string>"
7aacca6f 25785 },
44660702
DM
25786 "digest" : {
25787 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
25788 "maxLength" : 40,
7aacca6f 25789 "optional" : 1,
013dc89f
DM
25790 "type" : "string",
25791 "typetext" : "<string>"
7aacca6f 25792 },
4d47f125
TL
25793 "features" : {
25794 "description" : "Allow containers access to advanced features.",
25795 "format" : {
c5aa7e14
TL
25796 "force_rw_sys" : {
25797 "default" : 0,
25798 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
25799 "optional" : 1,
25800 "type" : "boolean"
25801 },
e2d681b3
TL
25802 "fuse" : {
25803 "default" : 0,
25804 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
25805 "optional" : 1,
25806 "type" : "boolean"
25807 },
4d47f125
TL
25808 "keyctl" : {
25809 "default" : 0,
25810 "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.",
25811 "optional" : 1,
25812 "type" : "boolean"
25813 },
c5aa7e14
TL
25814 "mknod" : {
25815 "default" : 0,
25816 "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.",
25817 "optional" : 1,
25818 "type" : "boolean"
25819 },
4d47f125
TL
25820 "mount" : {
25821 "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.",
25822 "format_description" : "fstype;fstype;...",
25823 "optional" : 1,
95895385 25824 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
25825 "type" : "string"
25826 },
25827 "nesting" : {
25828 "default" : 0,
25829 "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.",
25830 "optional" : 1,
25831 "type" : "boolean"
25832 }
25833 },
25834 "optional" : 1,
25835 "type" : "string",
c5aa7e14 25836 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
4d47f125 25837 },
5f26e15b
TL
25838 "hookscript" : {
25839 "description" : "Script that will be exectued during various steps in the containers lifetime.",
25840 "format" : "pve-volume-id",
25841 "optional" : 1,
25842 "type" : "string",
25843 "typetext" : "<string>"
25844 },
44660702
DM
25845 "hostname" : {
25846 "description" : "Set a host name for the container.",
25847 "format" : "dns-name",
25848 "maxLength" : 255,
56122987 25849 "optional" : 1,
013dc89f
DM
25850 "type" : "string",
25851 "typetext" : "<string>"
44660702
DM
25852 },
25853 "lock" : {
25854 "description" : "Lock/unlock the VM.",
25855 "enum" : [
44660702 25856 "backup",
bb4c8cf8 25857 "create",
1c532546 25858 "destroyed",
4d47f125 25859 "disk",
bb4c8cf8 25860 "fstrim",
4d47f125
TL
25861 "migrate",
25862 "mounted",
25863 "rollback",
44660702 25864 "snapshot",
4d47f125 25865 "snapshot-delete"
44660702
DM
25866 ],
25867 "optional" : 1,
25868 "type" : "string"
25869 },
25870 "memory" : {
25871 "default" : 512,
25872 "description" : "Amount of RAM for the VM in MB.",
25873 "minimum" : 16,
25874 "optional" : 1,
4bd7df8b 25875 "type" : "integer",
013dc89f 25876 "typetext" : "<integer> (16 - N)"
7aacca6f
DM
25877 },
25878 "mp[n]" : {
d2656385 25879 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
7aacca6f 25880 "format" : {
7aacca6f
DM
25881 "acl" : {
25882 "description" : "Explicitly enable or disable ACL support.",
7aacca6f 25883 "optional" : 1,
44660702 25884 "type" : "boolean"
7aacca6f
DM
25885 },
25886 "backup" : {
de0983cb 25887 "description" : "Whether to include the mount point in backups.",
7aacca6f 25888 "optional" : 1,
4bd7df8b 25889 "type" : "boolean",
de0983cb 25890 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
7aacca6f 25891 },
7cbed89a
TL
25892 "mountoptions" : {
25893 "description" : "Extra mount options for rootfs/mps.",
25894 "format_description" : "opt[;opt...]",
25895 "optional" : 1,
c30bb419 25896 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
25897 "type" : "string"
25898 },
7aacca6f 25899 "mp" : {
de0983cb 25900 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
7aacca6f 25901 "format" : "pve-lxc-mp-string",
44660702 25902 "format_description" : "Path",
4bd7df8b 25903 "type" : "string",
de0983cb 25904 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
44660702 25905 },
5d9c884c
DM
25906 "quota" : {
25907 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
25908 "optional" : 1,
25909 "type" : "boolean"
25910 },
25911 "replicate" : {
25912 "default" : 1,
25913 "description" : "Will include this volume to a storage replica job.",
44660702
DM
25914 "optional" : 1,
25915 "type" : "boolean"
25916 },
25917 "ro" : {
de0983cb 25918 "description" : "Read-only mount point",
44660702
DM
25919 "optional" : 1,
25920 "type" : "boolean"
25921 },
de0983cb
DM
25922 "shared" : {
25923 "default" : 0,
25924 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
25925 "optional" : 1,
25926 "type" : "boolean",
25927 "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!"
25928 },
44660702
DM
25929 "size" : {
25930 "description" : "Volume size (read only value).",
25931 "format" : "disk-size",
25932 "format_description" : "DiskSize",
25933 "optional" : 1,
25934 "type" : "string"
25935 },
25936 "volume" : {
25937 "default_key" : 1,
25938 "description" : "Volume, device or directory to mount into the container.",
25939 "format" : "pve-lxc-mp-string",
25940 "format_description" : "volume",
25941 "type" : "string"
25942 }
25943 },
7aacca6f 25944 "optional" : 1,
4bd7df8b 25945 "type" : "string",
7cbed89a 25946 "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 25947 },
44660702
DM
25948 "nameserver" : {
25949 "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 25950 "format" : "lxc-ip-with-ll-iface-list",
56122987 25951 "optional" : 1,
013dc89f
DM
25952 "type" : "string",
25953 "typetext" : "<string>"
56122987
DM
25954 },
25955 "net[n]" : {
44660702 25956 "description" : "Specifies network interfaces for the container.",
56122987 25957 "format" : {
44660702
DM
25958 "bridge" : {
25959 "description" : "Bridge to attach the network device to.",
f004f5b9 25960 "format_description" : "bridge",
56122987 25961 "optional" : 1,
44660702
DM
25962 "pattern" : "[-_.\\w\\d]+",
25963 "type" : "string"
56122987 25964 },
44660702
DM
25965 "firewall" : {
25966 "description" : "Controls whether this interface's firewall rules should be used.",
56122987 25967 "optional" : 1,
44660702 25968 "type" : "boolean"
56122987 25969 },
44660702
DM
25970 "gw" : {
25971 "description" : "Default gateway for IPv4 traffic.",
25972 "format" : "ipv4",
25973 "format_description" : "GatewayIPv4",
56122987 25974 "optional" : 1,
44660702 25975 "type" : "string"
56122987
DM
25976 },
25977 "gw6" : {
7aacca6f 25978 "description" : "Default gateway for IPv6 traffic.",
44660702
DM
25979 "format" : "ipv6",
25980 "format_description" : "GatewayIPv6",
7aacca6f 25981 "optional" : 1,
56122987
DM
25982 "type" : "string"
25983 },
44660702 25984 "hwaddr" : {
f004f5b9 25985 "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 25986 "format" : "mac-addr",
f004f5b9 25987 "format_description" : "XX:XX:XX:XX:XX:XX",
44660702 25988 "optional" : 1,
95895385
TL
25989 "type" : "string",
25990 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
44660702
DM
25991 },
25992 "ip" : {
25993 "description" : "IPv4 address in CIDR format.",
25994 "format" : "pve-ipv4-config",
2489d6df 25995 "format_description" : "(IPv4/CIDR|dhcp|manual)",
56122987 25996 "optional" : 1,
44660702 25997 "type" : "string"
56122987 25998 },
7aacca6f 25999 "ip6" : {
7aacca6f
DM
26000 "description" : "IPv6 address in CIDR format.",
26001 "format" : "pve-ipv6-config",
2489d6df 26002 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
7aacca6f 26003 "optional" : 1,
44660702 26004 "type" : "string"
56122987 26005 },
44660702
DM
26006 "mtu" : {
26007 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
44660702 26008 "minimum" : 64,
56122987 26009 "optional" : 1,
44660702 26010 "type" : "integer"
56122987
DM
26011 },
26012 "name" : {
44660702 26013 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
f004f5b9 26014 "format_description" : "string",
56122987 26015 "pattern" : "[-_.\\w\\d]+",
44660702 26016 "type" : "string"
56122987 26017 },
44660702
DM
26018 "rate" : {
26019 "description" : "Apply rate limiting to the interface",
26020 "format_description" : "mbps",
56122987 26021 "optional" : 1,
44660702 26022 "type" : "number"
7aacca6f 26023 },
44660702
DM
26024 "tag" : {
26025 "description" : "VLAN tag for this interface.",
4bd7df8b
DM
26026 "maximum" : 4094,
26027 "minimum" : 1,
56122987 26028 "optional" : 1,
7aacca6f 26029 "type" : "integer"
56122987 26030 },
44660702
DM
26031 "trunks" : {
26032 "description" : "VLAN ids to pass through the interface",
26033 "format_description" : "vlanid[;vlanid...]",
26034 "optional" : 1,
26035 "pattern" : "(?^:\\d+(?:;\\d+)*)",
26036 "type" : "string"
26037 },
26038 "type" : {
26039 "description" : "Network interface type.",
26040 "enum" : [
26041 "veth"
26042 ],
56122987 26043 "optional" : 1,
44660702 26044 "type" : "string"
56122987
DM
26045 }
26046 },
7aacca6f 26047 "optional" : 1,
4bd7df8b 26048 "type" : "string",
2489d6df 26049 "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)>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
56122987 26050 },
44660702
DM
26051 "node" : {
26052 "description" : "The cluster node name.",
26053 "format" : "pve-node",
013dc89f
DM
26054 "type" : "string",
26055 "typetext" : "<string>"
56122987 26056 },
44660702
DM
26057 "onboot" : {
26058 "default" : 0,
26059 "description" : "Specifies whether a VM will be started during system bootup.",
56122987 26060 "optional" : 1,
013dc89f
DM
26061 "type" : "boolean",
26062 "typetext" : "<boolean>"
56122987 26063 },
44660702
DM
26064 "ostype" : {
26065 "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.",
26066 "enum" : [
26067 "debian",
d2656385 26068 "devuan",
44660702
DM
26069 "ubuntu",
26070 "centos",
26071 "fedora",
26072 "opensuse",
26073 "archlinux",
26074 "alpine",
57b78691 26075 "gentoo",
7af2edf9 26076 "nixos",
44660702
DM
26077 "unmanaged"
26078 ],
56122987 26079 "optional" : 1,
44660702 26080 "type" : "string"
56122987 26081 },
44660702
DM
26082 "protection" : {
26083 "default" : 0,
26084 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
56122987 26085 "optional" : 1,
013dc89f
DM
26086 "type" : "boolean",
26087 "typetext" : "<boolean>"
56122987 26088 },
1c532546
TL
26089 "revert" : {
26090 "description" : "Revert a pending change.",
26091 "format" : "pve-configid-list",
26092 "optional" : 1,
26093 "type" : "string",
26094 "typetext" : "<string>"
26095 },
7aacca6f
DM
26096 "rootfs" : {
26097 "description" : "Use volume as container root.",
56122987
DM
26098 "format" : {
26099 "acl" : {
44660702 26100 "description" : "Explicitly enable or disable ACL support.",
7aacca6f
DM
26101 "optional" : 1,
26102 "type" : "boolean"
56122987 26103 },
7cbed89a
TL
26104 "mountoptions" : {
26105 "description" : "Extra mount options for rootfs/mps.",
26106 "format_description" : "opt[;opt...]",
26107 "optional" : 1,
c30bb419 26108 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
26109 "type" : "string"
26110 },
44660702
DM
26111 "quota" : {
26112 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
44660702
DM
26113 "optional" : 1,
26114 "type" : "boolean"
26115 },
5d9c884c
DM
26116 "replicate" : {
26117 "default" : 1,
26118 "description" : "Will include this volume to a storage replica job.",
26119 "optional" : 1,
26120 "type" : "boolean"
26121 },
44660702 26122 "ro" : {
de0983cb 26123 "description" : "Read-only mount point",
56122987 26124 "optional" : 1,
44660702
DM
26125 "type" : "boolean"
26126 },
de0983cb
DM
26127 "shared" : {
26128 "default" : 0,
26129 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
26130 "optional" : 1,
26131 "type" : "boolean",
26132 "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!"
26133 },
44660702 26134 "size" : {
7aacca6f 26135 "description" : "Volume size (read only value).",
44660702 26136 "format" : "disk-size",
56122987 26137 "format_description" : "DiskSize",
56122987 26138 "optional" : 1,
44660702 26139 "type" : "string"
7aacca6f
DM
26140 },
26141 "volume" : {
7aacca6f
DM
26142 "default_key" : 1,
26143 "description" : "Volume, device or directory to mount into the container.",
44660702
DM
26144 "format" : "pve-lxc-mp-string",
26145 "format_description" : "volume",
7aacca6f 26146 "type" : "string"
56122987 26147 }
44660702
DM
26148 },
26149 "optional" : 1,
4bd7df8b 26150 "type" : "string",
7cbed89a 26151 "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
26152 },
26153 "searchdomain" : {
26154 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
26155 "format" : "dns-name-list",
26156 "optional" : 1,
013dc89f
DM
26157 "type" : "string",
26158 "typetext" : "<string>"
44660702
DM
26159 },
26160 "startup" : {
26161 "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.",
26162 "format" : "pve-startup-order",
26163 "optional" : 1,
26164 "type" : "string",
26165 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
26166 },
26167 "swap" : {
26168 "default" : 512,
26169 "description" : "Amount of SWAP for the VM in MB.",
26170 "minimum" : 0,
26171 "optional" : 1,
4bd7df8b 26172 "type" : "integer",
013dc89f 26173 "typetext" : "<integer> (0 - N)"
56122987 26174 },
5c1699e5
TL
26175 "tags" : {
26176 "description" : "Tags of the Container. This is only meta information.",
26177 "format" : "pve-tag-list",
26178 "optional" : 1,
26179 "type" : "string",
26180 "typetext" : "<string>"
26181 },
56122987 26182 "template" : {
44660702 26183 "default" : 0,
7aacca6f 26184 "description" : "Enable/disable Template.",
56122987 26185 "optional" : 1,
013dc89f
DM
26186 "type" : "boolean",
26187 "typetext" : "<boolean>"
56122987 26188 },
04d22a9f
TL
26189 "timezone" : {
26190 "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",
26191 "format" : "pve-ct-timezone",
26192 "optional" : 1,
26193 "type" : "string",
26194 "typetext" : "<string>"
26195 },
44660702
DM
26196 "tty" : {
26197 "default" : 2,
26198 "description" : "Specify the number of tty available to the container",
26199 "maximum" : 6,
26200 "minimum" : 0,
26201 "optional" : 1,
4bd7df8b 26202 "type" : "integer",
013dc89f 26203 "typetext" : "<integer> (0 - 6)"
56122987 26204 },
44660702
DM
26205 "unprivileged" : {
26206 "default" : 0,
26207 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
56122987 26208 "optional" : 1,
013dc89f
DM
26209 "type" : "boolean",
26210 "typetext" : "<boolean>"
56122987 26211 },
44660702 26212 "unused[n]" : {
c2993fe5 26213 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
26214 "format" : {
26215 "volume" : {
26216 "default_key" : 1,
26217 "description" : "The volume that is not used currently.",
26218 "format" : "pve-volume-id",
26219 "format_description" : "volume",
26220 "type" : "string"
26221 }
26222 },
56122987 26223 "optional" : 1,
013dc89f 26224 "type" : "string",
c5aa7e14 26225 "typetext" : "[volume=]<volume>"
44660702
DM
26226 },
26227 "vmid" : {
26228 "description" : "The (unique) ID of the VM.",
26229 "format" : "pve-vmid",
26230 "minimum" : 1,
4bd7df8b 26231 "type" : "integer",
013dc89f 26232 "typetext" : "<integer> (1 - N)"
56122987 26233 }
44660702 26234 }
56122987 26235 },
56122987
DM
26236 "permissions" : {
26237 "check" : [
26238 "perm",
26239 "/vms/{vmid}",
26240 [
26241 "VM.Config.Disk",
26242 "VM.Config.CPU",
26243 "VM.Config.Memory",
26244 "VM.Config.Network",
26245 "VM.Config.Options"
26246 ],
26247 "any",
26248 1
52e44c50
FG
26249 ],
26250 "description" : "non-volume mount points in rootfs and mp[n] are restricted to root@pam"
56122987 26251 },
44660702
DM
26252 "protected" : 1,
26253 "proxyto" : "node",
56122987
DM
26254 "returns" : {
26255 "type" : "null"
7aacca6f 26256 }
56122987 26257 }
7aacca6f 26258 },
44660702 26259 "leaf" : 1,
7aacca6f 26260 "path" : "/nodes/{node}/lxc/{vmid}/config",
44660702 26261 "text" : "config"
56122987
DM
26262 },
26263 {
56122987
DM
26264 "children" : [
26265 {
26266 "info" : {
26267 "GET" : {
e9cd3bd4 26268 "allowtoken" : 1,
44660702 26269 "description" : "Get virtual machine status.",
7aacca6f 26270 "method" : "GET",
44660702 26271 "name" : "vm_status",
56122987 26272 "parameters" : {
44660702 26273 "additionalProperties" : 0,
56122987 26274 "properties" : {
56122987 26275 "node" : {
44660702 26276 "description" : "The cluster node name.",
56122987 26277 "format" : "pve-node",
013dc89f
DM
26278 "type" : "string",
26279 "typetext" : "<string>"
7aacca6f
DM
26280 },
26281 "vmid" : {
26282 "description" : "The (unique) ID of the VM.",
44660702 26283 "format" : "pve-vmid",
7aacca6f 26284 "minimum" : 1,
4bd7df8b 26285 "type" : "integer",
013dc89f 26286 "typetext" : "<integer> (1 - N)"
56122987 26287 }
44660702 26288 }
7aacca6f
DM
26289 },
26290 "permissions" : {
26291 "check" : [
26292 "perm",
26293 "/vms/{vmid}",
26294 [
4d47f125
TL
26295 "VM.Audit"
26296 ]
26297 ]
26298 },
26299 "protected" : 1,
26300 "proxyto" : "node",
26301 "returns" : {
26302 "properties" : {
26303 "cpus" : {
26304 "description" : "Maximum usable CPUs.",
26305 "optional" : 1,
26306 "type" : "number"
26307 },
26308 "ha" : {
26309 "description" : "HA manager service status.",
26310 "type" : "object"
26311 },
95895385
TL
26312 "lock" : {
26313 "description" : "The current config lock, if any.",
26314 "optional" : 1,
26315 "type" : "string"
26316 },
4d47f125
TL
26317 "maxdisk" : {
26318 "description" : "Root disk size in bytes.",
26319 "optional" : 1,
26320 "renderer" : "bytes",
26321 "type" : "integer"
26322 },
26323 "maxmem" : {
26324 "description" : "Maximum memory in bytes.",
26325 "optional" : 1,
26326 "renderer" : "bytes",
26327 "type" : "integer"
26328 },
26329 "maxswap" : {
26330 "description" : "Maximum SWAP memory in bytes.",
26331 "optional" : 1,
26332 "renderer" : "bytes",
26333 "type" : "integer"
26334 },
26335 "name" : {
26336 "description" : "Container name.",
26337 "optional" : 1,
26338 "type" : "string"
26339 },
26340 "status" : {
26341 "description" : "LXC Container status.",
26342 "enum" : [
26343 "stopped",
26344 "running"
26345 ],
26346 "type" : "string"
26347 },
5c1699e5
TL
26348 "tags" : {
26349 "description" : "The current configured tags, if any.",
26350 "optional" : 1,
26351 "type" : "string"
26352 },
4d47f125
TL
26353 "uptime" : {
26354 "description" : "Uptime.",
26355 "optional" : 1,
26356 "renderer" : "duration",
26357 "type" : "integer"
26358 },
26359 "vmid" : {
26360 "description" : "The (unique) ID of the VM.",
26361 "format" : "pve-vmid",
26362 "minimum" : 1,
26363 "type" : "integer"
26364 }
26365 },
26366 "type" : "object"
26367 }
26368 }
26369 },
26370 "leaf" : 1,
26371 "path" : "/nodes/{node}/lxc/{vmid}/status/current",
26372 "text" : "current"
26373 },
26374 {
26375 "info" : {
26376 "POST" : {
e9cd3bd4 26377 "allowtoken" : 1,
4d47f125
TL
26378 "description" : "Start the container.",
26379 "method" : "POST",
26380 "name" : "vm_start",
26381 "parameters" : {
26382 "additionalProperties" : 0,
26383 "properties" : {
739d4d64
TL
26384 "debug" : {
26385 "default" : 0,
26386 "description" : "If set, enables very verbose debug log-level on start.",
26387 "optional" : 1,
26388 "type" : "boolean",
26389 "typetext" : "<boolean>"
26390 },
4d47f125
TL
26391 "node" : {
26392 "description" : "The cluster node name.",
26393 "format" : "pve-node",
26394 "type" : "string",
26395 "typetext" : "<string>"
26396 },
26397 "skiplock" : {
26398 "description" : "Ignore locks - only root is allowed to use this option.",
26399 "optional" : 1,
26400 "type" : "boolean",
26401 "typetext" : "<boolean>"
26402 },
26403 "vmid" : {
26404 "description" : "The (unique) ID of the VM.",
26405 "format" : "pve-vmid",
26406 "minimum" : 1,
26407 "type" : "integer",
26408 "typetext" : "<integer> (1 - N)"
26409 }
26410 }
26411 },
26412 "permissions" : {
26413 "check" : [
26414 "perm",
26415 "/vms/{vmid}",
26416 [
26417 "VM.PowerMgmt"
26418 ]
26419 ]
26420 },
26421 "protected" : 1,
26422 "proxyto" : "node",
26423 "returns" : {
26424 "type" : "string"
26425 }
26426 }
26427 },
26428 "leaf" : 1,
26429 "path" : "/nodes/{node}/lxc/{vmid}/status/start",
26430 "text" : "start"
26431 },
26432 {
26433 "info" : {
26434 "POST" : {
e9cd3bd4 26435 "allowtoken" : 1,
4d47f125
TL
26436 "description" : "Stop the container. This will abruptly stop all processes running in the container.",
26437 "method" : "POST",
26438 "name" : "vm_stop",
26439 "parameters" : {
26440 "additionalProperties" : 0,
26441 "properties" : {
26442 "node" : {
26443 "description" : "The cluster node name.",
26444 "format" : "pve-node",
26445 "type" : "string",
26446 "typetext" : "<string>"
26447 },
26448 "skiplock" : {
26449 "description" : "Ignore locks - only root is allowed to use this option.",
26450 "optional" : 1,
26451 "type" : "boolean",
26452 "typetext" : "<boolean>"
26453 },
26454 "vmid" : {
26455 "description" : "The (unique) ID of the VM.",
26456 "format" : "pve-vmid",
26457 "minimum" : 1,
26458 "type" : "integer",
26459 "typetext" : "<integer> (1 - N)"
26460 }
26461 }
26462 },
26463 "permissions" : {
26464 "check" : [
26465 "perm",
26466 "/vms/{vmid}",
26467 [
26468 "VM.PowerMgmt"
26469 ]
26470 ]
26471 },
26472 "protected" : 1,
26473 "proxyto" : "node",
26474 "returns" : {
26475 "type" : "string"
26476 }
26477 }
26478 },
26479 "leaf" : 1,
26480 "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
26481 "text" : "stop"
26482 },
26483 {
26484 "info" : {
26485 "POST" : {
e9cd3bd4 26486 "allowtoken" : 1,
4d47f125
TL
26487 "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
26488 "method" : "POST",
26489 "name" : "vm_shutdown",
26490 "parameters" : {
26491 "additionalProperties" : 0,
26492 "properties" : {
26493 "forceStop" : {
26494 "default" : 0,
26495 "description" : "Make sure the Container stops.",
26496 "optional" : 1,
26497 "type" : "boolean",
26498 "typetext" : "<boolean>"
26499 },
26500 "node" : {
26501 "description" : "The cluster node name.",
26502 "format" : "pve-node",
26503 "type" : "string",
26504 "typetext" : "<string>"
26505 },
26506 "timeout" : {
26507 "default" : 60,
26508 "description" : "Wait maximal timeout seconds.",
26509 "minimum" : 0,
26510 "optional" : 1,
26511 "type" : "integer",
26512 "typetext" : "<integer> (0 - N)"
26513 },
26514 "vmid" : {
26515 "description" : "The (unique) ID of the VM.",
26516 "format" : "pve-vmid",
26517 "minimum" : 1,
26518 "type" : "integer",
26519 "typetext" : "<integer> (1 - N)"
26520 }
26521 }
26522 },
26523 "permissions" : {
26524 "check" : [
26525 "perm",
26526 "/vms/{vmid}",
26527 [
26528 "VM.PowerMgmt"
7aacca6f
DM
26529 ]
26530 ]
26531 },
44660702 26532 "protected" : 1,
7aacca6f 26533 "proxyto" : "node",
44660702 26534 "returns" : {
4d47f125 26535 "type" : "string"
44660702 26536 }
56122987
DM
26537 }
26538 },
44660702 26539 "leaf" : 1,
4d47f125
TL
26540 "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
26541 "text" : "shutdown"
56122987
DM
26542 },
26543 {
56122987
DM
26544 "info" : {
26545 "POST" : {
e9cd3bd4 26546 "allowtoken" : 1,
5370fa8c 26547 "description" : "Suspend the container. This is experimental.",
44660702 26548 "method" : "POST",
4d47f125 26549 "name" : "vm_suspend",
56122987
DM
26550 "parameters" : {
26551 "additionalProperties" : 0,
26552 "properties" : {
56122987 26553 "node" : {
7aacca6f 26554 "description" : "The cluster node name.",
44660702 26555 "format" : "pve-node",
013dc89f
DM
26556 "type" : "string",
26557 "typetext" : "<string>"
56122987
DM
26558 },
26559 "vmid" : {
7aacca6f 26560 "description" : "The (unique) ID of the VM.",
44660702 26561 "format" : "pve-vmid",
56122987 26562 "minimum" : 1,
4bd7df8b 26563 "type" : "integer",
013dc89f 26564 "typetext" : "<integer> (1 - N)"
56122987
DM
26565 }
26566 }
26567 },
26568 "permissions" : {
26569 "check" : [
26570 "perm",
26571 "/vms/{vmid}",
26572 [
26573 "VM.PowerMgmt"
26574 ]
26575 ]
26576 },
44660702 26577 "protected" : 1,
7aacca6f 26578 "proxyto" : "node",
44660702
DM
26579 "returns" : {
26580 "type" : "string"
26581 }
26582 }
26583 },
26584 "leaf" : 1,
4d47f125
TL
26585 "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
26586 "text" : "suspend"
44660702
DM
26587 },
26588 {
26589 "info" : {
26590 "POST" : {
e9cd3bd4 26591 "allowtoken" : 1,
4d47f125 26592 "description" : "Resume the container.",
7aacca6f 26593 "method" : "POST",
4d47f125 26594 "name" : "vm_resume",
7aacca6f 26595 "parameters" : {
44660702 26596 "additionalProperties" : 0,
7aacca6f 26597 "properties" : {
44660702
DM
26598 "node" : {
26599 "description" : "The cluster node name.",
26600 "format" : "pve-node",
013dc89f
DM
26601 "type" : "string",
26602 "typetext" : "<string>"
44660702 26603 },
7aacca6f 26604 "vmid" : {
44660702 26605 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
26606 "format" : "pve-vmid",
26607 "minimum" : 1,
4bd7df8b 26608 "type" : "integer",
013dc89f 26609 "typetext" : "<integer> (1 - N)"
7aacca6f 26610 }
44660702
DM
26611 }
26612 },
26613 "permissions" : {
26614 "check" : [
26615 "perm",
26616 "/vms/{vmid}",
26617 [
26618 "VM.PowerMgmt"
26619 ]
26620 ]
7aacca6f 26621 },
44660702
DM
26622 "protected" : 1,
26623 "proxyto" : "node",
26624 "returns" : {
26625 "type" : "string"
26626 }
56122987 26627 }
7aacca6f 26628 },
7aacca6f 26629 "leaf" : 1,
4d47f125
TL
26630 "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
26631 "text" : "resume"
5c1699e5
TL
26632 },
26633 {
26634 "info" : {
26635 "POST" : {
e9cd3bd4 26636 "allowtoken" : 1,
5c1699e5
TL
26637 "description" : "Reboot the container by shutting it down, and starting it again. Applies pending changes.",
26638 "method" : "POST",
26639 "name" : "vm_reboot",
26640 "parameters" : {
26641 "additionalProperties" : 0,
26642 "properties" : {
26643 "node" : {
26644 "description" : "The cluster node name.",
26645 "format" : "pve-node",
26646 "type" : "string",
26647 "typetext" : "<string>"
26648 },
26649 "timeout" : {
26650 "description" : "Wait maximal timeout seconds for the shutdown.",
26651 "minimum" : 0,
26652 "optional" : 1,
26653 "type" : "integer",
26654 "typetext" : "<integer> (0 - N)"
26655 },
26656 "vmid" : {
26657 "description" : "The (unique) ID of the VM.",
26658 "format" : "pve-vmid",
26659 "minimum" : 1,
26660 "type" : "integer",
26661 "typetext" : "<integer> (1 - N)"
26662 }
26663 }
26664 },
26665 "permissions" : {
26666 "check" : [
26667 "perm",
26668 "/vms/{vmid}",
26669 [
26670 "VM.PowerMgmt"
26671 ]
26672 ]
26673 },
26674 "protected" : 1,
26675 "proxyto" : "node",
26676 "returns" : {
26677 "type" : "string"
26678 }
26679 }
26680 },
26681 "leaf" : 1,
26682 "path" : "/nodes/{node}/lxc/{vmid}/status/reboot",
26683 "text" : "reboot"
4d47f125
TL
26684 }
26685 ],
26686 "info" : {
26687 "GET" : {
e9cd3bd4 26688 "allowtoken" : 1,
4d47f125
TL
26689 "description" : "Directory index",
26690 "method" : "GET",
26691 "name" : "vmcmdidx",
26692 "parameters" : {
26693 "additionalProperties" : 0,
26694 "properties" : {
26695 "node" : {
26696 "description" : "The cluster node name.",
26697 "format" : "pve-node",
26698 "type" : "string",
26699 "typetext" : "<string>"
26700 },
26701 "vmid" : {
26702 "description" : "The (unique) ID of the VM.",
26703 "format" : "pve-vmid",
26704 "minimum" : 1,
26705 "type" : "integer",
26706 "typetext" : "<integer> (1 - N)"
26707 }
26708 }
26709 },
26710 "permissions" : {
26711 "user" : "all"
26712 },
26713 "proxyto" : "node",
26714 "returns" : {
26715 "items" : {
26716 "properties" : {
26717 "subdir" : {
26718 "type" : "string"
26719 }
26720 },
26721 "type" : "object"
26722 },
26723 "links" : [
26724 {
26725 "href" : "{subdir}",
26726 "rel" : "child"
26727 }
26728 ],
26729 "type" : "array"
26730 }
26731 }
26732 },
26733 "leaf" : 0,
26734 "path" : "/nodes/{node}/lxc/{vmid}/status",
26735 "text" : "status"
26736 },
26737 {
26738 "children" : [
56122987 26739 {
4d47f125
TL
26740 "children" : [
26741 {
26742 "info" : {
26743 "POST" : {
e9cd3bd4 26744 "allowtoken" : 1,
4d47f125
TL
26745 "description" : "Rollback LXC state to specified snapshot.",
26746 "method" : "POST",
26747 "name" : "rollback",
26748 "parameters" : {
26749 "additionalProperties" : 0,
26750 "properties" : {
26751 "node" : {
26752 "description" : "The cluster node name.",
26753 "format" : "pve-node",
26754 "type" : "string",
26755 "typetext" : "<string>"
26756 },
26757 "snapname" : {
26758 "description" : "The name of the snapshot.",
26759 "format" : "pve-configid",
26760 "maxLength" : 40,
26761 "type" : "string",
26762 "typetext" : "<string>"
26763 },
26764 "vmid" : {
26765 "description" : "The (unique) ID of the VM.",
26766 "format" : "pve-vmid",
26767 "minimum" : 1,
26768 "type" : "integer",
26769 "typetext" : "<integer> (1 - N)"
26770 }
26771 }
26772 },
26773 "permissions" : {
26774 "check" : [
26775 "perm",
26776 "/vms/{vmid}",
26777 [
26778 "VM.Snapshot",
26779 "VM.Snapshot.Rollback"
26780 ],
26781 "any",
26782 1
26783 ]
26784 },
26785 "protected" : 1,
26786 "proxyto" : "node",
26787 "returns" : {
26788 "description" : "the task ID.",
26789 "type" : "string"
26790 }
26791 }
26792 },
26793 "leaf" : 1,
26794 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
26795 "text" : "rollback"
26796 },
26797 {
26798 "info" : {
26799 "GET" : {
e9cd3bd4 26800 "allowtoken" : 1,
4d47f125
TL
26801 "description" : "Get snapshot configuration",
26802 "method" : "GET",
26803 "name" : "get_snapshot_config",
26804 "parameters" : {
26805 "additionalProperties" : 0,
26806 "properties" : {
26807 "node" : {
26808 "description" : "The cluster node name.",
26809 "format" : "pve-node",
26810 "type" : "string",
26811 "typetext" : "<string>"
26812 },
26813 "snapname" : {
26814 "description" : "The name of the snapshot.",
26815 "format" : "pve-configid",
26816 "maxLength" : 40,
26817 "type" : "string",
26818 "typetext" : "<string>"
26819 },
26820 "vmid" : {
26821 "description" : "The (unique) ID of the VM.",
26822 "format" : "pve-vmid",
26823 "minimum" : 1,
26824 "type" : "integer",
26825 "typetext" : "<integer> (1 - N)"
26826 }
26827 }
26828 },
26829 "permissions" : {
26830 "check" : [
26831 "perm",
26832 "/vms/{vmid}",
26833 [
26834 "VM.Snapshot",
c5aa7e14
TL
26835 "VM.Snapshot.Rollback",
26836 "VM.Audit"
4d47f125
TL
26837 ],
26838 "any",
26839 1
26840 ]
26841 },
26842 "proxyto" : "node",
26843 "returns" : {
26844 "type" : "object"
26845 }
26846 },
26847 "PUT" : {
e9cd3bd4 26848 "allowtoken" : 1,
4d47f125
TL
26849 "description" : "Update snapshot metadata.",
26850 "method" : "PUT",
26851 "name" : "update_snapshot_config",
26852 "parameters" : {
26853 "additionalProperties" : 0,
26854 "properties" : {
26855 "description" : {
26856 "description" : "A textual description or comment.",
26857 "optional" : 1,
26858 "type" : "string",
26859 "typetext" : "<string>"
26860 },
26861 "node" : {
26862 "description" : "The cluster node name.",
26863 "format" : "pve-node",
26864 "type" : "string",
26865 "typetext" : "<string>"
26866 },
26867 "snapname" : {
26868 "description" : "The name of the snapshot.",
26869 "format" : "pve-configid",
26870 "maxLength" : 40,
26871 "type" : "string",
26872 "typetext" : "<string>"
26873 },
26874 "vmid" : {
26875 "description" : "The (unique) ID of the VM.",
26876 "format" : "pve-vmid",
26877 "minimum" : 1,
26878 "type" : "integer",
26879 "typetext" : "<integer> (1 - N)"
26880 }
26881 }
26882 },
26883 "permissions" : {
26884 "check" : [
26885 "perm",
26886 "/vms/{vmid}",
26887 [
26888 "VM.Snapshot"
26889 ]
26890 ]
26891 },
26892 "protected" : 1,
26893 "proxyto" : "node",
26894 "returns" : {
26895 "type" : "null"
26896 }
26897 }
26898 },
26899 "leaf" : 1,
26900 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
26901 "text" : "config"
26902 }
26903 ],
56122987 26904 "info" : {
4d47f125 26905 "DELETE" : {
e9cd3bd4 26906 "allowtoken" : 1,
4d47f125
TL
26907 "description" : "Delete a LXC snapshot.",
26908 "method" : "DELETE",
26909 "name" : "delsnapshot",
56122987 26910 "parameters" : {
44660702 26911 "additionalProperties" : 0,
56122987 26912 "properties" : {
4d47f125
TL
26913 "force" : {
26914 "description" : "For removal from config file, even if removing disk snapshots fails.",
7aacca6f 26915 "optional" : 1,
013dc89f
DM
26916 "type" : "boolean",
26917 "typetext" : "<boolean>"
44660702
DM
26918 },
26919 "node" : {
26920 "description" : "The cluster node name.",
26921 "format" : "pve-node",
013dc89f
DM
26922 "type" : "string",
26923 "typetext" : "<string>"
7aacca6f 26924 },
4d47f125
TL
26925 "snapname" : {
26926 "description" : "The name of the snapshot.",
26927 "format" : "pve-configid",
26928 "maxLength" : 40,
26929 "type" : "string",
26930 "typetext" : "<string>"
56122987
DM
26931 },
26932 "vmid" : {
7aacca6f 26933 "description" : "The (unique) ID of the VM.",
44660702
DM
26934 "format" : "pve-vmid",
26935 "minimum" : 1,
4bd7df8b 26936 "type" : "integer",
013dc89f 26937 "typetext" : "<integer> (1 - N)"
56122987 26938 }
44660702 26939 }
56122987
DM
26940 },
26941 "permissions" : {
26942 "check" : [
26943 "perm",
26944 "/vms/{vmid}",
26945 [
4d47f125 26946 "VM.Snapshot"
56122987
DM
26947 ]
26948 ]
26949 },
44660702
DM
26950 "protected" : 1,
26951 "proxyto" : "node",
7aacca6f 26952 "returns" : {
4d47f125 26953 "description" : "the task ID.",
7aacca6f
DM
26954 "type" : "string"
26955 }
4d47f125
TL
26956 },
26957 "GET" : {
e9cd3bd4 26958 "allowtoken" : 1,
4d47f125
TL
26959 "description" : "",
26960 "method" : "GET",
26961 "name" : "snapshot_cmd_idx",
56122987
DM
26962 "parameters" : {
26963 "additionalProperties" : 0,
26964 "properties" : {
44660702
DM
26965 "node" : {
26966 "description" : "The cluster node name.",
26967 "format" : "pve-node",
013dc89f
DM
26968 "type" : "string",
26969 "typetext" : "<string>"
44660702 26970 },
4d47f125
TL
26971 "snapname" : {
26972 "description" : "The name of the snapshot.",
26973 "format" : "pve-configid",
26974 "maxLength" : 40,
013dc89f
DM
26975 "type" : "string",
26976 "typetext" : "<string>"
56122987
DM
26977 },
26978 "vmid" : {
7aacca6f 26979 "description" : "The (unique) ID of the VM.",
56122987 26980 "format" : "pve-vmid",
44660702 26981 "minimum" : 1,
4bd7df8b 26982 "type" : "integer",
013dc89f 26983 "typetext" : "<integer> (1 - N)"
56122987 26984 }
44660702
DM
26985 }
26986 },
26987 "permissions" : {
4d47f125 26988 "user" : "all"
56122987 26989 },
44660702 26990 "returns" : {
4d47f125
TL
26991 "items" : {
26992 "properties" : {},
26993 "type" : "object"
26994 },
26995 "links" : [
26996 {
26997 "href" : "{cmd}",
26998 "rel" : "child"
26999 }
27000 ],
27001 "type" : "array"
44660702 27002 }
7aacca6f
DM
27003 }
27004 },
4d47f125
TL
27005 "leaf" : 0,
27006 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
27007 "text" : "{snapname}"
7aacca6f
DM
27008 }
27009 ],
27010 "info" : {
27011 "GET" : {
e9cd3bd4 27012 "allowtoken" : 1,
4d47f125 27013 "description" : "List all snapshots.",
44660702 27014 "method" : "GET",
4d47f125 27015 "name" : "list",
7aacca6f
DM
27016 "parameters" : {
27017 "additionalProperties" : 0,
27018 "properties" : {
27019 "node" : {
27020 "description" : "The cluster node name.",
44660702 27021 "format" : "pve-node",
013dc89f
DM
27022 "type" : "string",
27023 "typetext" : "<string>"
56122987 27024 },
7aacca6f 27025 "vmid" : {
44660702 27026 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
27027 "format" : "pve-vmid",
27028 "minimum" : 1,
4bd7df8b 27029 "type" : "integer",
013dc89f 27030 "typetext" : "<integer> (1 - N)"
7aacca6f 27031 }
56122987
DM
27032 }
27033 },
44660702 27034 "permissions" : {
4d47f125
TL
27035 "check" : [
27036 "perm",
27037 "/vms/{vmid}",
27038 [
27039 "VM.Audit"
27040 ]
27041 ]
44660702 27042 },
4d47f125 27043 "protected" : 1,
44660702 27044 "proxyto" : "node",
7aacca6f 27045 "returns" : {
7aacca6f
DM
27046 "items" : {
27047 "properties" : {
4d47f125
TL
27048 "description" : {
27049 "description" : "Snapshot description.",
7aacca6f 27050 "type" : "string"
4d47f125
TL
27051 },
27052 "name" : {
27053 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
27054 "type" : "string"
27055 },
27056 "parent" : {
27057 "description" : "Parent snapshot identifier.",
27058 "optional" : 1,
27059 "type" : "string"
27060 },
27061 "snaptime" : {
27062 "description" : "Snapshot creation time",
27063 "optional" : 1,
27064 "renderer" : "timestamp",
27065 "type" : "integer"
7aacca6f
DM
27066 }
27067 },
27068 "type" : "object"
27069 },
27070 "links" : [
27071 {
4d47f125 27072 "href" : "{name}",
44660702 27073 "rel" : "child"
7aacca6f 27074 }
44660702
DM
27075 ],
27076 "type" : "array"
7aacca6f 27077 }
4d47f125
TL
27078 },
27079 "POST" : {
e9cd3bd4 27080 "allowtoken" : 1,
4d47f125
TL
27081 "description" : "Snapshot a container.",
27082 "method" : "POST",
27083 "name" : "snapshot",
27084 "parameters" : {
27085 "additionalProperties" : 0,
27086 "properties" : {
27087 "description" : {
27088 "description" : "A textual description or comment.",
27089 "optional" : 1,
27090 "type" : "string",
27091 "typetext" : "<string>"
27092 },
27093 "node" : {
27094 "description" : "The cluster node name.",
27095 "format" : "pve-node",
27096 "type" : "string",
27097 "typetext" : "<string>"
27098 },
27099 "snapname" : {
27100 "description" : "The name of the snapshot.",
27101 "format" : "pve-configid",
27102 "maxLength" : 40,
27103 "type" : "string",
27104 "typetext" : "<string>"
27105 },
27106 "vmid" : {
27107 "description" : "The (unique) ID of the VM.",
27108 "format" : "pve-vmid",
27109 "minimum" : 1,
27110 "type" : "integer",
27111 "typetext" : "<integer> (1 - N)"
27112 }
27113 }
27114 },
27115 "permissions" : {
27116 "check" : [
27117 "perm",
27118 "/vms/{vmid}",
27119 [
27120 "VM.Snapshot"
27121 ]
27122 ]
27123 },
27124 "protected" : 1,
27125 "proxyto" : "node",
27126 "returns" : {
27127 "description" : "the task ID.",
27128 "type" : "string"
27129 }
7aacca6f 27130 }
44660702
DM
27131 },
27132 "leaf" : 0,
4d47f125
TL
27133 "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
27134 "text" : "snapshot"
7aacca6f
DM
27135 },
27136 {
7aacca6f 27137 "children" : [
56122987 27138 {
7aacca6f
DM
27139 "children" : [
27140 {
27141 "info" : {
4d47f125 27142 "DELETE" : {
e9cd3bd4 27143 "allowtoken" : 1,
4d47f125
TL
27144 "description" : "Delete rule.",
27145 "method" : "DELETE",
27146 "name" : "delete_rule",
7aacca6f 27147 "parameters" : {
44660702 27148 "additionalProperties" : 0,
7aacca6f 27149 "properties" : {
4d47f125
TL
27150 "digest" : {
27151 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27152 "maxLength" : 40,
27153 "optional" : 1,
27154 "type" : "string",
27155 "typetext" : "<string>"
27156 },
44660702
DM
27157 "node" : {
27158 "description" : "The cluster node name.",
27159 "format" : "pve-node",
013dc89f
DM
27160 "type" : "string",
27161 "typetext" : "<string>"
44660702 27162 },
4d47f125
TL
27163 "pos" : {
27164 "description" : "Update rule at position <pos>.",
27165 "minimum" : 0,
27166 "optional" : 1,
27167 "type" : "integer",
27168 "typetext" : "<integer> (0 - N)"
7aacca6f 27169 },
7aacca6f 27170 "vmid" : {
44660702 27171 "description" : "The (unique) ID of the VM.",
7aacca6f 27172 "format" : "pve-vmid",
44660702 27173 "minimum" : 1,
4bd7df8b 27174 "type" : "integer",
013dc89f 27175 "typetext" : "<integer> (1 - N)"
7aacca6f 27176 }
44660702
DM
27177 }
27178 },
27179 "permissions" : {
27180 "check" : [
27181 "perm",
27182 "/vms/{vmid}",
27183 [
4d47f125
TL
27184 "VM.Config.Network"
27185 ]
44660702 27186 ]
7aacca6f 27187 },
44660702 27188 "protected" : 1,
4d47f125 27189 "proxyto" : null,
44660702 27190 "returns" : {
4d47f125 27191 "type" : "null"
44660702 27192 }
4d47f125 27193 },
7aacca6f 27194 "GET" : {
e9cd3bd4 27195 "allowtoken" : 1,
4d47f125 27196 "description" : "Get single rule data.",
44660702 27197 "method" : "GET",
4d47f125 27198 "name" : "get_rule",
7aacca6f
DM
27199 "parameters" : {
27200 "additionalProperties" : 0,
4d47f125
TL
27201 "properties" : {
27202 "node" : {
27203 "description" : "The cluster node name.",
27204 "format" : "pve-node",
013dc89f
DM
27205 "type" : "string",
27206 "typetext" : "<string>"
44660702 27207 },
4d47f125
TL
27208 "pos" : {
27209 "description" : "Update rule at position <pos>.",
27210 "minimum" : 0,
27211 "optional" : 1,
27212 "type" : "integer",
27213 "typetext" : "<integer> (0 - N)"
27214 },
44660702
DM
27215 "vmid" : {
27216 "description" : "The (unique) ID of the VM.",
27217 "format" : "pve-vmid",
27218 "minimum" : 1,
4bd7df8b 27219 "type" : "integer",
013dc89f 27220 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
27221 }
27222 }
27223 },
27224 "permissions" : {
27225 "check" : [
27226 "perm",
27227 "/vms/{vmid}",
27228 [
4d47f125
TL
27229 "VM.Audit"
27230 ]
7aacca6f
DM
27231 ]
27232 },
4d47f125 27233 "proxyto" : null,
44660702 27234 "returns" : {
4d47f125 27235 "properties" : {
e2d681b3
TL
27236 "action" : {
27237 "type" : "string"
27238 },
27239 "comment" : {
27240 "optional" : 1,
27241 "type" : "string"
27242 },
27243 "dest" : {
27244 "optional" : 1,
27245 "type" : "string"
27246 },
27247 "dport" : {
27248 "optional" : 1,
27249 "type" : "string"
27250 },
27251 "enable" : {
27252 "optional" : 1,
27253 "type" : "integer"
27254 },
4772952b
TL
27255 "icmp-type" : {
27256 "optional" : 1,
27257 "type" : "string"
27258 },
e2d681b3
TL
27259 "iface" : {
27260 "optional" : 1,
27261 "type" : "string"
27262 },
27263 "ipversion" : {
27264 "optional" : 1,
27265 "type" : "integer"
27266 },
95895385
TL
27267 "log" : {
27268 "description" : "Log level for firewall rule",
27269 "enum" : [
27270 "emerg",
27271 "alert",
27272 "crit",
27273 "err",
27274 "warning",
27275 "notice",
27276 "info",
27277 "debug",
27278 "nolog"
27279 ],
27280 "optional" : 1,
27281 "type" : "string"
27282 },
e2d681b3
TL
27283 "macro" : {
27284 "optional" : 1,
5f26e15b 27285 "type" : "string"
e2d681b3 27286 },
4d47f125
TL
27287 "pos" : {
27288 "type" : "integer"
e2d681b3
TL
27289 },
27290 "proto" : {
27291 "optional" : 1,
27292 "type" : "string"
27293 },
27294 "source" : {
27295 "optional" : 1,
27296 "type" : "string"
27297 },
27298 "sport" : {
27299 "optional" : 1,
27300 "type" : "string"
27301 },
27302 "type" : {
27303 "type" : "string"
4d47f125
TL
27304 }
27305 },
44660702
DM
27306 "type" : "object"
27307 }
7aacca6f
DM
27308 },
27309 "PUT" : {
e9cd3bd4 27310 "allowtoken" : 1,
4d47f125 27311 "description" : "Modify rule data.",
44660702 27312 "method" : "PUT",
4d47f125 27313 "name" : "update_rule",
7aacca6f
DM
27314 "parameters" : {
27315 "additionalProperties" : 0,
27316 "properties" : {
4d47f125
TL
27317 "action" : {
27318 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
27319 "maxLength" : 20,
27320 "minLength" : 2,
27321 "optional" : 1,
27322 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27323 "type" : "string"
27324 },
27325 "comment" : {
27326 "description" : "Descriptive comment.",
27327 "optional" : 1,
27328 "type" : "string",
27329 "typetext" : "<string>"
27330 },
27331 "delete" : {
27332 "description" : "A list of settings you want to delete.",
27333 "format" : "pve-configid-list",
27334 "optional" : 1,
27335 "type" : "string",
27336 "typetext" : "<string>"
27337 },
27338 "dest" : {
27339 "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.",
27340 "format" : "pve-fw-addr-spec",
0695fdaf 27341 "maxLength" : 512,
4d47f125
TL
27342 "optional" : 1,
27343 "type" : "string",
27344 "typetext" : "<string>"
27345 },
27346 "digest" : {
27347 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27348 "maxLength" : 40,
27349 "optional" : 1,
27350 "type" : "string",
27351 "typetext" : "<string>"
27352 },
27353 "dport" : {
27354 "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.",
27355 "format" : "pve-fw-dport-spec",
27356 "optional" : 1,
27357 "type" : "string",
27358 "typetext" : "<string>"
27359 },
27360 "enable" : {
27361 "description" : "Flag to enable/disable a rule.",
27362 "minimum" : 0,
27363 "optional" : 1,
27364 "type" : "integer",
27365 "typetext" : "<integer> (0 - N)"
27366 },
4772952b
TL
27367 "icmp-type" : {
27368 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
27369 "format" : "pve-fw-icmp-type-spec",
27370 "optional" : 1,
27371 "type" : "string",
27372 "typetext" : "<string>"
27373 },
4d47f125
TL
27374 "iface" : {
27375 "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.",
27376 "format" : "pve-iface",
27377 "maxLength" : 20,
27378 "minLength" : 2,
27379 "optional" : 1,
27380 "type" : "string",
27381 "typetext" : "<string>"
27382 },
95895385
TL
27383 "log" : {
27384 "description" : "Log level for firewall rule.",
27385 "enum" : [
27386 "emerg",
27387 "alert",
27388 "crit",
27389 "err",
27390 "warning",
27391 "notice",
27392 "info",
27393 "debug",
27394 "nolog"
27395 ],
27396 "optional" : 1,
27397 "type" : "string"
27398 },
4d47f125
TL
27399 "macro" : {
27400 "description" : "Use predefined standard macro.",
27401 "maxLength" : 128,
44660702 27402 "optional" : 1,
013dc89f
DM
27403 "type" : "string",
27404 "typetext" : "<string>"
44660702 27405 },
4d47f125
TL
27406 "moveto" : {
27407 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
27408 "minimum" : 0,
27409 "optional" : 1,
27410 "type" : "integer",
27411 "typetext" : "<integer> (0 - N)"
27412 },
7aacca6f 27413 "node" : {
7aacca6f 27414 "description" : "The cluster node name.",
44660702 27415 "format" : "pve-node",
013dc89f
DM
27416 "type" : "string",
27417 "typetext" : "<string>"
7aacca6f 27418 },
4d47f125
TL
27419 "pos" : {
27420 "description" : "Update rule at position <pos>.",
27421 "minimum" : 0,
27422 "optional" : 1,
27423 "type" : "integer",
27424 "typetext" : "<integer> (0 - N)"
27425 },
27426 "proto" : {
27427 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
27428 "format" : "pve-fw-protocol-spec",
27429 "optional" : 1,
27430 "type" : "string",
27431 "typetext" : "<string>"
27432 },
27433 "source" : {
27434 "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.",
27435 "format" : "pve-fw-addr-spec",
0695fdaf 27436 "maxLength" : 512,
4d47f125
TL
27437 "optional" : 1,
27438 "type" : "string",
27439 "typetext" : "<string>"
27440 },
27441 "sport" : {
27442 "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.",
27443 "format" : "pve-fw-sport-spec",
27444 "optional" : 1,
013dc89f
DM
27445 "type" : "string",
27446 "typetext" : "<string>"
7aacca6f 27447 },
4d47f125
TL
27448 "type" : {
27449 "description" : "Rule type.",
27450 "enum" : [
27451 "in",
27452 "out",
27453 "group"
27454 ],
27455 "optional" : 1,
27456 "type" : "string"
27457 },
7aacca6f 27458 "vmid" : {
44660702 27459 "description" : "The (unique) ID of the VM.",
7aacca6f 27460 "format" : "pve-vmid",
44660702 27461 "minimum" : 1,
4bd7df8b 27462 "type" : "integer",
013dc89f 27463 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
27464 }
27465 }
27466 },
7aacca6f
DM
27467 "permissions" : {
27468 "check" : [
27469 "perm",
27470 "/vms/{vmid}",
27471 [
4d47f125 27472 "VM.Config.Network"
7aacca6f
DM
27473 ]
27474 ]
27475 },
4d47f125
TL
27476 "protected" : 1,
27477 "proxyto" : null,
27478 "returns" : {
27479 "type" : "null"
27480 }
27481 }
27482 },
27483 "leaf" : 1,
27484 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
27485 "text" : "{pos}"
27486 }
27487 ],
27488 "info" : {
27489 "GET" : {
e9cd3bd4 27490 "allowtoken" : 1,
4d47f125
TL
27491 "description" : "List rules.",
27492 "method" : "GET",
27493 "name" : "get_rules",
27494 "parameters" : {
27495 "additionalProperties" : 0,
27496 "properties" : {
27497 "node" : {
27498 "description" : "The cluster node name.",
27499 "format" : "pve-node",
27500 "type" : "string",
27501 "typetext" : "<string>"
27502 },
27503 "vmid" : {
27504 "description" : "The (unique) ID of the VM.",
27505 "format" : "pve-vmid",
27506 "minimum" : 1,
27507 "type" : "integer",
27508 "typetext" : "<integer> (1 - N)"
27509 }
27510 }
27511 },
27512 "permissions" : {
27513 "check" : [
27514 "perm",
27515 "/vms/{vmid}",
27516 [
27517 "VM.Audit"
27518 ]
27519 ]
27520 },
27521 "proxyto" : null,
27522 "returns" : {
27523 "items" : {
27524 "properties" : {
27525 "pos" : {
27526 "type" : "integer"
27527 }
27528 },
27529 "type" : "object"
27530 },
27531 "links" : [
27532 {
27533 "href" : "{pos}",
27534 "rel" : "child"
27535 }
27536 ],
27537 "type" : "array"
27538 }
27539 },
27540 "POST" : {
e9cd3bd4 27541 "allowtoken" : 1,
4d47f125
TL
27542 "description" : "Create new rule.",
27543 "method" : "POST",
27544 "name" : "create_rule",
27545 "parameters" : {
27546 "additionalProperties" : 0,
27547 "properties" : {
27548 "action" : {
27549 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
27550 "maxLength" : 20,
27551 "minLength" : 2,
27552 "optional" : 0,
27553 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27554 "type" : "string"
27555 },
27556 "comment" : {
27557 "description" : "Descriptive comment.",
27558 "optional" : 1,
27559 "type" : "string",
27560 "typetext" : "<string>"
27561 },
27562 "dest" : {
27563 "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.",
27564 "format" : "pve-fw-addr-spec",
0695fdaf 27565 "maxLength" : 512,
4d47f125
TL
27566 "optional" : 1,
27567 "type" : "string",
27568 "typetext" : "<string>"
27569 },
27570 "digest" : {
27571 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27572 "maxLength" : 40,
27573 "optional" : 1,
27574 "type" : "string",
27575 "typetext" : "<string>"
27576 },
27577 "dport" : {
27578 "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.",
27579 "format" : "pve-fw-dport-spec",
27580 "optional" : 1,
27581 "type" : "string",
27582 "typetext" : "<string>"
27583 },
27584 "enable" : {
27585 "description" : "Flag to enable/disable a rule.",
27586 "minimum" : 0,
27587 "optional" : 1,
27588 "type" : "integer",
27589 "typetext" : "<integer> (0 - N)"
27590 },
4772952b
TL
27591 "icmp-type" : {
27592 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
27593 "format" : "pve-fw-icmp-type-spec",
27594 "optional" : 1,
27595 "type" : "string",
27596 "typetext" : "<string>"
27597 },
4d47f125
TL
27598 "iface" : {
27599 "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.",
27600 "format" : "pve-iface",
27601 "maxLength" : 20,
27602 "minLength" : 2,
27603 "optional" : 1,
27604 "type" : "string",
27605 "typetext" : "<string>"
27606 },
95895385
TL
27607 "log" : {
27608 "description" : "Log level for firewall rule.",
27609 "enum" : [
27610 "emerg",
27611 "alert",
27612 "crit",
27613 "err",
27614 "warning",
27615 "notice",
27616 "info",
27617 "debug",
27618 "nolog"
27619 ],
27620 "optional" : 1,
27621 "type" : "string"
27622 },
4d47f125
TL
27623 "macro" : {
27624 "description" : "Use predefined standard macro.",
27625 "maxLength" : 128,
44660702 27626 "optional" : 1,
4d47f125
TL
27627 "type" : "string",
27628 "typetext" : "<string>"
44660702
DM
27629 },
27630 "node" : {
27631 "description" : "The cluster node name.",
27632 "format" : "pve-node",
013dc89f
DM
27633 "type" : "string",
27634 "typetext" : "<string>"
7aacca6f 27635 },
4d47f125
TL
27636 "pos" : {
27637 "description" : "Update rule at position <pos>.",
27638 "minimum" : 0,
27639 "optional" : 1,
27640 "type" : "integer",
27641 "typetext" : "<integer> (0 - N)"
27642 },
27643 "proto" : {
27644 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
27645 "format" : "pve-fw-protocol-spec",
27646 "optional" : 1,
27647 "type" : "string",
27648 "typetext" : "<string>"
27649 },
27650 "source" : {
27651 "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.",
27652 "format" : "pve-fw-addr-spec",
0695fdaf 27653 "maxLength" : 512,
4d47f125 27654 "optional" : 1,
013dc89f
DM
27655 "type" : "string",
27656 "typetext" : "<string>"
44660702 27657 },
4d47f125
TL
27658 "sport" : {
27659 "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.",
27660 "format" : "pve-fw-sport-spec",
27661 "optional" : 1,
27662 "type" : "string",
27663 "typetext" : "<string>"
27664 },
27665 "type" : {
27666 "description" : "Rule type.",
27667 "enum" : [
27668 "in",
27669 "out",
27670 "group"
27671 ],
27672 "optional" : 0,
27673 "type" : "string"
27674 },
44660702
DM
27675 "vmid" : {
27676 "description" : "The (unique) ID of the VM.",
27677 "format" : "pve-vmid",
27678 "minimum" : 1,
4bd7df8b 27679 "type" : "integer",
013dc89f 27680 "typetext" : "<integer> (1 - N)"
56122987 27681 }
44660702 27682 }
7aacca6f 27683 },
56122987
DM
27684 "permissions" : {
27685 "check" : [
27686 "perm",
27687 "/vms/{vmid}",
27688 [
4d47f125 27689 "VM.Config.Network"
56122987
DM
27690 ]
27691 ]
27692 },
44660702 27693 "protected" : 1,
4d47f125 27694 "proxyto" : null,
44660702 27695 "returns" : {
4d47f125 27696 "type" : "null"
44660702
DM
27697 }
27698 }
27699 },
27700 "leaf" : 0,
4d47f125
TL
27701 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
27702 "text" : "rules"
7aacca6f 27703 },
56122987 27704 {
56122987
DM
27705 "children" : [
27706 {
56122987 27707 "info" : {
44660702 27708 "DELETE" : {
e9cd3bd4 27709 "allowtoken" : 1,
4d47f125 27710 "description" : "Remove IP or Network alias.",
44660702 27711 "method" : "DELETE",
4d47f125 27712 "name" : "remove_alias",
56122987 27713 "parameters" : {
44660702 27714 "additionalProperties" : 0,
56122987 27715 "properties" : {
44660702
DM
27716 "digest" : {
27717 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27718 "maxLength" : 40,
7aacca6f 27719 "optional" : 1,
013dc89f
DM
27720 "type" : "string",
27721 "typetext" : "<string>"
7aacca6f 27722 },
4d47f125
TL
27723 "name" : {
27724 "description" : "Alias name.",
27725 "maxLength" : 64,
27726 "minLength" : 2,
27727 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27728 "type" : "string"
27729 },
7aacca6f 27730 "node" : {
44660702 27731 "description" : "The cluster node name.",
7aacca6f 27732 "format" : "pve-node",
013dc89f
DM
27733 "type" : "string",
27734 "typetext" : "<string>"
44660702 27735 },
44660702
DM
27736 "vmid" : {
27737 "description" : "The (unique) ID of the VM.",
27738 "format" : "pve-vmid",
27739 "minimum" : 1,
4bd7df8b 27740 "type" : "integer",
013dc89f 27741 "typetext" : "<integer> (1 - N)"
56122987 27742 }
44660702 27743 }
56122987 27744 },
56122987
DM
27745 "permissions" : {
27746 "check" : [
27747 "perm",
27748 "/vms/{vmid}",
27749 [
44660702 27750 "VM.Config.Network"
56122987
DM
27751 ]
27752 ]
27753 },
44660702 27754 "protected" : 1,
44660702
DM
27755 "returns" : {
27756 "type" : "null"
27757 }
7aacca6f 27758 },
44660702 27759 "GET" : {
e9cd3bd4 27760 "allowtoken" : 1,
4d47f125 27761 "description" : "Read alias.",
44660702 27762 "method" : "GET",
4d47f125 27763 "name" : "read_alias",
56122987 27764 "parameters" : {
44660702 27765 "additionalProperties" : 0,
56122987 27766 "properties" : {
4d47f125
TL
27767 "name" : {
27768 "description" : "Alias name.",
27769 "maxLength" : 64,
27770 "minLength" : 2,
27771 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27772 "type" : "string"
27773 },
7aacca6f 27774 "node" : {
7aacca6f 27775 "description" : "The cluster node name.",
44660702 27776 "format" : "pve-node",
013dc89f
DM
27777 "type" : "string",
27778 "typetext" : "<string>"
56122987 27779 },
7aacca6f 27780 "vmid" : {
44660702 27781 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
27782 "format" : "pve-vmid",
27783 "minimum" : 1,
4bd7df8b 27784 "type" : "integer",
013dc89f 27785 "typetext" : "<integer> (1 - N)"
56122987 27786 }
44660702 27787 }
56122987 27788 },
7aacca6f
DM
27789 "permissions" : {
27790 "check" : [
27791 "perm",
27792 "/vms/{vmid}",
27793 [
44660702 27794 "VM.Audit"
7aacca6f
DM
27795 ]
27796 ]
27797 },
7aacca6f 27798 "returns" : {
44660702 27799 "type" : "object"
7aacca6f 27800 }
56122987 27801 },
44660702 27802 "PUT" : {
e9cd3bd4 27803 "allowtoken" : 1,
4d47f125 27804 "description" : "Update IP or Network alias.",
44660702 27805 "method" : "PUT",
4d47f125 27806 "name" : "update_alias",
56122987
DM
27807 "parameters" : {
27808 "additionalProperties" : 0,
27809 "properties" : {
4d47f125
TL
27810 "cidr" : {
27811 "description" : "Network/IP specification in CIDR format.",
27812 "format" : "IPorCIDR",
013dc89f
DM
27813 "type" : "string",
27814 "typetext" : "<string>"
44660702 27815 },
4d47f125 27816 "comment" : {
44660702 27817 "optional" : 1,
013dc89f
DM
27818 "type" : "string",
27819 "typetext" : "<string>"
44660702
DM
27820 },
27821 "digest" : {
27822 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27823 "maxLength" : 40,
27824 "optional" : 1,
013dc89f
DM
27825 "type" : "string",
27826 "typetext" : "<string>"
44660702 27827 },
4d47f125
TL
27828 "name" : {
27829 "description" : "Alias name.",
27830 "maxLength" : 64,
44660702 27831 "minLength" : 2,
4d47f125
TL
27832 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27833 "type" : "string"
44660702 27834 },
7aacca6f
DM
27835 "node" : {
27836 "description" : "The cluster node name.",
44660702 27837 "format" : "pve-node",
013dc89f
DM
27838 "type" : "string",
27839 "typetext" : "<string>"
56122987 27840 },
4d47f125
TL
27841 "rename" : {
27842 "description" : "Rename an existing alias.",
27843 "maxLength" : 64,
27844 "minLength" : 2,
7aacca6f 27845 "optional" : 1,
4d47f125 27846 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
27847 "type" : "string"
27848 },
27849 "vmid" : {
27850 "description" : "The (unique) ID of the VM.",
27851 "format" : "pve-vmid",
27852 "minimum" : 1,
4bd7df8b 27853 "type" : "integer",
013dc89f 27854 "typetext" : "<integer> (1 - N)"
56122987
DM
27855 }
27856 }
27857 },
56122987
DM
27858 "permissions" : {
27859 "check" : [
27860 "perm",
27861 "/vms/{vmid}",
27862 [
7aacca6f 27863 "VM.Config.Network"
56122987
DM
27864 ]
27865 ]
27866 },
44660702 27867 "protected" : 1,
56122987 27868 "returns" : {
7aacca6f
DM
27869 "type" : "null"
27870 }
56122987 27871 }
44660702
DM
27872 },
27873 "leaf" : 1,
4d47f125
TL
27874 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
27875 "text" : "{name}"
56122987
DM
27876 }
27877 ],
27878 "info" : {
7aacca6f 27879 "GET" : {
e9cd3bd4 27880 "allowtoken" : 1,
4d47f125 27881 "description" : "List aliases",
44660702 27882 "method" : "GET",
4d47f125 27883 "name" : "get_aliases",
7aacca6f 27884 "parameters" : {
44660702 27885 "additionalProperties" : 0,
7aacca6f
DM
27886 "properties" : {
27887 "node" : {
7aacca6f 27888 "description" : "The cluster node name.",
44660702 27889 "format" : "pve-node",
013dc89f
DM
27890 "type" : "string",
27891 "typetext" : "<string>"
7aacca6f
DM
27892 },
27893 "vmid" : {
27894 "description" : "The (unique) ID of the VM.",
44660702 27895 "format" : "pve-vmid",
7aacca6f 27896 "minimum" : 1,
4bd7df8b 27897 "type" : "integer",
013dc89f 27898 "typetext" : "<integer> (1 - N)"
7aacca6f 27899 }
44660702 27900 }
56122987 27901 },
56122987
DM
27902 "permissions" : {
27903 "check" : [
27904 "perm",
27905 "/vms/{vmid}",
27906 [
7aacca6f 27907 "VM.Audit"
56122987
DM
27908 ]
27909 ]
27910 },
7aacca6f 27911 "returns" : {
7aacca6f
DM
27912 "items" : {
27913 "properties" : {
4d47f125
TL
27914 "cidr" : {
27915 "type" : "string"
27916 },
27917 "comment" : {
27918 "optional" : 1,
27919 "type" : "string"
27920 },
27921 "digest" : {
27922 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27923 "maxLength" : 40,
27924 "optional" : 0,
27925 "type" : "string"
27926 },
27927 "name" : {
27928 "type" : "string"
7aacca6f
DM
27929 }
27930 },
27931 "type" : "object"
27932 },
27933 "links" : [
27934 {
4d47f125 27935 "href" : "{name}",
44660702 27936 "rel" : "child"
7aacca6f 27937 }
44660702
DM
27938 ],
27939 "type" : "array"
27940 }
7aacca6f
DM
27941 },
27942 "POST" : {
e9cd3bd4 27943 "allowtoken" : 1,
4d47f125 27944 "description" : "Create IP or Network Alias.",
44660702 27945 "method" : "POST",
4d47f125 27946 "name" : "create_alias",
56122987 27947 "parameters" : {
44660702 27948 "additionalProperties" : 0,
56122987 27949 "properties" : {
4d47f125
TL
27950 "cidr" : {
27951 "description" : "Network/IP specification in CIDR format.",
27952 "format" : "IPorCIDR",
013dc89f 27953 "type" : "string",
4d47f125
TL
27954 "typetext" : "<string>"
27955 },
27956 "comment" : {
44660702 27957 "optional" : 1,
013dc89f
DM
27958 "type" : "string",
27959 "typetext" : "<string>"
7aacca6f 27960 },
4d47f125
TL
27961 "name" : {
27962 "description" : "Alias name.",
27963 "maxLength" : 64,
27964 "minLength" : 2,
27965 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
27966 "type" : "string"
27967 },
4d47f125
TL
27968 "node" : {
27969 "description" : "The cluster node name.",
27970 "format" : "pve-node",
27971 "type" : "string",
27972 "typetext" : "<string>"
27973 },
44660702
DM
27974 "vmid" : {
27975 "description" : "The (unique) ID of the VM.",
27976 "format" : "pve-vmid",
27977 "minimum" : 1,
4bd7df8b 27978 "type" : "integer",
013dc89f 27979 "typetext" : "<integer> (1 - N)"
44660702
DM
27980 }
27981 }
27982 },
27983 "permissions" : {
27984 "check" : [
27985 "perm",
27986 "/vms/{vmid}",
27987 [
27988 "VM.Config.Network"
27989 ]
27990 ]
27991 },
27992 "protected" : 1,
44660702
DM
27993 "returns" : {
27994 "type" : "null"
27995 }
27996 }
27997 },
27998 "leaf" : 0,
4d47f125
TL
27999 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
28000 "text" : "aliases"
44660702
DM
28001 },
28002 {
28003 "children" : [
28004 {
4d47f125
TL
28005 "children" : [
28006 {
28007 "info" : {
28008 "DELETE" : {
e9cd3bd4 28009 "allowtoken" : 1,
4d47f125
TL
28010 "description" : "Remove IP or Network from IPSet.",
28011 "method" : "DELETE",
28012 "name" : "remove_ip",
28013 "parameters" : {
28014 "additionalProperties" : 0,
28015 "properties" : {
28016 "cidr" : {
28017 "description" : "Network/IP specification in CIDR format.",
28018 "format" : "IPorCIDRorAlias",
28019 "type" : "string",
28020 "typetext" : "<string>"
28021 },
28022 "digest" : {
28023 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28024 "maxLength" : 40,
28025 "optional" : 1,
28026 "type" : "string",
28027 "typetext" : "<string>"
28028 },
28029 "name" : {
28030 "description" : "IP set name.",
28031 "maxLength" : 64,
28032 "minLength" : 2,
28033 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28034 "type" : "string"
28035 },
28036 "node" : {
28037 "description" : "The cluster node name.",
28038 "format" : "pve-node",
28039 "type" : "string",
28040 "typetext" : "<string>"
28041 },
28042 "vmid" : {
28043 "description" : "The (unique) ID of the VM.",
28044 "format" : "pve-vmid",
28045 "minimum" : 1,
28046 "type" : "integer",
28047 "typetext" : "<integer> (1 - N)"
28048 }
28049 }
28050 },
28051 "permissions" : {
28052 "check" : [
28053 "perm",
28054 "/vms/{vmid}",
28055 [
28056 "VM.Config.Network"
28057 ]
28058 ]
28059 },
28060 "protected" : 1,
28061 "returns" : {
28062 "type" : "null"
28063 }
28064 },
28065 "GET" : {
e9cd3bd4 28066 "allowtoken" : 1,
4d47f125
TL
28067 "description" : "Read IP or Network settings from IPSet.",
28068 "method" : "GET",
28069 "name" : "read_ip",
28070 "parameters" : {
28071 "additionalProperties" : 0,
28072 "properties" : {
28073 "cidr" : {
28074 "description" : "Network/IP specification in CIDR format.",
28075 "format" : "IPorCIDRorAlias",
28076 "type" : "string",
28077 "typetext" : "<string>"
28078 },
28079 "name" : {
28080 "description" : "IP set name.",
28081 "maxLength" : 64,
28082 "minLength" : 2,
28083 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28084 "type" : "string"
28085 },
28086 "node" : {
28087 "description" : "The cluster node name.",
28088 "format" : "pve-node",
28089 "type" : "string",
28090 "typetext" : "<string>"
28091 },
28092 "vmid" : {
28093 "description" : "The (unique) ID of the VM.",
28094 "format" : "pve-vmid",
28095 "minimum" : 1,
28096 "type" : "integer",
28097 "typetext" : "<integer> (1 - N)"
28098 }
28099 }
28100 },
28101 "permissions" : {
28102 "check" : [
28103 "perm",
28104 "/vms/{vmid}",
28105 [
28106 "VM.Audit"
28107 ]
28108 ]
28109 },
28110 "protected" : 1,
28111 "returns" : {
28112 "type" : "object"
28113 }
28114 },
28115 "PUT" : {
e9cd3bd4 28116 "allowtoken" : 1,
4d47f125
TL
28117 "description" : "Update IP or Network settings",
28118 "method" : "PUT",
28119 "name" : "update_ip",
28120 "parameters" : {
28121 "additionalProperties" : 0,
28122 "properties" : {
28123 "cidr" : {
28124 "description" : "Network/IP specification in CIDR format.",
28125 "format" : "IPorCIDRorAlias",
28126 "type" : "string",
28127 "typetext" : "<string>"
28128 },
28129 "comment" : {
28130 "optional" : 1,
28131 "type" : "string",
28132 "typetext" : "<string>"
28133 },
28134 "digest" : {
28135 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28136 "maxLength" : 40,
28137 "optional" : 1,
28138 "type" : "string",
28139 "typetext" : "<string>"
28140 },
28141 "name" : {
28142 "description" : "IP set name.",
28143 "maxLength" : 64,
28144 "minLength" : 2,
28145 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28146 "type" : "string"
28147 },
28148 "node" : {
28149 "description" : "The cluster node name.",
28150 "format" : "pve-node",
28151 "type" : "string",
28152 "typetext" : "<string>"
28153 },
28154 "nomatch" : {
28155 "optional" : 1,
28156 "type" : "boolean",
28157 "typetext" : "<boolean>"
28158 },
28159 "vmid" : {
28160 "description" : "The (unique) ID of the VM.",
28161 "format" : "pve-vmid",
28162 "minimum" : 1,
28163 "type" : "integer",
28164 "typetext" : "<integer> (1 - N)"
28165 }
28166 }
28167 },
28168 "permissions" : {
28169 "check" : [
28170 "perm",
28171 "/vms/{vmid}",
28172 [
28173 "VM.Config.Network"
28174 ]
28175 ]
28176 },
28177 "protected" : 1,
28178 "returns" : {
28179 "type" : "null"
28180 }
28181 }
28182 },
28183 "leaf" : 1,
28184 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
28185 "text" : "{cidr}"
28186 }
28187 ],
44660702
DM
28188 "info" : {
28189 "DELETE" : {
e9cd3bd4 28190 "allowtoken" : 1,
4d47f125 28191 "description" : "Delete IPSet",
44660702 28192 "method" : "DELETE",
4d47f125 28193 "name" : "delete_ipset",
56122987 28194 "parameters" : {
44660702 28195 "additionalProperties" : 0,
56122987 28196 "properties" : {
7aacca6f 28197 "name" : {
4d47f125 28198 "description" : "IP set name.",
7aacca6f 28199 "maxLength" : 64,
7aacca6f
DM
28200 "minLength" : 2,
28201 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 28202 "type" : "string"
7aacca6f
DM
28203 },
28204 "node" : {
44660702 28205 "description" : "The cluster node name.",
56122987 28206 "format" : "pve-node",
013dc89f
DM
28207 "type" : "string",
28208 "typetext" : "<string>"
7aacca6f 28209 },
56122987 28210 "vmid" : {
44660702 28211 "description" : "The (unique) ID of the VM.",
56122987 28212 "format" : "pve-vmid",
44660702 28213 "minimum" : 1,
4bd7df8b 28214 "type" : "integer",
013dc89f 28215 "typetext" : "<integer> (1 - N)"
56122987 28216 }
44660702 28217 }
56122987 28218 },
56122987
DM
28219 "permissions" : {
28220 "check" : [
28221 "perm",
28222 "/vms/{vmid}",
28223 [
7aacca6f 28224 "VM.Config.Network"
56122987
DM
28225 ]
28226 ]
28227 },
44660702 28228 "protected" : 1,
56122987 28229 "returns" : {
7aacca6f 28230 "type" : "null"
44660702 28231 }
56122987 28232 },
44660702 28233 "GET" : {
e9cd3bd4 28234 "allowtoken" : 1,
4d47f125 28235 "description" : "List IPSet content",
44660702 28236 "method" : "GET",
4d47f125 28237 "name" : "get_ipset",
44660702
DM
28238 "parameters" : {
28239 "additionalProperties" : 0,
28240 "properties" : {
28241 "name" : {
4d47f125 28242 "description" : "IP set name.",
44660702
DM
28243 "maxLength" : 64,
28244 "minLength" : 2,
28245 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28246 "type" : "string"
28247 },
28248 "node" : {
28249 "description" : "The cluster node name.",
28250 "format" : "pve-node",
013dc89f
DM
28251 "type" : "string",
28252 "typetext" : "<string>"
44660702
DM
28253 },
28254 "vmid" : {
28255 "description" : "The (unique) ID of the VM.",
28256 "format" : "pve-vmid",
28257 "minimum" : 1,
4bd7df8b 28258 "type" : "integer",
013dc89f 28259 "typetext" : "<integer> (1 - N)"
44660702 28260 }
4d47f125
TL
28261 }
28262 },
28263 "permissions" : {
28264 "check" : [
28265 "perm",
28266 "/vms/{vmid}",
28267 [
28268 "VM.Audit"
28269 ]
28270 ]
28271 },
28272 "returns" : {
28273 "items" : {
28274 "properties" : {
28275 "cidr" : {
28276 "type" : "string"
28277 },
28278 "comment" : {
28279 "optional" : 1,
28280 "type" : "string"
28281 },
28282 "digest" : {
28283 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28284 "maxLength" : 40,
28285 "optional" : 0,
28286 "type" : "string"
28287 },
28288 "nomatch" : {
28289 "optional" : 1,
28290 "type" : "boolean"
28291 }
28292 },
28293 "type" : "object"
28294 },
28295 "links" : [
28296 {
28297 "href" : "{cidr}",
28298 "rel" : "child"
28299 }
28300 ],
28301 "type" : "array"
44660702
DM
28302 }
28303 },
4d47f125 28304 "POST" : {
e9cd3bd4 28305 "allowtoken" : 1,
4d47f125
TL
28306 "description" : "Add IP or Network to IPSet.",
28307 "method" : "POST",
28308 "name" : "create_ip",
56122987
DM
28309 "parameters" : {
28310 "additionalProperties" : 0,
28311 "properties" : {
44660702
DM
28312 "cidr" : {
28313 "description" : "Network/IP specification in CIDR format.",
4d47f125 28314 "format" : "IPorCIDRorAlias",
013dc89f
DM
28315 "type" : "string",
28316 "typetext" : "<string>"
44660702
DM
28317 },
28318 "comment" : {
28319 "optional" : 1,
013dc89f
DM
28320 "type" : "string",
28321 "typetext" : "<string>"
44660702 28322 },
56122987 28323 "name" : {
4d47f125 28324 "description" : "IP set name.",
44660702
DM
28325 "maxLength" : 64,
28326 "minLength" : 2,
7aacca6f 28327 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 28328 "type" : "string"
56122987
DM
28329 },
28330 "node" : {
28331 "description" : "The cluster node name.",
44660702 28332 "format" : "pve-node",
013dc89f
DM
28333 "type" : "string",
28334 "typetext" : "<string>"
44660702 28335 },
4d47f125 28336 "nomatch" : {
44660702 28337 "optional" : 1,
4d47f125
TL
28338 "type" : "boolean",
28339 "typetext" : "<boolean>"
56122987 28340 },
7aacca6f 28341 "vmid" : {
7aacca6f 28342 "description" : "The (unique) ID of the VM.",
44660702 28343 "format" : "pve-vmid",
7aacca6f 28344 "minimum" : 1,
4bd7df8b 28345 "type" : "integer",
013dc89f 28346 "typetext" : "<integer> (1 - N)"
56122987
DM
28347 }
28348 }
28349 },
44660702
DM
28350 "permissions" : {
28351 "check" : [
28352 "perm",
28353 "/vms/{vmid}",
28354 [
28355 "VM.Config.Network"
28356 ]
28357 ]
7aacca6f 28358 },
44660702
DM
28359 "protected" : 1,
28360 "returns" : {
28361 "type" : "null"
7aacca6f
DM
28362 }
28363 }
28364 },
4d47f125
TL
28365 "leaf" : 0,
28366 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
44660702
DM
28367 "text" : "{name}"
28368 }
28369 ],
28370 "info" : {
28371 "GET" : {
e9cd3bd4 28372 "allowtoken" : 1,
4d47f125 28373 "description" : "List IPSets",
44660702 28374 "method" : "GET",
4d47f125 28375 "name" : "ipset_index",
56122987
DM
28376 "parameters" : {
28377 "additionalProperties" : 0,
28378 "properties" : {
28379 "node" : {
44660702 28380 "description" : "The cluster node name.",
56122987 28381 "format" : "pve-node",
013dc89f
DM
28382 "type" : "string",
28383 "typetext" : "<string>"
56122987
DM
28384 },
28385 "vmid" : {
7aacca6f 28386 "description" : "The (unique) ID of the VM.",
44660702 28387 "format" : "pve-vmid",
7aacca6f 28388 "minimum" : 1,
4bd7df8b 28389 "type" : "integer",
013dc89f 28390 "typetext" : "<integer> (1 - N)"
56122987
DM
28391 }
28392 }
28393 },
44660702
DM
28394 "permissions" : {
28395 "check" : [
28396 "perm",
28397 "/vms/{vmid}",
28398 [
28399 "VM.Audit"
28400 ]
28401 ]
28402 },
56122987
DM
28403 "returns" : {
28404 "items" : {
56122987 28405 "properties" : {
44660702
DM
28406 "comment" : {
28407 "optional" : 1,
56122987
DM
28408 "type" : "string"
28409 },
56122987 28410 "digest" : {
56122987 28411 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
28412 "maxLength" : 40,
28413 "optional" : 0,
28414 "type" : "string"
28415 },
28416 "name" : {
4d47f125
TL
28417 "description" : "IP set name.",
28418 "maxLength" : 64,
28419 "minLength" : 2,
28420 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 28421 "type" : "string"
56122987 28422 }
44660702
DM
28423 },
28424 "type" : "object"
28425 },
28426 "links" : [
28427 {
28428 "href" : "{name}",
28429 "rel" : "child"
56122987 28430 }
4d47f125
TL
28431 ],
28432 "type" : "array"
28433 }
28434 },
28435 "POST" : {
e9cd3bd4 28436 "allowtoken" : 1,
4d47f125
TL
28437 "description" : "Create new IPSet",
28438 "method" : "POST",
28439 "name" : "create_ipset",
28440 "parameters" : {
28441 "additionalProperties" : 0,
28442 "properties" : {
28443 "comment" : {
28444 "optional" : 1,
28445 "type" : "string",
28446 "typetext" : "<string>"
28447 },
28448 "digest" : {
28449 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28450 "maxLength" : 40,
28451 "optional" : 1,
28452 "type" : "string",
28453 "typetext" : "<string>"
28454 },
28455 "name" : {
28456 "description" : "IP set name.",
28457 "maxLength" : 64,
28458 "minLength" : 2,
28459 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28460 "type" : "string"
28461 },
28462 "node" : {
28463 "description" : "The cluster node name.",
28464 "format" : "pve-node",
28465 "type" : "string",
28466 "typetext" : "<string>"
28467 },
28468 "rename" : {
28469 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
28470 "maxLength" : 64,
28471 "minLength" : 2,
28472 "optional" : 1,
28473 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28474 "type" : "string"
28475 },
28476 "vmid" : {
28477 "description" : "The (unique) ID of the VM.",
28478 "format" : "pve-vmid",
28479 "minimum" : 1,
28480 "type" : "integer",
28481 "typetext" : "<integer> (1 - N)"
28482 }
28483 }
28484 },
28485 "permissions" : {
28486 "check" : [
28487 "perm",
28488 "/vms/{vmid}",
28489 [
28490 "VM.Config.Network"
28491 ]
28492 ]
28493 },
28494 "protected" : 1,
28495 "returns" : {
28496 "type" : "null"
28497 }
28498 }
28499 },
28500 "leaf" : 0,
28501 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
28502 "text" : "ipset"
28503 },
28504 {
28505 "info" : {
28506 "GET" : {
e9cd3bd4 28507 "allowtoken" : 1,
4d47f125
TL
28508 "description" : "Get VM firewall options.",
28509 "method" : "GET",
28510 "name" : "get_options",
28511 "parameters" : {
28512 "additionalProperties" : 0,
28513 "properties" : {
28514 "node" : {
28515 "description" : "The cluster node name.",
28516 "format" : "pve-node",
28517 "type" : "string",
28518 "typetext" : "<string>"
28519 },
28520 "vmid" : {
28521 "description" : "The (unique) ID of the VM.",
28522 "format" : "pve-vmid",
28523 "minimum" : 1,
28524 "type" : "integer",
28525 "typetext" : "<integer> (1 - N)"
28526 }
28527 }
28528 },
28529 "permissions" : {
28530 "check" : [
28531 "perm",
28532 "/vms/{vmid}",
28533 [
28534 "VM.Audit"
28535 ]
28536 ]
28537 },
28538 "proxyto" : "node",
28539 "returns" : {
28540 "properties" : {
28541 "dhcp" : {
5c1699e5 28542 "default" : 0,
4d47f125
TL
28543 "description" : "Enable DHCP.",
28544 "optional" : 1,
28545 "type" : "boolean"
28546 },
28547 "enable" : {
5c1699e5 28548 "default" : 0,
4d47f125
TL
28549 "description" : "Enable/disable firewall rules.",
28550 "optional" : 1,
28551 "type" : "boolean"
28552 },
28553 "ipfilter" : {
28554 "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.",
28555 "optional" : 1,
28556 "type" : "boolean"
28557 },
28558 "log_level_in" : {
28559 "description" : "Log level for incoming traffic.",
28560 "enum" : [
28561 "emerg",
28562 "alert",
28563 "crit",
28564 "err",
28565 "warning",
28566 "notice",
28567 "info",
28568 "debug",
28569 "nolog"
28570 ],
28571 "optional" : 1,
28572 "type" : "string"
28573 },
28574 "log_level_out" : {
28575 "description" : "Log level for outgoing traffic.",
28576 "enum" : [
28577 "emerg",
28578 "alert",
28579 "crit",
28580 "err",
28581 "warning",
28582 "notice",
28583 "info",
28584 "debug",
28585 "nolog"
28586 ],
28587 "optional" : 1,
28588 "type" : "string"
28589 },
28590 "macfilter" : {
5c1699e5 28591 "default" : 0,
4d47f125
TL
28592 "description" : "Enable/disable MAC address filter.",
28593 "optional" : 1,
28594 "type" : "boolean"
28595 },
28596 "ndp" : {
5c1699e5
TL
28597 "default" : 0,
28598 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
28599 "optional" : 1,
28600 "type" : "boolean"
28601 },
28602 "policy_in" : {
28603 "description" : "Input policy.",
28604 "enum" : [
28605 "ACCEPT",
28606 "REJECT",
28607 "DROP"
28608 ],
28609 "optional" : 1,
28610 "type" : "string"
28611 },
28612 "policy_out" : {
28613 "description" : "Output policy.",
28614 "enum" : [
28615 "ACCEPT",
28616 "REJECT",
28617 "DROP"
28618 ],
28619 "optional" : 1,
28620 "type" : "string"
28621 },
28622 "radv" : {
28623 "description" : "Allow sending Router Advertisement.",
28624 "optional" : 1,
28625 "type" : "boolean"
28626 }
28627 },
28628 "type" : "object"
7aacca6f
DM
28629 }
28630 },
4d47f125 28631 "PUT" : {
e9cd3bd4 28632 "allowtoken" : 1,
4d47f125
TL
28633 "description" : "Set Firewall options.",
28634 "method" : "PUT",
28635 "name" : "set_options",
7aacca6f
DM
28636 "parameters" : {
28637 "additionalProperties" : 0,
28638 "properties" : {
4d47f125
TL
28639 "delete" : {
28640 "description" : "A list of settings you want to delete.",
28641 "format" : "pve-configid-list",
7aacca6f 28642 "optional" : 1,
013dc89f
DM
28643 "type" : "string",
28644 "typetext" : "<string>"
7aacca6f 28645 },
4d47f125 28646 "dhcp" : {
5c1699e5 28647 "default" : 0,
4d47f125
TL
28648 "description" : "Enable DHCP.",
28649 "optional" : 1,
28650 "type" : "boolean",
28651 "typetext" : "<boolean>"
7aacca6f 28652 },
4d47f125
TL
28653 "digest" : {
28654 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28655 "maxLength" : 40,
28656 "optional" : 1,
013dc89f
DM
28657 "type" : "string",
28658 "typetext" : "<string>"
7aacca6f 28659 },
4d47f125 28660 "enable" : {
5c1699e5 28661 "default" : 0,
4d47f125
TL
28662 "description" : "Enable/disable firewall rules.",
28663 "optional" : 1,
28664 "type" : "boolean",
28665 "typetext" : "<boolean>"
28666 },
28667 "ipfilter" : {
28668 "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.",
28669 "optional" : 1,
28670 "type" : "boolean",
28671 "typetext" : "<boolean>"
56122987 28672 },
4d47f125
TL
28673 "log_level_in" : {
28674 "description" : "Log level for incoming traffic.",
28675 "enum" : [
28676 "emerg",
28677 "alert",
28678 "crit",
28679 "err",
28680 "warning",
28681 "notice",
28682 "info",
28683 "debug",
28684 "nolog"
28685 ],
28686 "optional" : 1,
28687 "type" : "string"
44660702 28688 },
4d47f125
TL
28689 "log_level_out" : {
28690 "description" : "Log level for outgoing traffic.",
28691 "enum" : [
28692 "emerg",
28693 "alert",
28694 "crit",
28695 "err",
28696 "warning",
28697 "notice",
28698 "info",
28699 "debug",
28700 "nolog"
28701 ],
28702 "optional" : 1,
28703 "type" : "string"
44660702 28704 },
4d47f125 28705 "macfilter" : {
5c1699e5 28706 "default" : 0,
4d47f125
TL
28707 "description" : "Enable/disable MAC address filter.",
28708 "optional" : 1,
28709 "type" : "boolean",
28710 "typetext" : "<boolean>"
7aacca6f 28711 },
4d47f125 28712 "ndp" : {
5c1699e5
TL
28713 "default" : 0,
28714 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
28715 "optional" : 1,
28716 "type" : "boolean",
28717 "typetext" : "<boolean>"
7aacca6f 28718 },
4d47f125
TL
28719 "node" : {
28720 "description" : "The cluster node name.",
28721 "format" : "pve-node",
28722 "type" : "string",
28723 "typetext" : "<string>"
28724 },
28725 "policy_in" : {
28726 "description" : "Input policy.",
28727 "enum" : [
28728 "ACCEPT",
28729 "REJECT",
28730 "DROP"
44660702 28731 ],
4d47f125
TL
28732 "optional" : 1,
28733 "type" : "string"
28734 },
28735 "policy_out" : {
28736 "description" : "Output policy.",
28737 "enum" : [
28738 "ACCEPT",
28739 "REJECT",
28740 "DROP"
28741 ],
28742 "optional" : 1,
28743 "type" : "string"
28744 },
28745 "radv" : {
28746 "description" : "Allow sending Router Advertisement.",
28747 "optional" : 1,
28748 "type" : "boolean",
28749 "typetext" : "<boolean>"
28750 },
28751 "vmid" : {
28752 "description" : "The (unique) ID of the VM.",
28753 "format" : "pve-vmid",
28754 "minimum" : 1,
28755 "type" : "integer",
28756 "typetext" : "<integer> (1 - N)"
44660702 28757 }
4d47f125
TL
28758 }
28759 },
28760 "permissions" : {
28761 "check" : [
28762 "perm",
28763 "/vms/{vmid}",
28764 [
28765 "VM.Config.Network"
28766 ]
28767 ]
28768 },
28769 "protected" : 1,
28770 "proxyto" : "node",
28771 "returns" : {
28772 "type" : "null"
28773 }
28774 }
28775 },
28776 "leaf" : 1,
28777 "path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
28778 "text" : "options"
28779 },
28780 {
28781 "info" : {
28782 "GET" : {
e9cd3bd4 28783 "allowtoken" : 1,
4d47f125
TL
28784 "description" : "Read firewall log",
28785 "method" : "GET",
28786 "name" : "log",
28787 "parameters" : {
28788 "additionalProperties" : 0,
28789 "properties" : {
28790 "limit" : {
28791 "minimum" : 0,
28792 "optional" : 1,
28793 "type" : "integer",
28794 "typetext" : "<integer> (0 - N)"
44660702 28795 },
4d47f125
TL
28796 "node" : {
28797 "description" : "The cluster node name.",
28798 "format" : "pve-node",
28799 "type" : "string",
28800 "typetext" : "<string>"
44660702 28801 },
4d47f125
TL
28802 "start" : {
28803 "minimum" : 0,
28804 "optional" : 1,
28805 "type" : "integer",
28806 "typetext" : "<integer> (0 - N)"
28807 },
28808 "vmid" : {
28809 "description" : "The (unique) ID of the VM.",
28810 "format" : "pve-vmid",
28811 "minimum" : 1,
28812 "type" : "integer",
28813 "typetext" : "<integer> (1 - N)"
44660702
DM
28814 }
28815 }
28816 },
4d47f125
TL
28817 "permissions" : {
28818 "check" : [
28819 "perm",
28820 "/vms/{vmid}",
28821 [
28822 "VM.Console"
28823 ]
28824 ]
28825 },
28826 "protected" : 1,
28827 "proxyto" : "node",
28828 "returns" : {
28829 "items" : {
28830 "properties" : {
28831 "n" : {
28832 "description" : "Line number",
28833 "type" : "integer"
28834 },
28835 "t" : {
28836 "description" : "Line text",
28837 "type" : "string"
28838 }
28839 },
28840 "type" : "object"
28841 },
28842 "type" : "array"
28843 }
44660702 28844 }
4d47f125
TL
28845 },
28846 "leaf" : 1,
28847 "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
28848 "text" : "log"
28849 },
28850 {
44660702
DM
28851 "info" : {
28852 "GET" : {
e9cd3bd4 28853 "allowtoken" : 1,
4d47f125 28854 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702 28855 "method" : "GET",
4d47f125 28856 "name" : "refs",
44660702
DM
28857 "parameters" : {
28858 "additionalProperties" : 0,
28859 "properties" : {
28860 "node" : {
28861 "description" : "The cluster node name.",
28862 "format" : "pve-node",
013dc89f
DM
28863 "type" : "string",
28864 "typetext" : "<string>"
44660702 28865 },
4d47f125
TL
28866 "type" : {
28867 "description" : "Only list references of specified type.",
28868 "enum" : [
28869 "alias",
28870 "ipset"
28871 ],
28872 "optional" : 1,
28873 "type" : "string"
28874 },
44660702
DM
28875 "vmid" : {
28876 "description" : "The (unique) ID of the VM.",
28877 "format" : "pve-vmid",
28878 "minimum" : 1,
4bd7df8b 28879 "type" : "integer",
013dc89f 28880 "typetext" : "<integer> (1 - N)"
44660702
DM
28881 }
28882 }
28883 },
4d47f125
TL
28884 "permissions" : {
28885 "check" : [
28886 "perm",
28887 "/vms/{vmid}",
28888 [
28889 "VM.Audit"
28890 ]
28891 ]
28892 },
28893 "returns" : {
28894 "items" : {
28895 "properties" : {
28896 "comment" : {
28897 "optional" : 1,
28898 "type" : "string"
28899 },
28900 "name" : {
28901 "type" : "string"
28902 },
28903 "type" : {
28904 "enum" : [
28905 "alias",
28906 "ipset"
28907 ],
28908 "type" : "string"
28909 }
28910 },
28911 "type" : "object"
28912 },
28913 "type" : "array"
28914 }
28915 }
28916 },
28917 "leaf" : 1,
28918 "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
28919 "text" : "refs"
28920 }
28921 ],
28922 "info" : {
28923 "GET" : {
e9cd3bd4 28924 "allowtoken" : 1,
4d47f125
TL
28925 "description" : "Directory index.",
28926 "method" : "GET",
28927 "name" : "index",
28928 "parameters" : {
28929 "additionalProperties" : 0,
28930 "properties" : {
28931 "node" : {
28932 "description" : "The cluster node name.",
28933 "format" : "pve-node",
28934 "type" : "string",
28935 "typetext" : "<string>"
28936 },
28937 "vmid" : {
28938 "description" : "The (unique) ID of the VM.",
28939 "format" : "pve-vmid",
28940 "minimum" : 1,
28941 "type" : "integer",
28942 "typetext" : "<integer> (1 - N)"
28943 }
28944 }
28945 },
28946 "permissions" : {
28947 "user" : "all"
28948 },
28949 "returns" : {
28950 "items" : {
28951 "properties" : {},
28952 "type" : "object"
28953 },
28954 "links" : [
28955 {
28956 "href" : "{name}",
28957 "rel" : "child"
28958 }
28959 ],
28960 "type" : "array"
28961 }
28962 }
28963 },
28964 "leaf" : 0,
28965 "path" : "/nodes/{node}/lxc/{vmid}/firewall",
28966 "text" : "firewall"
28967 },
28968 {
28969 "info" : {
28970 "GET" : {
e9cd3bd4 28971 "allowtoken" : 1,
4d47f125
TL
28972 "description" : "Read VM RRD statistics (returns PNG)",
28973 "method" : "GET",
28974 "name" : "rrd",
28975 "parameters" : {
28976 "additionalProperties" : 0,
28977 "properties" : {
28978 "cf" : {
28979 "description" : "The RRD consolidation function",
28980 "enum" : [
28981 "AVERAGE",
28982 "MAX"
28983 ],
28984 "optional" : 1,
28985 "type" : "string"
28986 },
28987 "ds" : {
28988 "description" : "The list of datasources you want to display.",
28989 "format" : "pve-configid-list",
28990 "type" : "string",
28991 "typetext" : "<string>"
28992 },
28993 "node" : {
28994 "description" : "The cluster node name.",
28995 "format" : "pve-node",
28996 "type" : "string",
28997 "typetext" : "<string>"
28998 },
28999 "timeframe" : {
29000 "description" : "Specify the time frame you are interested in.",
29001 "enum" : [
29002 "hour",
29003 "day",
29004 "week",
29005 "month",
29006 "year"
29007 ],
29008 "type" : "string"
29009 },
29010 "vmid" : {
29011 "description" : "The (unique) ID of the VM.",
29012 "format" : "pve-vmid",
29013 "minimum" : 1,
29014 "type" : "integer",
29015 "typetext" : "<integer> (1 - N)"
29016 }
29017 }
29018 },
29019 "permissions" : {
29020 "check" : [
29021 "perm",
29022 "/vms/{vmid}",
29023 [
29024 "VM.Audit"
29025 ]
29026 ]
29027 },
29028 "protected" : 1,
29029 "returns" : {
29030 "properties" : {
29031 "filename" : {
29032 "type" : "string"
29033 }
29034 },
29035 "type" : "object"
29036 }
29037 }
29038 },
29039 "leaf" : 1,
29040 "path" : "/nodes/{node}/lxc/{vmid}/rrd",
29041 "text" : "rrd"
29042 },
29043 {
29044 "info" : {
29045 "GET" : {
e9cd3bd4 29046 "allowtoken" : 1,
4d47f125
TL
29047 "description" : "Read VM RRD statistics",
29048 "method" : "GET",
29049 "name" : "rrddata",
29050 "parameters" : {
29051 "additionalProperties" : 0,
29052 "properties" : {
29053 "cf" : {
29054 "description" : "The RRD consolidation function",
29055 "enum" : [
29056 "AVERAGE",
29057 "MAX"
29058 ],
29059 "optional" : 1,
29060 "type" : "string"
29061 },
29062 "node" : {
29063 "description" : "The cluster node name.",
29064 "format" : "pve-node",
29065 "type" : "string",
29066 "typetext" : "<string>"
44660702 29067 },
4d47f125
TL
29068 "timeframe" : {
29069 "description" : "Specify the time frame you are interested in.",
29070 "enum" : [
29071 "hour",
29072 "day",
29073 "week",
29074 "month",
29075 "year"
44660702 29076 ],
4d47f125
TL
29077 "type" : "string"
29078 },
29079 "vmid" : {
29080 "description" : "The (unique) ID of the VM.",
29081 "format" : "pve-vmid",
29082 "minimum" : 1,
29083 "type" : "integer",
29084 "typetext" : "<integer> (1 - N)"
44660702 29085 }
4d47f125
TL
29086 }
29087 },
29088 "permissions" : {
29089 "check" : [
29090 "perm",
29091 "/vms/{vmid}",
29092 [
29093 "VM.Audit"
29094 ]
29095 ]
29096 },
29097 "protected" : 1,
29098 "returns" : {
29099 "items" : {
29100 "properties" : {},
29101 "type" : "object"
44660702 29102 },
4d47f125
TL
29103 "type" : "array"
29104 }
29105 }
29106 },
29107 "leaf" : 1,
29108 "path" : "/nodes/{node}/lxc/{vmid}/rrddata",
29109 "text" : "rrddata"
29110 },
29111 {
29112 "info" : {
29113 "POST" : {
e9cd3bd4 29114 "allowtoken" : 1,
4d47f125
TL
29115 "description" : "Creates a TCP VNC proxy connections.",
29116 "method" : "POST",
29117 "name" : "vncproxy",
29118 "parameters" : {
29119 "additionalProperties" : 0,
29120 "properties" : {
29121 "height" : {
29122 "description" : "sets the height of the console in pixels.",
29123 "maximum" : 2160,
29124 "minimum" : 16,
29125 "optional" : 1,
29126 "type" : "integer",
29127 "typetext" : "<integer> (16 - 2160)"
44660702 29128 },
4d47f125
TL
29129 "node" : {
29130 "description" : "The cluster node name.",
29131 "format" : "pve-node",
29132 "type" : "string",
29133 "typetext" : "<string>"
44660702 29134 },
4d47f125
TL
29135 "vmid" : {
29136 "description" : "The (unique) ID of the VM.",
29137 "format" : "pve-vmid",
29138 "minimum" : 1,
29139 "type" : "integer",
29140 "typetext" : "<integer> (1 - N)"
29141 },
29142 "websocket" : {
29143 "description" : "use websocket instead of standard VNC.",
29144 "optional" : 1,
29145 "type" : "boolean",
29146 "typetext" : "<boolean>"
29147 },
29148 "width" : {
29149 "description" : "sets the width of the console in pixels.",
29150 "maximum" : 4096,
29151 "minimum" : 16,
29152 "optional" : 1,
29153 "type" : "integer",
29154 "typetext" : "<integer> (16 - 4096)"
56122987
DM
29155 }
29156 }
44660702 29157 },
4d47f125
TL
29158 "permissions" : {
29159 "check" : [
29160 "perm",
29161 "/vms/{vmid}",
29162 [
29163 "VM.Console"
29164 ]
29165 ]
29166 },
29167 "protected" : 1,
29168 "returns" : {
29169 "additionalProperties" : 0,
29170 "properties" : {
29171 "cert" : {
29172 "type" : "string"
44660702 29173 },
4d47f125
TL
29174 "port" : {
29175 "type" : "integer"
29176 },
29177 "ticket" : {
29178 "type" : "string"
29179 },
29180 "upid" : {
29181 "type" : "string"
29182 },
29183 "user" : {
29184 "type" : "string"
29185 }
29186 }
29187 }
29188 }
29189 },
29190 "leaf" : 1,
29191 "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
29192 "text" : "vncproxy"
29193 },
29194 {
29195 "info" : {
29196 "POST" : {
e9cd3bd4 29197 "allowtoken" : 1,
4d47f125
TL
29198 "description" : "Creates a TCP proxy connection.",
29199 "method" : "POST",
29200 "name" : "termproxy",
29201 "parameters" : {
29202 "additionalProperties" : 0,
29203 "properties" : {
29204 "node" : {
29205 "description" : "The cluster node name.",
29206 "format" : "pve-node",
29207 "type" : "string",
29208 "typetext" : "<string>"
44660702 29209 },
4d47f125
TL
29210 "vmid" : {
29211 "description" : "The (unique) ID of the VM.",
29212 "format" : "pve-vmid",
29213 "minimum" : 1,
29214 "type" : "integer",
29215 "typetext" : "<integer> (1 - N)"
44660702 29216 }
4d47f125
TL
29217 }
29218 },
29219 "permissions" : {
29220 "check" : [
29221 "perm",
29222 "/vms/{vmid}",
29223 [
29224 "VM.Console"
29225 ]
29226 ]
29227 },
29228 "protected" : 1,
29229 "returns" : {
29230 "additionalProperties" : 0,
29231 "properties" : {
29232 "port" : {
29233 "type" : "integer"
56122987 29234 },
4d47f125
TL
29235 "ticket" : {
29236 "type" : "string"
7aacca6f 29237 },
4d47f125
TL
29238 "upid" : {
29239 "type" : "string"
29240 },
29241 "user" : {
29242 "type" : "string"
29243 }
29244 }
29245 }
29246 }
29247 },
29248 "leaf" : 1,
29249 "path" : "/nodes/{node}/lxc/{vmid}/termproxy",
29250 "text" : "termproxy"
29251 },
29252 {
29253 "info" : {
29254 "GET" : {
e9cd3bd4 29255 "allowtoken" : 1,
4d47f125
TL
29256 "description" : "Opens a weksocket for VNC traffic.",
29257 "method" : "GET",
29258 "name" : "vncwebsocket",
29259 "parameters" : {
29260 "additionalProperties" : 0,
29261 "properties" : {
29262 "node" : {
29263 "description" : "The cluster node name.",
29264 "format" : "pve-node",
29265 "type" : "string",
29266 "typetext" : "<string>"
29267 },
29268 "port" : {
29269 "description" : "Port number returned by previous vncproxy call.",
29270 "maximum" : 5999,
29271 "minimum" : 5900,
29272 "type" : "integer",
29273 "typetext" : "<integer> (5900 - 5999)"
29274 },
29275 "vmid" : {
29276 "description" : "The (unique) ID of the VM.",
29277 "format" : "pve-vmid",
29278 "minimum" : 1,
29279 "type" : "integer",
29280 "typetext" : "<integer> (1 - N)"
29281 },
29282 "vncticket" : {
29283 "description" : "Ticket from previous call to vncproxy.",
29284 "maxLength" : 512,
29285 "type" : "string",
29286 "typetext" : "<string>"
56122987
DM
29287 }
29288 }
29289 },
4d47f125
TL
29290 "permissions" : {
29291 "check" : [
29292 "perm",
29293 "/vms/{vmid}",
29294 [
29295 "VM.Console"
29296 ]
29297 ],
29298 "description" : "You also need to pass a valid ticket (vncticket)."
29299 },
29300 "returns" : {
29301 "properties" : {
29302 "port" : {
29303 "type" : "string"
29304 }
29305 },
29306 "type" : "object"
29307 }
29308 }
29309 },
29310 "leaf" : 1,
29311 "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
29312 "text" : "vncwebsocket"
29313 },
29314 {
29315 "info" : {
29316 "POST" : {
e9cd3bd4 29317 "allowtoken" : 1,
4d47f125
TL
29318 "description" : "Returns a SPICE configuration to connect to the CT.",
29319 "method" : "POST",
29320 "name" : "spiceproxy",
29321 "parameters" : {
29322 "additionalProperties" : 0,
29323 "properties" : {
29324 "node" : {
29325 "description" : "The cluster node name.",
29326 "format" : "pve-node",
29327 "type" : "string",
29328 "typetext" : "<string>"
56122987 29329 },
4d47f125
TL
29330 "proxy" : {
29331 "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).",
29332 "format" : "address",
29333 "optional" : 1,
29334 "type" : "string",
29335 "typetext" : "<string>"
44660702 29336 },
4d47f125
TL
29337 "vmid" : {
29338 "description" : "The (unique) ID of the VM.",
29339 "format" : "pve-vmid",
29340 "minimum" : 1,
29341 "type" : "integer",
29342 "typetext" : "<integer> (1 - N)"
44660702 29343 }
56122987
DM
29344 }
29345 },
4d47f125
TL
29346 "permissions" : {
29347 "check" : [
29348 "perm",
29349 "/vms/{vmid}",
29350 [
29351 "VM.Console"
29352 ]
29353 ]
29354 },
29355 "protected" : 1,
29356 "proxyto" : "node",
29357 "returns" : {
29358 "additionalProperties" : 1,
29359 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
29360 "properties" : {
29361 "host" : {
29362 "type" : "string"
29363 },
29364 "password" : {
29365 "type" : "string"
29366 },
29367 "proxy" : {
29368 "type" : "string"
29369 },
29370 "tls-port" : {
29371 "type" : "integer"
29372 },
29373 "type" : {
29374 "type" : "string"
29375 }
29376 }
29377 }
29378 }
29379 },
29380 "leaf" : 1,
29381 "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
29382 "text" : "spiceproxy"
29383 },
29384 {
29385 "info" : {
29386 "POST" : {
e9cd3bd4 29387 "allowtoken" : 1,
4d47f125
TL
29388 "description" : "Migrate the container to another node. Creates a new migration task.",
29389 "method" : "POST",
29390 "name" : "migrate_vm",
29391 "parameters" : {
29392 "additionalProperties" : 0,
29393 "properties" : {
95895385
TL
29394 "bwlimit" : {
29395 "default" : "migrate limit from datacenter or storage config",
29396 "description" : "Override I/O bandwidth limit (in KiB/s).",
29397 "minimum" : "0",
29398 "optional" : 1,
29399 "type" : "number",
29400 "typetext" : "<number> (0 - N)"
29401 },
4d47f125
TL
29402 "node" : {
29403 "description" : "The cluster node name.",
29404 "format" : "pve-node",
29405 "type" : "string",
29406 "typetext" : "<string>"
44660702 29407 },
4d47f125
TL
29408 "online" : {
29409 "description" : "Use online/live migration.",
29410 "optional" : 1,
29411 "type" : "boolean",
29412 "typetext" : "<boolean>"
29413 },
29414 "restart" : {
29415 "description" : "Use restart migration",
29416 "optional" : 1,
29417 "type" : "boolean",
29418 "typetext" : "<boolean>"
29419 },
29420 "target" : {
29421 "description" : "Target node.",
29422 "format" : "pve-node",
29423 "type" : "string",
29424 "typetext" : "<string>"
29425 },
c30bb419
TL
29426 "target-storage" : {
29427 "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.",
29428 "format" : "storage-pair-list",
29429 "optional" : 1,
29430 "type" : "string",
29431 "typetext" : "<string>"
29432 },
4d47f125
TL
29433 "timeout" : {
29434 "default" : 180,
29435 "description" : "Timeout in seconds for shutdown for restart migration",
29436 "optional" : 1,
29437 "type" : "integer",
29438 "typetext" : "<integer>"
29439 },
29440 "vmid" : {
29441 "description" : "The (unique) ID of the VM.",
29442 "format" : "pve-vmid",
29443 "minimum" : 1,
29444 "type" : "integer",
29445 "typetext" : "<integer> (1 - N)"
56122987
DM
29446 }
29447 }
29448 },
4d47f125
TL
29449 "permissions" : {
29450 "check" : [
29451 "perm",
29452 "/vms/{vmid}",
29453 [
29454 "VM.Migrate"
29455 ]
29456 ]
29457 },
29458 "protected" : 1,
29459 "proxyto" : "node",
29460 "returns" : {
29461 "description" : "the task ID.",
29462 "type" : "string"
29463 }
56122987 29464 }
4d47f125
TL
29465 },
29466 "leaf" : 1,
29467 "path" : "/nodes/{node}/lxc/{vmid}/migrate",
29468 "text" : "migrate"
29469 },
29470 {
56122987
DM
29471 "info" : {
29472 "GET" : {
e9cd3bd4 29473 "allowtoken" : 1,
4d47f125 29474 "description" : "Check if feature for virtual machine is available.",
44660702 29475 "method" : "GET",
4d47f125 29476 "name" : "vm_feature",
56122987 29477 "parameters" : {
44660702 29478 "additionalProperties" : 0,
56122987 29479 "properties" : {
4d47f125
TL
29480 "feature" : {
29481 "description" : "Feature to check.",
29482 "enum" : [
29483 "snapshot",
29484 "clone",
29485 "copy"
29486 ],
29487 "type" : "string"
29488 },
56122987 29489 "node" : {
44660702 29490 "description" : "The cluster node name.",
56122987 29491 "format" : "pve-node",
013dc89f
DM
29492 "type" : "string",
29493 "typetext" : "<string>"
44660702 29494 },
4d47f125
TL
29495 "snapname" : {
29496 "description" : "The name of the snapshot.",
29497 "format" : "pve-configid",
29498 "maxLength" : 40,
29499 "optional" : 1,
29500 "type" : "string",
29501 "typetext" : "<string>"
29502 },
44660702
DM
29503 "vmid" : {
29504 "description" : "The (unique) ID of the VM.",
29505 "format" : "pve-vmid",
29506 "minimum" : 1,
4bd7df8b 29507 "type" : "integer",
013dc89f 29508 "typetext" : "<integer> (1 - N)"
56122987 29509 }
44660702
DM
29510 }
29511 },
29512 "permissions" : {
4d47f125
TL
29513 "check" : [
29514 "perm",
29515 "/vms/{vmid}",
29516 [
29517 "VM.Audit"
29518 ]
29519 ]
56122987 29520 },
4d47f125
TL
29521 "protected" : 1,
29522 "proxyto" : "node",
56122987 29523 "returns" : {
4d47f125
TL
29524 "properties" : {
29525 "hasFeature" : {
29526 "type" : "boolean"
29527 }
7aacca6f 29528 },
4d47f125
TL
29529 "type" : "object"
29530 }
29531 }
29532 },
29533 "leaf" : 1,
29534 "path" : "/nodes/{node}/lxc/{vmid}/feature",
29535 "text" : "feature"
29536 },
29537 {
29538 "info" : {
29539 "POST" : {
e9cd3bd4 29540 "allowtoken" : 1,
4d47f125
TL
29541 "description" : "Create a Template.",
29542 "method" : "POST",
29543 "name" : "template",
29544 "parameters" : {
29545 "additionalProperties" : 0,
29546 "properties" : {
29547 "node" : {
29548 "description" : "The cluster node name.",
29549 "format" : "pve-node",
29550 "type" : "string",
29551 "typetext" : "<string>"
29552 },
29553 "vmid" : {
29554 "description" : "The (unique) ID of the VM.",
29555 "format" : "pve-vmid",
29556 "minimum" : 1,
29557 "type" : "integer",
29558 "typetext" : "<integer> (1 - N)"
56122987 29559 }
4d47f125
TL
29560 }
29561 },
29562 "permissions" : {
29563 "check" : [
29564 "perm",
29565 "/vms/{vmid}",
29566 [
29567 "VM.Allocate"
29568 ]
44660702 29569 ],
4d47f125
TL
29570 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
29571 },
29572 "protected" : 1,
29573 "proxyto" : "node",
29574 "returns" : {
29575 "type" : "null"
56122987
DM
29576 }
29577 }
29578 },
4d47f125
TL
29579 "leaf" : 1,
29580 "path" : "/nodes/{node}/lxc/{vmid}/template",
29581 "text" : "template"
56122987
DM
29582 },
29583 {
56122987 29584 "info" : {
4d47f125 29585 "POST" : {
e9cd3bd4 29586 "allowtoken" : 1,
4d47f125
TL
29587 "description" : "Create a container clone/copy",
29588 "method" : "POST",
29589 "name" : "clone_vm",
56122987 29590 "parameters" : {
7aacca6f 29591 "additionalProperties" : 0,
56122987 29592 "properties" : {
95895385
TL
29593 "bwlimit" : {
29594 "default" : "clone limit from datacenter or storage config",
29595 "description" : "Override I/O bandwidth limit (in KiB/s).",
29596 "minimum" : "0",
29597 "optional" : 1,
29598 "type" : "number",
29599 "typetext" : "<number> (0 - N)"
29600 },
4d47f125
TL
29601 "description" : {
29602 "description" : "Description for the new CT.",
44660702 29603 "optional" : 1,
4d47f125
TL
29604 "type" : "string",
29605 "typetext" : "<string>"
44660702 29606 },
4d47f125
TL
29607 "full" : {
29608 "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.",
29609 "optional" : 1,
29610 "type" : "boolean",
29611 "typetext" : "<boolean>"
29612 },
29613 "hostname" : {
29614 "description" : "Set a hostname for the new CT.",
29615 "format" : "dns-name",
29616 "optional" : 1,
013dc89f
DM
29617 "type" : "string",
29618 "typetext" : "<string>"
44660702 29619 },
4d47f125
TL
29620 "newid" : {
29621 "description" : "VMID for the clone.",
29622 "format" : "pve-vmid",
29623 "minimum" : 1,
29624 "type" : "integer",
29625 "typetext" : "<integer> (1 - N)"
29626 },
7aacca6f
DM
29627 "node" : {
29628 "description" : "The cluster node name.",
44660702 29629 "format" : "pve-node",
013dc89f
DM
29630 "type" : "string",
29631 "typetext" : "<string>"
56122987 29632 },
4d47f125
TL
29633 "pool" : {
29634 "description" : "Add the new CT to the specified pool.",
29635 "format" : "pve-poolid",
29636 "optional" : 1,
29637 "type" : "string",
29638 "typetext" : "<string>"
29639 },
29640 "snapname" : {
29641 "description" : "The name of the snapshot.",
29642 "format" : "pve-configid",
29643 "maxLength" : 40,
29644 "optional" : 1,
29645 "type" : "string",
29646 "typetext" : "<string>"
29647 },
29648 "storage" : {
29649 "description" : "Target storage for full clone.",
29650 "format" : "pve-storage-id",
29651 "optional" : 1,
29652 "type" : "string",
29653 "typetext" : "<string>"
29654 },
29655 "target" : {
29656 "description" : "Target node. Only allowed if the original VM is on shared storage.",
29657 "format" : "pve-node",
29658 "optional" : 1,
29659 "type" : "string",
29660 "typetext" : "<string>"
29661 },
7aacca6f 29662 "vmid" : {
44660702 29663 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
29664 "format" : "pve-vmid",
29665 "minimum" : 1,
4bd7df8b 29666 "type" : "integer",
013dc89f 29667 "typetext" : "<integer> (1 - N)"
56122987 29668 }
7aacca6f
DM
29669 }
29670 },
29671 "permissions" : {
29672 "check" : [
4d47f125 29673 "and",
7aacca6f 29674 [
4d47f125
TL
29675 "perm",
29676 "/vms/{vmid}",
29677 [
29678 "VM.Clone"
29679 ]
29680 ],
29681 [
29682 "or",
29683 [
29684 "perm",
29685 "/vms/{newid}",
29686 [
29687 "VM.Allocate"
29688 ]
29689 ],
29690 [
29691 "perm",
29692 "/pool/{pool}",
29693 [
29694 "VM.Allocate"
29695 ],
29696 "require_param",
29697 "pool"
29698 ]
7aacca6f 29699 ]
4d47f125
TL
29700 ],
29701 "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."
56122987 29702 },
44660702 29703 "protected" : 1,
4d47f125 29704 "proxyto" : "node",
7aacca6f 29705 "returns" : {
4d47f125 29706 "type" : "string"
7aacca6f 29707 }
56122987 29708 }
7aacca6f 29709 },
44660702 29710 "leaf" : 1,
4d47f125
TL
29711 "path" : "/nodes/{node}/lxc/{vmid}/clone",
29712 "text" : "clone"
56122987
DM
29713 },
29714 {
56122987 29715 "info" : {
4d47f125 29716 "PUT" : {
e9cd3bd4 29717 "allowtoken" : 1,
4d47f125
TL
29718 "description" : "Resize a container mount point.",
29719 "method" : "PUT",
29720 "name" : "resize_vm",
56122987 29721 "parameters" : {
7aacca6f 29722 "additionalProperties" : 0,
56122987 29723 "properties" : {
4d47f125
TL
29724 "digest" : {
29725 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29726 "maxLength" : 40,
29727 "optional" : 1,
29728 "type" : "string",
29729 "typetext" : "<string>"
29730 },
29731 "disk" : {
29732 "description" : "The disk you want to resize.",
44660702 29733 "enum" : [
4d47f125
TL
29734 "rootfs",
29735 "mp0",
29736 "mp1",
29737 "mp2",
29738 "mp3",
29739 "mp4",
29740 "mp5",
29741 "mp6",
29742 "mp7",
29743 "mp8",
29744 "mp9",
29745 "mp10",
29746 "mp11",
29747 "mp12",
29748 "mp13",
29749 "mp14",
29750 "mp15",
29751 "mp16",
29752 "mp17",
29753 "mp18",
29754 "mp19",
29755 "mp20",
29756 "mp21",
29757 "mp22",
29758 "mp23",
29759 "mp24",
29760 "mp25",
29761 "mp26",
29762 "mp27",
29763 "mp28",
29764 "mp29",
29765 "mp30",
29766 "mp31",
29767 "mp32",
29768 "mp33",
29769 "mp34",
29770 "mp35",
29771 "mp36",
29772 "mp37",
29773 "mp38",
29774 "mp39",
29775 "mp40",
29776 "mp41",
29777 "mp42",
29778 "mp43",
29779 "mp44",
29780 "mp45",
29781 "mp46",
29782 "mp47",
29783 "mp48",
29784 "mp49",
29785 "mp50",
29786 "mp51",
29787 "mp52",
29788 "mp53",
29789 "mp54",
29790 "mp55",
29791 "mp56",
29792 "mp57",
29793 "mp58",
29794 "mp59",
29795 "mp60",
29796 "mp61",
29797 "mp62",
29798 "mp63",
29799 "mp64",
29800 "mp65",
29801 "mp66",
29802 "mp67",
29803 "mp68",
29804 "mp69",
29805 "mp70",
29806 "mp71",
29807 "mp72",
29808 "mp73",
29809 "mp74",
29810 "mp75",
29811 "mp76",
29812 "mp77",
29813 "mp78",
29814 "mp79",
29815 "mp80",
29816 "mp81",
29817 "mp82",
29818 "mp83",
29819 "mp84",
29820 "mp85",
29821 "mp86",
29822 "mp87",
29823 "mp88",
29824 "mp89",
29825 "mp90",
29826 "mp91",
29827 "mp92",
29828 "mp93",
29829 "mp94",
29830 "mp95",
29831 "mp96",
29832 "mp97",
29833 "mp98",
29834 "mp99",
29835 "mp100",
29836 "mp101",
29837 "mp102",
29838 "mp103",
29839 "mp104",
29840 "mp105",
29841 "mp106",
29842 "mp107",
29843 "mp108",
29844 "mp109",
29845 "mp110",
29846 "mp111",
29847 "mp112",
29848 "mp113",
29849 "mp114",
29850 "mp115",
29851 "mp116",
29852 "mp117",
29853 "mp118",
29854 "mp119",
29855 "mp120",
29856 "mp121",
29857 "mp122",
29858 "mp123",
29859 "mp124",
29860 "mp125",
29861 "mp126",
29862 "mp127",
29863 "mp128",
29864 "mp129",
29865 "mp130",
29866 "mp131",
29867 "mp132",
29868 "mp133",
29869 "mp134",
29870 "mp135",
29871 "mp136",
29872 "mp137",
29873 "mp138",
29874 "mp139",
29875 "mp140",
29876 "mp141",
29877 "mp142",
29878 "mp143",
29879 "mp144",
29880 "mp145",
29881 "mp146",
29882 "mp147",
29883 "mp148",
29884 "mp149",
29885 "mp150",
29886 "mp151",
29887 "mp152",
29888 "mp153",
29889 "mp154",
29890 "mp155",
29891 "mp156",
29892 "mp157",
29893 "mp158",
29894 "mp159",
29895 "mp160",
29896 "mp161",
29897 "mp162",
29898 "mp163",
29899 "mp164",
29900 "mp165",
29901 "mp166",
29902 "mp167",
29903 "mp168",
29904 "mp169",
29905 "mp170",
29906 "mp171",
29907 "mp172",
29908 "mp173",
29909 "mp174",
29910 "mp175",
29911 "mp176",
29912 "mp177",
29913 "mp178",
29914 "mp179",
29915 "mp180",
29916 "mp181",
29917 "mp182",
29918 "mp183",
29919 "mp184",
29920 "mp185",
29921 "mp186",
29922 "mp187",
29923 "mp188",
29924 "mp189",
29925 "mp190",
29926 "mp191",
29927 "mp192",
29928 "mp193",
29929 "mp194",
29930 "mp195",
29931 "mp196",
29932 "mp197",
29933 "mp198",
29934 "mp199",
29935 "mp200",
29936 "mp201",
29937 "mp202",
29938 "mp203",
29939 "mp204",
29940 "mp205",
29941 "mp206",
29942 "mp207",
29943 "mp208",
29944 "mp209",
29945 "mp210",
29946 "mp211",
29947 "mp212",
29948 "mp213",
29949 "mp214",
29950 "mp215",
29951 "mp216",
29952 "mp217",
29953 "mp218",
29954 "mp219",
29955 "mp220",
29956 "mp221",
29957 "mp222",
29958 "mp223",
29959 "mp224",
29960 "mp225",
29961 "mp226",
29962 "mp227",
29963 "mp228",
29964 "mp229",
29965 "mp230",
29966 "mp231",
29967 "mp232",
29968 "mp233",
29969 "mp234",
29970 "mp235",
29971 "mp236",
29972 "mp237",
29973 "mp238",
29974 "mp239",
29975 "mp240",
29976 "mp241",
29977 "mp242",
29978 "mp243",
29979 "mp244",
29980 "mp245",
29981 "mp246",
29982 "mp247",
29983 "mp248",
29984 "mp249",
29985 "mp250",
29986 "mp251",
29987 "mp252",
29988 "mp253",
29989 "mp254",
29990 "mp255"
44660702 29991 ],
44660702
DM
29992 "type" : "string"
29993 },
7aacca6f 29994 "node" : {
44660702 29995 "description" : "The cluster node name.",
7aacca6f 29996 "format" : "pve-node",
013dc89f
DM
29997 "type" : "string",
29998 "typetext" : "<string>"
7aacca6f 29999 },
4d47f125
TL
30000 "size" : {
30001 "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.",
30002 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
44660702 30003 "type" : "string"
7aacca6f
DM
30004 },
30005 "vmid" : {
30006 "description" : "The (unique) ID of the VM.",
44660702 30007 "format" : "pve-vmid",
7aacca6f 30008 "minimum" : 1,
4bd7df8b 30009 "type" : "integer",
013dc89f 30010 "typetext" : "<integer> (1 - N)"
56122987 30011 }
56122987
DM
30012 }
30013 },
56122987
DM
30014 "permissions" : {
30015 "check" : [
30016 "perm",
30017 "/vms/{vmid}",
30018 [
4d47f125
TL
30019 "VM.Config.Disk"
30020 ],
30021 "any",
30022 1
56122987
DM
30023 ]
30024 },
7aacca6f 30025 "protected" : 1,
4d47f125 30026 "proxyto" : "node",
7aacca6f 30027 "returns" : {
4d47f125
TL
30028 "description" : "the task ID.",
30029 "type" : "string"
44660702 30030 }
56122987
DM
30031 }
30032 },
44660702 30033 "leaf" : 1,
4d47f125
TL
30034 "path" : "/nodes/{node}/lxc/{vmid}/resize",
30035 "text" : "resize"
56122987
DM
30036 },
30037 {
30038 "info" : {
30039 "POST" : {
e9cd3bd4 30040 "allowtoken" : 1,
5370fa8c 30041 "description" : "Move a rootfs-/mp-volume to a different storage or to a different container.",
44660702 30042 "method" : "POST",
4d47f125 30043 "name" : "move_volume",
7aacca6f 30044 "parameters" : {
44660702 30045 "additionalProperties" : 0,
7aacca6f 30046 "properties" : {
95895385
TL
30047 "bwlimit" : {
30048 "default" : "clone limit from datacenter or storage config",
30049 "description" : "Override I/O bandwidth limit (in KiB/s).",
30050 "minimum" : "0",
30051 "optional" : 1,
30052 "type" : "number",
30053 "typetext" : "<number> (0 - N)"
30054 },
4d47f125
TL
30055 "delete" : {
30056 "default" : 0,
30057 "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.",
5d9c884c 30058 "optional" : 1,
4d47f125
TL
30059 "type" : "boolean",
30060 "typetext" : "<boolean>"
30061 },
30062 "digest" : {
5370fa8c 30063 "description" : "Prevent changes if current configuration file has different SHA1 \" .\n\t\t \"digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
30064 "maxLength" : 40,
30065 "optional" : 1,
30066 "type" : "string",
30067 "typetext" : "<string>"
5d9c884c 30068 },
44660702
DM
30069 "node" : {
30070 "description" : "The cluster node name.",
30071 "format" : "pve-node",
013dc89f
DM
30072 "type" : "string",
30073 "typetext" : "<string>"
44660702 30074 },
4d47f125
TL
30075 "storage" : {
30076 "description" : "Target Storage.",
30077 "format" : "pve-storage-id",
5370fa8c 30078 "optional" : 1,
4d47f125
TL
30079 "type" : "string",
30080 "typetext" : "<string>"
30081 },
5370fa8c
TL
30082 "target-digest" : {
30083 "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.",
30084 "maxLength" : 40,
30085 "optional" : 1,
30086 "type" : "string",
30087 "typetext" : "<string>"
30088 },
30089 "target-vmid" : {
44660702 30090 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
30091 "format" : "pve-vmid",
30092 "minimum" : 1,
5370fa8c 30093 "optional" : 1,
4bd7df8b 30094 "type" : "integer",
013dc89f 30095 "typetext" : "<integer> (1 - N)"
7aacca6f 30096 },
5370fa8c
TL
30097 "target-volume" : {
30098 "description" : "The config key the volume will be moved to. Default is the source volume key.",
4d47f125
TL
30099 "enum" : [
30100 "rootfs",
30101 "mp0",
30102 "mp1",
30103 "mp2",
30104 "mp3",
30105 "mp4",
30106 "mp5",
30107 "mp6",
30108 "mp7",
30109 "mp8",
30110 "mp9",
30111 "mp10",
30112 "mp11",
30113 "mp12",
30114 "mp13",
30115 "mp14",
30116 "mp15",
30117 "mp16",
30118 "mp17",
30119 "mp18",
30120 "mp19",
30121 "mp20",
30122 "mp21",
30123 "mp22",
30124 "mp23",
30125 "mp24",
30126 "mp25",
30127 "mp26",
30128 "mp27",
30129 "mp28",
30130 "mp29",
30131 "mp30",
30132 "mp31",
30133 "mp32",
30134 "mp33",
30135 "mp34",
30136 "mp35",
30137 "mp36",
30138 "mp37",
30139 "mp38",
30140 "mp39",
30141 "mp40",
30142 "mp41",
30143 "mp42",
30144 "mp43",
30145 "mp44",
30146 "mp45",
30147 "mp46",
30148 "mp47",
30149 "mp48",
30150 "mp49",
30151 "mp50",
30152 "mp51",
30153 "mp52",
30154 "mp53",
30155 "mp54",
30156 "mp55",
30157 "mp56",
30158 "mp57",
30159 "mp58",
30160 "mp59",
30161 "mp60",
30162 "mp61",
30163 "mp62",
30164 "mp63",
30165 "mp64",
30166 "mp65",
30167 "mp66",
30168 "mp67",
30169 "mp68",
30170 "mp69",
30171 "mp70",
30172 "mp71",
30173 "mp72",
30174 "mp73",
30175 "mp74",
30176 "mp75",
30177 "mp76",
30178 "mp77",
30179 "mp78",
30180 "mp79",
30181 "mp80",
30182 "mp81",
30183 "mp82",
30184 "mp83",
30185 "mp84",
30186 "mp85",
30187 "mp86",
30188 "mp87",
30189 "mp88",
30190 "mp89",
30191 "mp90",
30192 "mp91",
30193 "mp92",
30194 "mp93",
30195 "mp94",
30196 "mp95",
30197 "mp96",
30198 "mp97",
30199 "mp98",
30200 "mp99",
30201 "mp100",
30202 "mp101",
30203 "mp102",
30204 "mp103",
30205 "mp104",
30206 "mp105",
30207 "mp106",
30208 "mp107",
30209 "mp108",
30210 "mp109",
30211 "mp110",
30212 "mp111",
30213 "mp112",
30214 "mp113",
30215 "mp114",
30216 "mp115",
30217 "mp116",
30218 "mp117",
30219 "mp118",
30220 "mp119",
30221 "mp120",
30222 "mp121",
30223 "mp122",
30224 "mp123",
30225 "mp124",
30226 "mp125",
30227 "mp126",
30228 "mp127",
30229 "mp128",
30230 "mp129",
30231 "mp130",
30232 "mp131",
30233 "mp132",
30234 "mp133",
30235 "mp134",
30236 "mp135",
30237 "mp136",
30238 "mp137",
30239 "mp138",
30240 "mp139",
30241 "mp140",
30242 "mp141",
30243 "mp142",
30244 "mp143",
30245 "mp144",
30246 "mp145",
30247 "mp146",
30248 "mp147",
30249 "mp148",
30250 "mp149",
30251 "mp150",
30252 "mp151",
30253 "mp152",
30254 "mp153",
30255 "mp154",
30256 "mp155",
30257 "mp156",
30258 "mp157",
30259 "mp158",
30260 "mp159",
30261 "mp160",
30262 "mp161",
30263 "mp162",
30264 "mp163",
30265 "mp164",
30266 "mp165",
30267 "mp166",
30268 "mp167",
30269 "mp168",
30270 "mp169",
30271 "mp170",
30272 "mp171",
30273 "mp172",
30274 "mp173",
30275 "mp174",
30276 "mp175",
30277 "mp176",
30278 "mp177",
30279 "mp178",
30280 "mp179",
30281 "mp180",
30282 "mp181",
30283 "mp182",
30284 "mp183",
30285 "mp184",
30286 "mp185",
30287 "mp186",
30288 "mp187",
30289 "mp188",
30290 "mp189",
30291 "mp190",
30292 "mp191",
30293 "mp192",
30294 "mp193",
30295 "mp194",
30296 "mp195",
30297 "mp196",
30298 "mp197",
30299 "mp198",
30300 "mp199",
30301 "mp200",
30302 "mp201",
30303 "mp202",
30304 "mp203",
30305 "mp204",
30306 "mp205",
30307 "mp206",
30308 "mp207",
30309 "mp208",
30310 "mp209",
30311 "mp210",
30312 "mp211",
30313 "mp212",
30314 "mp213",
30315 "mp214",
30316 "mp215",
30317 "mp216",
30318 "mp217",
30319 "mp218",
30320 "mp219",
30321 "mp220",
30322 "mp221",
30323 "mp222",
30324 "mp223",
30325 "mp224",
30326 "mp225",
30327 "mp226",
30328 "mp227",
30329 "mp228",
30330 "mp229",
30331 "mp230",
30332 "mp231",
30333 "mp232",
30334 "mp233",
30335 "mp234",
30336 "mp235",
30337 "mp236",
30338 "mp237",
30339 "mp238",
30340 "mp239",
30341 "mp240",
30342 "mp241",
30343 "mp242",
30344 "mp243",
30345 "mp244",
30346 "mp245",
30347 "mp246",
30348 "mp247",
30349 "mp248",
30350 "mp249",
30351 "mp250",
30352 "mp251",
30353 "mp252",
30354 "mp253",
30355 "mp254",
5370fa8c
TL
30356 "mp255",
30357 "unused0",
30358 "unused1",
30359 "unused2",
30360 "unused3",
30361 "unused4",
30362 "unused5",
30363 "unused6",
30364 "unused7",
30365 "unused8",
30366 "unused9",
30367 "unused10",
30368 "unused11",
30369 "unused12",
30370 "unused13",
30371 "unused14",
30372 "unused15",
30373 "unused16",
30374 "unused17",
30375 "unused18",
30376 "unused19",
30377 "unused20",
30378 "unused21",
30379 "unused22",
30380 "unused23",
30381 "unused24",
30382 "unused25",
30383 "unused26",
30384 "unused27",
30385 "unused28",
30386 "unused29",
30387 "unused30",
30388 "unused31",
30389 "unused32",
30390 "unused33",
30391 "unused34",
30392 "unused35",
30393 "unused36",
30394 "unused37",
30395 "unused38",
30396 "unused39",
30397 "unused40",
30398 "unused41",
30399 "unused42",
30400 "unused43",
30401 "unused44",
30402 "unused45",
30403 "unused46",
30404 "unused47",
30405 "unused48",
30406 "unused49",
30407 "unused50",
30408 "unused51",
30409 "unused52",
30410 "unused53",
30411 "unused54",
30412 "unused55",
30413 "unused56",
30414 "unused57",
30415 "unused58",
30416 "unused59",
30417 "unused60",
30418 "unused61",
30419 "unused62",
30420 "unused63",
30421 "unused64",
30422 "unused65",
30423 "unused66",
30424 "unused67",
30425 "unused68",
30426 "unused69",
30427 "unused70",
30428 "unused71",
30429 "unused72",
30430 "unused73",
30431 "unused74",
30432 "unused75",
30433 "unused76",
30434 "unused77",
30435 "unused78",
30436 "unused79",
30437 "unused80",
30438 "unused81",
30439 "unused82",
30440 "unused83",
30441 "unused84",
30442 "unused85",
30443 "unused86",
30444 "unused87",
30445 "unused88",
30446 "unused89",
30447 "unused90",
30448 "unused91",
30449 "unused92",
30450 "unused93",
30451 "unused94",
30452 "unused95",
30453 "unused96",
30454 "unused97",
30455 "unused98",
30456 "unused99",
30457 "unused100",
30458 "unused101",
30459 "unused102",
30460 "unused103",
30461 "unused104",
30462 "unused105",
30463 "unused106",
30464 "unused107",
30465 "unused108",
30466 "unused109",
30467 "unused110",
30468 "unused111",
30469 "unused112",
30470 "unused113",
30471 "unused114",
30472 "unused115",
30473 "unused116",
30474 "unused117",
30475 "unused118",
30476 "unused119",
30477 "unused120",
30478 "unused121",
30479 "unused122",
30480 "unused123",
30481 "unused124",
30482 "unused125",
30483 "unused126",
30484 "unused127",
30485 "unused128",
30486 "unused129",
30487 "unused130",
30488 "unused131",
30489 "unused132",
30490 "unused133",
30491 "unused134",
30492 "unused135",
30493 "unused136",
30494 "unused137",
30495 "unused138",
30496 "unused139",
30497 "unused140",
30498 "unused141",
30499 "unused142",
30500 "unused143",
30501 "unused144",
30502 "unused145",
30503 "unused146",
30504 "unused147",
30505 "unused148",
30506 "unused149",
30507 "unused150",
30508 "unused151",
30509 "unused152",
30510 "unused153",
30511 "unused154",
30512 "unused155",
30513 "unused156",
30514 "unused157",
30515 "unused158",
30516 "unused159",
30517 "unused160",
30518 "unused161",
30519 "unused162",
30520 "unused163",
30521 "unused164",
30522 "unused165",
30523 "unused166",
30524 "unused167",
30525 "unused168",
30526 "unused169",
30527 "unused170",
30528 "unused171",
30529 "unused172",
30530 "unused173",
30531 "unused174",
30532 "unused175",
30533 "unused176",
30534 "unused177",
30535 "unused178",
30536 "unused179",
30537 "unused180",
30538 "unused181",
30539 "unused182",
30540 "unused183",
30541 "unused184",
30542 "unused185",
30543 "unused186",
30544 "unused187",
30545 "unused188",
30546 "unused189",
30547 "unused190",
30548 "unused191",
30549 "unused192",
30550 "unused193",
30551 "unused194",
30552 "unused195",
30553 "unused196",
30554 "unused197",
30555 "unused198",
30556 "unused199",
30557 "unused200",
30558 "unused201",
30559 "unused202",
30560 "unused203",
30561 "unused204",
30562 "unused205",
30563 "unused206",
30564 "unused207",
30565 "unused208",
30566 "unused209",
30567 "unused210",
30568 "unused211",
30569 "unused212",
30570 "unused213",
30571 "unused214",
30572 "unused215",
30573 "unused216",
30574 "unused217",
30575 "unused218",
30576 "unused219",
30577 "unused220",
30578 "unused221",
30579 "unused222",
30580 "unused223",
30581 "unused224",
30582 "unused225",
30583 "unused226",
30584 "unused227",
30585 "unused228",
30586 "unused229",
30587 "unused230",
30588 "unused231",
30589 "unused232",
30590 "unused233",
30591 "unused234",
30592 "unused235",
30593 "unused236",
30594 "unused237",
30595 "unused238",
30596 "unused239",
30597 "unused240",
30598 "unused241",
30599 "unused242",
30600 "unused243",
30601 "unused244",
30602 "unused245",
30603 "unused246",
30604 "unused247",
30605 "unused248",
30606 "unused249",
30607 "unused250",
30608 "unused251",
30609 "unused252",
30610 "unused253",
30611 "unused254",
30612 "unused255"
30613 ],
30614 "optional" : 1,
30615 "type" : "string"
30616 },
30617 "vmid" : {
30618 "description" : "The (unique) ID of the VM.",
30619 "format" : "pve-vmid",
30620 "minimum" : 1,
30621 "type" : "integer",
30622 "typetext" : "<integer> (1 - N)"
30623 },
30624 "volume" : {
30625 "description" : "Volume which will be moved.",
30626 "enum" : [
30627 "rootfs",
30628 "mp0",
30629 "mp1",
30630 "mp2",
30631 "mp3",
30632 "mp4",
30633 "mp5",
30634 "mp6",
30635 "mp7",
30636 "mp8",
30637 "mp9",
30638 "mp10",
30639 "mp11",
30640 "mp12",
30641 "mp13",
30642 "mp14",
30643 "mp15",
30644 "mp16",
30645 "mp17",
30646 "mp18",
30647 "mp19",
30648 "mp20",
30649 "mp21",
30650 "mp22",
30651 "mp23",
30652 "mp24",
30653 "mp25",
30654 "mp26",
30655 "mp27",
30656 "mp28",
30657 "mp29",
30658 "mp30",
30659 "mp31",
30660 "mp32",
30661 "mp33",
30662 "mp34",
30663 "mp35",
30664 "mp36",
30665 "mp37",
30666 "mp38",
30667 "mp39",
30668 "mp40",
30669 "mp41",
30670 "mp42",
30671 "mp43",
30672 "mp44",
30673 "mp45",
30674 "mp46",
30675 "mp47",
30676 "mp48",
30677 "mp49",
30678 "mp50",
30679 "mp51",
30680 "mp52",
30681 "mp53",
30682 "mp54",
30683 "mp55",
30684 "mp56",
30685 "mp57",
30686 "mp58",
30687 "mp59",
30688 "mp60",
30689 "mp61",
30690 "mp62",
30691 "mp63",
30692 "mp64",
30693 "mp65",
30694 "mp66",
30695 "mp67",
30696 "mp68",
30697 "mp69",
30698 "mp70",
30699 "mp71",
30700 "mp72",
30701 "mp73",
30702 "mp74",
30703 "mp75",
30704 "mp76",
30705 "mp77",
30706 "mp78",
30707 "mp79",
30708 "mp80",
30709 "mp81",
30710 "mp82",
30711 "mp83",
30712 "mp84",
30713 "mp85",
30714 "mp86",
30715 "mp87",
30716 "mp88",
30717 "mp89",
30718 "mp90",
30719 "mp91",
30720 "mp92",
30721 "mp93",
30722 "mp94",
30723 "mp95",
30724 "mp96",
30725 "mp97",
30726 "mp98",
30727 "mp99",
30728 "mp100",
30729 "mp101",
30730 "mp102",
30731 "mp103",
30732 "mp104",
30733 "mp105",
30734 "mp106",
30735 "mp107",
30736 "mp108",
30737 "mp109",
30738 "mp110",
30739 "mp111",
30740 "mp112",
30741 "mp113",
30742 "mp114",
30743 "mp115",
30744 "mp116",
30745 "mp117",
30746 "mp118",
30747 "mp119",
30748 "mp120",
30749 "mp121",
30750 "mp122",
30751 "mp123",
30752 "mp124",
30753 "mp125",
30754 "mp126",
30755 "mp127",
30756 "mp128",
30757 "mp129",
30758 "mp130",
30759 "mp131",
30760 "mp132",
30761 "mp133",
30762 "mp134",
30763 "mp135",
30764 "mp136",
30765 "mp137",
30766 "mp138",
30767 "mp139",
30768 "mp140",
30769 "mp141",
30770 "mp142",
30771 "mp143",
30772 "mp144",
30773 "mp145",
30774 "mp146",
30775 "mp147",
30776 "mp148",
30777 "mp149",
30778 "mp150",
30779 "mp151",
30780 "mp152",
30781 "mp153",
30782 "mp154",
30783 "mp155",
30784 "mp156",
30785 "mp157",
30786 "mp158",
30787 "mp159",
30788 "mp160",
30789 "mp161",
30790 "mp162",
30791 "mp163",
30792 "mp164",
30793 "mp165",
30794 "mp166",
30795 "mp167",
30796 "mp168",
30797 "mp169",
30798 "mp170",
30799 "mp171",
30800 "mp172",
30801 "mp173",
30802 "mp174",
30803 "mp175",
30804 "mp176",
30805 "mp177",
30806 "mp178",
30807 "mp179",
30808 "mp180",
30809 "mp181",
30810 "mp182",
30811 "mp183",
30812 "mp184",
30813 "mp185",
30814 "mp186",
30815 "mp187",
30816 "mp188",
30817 "mp189",
30818 "mp190",
30819 "mp191",
30820 "mp192",
30821 "mp193",
30822 "mp194",
30823 "mp195",
30824 "mp196",
30825 "mp197",
30826 "mp198",
30827 "mp199",
30828 "mp200",
30829 "mp201",
30830 "mp202",
30831 "mp203",
30832 "mp204",
30833 "mp205",
30834 "mp206",
30835 "mp207",
30836 "mp208",
30837 "mp209",
30838 "mp210",
30839 "mp211",
30840 "mp212",
30841 "mp213",
30842 "mp214",
30843 "mp215",
30844 "mp216",
30845 "mp217",
30846 "mp218",
30847 "mp219",
30848 "mp220",
30849 "mp221",
30850 "mp222",
30851 "mp223",
30852 "mp224",
30853 "mp225",
30854 "mp226",
30855 "mp227",
30856 "mp228",
30857 "mp229",
30858 "mp230",
30859 "mp231",
30860 "mp232",
30861 "mp233",
30862 "mp234",
30863 "mp235",
30864 "mp236",
30865 "mp237",
30866 "mp238",
30867 "mp239",
30868 "mp240",
30869 "mp241",
30870 "mp242",
30871 "mp243",
30872 "mp244",
30873 "mp245",
30874 "mp246",
30875 "mp247",
30876 "mp248",
30877 "mp249",
30878 "mp250",
30879 "mp251",
30880 "mp252",
30881 "mp253",
30882 "mp254",
30883 "mp255",
30884 "unused0",
30885 "unused1",
30886 "unused2",
30887 "unused3",
30888 "unused4",
30889 "unused5",
30890 "unused6",
30891 "unused7",
30892 "unused8",
30893 "unused9",
30894 "unused10",
30895 "unused11",
30896 "unused12",
30897 "unused13",
30898 "unused14",
30899 "unused15",
30900 "unused16",
30901 "unused17",
30902 "unused18",
30903 "unused19",
30904 "unused20",
30905 "unused21",
30906 "unused22",
30907 "unused23",
30908 "unused24",
30909 "unused25",
30910 "unused26",
30911 "unused27",
30912 "unused28",
30913 "unused29",
30914 "unused30",
30915 "unused31",
30916 "unused32",
30917 "unused33",
30918 "unused34",
30919 "unused35",
30920 "unused36",
30921 "unused37",
30922 "unused38",
30923 "unused39",
30924 "unused40",
30925 "unused41",
30926 "unused42",
30927 "unused43",
30928 "unused44",
30929 "unused45",
30930 "unused46",
30931 "unused47",
30932 "unused48",
30933 "unused49",
30934 "unused50",
30935 "unused51",
30936 "unused52",
30937 "unused53",
30938 "unused54",
30939 "unused55",
30940 "unused56",
30941 "unused57",
30942 "unused58",
30943 "unused59",
30944 "unused60",
30945 "unused61",
30946 "unused62",
30947 "unused63",
30948 "unused64",
30949 "unused65",
30950 "unused66",
30951 "unused67",
30952 "unused68",
30953 "unused69",
30954 "unused70",
30955 "unused71",
30956 "unused72",
30957 "unused73",
30958 "unused74",
30959 "unused75",
30960 "unused76",
30961 "unused77",
30962 "unused78",
30963 "unused79",
30964 "unused80",
30965 "unused81",
30966 "unused82",
30967 "unused83",
30968 "unused84",
30969 "unused85",
30970 "unused86",
30971 "unused87",
30972 "unused88",
30973 "unused89",
30974 "unused90",
30975 "unused91",
30976 "unused92",
30977 "unused93",
30978 "unused94",
30979 "unused95",
30980 "unused96",
30981 "unused97",
30982 "unused98",
30983 "unused99",
30984 "unused100",
30985 "unused101",
30986 "unused102",
30987 "unused103",
30988 "unused104",
30989 "unused105",
30990 "unused106",
30991 "unused107",
30992 "unused108",
30993 "unused109",
30994 "unused110",
30995 "unused111",
30996 "unused112",
30997 "unused113",
30998 "unused114",
30999 "unused115",
31000 "unused116",
31001 "unused117",
31002 "unused118",
31003 "unused119",
31004 "unused120",
31005 "unused121",
31006 "unused122",
31007 "unused123",
31008 "unused124",
31009 "unused125",
31010 "unused126",
31011 "unused127",
31012 "unused128",
31013 "unused129",
31014 "unused130",
31015 "unused131",
31016 "unused132",
31017 "unused133",
31018 "unused134",
31019 "unused135",
31020 "unused136",
31021 "unused137",
31022 "unused138",
31023 "unused139",
31024 "unused140",
31025 "unused141",
31026 "unused142",
31027 "unused143",
31028 "unused144",
31029 "unused145",
31030 "unused146",
31031 "unused147",
31032 "unused148",
31033 "unused149",
31034 "unused150",
31035 "unused151",
31036 "unused152",
31037 "unused153",
31038 "unused154",
31039 "unused155",
31040 "unused156",
31041 "unused157",
31042 "unused158",
31043 "unused159",
31044 "unused160",
31045 "unused161",
31046 "unused162",
31047 "unused163",
31048 "unused164",
31049 "unused165",
31050 "unused166",
31051 "unused167",
31052 "unused168",
31053 "unused169",
31054 "unused170",
31055 "unused171",
31056 "unused172",
31057 "unused173",
31058 "unused174",
31059 "unused175",
31060 "unused176",
31061 "unused177",
31062 "unused178",
31063 "unused179",
31064 "unused180",
31065 "unused181",
31066 "unused182",
31067 "unused183",
31068 "unused184",
31069 "unused185",
31070 "unused186",
31071 "unused187",
31072 "unused188",
31073 "unused189",
31074 "unused190",
31075 "unused191",
31076 "unused192",
31077 "unused193",
31078 "unused194",
31079 "unused195",
31080 "unused196",
31081 "unused197",
31082 "unused198",
31083 "unused199",
31084 "unused200",
31085 "unused201",
31086 "unused202",
31087 "unused203",
31088 "unused204",
31089 "unused205",
31090 "unused206",
31091 "unused207",
31092 "unused208",
31093 "unused209",
31094 "unused210",
31095 "unused211",
31096 "unused212",
31097 "unused213",
31098 "unused214",
31099 "unused215",
31100 "unused216",
31101 "unused217",
31102 "unused218",
31103 "unused219",
31104 "unused220",
31105 "unused221",
31106 "unused222",
31107 "unused223",
31108 "unused224",
31109 "unused225",
31110 "unused226",
31111 "unused227",
31112 "unused228",
31113 "unused229",
31114 "unused230",
31115 "unused231",
31116 "unused232",
31117 "unused233",
31118 "unused234",
31119 "unused235",
31120 "unused236",
31121 "unused237",
31122 "unused238",
31123 "unused239",
31124 "unused240",
31125 "unused241",
31126 "unused242",
31127 "unused243",
31128 "unused244",
31129 "unused245",
31130 "unused246",
31131 "unused247",
31132 "unused248",
31133 "unused249",
31134 "unused250",
31135 "unused251",
31136 "unused252",
31137 "unused253",
31138 "unused254",
31139 "unused255"
4d47f125
TL
31140 ],
31141 "type" : "string"
7aacca6f 31142 }
44660702 31143 }
7aacca6f 31144 },
56122987
DM
31145 "permissions" : {
31146 "check" : [
5370fa8c
TL
31147 "perm",
31148 "/vms/{vmid}",
4d47f125 31149 [
5370fa8c 31150 "VM.Config.Disk"
56122987 31151 ]
4d47f125 31152 ],
5370fa8c 31153 "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
31154 },
31155 "protected" : 1,
31156 "proxyto" : "node",
31157 "returns" : {
31158 "type" : "string"
31159 }
31160 }
31161 },
31162 "leaf" : 1,
31163 "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
31164 "text" : "move_volume"
1c532546
TL
31165 },
31166 {
31167 "info" : {
31168 "GET" : {
e9cd3bd4 31169 "allowtoken" : 1,
1c532546
TL
31170 "description" : "Get container configuration, including pending changes.",
31171 "method" : "GET",
31172 "name" : "vm_pending",
31173 "parameters" : {
31174 "additionalProperties" : 0,
31175 "properties" : {
31176 "node" : {
31177 "description" : "The cluster node name.",
31178 "format" : "pve-node",
31179 "type" : "string",
31180 "typetext" : "<string>"
31181 },
31182 "vmid" : {
31183 "description" : "The (unique) ID of the VM.",
31184 "format" : "pve-vmid",
31185 "minimum" : 1,
31186 "type" : "integer",
31187 "typetext" : "<integer> (1 - N)"
31188 }
31189 }
31190 },
31191 "permissions" : {
31192 "check" : [
31193 "perm",
31194 "/vms/{vmid}",
31195 [
31196 "VM.Audit"
31197 ]
31198 ]
31199 },
31200 "proxyto" : "node",
31201 "returns" : {
31202 "items" : {
31203 "properties" : {
31204 "delete" : {
31205 "description" : "Indicates a pending delete request if present and not 0.",
31206 "maximum" : 2,
31207 "minimum" : 0,
31208 "optional" : 1,
31209 "type" : "integer"
31210 },
31211 "key" : {
31212 "description" : "Configuration option name.",
31213 "type" : "string"
31214 },
31215 "pending" : {
31216 "description" : "Pending value.",
31217 "optional" : 1,
31218 "type" : "string"
31219 },
31220 "value" : {
31221 "description" : "Current value.",
31222 "optional" : 1,
31223 "type" : "string"
31224 }
31225 },
31226 "type" : "object"
31227 },
31228 "type" : "array"
31229 }
31230 }
31231 },
31232 "leaf" : 1,
31233 "path" : "/nodes/{node}/lxc/{vmid}/pending",
31234 "text" : "pending"
4d47f125
TL
31235 }
31236 ],
31237 "info" : {
31238 "DELETE" : {
e9cd3bd4 31239 "allowtoken" : 1,
4d47f125
TL
31240 "description" : "Destroy the container (also delete all uses files).",
31241 "method" : "DELETE",
31242 "name" : "destroy_vm",
31243 "parameters" : {
31244 "additionalProperties" : 0,
31245 "properties" : {
d2656385
TL
31246 "destroy-unreferenced-disks" : {
31247 "description" : "If set, destroy additionally all disks with the VMID from all enabled storages which are not referenced in the config.",
31248 "optional" : 1,
31249 "type" : "boolean",
31250 "typetext" : "<boolean>"
31251 },
c5aa7e14
TL
31252 "force" : {
31253 "default" : 0,
31254 "description" : "Force destroy, even if running.",
31255 "optional" : 1,
31256 "type" : "boolean",
31257 "typetext" : "<boolean>"
31258 },
4d47f125
TL
31259 "node" : {
31260 "description" : "The cluster node name.",
31261 "format" : "pve-node",
31262 "type" : "string",
31263 "typetext" : "<string>"
31264 },
1c532546 31265 "purge" : {
c5aa7e14
TL
31266 "default" : 0,
31267 "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
31268 "optional" : 1,
31269 "type" : "boolean",
31270 "typetext" : "<boolean>"
31271 },
4d47f125
TL
31272 "vmid" : {
31273 "description" : "The (unique) ID of the VM.",
31274 "format" : "pve-vmid",
31275 "minimum" : 1,
31276 "type" : "integer",
31277 "typetext" : "<integer> (1 - N)"
31278 }
31279 }
31280 },
31281 "permissions" : {
31282 "check" : [
31283 "perm",
31284 "/vms/{vmid}",
31285 [
31286 "VM.Allocate"
31287 ]
31288 ]
31289 },
31290 "protected" : 1,
31291 "proxyto" : "node",
31292 "returns" : {
31293 "type" : "string"
31294 }
31295 },
31296 "GET" : {
e9cd3bd4 31297 "allowtoken" : 1,
4d47f125
TL
31298 "description" : "Directory index",
31299 "method" : "GET",
31300 "name" : "vmdiridx",
31301 "parameters" : {
31302 "additionalProperties" : 0,
31303 "properties" : {
31304 "node" : {
31305 "description" : "The cluster node name.",
31306 "format" : "pve-node",
31307 "type" : "string",
31308 "typetext" : "<string>"
56122987 31309 },
4d47f125
TL
31310 "vmid" : {
31311 "description" : "The (unique) ID of the VM.",
31312 "format" : "pve-vmid",
31313 "minimum" : 1,
31314 "type" : "integer",
31315 "typetext" : "<integer> (1 - N)"
56122987
DM
31316 }
31317 }
31318 },
4d47f125
TL
31319 "permissions" : {
31320 "user" : "all"
31321 },
31322 "proxyto" : "node",
31323 "returns" : {
31324 "items" : {
31325 "properties" : {
31326 "subdir" : {
31327 "type" : "string"
35a75dd3
DM
31328 }
31329 },
4d47f125
TL
31330 "type" : "object"
31331 },
31332 "links" : [
31333 {
31334 "href" : "{subdir}",
31335 "rel" : "child"
35a75dd3 31336 }
4d47f125
TL
31337 ],
31338 "type" : "array"
31339 }
31340 }
31341 },
31342 "leaf" : 0,
31343 "path" : "/nodes/{node}/lxc/{vmid}",
31344 "text" : "{vmid}"
31345 }
31346 ],
31347 "info" : {
31348 "GET" : {
e9cd3bd4 31349 "allowtoken" : 1,
4d47f125
TL
31350 "description" : "LXC container index (per node).",
31351 "method" : "GET",
31352 "name" : "vmlist",
31353 "parameters" : {
31354 "additionalProperties" : 0,
31355 "properties" : {
31356 "node" : {
31357 "description" : "The cluster node name.",
31358 "format" : "pve-node",
31359 "type" : "string",
31360 "typetext" : "<string>"
31361 }
31362 }
31363 },
31364 "permissions" : {
31365 "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
31366 "user" : "all"
31367 },
31368 "protected" : 1,
31369 "proxyto" : "node",
31370 "returns" : {
31371 "items" : {
31372 "properties" : {
31373 "cpus" : {
31374 "description" : "Maximum usable CPUs.",
31375 "optional" : 1,
31376 "type" : "number"
31377 },
95895385
TL
31378 "lock" : {
31379 "description" : "The current config lock, if any.",
31380 "optional" : 1,
31381 "type" : "string"
31382 },
4d47f125
TL
31383 "maxdisk" : {
31384 "description" : "Root disk size in bytes.",
31385 "optional" : 1,
31386 "renderer" : "bytes",
31387 "type" : "integer"
31388 },
31389 "maxmem" : {
31390 "description" : "Maximum memory in bytes.",
31391 "optional" : 1,
31392 "renderer" : "bytes",
31393 "type" : "integer"
31394 },
31395 "maxswap" : {
31396 "description" : "Maximum SWAP memory in bytes.",
31397 "optional" : 1,
31398 "renderer" : "bytes",
31399 "type" : "integer"
31400 },
31401 "name" : {
31402 "description" : "Container name.",
31403 "optional" : 1,
31404 "type" : "string"
31405 },
31406 "status" : {
31407 "description" : "LXC Container status.",
31408 "enum" : [
31409 "stopped",
31410 "running"
31411 ],
31412 "type" : "string"
31413 },
5c1699e5
TL
31414 "tags" : {
31415 "description" : "The current configured tags, if any.",
31416 "optional" : 1,
31417 "type" : "string"
31418 },
4d47f125
TL
31419 "uptime" : {
31420 "description" : "Uptime.",
31421 "optional" : 1,
31422 "renderer" : "duration",
31423 "type" : "integer"
31424 },
31425 "vmid" : {
31426 "description" : "The (unique) ID of the VM.",
31427 "format" : "pve-vmid",
31428 "minimum" : 1,
31429 "type" : "integer"
35a75dd3
DM
31430 }
31431 },
4d47f125 31432 "type" : "object"
35a75dd3 31433 },
4d47f125
TL
31434 "links" : [
31435 {
31436 "href" : "{vmid}",
31437 "rel" : "child"
31438 }
31439 ],
31440 "type" : "array"
31441 }
31442 },
31443 "POST" : {
e9cd3bd4 31444 "allowtoken" : 1,
4d47f125
TL
31445 "description" : "Create or restore a container.",
31446 "method" : "POST",
31447 "name" : "create_vm",
31448 "parameters" : {
31449 "additionalProperties" : 0,
31450 "properties" : {
31451 "arch" : {
31452 "default" : "amd64",
31453 "description" : "OS architecture type.",
31454 "enum" : [
31455 "amd64",
31456 "i386",
31457 "arm64",
31458 "armhf"
31459 ],
31460 "optional" : 1,
31461 "type" : "string"
31462 },
31463 "bwlimit" : {
95895385
TL
31464 "default" : "restore limit from datacenter or storage config",
31465 "description" : "Override I/O bandwidth limit (in KiB/s).",
4d47f125
TL
31466 "minimum" : "0",
31467 "optional" : 1,
31468 "type" : "number",
31469 "typetext" : "<number> (0 - N)"
31470 },
31471 "cmode" : {
31472 "default" : "tty",
31473 "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).",
31474 "enum" : [
31475 "shell",
31476 "console",
31477 "tty"
31478 ],
31479 "optional" : 1,
31480 "type" : "string"
31481 },
31482 "console" : {
31483 "default" : 1,
31484 "description" : "Attach a console device (/dev/console) to the container.",
31485 "optional" : 1,
31486 "type" : "boolean",
31487 "typetext" : "<boolean>"
31488 },
31489 "cores" : {
31490 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 31491 "maximum" : 8192,
4d47f125
TL
31492 "minimum" : 1,
31493 "optional" : 1,
31494 "type" : "integer",
4772952b 31495 "typetext" : "<integer> (1 - 8192)"
4d47f125
TL
31496 },
31497 "cpulimit" : {
31498 "default" : 0,
31499 "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 31500 "maximum" : 8192,
4d47f125
TL
31501 "minimum" : 0,
31502 "optional" : 1,
31503 "type" : "number",
4772952b 31504 "typetext" : "<number> (0 - 8192)"
4d47f125
TL
31505 },
31506 "cpuunits" : {
31507 "default" : 1024,
31508 "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 the weights of all the other running VMs.\n\nNOTE: You can disable fair-scheduler configuration by setting this to 0.",
31509 "maximum" : 500000,
31510 "minimum" : 0,
31511 "optional" : 1,
31512 "type" : "integer",
31513 "typetext" : "<integer> (0 - 500000)"
31514 },
739d4d64
TL
31515 "debug" : {
31516 "default" : 0,
31517 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
31518 "optional" : 1,
31519 "type" : "boolean",
31520 "typetext" : "<boolean>"
31521 },
4d47f125 31522 "description" : {
8f4d9c87
TL
31523 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
31524 "maxLength" : 8192,
4d47f125
TL
31525 "optional" : 1,
31526 "type" : "string",
31527 "typetext" : "<string>"
31528 },
31529 "features" : {
31530 "description" : "Allow containers access to advanced features.",
31531 "format" : {
c5aa7e14
TL
31532 "force_rw_sys" : {
31533 "default" : 0,
31534 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
31535 "optional" : 1,
31536 "type" : "boolean"
31537 },
e2d681b3
TL
31538 "fuse" : {
31539 "default" : 0,
31540 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
31541 "optional" : 1,
31542 "type" : "boolean"
31543 },
4d47f125
TL
31544 "keyctl" : {
31545 "default" : 0,
31546 "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.",
31547 "optional" : 1,
31548 "type" : "boolean"
7aacca6f 31549 },
c5aa7e14
TL
31550 "mknod" : {
31551 "default" : 0,
31552 "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.",
31553 "optional" : 1,
31554 "type" : "boolean"
31555 },
4d47f125
TL
31556 "mount" : {
31557 "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.",
31558 "format_description" : "fstype;fstype;...",
31559 "optional" : 1,
95895385 31560 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125 31561 "type" : "string"
56122987 31562 },
4d47f125
TL
31563 "nesting" : {
31564 "default" : 0,
31565 "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.",
31566 "optional" : 1,
31567 "type" : "boolean"
44660702 31568 }
4d47f125
TL
31569 },
31570 "optional" : 1,
31571 "type" : "string",
c5aa7e14 31572 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
56122987 31573 },
4d47f125
TL
31574 "force" : {
31575 "description" : "Allow to overwrite existing container.",
31576 "optional" : 1,
31577 "type" : "boolean",
31578 "typetext" : "<boolean>"
31579 },
5f26e15b
TL
31580 "hookscript" : {
31581 "description" : "Script that will be exectued during various steps in the containers lifetime.",
31582 "format" : "pve-volume-id",
31583 "optional" : 1,
31584 "type" : "string",
31585 "typetext" : "<string>"
31586 },
4d47f125
TL
31587 "hostname" : {
31588 "description" : "Set a host name for the container.",
31589 "format" : "dns-name",
31590 "maxLength" : 255,
31591 "optional" : 1,
31592 "type" : "string",
31593 "typetext" : "<string>"
31594 },
31595 "ignore-unpack-errors" : {
31596 "description" : "Ignore errors when extracting the template.",
31597 "optional" : 1,
31598 "type" : "boolean",
31599 "typetext" : "<boolean>"
31600 },
31601 "lock" : {
31602 "description" : "Lock/unlock the VM.",
31603 "enum" : [
31604 "backup",
bb4c8cf8 31605 "create",
1c532546 31606 "destroyed",
4d47f125 31607 "disk",
bb4c8cf8 31608 "fstrim",
4d47f125
TL
31609 "migrate",
31610 "mounted",
31611 "rollback",
31612 "snapshot",
31613 "snapshot-delete"
31614 ],
31615 "optional" : 1,
31616 "type" : "string"
31617 },
31618 "memory" : {
31619 "default" : 512,
31620 "description" : "Amount of RAM for the VM in MB.",
31621 "minimum" : 16,
31622 "optional" : 1,
31623 "type" : "integer",
31624 "typetext" : "<integer> (16 - N)"
31625 },
31626 "mp[n]" : {
d2656385 31627 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
31628 "format" : {
31629 "acl" : {
31630 "description" : "Explicitly enable or disable ACL support.",
31631 "optional" : 1,
31632 "type" : "boolean"
56122987 31633 },
4d47f125
TL
31634 "backup" : {
31635 "description" : "Whether to include the mount point in backups.",
31636 "optional" : 1,
31637 "type" : "boolean",
31638 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
56122987 31639 },
7cbed89a
TL
31640 "mountoptions" : {
31641 "description" : "Extra mount options for rootfs/mps.",
31642 "format_description" : "opt[;opt...]",
31643 "optional" : 1,
c30bb419 31644 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
31645 "type" : "string"
31646 },
4d47f125
TL
31647 "mp" : {
31648 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
31649 "format" : "pve-lxc-mp-string",
31650 "format_description" : "Path",
31651 "type" : "string",
31652 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
7aacca6f 31653 },
4d47f125
TL
31654 "quota" : {
31655 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
31656 "optional" : 1,
31657 "type" : "boolean"
31658 },
31659 "replicate" : {
31660 "default" : 1,
31661 "description" : "Will include this volume to a storage replica job.",
31662 "optional" : 1,
31663 "type" : "boolean"
31664 },
31665 "ro" : {
31666 "description" : "Read-only mount point",
31667 "optional" : 1,
31668 "type" : "boolean"
31669 },
31670 "shared" : {
31671 "default" : 0,
31672 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
31673 "optional" : 1,
31674 "type" : "boolean",
31675 "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 31676 },
4d47f125
TL
31677 "size" : {
31678 "description" : "Volume size (read only value).",
31679 "format" : "disk-size",
31680 "format_description" : "DiskSize",
31681 "optional" : 1,
31682 "type" : "string"
31683 },
31684 "volume" : {
31685 "default_key" : 1,
31686 "description" : "Volume, device or directory to mount into the container.",
31687 "format" : "pve-lxc-mp-string",
31688 "format_description" : "volume",
44660702
DM
31689 "type" : "string"
31690 }
4d47f125
TL
31691 },
31692 "optional" : 1,
31693 "type" : "string",
7cbed89a 31694 "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 31695 },
4d47f125
TL
31696 "nameserver" : {
31697 "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 31698 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
31699 "optional" : 1,
31700 "type" : "string",
31701 "typetext" : "<string>"
31702 },
31703 "net[n]" : {
31704 "description" : "Specifies network interfaces for the container.",
31705 "format" : {
31706 "bridge" : {
31707 "description" : "Bridge to attach the network device to.",
31708 "format_description" : "bridge",
31709 "optional" : 1,
31710 "pattern" : "[-_.\\w\\d]+",
31711 "type" : "string"
56122987 31712 },
4d47f125
TL
31713 "firewall" : {
31714 "description" : "Controls whether this interface's firewall rules should be used.",
31715 "optional" : 1,
31716 "type" : "boolean"
56122987 31717 },
4d47f125
TL
31718 "gw" : {
31719 "description" : "Default gateway for IPv4 traffic.",
31720 "format" : "ipv4",
31721 "format_description" : "GatewayIPv4",
31722 "optional" : 1,
31723 "type" : "string"
31724 },
31725 "gw6" : {
31726 "description" : "Default gateway for IPv6 traffic.",
31727 "format" : "ipv6",
31728 "format_description" : "GatewayIPv6",
31729 "optional" : 1,
31730 "type" : "string"
31731 },
31732 "hwaddr" : {
31733 "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 31734 "format" : "mac-addr",
4d47f125
TL
31735 "format_description" : "XX:XX:XX:XX:XX:XX",
31736 "optional" : 1,
95895385
TL
31737 "type" : "string",
31738 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
31739 },
31740 "ip" : {
31741 "description" : "IPv4 address in CIDR format.",
31742 "format" : "pve-ipv4-config",
31743 "format_description" : "(IPv4/CIDR|dhcp|manual)",
31744 "optional" : 1,
31745 "type" : "string"
31746 },
31747 "ip6" : {
31748 "description" : "IPv6 address in CIDR format.",
31749 "format" : "pve-ipv6-config",
31750 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
31751 "optional" : 1,
31752 "type" : "string"
31753 },
31754 "mtu" : {
31755 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
31756 "minimum" : 64,
31757 "optional" : 1,
31758 "type" : "integer"
31759 },
31760 "name" : {
31761 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
31762 "format_description" : "string",
31763 "pattern" : "[-_.\\w\\d]+",
31764 "type" : "string"
31765 },
31766 "rate" : {
31767 "description" : "Apply rate limiting to the interface",
31768 "format_description" : "mbps",
31769 "optional" : 1,
31770 "type" : "number"
31771 },
31772 "tag" : {
31773 "description" : "VLAN tag for this interface.",
31774 "maximum" : 4094,
31775 "minimum" : 1,
31776 "optional" : 1,
31777 "type" : "integer"
31778 },
31779 "trunks" : {
31780 "description" : "VLAN ids to pass through the interface",
31781 "format_description" : "vlanid[;vlanid...]",
31782 "optional" : 1,
31783 "pattern" : "(?^:\\d+(?:;\\d+)*)",
31784 "type" : "string"
31785 },
31786 "type" : {
31787 "description" : "Network interface type.",
31788 "enum" : [
31789 "veth"
31790 ],
31791 "optional" : 1,
31792 "type" : "string"
7aacca6f 31793 }
4d47f125
TL
31794 },
31795 "optional" : 1,
31796 "type" : "string",
31797 "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)>] [,mtu=<integer>] [,rate=<mbps>] [,tag=<integer>] [,trunks=<vlanid[;vlanid...]>] [,type=<veth>]"
56122987 31798 },
4d47f125
TL
31799 "node" : {
31800 "description" : "The cluster node name.",
31801 "format" : "pve-node",
31802 "type" : "string",
31803 "typetext" : "<string>"
31804 },
31805 "onboot" : {
31806 "default" : 0,
31807 "description" : "Specifies whether a VM will be started during system bootup.",
31808 "optional" : 1,
31809 "type" : "boolean",
31810 "typetext" : "<boolean>"
31811 },
31812 "ostemplate" : {
31813 "description" : "The OS template or backup file.",
31814 "maxLength" : 255,
31815 "type" : "string",
31816 "typetext" : "<string>"
31817 },
31818 "ostype" : {
31819 "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.",
31820 "enum" : [
31821 "debian",
d2656385 31822 "devuan",
4d47f125
TL
31823 "ubuntu",
31824 "centos",
31825 "fedora",
31826 "opensuse",
31827 "archlinux",
31828 "alpine",
31829 "gentoo",
7af2edf9 31830 "nixos",
4d47f125
TL
31831 "unmanaged"
31832 ],
31833 "optional" : 1,
31834 "type" : "string"
31835 },
31836 "password" : {
31837 "description" : "Sets root password inside container.",
31838 "minLength" : 5,
31839 "optional" : 1,
31840 "type" : "string",
31841 "typetext" : "<string>"
31842 },
31843 "pool" : {
31844 "description" : "Add the VM to the specified pool.",
31845 "format" : "pve-poolid",
31846 "optional" : 1,
31847 "type" : "string",
31848 "typetext" : "<string>"
31849 },
31850 "protection" : {
31851 "default" : 0,
31852 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
31853 "optional" : 1,
31854 "type" : "boolean",
31855 "typetext" : "<boolean>"
31856 },
31857 "restore" : {
31858 "description" : "Mark this as restore task.",
31859 "optional" : 1,
31860 "type" : "boolean",
31861 "typetext" : "<boolean>"
31862 },
31863 "rootfs" : {
31864 "description" : "Use volume as container root.",
31865 "format" : {
31866 "acl" : {
31867 "description" : "Explicitly enable or disable ACL support.",
31868 "optional" : 1,
31869 "type" : "boolean"
56122987 31870 },
7cbed89a
TL
31871 "mountoptions" : {
31872 "description" : "Extra mount options for rootfs/mps.",
31873 "format_description" : "opt[;opt...]",
31874 "optional" : 1,
c30bb419 31875 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
31876 "type" : "string"
31877 },
4d47f125
TL
31878 "quota" : {
31879 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
31880 "optional" : 1,
31881 "type" : "boolean"
7aacca6f 31882 },
4d47f125
TL
31883 "replicate" : {
31884 "default" : 1,
31885 "description" : "Will include this volume to a storage replica job.",
31886 "optional" : 1,
31887 "type" : "boolean"
31888 },
31889 "ro" : {
31890 "description" : "Read-only mount point",
31891 "optional" : 1,
31892 "type" : "boolean"
31893 },
31894 "shared" : {
31895 "default" : 0,
31896 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
31897 "optional" : 1,
31898 "type" : "boolean",
31899 "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!"
31900 },
31901 "size" : {
31902 "description" : "Volume size (read only value).",
31903 "format" : "disk-size",
31904 "format_description" : "DiskSize",
31905 "optional" : 1,
31906 "type" : "string"
31907 },
31908 "volume" : {
31909 "default_key" : 1,
31910 "description" : "Volume, device or directory to mount into the container.",
31911 "format" : "pve-lxc-mp-string",
31912 "format_description" : "volume",
31913 "type" : "string"
56122987 31914 }
4d47f125
TL
31915 },
31916 "optional" : 1,
31917 "type" : "string",
7cbed89a 31918 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
56122987 31919 },
4d47f125
TL
31920 "searchdomain" : {
31921 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
31922 "format" : "dns-name-list",
31923 "optional" : 1,
31924 "type" : "string",
31925 "typetext" : "<string>"
31926 },
31927 "ssh-public-keys" : {
31928 "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
31929 "optional" : 1,
31930 "type" : "string",
31931 "typetext" : "<string>"
31932 },
31933 "start" : {
31934 "default" : 0,
31935 "description" : "Start the CT after its creation finished successfully.",
31936 "optional" : 1,
31937 "type" : "boolean",
31938 "typetext" : "<boolean>"
31939 },
31940 "startup" : {
31941 "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.",
31942 "format" : "pve-startup-order",
31943 "optional" : 1,
31944 "type" : "string",
31945 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
31946 },
31947 "storage" : {
31948 "default" : "local",
31949 "description" : "Default Storage.",
31950 "format" : "pve-storage-id",
31951 "optional" : 1,
31952 "type" : "string",
31953 "typetext" : "<string>"
31954 },
31955 "swap" : {
31956 "default" : 512,
31957 "description" : "Amount of SWAP for the VM in MB.",
31958 "minimum" : 0,
31959 "optional" : 1,
31960 "type" : "integer",
31961 "typetext" : "<integer> (0 - N)"
31962 },
5c1699e5
TL
31963 "tags" : {
31964 "description" : "Tags of the Container. This is only meta information.",
31965 "format" : "pve-tag-list",
31966 "optional" : 1,
31967 "type" : "string",
31968 "typetext" : "<string>"
31969 },
4d47f125
TL
31970 "template" : {
31971 "default" : 0,
31972 "description" : "Enable/disable Template.",
31973 "optional" : 1,
31974 "type" : "boolean",
31975 "typetext" : "<boolean>"
31976 },
04d22a9f
TL
31977 "timezone" : {
31978 "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",
31979 "format" : "pve-ct-timezone",
31980 "optional" : 1,
31981 "type" : "string",
31982 "typetext" : "<string>"
31983 },
4d47f125
TL
31984 "tty" : {
31985 "default" : 2,
31986 "description" : "Specify the number of tty available to the container",
31987 "maximum" : 6,
31988 "minimum" : 0,
31989 "optional" : 1,
31990 "type" : "integer",
31991 "typetext" : "<integer> (0 - 6)"
31992 },
95895385
TL
31993 "unique" : {
31994 "description" : "Assign a unique random ethernet address.",
31995 "optional" : 1,
31996 "requires" : "restore",
31997 "type" : "boolean",
31998 "typetext" : "<boolean>"
31999 },
4d47f125
TL
32000 "unprivileged" : {
32001 "default" : 0,
32002 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
32003 "optional" : 1,
32004 "type" : "boolean",
32005 "typetext" : "<boolean>"
32006 },
32007 "unused[n]" : {
32008 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
32009 "format" : {
32010 "volume" : {
32011 "default_key" : 1,
32012 "description" : "The volume that is not used currently.",
32013 "format" : "pve-volume-id",
32014 "format_description" : "volume",
32015 "type" : "string"
32016 }
32017 },
4d47f125
TL
32018 "optional" : 1,
32019 "type" : "string",
c5aa7e14 32020 "typetext" : "[volume=]<volume>"
4d47f125
TL
32021 },
32022 "vmid" : {
32023 "description" : "The (unique) ID of the VM.",
32024 "format" : "pve-vmid",
32025 "minimum" : 1,
32026 "type" : "integer",
32027 "typetext" : "<integer> (1 - N)"
32028 }
32029 }
32030 },
32031 "permissions" : {
32032 "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.",
32033 "user" : "all"
32034 },
32035 "protected" : 1,
32036 "proxyto" : "node",
32037 "returns" : {
32038 "type" : "string"
32039 }
32040 }
32041 },
32042 "leaf" : 0,
32043 "path" : "/nodes/{node}/lxc",
32044 "text" : "lxc"
32045 },
32046 {
32047 "children" : [
32048 {
32049 "children" : [
56122987 32050 {
4d47f125
TL
32051 "children" : [
32052 {
32053 "info" : {
32054 "POST" : {
e9cd3bd4 32055 "allowtoken" : 1,
4d47f125
TL
32056 "description" : "ceph osd in",
32057 "method" : "POST",
32058 "name" : "in",
32059 "parameters" : {
32060 "additionalProperties" : 0,
32061 "properties" : {
32062 "node" : {
32063 "description" : "The cluster node name.",
32064 "format" : "pve-node",
32065 "type" : "string",
32066 "typetext" : "<string>"
32067 },
32068 "osdid" : {
32069 "description" : "OSD ID",
32070 "type" : "integer",
32071 "typetext" : "<integer>"
32072 }
32073 }
27a7acb2 32074 },
4d47f125
TL
32075 "permissions" : {
32076 "check" : [
32077 "perm",
32078 "/",
32079 [
32080 "Sys.Modify"
32081 ]
32082 ]
44660702 32083 },
4d47f125
TL
32084 "protected" : 1,
32085 "proxyto" : "node",
32086 "returns" : {
32087 "type" : "null"
7aacca6f
DM
32088 }
32089 }
56122987 32090 },
4d47f125
TL
32091 "leaf" : 1,
32092 "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
32093 "text" : "in"
32094 },
32095 {
32096 "info" : {
32097 "POST" : {
e9cd3bd4 32098 "allowtoken" : 1,
4d47f125
TL
32099 "description" : "ceph osd out",
32100 "method" : "POST",
32101 "name" : "out",
32102 "parameters" : {
32103 "additionalProperties" : 0,
32104 "properties" : {
32105 "node" : {
32106 "description" : "The cluster node name.",
32107 "format" : "pve-node",
32108 "type" : "string",
32109 "typetext" : "<string>"
32110 },
32111 "osdid" : {
32112 "description" : "OSD ID",
32113 "type" : "integer",
32114 "typetext" : "<integer>"
32115 }
32116 }
32117 },
32118 "permissions" : {
32119 "check" : [
56122987 32120 "perm",
4d47f125 32121 "/",
56122987 32122 [
4d47f125 32123 "Sys.Modify"
56122987 32124 ]
56122987 32125 ]
44660702 32126 },
4d47f125
TL
32127 "protected" : 1,
32128 "proxyto" : "node",
32129 "returns" : {
32130 "type" : "null"
56122987 32131 }
44660702 32132 }
56122987 32133 },
4d47f125
TL
32134 "leaf" : 1,
32135 "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
32136 "text" : "out"
7cbed89a
TL
32137 },
32138 {
32139 "info" : {
32140 "POST" : {
e9cd3bd4 32141 "allowtoken" : 1,
7cbed89a
TL
32142 "description" : "Instruct the OSD to scrub.",
32143 "method" : "POST",
32144 "name" : "scrub",
32145 "parameters" : {
32146 "additionalProperties" : 0,
32147 "properties" : {
32148 "deep" : {
32149 "default" : 0,
32150 "description" : "If set, instructs a deep scrub instead of a normal one.",
32151 "optional" : 1,
32152 "type" : "boolean",
32153 "typetext" : "<boolean>"
32154 },
32155 "node" : {
32156 "description" : "The cluster node name.",
32157 "format" : "pve-node",
32158 "type" : "string",
32159 "typetext" : "<string>"
32160 },
32161 "osdid" : {
32162 "description" : "OSD ID",
32163 "type" : "integer",
32164 "typetext" : "<integer>"
32165 }
32166 }
32167 },
32168 "permissions" : {
32169 "check" : [
32170 "perm",
32171 "/",
32172 [
32173 "Sys.Modify"
32174 ]
32175 ]
32176 },
32177 "protected" : 1,
32178 "proxyto" : "node",
32179 "returns" : {
32180 "type" : "null"
32181 }
32182 }
32183 },
32184 "leaf" : 1,
32185 "path" : "/nodes/{node}/ceph/osd/{osdid}/scrub",
32186 "text" : "scrub"
56122987 32187 }
4d47f125 32188 ],
27a7acb2 32189 "info" : {
4d47f125 32190 "DELETE" : {
e9cd3bd4 32191 "allowtoken" : 1,
4d47f125
TL
32192 "description" : "Destroy OSD",
32193 "method" : "DELETE",
32194 "name" : "destroyosd",
27a7acb2
DM
32195 "parameters" : {
32196 "additionalProperties" : 0,
32197 "properties" : {
4d47f125 32198 "cleanup" : {
27a7acb2 32199 "default" : 0,
4d47f125 32200 "description" : "If set, we remove partition table entries.",
27a7acb2 32201 "optional" : 1,
4d47f125
TL
32202 "type" : "boolean",
32203 "typetext" : "<boolean>"
32204 },
32205 "node" : {
32206 "description" : "The cluster node name.",
32207 "format" : "pve-node",
32208 "type" : "string",
32209 "typetext" : "<string>"
32210 },
32211 "osdid" : {
32212 "description" : "OSD ID",
32213 "type" : "integer",
32214 "typetext" : "<integer>"
32215 }
32216 }
27a7acb2
DM
32217 },
32218 "protected" : 1,
32219 "proxyto" : "node",
32220 "returns" : {
32221 "type" : "string"
32222 }
32223 }
32224 },
4d47f125
TL
32225 "leaf" : 0,
32226 "path" : "/nodes/{node}/ceph/osd/{osdid}",
32227 "text" : "{osdid}"
56122987
DM
32228 }
32229 ],
32230 "info" : {
4d47f125 32231 "GET" : {
e9cd3bd4 32232 "allowtoken" : 1,
4d47f125
TL
32233 "description" : "Get Ceph osd list/tree.",
32234 "method" : "GET",
32235 "name" : "index",
44660702
DM
32236 "parameters" : {
32237 "additionalProperties" : 0,
32238 "properties" : {
32239 "node" : {
32240 "description" : "The cluster node name.",
32241 "format" : "pve-node",
013dc89f
DM
32242 "type" : "string",
32243 "typetext" : "<string>"
44660702
DM
32244 }
32245 }
32246 },
7aacca6f
DM
32247 "permissions" : {
32248 "check" : [
32249 "perm",
4d47f125 32250 "/",
7aacca6f 32251 [
4d47f125
TL
32252 "Sys.Audit",
32253 "Datastore.Audit"
32254 ],
32255 "any",
32256 1
32257 ]
32258 },
32259 "protected" : 1,
32260 "proxyto" : "node",
32261 "returns" : {
32262 "type" : "object"
32263 }
32264 },
32265 "POST" : {
e9cd3bd4 32266 "allowtoken" : 1,
4d47f125
TL
32267 "description" : "Create OSD",
32268 "method" : "POST",
32269 "name" : "createosd",
32270 "parameters" : {
32271 "additionalProperties" : 0,
32272 "properties" : {
739d4d64
TL
32273 "crush-device-class" : {
32274 "description" : "Set the device class of the OSD in crush.",
32275 "optional" : 1,
32276 "type" : "string",
32277 "typetext" : "<string>"
32278 },
1e3f8156
TL
32279 "db_dev" : {
32280 "description" : "Block device name for block.db.",
44660702 32281 "optional" : 1,
4bd7df8b 32282 "type" : "string",
4d47f125 32283 "typetext" : "<string>"
44660702 32284 },
0695fdaf 32285 "db_dev_size" : {
1e3f8156
TL
32286 "default" : "bluestore_block_db_size or 10% of OSD size",
32287 "description" : "Size in GiB for block.db.",
32288 "minimum" : 1,
7aacca6f 32289 "optional" : 1,
1e3f8156
TL
32290 "requires" : "db_dev",
32291 "type" : "number",
32292 "typetext" : "<number> (1 - N)",
32293 "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 32294 },
1e3f8156
TL
32295 "dev" : {
32296 "description" : "Block device name.",
4d47f125
TL
32297 "type" : "string",
32298 "typetext" : "<string>"
5d9c884c 32299 },
1e3f8156
TL
32300 "encrypted" : {
32301 "default" : 0,
32302 "description" : "Enables encryption of the OSD.",
32303 "optional" : 1,
32304 "type" : "boolean",
32305 "typetext" : "<boolean>"
32306 },
4d47f125
TL
32307 "node" : {
32308 "description" : "The cluster node name.",
32309 "format" : "pve-node",
32310 "type" : "string",
32311 "typetext" : "<string>"
7aacca6f 32312 },
4d47f125 32313 "wal_dev" : {
1e3f8156 32314 "description" : "Block device name for block.wal.",
de0983cb 32315 "optional" : 1,
4d47f125
TL
32316 "type" : "string",
32317 "typetext" : "<string>"
1e3f8156 32318 },
0695fdaf 32319 "wal_dev_size" : {
1e3f8156
TL
32320 "default" : "bluestore_block_wal_size or 1% of OSD size",
32321 "description" : "Size in GiB for block.wal.",
32322 "minimum" : 0.5,
32323 "optional" : 1,
32324 "requires" : "wal_dev",
32325 "type" : "number",
32326 "typetext" : "<number> (0.5 - N)",
32327 "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
32328 }
32329 }
32330 },
32331 "protected" : 1,
32332 "proxyto" : "node",
32333 "returns" : {
32334 "type" : "string"
32335 }
32336 }
32337 },
32338 "leaf" : 0,
32339 "path" : "/nodes/{node}/ceph/osd",
32340 "text" : "osd"
32341 },
e2d681b3
TL
32342 {
32343 "children" : [
32344 {
32345 "info" : {
32346 "DELETE" : {
e9cd3bd4 32347 "allowtoken" : 1,
e2d681b3
TL
32348 "description" : "Destroy Ceph Metadata Server",
32349 "method" : "DELETE",
32350 "name" : "destroymds",
32351 "parameters" : {
32352 "additionalProperties" : 0,
32353 "properties" : {
32354 "name" : {
32355 "description" : "The name (ID) of the mds",
32356 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
32357 "type" : "string"
32358 },
32359 "node" : {
32360 "description" : "The cluster node name.",
32361 "format" : "pve-node",
32362 "type" : "string",
32363 "typetext" : "<string>"
32364 }
32365 }
32366 },
32367 "permissions" : {
32368 "check" : [
32369 "perm",
32370 "/",
32371 [
32372 "Sys.Modify"
32373 ]
32374 ]
32375 },
32376 "protected" : 1,
32377 "proxyto" : "node",
32378 "returns" : {
32379 "type" : "string"
32380 }
32381 },
32382 "POST" : {
e9cd3bd4 32383 "allowtoken" : 1,
e2d681b3
TL
32384 "description" : "Create Ceph Metadata Server (MDS)",
32385 "method" : "POST",
32386 "name" : "createmds",
32387 "parameters" : {
32388 "additionalProperties" : 0,
32389 "properties" : {
32390 "hotstandby" : {
32391 "default" : "0",
32392 "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.",
32393 "optional" : 1,
32394 "type" : "boolean",
32395 "typetext" : "<boolean>"
32396 },
32397 "name" : {
32398 "default" : "nodename",
32399 "description" : "The ID for the mds, when omitted the same as the nodename",
c5aa7e14 32400 "maxLength" : 200,
e2d681b3
TL
32401 "optional" : 1,
32402 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
32403 "type" : "string"
32404 },
32405 "node" : {
32406 "description" : "The cluster node name.",
32407 "format" : "pve-node",
32408 "type" : "string",
32409 "typetext" : "<string>"
32410 }
32411 }
32412 },
32413 "permissions" : {
32414 "check" : [
32415 "perm",
32416 "/",
32417 [
32418 "Sys.Modify"
32419 ]
32420 ]
32421 },
32422 "protected" : 1,
32423 "proxyto" : "node",
32424 "returns" : {
32425 "type" : "string"
32426 }
32427 }
32428 },
32429 "leaf" : 1,
32430 "path" : "/nodes/{node}/ceph/mds/{name}",
32431 "text" : "{name}"
32432 }
32433 ],
32434 "info" : {
32435 "GET" : {
e9cd3bd4 32436 "allowtoken" : 1,
e2d681b3
TL
32437 "description" : "MDS directory index.",
32438 "method" : "GET",
32439 "name" : "index",
32440 "parameters" : {
32441 "additionalProperties" : 0,
32442 "properties" : {
32443 "node" : {
32444 "description" : "The cluster node name.",
32445 "format" : "pve-node",
32446 "type" : "string",
32447 "typetext" : "<string>"
32448 }
32449 }
32450 },
32451 "permissions" : {
32452 "check" : [
32453 "perm",
32454 "/",
32455 [
32456 "Sys.Audit",
32457 "Datastore.Audit"
32458 ],
32459 "any",
32460 1
32461 ]
32462 },
32463 "protected" : 1,
32464 "proxyto" : "node",
32465 "returns" : {
32466 "items" : {
32467 "properties" : {
32468 "addr" : {
32469 "optional" : 1,
32470 "type" : "string"
32471 },
32472 "host" : {
32473 "optional" : 1,
32474 "type" : "string"
32475 },
32476 "name" : {
32477 "description" : "The name (ID) for the MDS"
32478 },
32479 "rank" : {
32480 "optional" : 1,
32481 "type" : "integer"
32482 },
32483 "standby_replay" : {
32484 "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
32485 "optional" : 1,
32486 "type" : "boolean"
32487 },
32488 "state" : {
32489 "description" : "State of the MDS",
32490 "type" : "string"
32491 }
32492 },
32493 "type" : "object"
32494 },
32495 "links" : [
32496 {
32497 "href" : "{name}",
32498 "rel" : "child"
32499 }
32500 ],
32501 "type" : "array"
32502 }
32503 }
32504 },
32505 "leaf" : 0,
32506 "path" : "/nodes/{node}/ceph/mds",
32507 "text" : "mds"
32508 },
32509 {
32510 "children" : [
32511 {
32512 "info" : {
5f26e15b 32513 "DELETE" : {
e9cd3bd4 32514 "allowtoken" : 1,
5f26e15b
TL
32515 "description" : "Destroy Ceph Manager.",
32516 "method" : "DELETE",
32517 "name" : "destroymgr",
e2d681b3
TL
32518 "parameters" : {
32519 "additionalProperties" : 0,
32520 "properties" : {
5f26e15b
TL
32521 "id" : {
32522 "description" : "The ID of the manager",
32523 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
32524 "type" : "string"
e2d681b3
TL
32525 },
32526 "node" : {
32527 "description" : "The cluster node name.",
32528 "format" : "pve-node",
32529 "type" : "string",
32530 "typetext" : "<string>"
e2d681b3
TL
32531 }
32532 }
32533 },
32534 "permissions" : {
32535 "check" : [
32536 "perm",
32537 "/",
32538 [
32539 "Sys.Modify"
32540 ]
32541 ]
32542 },
32543 "protected" : 1,
32544 "proxyto" : "node",
32545 "returns" : {
32546 "type" : "string"
32547 }
1e3f8156
TL
32548 },
32549 "POST" : {
e9cd3bd4 32550 "allowtoken" : 1,
1e3f8156
TL
32551 "description" : "Create Ceph Manager",
32552 "method" : "POST",
32553 "name" : "createmgr",
32554 "parameters" : {
32555 "additionalProperties" : 0,
32556 "properties" : {
32557 "id" : {
32558 "description" : "The ID for the manager, when omitted the same as the nodename",
c5aa7e14 32559 "maxLength" : 200,
1e3f8156
TL
32560 "optional" : 1,
32561 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
32562 "type" : "string"
32563 },
32564 "node" : {
32565 "description" : "The cluster node name.",
32566 "format" : "pve-node",
32567 "type" : "string",
32568 "typetext" : "<string>"
32569 }
32570 }
32571 },
32572 "permissions" : {
32573 "check" : [
32574 "perm",
32575 "/",
32576 [
32577 "Sys.Modify"
32578 ]
32579 ]
32580 },
32581 "protected" : 1,
32582 "proxyto" : "node",
32583 "returns" : {
32584 "type" : "string"
32585 }
e2d681b3
TL
32586 }
32587 },
32588 "leaf" : 1,
5f26e15b
TL
32589 "path" : "/nodes/{node}/ceph/mgr/{id}",
32590 "text" : "{id}"
e2d681b3
TL
32591 }
32592 ],
32593 "info" : {
1e3f8156 32594 "GET" : {
e9cd3bd4 32595 "allowtoken" : 1,
1e3f8156
TL
32596 "description" : "MGR directory index.",
32597 "method" : "GET",
32598 "name" : "index",
e2d681b3
TL
32599 "parameters" : {
32600 "additionalProperties" : 0,
32601 "properties" : {
32602 "node" : {
32603 "description" : "The cluster node name.",
32604 "format" : "pve-node",
32605 "type" : "string",
32606 "typetext" : "<string>"
32607 }
32608 }
32609 },
32610 "permissions" : {
32611 "check" : [
32612 "perm",
32613 "/",
32614 [
1e3f8156
TL
32615 "Sys.Audit",
32616 "Datastore.Audit"
32617 ],
32618 "any",
32619 1
e2d681b3
TL
32620 ]
32621 },
32622 "protected" : 1,
5f26e15b 32623 "proxyto" : "node",
e2d681b3 32624 "returns" : {
1e3f8156
TL
32625 "items" : {
32626 "properties" : {
32627 "addr" : {
32628 "optional" : 1,
32629 "type" : "string"
32630 },
32631 "host" : {
32632 "optional" : 1,
32633 "type" : "string"
32634 },
32635 "name" : {
32636 "description" : "The name (ID) for the MGR"
32637 },
32638 "state" : {
32639 "description" : "State of the MGR",
32640 "type" : "string"
32641 }
32642 },
32643 "type" : "object"
32644 },
32645 "links" : [
32646 {
32647 "href" : "{name}",
32648 "rel" : "child"
32649 }
32650 ],
32651 "type" : "array"
e2d681b3
TL
32652 }
32653 }
32654 },
32655 "leaf" : 0,
5f26e15b
TL
32656 "path" : "/nodes/{node}/ceph/mgr",
32657 "text" : "mgr"
e2d681b3 32658 },
4d47f125 32659 {
5f26e15b
TL
32660 "children" : [
32661 {
32662 "info" : {
32663 "DELETE" : {
e9cd3bd4 32664 "allowtoken" : 1,
5f26e15b
TL
32665 "description" : "Destroy Ceph Monitor and Manager.",
32666 "method" : "DELETE",
32667 "name" : "destroymon",
32668 "parameters" : {
32669 "additionalProperties" : 0,
32670 "properties" : {
1e3f8156
TL
32671 "monid" : {
32672 "description" : "Monitor ID",
32673 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
32674 "type" : "string"
32675 },
32676 "node" : {
32677 "description" : "The cluster node name.",
32678 "format" : "pve-node",
32679 "type" : "string",
32680 "typetext" : "<string>"
32681 }
32682 }
32683 },
32684 "permissions" : {
32685 "check" : [
32686 "perm",
32687 "/",
32688 [
32689 "Sys.Modify"
32690 ]
32691 ]
32692 },
32693 "protected" : 1,
32694 "proxyto" : "node",
32695 "returns" : {
32696 "type" : "string"
32697 }
32698 },
32699 "POST" : {
e9cd3bd4 32700 "allowtoken" : 1,
1e3f8156
TL
32701 "description" : "Create Ceph Monitor and Manager",
32702 "method" : "POST",
32703 "name" : "createmon",
32704 "parameters" : {
32705 "additionalProperties" : 0,
32706 "properties" : {
32707 "mon-address" : {
0695fdaf
TL
32708 "description" : "Overwrites autodetected monitor IP address(es). Must be in the public network(s) of Ceph.",
32709 "format" : "ip-list",
5f26e15b 32710 "optional" : 1,
1e3f8156
TL
32711 "type" : "string",
32712 "typetext" : "<string>"
5f26e15b
TL
32713 },
32714 "monid" : {
1e3f8156 32715 "description" : "The ID for the monitor, when omitted the same as the nodename",
c5aa7e14 32716 "maxLength" : 200,
1e3f8156 32717 "optional" : 1,
5f26e15b
TL
32718 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
32719 "type" : "string"
32720 },
32721 "node" : {
32722 "description" : "The cluster node name.",
32723 "format" : "pve-node",
32724 "type" : "string",
32725 "typetext" : "<string>"
32726 }
32727 }
32728 },
32729 "permissions" : {
32730 "check" : [
32731 "perm",
32732 "/",
32733 [
32734 "Sys.Modify"
32735 ]
32736 ]
32737 },
32738 "protected" : 1,
32739 "proxyto" : "node",
32740 "returns" : {
7aacca6f 32741 "type" : "string"
56122987 32742 }
4d47f125 32743 }
56122987 32744 },
5f26e15b
TL
32745 "leaf" : 1,
32746 "path" : "/nodes/{node}/ceph/mon/{monid}",
32747 "text" : "{monid}"
32748 }
32749 ],
32750 "info" : {
32751 "GET" : {
e9cd3bd4 32752 "allowtoken" : 1,
5f26e15b
TL
32753 "description" : "Get Ceph monitor list.",
32754 "method" : "GET",
32755 "name" : "listmon",
32756 "parameters" : {
32757 "additionalProperties" : 0,
32758 "properties" : {
32759 "node" : {
32760 "description" : "The cluster node name.",
32761 "format" : "pve-node",
32762 "type" : "string",
32763 "typetext" : "<string>"
32764 }
32765 }
32766 },
4d47f125
TL
32767 "permissions" : {
32768 "check" : [
32769 "perm",
32770 "/",
32771 [
32772 "Sys.Audit",
32773 "Datastore.Audit"
32774 ],
32775 "any",
32776 1
32777 ]
56122987 32778 },
4d47f125
TL
32779 "protected" : 1,
32780 "proxyto" : "node",
32781 "returns" : {
32782 "items" : {
32783 "properties" : {
5f26e15b 32784 "addr" : {
1e3f8156
TL
32785 "optional" : 1,
32786 "type" : "string"
32787 },
32788 "host" : {
32789 "optional" : 1,
4d47f125
TL
32790 "type" : "string"
32791 },
5f26e15b 32792 "name" : {
4d47f125
TL
32793 "type" : "string"
32794 }
7aacca6f 32795 },
4d47f125
TL
32796 "type" : "object"
32797 },
5f26e15b
TL
32798 "links" : [
32799 {
32800 "href" : "{name}",
32801 "rel" : "child"
32802 }
32803 ],
4d47f125
TL
32804 "type" : "array"
32805 }
4d47f125
TL
32806 }
32807 },
5f26e15b
TL
32808 "leaf" : 0,
32809 "path" : "/nodes/{node}/ceph/mon",
32810 "text" : "mon"
4d47f125
TL
32811 },
32812 {
32813 "children" : [
32814 {
32815 "info" : {
5f26e15b 32816 "POST" : {
e9cd3bd4 32817 "allowtoken" : 1,
5f26e15b
TL
32818 "description" : "Create a Ceph filesystem",
32819 "method" : "POST",
32820 "name" : "createfs",
4d47f125
TL
32821 "parameters" : {
32822 "additionalProperties" : 0,
32823 "properties" : {
5f26e15b 32824 "add-storage" : {
4d47f125 32825 "default" : 0,
5f26e15b 32826 "description" : "Configure the created CephFS as storage for this cluster.",
4d47f125
TL
32827 "optional" : 1,
32828 "type" : "boolean",
32829 "typetext" : "<boolean>"
32830 },
5f26e15b
TL
32831 "name" : {
32832 "default" : "cephfs",
32833 "description" : "The ceph filesystem name.",
32834 "optional" : 1,
32835 "type" : "string",
32836 "typetext" : "<string>"
4d47f125
TL
32837 },
32838 "node" : {
32839 "description" : "The cluster node name.",
32840 "format" : "pve-node",
32841 "type" : "string",
32842 "typetext" : "<string>"
5f26e15b
TL
32843 },
32844 "pg_num" : {
32845 "default" : 128,
32846 "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
32847 "maximum" : 32768,
32848 "minimum" : 8,
32849 "optional" : 1,
32850 "type" : "integer",
32851 "typetext" : "<integer> (8 - 32768)"
4d47f125
TL
32852 }
32853 }
7aacca6f 32854 },
4d47f125
TL
32855 "permissions" : {
32856 "check" : [
32857 "perm",
32858 "/",
32859 [
32860 "Sys.Modify"
32861 ]
32862 ]
7aacca6f 32863 },
4d47f125
TL
32864 "protected" : 1,
32865 "proxyto" : "node",
32866 "returns" : {
44660702 32867 "type" : "string"
4d47f125
TL
32868 }
32869 }
32870 },
32871 "leaf" : 1,
5f26e15b
TL
32872 "path" : "/nodes/{node}/ceph/fs/{name}",
32873 "text" : "{name}"
4d47f125
TL
32874 }
32875 ],
32876 "info" : {
32877 "GET" : {
e9cd3bd4 32878 "allowtoken" : 1,
5f26e15b 32879 "description" : "Directory index.",
4d47f125 32880 "method" : "GET",
5f26e15b 32881 "name" : "index",
4d47f125
TL
32882 "parameters" : {
32883 "additionalProperties" : 0,
32884 "properties" : {
32885 "node" : {
32886 "description" : "The cluster node name.",
32887 "format" : "pve-node",
32888 "type" : "string",
32889 "typetext" : "<string>"
32890 }
32891 }
32892 },
32893 "permissions" : {
32894 "check" : [
32895 "perm",
32896 "/",
32897 [
32898 "Sys.Audit",
32899 "Datastore.Audit"
32900 ],
32901 "any",
32902 1
32903 ]
32904 },
32905 "protected" : 1,
95895385 32906 "proxyto" : "node",
4d47f125
TL
32907 "returns" : {
32908 "items" : {
32909 "properties" : {
5f26e15b
TL
32910 "data_pool" : {
32911 "description" : "The name of the data pool.",
32912 "type" : "string"
32913 },
32914 "metadata_pool" : {
32915 "description" : "The name of the metadata pool.",
4d47f125
TL
32916 "type" : "string"
32917 },
32918 "name" : {
5f26e15b 32919 "description" : "The ceph filesystem name.",
4d47f125
TL
32920 "type" : "string"
32921 }
7aacca6f 32922 },
4d47f125
TL
32923 "type" : "object"
32924 },
32925 "links" : [
32926 {
32927 "href" : "{name}",
32928 "rel" : "child"
32929 }
32930 ],
32931 "type" : "array"
32932 }
5f26e15b
TL
32933 }
32934 },
32935 "leaf" : 0,
32936 "path" : "/nodes/{node}/ceph/fs",
32937 "text" : "fs"
32938 },
d2656385
TL
32939 {
32940 "children" : [
32941 {
32942 "info" : {
32943 "DELETE" : {
32944 "allowtoken" : 1,
32945 "description" : "Destroy pool",
32946 "method" : "DELETE",
32947 "name" : "destroypool",
32948 "parameters" : {
32949 "additionalProperties" : 0,
32950 "properties" : {
32951 "force" : {
32952 "default" : 0,
32953 "description" : "If true, destroys pool even if in use",
32954 "optional" : 1,
32955 "type" : "boolean",
32956 "typetext" : "<boolean>"
32957 },
32958 "name" : {
32959 "description" : "The name of the pool. It must be unique.",
32960 "type" : "string",
32961 "typetext" : "<string>"
32962 },
32963 "node" : {
32964 "description" : "The cluster node name.",
32965 "format" : "pve-node",
32966 "type" : "string",
32967 "typetext" : "<string>"
32968 },
7af2edf9
TL
32969 "remove_ecprofile" : {
32970 "default" : 1,
32971 "description" : "Remove the erasure code profile. Defaults to true, if applicable.",
32972 "optional" : 1,
32973 "type" : "boolean",
32974 "typetext" : "<boolean>"
32975 },
d2656385
TL
32976 "remove_storages" : {
32977 "default" : 0,
32978 "description" : "Remove all pveceph-managed storages configured for this pool",
32979 "optional" : 1,
32980 "type" : "boolean",
32981 "typetext" : "<boolean>"
32982 }
32983 }
32984 },
32985 "permissions" : {
32986 "check" : [
32987 "perm",
32988 "/",
32989 [
32990 "Sys.Modify"
32991 ]
32992 ]
32993 },
32994 "protected" : 1,
32995 "proxyto" : "node",
32996 "returns" : {
32997 "type" : "string"
32998 }
32999 },
33000 "GET" : {
33001 "allowtoken" : 1,
33002 "description" : "List pool settings.",
33003 "method" : "GET",
33004 "name" : "getpool",
33005 "parameters" : {
33006 "additionalProperties" : 0,
33007 "properties" : {
33008 "name" : {
33009 "description" : "The name of the pool. It must be unique.",
33010 "type" : "string",
33011 "typetext" : "<string>"
33012 },
33013 "node" : {
33014 "description" : "The cluster node name.",
33015 "format" : "pve-node",
33016 "type" : "string",
33017 "typetext" : "<string>"
33018 },
33019 "verbose" : {
33020 "default" : 0,
33021 "description" : "If enabled, will display additional data(eg. statistics).",
33022 "optional" : 1,
33023 "type" : "boolean",
33024 "typetext" : "<boolean>"
33025 }
33026 }
33027 },
33028 "permissions" : {
33029 "check" : [
33030 "perm",
33031 "/",
33032 [
33033 "Sys.Audit",
33034 "Datastore.Audit"
33035 ],
33036 "any",
33037 1
33038 ]
33039 },
33040 "protected" : 1,
33041 "proxyto" : "node",
33042 "returns" : {
33043 "properties" : {
33044 "application" : {
33045 "default" : "rbd",
33046 "description" : "The application of the pool.",
33047 "enum" : [
33048 "rbd",
33049 "cephfs",
33050 "rgw"
33051 ],
33052 "optional" : 1,
33053 "title" : "Application",
33054 "type" : "string"
33055 },
33056 "application_list" : {
33057 "optional" : 1,
33058 "title" : "Application",
33059 "type" : "array"
33060 },
33061 "autoscale_status" : {
33062 "optional" : 1,
33063 "title" : "Autoscale Status",
33064 "type" : "object"
33065 },
33066 "crush_rule" : {
33067 "description" : "The rule to use for mapping object placement in the cluster.",
33068 "optional" : 1,
33069 "title" : "Crush Rule Name",
33070 "type" : "string"
33071 },
33072 "fast_read" : {
33073 "title" : "Fast Read",
33074 "type" : "boolean"
33075 },
33076 "hashpspool" : {
33077 "title" : "hashpspool",
33078 "type" : "boolean"
33079 },
33080 "id" : {
33081 "title" : "ID",
33082 "type" : "integer"
33083 },
33084 "min_size" : {
33085 "default" : 2,
33086 "description" : "Minimum number of replicas per object",
33087 "maximum" : 7,
33088 "minimum" : 1,
33089 "optional" : 1,
33090 "title" : "Min Size",
33091 "type" : "integer"
33092 },
33093 "name" : {
33094 "description" : "The name of the pool. It must be unique.",
33095 "title" : "Name",
33096 "type" : "string"
33097 },
33098 "nodeep-scrub" : {
33099 "title" : "nodeep-scrub",
33100 "type" : "boolean"
33101 },
33102 "nodelete" : {
33103 "title" : "nodelete",
33104 "type" : "boolean"
33105 },
33106 "nopgchange" : {
33107 "title" : "nopgchange",
33108 "type" : "boolean"
33109 },
33110 "noscrub" : {
33111 "title" : "noscrub",
33112 "type" : "boolean"
33113 },
33114 "nosizechange" : {
33115 "title" : "nosizechange",
33116 "type" : "boolean"
33117 },
33118 "pg_autoscale_mode" : {
33119 "default" : "warn",
33120 "description" : "The automatic PG scaling mode of the pool.",
33121 "enum" : [
33122 "on",
33123 "off",
33124 "warn"
33125 ],
33126 "optional" : 1,
33127 "title" : "PG Autoscale Mode",
33128 "type" : "string"
33129 },
33130 "pg_num" : {
33131 "default" : 128,
33132 "description" : "Number of placement groups.",
33133 "maximum" : 32768,
33134 "minimum" : 1,
33135 "optional" : 1,
33136 "title" : "PG Num",
33137 "type" : "integer"
33138 },
33139 "pg_num_min" : {
33140 "description" : "Minimal number of placement groups.",
33141 "maximum" : 32768,
33142 "optional" : 1,
33143 "title" : "min. PG Num",
33144 "type" : "integer"
33145 },
33146 "pgp_num" : {
33147 "title" : "PGP num",
33148 "type" : "integer"
33149 },
33150 "size" : {
33151 "default" : 3,
33152 "description" : "Number of replicas per object",
33153 "maximum" : 7,
33154 "minimum" : 1,
33155 "optional" : 1,
33156 "title" : "Size",
33157 "type" : "integer"
33158 },
33159 "statistics" : {
33160 "optional" : 1,
33161 "title" : "Statistics",
33162 "type" : "object"
33163 },
33164 "target_size" : {
33165 "description" : "The estimated target size of the pool for the PG autoscaler.",
33166 "optional" : 1,
33167 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
33168 "title" : "PG Autoscale Target Size",
33169 "type" : "string"
33170 },
33171 "target_size_ratio" : {
33172 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
33173 "optional" : 1,
33174 "title" : "PG Autoscale Target Ratio",
33175 "type" : "number"
33176 },
33177 "use_gmt_hitset" : {
33178 "title" : "use_gmt_hitset",
33179 "type" : "boolean"
33180 },
33181 "write_fadvise_dontneed" : {
33182 "title" : "write_fadvise_dontneed",
33183 "type" : "boolean"
33184 }
33185 },
33186 "type" : "object"
33187 }
33188 },
33189 "PUT" : {
33190 "allowtoken" : 1,
33191 "description" : "Change POOL settings",
33192 "method" : "PUT",
33193 "name" : "setpool",
33194 "parameters" : {
33195 "additionalProperties" : 0,
33196 "properties" : {
33197 "application" : {
33198 "description" : "The application of the pool.",
33199 "enum" : [
33200 "rbd",
33201 "cephfs",
33202 "rgw"
33203 ],
33204 "optional" : 1,
33205 "title" : "Application",
33206 "type" : "string"
33207 },
33208 "crush_rule" : {
33209 "description" : "The rule to use for mapping object placement in the cluster.",
33210 "optional" : 1,
33211 "title" : "Crush Rule Name",
33212 "type" : "string",
33213 "typetext" : "<string>"
33214 },
33215 "min_size" : {
33216 "description" : "Minimum number of replicas per object",
33217 "maximum" : 7,
33218 "minimum" : 1,
33219 "optional" : 1,
33220 "title" : "Min Size",
33221 "type" : "integer",
33222 "typetext" : "<integer> (1 - 7)"
33223 },
33224 "name" : {
33225 "description" : "The name of the pool. It must be unique.",
33226 "title" : "Name",
33227 "type" : "string",
33228 "typetext" : "<string>"
33229 },
33230 "node" : {
33231 "description" : "The cluster node name.",
33232 "format" : "pve-node",
33233 "type" : "string",
33234 "typetext" : "<string>"
33235 },
33236 "pg_autoscale_mode" : {
33237 "description" : "The automatic PG scaling mode of the pool.",
33238 "enum" : [
33239 "on",
33240 "off",
33241 "warn"
33242 ],
33243 "optional" : 1,
33244 "title" : "PG Autoscale Mode",
33245 "type" : "string"
33246 },
33247 "pg_num" : {
33248 "description" : "Number of placement groups.",
33249 "maximum" : 32768,
33250 "minimum" : 1,
33251 "optional" : 1,
33252 "title" : "PG Num",
33253 "type" : "integer",
33254 "typetext" : "<integer> (1 - 32768)"
33255 },
33256 "pg_num_min" : {
33257 "description" : "Minimal number of placement groups.",
33258 "maximum" : 32768,
33259 "optional" : 1,
33260 "title" : "min. PG Num",
33261 "type" : "integer",
33262 "typetext" : "<integer> (-N - 32768)"
33263 },
33264 "size" : {
33265 "description" : "Number of replicas per object",
33266 "maximum" : 7,
33267 "minimum" : 1,
33268 "optional" : 1,
33269 "title" : "Size",
33270 "type" : "integer",
33271 "typetext" : "<integer> (1 - 7)"
33272 },
33273 "target_size" : {
33274 "description" : "The estimated target size of the pool for the PG autoscaler.",
33275 "optional" : 1,
33276 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
33277 "title" : "PG Autoscale Target Size",
33278 "type" : "string"
33279 },
33280 "target_size_ratio" : {
33281 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
33282 "optional" : 1,
33283 "title" : "PG Autoscale Target Ratio",
33284 "type" : "number",
33285 "typetext" : "<number>"
33286 }
33287 }
33288 },
33289 "permissions" : {
33290 "check" : [
33291 "perm",
33292 "/",
33293 [
33294 "Sys.Modify"
33295 ]
33296 ]
33297 },
33298 "protected" : 1,
33299 "proxyto" : "node",
33300 "returns" : {
33301 "type" : "string"
33302 }
33303 }
33304 },
33305 "leaf" : 1,
33306 "path" : "/nodes/{node}/ceph/pools/{name}",
33307 "text" : "{name}"
33308 }
33309 ],
33310 "info" : {
33311 "GET" : {
33312 "allowtoken" : 1,
33313 "description" : "List all pools.",
33314 "method" : "GET",
33315 "name" : "lspools",
33316 "parameters" : {
33317 "additionalProperties" : 0,
33318 "properties" : {
33319 "node" : {
33320 "description" : "The cluster node name.",
33321 "format" : "pve-node",
33322 "type" : "string",
33323 "typetext" : "<string>"
33324 }
33325 }
33326 },
33327 "permissions" : {
33328 "check" : [
33329 "perm",
33330 "/",
33331 [
33332 "Sys.Audit",
33333 "Datastore.Audit"
33334 ],
33335 "any",
33336 1
33337 ]
33338 },
33339 "protected" : 1,
33340 "proxyto" : "node",
33341 "returns" : {
33342 "items" : {
33343 "properties" : {
33344 "autoscale_status" : {
33345 "optional" : 1,
33346 "title" : "Autoscale Status",
33347 "type" : "object"
33348 },
33349 "bytes_used" : {
33350 "title" : "Used",
33351 "type" : "integer"
33352 },
33353 "crush_rule" : {
33354 "title" : "Crush Rule",
33355 "type" : "integer"
33356 },
33357 "crush_rule_name" : {
33358 "title" : "Crush Rule Name",
33359 "type" : "string"
33360 },
33361 "min_size" : {
33362 "title" : "Min Size",
33363 "type" : "integer"
33364 },
33365 "percent_used" : {
33366 "title" : "%-Used",
33367 "type" : "number"
33368 },
33369 "pg_autoscale_mode" : {
33370 "optional" : 1,
33371 "title" : "PG Autoscale Mode",
33372 "type" : "string"
33373 },
33374 "pg_num" : {
33375 "title" : "PG Num",
33376 "type" : "integer"
33377 },
33378 "pg_num_final" : {
33379 "optional" : 1,
33380 "title" : "Optimal PG Num",
33381 "type" : "integer"
33382 },
33383 "pg_num_min" : {
33384 "optional" : 1,
33385 "title" : "min. PG Num",
33386 "type" : "integer"
33387 },
33388 "pool" : {
33389 "title" : "ID",
33390 "type" : "integer"
33391 },
33392 "pool_name" : {
33393 "title" : "Name",
33394 "type" : "string"
33395 },
33396 "size" : {
33397 "title" : "Size",
33398 "type" : "integer"
33399 },
33400 "target_size" : {
33401 "optional" : 1,
33402 "title" : "PG Autoscale Target Size",
33403 "type" : "integer"
33404 },
33405 "target_size_ratio" : {
33406 "optional" : 1,
33407 "title" : "PG Autoscale Target Ratio",
33408 "type" : "number"
e6d66c2f
TL
33409 },
33410 "type" : {
33411 "enum" : [
33412 "replicated",
33413 "erasure",
33414 "unknown"
33415 ],
33416 "title" : "Type",
33417 "type" : "string"
d2656385
TL
33418 }
33419 },
33420 "type" : "object"
33421 },
33422 "links" : [
33423 {
33424 "href" : "{pool_name}",
33425 "rel" : "child"
33426 }
33427 ],
33428 "type" : "array"
33429 }
33430 },
33431 "POST" : {
33432 "allowtoken" : 1,
7af2edf9 33433 "description" : "Create Ceph pool",
d2656385
TL
33434 "method" : "POST",
33435 "name" : "createpool",
33436 "parameters" : {
33437 "additionalProperties" : 0,
33438 "properties" : {
33439 "add_storages" : {
e6d66c2f
TL
33440 "default" : "0; for erasure coded pools: 1",
33441 "description" : "Configure VM and CT storage using the new pool.",
d2656385
TL
33442 "optional" : 1,
33443 "type" : "boolean",
33444 "typetext" : "<boolean>"
33445 },
33446 "application" : {
33447 "default" : "rbd",
33448 "description" : "The application of the pool.",
33449 "enum" : [
33450 "rbd",
33451 "cephfs",
33452 "rgw"
33453 ],
33454 "optional" : 1,
33455 "title" : "Application",
33456 "type" : "string"
33457 },
33458 "crush_rule" : {
33459 "description" : "The rule to use for mapping object placement in the cluster.",
33460 "optional" : 1,
33461 "title" : "Crush Rule Name",
33462 "type" : "string",
33463 "typetext" : "<string>"
33464 },
7af2edf9 33465 "erasure-coding" : {
e6d66c2f 33466 "description" : "Create an erasure coded pool for RBD with an accompaning replicated pool for metadata storage.",
7af2edf9
TL
33467 "format" : {
33468 "device-class" : {
33469 "description" : "CRUSH device class. Will create an erasure coded pool plus a replicated pool for metadata.",
33470 "format_description" : "class",
33471 "optional" : 1,
33472 "type" : "string"
33473 },
33474 "failure-domain" : {
e6d66c2f 33475 "default" : "host",
7af2edf9
TL
33476 "description" : "CRUSH failure domain. Default is 'host'. Will create an erasure coded pool plus a replicated pool for metadata.",
33477 "format_description" : "domain",
33478 "optional" : 1,
33479 "type" : "string"
33480 },
33481 "k" : {
33482 "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
e6d66c2f 33483 "minimum" : 2,
7af2edf9
TL
33484 "type" : "integer"
33485 },
33486 "m" : {
33487 "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
33488 "minimum" : 1,
33489 "type" : "integer"
33490 },
33491 "profile" : {
33492 "description" : "Override the erasure code (EC) profile to use. Will create an erasure coded pool plus a replicated pool for metadata.",
33493 "format_description" : "profile",
33494 "optional" : 1,
33495 "type" : "string"
33496 }
33497 },
33498 "optional" : 1,
33499 "type" : "string",
33500 "typetext" : "k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]"
33501 },
d2656385
TL
33502 "min_size" : {
33503 "default" : 2,
33504 "description" : "Minimum number of replicas per object",
33505 "maximum" : 7,
33506 "minimum" : 1,
33507 "optional" : 1,
33508 "title" : "Min Size",
33509 "type" : "integer",
33510 "typetext" : "<integer> (1 - 7)"
33511 },
33512 "name" : {
33513 "description" : "The name of the pool. It must be unique.",
33514 "title" : "Name",
33515 "type" : "string",
33516 "typetext" : "<string>"
33517 },
33518 "node" : {
33519 "description" : "The cluster node name.",
33520 "format" : "pve-node",
33521 "type" : "string",
33522 "typetext" : "<string>"
33523 },
33524 "pg_autoscale_mode" : {
33525 "default" : "warn",
33526 "description" : "The automatic PG scaling mode of the pool.",
33527 "enum" : [
33528 "on",
33529 "off",
33530 "warn"
33531 ],
33532 "optional" : 1,
33533 "title" : "PG Autoscale Mode",
33534 "type" : "string"
33535 },
33536 "pg_num" : {
33537 "default" : 128,
33538 "description" : "Number of placement groups.",
33539 "maximum" : 32768,
33540 "minimum" : 1,
33541 "optional" : 1,
33542 "title" : "PG Num",
33543 "type" : "integer",
33544 "typetext" : "<integer> (1 - 32768)"
33545 },
33546 "pg_num_min" : {
33547 "description" : "Minimal number of placement groups.",
33548 "maximum" : 32768,
33549 "optional" : 1,
33550 "title" : "min. PG Num",
33551 "type" : "integer",
33552 "typetext" : "<integer> (-N - 32768)"
33553 },
33554 "size" : {
33555 "default" : 3,
33556 "description" : "Number of replicas per object",
33557 "maximum" : 7,
33558 "minimum" : 1,
33559 "optional" : 1,
33560 "title" : "Size",
33561 "type" : "integer",
33562 "typetext" : "<integer> (1 - 7)"
33563 },
33564 "target_size" : {
33565 "description" : "The estimated target size of the pool for the PG autoscaler.",
33566 "optional" : 1,
33567 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
33568 "title" : "PG Autoscale Target Size",
33569 "type" : "string"
33570 },
33571 "target_size_ratio" : {
33572 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
33573 "optional" : 1,
33574 "title" : "PG Autoscale Target Ratio",
33575 "type" : "number",
33576 "typetext" : "<number>"
33577 }
33578 }
33579 },
33580 "permissions" : {
33581 "check" : [
33582 "perm",
33583 "/",
33584 [
33585 "Sys.Modify"
33586 ]
33587 ]
33588 },
33589 "protected" : 1,
33590 "proxyto" : "node",
33591 "returns" : {
33592 "type" : "string"
33593 }
33594 }
33595 },
33596 "leaf" : 0,
33597 "path" : "/nodes/{node}/ceph/pools",
33598 "text" : "pools"
33599 },
5f26e15b
TL
33600 {
33601 "info" : {
33602 "GET" : {
e9cd3bd4 33603 "allowtoken" : 1,
5f26e15b
TL
33604 "description" : "Get Ceph configuration.",
33605 "method" : "GET",
33606 "name" : "config",
33607 "parameters" : {
33608 "additionalProperties" : 0,
33609 "properties" : {
4d47f125
TL
33610 "node" : {
33611 "description" : "The cluster node name.",
33612 "format" : "pve-node",
33613 "type" : "string",
33614 "typetext" : "<string>"
7aacca6f 33615 }
4d47f125 33616 }
44660702 33617 },
4d47f125
TL
33618 "permissions" : {
33619 "check" : [
33620 "perm",
33621 "/",
33622 [
5f26e15b
TL
33623 "Sys.Audit",
33624 "Datastore.Audit"
33625 ],
33626 "any",
33627 1
4d47f125 33628 ]
56122987 33629 },
95895385 33630 "proxyto" : "node",
4d47f125 33631 "returns" : {
7aacca6f 33632 "type" : "string"
4d47f125
TL
33633 }
33634 }
33635 },
5f26e15b
TL
33636 "leaf" : 1,
33637 "path" : "/nodes/{node}/ceph/config",
33638 "text" : "config"
4d47f125 33639 },
7cbed89a
TL
33640 {
33641 "info" : {
33642 "GET" : {
e9cd3bd4 33643 "allowtoken" : 1,
7cbed89a
TL
33644 "description" : "Get Ceph configuration database.",
33645 "method" : "GET",
33646 "name" : "configdb",
33647 "parameters" : {
33648 "additionalProperties" : 0,
33649 "properties" : {
33650 "node" : {
33651 "description" : "The cluster node name.",
33652 "format" : "pve-node",
33653 "type" : "string",
33654 "typetext" : "<string>"
33655 }
33656 }
33657 },
33658 "permissions" : {
33659 "check" : [
33660 "perm",
33661 "/",
33662 [
33663 "Sys.Audit",
33664 "Datastore.Audit"
33665 ],
33666 "any",
33667 1
33668 ]
33669 },
33670 "protected" : 1,
33671 "proxyto" : "node",
33672 "returns" : {
33673 "items" : {
33674 "properties" : {
33675 "can_update_at_runtime" : {
33676 "type" : "boolean"
33677 },
33678 "level" : {
33679 "type" : "string"
33680 },
33681 "mask" : {
33682 "type" : "string"
33683 },
33684 "name" : {
33685 "type" : "string"
33686 },
33687 "section" : {
33688 "type" : "string"
33689 },
33690 "value" : {
33691 "type" : "string"
33692 }
33693 },
33694 "type" : "object"
33695 },
33696 "type" : "array"
33697 }
33698 }
33699 },
33700 "leaf" : 1,
33701 "path" : "/nodes/{node}/ceph/configdb",
33702 "text" : "configdb"
33703 },
4d47f125
TL
33704 {
33705 "info" : {
33706 "POST" : {
e9cd3bd4 33707 "allowtoken" : 1,
4d47f125
TL
33708 "description" : "Create initial ceph default configuration and setup symlinks.",
33709 "method" : "POST",
33710 "name" : "init",
33711 "parameters" : {
33712 "additionalProperties" : 0,
33713 "properties" : {
e2d681b3
TL
33714 "cluster-network" : {
33715 "description" : "Declare a separate cluster network, OSDs will routeheartbeat, object replication and recovery traffic over it",
33716 "format" : "CIDR",
33717 "maxLength" : 128,
33718 "optional" : 1,
33719 "requires" : "network",
33720 "type" : "string",
33721 "typetext" : "<string>"
33722 },
4d47f125
TL
33723 "disable_cephx" : {
33724 "default" : 0,
1e3f8156 33725 "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 33726 "optional" : 1,
4d47f125
TL
33727 "type" : "boolean",
33728 "typetext" : "<boolean>"
56122987 33729 },
4d47f125
TL
33730 "min_size" : {
33731 "default" : 2,
33732 "description" : "Minimum number of available replicas per object to allow I/O",
33733 "maximum" : 7,
33734 "minimum" : 1,
7aacca6f 33735 "optional" : 1,
4d47f125
TL
33736 "type" : "integer",
33737 "typetext" : "<integer> (1 - 7)"
7aacca6f 33738 },
4d47f125
TL
33739 "network" : {
33740 "description" : "Use specific network for all ceph related traffic",
33741 "format" : "CIDR",
33742 "maxLength" : 128,
5d9c884c 33743 "optional" : 1,
4d47f125
TL
33744 "type" : "string",
33745 "typetext" : "<string>"
5d9c884c 33746 },
4d47f125
TL
33747 "node" : {
33748 "description" : "The cluster node name.",
33749 "format" : "pve-node",
33750 "type" : "string",
33751 "typetext" : "<string>"
7aacca6f 33752 },
4d47f125
TL
33753 "pg_bits" : {
33754 "default" : 6,
33755 "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.",
33756 "maximum" : 14,
33757 "minimum" : 6,
de0983cb 33758 "optional" : 1,
4d47f125
TL
33759 "type" : "integer",
33760 "typetext" : "<integer> (6 - 14)"
de0983cb 33761 },
44660702 33762 "size" : {
4d47f125
TL
33763 "default" : 3,
33764 "description" : "Targeted number of replicas per object",
33765 "maximum" : 7,
33766 "minimum" : 1,
7aacca6f 33767 "optional" : 1,
4d47f125
TL
33768 "type" : "integer",
33769 "typetext" : "<integer> (1 - 7)"
56122987 33770 }
4d47f125 33771 }
44660702 33772 },
4d47f125
TL
33773 "permissions" : {
33774 "check" : [
33775 "perm",
33776 "/",
33777 [
33778 "Sys.Modify"
33779 ]
33780 ]
5da3d723 33781 },
4d47f125
TL
33782 "protected" : 1,
33783 "proxyto" : "node",
33784 "returns" : {
33785 "type" : "null"
33786 }
33787 }
33788 },
33789 "leaf" : 1,
33790 "path" : "/nodes/{node}/ceph/init",
33791 "text" : "init"
33792 },
4d47f125
TL
33793 {
33794 "info" : {
33795 "POST" : {
e9cd3bd4 33796 "allowtoken" : 1,
4d47f125
TL
33797 "description" : "Stop ceph services.",
33798 "method" : "POST",
33799 "name" : "stop",
33800 "parameters" : {
33801 "additionalProperties" : 0,
33802 "properties" : {
33803 "node" : {
33804 "description" : "The cluster node name.",
33805 "format" : "pve-node",
33806 "type" : "string",
33807 "typetext" : "<string>"
33808 },
33809 "service" : {
e2d681b3 33810 "default" : "ceph.target",
4d47f125
TL
33811 "description" : "Ceph service name.",
33812 "optional" : 1,
c5aa7e14 33813 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
33814 "type" : "string"
33815 }
33816 }
7aacca6f 33817 },
4d47f125
TL
33818 "permissions" : {
33819 "check" : [
33820 "perm",
33821 "/",
33822 [
33823 "Sys.Modify"
33824 ]
33825 ]
7aacca6f 33826 },
4d47f125
TL
33827 "protected" : 1,
33828 "proxyto" : "node",
33829 "returns" : {
33830 "type" : "string"
33831 }
33832 }
33833 },
33834 "leaf" : 1,
33835 "path" : "/nodes/{node}/ceph/stop",
33836 "text" : "stop"
33837 },
33838 {
33839 "info" : {
33840 "POST" : {
e9cd3bd4 33841 "allowtoken" : 1,
4d47f125
TL
33842 "description" : "Start ceph services.",
33843 "method" : "POST",
33844 "name" : "start",
33845 "parameters" : {
33846 "additionalProperties" : 0,
33847 "properties" : {
33848 "node" : {
33849 "description" : "The cluster node name.",
33850 "format" : "pve-node",
33851 "type" : "string",
33852 "typetext" : "<string>"
33853 },
33854 "service" : {
e2d681b3 33855 "default" : "ceph.target",
4d47f125
TL
33856 "description" : "Ceph service name.",
33857 "optional" : 1,
c5aa7e14 33858 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
33859 "type" : "string"
33860 }
33861 }
44660702 33862 },
4d47f125
TL
33863 "permissions" : {
33864 "check" : [
33865 "perm",
33866 "/",
33867 [
33868 "Sys.Modify"
33869 ]
33870 ]
44660702 33871 },
4d47f125
TL
33872 "protected" : 1,
33873 "proxyto" : "node",
33874 "returns" : {
33875 "type" : "string"
44660702 33876 }
7aacca6f
DM
33877 }
33878 },
4d47f125
TL
33879 "leaf" : 1,
33880 "path" : "/nodes/{node}/ceph/start",
33881 "text" : "start"
33882 },
e2d681b3
TL
33883 {
33884 "info" : {
33885 "POST" : {
e9cd3bd4 33886 "allowtoken" : 1,
e2d681b3
TL
33887 "description" : "Restart ceph services.",
33888 "method" : "POST",
33889 "name" : "restart",
33890 "parameters" : {
33891 "additionalProperties" : 0,
33892 "properties" : {
33893 "node" : {
33894 "description" : "The cluster node name.",
33895 "format" : "pve-node",
33896 "type" : "string",
33897 "typetext" : "<string>"
33898 },
33899 "service" : {
33900 "default" : "ceph.target",
33901 "description" : "Ceph service name.",
33902 "optional" : 1,
c5aa7e14 33903 "pattern" : "(mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
e2d681b3
TL
33904 "type" : "string"
33905 }
33906 }
33907 },
33908 "permissions" : {
33909 "check" : [
33910 "perm",
33911 "/",
33912 [
33913 "Sys.Modify"
33914 ]
33915 ]
33916 },
33917 "protected" : 1,
33918 "proxyto" : "node",
33919 "returns" : {
33920 "type" : "string"
33921 }
33922 }
33923 },
33924 "leaf" : 1,
33925 "path" : "/nodes/{node}/ceph/restart",
33926 "text" : "restart"
33927 },
4d47f125
TL
33928 {
33929 "info" : {
33930 "GET" : {
e9cd3bd4 33931 "allowtoken" : 1,
4d47f125
TL
33932 "description" : "Get ceph status.",
33933 "method" : "GET",
33934 "name" : "status",
33935 "parameters" : {
33936 "additionalProperties" : 0,
33937 "properties" : {
33938 "node" : {
33939 "description" : "The cluster node name.",
33940 "format" : "pve-node",
33941 "type" : "string",
33942 "typetext" : "<string>"
33943 }
33944 }
33945 },
33946 "permissions" : {
33947 "check" : [
33948 "perm",
33949 "/",
33950 [
33951 "Sys.Audit",
33952 "Datastore.Audit"
33953 ],
33954 "any",
33955 1
33956 ]
33957 },
33958 "protected" : 1,
33959 "proxyto" : "node",
33960 "returns" : {
d2656385 33961 "type" : "object"
44660702 33962 }
56122987 33963 }
44660702 33964 },
d2656385
TL
33965 "leaf" : 1,
33966 "path" : "/nodes/{node}/ceph/status",
33967 "text" : "status"
7aacca6f 33968 },
56122987 33969 {
56122987
DM
33970 "info" : {
33971 "GET" : {
e9cd3bd4 33972 "allowtoken" : 1,
4d47f125 33973 "description" : "Get OSD crush map",
44660702 33974 "method" : "GET",
4d47f125 33975 "name" : "crush",
56122987 33976 "parameters" : {
7aacca6f 33977 "additionalProperties" : 0,
56122987 33978 "properties" : {
56122987 33979 "node" : {
7aacca6f 33980 "description" : "The cluster node name.",
44660702 33981 "format" : "pve-node",
013dc89f
DM
33982 "type" : "string",
33983 "typetext" : "<string>"
56122987 33984 }
7aacca6f 33985 }
56122987 33986 },
56122987
DM
33987 "permissions" : {
33988 "check" : [
33989 "perm",
33990 "/",
33991 [
33992 "Sys.Audit",
33993 "Datastore.Audit"
33994 ],
33995 "any",
33996 1
33997 ]
44660702 33998 },
4d47f125
TL
33999 "protected" : 1,
34000 "proxyto" : "node",
44660702
DM
34001 "returns" : {
34002 "type" : "string"
7aacca6f
DM
34003 }
34004 }
44660702
DM
34005 },
34006 "leaf" : 1,
4d47f125
TL
34007 "path" : "/nodes/{node}/ceph/crush",
34008 "text" : "crush"
7aacca6f
DM
34009 },
34010 {
7aacca6f
DM
34011 "info" : {
34012 "GET" : {
e9cd3bd4 34013 "allowtoken" : 1,
4d47f125 34014 "description" : "Read ceph log",
7aacca6f 34015 "method" : "GET",
4d47f125 34016 "name" : "log",
7aacca6f
DM
34017 "parameters" : {
34018 "additionalProperties" : 0,
34019 "properties" : {
4d47f125
TL
34020 "limit" : {
34021 "minimum" : 0,
34022 "optional" : 1,
34023 "type" : "integer",
34024 "typetext" : "<integer> (0 - N)"
34025 },
7aacca6f 34026 "node" : {
7aacca6f 34027 "description" : "The cluster node name.",
44660702 34028 "format" : "pve-node",
013dc89f
DM
34029 "type" : "string",
34030 "typetext" : "<string>"
4d47f125
TL
34031 },
34032 "start" : {
34033 "minimum" : 0,
34034 "optional" : 1,
34035 "type" : "integer",
34036 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
34037 }
34038 }
34039 },
44660702
DM
34040 "permissions" : {
34041 "check" : [
34042 "perm",
4d47f125 34043 "/nodes/{node}",
44660702 34044 [
4d47f125
TL
34045 "Sys.Syslog"
34046 ]
44660702
DM
34047 ]
34048 },
7aacca6f 34049 "protected" : 1,
44660702 34050 "proxyto" : "node",
7aacca6f
DM
34051 "returns" : {
34052 "items" : {
34053 "properties" : {
4d47f125
TL
34054 "n" : {
34055 "description" : "Line number",
34056 "type" : "integer"
56122987 34057 },
4d47f125
TL
34058 "t" : {
34059 "description" : "Line text",
56122987
DM
34060 "type" : "string"
34061 }
7aacca6f
DM
34062 },
34063 "type" : "object"
56122987
DM
34064 },
34065 "type" : "array"
44660702 34066 }
4d47f125
TL
34067 }
34068 },
34069 "leaf" : 1,
34070 "path" : "/nodes/{node}/ceph/log",
34071 "text" : "log"
34072 },
34073 {
34074 "info" : {
34075 "GET" : {
e9cd3bd4 34076 "allowtoken" : 1,
4d47f125
TL
34077 "description" : "List ceph rules.",
34078 "method" : "GET",
34079 "name" : "rules",
44660702
DM
34080 "parameters" : {
34081 "additionalProperties" : 0,
34082 "properties" : {
34083 "node" : {
34084 "description" : "The cluster node name.",
34085 "format" : "pve-node",
013dc89f
DM
34086 "type" : "string",
34087 "typetext" : "<string>"
44660702
DM
34088 }
34089 }
34090 },
7aacca6f
DM
34091 "permissions" : {
34092 "check" : [
34093 "perm",
34094 "/",
34095 [
4d47f125
TL
34096 "Sys.Audit",
34097 "Datastore.Audit"
34098 ],
34099 "any",
34100 1
7aacca6f
DM
34101 ]
34102 },
44660702 34103 "protected" : 1,
7aacca6f 34104 "proxyto" : "node",
56122987 34105 "returns" : {
4d47f125
TL
34106 "items" : {
34107 "properties" : {},
34108 "type" : "object"
34109 },
34110 "links" : [
34111 {
34112 "href" : "{name}",
34113 "rel" : "child"
34114 }
34115 ],
34116 "type" : "array"
44660702 34117 }
56122987 34118 }
44660702 34119 },
4d47f125
TL
34120 "leaf" : 1,
34121 "path" : "/nodes/{node}/ceph/rules",
34122 "text" : "rules"
34123 }
34124 ],
34125 "info" : {
34126 "GET" : {
e9cd3bd4 34127 "allowtoken" : 1,
4d47f125
TL
34128 "description" : "Directory index.",
34129 "method" : "GET",
34130 "name" : "index",
34131 "parameters" : {
34132 "additionalProperties" : 0,
34133 "properties" : {
34134 "node" : {
34135 "description" : "The cluster node name.",
34136 "format" : "pve-node",
34137 "type" : "string",
34138 "typetext" : "<string>"
34139 }
34140 }
34141 },
34142 "permissions" : {
34143 "check" : [
34144 "perm",
34145 "/",
34146 [
34147 "Sys.Audit",
34148 "Datastore.Audit"
34149 ],
34150 "any",
34151 1
34152 ]
34153 },
34154 "returns" : {
34155 "items" : {
34156 "properties" : {},
34157 "type" : "object"
34158 },
34159 "links" : [
34160 {
34161 "href" : "{name}",
34162 "rel" : "child"
34163 }
34164 ],
34165 "type" : "array"
34166 }
34167 }
34168 },
34169 "leaf" : 0,
34170 "path" : "/nodes/{node}/ceph",
34171 "text" : "ceph"
34172 },
34173 {
34174 "children" : [
e7084ef7
TL
34175 {
34176 "info" : {
34177 "GET" : {
34178 "allowtoken" : 1,
34179 "description" : "Get the currently configured vzdump defaults.",
34180 "method" : "GET",
34181 "name" : "defaults",
34182 "parameters" : {
34183 "additionalProperties" : 0,
34184 "properties" : {
34185 "node" : {
34186 "description" : "The cluster node name.",
34187 "format" : "pve-node",
34188 "type" : "string",
34189 "typetext" : "<string>"
34190 },
34191 "storage" : {
34192 "description" : "The storage identifier.",
34193 "format" : "pve-storage-id",
34194 "optional" : 1,
34195 "type" : "string",
34196 "typetext" : "<string>"
34197 }
34198 }
34199 },
34200 "permissions" : {
34201 "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.",
34202 "user" : "all"
34203 },
34204 "proxyto" : "node",
34205 "returns" : {
34206 "additionalProperties" : 0,
34207 "properties" : {
34208 "all" : {
34209 "default" : 0,
34210 "description" : "Backup all known guest systems on this host.",
34211 "optional" : 1,
34212 "type" : "boolean"
34213 },
34214 "bwlimit" : {
34215 "default" : 0,
34216 "description" : "Limit I/O bandwidth (KBytes per second).",
34217 "minimum" : 0,
34218 "optional" : 1,
34219 "type" : "integer"
34220 },
34221 "compress" : {
34222 "default" : "0",
34223 "description" : "Compress dump file.",
34224 "enum" : [
34225 "0",
34226 "1",
34227 "gzip",
34228 "lzo",
34229 "zstd"
34230 ],
34231 "optional" : 1,
34232 "type" : "string"
34233 },
34234 "dumpdir" : {
34235 "description" : "Store resulting files to specified directory.",
34236 "optional" : 1,
34237 "type" : "string"
34238 },
34239 "exclude" : {
34240 "description" : "Exclude specified guest systems (assumes --all)",
34241 "format" : "pve-vmid-list",
34242 "optional" : 1,
34243 "type" : "string"
34244 },
34245 "exclude-path" : {
34246 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
34247 "format" : "string-alist",
34248 "optional" : 1,
34249 "type" : "string"
34250 },
34251 "ionice" : {
34252 "default" : 7,
34253 "description" : "Set CFQ ionice priority.",
34254 "maximum" : 8,
34255 "minimum" : 0,
34256 "optional" : 1,
34257 "type" : "integer"
34258 },
34259 "lockwait" : {
34260 "default" : 180,
34261 "description" : "Maximal time to wait for the global lock (minutes).",
34262 "minimum" : 0,
34263 "optional" : 1,
34264 "type" : "integer"
34265 },
34266 "mailnotification" : {
34267 "default" : "always",
34268 "description" : "Specify when to send an email",
34269 "enum" : [
34270 "always",
34271 "failure"
34272 ],
34273 "optional" : 1,
34274 "type" : "string"
34275 },
34276 "mailto" : {
34277 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
34278 "format" : "email-or-username-list",
34279 "optional" : 1,
34280 "type" : "string"
34281 },
34282 "maxfiles" : {
0695fdaf 34283 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
e7084ef7
TL
34284 "minimum" : 1,
34285 "optional" : 1,
34286 "type" : "integer"
34287 },
34288 "mode" : {
34289 "default" : "snapshot",
34290 "description" : "Backup mode.",
34291 "enum" : [
34292 "snapshot",
34293 "suspend",
34294 "stop"
34295 ],
34296 "optional" : 1,
34297 "type" : "string"
34298 },
34299 "node" : {
34300 "description" : "Only run if executed on this node.",
34301 "format" : "pve-node",
34302 "optional" : 1,
34303 "type" : "string"
34304 },
7af2edf9
TL
34305 "notes-template" : {
34306 "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.",
34307 "optional" : 1,
34308 "requires" : "storage",
34309 "type" : "string"
34310 },
e7084ef7
TL
34311 "pigz" : {
34312 "default" : 0,
34313 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
34314 "optional" : 1,
34315 "type" : "integer"
34316 },
34317 "pool" : {
34318 "description" : "Backup all known guest systems included in the specified pool.",
34319 "optional" : 1,
34320 "type" : "string"
34321 },
7af2edf9
TL
34322 "protected" : {
34323 "description" : "If true, mark backup(s) as protected.",
34324 "optional" : 1,
34325 "requires" : "storage",
34326 "type" : "boolean"
34327 },
e7084ef7 34328 "prune-backups" : {
0695fdaf 34329 "default" : "keep-all=1",
e7084ef7
TL
34330 "description" : "Use these retention options instead of those from the storage configuration.",
34331 "format" : "prune-backups",
34332 "optional" : 1,
34333 "type" : "string"
34334 },
34335 "quiet" : {
34336 "default" : 0,
34337 "description" : "Be quiet.",
34338 "optional" : 1,
34339 "type" : "boolean"
34340 },
34341 "remove" : {
34342 "default" : 1,
0695fdaf 34343 "description" : "Prune older backups according to 'prune-backups'.",
e7084ef7
TL
34344 "optional" : 1,
34345 "type" : "boolean"
34346 },
34347 "script" : {
34348 "description" : "Use specified hook script.",
34349 "optional" : 1,
34350 "type" : "string"
34351 },
e7084ef7
TL
34352 "stdexcludes" : {
34353 "default" : 1,
34354 "description" : "Exclude temporary files and logs.",
34355 "optional" : 1,
34356 "type" : "boolean"
34357 },
34358 "stop" : {
34359 "default" : 0,
34360 "description" : "Stop running backup jobs on this host.",
34361 "optional" : 1,
34362 "type" : "boolean"
34363 },
34364 "stopwait" : {
34365 "default" : 10,
34366 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
34367 "minimum" : 0,
34368 "optional" : 1,
34369 "type" : "integer"
34370 },
34371 "storage" : {
34372 "description" : "Store resulting file to this storage.",
34373 "format" : "pve-storage-id",
34374 "optional" : 1,
34375 "type" : "string"
34376 },
34377 "tmpdir" : {
34378 "description" : "Store temporary files to specified directory.",
34379 "optional" : 1,
34380 "type" : "string"
34381 },
34382 "vmid" : {
34383 "description" : "The ID of the guest system you want to backup.",
34384 "format" : "pve-vmid-list",
34385 "optional" : 1,
34386 "type" : "string"
34387 },
34388 "zstd" : {
34389 "default" : 1,
34390 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
34391 "optional" : 1,
34392 "type" : "integer"
34393 }
34394 },
34395 "type" : "object"
34396 }
34397 }
34398 },
34399 "leaf" : 1,
34400 "path" : "/nodes/{node}/vzdump/defaults",
34401 "text" : "defaults"
34402 },
56122987
DM
34403 {
34404 "info" : {
4d47f125 34405 "GET" : {
e9cd3bd4 34406 "allowtoken" : 1,
4d47f125
TL
34407 "description" : "Extract configuration from vzdump backup archive.",
34408 "method" : "GET",
34409 "name" : "extractconfig",
34410 "parameters" : {
34411 "additionalProperties" : 0,
34412 "properties" : {
44660702
DM
34413 "node" : {
34414 "description" : "The cluster node name.",
34415 "format" : "pve-node",
013dc89f
DM
34416 "type" : "string",
34417 "typetext" : "<string>"
44660702 34418 },
4d47f125
TL
34419 "volume" : {
34420 "description" : "Volume identifier",
34421 "type" : "string",
34422 "typetext" : "<string>"
44660702
DM
34423 }
34424 }
7aacca6f 34425 },
56122987 34426 "permissions" : {
4d47f125
TL
34427 "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.",
34428 "user" : "all"
56122987 34429 },
7aacca6f 34430 "protected" : 1,
44660702
DM
34431 "proxyto" : "node",
34432 "returns" : {
4d47f125 34433 "type" : "string"
7aacca6f
DM
34434 }
34435 }
34436 },
7aacca6f 34437 "leaf" : 1,
4d47f125
TL
34438 "path" : "/nodes/{node}/vzdump/extractconfig",
34439 "text" : "extractconfig"
34440 }
34441 ],
34442 "info" : {
34443 "POST" : {
e9cd3bd4 34444 "allowtoken" : 1,
4d47f125
TL
34445 "description" : "Create backup.",
34446 "method" : "POST",
34447 "name" : "vzdump",
34448 "parameters" : {
34449 "additionalProperties" : 0,
34450 "properties" : {
34451 "all" : {
34452 "default" : 0,
34453 "description" : "Backup all known guest systems on this host.",
34454 "optional" : 1,
34455 "type" : "boolean",
34456 "typetext" : "<boolean>"
34457 },
34458 "bwlimit" : {
34459 "default" : 0,
34460 "description" : "Limit I/O bandwidth (KBytes per second).",
34461 "minimum" : 0,
34462 "optional" : 1,
34463 "type" : "integer",
34464 "typetext" : "<integer> (0 - N)"
34465 },
34466 "compress" : {
34467 "default" : "0",
34468 "description" : "Compress dump file.",
34469 "enum" : [
34470 "0",
34471 "1",
34472 "gzip",
c5aa7e14
TL
34473 "lzo",
34474 "zstd"
4d47f125
TL
34475 ],
34476 "optional" : 1,
34477 "type" : "string"
34478 },
34479 "dumpdir" : {
34480 "description" : "Store resulting files to specified directory.",
34481 "optional" : 1,
34482 "type" : "string",
34483 "typetext" : "<string>"
34484 },
34485 "exclude" : {
34486 "description" : "Exclude specified guest systems (assumes --all)",
34487 "format" : "pve-vmid-list",
34488 "optional" : 1,
34489 "type" : "string",
34490 "typetext" : "<string>"
34491 },
34492 "exclude-path" : {
d2656385 34493 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
4d47f125
TL
34494 "format" : "string-alist",
34495 "optional" : 1,
34496 "type" : "string",
34497 "typetext" : "<string>"
34498 },
34499 "ionice" : {
34500 "default" : 7,
34501 "description" : "Set CFQ ionice priority.",
34502 "maximum" : 8,
34503 "minimum" : 0,
34504 "optional" : 1,
34505 "type" : "integer",
34506 "typetext" : "<integer> (0 - 8)"
34507 },
34508 "lockwait" : {
34509 "default" : 180,
34510 "description" : "Maximal time to wait for the global lock (minutes).",
34511 "minimum" : 0,
34512 "optional" : 1,
34513 "type" : "integer",
34514 "typetext" : "<integer> (0 - N)"
34515 },
34516 "mailnotification" : {
34517 "default" : "always",
34518 "description" : "Specify when to send an email",
34519 "enum" : [
34520 "always",
34521 "failure"
34522 ],
34523 "optional" : 1,
34524 "type" : "string"
34525 },
34526 "mailto" : {
d2656385
TL
34527 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
34528 "format" : "email-or-username-list",
4d47f125
TL
34529 "optional" : 1,
34530 "type" : "string",
34531 "typetext" : "<string>"
34532 },
34533 "maxfiles" : {
0695fdaf 34534 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
4d47f125
TL
34535 "minimum" : 1,
34536 "optional" : 1,
34537 "type" : "integer",
34538 "typetext" : "<integer> (1 - N)"
34539 },
34540 "mode" : {
34541 "default" : "snapshot",
34542 "description" : "Backup mode.",
34543 "enum" : [
34544 "snapshot",
34545 "suspend",
34546 "stop"
34547 ],
34548 "optional" : 1,
34549 "type" : "string"
34550 },
34551 "node" : {
34552 "description" : "Only run if executed on this node.",
34553 "format" : "pve-node",
34554 "optional" : 1,
34555 "type" : "string",
34556 "typetext" : "<string>"
34557 },
7af2edf9
TL
34558 "notes-template" : {
34559 "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.",
34560 "optional" : 1,
34561 "requires" : "storage",
34562 "type" : "string",
34563 "typetext" : "<string>"
34564 },
4d47f125
TL
34565 "pigz" : {
34566 "default" : 0,
34567 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
34568 "optional" : 1,
34569 "type" : "integer",
34570 "typetext" : "<integer>"
34571 },
9226ccbc
TL
34572 "pool" : {
34573 "description" : "Backup all known guest systems included in the specified pool.",
34574 "optional" : 1,
34575 "type" : "string",
34576 "typetext" : "<string>"
34577 },
7af2edf9
TL
34578 "protected" : {
34579 "description" : "If true, mark backup(s) as protected.",
34580 "optional" : 1,
34581 "requires" : "storage",
34582 "type" : "boolean",
34583 "typetext" : "<boolean>"
34584 },
739d4d64 34585 "prune-backups" : {
0695fdaf 34586 "default" : "keep-all=1",
739d4d64
TL
34587 "description" : "Use these retention options instead of those from the storage configuration.",
34588 "format" : "prune-backups",
34589 "optional" : 1,
34590 "type" : "string",
4772952b 34591 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 34592 },
4d47f125
TL
34593 "quiet" : {
34594 "default" : 0,
34595 "description" : "Be quiet.",
34596 "optional" : 1,
34597 "type" : "boolean",
34598 "typetext" : "<boolean>"
34599 },
34600 "remove" : {
34601 "default" : 1,
0695fdaf 34602 "description" : "Prune older backups according to 'prune-backups'.",
4d47f125
TL
34603 "optional" : 1,
34604 "type" : "boolean",
34605 "typetext" : "<boolean>"
34606 },
34607 "script" : {
34608 "description" : "Use specified hook script.",
34609 "optional" : 1,
34610 "type" : "string",
34611 "typetext" : "<string>"
34612 },
4d47f125
TL
34613 "stdexcludes" : {
34614 "default" : 1,
34615 "description" : "Exclude temporary files and logs.",
34616 "optional" : 1,
34617 "type" : "boolean",
34618 "typetext" : "<boolean>"
34619 },
34620 "stdout" : {
34621 "description" : "Write tar to stdout, not to a file.",
34622 "optional" : 1,
34623 "type" : "boolean",
34624 "typetext" : "<boolean>"
34625 },
34626 "stop" : {
34627 "default" : 0,
1e3f8156 34628 "description" : "Stop running backup jobs on this host.",
4d47f125
TL
34629 "optional" : 1,
34630 "type" : "boolean",
34631 "typetext" : "<boolean>"
34632 },
34633 "stopwait" : {
34634 "default" : 10,
34635 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
34636 "minimum" : 0,
34637 "optional" : 1,
34638 "type" : "integer",
34639 "typetext" : "<integer> (0 - N)"
34640 },
34641 "storage" : {
34642 "description" : "Store resulting file to this storage.",
34643 "format" : "pve-storage-id",
34644 "optional" : 1,
34645 "type" : "string",
34646 "typetext" : "<string>"
34647 },
34648 "tmpdir" : {
34649 "description" : "Store temporary files to specified directory.",
34650 "optional" : 1,
34651 "type" : "string",
34652 "typetext" : "<string>"
34653 },
34654 "vmid" : {
34655 "description" : "The ID of the guest system you want to backup.",
34656 "format" : "pve-vmid-list",
34657 "optional" : 1,
34658 "type" : "string",
34659 "typetext" : "<string>"
c5aa7e14
TL
34660 },
34661 "zstd" : {
34662 "default" : 1,
34663 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
34664 "optional" : 1,
34665 "type" : "integer",
34666 "typetext" : "<integer>"
4d47f125
TL
34667 }
34668 }
34669 },
34670 "permissions" : {
4772952b 34671 "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. The 'maxfiles', 'prune-backups', 'tmpdir', 'dumpdir', 'script', 'bwlimit' and 'ionice' parameters are restricted to the 'root@pam' user.",
4d47f125
TL
34672 "user" : "all"
34673 },
34674 "protected" : 1,
34675 "proxyto" : "node",
34676 "returns" : {
34677 "type" : "string"
34678 }
34679 }
34680 },
34681 "leaf" : 0,
34682 "path" : "/nodes/{node}/vzdump",
34683 "text" : "vzdump"
34684 },
34685 {
34686 "children" : [
2489d6df
WB
34687 {
34688 "children" : [
34689 {
34690 "info" : {
4d47f125 34691 "GET" : {
e9cd3bd4 34692 "allowtoken" : 1,
4d47f125
TL
34693 "description" : "Read service properties",
34694 "method" : "GET",
34695 "name" : "service_state",
2489d6df
WB
34696 "parameters" : {
34697 "additionalProperties" : 0,
34698 "properties" : {
2489d6df
WB
34699 "node" : {
34700 "description" : "The cluster node name.",
34701 "format" : "pve-node",
34702 "type" : "string",
34703 "typetext" : "<string>"
4d47f125
TL
34704 },
34705 "service" : {
34706 "description" : "Service ID",
34707 "enum" : [
5370fa8c 34708 "chrony",
4d47f125 34709 "corosync",
5370fa8c
TL
34710 "cron",
34711 "ksmtuned",
34712 "postfix",
34713 "pve-cluster",
4d47f125 34714 "pve-firewall",
4d47f125
TL
34715 "pve-ha-crm",
34716 "pve-ha-lrm",
5370fa8c
TL
34717 "pvedaemon",
34718 "pvefw-logger",
34719 "pveproxy",
34720 "pvescheduler",
34721 "pvestatd",
34722 "spiceproxy",
4d47f125
TL
34723 "sshd",
34724 "syslog",
8f4d9c87 34725 "systemd-journald",
5370fa8c 34726 "systemd-timesyncd"
4d47f125
TL
34727 ],
34728 "type" : "string"
2489d6df
WB
34729 }
34730 }
34731 },
34732 "permissions" : {
34733 "check" : [
34734 "perm",
4d47f125 34735 "/nodes/{node}",
2489d6df 34736 [
4d47f125 34737 "Sys.Audit"
2489d6df
WB
34738 ]
34739 ]
34740 },
34741 "protected" : 1,
34742 "proxyto" : "node",
34743 "returns" : {
4d47f125 34744 "type" : "object"
2489d6df
WB
34745 }
34746 }
34747 },
34748 "leaf" : 1,
4d47f125
TL
34749 "path" : "/nodes/{node}/services/{service}/state",
34750 "text" : "state"
34751 },
34752 {
34753 "info" : {
34754 "POST" : {
e9cd3bd4 34755 "allowtoken" : 1,
4d47f125
TL
34756 "description" : "Start service.",
34757 "method" : "POST",
34758 "name" : "service_start",
34759 "parameters" : {
34760 "additionalProperties" : 0,
34761 "properties" : {
34762 "node" : {
34763 "description" : "The cluster node name.",
34764 "format" : "pve-node",
34765 "type" : "string",
34766 "typetext" : "<string>"
34767 },
34768 "service" : {
34769 "description" : "Service ID",
34770 "enum" : [
5370fa8c 34771 "chrony",
4d47f125 34772 "corosync",
5370fa8c
TL
34773 "cron",
34774 "ksmtuned",
34775 "postfix",
34776 "pve-cluster",
4d47f125 34777 "pve-firewall",
4d47f125
TL
34778 "pve-ha-crm",
34779 "pve-ha-lrm",
5370fa8c
TL
34780 "pvedaemon",
34781 "pvefw-logger",
34782 "pveproxy",
34783 "pvescheduler",
34784 "pvestatd",
34785 "spiceproxy",
4d47f125
TL
34786 "sshd",
34787 "syslog",
8f4d9c87 34788 "systemd-journald",
5370fa8c 34789 "systemd-timesyncd"
4d47f125
TL
34790 ],
34791 "type" : "string"
34792 }
34793 }
7aacca6f 34794 },
4d47f125
TL
34795 "permissions" : {
34796 "check" : [
34797 "perm",
34798 "/nodes/{node}",
34799 [
34800 "Sys.Modify"
34801 ]
34802 ]
7aacca6f 34803 },
4d47f125
TL
34804 "protected" : 1,
34805 "proxyto" : "node",
34806 "returns" : {
34807 "type" : "string"
34808 }
34809 }
56122987 34810 },
4d47f125
TL
34811 "leaf" : 1,
34812 "path" : "/nodes/{node}/services/{service}/start",
34813 "text" : "start"
34814 },
44660702
DM
34815 {
34816 "info" : {
4d47f125 34817 "POST" : {
e9cd3bd4 34818 "allowtoken" : 1,
4d47f125
TL
34819 "description" : "Stop service.",
34820 "method" : "POST",
34821 "name" : "service_stop",
44660702
DM
34822 "parameters" : {
34823 "additionalProperties" : 0,
34824 "properties" : {
44660702
DM
34825 "node" : {
34826 "description" : "The cluster node name.",
34827 "format" : "pve-node",
013dc89f
DM
34828 "type" : "string",
34829 "typetext" : "<string>"
2489d6df 34830 },
4d47f125
TL
34831 "service" : {
34832 "description" : "Service ID",
34833 "enum" : [
5370fa8c 34834 "chrony",
4d47f125 34835 "corosync",
5370fa8c
TL
34836 "cron",
34837 "ksmtuned",
34838 "postfix",
34839 "pve-cluster",
4d47f125 34840 "pve-firewall",
4d47f125
TL
34841 "pve-ha-crm",
34842 "pve-ha-lrm",
5370fa8c
TL
34843 "pvedaemon",
34844 "pvefw-logger",
34845 "pveproxy",
34846 "pvescheduler",
34847 "pvestatd",
34848 "spiceproxy",
4d47f125
TL
34849 "sshd",
34850 "syslog",
8f4d9c87 34851 "systemd-journald",
5370fa8c 34852 "systemd-timesyncd"
4d47f125
TL
34853 ],
34854 "type" : "string"
44660702
DM
34855 }
34856 }
34857 },
34858 "permissions" : {
34859 "check" : [
34860 "perm",
4d47f125 34861 "/nodes/{node}",
44660702
DM
34862 [
34863 "Sys.Modify"
34864 ]
34865 ]
34866 },
34867 "protected" : 1,
34868 "proxyto" : "node",
34869 "returns" : {
2489d6df 34870 "type" : "string"
44660702
DM
34871 }
34872 }
34873 },
34874 "leaf" : 1,
4d47f125
TL
34875 "path" : "/nodes/{node}/services/{service}/stop",
34876 "text" : "stop"
7aacca6f 34877 },
32d876b5
DM
34878 {
34879 "info" : {
4d47f125 34880 "POST" : {
e9cd3bd4 34881 "allowtoken" : 1,
739d4d64 34882 "description" : "Hard restart service. Use reload if you want to reduce interruptions.",
4d47f125
TL
34883 "method" : "POST",
34884 "name" : "service_restart",
32d876b5
DM
34885 "parameters" : {
34886 "additionalProperties" : 0,
34887 "properties" : {
4d47f125
TL
34888 "node" : {
34889 "description" : "The cluster node name.",
34890 "format" : "pve-node",
34891 "type" : "string",
34892 "typetext" : "<string>"
34893 },
34894 "service" : {
34895 "description" : "Service ID",
32d876b5 34896 "enum" : [
5370fa8c 34897 "chrony",
4d47f125 34898 "corosync",
5370fa8c
TL
34899 "cron",
34900 "ksmtuned",
34901 "postfix",
34902 "pve-cluster",
4d47f125 34903 "pve-firewall",
4d47f125
TL
34904 "pve-ha-crm",
34905 "pve-ha-lrm",
5370fa8c
TL
34906 "pvedaemon",
34907 "pvefw-logger",
34908 "pveproxy",
34909 "pvescheduler",
34910 "pvestatd",
34911 "spiceproxy",
4d47f125
TL
34912 "sshd",
34913 "syslog",
8f4d9c87 34914 "systemd-journald",
5370fa8c 34915 "systemd-timesyncd"
32d876b5
DM
34916 ],
34917 "type" : "string"
32d876b5
DM
34918 }
34919 }
34920 },
34921 "permissions" : {
34922 "check" : [
34923 "perm",
4d47f125 34924 "/nodes/{node}",
32d876b5
DM
34925 [
34926 "Sys.Modify"
34927 ]
34928 ]
34929 },
34930 "protected" : 1,
34931 "proxyto" : "node",
34932 "returns" : {
4d47f125 34933 "type" : "string"
32d876b5 34934 }
4d47f125
TL
34935 }
34936 },
34937 "leaf" : 1,
34938 "path" : "/nodes/{node}/services/{service}/restart",
34939 "text" : "restart"
34940 },
34941 {
34942 "info" : {
32d876b5 34943 "POST" : {
e9cd3bd4 34944 "allowtoken" : 1,
739d4d64 34945 "description" : "Reload service. Falls back to restart if service cannot be reloaded.",
32d876b5 34946 "method" : "POST",
4d47f125 34947 "name" : "service_reload",
32d876b5
DM
34948 "parameters" : {
34949 "additionalProperties" : 0,
34950 "properties" : {
32d876b5
DM
34951 "node" : {
34952 "description" : "The cluster node name.",
34953 "format" : "pve-node",
34954 "type" : "string",
34955 "typetext" : "<string>"
4d47f125
TL
34956 },
34957 "service" : {
34958 "description" : "Service ID",
34959 "enum" : [
5370fa8c 34960 "chrony",
4d47f125 34961 "corosync",
5370fa8c
TL
34962 "cron",
34963 "ksmtuned",
34964 "postfix",
34965 "pve-cluster",
4d47f125 34966 "pve-firewall",
4d47f125
TL
34967 "pve-ha-crm",
34968 "pve-ha-lrm",
5370fa8c
TL
34969 "pvedaemon",
34970 "pvefw-logger",
34971 "pveproxy",
34972 "pvescheduler",
34973 "pvestatd",
34974 "spiceproxy",
4d47f125
TL
34975 "sshd",
34976 "syslog",
8f4d9c87 34977 "systemd-journald",
5370fa8c 34978 "systemd-timesyncd"
4d47f125
TL
34979 ],
34980 "type" : "string"
32d876b5
DM
34981 }
34982 }
34983 },
34984 "permissions" : {
34985 "check" : [
34986 "perm",
4d47f125 34987 "/nodes/{node}",
32d876b5
DM
34988 [
34989 "Sys.Modify"
34990 ]
34991 ]
34992 },
34993 "protected" : 1,
34994 "proxyto" : "node",
34995 "returns" : {
4d47f125 34996 "type" : "string"
32d876b5
DM
34997 }
34998 }
34999 },
35000 "leaf" : 1,
4d47f125
TL
35001 "path" : "/nodes/{node}/services/{service}/reload",
35002 "text" : "reload"
32d876b5
DM
35003 }
35004 ],
35005 "info" : {
35006 "GET" : {
e9cd3bd4 35007 "allowtoken" : 1,
4d47f125 35008 "description" : "Directory index",
44660702 35009 "method" : "GET",
4d47f125 35010 "name" : "srvcmdidx",
44660702
DM
35011 "parameters" : {
35012 "additionalProperties" : 0,
35013 "properties" : {
44660702
DM
35014 "node" : {
35015 "description" : "The cluster node name.",
35016 "format" : "pve-node",
013dc89f
DM
35017 "type" : "string",
35018 "typetext" : "<string>"
44660702 35019 },
4d47f125
TL
35020 "service" : {
35021 "description" : "Service ID",
35022 "enum" : [
5370fa8c 35023 "chrony",
4d47f125 35024 "corosync",
5370fa8c
TL
35025 "cron",
35026 "ksmtuned",
35027 "postfix",
35028 "pve-cluster",
4d47f125 35029 "pve-firewall",
4d47f125
TL
35030 "pve-ha-crm",
35031 "pve-ha-lrm",
5370fa8c
TL
35032 "pvedaemon",
35033 "pvefw-logger",
35034 "pveproxy",
35035 "pvescheduler",
35036 "pvestatd",
35037 "spiceproxy",
4d47f125
TL
35038 "sshd",
35039 "syslog",
8f4d9c87 35040 "systemd-journald",
5370fa8c 35041 "systemd-timesyncd"
4d47f125
TL
35042 ],
35043 "type" : "string"
44660702 35044 }
7aacca6f 35045 }
56122987 35046 },
56122987
DM
35047 "permissions" : {
35048 "check" : [
35049 "perm",
7aacca6f 35050 "/nodes/{node}",
56122987 35051 [
4d47f125 35052 "Sys.Audit"
56122987
DM
35053 ]
35054 ]
35055 },
44660702
DM
35056 "returns" : {
35057 "items" : {
35058 "properties" : {
4d47f125 35059 "subdir" : {
44660702
DM
35060 "type" : "string"
35061 }
56122987 35062 },
44660702 35063 "type" : "object"
56122987 35064 },
2489d6df
WB
35065 "links" : [
35066 {
4d47f125 35067 "href" : "{subdir}",
2489d6df
WB
35068 "rel" : "child"
35069 }
35070 ],
35071 "type" : "array"
35072 }
35073 }
4d47f125
TL
35074 },
35075 "leaf" : 0,
35076 "path" : "/nodes/{node}/services/{service}",
35077 "text" : "{service}"
7aacca6f
DM
35078 }
35079 ],
44660702
DM
35080 "info" : {
35081 "GET" : {
e9cd3bd4 35082 "allowtoken" : 1,
4d47f125 35083 "description" : "Service list.",
44660702
DM
35084 "method" : "GET",
35085 "name" : "index",
35086 "parameters" : {
35087 "additionalProperties" : 0,
35088 "properties" : {
35089 "node" : {
35090 "description" : "The cluster node name.",
35091 "format" : "pve-node",
013dc89f
DM
35092 "type" : "string",
35093 "typetext" : "<string>"
44660702
DM
35094 }
35095 }
35096 },
35097 "permissions" : {
35098 "check" : [
35099 "perm",
4d47f125 35100 "/nodes/{node}",
44660702 35101 [
4d47f125
TL
35102 "Sys.Audit"
35103 ]
44660702
DM
35104 ]
35105 },
4d47f125
TL
35106 "protected" : 1,
35107 "proxyto" : "node",
44660702
DM
35108 "returns" : {
35109 "items" : {
35110 "properties" : {},
35111 "type" : "object"
35112 },
35113 "links" : [
35114 {
4d47f125 35115 "href" : "{service}",
44660702
DM
35116 "rel" : "child"
35117 }
35118 ],
35119 "type" : "array"
35120 }
35121 }
35122 },
7aacca6f 35123 "leaf" : 0,
4d47f125
TL
35124 "path" : "/nodes/{node}/services",
35125 "text" : "services"
7aacca6f
DM
35126 },
35127 {
7aacca6f 35128 "info" : {
ac70d7d1
TL
35129 "DELETE" : {
35130 "allowtoken" : 1,
35131 "description" : "Delete subscription key of this node.",
35132 "method" : "DELETE",
35133 "name" : "delete",
35134 "parameters" : {
35135 "additionalProperties" : 0,
35136 "properties" : {
35137 "node" : {
35138 "description" : "The cluster node name.",
35139 "format" : "pve-node",
35140 "type" : "string",
35141 "typetext" : "<string>"
35142 }
35143 }
35144 },
35145 "permissions" : {
35146 "check" : [
35147 "perm",
35148 "/nodes/{node}",
35149 [
35150 "Sys.Modify"
35151 ]
35152 ]
35153 },
35154 "protected" : 1,
35155 "proxyto" : "node",
35156 "returns" : {
35157 "type" : "null"
35158 }
35159 },
4d47f125 35160 "GET" : {
e9cd3bd4 35161 "allowtoken" : 1,
4d47f125
TL
35162 "description" : "Read subscription info.",
35163 "method" : "GET",
35164 "name" : "get",
7aacca6f 35165 "parameters" : {
44660702 35166 "additionalProperties" : 0,
7aacca6f 35167 "properties" : {
44660702 35168 "node" : {
4d47f125 35169 "description" : "The cluster node name.",
44660702 35170 "format" : "pve-node",
013dc89f
DM
35171 "type" : "string",
35172 "typetext" : "<string>"
4d47f125
TL
35173 }
35174 }
35175 },
35176 "permissions" : {
35177 "user" : "all"
35178 },
35179 "proxyto" : "node",
35180 "returns" : {
35181 "type" : "object"
35182 }
35183 },
35184 "POST" : {
e9cd3bd4 35185 "allowtoken" : 1,
4d47f125
TL
35186 "description" : "Update subscription info.",
35187 "method" : "POST",
35188 "name" : "update",
35189 "parameters" : {
35190 "additionalProperties" : 0,
35191 "properties" : {
35192 "force" : {
35193 "default" : 0,
35194 "description" : "Always connect to server, even if we have up to date info inside local cache.",
7aacca6f 35195 "optional" : 1,
4d47f125
TL
35196 "type" : "boolean",
35197 "typetext" : "<boolean>"
44660702 35198 },
4d47f125
TL
35199 "node" : {
35200 "description" : "The cluster node name.",
35201 "format" : "pve-node",
013dc89f
DM
35202 "type" : "string",
35203 "typetext" : "<string>"
4d47f125
TL
35204 }
35205 }
35206 },
35207 "permissions" : {
35208 "check" : [
35209 "perm",
35210 "/nodes/{node}",
35211 [
35212 "Sys.Modify"
35213 ]
35214 ]
35215 },
35216 "protected" : 1,
35217 "proxyto" : "node",
35218 "returns" : {
35219 "type" : "null"
35220 }
35221 },
35222 "PUT" : {
e9cd3bd4 35223 "allowtoken" : 1,
4d47f125
TL
35224 "description" : "Set subscription key.",
35225 "method" : "PUT",
35226 "name" : "set",
35227 "parameters" : {
35228 "additionalProperties" : 0,
35229 "properties" : {
35230 "key" : {
35231 "description" : "Proxmox VE subscription key",
35232 "maxLength" : 32,
5f26e15b 35233 "pattern" : "pve([1248])([cbsp])-[0-9a-f]{10}",
4d47f125 35234 "type" : "string"
7aacca6f 35235 },
4d47f125
TL
35236 "node" : {
35237 "description" : "The cluster node name.",
35238 "format" : "pve-node",
013dc89f
DM
35239 "type" : "string",
35240 "typetext" : "<string>"
7aacca6f 35241 }
7aacca6f
DM
35242 }
35243 },
7aacca6f 35244 "permissions" : {
4d47f125
TL
35245 "check" : [
35246 "perm",
35247 "/nodes/{node}",
35248 [
35249 "Sys.Modify"
35250 ]
35251 ]
7aacca6f 35252 },
44660702 35253 "protected" : 1,
7aacca6f 35254 "proxyto" : "node",
7aacca6f 35255 "returns" : {
4d47f125 35256 "type" : "null"
7aacca6f
DM
35257 }
35258 }
35259 },
4d47f125
TL
35260 "leaf" : 1,
35261 "path" : "/nodes/{node}/subscription",
35262 "text" : "subscription"
44660702
DM
35263 },
35264 {
7aacca6f
DM
35265 "children" : [
35266 {
4d47f125
TL
35267 "info" : {
35268 "DELETE" : {
e9cd3bd4 35269 "allowtoken" : 1,
4d47f125
TL
35270 "description" : "Delete network device configuration",
35271 "method" : "DELETE",
35272 "name" : "delete_network",
35273 "parameters" : {
35274 "additionalProperties" : 0,
35275 "properties" : {
35276 "iface" : {
35277 "description" : "Network interface name.",
35278 "format" : "pve-iface",
35279 "maxLength" : 20,
35280 "minLength" : 2,
35281 "type" : "string",
35282 "typetext" : "<string>"
7aacca6f 35283 },
4d47f125
TL
35284 "node" : {
35285 "description" : "The cluster node name.",
35286 "format" : "pve-node",
35287 "type" : "string",
35288 "typetext" : "<string>"
44660702
DM
35289 }
35290 }
35291 },
4d47f125
TL
35292 "permissions" : {
35293 "check" : [
35294 "perm",
35295 "/nodes/{node}",
35296 [
35297 "Sys.Modify"
35298 ]
35299 ]
35300 },
35301 "protected" : 1,
35302 "proxyto" : "node",
35303 "returns" : {
35304 "type" : "null"
35305 }
35306 },
35307 "GET" : {
e9cd3bd4 35308 "allowtoken" : 1,
4d47f125
TL
35309 "description" : "Read network device configuration",
35310 "method" : "GET",
35311 "name" : "network_config",
35312 "parameters" : {
35313 "additionalProperties" : 0,
35314 "properties" : {
35315 "iface" : {
35316 "description" : "Network interface name.",
35317 "format" : "pve-iface",
35318 "maxLength" : 20,
35319 "minLength" : 2,
35320 "type" : "string",
35321 "typetext" : "<string>"
56122987 35322 },
4d47f125
TL
35323 "node" : {
35324 "description" : "The cluster node name.",
35325 "format" : "pve-node",
35326 "type" : "string",
35327 "typetext" : "<string>"
44660702
DM
35328 }
35329 }
35330 },
4d47f125
TL
35331 "permissions" : {
35332 "check" : [
35333 "perm",
35334 "/nodes/{node}",
35335 [
35336 "Sys.Audit"
35337 ]
35338 ]
35339 },
35340 "proxyto" : "node",
35341 "returns" : {
35342 "properties" : {
35343 "method" : {
35344 "type" : "string"
44660702 35345 },
4d47f125 35346 "type" : {
44660702
DM
35347 "type" : "string"
35348 }
4d47f125
TL
35349 },
35350 "type" : "object"
35351 }
56122987 35352 },
4d47f125 35353 "PUT" : {
e9cd3bd4 35354 "allowtoken" : 1,
4d47f125
TL
35355 "description" : "Update network device configuration",
35356 "method" : "PUT",
35357 "name" : "update_network",
35358 "parameters" : {
35359 "additionalProperties" : 0,
35360 "properties" : {
35361 "address" : {
35362 "description" : "IP address.",
35363 "format" : "ipv4",
35364 "optional" : 1,
35365 "requires" : "netmask",
35366 "type" : "string",
35367 "typetext" : "<string>"
35368 },
35369 "address6" : {
35370 "description" : "IP address.",
35371 "format" : "ipv6",
35372 "optional" : 1,
35373 "requires" : "netmask6",
35374 "type" : "string",
35375 "typetext" : "<string>"
35376 },
35377 "autostart" : {
35378 "description" : "Automatically start interface on boot.",
35379 "optional" : 1,
35380 "type" : "boolean",
35381 "typetext" : "<boolean>"
35382 },
e9cd3bd4
TL
35383 "bond-primary" : {
35384 "description" : "Specify the primary interface for active-backup bond.",
35385 "format" : "pve-iface",
35386 "optional" : 1,
35387 "type" : "string",
35388 "typetext" : "<string>"
35389 },
4d47f125
TL
35390 "bond_mode" : {
35391 "description" : "Bonding mode.",
35392 "enum" : [
35393 "balance-rr",
35394 "active-backup",
35395 "balance-xor",
35396 "broadcast",
35397 "802.3ad",
35398 "balance-tlb",
35399 "balance-alb",
35400 "balance-slb",
35401 "lacp-balance-slb",
35402 "lacp-balance-tcp"
35403 ],
35404 "optional" : 1,
35405 "type" : "string"
35406 },
35407 "bond_xmit_hash_policy" : {
35408 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
35409 "enum" : [
35410 "layer2",
35411 "layer2+3",
35412 "layer3+4"
35413 ],
35414 "optional" : 1,
35415 "type" : "string"
35416 },
35417 "bridge_ports" : {
1e3f8156 35418 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
35419 "format" : "pve-iface-list",
35420 "optional" : 1,
35421 "type" : "string",
35422 "typetext" : "<string>"
35423 },
35424 "bridge_vlan_aware" : {
35425 "description" : "Enable bridge vlan support.",
35426 "optional" : 1,
35427 "type" : "boolean",
35428 "typetext" : "<boolean>"
35429 },
bb4c8cf8
TL
35430 "cidr" : {
35431 "description" : "IPv4 CIDR.",
35432 "format" : "CIDRv4",
35433 "optional" : 1,
35434 "type" : "string",
35435 "typetext" : "<string>"
35436 },
35437 "cidr6" : {
35438 "description" : "IPv6 CIDR.",
35439 "format" : "CIDRv6",
35440 "optional" : 1,
35441 "type" : "string",
35442 "typetext" : "<string>"
35443 },
4d47f125
TL
35444 "comments" : {
35445 "description" : "Comments",
35446 "optional" : 1,
35447 "type" : "string",
35448 "typetext" : "<string>"
35449 },
35450 "comments6" : {
35451 "description" : "Comments",
35452 "optional" : 1,
35453 "type" : "string",
35454 "typetext" : "<string>"
35455 },
35456 "delete" : {
35457 "description" : "A list of settings you want to delete.",
35458 "format" : "pve-configid-list",
35459 "optional" : 1,
35460 "type" : "string",
35461 "typetext" : "<string>"
35462 },
35463 "gateway" : {
35464 "description" : "Default gateway address.",
35465 "format" : "ipv4",
35466 "optional" : 1,
35467 "type" : "string",
35468 "typetext" : "<string>"
35469 },
35470 "gateway6" : {
35471 "description" : "Default ipv6 gateway address.",
35472 "format" : "ipv6",
35473 "optional" : 1,
35474 "type" : "string",
35475 "typetext" : "<string>"
35476 },
35477 "iface" : {
35478 "description" : "Network interface name.",
35479 "format" : "pve-iface",
35480 "maxLength" : 20,
35481 "minLength" : 2,
35482 "type" : "string",
35483 "typetext" : "<string>"
56122987 35484 },
e9cd3bd4
TL
35485 "mtu" : {
35486 "description" : "MTU.",
35487 "maximum" : 65520,
35488 "minimum" : 1280,
35489 "optional" : 1,
35490 "type" : "integer",
35491 "typetext" : "<integer> (1280 - 65520)"
35492 },
4d47f125
TL
35493 "netmask" : {
35494 "description" : "Network mask.",
35495 "format" : "ipv4mask",
35496 "optional" : 1,
35497 "requires" : "address",
35498 "type" : "string",
35499 "typetext" : "<string>"
35500 },
35501 "netmask6" : {
35502 "description" : "Network mask.",
35503 "maximum" : 128,
35504 "minimum" : 0,
35505 "optional" : 1,
35506 "requires" : "address6",
35507 "type" : "integer",
35508 "typetext" : "<integer> (0 - 128)"
56122987 35509 },
44660702
DM
35510 "node" : {
35511 "description" : "The cluster node name.",
35512 "format" : "pve-node",
013dc89f
DM
35513 "type" : "string",
35514 "typetext" : "<string>"
44660702 35515 },
4d47f125
TL
35516 "ovs_bonds" : {
35517 "description" : "Specify the interfaces used by the bonding device.",
35518 "format" : "pve-iface-list",
35519 "optional" : 1,
35520 "type" : "string",
35521 "typetext" : "<string>"
35522 },
35523 "ovs_bridge" : {
35524 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
35525 "format" : "pve-iface",
35526 "optional" : 1,
35527 "type" : "string",
35528 "typetext" : "<string>"
35529 },
35530 "ovs_options" : {
35531 "description" : "OVS interface options.",
35532 "maxLength" : 1024,
35533 "optional" : 1,
35534 "type" : "string",
35535 "typetext" : "<string>"
35536 },
35537 "ovs_ports" : {
1e3f8156 35538 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
35539 "format" : "pve-iface-list",
35540 "optional" : 1,
35541 "type" : "string",
35542 "typetext" : "<string>"
35543 },
35544 "ovs_tag" : {
35545 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
35546 "maximum" : 4094,
35547 "minimum" : 1,
35548 "optional" : 1,
35549 "type" : "integer",
35550 "typetext" : "<integer> (1 - 4094)"
35551 },
35552 "slaves" : {
35553 "description" : "Specify the interfaces used by the bonding device.",
35554 "format" : "pve-iface-list",
35555 "optional" : 1,
35556 "type" : "string",
35557 "typetext" : "<string>"
35558 },
35559 "type" : {
35560 "description" : "Network interface type",
44660702 35561 "enum" : [
4d47f125
TL
35562 "bridge",
35563 "bond",
35564 "eth",
35565 "alias",
35566 "vlan",
35567 "OVSBridge",
35568 "OVSBond",
35569 "OVSPort",
35570 "OVSIntPort",
35571 "unknown"
44660702
DM
35572 ],
35573 "type" : "string"
e9cd3bd4
TL
35574 },
35575 "vlan-id" : {
35576 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
35577 "maximum" : 4094,
35578 "minimum" : 1,
35579 "optional" : 1,
35580 "type" : "integer",
35581 "typetext" : "<integer> (1 - 4094)"
35582 },
35583 "vlan-raw-device" : {
35584 "description" : "Specify the raw interface for the vlan interface.",
35585 "format" : "pve-iface",
35586 "optional" : 1,
35587 "type" : "string",
35588 "typetext" : "<string>"
44660702
DM
35589 }
35590 }
35591 },
35592 "permissions" : {
35593 "check" : [
35594 "perm",
35595 "/nodes/{node}",
35596 [
4d47f125 35597 "Sys.Modify"
44660702
DM
35598 ]
35599 ]
35600 },
4d47f125
TL
35601 "protected" : 1,
35602 "proxyto" : "node",
44660702 35603 "returns" : {
4d47f125 35604 "type" : "null"
44660702
DM
35605 }
35606 }
35607 },
4d47f125
TL
35608 "leaf" : 1,
35609 "path" : "/nodes/{node}/network/{iface}",
35610 "text" : "{iface}"
44660702
DM
35611 }
35612 ],
35613 "info" : {
4d47f125 35614 "DELETE" : {
e9cd3bd4 35615 "allowtoken" : 1,
4d47f125
TL
35616 "description" : "Revert network configuration changes.",
35617 "method" : "DELETE",
35618 "name" : "revert_network_changes",
44660702
DM
35619 "parameters" : {
35620 "additionalProperties" : 0,
35621 "properties" : {
35622 "node" : {
35623 "description" : "The cluster node name.",
35624 "format" : "pve-node",
013dc89f
DM
35625 "type" : "string",
35626 "typetext" : "<string>"
44660702
DM
35627 }
35628 }
35629 },
35630 "permissions" : {
35631 "check" : [
35632 "perm",
35633 "/nodes/{node}",
35634 [
4d47f125 35635 "Sys.Modify"
44660702
DM
35636 ]
35637 ]
35638 },
35639 "protected" : 1,
35640 "proxyto" : "node",
4d47f125
TL
35641 "returns" : {
35642 "type" : "null"
35643 }
35644 },
35645 "GET" : {
e9cd3bd4 35646 "allowtoken" : 1,
4d47f125
TL
35647 "description" : "List available networks",
35648 "method" : "GET",
35649 "name" : "index",
35650 "parameters" : {
35651 "additionalProperties" : 0,
35652 "properties" : {
35653 "node" : {
35654 "description" : "The cluster node name.",
35655 "format" : "pve-node",
35656 "type" : "string",
35657 "typetext" : "<string>"
35658 },
35659 "type" : {
35660 "description" : "Only list specific interface types.",
35661 "enum" : [
35662 "bridge",
35663 "bond",
35664 "eth",
35665 "alias",
35666 "vlan",
35667 "OVSBridge",
35668 "OVSBond",
35669 "OVSPort",
35670 "OVSIntPort",
35671 "any_bridge"
35672 ],
35673 "optional" : 1,
35674 "type" : "string"
35675 }
35676 }
35677 },
35678 "permissions" : {
35679 "user" : "all"
35680 },
35681 "proxyto" : "node",
44660702
DM
35682 "returns" : {
35683 "items" : {
35684 "properties" : {},
35685 "type" : "object"
35686 },
35687 "links" : [
35688 {
4d47f125 35689 "href" : "{iface}",
44660702 35690 "rel" : "child"
56122987 35691 }
44660702
DM
35692 ],
35693 "type" : "array"
35694 }
4d47f125
TL
35695 },
35696 "POST" : {
e9cd3bd4 35697 "allowtoken" : 1,
4d47f125
TL
35698 "description" : "Create network device configuration",
35699 "method" : "POST",
35700 "name" : "create_network",
7aacca6f 35701 "parameters" : {
44660702 35702 "additionalProperties" : 0,
7aacca6f 35703 "properties" : {
4d47f125
TL
35704 "address" : {
35705 "description" : "IP address.",
35706 "format" : "ipv4",
35707 "optional" : 1,
35708 "requires" : "netmask",
35709 "type" : "string",
35710 "typetext" : "<string>"
35711 },
35712 "address6" : {
35713 "description" : "IP address.",
35714 "format" : "ipv6",
35715 "optional" : 1,
35716 "requires" : "netmask6",
35717 "type" : "string",
35718 "typetext" : "<string>"
35719 },
35720 "autostart" : {
35721 "description" : "Automatically start interface on boot.",
35722 "optional" : 1,
35723 "type" : "boolean",
35724 "typetext" : "<boolean>"
35725 },
e9cd3bd4
TL
35726 "bond-primary" : {
35727 "description" : "Specify the primary interface for active-backup bond.",
35728 "format" : "pve-iface",
35729 "optional" : 1,
35730 "type" : "string",
35731 "typetext" : "<string>"
35732 },
4d47f125
TL
35733 "bond_mode" : {
35734 "description" : "Bonding mode.",
35735 "enum" : [
35736 "balance-rr",
35737 "active-backup",
35738 "balance-xor",
35739 "broadcast",
35740 "802.3ad",
35741 "balance-tlb",
35742 "balance-alb",
35743 "balance-slb",
35744 "lacp-balance-slb",
35745 "lacp-balance-tcp"
35746 ],
35747 "optional" : 1,
35748 "type" : "string"
35749 },
35750 "bond_xmit_hash_policy" : {
35751 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
35752 "enum" : [
35753 "layer2",
35754 "layer2+3",
35755 "layer3+4"
35756 ],
35757 "optional" : 1,
35758 "type" : "string"
35759 },
35760 "bridge_ports" : {
1e3f8156 35761 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
35762 "format" : "pve-iface-list",
35763 "optional" : 1,
013dc89f
DM
35764 "type" : "string",
35765 "typetext" : "<string>"
4d47f125
TL
35766 },
35767 "bridge_vlan_aware" : {
35768 "description" : "Enable bridge vlan support.",
44660702 35769 "optional" : 1,
013dc89f
DM
35770 "type" : "boolean",
35771 "typetext" : "<boolean>"
44660702 35772 },
bb4c8cf8
TL
35773 "cidr" : {
35774 "description" : "IPv4 CIDR.",
35775 "format" : "CIDRv4",
35776 "optional" : 1,
35777 "type" : "string",
35778 "typetext" : "<string>"
35779 },
35780 "cidr6" : {
35781 "description" : "IPv6 CIDR.",
35782 "format" : "CIDRv6",
35783 "optional" : 1,
35784 "type" : "string",
35785 "typetext" : "<string>"
35786 },
4d47f125
TL
35787 "comments" : {
35788 "description" : "Comments",
35789 "optional" : 1,
35790 "type" : "string",
35791 "typetext" : "<string>"
35792 },
35793 "comments6" : {
35794 "description" : "Comments",
35795 "optional" : 1,
35796 "type" : "string",
35797 "typetext" : "<string>"
35798 },
35799 "gateway" : {
35800 "description" : "Default gateway address.",
35801 "format" : "ipv4",
35802 "optional" : 1,
35803 "type" : "string",
35804 "typetext" : "<string>"
35805 },
35806 "gateway6" : {
35807 "description" : "Default ipv6 gateway address.",
35808 "format" : "ipv6",
35809 "optional" : 1,
35810 "type" : "string",
35811 "typetext" : "<string>"
35812 },
35813 "iface" : {
35814 "description" : "Network interface name.",
35815 "format" : "pve-iface",
35816 "maxLength" : 20,
35817 "minLength" : 2,
35818 "type" : "string",
35819 "typetext" : "<string>"
35820 },
e9cd3bd4
TL
35821 "mtu" : {
35822 "description" : "MTU.",
35823 "maximum" : 65520,
35824 "minimum" : 1280,
35825 "optional" : 1,
35826 "type" : "integer",
35827 "typetext" : "<integer> (1280 - 65520)"
35828 },
4d47f125
TL
35829 "netmask" : {
35830 "description" : "Network mask.",
35831 "format" : "ipv4mask",
35832 "optional" : 1,
35833 "requires" : "address",
35834 "type" : "string",
35835 "typetext" : "<string>"
35836 },
35837 "netmask6" : {
35838 "description" : "Network mask.",
35839 "maximum" : 128,
35840 "minimum" : 0,
35841 "optional" : 1,
35842 "requires" : "address6",
35843 "type" : "integer",
35844 "typetext" : "<integer> (0 - 128)"
35845 },
7aacca6f 35846 "node" : {
7aacca6f 35847 "description" : "The cluster node name.",
44660702 35848 "format" : "pve-node",
013dc89f
DM
35849 "type" : "string",
35850 "typetext" : "<string>"
4d47f125
TL
35851 },
35852 "ovs_bonds" : {
35853 "description" : "Specify the interfaces used by the bonding device.",
35854 "format" : "pve-iface-list",
35855 "optional" : 1,
35856 "type" : "string",
35857 "typetext" : "<string>"
35858 },
35859 "ovs_bridge" : {
35860 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
35861 "format" : "pve-iface",
35862 "optional" : 1,
35863 "type" : "string",
35864 "typetext" : "<string>"
35865 },
35866 "ovs_options" : {
35867 "description" : "OVS interface options.",
35868 "maxLength" : 1024,
35869 "optional" : 1,
35870 "type" : "string",
35871 "typetext" : "<string>"
35872 },
35873 "ovs_ports" : {
1e3f8156 35874 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
35875 "format" : "pve-iface-list",
35876 "optional" : 1,
35877 "type" : "string",
35878 "typetext" : "<string>"
35879 },
35880 "ovs_tag" : {
35881 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
35882 "maximum" : 4094,
35883 "minimum" : 1,
35884 "optional" : 1,
35885 "type" : "integer",
35886 "typetext" : "<integer> (1 - 4094)"
35887 },
35888 "slaves" : {
35889 "description" : "Specify the interfaces used by the bonding device.",
35890 "format" : "pve-iface-list",
35891 "optional" : 1,
35892 "type" : "string",
35893 "typetext" : "<string>"
35894 },
35895 "type" : {
35896 "description" : "Network interface type",
35897 "enum" : [
35898 "bridge",
35899 "bond",
35900 "eth",
35901 "alias",
35902 "vlan",
35903 "OVSBridge",
35904 "OVSBond",
35905 "OVSPort",
35906 "OVSIntPort",
35907 "unknown"
35908 ],
35909 "type" : "string"
e9cd3bd4
TL
35910 },
35911 "vlan-id" : {
35912 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
35913 "maximum" : 4094,
35914 "minimum" : 1,
35915 "optional" : 1,
35916 "type" : "integer",
35917 "typetext" : "<integer> (1 - 4094)"
35918 },
35919 "vlan-raw-device" : {
35920 "description" : "Specify the raw interface for the vlan interface.",
35921 "format" : "pve-iface",
35922 "optional" : 1,
35923 "type" : "string",
35924 "typetext" : "<string>"
7aacca6f
DM
35925 }
35926 }
35927 },
35a75dd3
DM
35928 "permissions" : {
35929 "check" : [
35930 "perm",
35931 "/nodes/{node}",
35932 [
35933 "Sys.Modify"
35934 ]
35935 ]
35936 },
7aacca6f 35937 "protected" : 1,
7aacca6f 35938 "proxyto" : "node",
44660702
DM
35939 "returns" : {
35940 "type" : "null"
35941 }
35942 },
35943 "PUT" : {
e9cd3bd4 35944 "allowtoken" : 1,
4d47f125 35945 "description" : "Reload network configuration",
44660702 35946 "method" : "PUT",
4d47f125 35947 "name" : "reload_network_config",
7aacca6f
DM
35948 "parameters" : {
35949 "additionalProperties" : 0,
35950 "properties" : {
7aacca6f 35951 "node" : {
7aacca6f 35952 "description" : "The cluster node name.",
44660702 35953 "format" : "pve-node",
013dc89f
DM
35954 "type" : "string",
35955 "typetext" : "<string>"
7aacca6f
DM
35956 }
35957 }
35958 },
35a75dd3
DM
35959 "permissions" : {
35960 "check" : [
35961 "perm",
35962 "/nodes/{node}",
35963 [
35964 "Sys.Modify"
35965 ]
35966 ]
35967 },
44660702
DM
35968 "protected" : 1,
35969 "proxyto" : "node",
7aacca6f 35970 "returns" : {
4d47f125 35971 "type" : "string"
44660702 35972 }
7aacca6f
DM
35973 }
35974 },
4d47f125
TL
35975 "leaf" : 0,
35976 "path" : "/nodes/{node}/network",
35977 "text" : "network"
7aacca6f
DM
35978 },
35979 {
7aacca6f
DM
35980 "children" : [
35981 {
4d47f125
TL
35982 "children" : [
35983 {
35984 "info" : {
35985 "GET" : {
e9cd3bd4 35986 "allowtoken" : 1,
4d47f125
TL
35987 "description" : "Read task log.",
35988 "method" : "GET",
35989 "name" : "read_task_log",
35990 "parameters" : {
35991 "additionalProperties" : 0,
35992 "properties" : {
35993 "limit" : {
35994 "default" : 50,
5370fa8c 35995 "description" : "The maximum amount of lines that should be printed.",
4d47f125
TL
35996 "minimum" : 0,
35997 "optional" : 1,
35998 "type" : "integer",
35999 "typetext" : "<integer> (0 - N)"
36000 },
36001 "node" : {
36002 "description" : "The cluster node name.",
36003 "format" : "pve-node",
36004 "type" : "string",
36005 "typetext" : "<string>"
36006 },
36007 "start" : {
36008 "default" : 0,
5370fa8c 36009 "description" : "The line number to start printing at.",
4d47f125
TL
36010 "minimum" : 0,
36011 "optional" : 1,
36012 "type" : "integer",
36013 "typetext" : "<integer> (0 - N)"
36014 },
36015 "upid" : {
5370fa8c 36016 "description" : "The task's unique ID.",
4d47f125
TL
36017 "type" : "string",
36018 "typetext" : "<string>"
36019 }
36020 }
36021 },
36022 "permissions" : {
5370fa8c 36023 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125
TL
36024 "user" : "all"
36025 },
36026 "protected" : 1,
36027 "proxyto" : "node",
36028 "returns" : {
36029 "items" : {
36030 "properties" : {
36031 "n" : {
36032 "description" : "Line number",
36033 "type" : "integer"
36034 },
36035 "t" : {
36036 "description" : "Line text",
36037 "type" : "string"
36038 }
36039 },
36040 "type" : "object"
36041 },
36042 "type" : "array"
36043 }
36044 }
36045 },
36046 "leaf" : 1,
36047 "path" : "/nodes/{node}/tasks/{upid}/log",
36048 "text" : "log"
36049 },
36050 {
36051 "info" : {
36052 "GET" : {
e9cd3bd4 36053 "allowtoken" : 1,
4d47f125
TL
36054 "description" : "Read task status.",
36055 "method" : "GET",
36056 "name" : "read_task_status",
36057 "parameters" : {
36058 "additionalProperties" : 0,
36059 "properties" : {
36060 "node" : {
36061 "description" : "The cluster node name.",
36062 "format" : "pve-node",
36063 "type" : "string",
36064 "typetext" : "<string>"
36065 },
36066 "upid" : {
5370fa8c 36067 "description" : "The task's unique ID.",
4d47f125
TL
36068 "type" : "string",
36069 "typetext" : "<string>"
36070 }
36071 }
36072 },
36073 "permissions" : {
5370fa8c 36074 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they are not the owner of the task.",
4d47f125
TL
36075 "user" : "all"
36076 },
36077 "protected" : 1,
36078 "proxyto" : "node",
36079 "returns" : {
36080 "properties" : {
5370fa8c
TL
36081 "exitstatus" : {
36082 "optional" : 1,
36083 "type" : "string"
36084 },
36085 "id" : {
36086 "type" : "string"
36087 },
36088 "node" : {
36089 "type" : "string"
36090 },
4d47f125
TL
36091 "pid" : {
36092 "type" : "integer"
36093 },
5370fa8c
TL
36094 "starttime" : {
36095 "type" : "number"
36096 },
4d47f125
TL
36097 "status" : {
36098 "enum" : [
36099 "running",
36100 "stopped"
36101 ],
36102 "type" : "string"
5370fa8c
TL
36103 },
36104 "type" : {
36105 "type" : "string"
36106 },
36107 "upid" : {
36108 "type" : "string"
36109 },
36110 "user" : {
36111 "type" : "string"
4d47f125
TL
36112 }
36113 },
36114 "type" : "object"
36115 }
36116 }
36117 },
36118 "leaf" : 1,
36119 "path" : "/nodes/{node}/tasks/{upid}/status",
36120 "text" : "status"
36121 }
36122 ],
56122987 36123 "info" : {
7aacca6f 36124 "DELETE" : {
e9cd3bd4 36125 "allowtoken" : 1,
4d47f125 36126 "description" : "Stop a task.",
44660702 36127 "method" : "DELETE",
4d47f125 36128 "name" : "stop_task",
44660702
DM
36129 "parameters" : {
36130 "additionalProperties" : 0,
36131 "properties" : {
44660702
DM
36132 "node" : {
36133 "description" : "The cluster node name.",
36134 "format" : "pve-node",
013dc89f
DM
36135 "type" : "string",
36136 "typetext" : "<string>"
4d47f125
TL
36137 },
36138 "upid" : {
36139 "type" : "string",
36140 "typetext" : "<string>"
44660702
DM
36141 }
36142 }
7aacca6f
DM
36143 },
36144 "permissions" : {
5370fa8c 36145 "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125 36146 "user" : "all"
7aacca6f 36147 },
44660702 36148 "protected" : 1,
7aacca6f 36149 "proxyto" : "node",
44660702
DM
36150 "returns" : {
36151 "type" : "null"
36152 }
36153 },
36154 "GET" : {
e9cd3bd4 36155 "allowtoken" : 1,
4d47f125 36156 "description" : "",
44660702 36157 "method" : "GET",
4d47f125 36158 "name" : "upid_index",
7aacca6f
DM
36159 "parameters" : {
36160 "additionalProperties" : 0,
36161 "properties" : {
7aacca6f 36162 "node" : {
44660702 36163 "description" : "The cluster node name.",
7aacca6f 36164 "format" : "pve-node",
013dc89f
DM
36165 "type" : "string",
36166 "typetext" : "<string>"
7aacca6f 36167 },
4d47f125
TL
36168 "upid" : {
36169 "type" : "string",
36170 "typetext" : "<string>"
7aacca6f
DM
36171 }
36172 }
36173 },
7aacca6f 36174 "permissions" : {
4d47f125 36175 "user" : "all"
7aacca6f
DM
36176 },
36177 "returns" : {
4d47f125
TL
36178 "items" : {
36179 "properties" : {},
36180 "type" : "object"
36181 },
36182 "links" : [
36183 {
36184 "href" : "{name}",
36185 "rel" : "child"
36186 }
36187 ],
36188 "type" : "array"
44660702 36189 }
7aacca6f
DM
36190 }
36191 },
4d47f125
TL
36192 "leaf" : 0,
36193 "path" : "/nodes/{node}/tasks/{upid}",
36194 "text" : "{upid}"
7aacca6f
DM
36195 }
36196 ],
7aacca6f 36197 "info" : {
44660702 36198 "GET" : {
e9cd3bd4 36199 "allowtoken" : 1,
4d47f125 36200 "description" : "Read task list for one node (finished tasks).",
44660702 36201 "method" : "GET",
4d47f125 36202 "name" : "node_tasks",
44660702
DM
36203 "parameters" : {
36204 "additionalProperties" : 0,
36205 "properties" : {
4d47f125
TL
36206 "errors" : {
36207 "default" : 0,
5370fa8c 36208 "description" : "Only list tasks with a status of ERROR.",
7aacca6f 36209 "optional" : 1,
4d47f125
TL
36210 "type" : "boolean",
36211 "typetext" : "<boolean>"
7aacca6f 36212 },
4d47f125
TL
36213 "limit" : {
36214 "default" : 50,
36215 "description" : "Only list this amount of tasks.",
36216 "minimum" : 0,
44660702 36217 "optional" : 1,
4d47f125
TL
36218 "type" : "integer",
36219 "typetext" : "<integer> (0 - N)"
36220 },
36221 "node" : {
36222 "description" : "The cluster node name.",
36223 "format" : "pve-node",
013dc89f
DM
36224 "type" : "string",
36225 "typetext" : "<string>"
44660702 36226 },
34f3e481
TL
36227 "since" : {
36228 "description" : "Only list tasks since this UNIX epoch.",
36229 "optional" : 1,
36230 "type" : "integer",
36231 "typetext" : "<integer>"
36232 },
5f26e15b
TL
36233 "source" : {
36234 "default" : "archive",
36235 "description" : "List archived, active or all tasks.",
36236 "enum" : [
36237 "archive",
36238 "active",
36239 "all"
36240 ],
36241 "optional" : 1,
36242 "type" : "string"
36243 },
4d47f125
TL
36244 "start" : {
36245 "default" : 0,
36246 "description" : "List tasks beginning from this offset.",
36247 "minimum" : 0,
44660702 36248 "optional" : 1,
4d47f125
TL
36249 "type" : "integer",
36250 "typetext" : "<integer> (0 - N)"
44660702 36251 },
34f3e481
TL
36252 "statusfilter" : {
36253 "description" : "List of Task States that should be returned.",
36254 "format" : "pve-task-status-type-list",
36255 "optional" : 1,
36256 "type" : "string",
36257 "typetext" : "<string>"
36258 },
5f26e15b
TL
36259 "typefilter" : {
36260 "description" : "Only list tasks of this type (e.g., vzstart, vzdump).",
36261 "optional" : 1,
36262 "type" : "string",
36263 "typetext" : "<string>"
36264 },
34f3e481
TL
36265 "until" : {
36266 "description" : "Only list tasks until this UNIX epoch.",
36267 "optional" : 1,
36268 "type" : "integer",
36269 "typetext" : "<integer>"
36270 },
4d47f125
TL
36271 "userfilter" : {
36272 "description" : "Only list tasks from this user.",
44660702 36273 "optional" : 1,
013dc89f
DM
36274 "type" : "string",
36275 "typetext" : "<string>"
44660702 36276 },
4d47f125
TL
36277 "vmid" : {
36278 "description" : "Only list tasks for this VM.",
36279 "format" : "pve-vmid",
44660702
DM
36280 "minimum" : 1,
36281 "optional" : 1,
4bd7df8b 36282 "type" : "integer",
4d47f125
TL
36283 "typetext" : "<integer> (1 - N)"
36284 }
36285 }
36286 },
36287 "permissions" : {
36288 "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).",
36289 "user" : "all"
36290 },
36291 "proxyto" : "node",
36292 "returns" : {
36293 "items" : {
36294 "properties" : {
36295 "endtime" : {
36296 "optional" : 1,
36297 "title" : "Endtime",
36298 "type" : "integer"
36299 },
36300 "id" : {
4d47f125
TL
36301 "title" : "ID",
36302 "type" : "string"
36303 },
36304 "node" : {
4d47f125
TL
36305 "title" : "Node",
36306 "type" : "string"
36307 },
36308 "pid" : {
4d47f125
TL
36309 "title" : "PID",
36310 "type" : "integer"
36311 },
36312 "pstart" : {
4d47f125
TL
36313 "type" : "integer"
36314 },
36315 "starttime" : {
4d47f125
TL
36316 "title" : "Starttime",
36317 "type" : "integer"
36318 },
36319 "status" : {
36320 "optional" : 1,
36321 "title" : "Status",
36322 "type" : "string"
36323 },
36324 "type" : {
4d47f125
TL
36325 "title" : "Type",
36326 "type" : "string"
36327 },
36328 "upid" : {
36329 "title" : "UPID",
36330 "type" : "string"
36331 },
36332 "user" : {
4d47f125
TL
36333 "title" : "User",
36334 "type" : "string"
36335 }
44660702 36336 },
4d47f125
TL
36337 "type" : "object"
36338 },
36339 "links" : [
36340 {
36341 "href" : "{upid}",
36342 "rel" : "child"
36343 }
36344 ],
36345 "type" : "array"
36346 }
36347 }
36348 },
36349 "leaf" : 0,
36350 "path" : "/nodes/{node}/tasks",
36351 "text" : "tasks"
36352 },
36353 {
36354 "children" : [
36355 {
36356 "info" : {
36357 "GET" : {
e9cd3bd4 36358 "allowtoken" : 1,
d2656385 36359 "description" : "Scan remote NFS server.",
4d47f125 36360 "method" : "GET",
d2656385 36361 "name" : "nfsscan",
4d47f125
TL
36362 "parameters" : {
36363 "additionalProperties" : 0,
36364 "properties" : {
36365 "node" : {
36366 "description" : "The cluster node name.",
36367 "format" : "pve-node",
36368 "type" : "string",
36369 "typetext" : "<string>"
d2656385
TL
36370 },
36371 "server" : {
36372 "description" : "The server address (name or IP).",
36373 "format" : "pve-storage-server",
36374 "type" : "string",
36375 "typetext" : "<string>"
4d47f125
TL
36376 }
36377 }
44660702 36378 },
4d47f125
TL
36379 "permissions" : {
36380 "check" : [
36381 "perm",
36382 "/storage",
36383 [
36384 "Datastore.Allocate"
36385 ]
36386 ]
36387 },
36388 "protected" : 1,
36389 "proxyto" : "node",
36390 "returns" : {
36391 "items" : {
36392 "properties" : {
d2656385
TL
36393 "options" : {
36394 "description" : "NFS export options.",
36395 "type" : "string"
36396 },
36397 "path" : {
36398 "description" : "The exported path.",
4d47f125
TL
36399 "type" : "string"
36400 }
36401 },
36402 "type" : "object"
36403 },
36404 "type" : "array"
36405 }
36406 }
36407 },
36408 "leaf" : 1,
d2656385
TL
36409 "path" : "/nodes/{node}/scan/nfs",
36410 "text" : "nfs"
4d47f125
TL
36411 },
36412 {
36413 "info" : {
36414 "GET" : {
e9cd3bd4 36415 "allowtoken" : 1,
d2656385 36416 "description" : "Scan remote CIFS server.",
4d47f125 36417 "method" : "GET",
d2656385 36418 "name" : "cifsscan",
4d47f125
TL
36419 "parameters" : {
36420 "additionalProperties" : 0,
36421 "properties" : {
d2656385
TL
36422 "domain" : {
36423 "description" : "SMB domain (Workgroup).",
36424 "optional" : 1,
36425 "type" : "string",
36426 "typetext" : "<string>"
36427 },
4d47f125
TL
36428 "node" : {
36429 "description" : "The cluster node name.",
36430 "format" : "pve-node",
36431 "type" : "string",
36432 "typetext" : "<string>"
36433 },
d2656385
TL
36434 "password" : {
36435 "description" : "User password.",
36436 "optional" : 1,
36437 "type" : "string",
36438 "typetext" : "<string>"
36439 },
4d47f125
TL
36440 "server" : {
36441 "description" : "The server address (name or IP).",
36442 "format" : "pve-storage-server",
36443 "type" : "string",
36444 "typetext" : "<string>"
d2656385
TL
36445 },
36446 "username" : {
36447 "description" : "User name.",
36448 "optional" : 1,
36449 "type" : "string",
36450 "typetext" : "<string>"
4d47f125
TL
36451 }
36452 }
36453 },
36454 "permissions" : {
36455 "check" : [
36456 "perm",
36457 "/storage",
36458 [
36459 "Datastore.Allocate"
36460 ]
36461 ]
36462 },
36463 "protected" : 1,
36464 "proxyto" : "node",
36465 "returns" : {
36466 "items" : {
36467 "properties" : {
d2656385
TL
36468 "description" : {
36469 "description" : "Descriptive text from server.",
4d47f125
TL
36470 "type" : "string"
36471 },
d2656385
TL
36472 "share" : {
36473 "description" : "The cifs share name.",
4d47f125
TL
36474 "type" : "string"
36475 }
36476 },
36477 "type" : "object"
36478 },
36479 "type" : "array"
36480 }
36481 }
36482 },
36483 "leaf" : 1,
d2656385
TL
36484 "path" : "/nodes/{node}/scan/cifs",
36485 "text" : "cifs"
4d47f125
TL
36486 },
36487 {
36488 "info" : {
36489 "GET" : {
e9cd3bd4 36490 "allowtoken" : 1,
d2656385 36491 "description" : "Scan remote Proxmox Backup Server.",
4d47f125 36492 "method" : "GET",
d2656385 36493 "name" : "pbsscan",
4d47f125
TL
36494 "parameters" : {
36495 "additionalProperties" : 0,
36496 "properties" : {
d2656385
TL
36497 "fingerprint" : {
36498 "description" : "Certificate SHA 256 fingerprint.",
4d47f125 36499 "optional" : 1,
d2656385
TL
36500 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
36501 "type" : "string"
4d47f125
TL
36502 },
36503 "node" : {
36504 "description" : "The cluster node name.",
36505 "format" : "pve-node",
36506 "type" : "string",
36507 "typetext" : "<string>"
36508 },
36509 "password" : {
d2656385 36510 "description" : "User password or API token secret.",
4d47f125
TL
36511 "type" : "string",
36512 "typetext" : "<string>"
36513 },
d2656385
TL
36514 "port" : {
36515 "default" : 8007,
36516 "description" : "Optional port.",
36517 "maximum" : 65535,
36518 "minimum" : 1,
36519 "optional" : 1,
36520 "type" : "integer",
36521 "typetext" : "<integer> (1 - 65535)"
36522 },
4d47f125
TL
36523 "server" : {
36524 "description" : "The server address (name or IP).",
36525 "format" : "pve-storage-server",
36526 "type" : "string",
36527 "typetext" : "<string>"
36528 },
36529 "username" : {
d2656385 36530 "description" : "User-name or API token-ID.",
4d47f125
TL
36531 "type" : "string",
36532 "typetext" : "<string>"
36533 }
36534 }
36535 },
36536 "permissions" : {
36537 "check" : [
36538 "perm",
36539 "/storage",
36540 [
36541 "Datastore.Allocate"
36542 ]
36543 ]
36544 },
36545 "protected" : 1,
36546 "proxyto" : "node",
36547 "returns" : {
36548 "items" : {
36549 "properties" : {
d2656385
TL
36550 "comment" : {
36551 "description" : "Comment from server.",
36552 "optional" : 1,
4d47f125
TL
36553 "type" : "string"
36554 },
d2656385
TL
36555 "store" : {
36556 "description" : "The datastore name.",
4d47f125
TL
36557 "type" : "string"
36558 }
36559 },
36560 "type" : "object"
36561 },
36562 "type" : "array"
56122987 36563 }
44660702 36564 }
56122987 36565 },
4d47f125 36566 "leaf" : 1,
d2656385
TL
36567 "path" : "/nodes/{node}/scan/pbs",
36568 "text" : "pbs"
4d47f125 36569 },
44660702 36570 {
4d47f125
TL
36571 "info" : {
36572 "GET" : {
e9cd3bd4 36573 "allowtoken" : 1,
4d47f125
TL
36574 "description" : "Scan remote GlusterFS server.",
36575 "method" : "GET",
36576 "name" : "glusterfsscan",
36577 "parameters" : {
36578 "additionalProperties" : 0,
36579 "properties" : {
36580 "node" : {
36581 "description" : "The cluster node name.",
36582 "format" : "pve-node",
36583 "type" : "string",
36584 "typetext" : "<string>"
7aacca6f 36585 },
4d47f125
TL
36586 "server" : {
36587 "description" : "The server address (name or IP).",
36588 "format" : "pve-storage-server",
36589 "type" : "string",
36590 "typetext" : "<string>"
44660702 36591 }
7aacca6f 36592 }
56122987 36593 },
4d47f125
TL
36594 "permissions" : {
36595 "check" : [
36596 "perm",
36597 "/storage",
36598 [
36599 "Datastore.Allocate"
36600 ]
36601 ]
36602 },
36603 "protected" : 1,
36604 "proxyto" : "node",
36605 "returns" : {
36606 "items" : {
36607 "properties" : {
36608 "volname" : {
36609 "description" : "The volume name.",
36610 "type" : "string"
7aacca6f
DM
36611 }
36612 },
4d47f125
TL
36613 "type" : "object"
36614 },
36615 "type" : "array"
36616 }
36617 }
36618 },
36619 "leaf" : 1,
36620 "path" : "/nodes/{node}/scan/glusterfs",
36621 "text" : "glusterfs"
36622 },
36623 {
36624 "info" : {
36625 "GET" : {
e9cd3bd4 36626 "allowtoken" : 1,
4d47f125
TL
36627 "description" : "Scan remote iSCSI server.",
36628 "method" : "GET",
36629 "name" : "iscsiscan",
36630 "parameters" : {
36631 "additionalProperties" : 0,
36632 "properties" : {
36633 "node" : {
36634 "description" : "The cluster node name.",
36635 "format" : "pve-node",
36636 "type" : "string",
36637 "typetext" : "<string>"
56122987 36638 },
4d47f125
TL
36639 "portal" : {
36640 "description" : "The iSCSI portal (IP or DNS name with optional port).",
36641 "format" : "pve-storage-portal-dns",
36642 "type" : "string",
36643 "typetext" : "<string>"
36644 }
36645 }
36646 },
36647 "permissions" : {
36648 "check" : [
36649 "perm",
36650 "/storage",
36651 [
36652 "Datastore.Allocate"
36653 ]
36654 ]
36655 },
36656 "protected" : 1,
36657 "proxyto" : "node",
36658 "returns" : {
36659 "items" : {
36660 "properties" : {
36661 "portal" : {
36662 "description" : "The iSCSI portal name.",
36663 "type" : "string"
7aacca6f 36664 },
4d47f125
TL
36665 "target" : {
36666 "description" : "The iSCSI target name.",
36667 "type" : "string"
36668 }
36669 },
36670 "type" : "object"
36671 },
36672 "type" : "array"
36673 }
36674 }
36675 },
36676 "leaf" : 1,
36677 "path" : "/nodes/{node}/scan/iscsi",
36678 "text" : "iscsi"
36679 },
36680 {
36681 "info" : {
36682 "GET" : {
e9cd3bd4 36683 "allowtoken" : 1,
4d47f125
TL
36684 "description" : "List local LVM volume groups.",
36685 "method" : "GET",
36686 "name" : "lvmscan",
36687 "parameters" : {
36688 "additionalProperties" : 0,
36689 "properties" : {
36690 "node" : {
36691 "description" : "The cluster node name.",
36692 "format" : "pve-node",
36693 "type" : "string",
36694 "typetext" : "<string>"
56122987 36695 }
7aacca6f 36696 }
44660702 36697 },
4d47f125
TL
36698 "permissions" : {
36699 "check" : [
36700 "perm",
36701 "/storage",
36702 [
36703 "Datastore.Allocate"
36704 ]
36705 ]
36706 },
36707 "protected" : 1,
36708 "proxyto" : "node",
36709 "returns" : {
36710 "items" : {
36711 "properties" : {
36712 "vg" : {
36713 "description" : "The LVM logical volume group name.",
36714 "type" : "string"
36715 }
36716 },
36717 "type" : "object"
36718 },
36719 "type" : "array"
36720 }
56122987 36721 }
4d47f125
TL
36722 },
36723 "leaf" : 1,
36724 "path" : "/nodes/{node}/scan/lvm",
36725 "text" : "lvm"
36726 },
36727 {
44660702 36728 "info" : {
4d47f125 36729 "GET" : {
e9cd3bd4 36730 "allowtoken" : 1,
4d47f125
TL
36731 "description" : "List local LVM Thin Pools.",
36732 "method" : "GET",
36733 "name" : "lvmthinscan",
44660702
DM
36734 "parameters" : {
36735 "additionalProperties" : 0,
36736 "properties" : {
36737 "node" : {
36738 "description" : "The cluster node name.",
36739 "format" : "pve-node",
013dc89f
DM
36740 "type" : "string",
36741 "typetext" : "<string>"
44660702 36742 },
4d47f125
TL
36743 "vg" : {
36744 "maxLength" : 100,
36745 "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
36746 "type" : "string"
44660702 36747 }
7aacca6f 36748 }
44660702
DM
36749 },
36750 "permissions" : {
4d47f125
TL
36751 "check" : [
36752 "perm",
36753 "/storage",
36754 [
36755 "Datastore.Allocate"
36756 ]
36757 ]
44660702
DM
36758 },
36759 "protected" : 1,
36760 "proxyto" : "node",
36761 "returns" : {
4d47f125
TL
36762 "items" : {
36763 "properties" : {
36764 "lv" : {
36765 "description" : "The LVM Thin Pool name (LVM logical volume).",
36766 "type" : "string"
36767 }
36768 },
36769 "type" : "object"
36770 },
36771 "type" : "array"
7aacca6f 36772 }
4d47f125
TL
36773 }
36774 },
36775 "leaf" : 1,
36776 "path" : "/nodes/{node}/scan/lvmthin",
36777 "text" : "lvmthin"
36778 },
d2656385
TL
36779 {
36780 "info" : {
36781 "GET" : {
36782 "allowtoken" : 1,
36783 "description" : "Scan zfs pool list on local node.",
36784 "method" : "GET",
36785 "name" : "zfsscan",
36786 "parameters" : {
36787 "additionalProperties" : 0,
36788 "properties" : {
36789 "node" : {
36790 "description" : "The cluster node name.",
36791 "format" : "pve-node",
36792 "type" : "string",
36793 "typetext" : "<string>"
36794 }
36795 }
36796 },
36797 "permissions" : {
36798 "check" : [
36799 "perm",
36800 "/storage",
36801 [
36802 "Datastore.Allocate"
36803 ]
36804 ]
36805 },
36806 "protected" : 1,
36807 "proxyto" : "node",
36808 "returns" : {
36809 "items" : {
36810 "properties" : {
36811 "pool" : {
36812 "description" : "ZFS pool name.",
36813 "type" : "string"
36814 }
36815 },
36816 "type" : "object"
36817 },
36818 "type" : "array"
36819 }
36820 }
36821 },
36822 "leaf" : 1,
36823 "path" : "/nodes/{node}/scan/zfs",
36824 "text" : "zfs"
44660702
DM
36825 }
36826 ],
36827 "info" : {
36828 "GET" : {
e9cd3bd4 36829 "allowtoken" : 1,
4d47f125 36830 "description" : "Index of available scan methods",
44660702 36831 "method" : "GET",
4d47f125 36832 "name" : "index",
56122987 36833 "parameters" : {
7aacca6f 36834 "additionalProperties" : 0,
56122987 36835 "properties" : {
56122987
DM
36836 "node" : {
36837 "description" : "The cluster node name.",
44660702 36838 "format" : "pve-node",
013dc89f
DM
36839 "type" : "string",
36840 "typetext" : "<string>"
56122987
DM
36841 }
36842 }
36843 },
7aacca6f
DM
36844 "permissions" : {
36845 "user" : "all"
36846 },
56122987
DM
36847 "returns" : {
36848 "items" : {
36849 "properties" : {
4d47f125 36850 "method" : {
56122987
DM
36851 "type" : "string"
36852 }
36853 },
36854 "type" : "object"
36855 },
56122987
DM
36856 "links" : [
36857 {
4d47f125 36858 "href" : "{method}",
44660702 36859 "rel" : "child"
56122987 36860 }
44660702
DM
36861 ],
36862 "type" : "array"
56122987
DM
36863 }
36864 }
36865 },
44660702 36866 "leaf" : 0,
4d47f125
TL
36867 "path" : "/nodes/{node}/scan",
36868 "text" : "scan"
44660702 36869 },
e2d681b3
TL
36870 {
36871 "children" : [
36872 {
36873 "children" : [
36874 {
36875 "children" : [
36876 {
36877 "info" : {
36878 "GET" : {
e9cd3bd4 36879 "allowtoken" : 1,
e2d681b3
TL
36880 "description" : "List mediated device types for given PCI device.",
36881 "method" : "GET",
36882 "name" : "mdevscan",
36883 "parameters" : {
36884 "additionalProperties" : 0,
36885 "properties" : {
36886 "node" : {
36887 "description" : "The cluster node name.",
36888 "format" : "pve-node",
36889 "type" : "string",
36890 "typetext" : "<string>"
36891 },
36892 "pciid" : {
36893 "description" : "The PCI ID to list the mdev types for.",
36894 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
36895 "type" : "string"
36896 }
36897 }
36898 },
36899 "permissions" : {
36900 "check" : [
36901 "perm",
36902 "/",
36903 [
36904 "Sys.Modify"
36905 ]
36906 ]
36907 },
36908 "protected" : 1,
36909 "proxyto" : "node",
36910 "returns" : {
36911 "items" : {
36912 "properties" : {
36913 "available" : {
36914 "description" : "The number of still available instances of this type.",
36915 "type" : "integer"
36916 },
36917 "description" : {
36918 "type" : "string"
36919 },
36920 "type" : {
36921 "description" : "The name of the mdev type.",
36922 "type" : "string"
36923 }
36924 },
36925 "type" : "object"
36926 },
36927 "type" : "array"
36928 }
36929 }
36930 },
36931 "leaf" : 1,
36932 "path" : "/nodes/{node}/hardware/pci/{pciid}/mdev",
36933 "text" : "mdev"
36934 }
36935 ],
36936 "info" : {
36937 "GET" : {
e9cd3bd4 36938 "allowtoken" : 1,
e2d681b3
TL
36939 "description" : "Index of available pci methods",
36940 "method" : "GET",
36941 "name" : "pciindex",
36942 "parameters" : {
36943 "additionalProperties" : 0,
36944 "properties" : {
36945 "node" : {
36946 "description" : "The cluster node name.",
36947 "format" : "pve-node",
36948 "type" : "string",
36949 "typetext" : "<string>"
36950 },
36951 "pciid" : {
36952 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
36953 "type" : "string"
36954 }
36955 }
36956 },
36957 "permissions" : {
36958 "user" : "all"
36959 },
36960 "returns" : {
36961 "items" : {
36962 "properties" : {
36963 "method" : {
36964 "type" : "string"
36965 }
36966 },
36967 "type" : "object"
36968 },
36969 "links" : [
36970 {
36971 "href" : "{method}",
36972 "rel" : "child"
36973 }
36974 ],
36975 "type" : "array"
36976 }
36977 }
36978 },
36979 "leaf" : 0,
36980 "path" : "/nodes/{node}/hardware/pci/{pciid}",
36981 "text" : "{pciid}"
36982 }
36983 ],
36984 "info" : {
36985 "GET" : {
e9cd3bd4 36986 "allowtoken" : 1,
e2d681b3
TL
36987 "description" : "List local PCI devices.",
36988 "method" : "GET",
36989 "name" : "pciscan",
36990 "parameters" : {
36991 "additionalProperties" : 0,
36992 "properties" : {
36993 "node" : {
36994 "description" : "The cluster node name.",
36995 "format" : "pve-node",
36996 "type" : "string",
36997 "typetext" : "<string>"
36998 },
36999 "pci-class-blacklist" : {
5370fa8c
TL
37000 "default" : "05;06;0b",
37001 "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
37002 "format" : "string-list",
37003 "optional" : 1,
37004 "type" : "string",
37005 "typetext" : "<string>"
37006 },
37007 "verbose" : {
37008 "default" : 1,
37009 "description" : "If disabled, does only print the PCI IDs. Otherwise, additional information like vendor and device will be returned.",
37010 "optional" : 1,
37011 "type" : "boolean",
37012 "typetext" : "<boolean>"
37013 }
37014 }
37015 },
37016 "permissions" : {
37017 "check" : [
37018 "perm",
37019 "/",
37020 [
37021 "Sys.Modify"
37022 ]
37023 ]
37024 },
37025 "protected" : 1,
37026 "proxyto" : "node",
37027 "returns" : {
37028 "items" : {
37029 "properties" : {
37030 "class" : {
37031 "description" : "The PCI Class of the device.",
37032 "type" : "string"
37033 },
37034 "device" : {
37035 "description" : "The Device ID.",
37036 "type" : "string"
37037 },
37038 "device_name" : {
37039 "optional" : 1,
37040 "type" : "string"
37041 },
37042 "id" : {
37043 "description" : "The PCI ID.",
37044 "type" : "string"
37045 },
37046 "iommugroup" : {
37047 "description" : "The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.",
37048 "type" : "integer"
37049 },
37050 "mdev" : {
37051 "description" : "If set, marks that the device is capable of creating mediated devices.",
37052 "optional" : 1,
37053 "type" : "boolean"
37054 },
37055 "subsystem_device" : {
37056 "description" : "The Subsystem Device ID.",
37057 "optional" : 1,
37058 "type" : "string"
37059 },
37060 "subsystem_device_name" : {
37061 "optional" : 1,
37062 "type" : "string"
37063 },
37064 "subsystem_vendor" : {
37065 "description" : "The Subsystem Vendor ID.",
37066 "optional" : 1,
37067 "type" : "string"
37068 },
37069 "subsystem_vendor_name" : {
37070 "optional" : 1,
37071 "type" : "string"
37072 },
37073 "vendor" : {
37074 "description" : "The Vendor ID.",
37075 "type" : "string"
37076 },
37077 "vendor_name" : {
37078 "optional" : 1,
37079 "type" : "string"
37080 }
37081 },
37082 "type" : "object"
37083 },
37084 "links" : [
37085 {
37086 "href" : "{id}",
37087 "rel" : "child"
37088 }
37089 ],
37090 "type" : "array"
37091 }
37092 }
37093 },
37094 "leaf" : 0,
37095 "path" : "/nodes/{node}/hardware/pci",
37096 "text" : "pci"
d2656385
TL
37097 },
37098 {
37099 "info" : {
37100 "GET" : {
37101 "allowtoken" : 1,
37102 "description" : "List local USB devices.",
37103 "method" : "GET",
37104 "name" : "usbscan",
37105 "parameters" : {
37106 "additionalProperties" : 0,
37107 "properties" : {
37108 "node" : {
37109 "description" : "The cluster node name.",
37110 "format" : "pve-node",
37111 "type" : "string",
37112 "typetext" : "<string>"
37113 }
37114 }
37115 },
37116 "permissions" : {
37117 "check" : [
37118 "perm",
37119 "/",
37120 [
37121 "Sys.Modify"
37122 ]
37123 ]
37124 },
37125 "protected" : 1,
37126 "proxyto" : "node",
37127 "returns" : {
37128 "items" : {
37129 "properties" : {
37130 "busnum" : {
37131 "type" : "integer"
37132 },
37133 "class" : {
37134 "type" : "integer"
37135 },
37136 "devnum" : {
37137 "type" : "integer"
37138 },
37139 "level" : {
37140 "type" : "integer"
37141 },
37142 "manufacturer" : {
37143 "optional" : 1,
37144 "type" : "string"
37145 },
37146 "port" : {
37147 "type" : "integer"
37148 },
37149 "prodid" : {
37150 "type" : "string"
37151 },
37152 "product" : {
37153 "optional" : 1,
37154 "type" : "string"
37155 },
37156 "serial" : {
37157 "optional" : 1,
37158 "type" : "string"
37159 },
37160 "speed" : {
37161 "type" : "string"
37162 },
37163 "usbpath" : {
37164 "optional" : 1,
37165 "type" : "string"
37166 },
37167 "vendid" : {
37168 "type" : "string"
37169 }
37170 },
37171 "type" : "object"
37172 },
37173 "type" : "array"
37174 }
37175 }
37176 },
37177 "leaf" : 1,
37178 "path" : "/nodes/{node}/hardware/usb",
37179 "text" : "usb"
e2d681b3
TL
37180 }
37181 ],
37182 "info" : {
37183 "GET" : {
e9cd3bd4 37184 "allowtoken" : 1,
e2d681b3
TL
37185 "description" : "Index of hardware types",
37186 "method" : "GET",
37187 "name" : "index",
37188 "parameters" : {
37189 "additionalProperties" : 0,
37190 "properties" : {
37191 "node" : {
37192 "description" : "The cluster node name.",
37193 "format" : "pve-node",
37194 "type" : "string",
37195 "typetext" : "<string>"
37196 }
37197 }
37198 },
37199 "permissions" : {
37200 "user" : "all"
37201 },
37202 "returns" : {
37203 "items" : {
37204 "properties" : {
37205 "type" : {
37206 "type" : "string"
37207 }
37208 },
37209 "type" : "object"
37210 },
37211 "links" : [
37212 {
37213 "href" : "{type}",
37214 "rel" : "child"
37215 }
37216 ],
37217 "type" : "array"
37218 }
37219 }
37220 },
37221 "leaf" : 0,
37222 "path" : "/nodes/{node}/hardware",
37223 "text" : "hardware"
37224 },
d2656385
TL
37225 {
37226 "children" : [
37227 {
37228 "children" : [
0695fdaf
TL
37229 {
37230 "info" : {
37231 "GET" : {
37232 "allowtoken" : 1,
37233 "description" : "List all custom and default CPU models.",
37234 "method" : "GET",
37235 "name" : "index",
37236 "parameters" : {
37237 "additionalProperties" : 0,
37238 "properties" : {
37239 "node" : {
37240 "description" : "The cluster node name.",
37241 "format" : "pve-node",
37242 "type" : "string",
37243 "typetext" : "<string>"
37244 }
37245 }
37246 },
37247 "permissions" : {
37248 "description" : "Only returns custom models when the current user has Sys.Audit on /nodes.",
37249 "user" : "all"
37250 },
37251 "returns" : {
37252 "items" : {
37253 "properties" : {
37254 "custom" : {
37255 "description" : "True if this is a custom CPU model.",
37256 "type" : "boolean"
37257 },
37258 "name" : {
37259 "description" : "Name of the CPU model. Identifies it for subsequent API calls. Prefixed with 'custom-' for custom models.",
37260 "type" : "string"
37261 },
37262 "vendor" : {
37263 "description" : "CPU vendor visible to the guest when this model is selected. Vendor of 'reported-model' in case of custom models.",
37264 "type" : "string"
37265 }
37266 },
37267 "type" : "object"
37268 },
37269 "links" : [
37270 {
37271 "href" : "{name}",
37272 "rel" : "child"
37273 }
37274 ],
37275 "type" : "array"
37276 }
37277 }
37278 },
37279 "leaf" : 1,
37280 "path" : "/nodes/{node}/capabilities/qemu/cpu",
37281 "text" : "cpu"
37282 },
d2656385
TL
37283 {
37284 "info" : {
37285 "GET" : {
37286 "allowtoken" : 1,
37287 "description" : "Get available QEMU/KVM machine types.",
37288 "method" : "GET",
37289 "name" : "types",
37290 "parameters" : {
37291 "additionalProperties" : 0,
37292 "properties" : {
37293 "node" : {
37294 "description" : "The cluster node name.",
37295 "format" : "pve-node",
37296 "type" : "string",
37297 "typetext" : "<string>"
37298 }
37299 }
37300 },
37301 "permissions" : {
37302 "user" : "all"
37303 },
37304 "proxyto" : "node",
37305 "returns" : {
37306 "items" : {
37307 "additionalProperties" : 1,
37308 "properties" : {
37309 "id" : {
37310 "description" : "Full name of machine type and version.",
37311 "type" : "string"
37312 },
37313 "type" : {
37314 "description" : "The machine type.",
37315 "enum" : [
37316 "q35",
37317 "i440fx"
37318 ],
37319 "type" : "string"
37320 },
37321 "version" : {
37322 "description" : "The machine version.",
37323 "type" : "string"
37324 }
37325 },
37326 "type" : "object"
37327 },
37328 "type" : "array"
37329 }
37330 }
37331 },
37332 "leaf" : 1,
37333 "path" : "/nodes/{node}/capabilities/qemu/machines",
37334 "text" : "machines"
37335 }
37336 ],
37337 "info" : {
37338 "GET" : {
37339 "allowtoken" : 1,
37340 "description" : "QEMU capabilities index.",
37341 "method" : "GET",
37342 "name" : "qemu_caps_index",
37343 "parameters" : {
37344 "additionalProperties" : 0,
37345 "properties" : {
37346 "node" : {
37347 "description" : "The cluster node name.",
37348 "format" : "pve-node",
37349 "type" : "string",
37350 "typetext" : "<string>"
37351 }
37352 }
37353 },
37354 "permissions" : {
37355 "user" : "all"
37356 },
37357 "returns" : {
37358 "items" : {
37359 "properties" : {},
37360 "type" : "object"
37361 },
37362 "links" : [
37363 {
37364 "href" : "{name}",
37365 "rel" : "child"
37366 }
37367 ],
37368 "type" : "array"
37369 }
37370 }
37371 },
37372 "leaf" : 0,
37373 "path" : "/nodes/{node}/capabilities/qemu",
37374 "text" : "qemu"
37375 }
37376 ],
37377 "info" : {
37378 "GET" : {
37379 "allowtoken" : 1,
37380 "description" : "Node capabilities index.",
37381 "method" : "GET",
37382 "name" : "index",
37383 "parameters" : {
37384 "additionalProperties" : 0,
37385 "properties" : {
37386 "node" : {
37387 "description" : "The cluster node name.",
37388 "format" : "pve-node",
37389 "type" : "string",
37390 "typetext" : "<string>"
37391 }
37392 }
37393 },
37394 "permissions" : {
37395 "user" : "all"
37396 },
37397 "returns" : {
37398 "items" : {
37399 "properties" : {},
37400 "type" : "object"
37401 },
37402 "links" : [
37403 {
37404 "href" : "{name}",
37405 "rel" : "child"
37406 }
37407 ],
37408 "type" : "array"
37409 }
37410 }
37411 },
37412 "leaf" : 0,
37413 "path" : "/nodes/{node}/capabilities",
37414 "text" : "capabilities"
37415 },
44660702 37416 {
56122987
DM
37417 "children" : [
37418 {
4d47f125 37419 "children" : [
739d4d64
TL
37420 {
37421 "info" : {
37422 "DELETE" : {
37423 "allowtoken" : 1,
37424 "description" : "Prune backups. Only those using the standard naming scheme are considered.",
37425 "method" : "DELETE",
37426 "name" : "delete",
37427 "parameters" : {
37428 "additionalProperties" : 0,
37429 "properties" : {
37430 "node" : {
37431 "description" : "The cluster node name.",
37432 "format" : "pve-node",
37433 "type" : "string",
37434 "typetext" : "<string>"
37435 },
37436 "prune-backups" : {
37437 "description" : "Use these retention options instead of those from the storage configuration.",
37438 "format" : "prune-backups",
37439 "optional" : 1,
37440 "type" : "string",
4772952b 37441 "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
37442 },
37443 "storage" : {
37444 "description" : "The storage identifier.",
37445 "format" : "pve-storage-id",
37446 "type" : "string",
37447 "typetext" : "<string>"
37448 },
37449 "type" : {
37450 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
37451 "enum" : [
37452 "qemu",
37453 "lxc"
37454 ],
37455 "optional" : 1,
37456 "type" : "string"
37457 },
37458 "vmid" : {
37459 "description" : "Only prune backups for this VM.",
37460 "format" : "pve-vmid",
37461 "minimum" : 1,
37462 "optional" : 1,
37463 "type" : "integer",
37464 "typetext" : "<integer> (1 - N)"
37465 }
37466 }
37467 },
37468 "permissions" : {
37469 "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).",
37470 "user" : "all"
37471 },
37472 "protected" : 1,
37473 "proxyto" : "node",
37474 "returns" : {
37475 "type" : "string"
37476 }
37477 },
37478 "GET" : {
37479 "allowtoken" : 1,
4772952b 37480 "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
37481 "method" : "GET",
37482 "name" : "dryrun",
37483 "parameters" : {
37484 "additionalProperties" : 0,
37485 "properties" : {
37486 "node" : {
37487 "description" : "The cluster node name.",
37488 "format" : "pve-node",
37489 "type" : "string",
37490 "typetext" : "<string>"
37491 },
37492 "prune-backups" : {
37493 "description" : "Use these retention options instead of those from the storage configuration.",
37494 "format" : "prune-backups",
37495 "optional" : 1,
37496 "type" : "string",
4772952b 37497 "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
37498 },
37499 "storage" : {
37500 "description" : "The storage identifier.",
37501 "format" : "pve-storage-id",
37502 "type" : "string",
37503 "typetext" : "<string>"
37504 },
37505 "type" : {
37506 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
37507 "enum" : [
37508 "qemu",
37509 "lxc"
37510 ],
37511 "optional" : 1,
37512 "type" : "string"
37513 },
37514 "vmid" : {
37515 "description" : "Only consider backups for this guest.",
37516 "format" : "pve-vmid",
37517 "minimum" : 1,
37518 "optional" : 1,
37519 "type" : "integer",
37520 "typetext" : "<integer> (1 - N)"
37521 }
37522 }
37523 },
37524 "permissions" : {
37525 "check" : [
37526 "perm",
37527 "/storage/{storage}",
37528 [
37529 "Datastore.Audit",
37530 "Datastore.AllocateSpace"
37531 ],
37532 "any",
37533 1
37534 ]
37535 },
37536 "protected" : 1,
37537 "proxyto" : "node",
37538 "returns" : {
37539 "items" : {
37540 "properties" : {
37541 "ctime" : {
37542 "description" : "Creation time of the backup (seconds since the UNIX epoch).",
37543 "type" : "integer"
37544 },
37545 "mark" : {
5370fa8c
TL
37546 "description" : "Whether the backup would be kept or removed. Backups that are protected or don't use the standard naming scheme are not removed.",
37547 "enum" : [
37548 "keep",
37549 "remove",
37550 "protected",
37551 "renamed"
37552 ],
739d4d64
TL
37553 "type" : "string"
37554 },
37555 "type" : {
37556 "description" : "One of 'qemu', 'lxc', 'openvz' or 'unknown'.",
37557 "type" : "string"
37558 },
37559 "vmid" : {
37560 "description" : "The VM the backup belongs to.",
37561 "optional" : 1,
37562 "type" : "integer"
37563 },
37564 "volid" : {
37565 "description" : "Backup volume ID.",
37566 "type" : "string"
37567 }
37568 },
37569 "type" : "object"
37570 },
37571 "type" : "array"
37572 }
37573 }
37574 },
37575 "leaf" : 1,
37576 "path" : "/nodes/{node}/storage/{storage}/prunebackups",
37577 "text" : "prunebackups"
37578 },
4d47f125
TL
37579 {
37580 "children" : [
37581 {
37582 "info" : {
37583 "DELETE" : {
e9cd3bd4 37584 "allowtoken" : 1,
4d47f125
TL
37585 "description" : "Delete volume",
37586 "method" : "DELETE",
37587 "name" : "delete",
37588 "parameters" : {
37589 "additionalProperties" : 0,
37590 "properties" : {
1c532546
TL
37591 "delay" : {
37592 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
37593 "maximum" : 30,
37594 "minimum" : 1,
37595 "optional" : 1,
37596 "type" : "integer",
37597 "typetext" : "<integer> (1 - 30)"
37598 },
4d47f125
TL
37599 "node" : {
37600 "description" : "The cluster node name.",
37601 "format" : "pve-node",
37602 "type" : "string",
37603 "typetext" : "<string>"
37604 },
37605 "storage" : {
37606 "description" : "The storage identifier.",
37607 "format" : "pve-storage-id",
37608 "optional" : 1,
37609 "type" : "string",
37610 "typetext" : "<string>"
37611 },
37612 "volume" : {
37613 "description" : "Volume identifier",
37614 "type" : "string",
37615 "typetext" : "<string>"
37616 }
37617 }
37618 },
37619 "permissions" : {
37620 "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
37621 "user" : "all"
37622 },
37623 "protected" : 1,
37624 "proxyto" : "node",
37625 "returns" : {
1c532546
TL
37626 "optional" : 1,
37627 "type" : "string"
4d47f125
TL
37628 }
37629 },
37630 "GET" : {
e9cd3bd4 37631 "allowtoken" : 1,
4d47f125
TL
37632 "description" : "Get volume attributes",
37633 "method" : "GET",
37634 "name" : "info",
37635 "parameters" : {
37636 "additionalProperties" : 0,
37637 "properties" : {
37638 "node" : {
37639 "description" : "The cluster node name.",
37640 "format" : "pve-node",
37641 "type" : "string",
37642 "typetext" : "<string>"
37643 },
37644 "storage" : {
37645 "description" : "The storage identifier.",
37646 "format" : "pve-storage-id",
37647 "optional" : 1,
37648 "type" : "string",
37649 "typetext" : "<string>"
37650 },
37651 "volume" : {
37652 "description" : "Volume identifier",
37653 "type" : "string",
37654 "typetext" : "<string>"
37655 }
37656 }
37657 },
37658 "permissions" : {
37659 "description" : "You need read access for the volume.",
37660 "user" : "all"
37661 },
37662 "protected" : 1,
37663 "proxyto" : "node",
37664 "returns" : {
4772952b
TL
37665 "properties" : {
37666 "format" : {
37667 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
37668 "type" : "string"
37669 },
37670 "notes" : {
37671 "description" : "Optional notes.",
37672 "optional" : 1,
37673 "type" : "string"
37674 },
37675 "path" : {
37676 "description" : "The Path",
37677 "type" : "string"
37678 },
5370fa8c
TL
37679 "protected" : {
37680 "description" : "Protection status. Currently only supported for backups.",
37681 "optional" : 1,
37682 "type" : "boolean"
37683 },
4772952b
TL
37684 "size" : {
37685 "description" : "Volume size in bytes.",
37686 "renderer" : "bytes",
37687 "type" : "integer"
37688 },
37689 "used" : {
37690 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
37691 "renderer" : "bytes",
37692 "type" : "integer"
37693 }
37694 },
4d47f125
TL
37695 "type" : "object"
37696 }
37697 },
37698 "POST" : {
e9cd3bd4 37699 "allowtoken" : 1,
4d47f125
TL
37700 "description" : "Copy a volume. This is experimental code - do not use.",
37701 "method" : "POST",
37702 "name" : "copy",
37703 "parameters" : {
37704 "additionalProperties" : 0,
37705 "properties" : {
37706 "node" : {
37707 "description" : "The cluster node name.",
37708 "format" : "pve-node",
37709 "type" : "string",
37710 "typetext" : "<string>"
37711 },
37712 "storage" : {
37713 "description" : "The storage identifier.",
37714 "format" : "pve-storage-id",
37715 "optional" : 1,
37716 "type" : "string",
37717 "typetext" : "<string>"
37718 },
37719 "target" : {
37720 "description" : "Target volume identifier",
37721 "type" : "string",
37722 "typetext" : "<string>"
37723 },
37724 "target_node" : {
37725 "description" : "Target node. Default is local node.",
37726 "format" : "pve-node",
37727 "optional" : 1,
37728 "type" : "string",
37729 "typetext" : "<string>"
37730 },
37731 "volume" : {
37732 "description" : "Source volume identifier",
37733 "type" : "string",
37734 "typetext" : "<string>"
37735 }
37736 }
37737 },
37738 "protected" : 1,
37739 "proxyto" : "node",
37740 "returns" : {
37741 "type" : "string"
37742 }
4772952b
TL
37743 },
37744 "PUT" : {
37745 "allowtoken" : 1,
37746 "description" : "Update volume attributes",
37747 "method" : "PUT",
37748 "name" : "updateattributes",
37749 "parameters" : {
37750 "additionalProperties" : 0,
37751 "properties" : {
37752 "node" : {
37753 "description" : "The cluster node name.",
37754 "format" : "pve-node",
37755 "type" : "string",
37756 "typetext" : "<string>"
37757 },
37758 "notes" : {
37759 "description" : "The new notes.",
37760 "optional" : 1,
37761 "type" : "string",
37762 "typetext" : "<string>"
37763 },
5370fa8c
TL
37764 "protected" : {
37765 "description" : "Protection status. Currently only supported for backups.",
37766 "optional" : 1,
37767 "type" : "boolean",
37768 "typetext" : "<boolean>"
37769 },
4772952b
TL
37770 "storage" : {
37771 "description" : "The storage identifier.",
37772 "format" : "pve-storage-id",
37773 "optional" : 1,
37774 "type" : "string",
37775 "typetext" : "<string>"
37776 },
37777 "volume" : {
37778 "description" : "Volume identifier",
37779 "type" : "string",
37780 "typetext" : "<string>"
37781 }
37782 }
37783 },
37784 "permissions" : {
37785 "description" : "You need read access for the volume.",
37786 "user" : "all"
37787 },
37788 "protected" : 1,
37789 "proxyto" : "node",
37790 "returns" : {
37791 "type" : "null"
37792 }
4d47f125
TL
37793 }
37794 },
37795 "leaf" : 1,
37796 "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
37797 "text" : "{volume}"
44660702 37798 }
4d47f125
TL
37799 ],
37800 "info" : {
37801 "GET" : {
e9cd3bd4 37802 "allowtoken" : 1,
4d47f125
TL
37803 "description" : "List storage content.",
37804 "method" : "GET",
37805 "name" : "index",
37806 "parameters" : {
37807 "additionalProperties" : 0,
37808 "properties" : {
37809 "content" : {
37810 "description" : "Only list content of this type.",
37811 "format" : "pve-storage-content",
37812 "optional" : 1,
37813 "type" : "string",
37814 "typetext" : "<string>"
37815 },
37816 "node" : {
37817 "description" : "The cluster node name.",
37818 "format" : "pve-node",
37819 "type" : "string",
37820 "typetext" : "<string>"
37821 },
37822 "storage" : {
37823 "description" : "The storage identifier.",
37824 "format" : "pve-storage-id",
37825 "type" : "string",
37826 "typetext" : "<string>"
37827 },
37828 "vmid" : {
37829 "description" : "Only list images for this VM",
37830 "format" : "pve-vmid",
37831 "minimum" : 1,
37832 "optional" : 1,
37833 "type" : "integer",
37834 "typetext" : "<integer> (1 - N)"
37835 }
56122987 37836 }
44660702 37837 },
4d47f125
TL
37838 "permissions" : {
37839 "check" : [
37840 "perm",
37841 "/storage/{storage}",
37842 [
37843 "Datastore.Audit",
37844 "Datastore.AllocateSpace"
37845 ],
37846 "any",
37847 1
37848 ]
7aacca6f 37849 },
4d47f125
TL
37850 "protected" : 1,
37851 "proxyto" : "node",
37852 "returns" : {
37853 "items" : {
37854 "properties" : {
c5aa7e14
TL
37855 "ctime" : {
37856 "description" : "Creation time (seconds since the UNIX Epoch).",
37857 "minimum" : 0,
37858 "optional" : 1,
37859 "type" : "integer"
37860 },
d2656385
TL
37861 "encrypted" : {
37862 "description" : "If whole backup is encrypted, value is the fingerprint or '1' if encrypted. Only useful for the Proxmox Backup Server storage type.",
37863 "optional" : 1,
37864 "type" : "string"
37865 },
4d47f125
TL
37866 "format" : {
37867 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
37868 "type" : "string"
37869 },
4772952b
TL
37870 "notes" : {
37871 "description" : "Optional notes. If they contain multiple lines, only the first one is returned here.",
37872 "optional" : 1,
37873 "type" : "string"
37874 },
4d47f125
TL
37875 "parent" : {
37876 "description" : "Volume identifier of parent (for linked cloned).",
37877 "optional" : 1,
37878 "type" : "string"
37879 },
5370fa8c
TL
37880 "protected" : {
37881 "description" : "Protection status. Currently only supported for backups.",
37882 "optional" : 1,
37883 "type" : "boolean"
37884 },
4d47f125
TL
37885 "size" : {
37886 "description" : "Volume size in bytes.",
37887 "renderer" : "bytes",
37888 "type" : "integer"
37889 },
37890 "used" : {
c5aa7e14 37891 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
4d47f125
TL
37892 "optional" : 1,
37893 "renderer" : "bytes",
37894 "type" : "integer"
37895 },
4772952b
TL
37896 "verification" : {
37897 "description" : "Last backup verification result, only useful for PBS storages.",
37898 "optional" : 1,
37899 "properties" : {
37900 "state" : {
37901 "description" : "Last backup verification state.",
37902 "type" : "string"
37903 },
37904 "upid" : {
37905 "description" : "Last backup verification UPID.",
37906 "type" : "string"
37907 }
37908 },
37909 "type" : "object"
37910 },
4d47f125
TL
37911 "vmid" : {
37912 "description" : "Associated Owner VMID.",
37913 "optional" : 1,
37914 "type" : "integer"
37915 },
37916 "volid" : {
37917 "description" : "Volume identifier.",
37918 "type" : "string"
37919 }
37920 },
37921 "type" : "object"
44660702 37922 },
4d47f125
TL
37923 "links" : [
37924 {
37925 "href" : "{volid}",
37926 "rel" : "child"
37927 }
37928 ],
37929 "type" : "array"
37930 }
37931 },
37932 "POST" : {
e9cd3bd4 37933 "allowtoken" : 1,
4d47f125
TL
37934 "description" : "Allocate disk images.",
37935 "method" : "POST",
37936 "name" : "create",
37937 "parameters" : {
37938 "additionalProperties" : 0,
37939 "properties" : {
37940 "filename" : {
37941 "description" : "The name of the file to create.",
37942 "type" : "string",
37943 "typetext" : "<string>"
37944 },
37945 "format" : {
37946 "enum" : [
37947 "raw",
37948 "qcow2",
37949 "subvol"
37950 ],
37951 "optional" : 1,
37952 "requires" : "size",
37953 "type" : "string"
37954 },
37955 "node" : {
37956 "description" : "The cluster node name.",
37957 "format" : "pve-node",
37958 "type" : "string",
37959 "typetext" : "<string>"
37960 },
37961 "size" : {
37962 "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
37963 "pattern" : "\\d+[MG]?",
37964 "type" : "string"
37965 },
37966 "storage" : {
37967 "description" : "The storage identifier.",
37968 "format" : "pve-storage-id",
37969 "type" : "string",
37970 "typetext" : "<string>"
37971 },
37972 "vmid" : {
37973 "description" : "Specify owner VM",
37974 "format" : "pve-vmid",
37975 "minimum" : 1,
37976 "type" : "integer",
37977 "typetext" : "<integer> (1 - N)"
37978 }
44660702
DM
37979 }
37980 },
4d47f125
TL
37981 "permissions" : {
37982 "check" : [
37983 "perm",
37984 "/storage/{storage}",
37985 [
37986 "Datastore.AllocateSpace"
37987 ]
37988 ]
27a7acb2 37989 },
4d47f125
TL
37990 "protected" : 1,
37991 "proxyto" : "node",
37992 "returns" : {
37993 "description" : "Volume identifier",
37994 "type" : "string"
27a7acb2
DM
37995 }
37996 }
37997 },
4d47f125
TL
37998 "leaf" : 0,
37999 "path" : "/nodes/{node}/storage/{storage}/content",
38000 "text" : "content"
38001 },
d2656385
TL
38002 {
38003 "children" : [
38004 {
38005 "info" : {
38006 "GET" : {
38007 "allowtoken" : 1,
38008 "description" : "List files and directories for single file restore under the given path.",
38009 "method" : "GET",
38010 "name" : "list",
38011 "parameters" : {
38012 "additionalProperties" : 0,
38013 "properties" : {
38014 "filepath" : {
38015 "description" : "base64-path to the directory or file being listed, or \"/\".",
38016 "type" : "string",
38017 "typetext" : "<string>"
38018 },
38019 "node" : {
38020 "description" : "The cluster node name.",
38021 "format" : "pve-node",
38022 "type" : "string",
38023 "typetext" : "<string>"
38024 },
38025 "storage" : {
38026 "description" : "The storage identifier.",
38027 "format" : "pve-storage-id",
38028 "type" : "string",
38029 "typetext" : "<string>"
38030 },
38031 "volume" : {
38032 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
38033 "type" : "string",
38034 "typetext" : "<string>"
38035 }
38036 }
38037 },
38038 "permissions" : {
38039 "description" : "You need read access for the volume.",
38040 "user" : "all"
38041 },
38042 "protected" : 1,
38043 "proxyto" : "node",
38044 "returns" : {
38045 "items" : {
38046 "properties" : {
38047 "filepath" : {
38048 "description" : "base64 path of the current entry",
38049 "type" : "string"
38050 },
38051 "leaf" : {
38052 "description" : "If this entry is a leaf in the directory graph.",
38053 "type" : "boolean"
38054 },
38055 "mtime" : {
38056 "description" : "Entry last-modified time (unix timestamp).",
38057 "optional" : 1,
38058 "type" : "integer"
38059 },
38060 "size" : {
38061 "description" : "Entry file size.",
38062 "optional" : 1,
38063 "type" : "integer"
38064 },
38065 "text" : {
38066 "description" : "Entry display text.",
38067 "type" : "string"
38068 },
38069 "type" : {
38070 "description" : "Entry type.",
38071 "type" : "string"
38072 }
38073 },
38074 "type" : "object"
38075 },
38076 "type" : "array"
38077 }
38078 }
38079 },
38080 "leaf" : 1,
38081 "path" : "/nodes/{node}/storage/{storage}/file-restore/list",
38082 "text" : "list"
38083 },
38084 {
38085 "info" : {
38086 "GET" : {
38087 "allowtoken" : 1,
38088 "description" : "Extract a file or directory (as zip archive) from a PBS backup.",
38089 "method" : "GET",
38090 "name" : "download",
38091 "parameters" : {
38092 "additionalProperties" : 0,
38093 "properties" : {
38094 "filepath" : {
38095 "description" : "base64-path to the directory or file to download.",
38096 "type" : "string",
38097 "typetext" : "<string>"
38098 },
38099 "node" : {
38100 "description" : "The cluster node name.",
38101 "format" : "pve-node",
38102 "type" : "string",
38103 "typetext" : "<string>"
38104 },
38105 "storage" : {
38106 "description" : "The storage identifier.",
38107 "format" : "pve-storage-id",
38108 "type" : "string",
38109 "typetext" : "<string>"
38110 },
38111 "volume" : {
38112 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
38113 "type" : "string",
38114 "typetext" : "<string>"
38115 }
38116 }
38117 },
38118 "permissions" : {
38119 "description" : "You need read access for the volume.",
38120 "user" : "all"
38121 },
38122 "protected" : 1,
38123 "proxyto" : "node",
38124 "returns" : {
38125 "type" : "any"
38126 }
38127 }
38128 },
38129 "leaf" : 1,
38130 "path" : "/nodes/{node}/storage/{storage}/file-restore/download",
38131 "text" : "download"
38132 }
38133 ],
38134 "leaf" : 0,
38135 "path" : "/nodes/{node}/storage/{storage}/file-restore",
38136 "text" : "file-restore"
38137 },
4d47f125
TL
38138 {
38139 "info" : {
38140 "GET" : {
e9cd3bd4 38141 "allowtoken" : 1,
4d47f125
TL
38142 "description" : "Read storage status.",
38143 "method" : "GET",
38144 "name" : "read_status",
38145 "parameters" : {
38146 "additionalProperties" : 0,
38147 "properties" : {
38148 "node" : {
38149 "description" : "The cluster node name.",
38150 "format" : "pve-node",
38151 "type" : "string",
38152 "typetext" : "<string>"
38153 },
38154 "storage" : {
38155 "description" : "The storage identifier.",
38156 "format" : "pve-storage-id",
38157 "type" : "string",
38158 "typetext" : "<string>"
38159 }
27a7acb2
DM
38160 }
38161 },
4d47f125
TL
38162 "permissions" : {
38163 "check" : [
38164 "perm",
38165 "/storage/{storage}",
38166 [
38167 "Datastore.Audit",
38168 "Datastore.AllocateSpace"
38169 ],
38170 "any",
38171 1
38172 ]
7aacca6f 38173 },
4d47f125
TL
38174 "protected" : 1,
38175 "proxyto" : "node",
38176 "returns" : {
38177 "type" : "object"
56122987 38178 }
44660702
DM
38179 }
38180 },
4d47f125
TL
38181 "leaf" : 1,
38182 "path" : "/nodes/{node}/storage/{storage}/status",
38183 "text" : "status"
38184 },
38185 {
38186 "info" : {
38187 "GET" : {
e9cd3bd4 38188 "allowtoken" : 1,
4d47f125
TL
38189 "description" : "Read storage RRD statistics (returns PNG).",
38190 "method" : "GET",
38191 "name" : "rrd",
38192 "parameters" : {
38193 "additionalProperties" : 0,
38194 "properties" : {
38195 "cf" : {
38196 "description" : "The RRD consolidation function",
38197 "enum" : [
38198 "AVERAGE",
38199 "MAX"
38200 ],
38201 "optional" : 1,
38202 "type" : "string"
38203 },
38204 "ds" : {
38205 "description" : "The list of datasources you want to display.",
38206 "format" : "pve-configid-list",
38207 "type" : "string",
38208 "typetext" : "<string>"
38209 },
38210 "node" : {
38211 "description" : "The cluster node name.",
38212 "format" : "pve-node",
38213 "type" : "string",
38214 "typetext" : "<string>"
38215 },
38216 "storage" : {
38217 "description" : "The storage identifier.",
38218 "format" : "pve-storage-id",
38219 "type" : "string",
38220 "typetext" : "<string>"
38221 },
38222 "timeframe" : {
38223 "description" : "Specify the time frame you are interested in.",
38224 "enum" : [
38225 "hour",
38226 "day",
38227 "week",
38228 "month",
38229 "year"
38230 ],
38231 "type" : "string"
38232 }
44660702
DM
38233 }
38234 },
4d47f125
TL
38235 "permissions" : {
38236 "check" : [
38237 "perm",
38238 "/storage/{storage}",
38239 [
38240 "Datastore.Audit",
38241 "Datastore.AllocateSpace"
38242 ],
38243 "any",
38244 1
38245 ]
38246 },
38247 "protected" : 1,
38248 "proxyto" : "node",
38249 "returns" : {
38250 "properties" : {
38251 "filename" : {
38252 "type" : "string"
38253 }
38254 },
38255 "type" : "object"
44660702
DM
38256 }
38257 }
38258 },
4d47f125
TL
38259 "leaf" : 1,
38260 "path" : "/nodes/{node}/storage/{storage}/rrd",
38261 "text" : "rrd"
38262 },
38263 {
38264 "info" : {
38265 "GET" : {
e9cd3bd4 38266 "allowtoken" : 1,
4d47f125
TL
38267 "description" : "Read storage RRD statistics.",
38268 "method" : "GET",
38269 "name" : "rrddata",
38270 "parameters" : {
38271 "additionalProperties" : 0,
38272 "properties" : {
38273 "cf" : {
38274 "description" : "The RRD consolidation function",
38275 "enum" : [
38276 "AVERAGE",
38277 "MAX"
38278 ],
38279 "optional" : 1,
38280 "type" : "string"
38281 },
38282 "node" : {
38283 "description" : "The cluster node name.",
38284 "format" : "pve-node",
38285 "type" : "string",
38286 "typetext" : "<string>"
38287 },
38288 "storage" : {
38289 "description" : "The storage identifier.",
38290 "format" : "pve-storage-id",
38291 "type" : "string",
38292 "typetext" : "<string>"
38293 },
38294 "timeframe" : {
38295 "description" : "Specify the time frame you are interested in.",
38296 "enum" : [
38297 "hour",
38298 "day",
38299 "week",
38300 "month",
38301 "year"
38302 ],
38303 "type" : "string"
38304 }
56122987
DM
38305 }
38306 },
4d47f125
TL
38307 "permissions" : {
38308 "check" : [
38309 "perm",
38310 "/storage/{storage}",
38311 [
38312 "Datastore.Audit",
38313 "Datastore.AllocateSpace"
38314 ],
38315 "any",
38316 1
38317 ]
38318 },
38319 "protected" : 1,
38320 "proxyto" : "node",
38321 "returns" : {
38322 "items" : {
38323 "properties" : {},
38324 "type" : "object"
38325 },
38326 "type" : "array"
56122987 38327 }
7aacca6f 38328 }
56122987 38329 },
4d47f125
TL
38330 "leaf" : 1,
38331 "path" : "/nodes/{node}/storage/{storage}/rrddata",
38332 "text" : "rrddata"
38333 },
38334 {
38335 "info" : {
38336 "POST" : {
e9cd3bd4 38337 "allowtoken" : 1,
4d47f125
TL
38338 "description" : "Upload templates and ISO images.",
38339 "method" : "POST",
38340 "name" : "upload",
38341 "parameters" : {
38342 "additionalProperties" : 0,
38343 "properties" : {
5370fa8c
TL
38344 "checksum" : {
38345 "description" : "The expected checksum of the file.",
38346 "optional" : 1,
38347 "requires" : "checksum-algorithm",
38348 "type" : "string",
38349 "typetext" : "<string>"
38350 },
38351 "checksum-algorithm" : {
38352 "description" : "The algorithm to calculate the checksum of the file.",
38353 "enum" : [
38354 "md5",
38355 "sha1",
38356 "sha224",
38357 "sha256",
38358 "sha384",
38359 "sha512"
38360 ],
38361 "optional" : 1,
38362 "requires" : "checksum",
38363 "type" : "string"
38364 },
4d47f125
TL
38365 "content" : {
38366 "description" : "Content type.",
5370fa8c
TL
38367 "enum" : [
38368 "iso",
38369 "vztmpl"
38370 ],
4d47f125 38371 "format" : "pve-storage-content",
5370fa8c 38372 "type" : "string"
4d47f125
TL
38373 },
38374 "filename" : {
5370fa8c
TL
38375 "description" : "The name of the file to create. Caution: This will be normalized!",
38376 "maxLength" : 255,
4d47f125
TL
38377 "type" : "string",
38378 "typetext" : "<string>"
38379 },
38380 "node" : {
38381 "description" : "The cluster node name.",
38382 "format" : "pve-node",
38383 "type" : "string",
38384 "typetext" : "<string>"
38385 },
38386 "storage" : {
38387 "description" : "The storage identifier.",
38388 "format" : "pve-storage-id",
38389 "type" : "string",
38390 "typetext" : "<string>"
38391 },
38392 "tmpfilename" : {
1e3f8156 38393 "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
TL
38394 "optional" : 1,
38395 "type" : "string",
38396 "typetext" : "<string>"
38397 }
44660702
DM
38398 }
38399 },
4d47f125
TL
38400 "permissions" : {
38401 "check" : [
38402 "perm",
38403 "/storage/{storage}",
38404 [
38405 "Datastore.AllocateTemplate"
38406 ]
38407 ]
56122987 38408 },
4d47f125
TL
38409 "protected" : 1,
38410 "returns" : {
44660702 38411 "type" : "string"
56122987 38412 }
44660702 38413 }
56122987 38414 },
4d47f125
TL
38415 "leaf" : 1,
38416 "path" : "/nodes/{node}/storage/{storage}/upload",
38417 "text" : "upload"
34f3e481
TL
38418 },
38419 {
38420 "info" : {
38421 "POST" : {
38422 "allowtoken" : 1,
38423 "description" : "Download templates and ISO images by using an URL.",
38424 "method" : "POST",
38425 "name" : "download_url",
38426 "parameters" : {
38427 "additionalProperties" : 0,
38428 "properties" : {
38429 "checksum" : {
38430 "description" : "The expected checksum of the file.",
38431 "optional" : 1,
38432 "requires" : "checksum-algorithm",
38433 "type" : "string",
38434 "typetext" : "<string>"
38435 },
38436 "checksum-algorithm" : {
38437 "description" : "The algorithm to calculate the checksum of the file.",
38438 "enum" : [
38439 "md5",
38440 "sha1",
38441 "sha224",
38442 "sha256",
38443 "sha384",
38444 "sha512"
38445 ],
38446 "optional" : 1,
38447 "requires" : "checksum",
38448 "type" : "string"
38449 },
38450 "content" : {
38451 "description" : "Content type.",
38452 "enum" : [
38453 "iso",
38454 "vztmpl"
38455 ],
38456 "format" : "pve-storage-content",
38457 "type" : "string"
38458 },
38459 "filename" : {
38460 "description" : "The name of the file to create. Caution: This will be normalized!",
38461 "maxLength" : 255,
38462 "type" : "string",
38463 "typetext" : "<string>"
38464 },
38465 "node" : {
38466 "description" : "The cluster node name.",
38467 "format" : "pve-node",
38468 "type" : "string",
38469 "typetext" : "<string>"
38470 },
38471 "storage" : {
38472 "description" : "The storage identifier.",
38473 "format" : "pve-storage-id",
38474 "type" : "string",
38475 "typetext" : "<string>"
38476 },
38477 "url" : {
38478 "description" : "The URL to download the file from.",
38479 "pattern" : "https?://.*",
38480 "type" : "string"
38481 },
38482 "verify-certificates" : {
38483 "default" : 1,
38484 "description" : "If false, no SSL/TLS certificates will be verified.",
38485 "optional" : 1,
38486 "type" : "boolean",
38487 "typetext" : "<boolean>"
38488 }
38489 }
38490 },
38491 "permissions" : {
38492 "check" : [
38493 "and",
38494 [
38495 "perm",
38496 "/storage/{storage}",
38497 [
38498 "Datastore.AllocateTemplate"
38499 ]
38500 ],
38501 [
38502 "perm",
38503 "/",
38504 [
38505 "Sys.Audit",
38506 "Sys.Modify"
38507 ]
38508 ]
38509 ]
38510 },
38511 "protected" : 1,
38512 "proxyto" : "node",
38513 "returns" : {
38514 "type" : "string"
38515 }
38516 }
38517 },
38518 "leaf" : 1,
38519 "path" : "/nodes/{node}/storage/{storage}/download-url",
38520 "text" : "download-url"
56122987 38521 }
4d47f125 38522 ],
56122987
DM
38523 "info" : {
38524 "GET" : {
e9cd3bd4 38525 "allowtoken" : 1,
4d47f125 38526 "description" : "",
44660702 38527 "method" : "GET",
4d47f125 38528 "name" : "diridx",
44660702
DM
38529 "parameters" : {
38530 "additionalProperties" : 0,
38531 "properties" : {
38532 "node" : {
38533 "description" : "The cluster node name.",
38534 "format" : "pve-node",
013dc89f
DM
38535 "type" : "string",
38536 "typetext" : "<string>"
4d47f125
TL
38537 },
38538 "storage" : {
38539 "description" : "The storage identifier.",
38540 "format" : "pve-storage-id",
38541 "type" : "string",
38542 "typetext" : "<string>"
44660702
DM
38543 }
38544 }
38545 },
7aacca6f
DM
38546 "permissions" : {
38547 "check" : [
38548 "perm",
4d47f125 38549 "/storage/{storage}",
7aacca6f 38550 [
4d47f125
TL
38551 "Datastore.Audit",
38552 "Datastore.AllocateSpace"
38553 ],
38554 "any",
38555 1
7aacca6f
DM
38556 ]
38557 },
56122987
DM
38558 "returns" : {
38559 "items" : {
38560 "properties" : {
4d47f125 38561 "subdir" : {
44660702 38562 "type" : "string"
56122987
DM
38563 }
38564 },
38565 "type" : "object"
7aacca6f 38566 },
4d47f125
TL
38567 "links" : [
38568 {
38569 "href" : "{subdir}",
38570 "rel" : "child"
38571 }
38572 ],
7aacca6f 38573 "type" : "array"
44660702
DM
38574 }
38575 }
38576 },
4d47f125
TL
38577 "leaf" : 0,
38578 "path" : "/nodes/{node}/storage/{storage}",
38579 "text" : "{storage}"
44660702
DM
38580 }
38581 ],
38582 "info" : {
38583 "GET" : {
e9cd3bd4 38584 "allowtoken" : 1,
4d47f125 38585 "description" : "Get status for all datastores.",
44660702
DM
38586 "method" : "GET",
38587 "name" : "index",
38588 "parameters" : {
38589 "additionalProperties" : 0,
38590 "properties" : {
4d47f125
TL
38591 "content" : {
38592 "description" : "Only list stores which support this content type.",
38593 "format" : "pve-storage-content-list",
38594 "optional" : 1,
38595 "type" : "string",
38596 "typetext" : "<string>"
38597 },
38598 "enabled" : {
38599 "default" : 0,
38600 "description" : "Only list stores which are enabled (not disabled in config).",
38601 "optional" : 1,
38602 "type" : "boolean",
38603 "typetext" : "<boolean>"
38604 },
38605 "format" : {
38606 "default" : 0,
38607 "description" : "Include information about formats",
38608 "optional" : 1,
38609 "type" : "boolean",
38610 "typetext" : "<boolean>"
38611 },
44660702
DM
38612 "node" : {
38613 "description" : "The cluster node name.",
38614 "format" : "pve-node",
013dc89f
DM
38615 "type" : "string",
38616 "typetext" : "<string>"
4d47f125
TL
38617 },
38618 "storage" : {
38619 "description" : "Only list status for specified storage",
38620 "format" : "pve-storage-id",
38621 "optional" : 1,
38622 "type" : "string",
38623 "typetext" : "<string>"
38624 },
38625 "target" : {
38626 "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
38627 "format" : "pve-node",
38628 "optional" : 1,
38629 "type" : "string",
38630 "typetext" : "<string>"
44660702
DM
38631 }
38632 }
38633 },
4d47f125
TL
38634 "permissions" : {
38635 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
38636 "user" : "all"
38637 },
38638 "protected" : 1,
38639 "proxyto" : "node",
38640 "returns" : {
38641 "items" : {
38642 "properties" : {
38643 "active" : {
38644 "description" : "Set when storage is accessible.",
38645 "optional" : 1,
38646 "type" : "boolean"
38647 },
38648 "avail" : {
38649 "description" : "Available storage space in bytes.",
38650 "optional" : 1,
38651 "renderer" : "bytes",
38652 "type" : "integer"
38653 },
38654 "content" : {
38655 "description" : "Allowed storage content types.",
38656 "format" : "pve-storage-content-list",
38657 "type" : "string"
38658 },
38659 "enabled" : {
38660 "description" : "Set when storage is enabled (not disabled).",
38661 "optional" : 1,
38662 "type" : "boolean"
38663 },
38664 "shared" : {
38665 "description" : "Shared flag from storage configuration.",
38666 "optional" : 1,
38667 "type" : "boolean"
38668 },
38669 "storage" : {
38670 "description" : "The storage identifier.",
38671 "format" : "pve-storage-id",
38672 "type" : "string"
38673 },
38674 "total" : {
38675 "description" : "Total storage space in bytes.",
38676 "optional" : 1,
38677 "renderer" : "bytes",
38678 "type" : "integer"
38679 },
38680 "type" : {
38681 "description" : "Storage type.",
38682 "type" : "string"
38683 },
38684 "used" : {
38685 "description" : "Used storage space in bytes.",
38686 "optional" : 1,
38687 "renderer" : "bytes",
38688 "type" : "integer"
38689 },
38690 "used_fraction" : {
38691 "description" : "Used fraction (used/total).",
38692 "optional" : 1,
38693 "renderer" : "fraction_as_percentage",
38694 "type" : "number"
7aacca6f 38695 }
4d47f125
TL
38696 },
38697 "type" : "object"
38698 },
38699 "links" : [
38700 {
38701 "href" : "{storage}",
38702 "rel" : "child"
38703 }
38704 ],
38705 "type" : "array"
38706 }
38707 }
38708 },
38709 "leaf" : 0,
38710 "path" : "/nodes/{node}/storage",
38711 "text" : "storage"
38712 },
38713 {
38714 "children" : [
38715 {
5370fa8c
TL
38716 "children" : [
38717 {
38718 "info" : {
38719 "DELETE" : {
38720 "allowtoken" : 1,
38721 "description" : "Remove an LVM Volume Group.",
38722 "method" : "DELETE",
38723 "name" : "delete",
38724 "parameters" : {
38725 "additionalProperties" : 0,
38726 "properties" : {
38727 "cleanup-config" : {
38728 "default" : 0,
38729 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
38730 "optional" : 1,
38731 "type" : "boolean",
38732 "typetext" : "<boolean>"
38733 },
38734 "cleanup-disks" : {
38735 "default" : 0,
38736 "description" : "Also wipe disks so they can be repurposed afterwards.",
38737 "optional" : 1,
38738 "type" : "boolean",
38739 "typetext" : "<boolean>"
38740 },
38741 "name" : {
38742 "description" : "The storage identifier.",
38743 "format" : "pve-storage-id",
38744 "type" : "string",
38745 "typetext" : "<string>"
38746 },
38747 "node" : {
38748 "description" : "The cluster node name.",
38749 "format" : "pve-node",
38750 "type" : "string",
38751 "typetext" : "<string>"
38752 }
38753 }
38754 },
38755 "permissions" : {
38756 "check" : [
38757 "perm",
38758 "/",
38759 [
38760 "Sys.Modify",
38761 "Datastore.Allocate"
38762 ]
38763 ]
38764 },
38765 "protected" : 1,
38766 "proxyto" : "node",
38767 "returns" : {
38768 "type" : "string"
38769 }
38770 }
38771 },
38772 "leaf" : 1,
38773 "path" : "/nodes/{node}/disks/lvm/{name}",
38774 "text" : "{name}"
38775 }
38776 ],
4d47f125
TL
38777 "info" : {
38778 "GET" : {
e9cd3bd4 38779 "allowtoken" : 1,
4d47f125
TL
38780 "description" : "List LVM Volume Groups",
38781 "method" : "GET",
38782 "name" : "index",
38783 "parameters" : {
38784 "additionalProperties" : 0,
38785 "properties" : {
38786 "node" : {
38787 "description" : "The cluster node name.",
38788 "format" : "pve-node",
38789 "type" : "string",
38790 "typetext" : "<string>"
38791 }
38792 }
38793 },
38794 "permissions" : {
38795 "check" : [
38796 "perm",
38797 "/",
38798 [
38799 "Sys.Audit",
38800 "Datastore.Audit"
38801 ],
38802 "any",
38803 1
38804 ]
38805 },
38806 "protected" : 1,
38807 "proxyto" : "node",
38808 "returns" : {
38809 "properties" : {
38810 "children" : {
44660702
DM
38811 "items" : {
38812 "properties" : {
4d47f125
TL
38813 "children" : {
38814 "description" : "The underlying physical volumes",
38815 "items" : {
38816 "properties" : {
38817 "free" : {
38818 "description" : "The free bytes in the physical volume",
38819 "type" : "integer"
38820 },
38821 "leaf" : {
38822 "type" : "boolean"
38823 },
38824 "name" : {
38825 "description" : "The name of the physical volume",
38826 "type" : "string"
38827 },
38828 "size" : {
38829 "description" : "The size of the physical volume in bytes",
38830 "type" : "integer"
38831 }
38832 },
38833 "type" : "object"
38834 },
38835 "optional" : 1,
38836 "type" : "array"
38837 },
38838 "free" : {
38839 "description" : "The free bytes in the volume group",
38840 "type" : "integer"
38841 },
38842 "leaf" : {
38843 "type" : "boolean"
38844 },
38845 "name" : {
38846 "description" : "The name of the volume group",
44660702 38847 "type" : "string"
4d47f125
TL
38848 },
38849 "size" : {
38850 "description" : "The size of the volume group in bytes",
38851 "type" : "integer"
44660702
DM
38852 }
38853 },
38854 "type" : "object"
38855 },
44660702 38856 "type" : "array"
4d47f125
TL
38857 },
38858 "leaf" : {
38859 "type" : "boolean"
44660702
DM
38860 }
38861 },
4d47f125
TL
38862 "type" : "object"
38863 }
38864 },
38865 "POST" : {
e9cd3bd4 38866 "allowtoken" : 1,
4d47f125
TL
38867 "description" : "Create an LVM Volume Group",
38868 "method" : "POST",
38869 "name" : "create",
38870 "parameters" : {
38871 "additionalProperties" : 0,
38872 "properties" : {
38873 "add_storage" : {
38874 "default" : 0,
38875 "description" : "Configure storage using the Volume Group",
38876 "optional" : 1,
38877 "type" : "boolean",
38878 "typetext" : "<boolean>"
44660702 38879 },
4d47f125
TL
38880 "device" : {
38881 "description" : "The block device you want to create the volume group on",
38882 "type" : "string",
38883 "typetext" : "<string>"
44660702 38884 },
4d47f125
TL
38885 "name" : {
38886 "description" : "The storage identifier.",
38887 "format" : "pve-storage-id",
38888 "type" : "string",
38889 "typetext" : "<string>"
38890 },
38891 "node" : {
38892 "description" : "The cluster node name.",
38893 "format" : "pve-node",
38894 "type" : "string",
38895 "typetext" : "<string>"
38896 }
38897 }
38898 },
38899 "permissions" : {
38900 "check" : [
38901 "perm",
38902 "/",
38903 [
38904 "Sys.Modify",
38905 "Datastore.Allocate"
38906 ]
38907 ]
38908 },
38909 "protected" : 1,
38910 "proxyto" : "node",
38911 "returns" : {
38912 "type" : "string"
38913 }
38914 }
38915 },
5370fa8c 38916 "leaf" : 0,
4d47f125
TL
38917 "path" : "/nodes/{node}/disks/lvm",
38918 "text" : "lvm"
38919 },
38920 {
5370fa8c
TL
38921 "children" : [
38922 {
38923 "info" : {
38924 "DELETE" : {
38925 "allowtoken" : 1,
38926 "description" : "Remove an LVM thin pool.",
38927 "method" : "DELETE",
38928 "name" : "delete",
38929 "parameters" : {
38930 "additionalProperties" : 0,
38931 "properties" : {
38932 "cleanup-config" : {
38933 "default" : 0,
38934 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
38935 "optional" : 1,
38936 "type" : "boolean",
38937 "typetext" : "<boolean>"
38938 },
38939 "cleanup-disks" : {
38940 "default" : 0,
38941 "description" : "Also wipe disks so they can be repurposed afterwards.",
38942 "optional" : 1,
38943 "type" : "boolean",
38944 "typetext" : "<boolean>"
38945 },
38946 "name" : {
38947 "description" : "The storage identifier.",
38948 "format" : "pve-storage-id",
38949 "type" : "string",
38950 "typetext" : "<string>"
38951 },
38952 "node" : {
38953 "description" : "The cluster node name.",
38954 "format" : "pve-node",
38955 "type" : "string",
38956 "typetext" : "<string>"
38957 },
38958 "volume-group" : {
38959 "description" : "The storage identifier.",
38960 "format" : "pve-storage-id",
38961 "type" : "string",
38962 "typetext" : "<string>"
38963 }
38964 }
38965 },
38966 "permissions" : {
38967 "check" : [
38968 "perm",
38969 "/",
38970 [
38971 "Sys.Modify",
38972 "Datastore.Allocate"
38973 ]
38974 ]
38975 },
38976 "protected" : 1,
38977 "proxyto" : "node",
38978 "returns" : {
38979 "type" : "string"
38980 }
38981 }
38982 },
38983 "leaf" : 1,
38984 "path" : "/nodes/{node}/disks/lvmthin/{name}",
38985 "text" : "{name}"
38986 }
38987 ],
4d47f125
TL
38988 "info" : {
38989 "GET" : {
e9cd3bd4 38990 "allowtoken" : 1,
4d47f125
TL
38991 "description" : "List LVM thinpools",
38992 "method" : "GET",
38993 "name" : "index",
38994 "parameters" : {
38995 "additionalProperties" : 0,
38996 "properties" : {
38997 "node" : {
38998 "description" : "The cluster node name.",
38999 "format" : "pve-node",
39000 "type" : "string",
39001 "typetext" : "<string>"
44660702
DM
39002 }
39003 }
39004 },
4d47f125
TL
39005 "permissions" : {
39006 "check" : [
39007 "perm",
39008 "/",
39009 [
39010 "Sys.Audit",
39011 "Datastore.Audit"
39012 ],
39013 "any",
39014 1
39015 ]
39016 },
39017 "protected" : 1,
39018 "proxyto" : "node",
39019 "returns" : {
39020 "items" : {
39021 "properties" : {
39022 "lv" : {
39023 "description" : "The name of the thinpool.",
39024 "type" : "string"
39025 },
39026 "lv_size" : {
39027 "description" : "The size of the thinpool in bytes.",
39028 "type" : "integer"
39029 },
39030 "metadata_size" : {
39031 "description" : "The size of the metadata lv in bytes.",
39032 "type" : "integer"
39033 },
39034 "metadata_used" : {
39035 "description" : "The used bytes of the metadata lv.",
39036 "type" : "integer"
39037 },
39038 "used" : {
39039 "description" : "The used bytes of the thinpool.",
39040 "type" : "integer"
5370fa8c
TL
39041 },
39042 "vg" : {
39043 "description" : "The associated volume group.",
39044 "type" : "string"
44660702
DM
39045 }
39046 },
4d47f125
TL
39047 "type" : "object"
39048 },
39049 "type" : "array"
39050 }
39051 },
39052 "POST" : {
e9cd3bd4 39053 "allowtoken" : 1,
4d47f125
TL
39054 "description" : "Create an LVM thinpool",
39055 "method" : "POST",
39056 "name" : "create",
39057 "parameters" : {
39058 "additionalProperties" : 0,
39059 "properties" : {
39060 "add_storage" : {
39061 "default" : 0,
39062 "description" : "Configure storage using the thinpool.",
39063 "optional" : 1,
39064 "type" : "boolean",
39065 "typetext" : "<boolean>"
56122987 39066 },
4d47f125
TL
39067 "device" : {
39068 "description" : "The block device you want to create the thinpool on.",
39069 "type" : "string",
39070 "typetext" : "<string>"
39071 },
39072 "name" : {
39073 "description" : "The storage identifier.",
39074 "format" : "pve-storage-id",
39075 "type" : "string",
39076 "typetext" : "<string>"
39077 },
39078 "node" : {
39079 "description" : "The cluster node name.",
39080 "format" : "pve-node",
39081 "type" : "string",
39082 "typetext" : "<string>"
44660702 39083 }
56122987
DM
39084 }
39085 },
4d47f125
TL
39086 "permissions" : {
39087 "check" : [
39088 "perm",
39089 "/",
39090 [
39091 "Sys.Modify",
39092 "Datastore.Allocate"
39093 ]
39094 ]
39095 },
39096 "protected" : 1,
39097 "proxyto" : "node",
39098 "returns" : {
39099 "type" : "string"
39100 }
39101 }
39102 },
5370fa8c 39103 "leaf" : 0,
4d47f125
TL
39104 "path" : "/nodes/{node}/disks/lvmthin",
39105 "text" : "lvmthin"
39106 },
39107 {
5370fa8c
TL
39108 "children" : [
39109 {
39110 "info" : {
39111 "DELETE" : {
39112 "allowtoken" : 1,
39113 "description" : "Unmounts the storage and removes the mount unit.",
39114 "method" : "DELETE",
39115 "name" : "delete",
39116 "parameters" : {
39117 "additionalProperties" : 0,
39118 "properties" : {
39119 "cleanup-config" : {
39120 "default" : 0,
39121 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
39122 "optional" : 1,
39123 "type" : "boolean",
39124 "typetext" : "<boolean>"
39125 },
39126 "cleanup-disks" : {
39127 "default" : 0,
39128 "description" : "Also wipe disk so it can be repurposed afterwards.",
39129 "optional" : 1,
39130 "type" : "boolean",
39131 "typetext" : "<boolean>"
39132 },
39133 "name" : {
39134 "description" : "The storage identifier.",
39135 "format" : "pve-storage-id",
39136 "type" : "string",
39137 "typetext" : "<string>"
39138 },
39139 "node" : {
39140 "description" : "The cluster node name.",
39141 "format" : "pve-node",
39142 "type" : "string",
39143 "typetext" : "<string>"
39144 }
39145 }
39146 },
39147 "permissions" : {
39148 "check" : [
39149 "perm",
39150 "/",
39151 [
39152 "Sys.Modify",
39153 "Datastore.Allocate"
39154 ]
39155 ]
39156 },
39157 "protected" : 1,
39158 "proxyto" : "node",
39159 "returns" : {
39160 "type" : "string"
39161 }
39162 }
39163 },
39164 "leaf" : 1,
39165 "path" : "/nodes/{node}/disks/directory/{name}",
39166 "text" : "{name}"
39167 }
39168 ],
4d47f125
TL
39169 "info" : {
39170 "GET" : {
e9cd3bd4 39171 "allowtoken" : 1,
4d47f125
TL
39172 "description" : "PVE Managed Directory storages.",
39173 "method" : "GET",
39174 "name" : "index",
39175 "parameters" : {
39176 "additionalProperties" : 0,
39177 "properties" : {
39178 "node" : {
39179 "description" : "The cluster node name.",
39180 "format" : "pve-node",
39181 "type" : "string",
39182 "typetext" : "<string>"
39183 }
39184 }
39185 },
39186 "permissions" : {
39187 "check" : [
39188 "perm",
39189 "/",
39190 [
39191 "Sys.Audit",
39192 "Datastore.Audit"
39193 ],
39194 "any",
39195 1
39196 ]
39197 },
39198 "protected" : 1,
39199 "proxyto" : "node",
39200 "returns" : {
39201 "items" : {
39202 "properties" : {
39203 "device" : {
39204 "description" : "The mounted device.",
39205 "type" : "string"
39206 },
39207 "options" : {
39208 "description" : "The mount options.",
39209 "type" : "string"
39210 },
39211 "path" : {
39212 "description" : "The mount path.",
39213 "type" : "string"
39214 },
39215 "type" : {
39216 "description" : "The filesystem type.",
39217 "type" : "string"
39218 },
39219 "unitfile" : {
39220 "description" : "The path of the mount unit.",
39221 "type" : "string"
44660702 39222 }
56122987 39223 },
4d47f125
TL
39224 "type" : "object"
39225 },
39226 "type" : "array"
39227 }
39228 },
39229 "POST" : {
e9cd3bd4 39230 "allowtoken" : 1,
4d47f125
TL
39231 "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.",
39232 "method" : "POST",
39233 "name" : "create",
39234 "parameters" : {
39235 "additionalProperties" : 0,
39236 "properties" : {
39237 "add_storage" : {
39238 "default" : 0,
39239 "description" : "Configure storage using the directory.",
39240 "optional" : 1,
39241 "type" : "boolean",
39242 "typetext" : "<boolean>"
39243 },
39244 "device" : {
39245 "description" : "The block device you want to create the filesystem on.",
39246 "type" : "string",
39247 "typetext" : "<string>"
39248 },
39249 "filesystem" : {
39250 "default" : "ext4",
39251 "description" : "The desired filesystem.",
39252 "enum" : [
39253 "ext4",
39254 "xfs"
39255 ],
39256 "optional" : 1,
39257 "type" : "string"
56122987 39258 },
4d47f125
TL
39259 "name" : {
39260 "description" : "The storage identifier.",
39261 "format" : "pve-storage-id",
39262 "type" : "string",
39263 "typetext" : "<string>"
39264 },
39265 "node" : {
39266 "description" : "The cluster node name.",
39267 "format" : "pve-node",
39268 "type" : "string",
39269 "typetext" : "<string>"
7aacca6f 39270 }
56122987
DM
39271 }
39272 },
4d47f125
TL
39273 "permissions" : {
39274 "check" : [
39275 "perm",
39276 "/",
39277 [
39278 "Sys.Modify",
39279 "Datastore.Allocate"
39280 ]
39281 ]
39282 },
39283 "protected" : 1,
39284 "proxyto" : "node",
39285 "returns" : {
39286 "type" : "string"
39287 }
39288 }
39289 },
5370fa8c 39290 "leaf" : 0,
4d47f125
TL
39291 "path" : "/nodes/{node}/disks/directory",
39292 "text" : "directory"
39293 },
39294 {
39295 "children" : [
56122987 39296 {
56122987 39297 "info" : {
5370fa8c
TL
39298 "DELETE" : {
39299 "allowtoken" : 1,
39300 "description" : "Destroy a ZFS pool.",
39301 "method" : "DELETE",
39302 "name" : "delete",
39303 "parameters" : {
39304 "additionalProperties" : 0,
39305 "properties" : {
39306 "cleanup-config" : {
39307 "default" : 0,
39308 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
39309 "optional" : 1,
39310 "type" : "boolean",
39311 "typetext" : "<boolean>"
39312 },
39313 "cleanup-disks" : {
39314 "default" : 0,
39315 "description" : "Also wipe disks so they can be repurposed afterwards.",
39316 "optional" : 1,
39317 "type" : "boolean",
39318 "typetext" : "<boolean>"
39319 },
39320 "name" : {
39321 "description" : "The storage identifier.",
39322 "format" : "pve-storage-id",
39323 "type" : "string",
39324 "typetext" : "<string>"
39325 },
39326 "node" : {
39327 "description" : "The cluster node name.",
39328 "format" : "pve-node",
39329 "type" : "string",
39330 "typetext" : "<string>"
39331 }
39332 }
39333 },
39334 "permissions" : {
39335 "check" : [
39336 "perm",
39337 "/",
39338 [
39339 "Sys.Modify",
39340 "Datastore.Allocate"
39341 ]
39342 ]
39343 },
39344 "protected" : 1,
39345 "proxyto" : "node",
39346 "returns" : {
39347 "type" : "string"
39348 }
39349 },
56122987 39350 "GET" : {
e9cd3bd4 39351 "allowtoken" : 1,
4d47f125 39352 "description" : "Get details about a zpool.",
44660702 39353 "method" : "GET",
4d47f125 39354 "name" : "detail",
56122987 39355 "parameters" : {
44660702 39356 "additionalProperties" : 0,
56122987 39357 "properties" : {
4d47f125
TL
39358 "name" : {
39359 "description" : "The storage identifier.",
39360 "format" : "pve-storage-id",
39361 "type" : "string",
39362 "typetext" : "<string>"
44660702 39363 },
7aacca6f 39364 "node" : {
7aacca6f 39365 "description" : "The cluster node name.",
44660702 39366 "format" : "pve-node",
013dc89f
DM
39367 "type" : "string",
39368 "typetext" : "<string>"
56122987 39369 }
44660702 39370 }
7aacca6f 39371 },
7aacca6f
DM
39372 "permissions" : {
39373 "check" : [
39374 "perm",
4d47f125 39375 "/",
7aacca6f 39376 [
4d47f125
TL
39377 "Sys.Audit",
39378 "Datastore.Audit"
7aacca6f
DM
39379 ],
39380 "any",
39381 1
39382 ]
39383 },
44660702
DM
39384 "protected" : 1,
39385 "proxyto" : "node",
7aacca6f 39386 "returns" : {
56122987 39387 "properties" : {
4d47f125
TL
39388 "action" : {
39389 "description" : "Information about the recommended action to fix the state.",
39390 "optional" : 1,
39391 "type" : "string"
56122987 39392 },
4d47f125 39393 "children" : {
e2d681b3 39394 "description" : "The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.",
4d47f125
TL
39395 "items" : {
39396 "properties" : {
39397 "cksum" : {
e2d681b3 39398 "optional" : 1,
4d47f125
TL
39399 "type" : "number"
39400 },
39401 "msg" : {
39402 "description" : "An optional message about the vdev.",
39403 "type" : "string"
39404 },
39405 "name" : {
e2d681b3 39406 "description" : "The name of the vdev or section.",
4d47f125
TL
39407 "type" : "string"
39408 },
39409 "read" : {
e2d681b3 39410 "optional" : 1,
4d47f125
TL
39411 "type" : "number"
39412 },
39413 "state" : {
39414 "description" : "The state of the vdev.",
e2d681b3 39415 "optional" : 1,
4d47f125
TL
39416 "type" : "string"
39417 },
39418 "write" : {
e2d681b3 39419 "optional" : 1,
4d47f125
TL
39420 "type" : "number"
39421 }
39422 },
39423 "type" : "object"
39424 },
39425 "type" : "array"
56122987 39426 },
e2d681b3
TL
39427 "errors" : {
39428 "description" : "Information about the errors on the zpool.",
39429 "type" : "string"
39430 },
4d47f125
TL
39431 "name" : {
39432 "description" : "The name of the zpool.",
39433 "type" : "string"
44660702 39434 },
4d47f125 39435 "scan" : {
e2d681b3 39436 "description" : "Information about the last/current scrub.",
d2656385 39437 "optional" : 1,
4d47f125 39438 "type" : "string"
44660702 39439 },
4d47f125
TL
39440 "state" : {
39441 "description" : "The state of the zpool.",
39442 "type" : "string"
39443 },
39444 "status" : {
39445 "description" : "Information about the state of the zpool.",
44660702 39446 "optional" : 1,
4d47f125 39447 "type" : "string"
56122987 39448 }
4d47f125
TL
39449 },
39450 "type" : "object"
44660702
DM
39451 }
39452 }
39453 },
39454 "leaf" : 1,
4d47f125
TL
39455 "path" : "/nodes/{node}/disks/zfs/{name}",
39456 "text" : "{name}"
44660702
DM
39457 }
39458 ],
39459 "info" : {
39460 "GET" : {
e9cd3bd4 39461 "allowtoken" : 1,
4d47f125 39462 "description" : "List Zpools.",
44660702 39463 "method" : "GET",
4d47f125 39464 "name" : "index",
44660702
DM
39465 "parameters" : {
39466 "additionalProperties" : 0,
39467 "properties" : {
39468 "node" : {
39469 "description" : "The cluster node name.",
39470 "format" : "pve-node",
013dc89f
DM
39471 "type" : "string",
39472 "typetext" : "<string>"
4d47f125
TL
39473 }
39474 }
39475 },
39476 "permissions" : {
39477 "check" : [
39478 "perm",
39479 "/",
39480 [
39481 "Sys.Audit",
39482 "Datastore.Audit"
39483 ],
39484 "any",
39485 1
39486 ]
39487 },
39488 "protected" : 1,
39489 "proxyto" : "node",
39490 "returns" : {
39491 "items" : {
39492 "properties" : {
39493 "alloc" : {
39494 "description" : "",
39495 "type" : "integer"
39496 },
39497 "dedup" : {
39498 "description" : "",
39499 "type" : "number"
39500 },
39501 "frag" : {
39502 "description" : "",
39503 "type" : "integer"
39504 },
39505 "free" : {
39506 "description" : "",
39507 "type" : "integer"
39508 },
39509 "health" : {
39510 "description" : "",
39511 "type" : "string"
39512 },
39513 "name" : {
39514 "description" : "",
39515 "type" : "string"
39516 },
39517 "size" : {
39518 "description" : "",
39519 "type" : "integer"
39520 }
39521 },
39522 "type" : "object"
39523 },
39524 "links" : [
39525 {
39526 "href" : "{name}",
39527 "rel" : "child"
39528 }
39529 ],
39530 "type" : "array"
39531 }
39532 },
39533 "POST" : {
e9cd3bd4 39534 "allowtoken" : 1,
4d47f125
TL
39535 "description" : "Create a ZFS pool.",
39536 "method" : "POST",
39537 "name" : "create",
39538 "parameters" : {
39539 "additionalProperties" : 0,
39540 "properties" : {
39541 "add_storage" : {
39542 "default" : 0,
39543 "description" : "Configure storage using the zpool.",
39544 "optional" : 1,
39545 "type" : "boolean",
39546 "typetext" : "<boolean>"
39547 },
39548 "ashift" : {
39549 "default" : 12,
39550 "description" : "Pool sector size exponent.",
39551 "maximum" : 16,
39552 "minimum" : 9,
39553 "optional" : 1,
39554 "type" : "integer",
39555 "typetext" : "<integer> (9 - 16)"
39556 },
39557 "compression" : {
39558 "default" : "on",
39559 "description" : "The compression algorithm to use.",
39560 "enum" : [
39561 "on",
39562 "off",
39563 "gzip",
39564 "lz4",
39565 "lzjb",
5370fa8c
TL
39566 "zle",
39567 "zstd"
4d47f125
TL
39568 ],
39569 "optional" : 1,
39570 "type" : "string"
39571 },
39572 "devices" : {
39573 "description" : "The block devices you want to create the zpool on.",
39574 "format" : "string-list",
39575 "type" : "string",
39576 "typetext" : "<string>"
44660702 39577 },
4d47f125 39578 "name" : {
44660702
DM
39579 "description" : "The storage identifier.",
39580 "format" : "pve-storage-id",
013dc89f
DM
39581 "type" : "string",
39582 "typetext" : "<string>"
4d47f125
TL
39583 },
39584 "node" : {
39585 "description" : "The cluster node name.",
39586 "format" : "pve-node",
39587 "type" : "string",
39588 "typetext" : "<string>"
39589 },
39590 "raidlevel" : {
39591 "description" : "The RAID level to use.",
39592 "enum" : [
39593 "single",
39594 "mirror",
39595 "raid10",
39596 "raidz",
39597 "raidz2",
39598 "raidz3"
39599 ],
39600 "type" : "string"
56122987
DM
39601 }
39602 }
44660702
DM
39603 },
39604 "permissions" : {
39605 "check" : [
39606 "perm",
4d47f125 39607 "/",
44660702 39608 [
4d47f125
TL
39609 "Sys.Modify",
39610 "Datastore.Allocate"
39611 ]
44660702
DM
39612 ]
39613 },
4d47f125
TL
39614 "protected" : 1,
39615 "proxyto" : "node",
44660702 39616 "returns" : {
4d47f125 39617 "type" : "string"
56122987
DM
39618 }
39619 }
44660702
DM
39620 },
39621 "leaf" : 0,
4d47f125
TL
39622 "path" : "/nodes/{node}/disks/zfs",
39623 "text" : "zfs"
39624 },
2c0dde61
DM
39625 {
39626 "info" : {
39627 "GET" : {
e9cd3bd4 39628 "allowtoken" : 1,
2c0dde61
DM
39629 "description" : "List local disks.",
39630 "method" : "GET",
39631 "name" : "list",
39632 "parameters" : {
39633 "additionalProperties" : 0,
39634 "properties" : {
d2656385
TL
39635 "include-partitions" : {
39636 "default" : 0,
39637 "description" : "Also include partitions.",
39638 "optional" : 1,
39639 "type" : "boolean",
39640 "typetext" : "<boolean>"
39641 },
2c0dde61
DM
39642 "node" : {
39643 "description" : "The cluster node name.",
39644 "format" : "pve-node",
013dc89f
DM
39645 "type" : "string",
39646 "typetext" : "<string>"
4d47f125
TL
39647 },
39648 "skipsmart" : {
39649 "default" : 0,
39650 "description" : "Skip smart checks.",
39651 "optional" : 1,
39652 "type" : "boolean",
39653 "typetext" : "<boolean>"
39654 },
39655 "type" : {
39656 "description" : "Only list specific types of disks.",
39657 "enum" : [
39658 "unused",
39659 "journal_disks"
39660 ],
39661 "optional" : 1,
39662 "type" : "string"
2c0dde61
DM
39663 }
39664 }
39665 },
39666 "permissions" : {
39667 "check" : [
d2656385 39668 "or",
2c0dde61 39669 [
d2656385
TL
39670 "perm",
39671 "/",
39672 [
39673 "Sys.Audit",
39674 "Datastore.Audit"
39675 ],
39676 "any",
39677 1
2c0dde61 39678 ],
d2656385
TL
39679 [
39680 "perm",
39681 "/nodes/{node}",
39682 [
39683 "Sys.Audit",
39684 "Datastore.Audit"
39685 ],
39686 "any",
39687 1
39688 ]
2c0dde61
DM
39689 ]
39690 },
39691 "protected" : 1,
39692 "proxyto" : "node",
39693 "returns" : {
39694 "items" : {
39695 "properties" : {
39696 "devpath" : {
39697 "description" : "The device path",
39698 "type" : "string"
39699 },
39700 "gpt" : {
39701 "type" : "boolean"
39702 },
39703 "health" : {
39704 "optional" : 1,
39705 "type" : "string"
39706 },
39707 "model" : {
39708 "optional" : 1,
39709 "type" : "string"
39710 },
39711 "osdid" : {
39712 "type" : "integer"
39713 },
d2656385
TL
39714 "parent" : {
39715 "description" : "For partitions only. The device path of the disk the partition resides on.",
39716 "optional" : 1,
39717 "type" : "string"
39718 },
2c0dde61
DM
39719 "serial" : {
39720 "optional" : 1,
39721 "type" : "string"
39722 },
39723 "size" : {
39724 "type" : "integer"
39725 },
39726 "used" : {
39727 "optional" : 1,
39728 "type" : "string"
39729 },
39730 "vendor" : {
39731 "optional" : 1,
39732 "type" : "string"
39733 },
39734 "wwn" : {
39735 "optional" : 1,
39736 "type" : "string"
39737 }
39738 },
39739 "type" : "object"
39740 },
39741 "type" : "array"
39742 }
39743 }
39744 },
39745 "leaf" : 1,
39746 "path" : "/nodes/{node}/disks/list",
39747 "text" : "list"
39748 },
39749 {
39750 "info" : {
39751 "GET" : {
e9cd3bd4 39752 "allowtoken" : 1,
2c0dde61
DM
39753 "description" : "Get SMART Health of a disk.",
39754 "method" : "GET",
39755 "name" : "smart",
39756 "parameters" : {
39757 "additionalProperties" : 0,
39758 "properties" : {
39759 "disk" : {
39760 "description" : "Block device name",
39761 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
39762 "type" : "string"
39763 },
39764 "healthonly" : {
39765 "description" : "If true returns only the health status",
39766 "optional" : 1,
013dc89f
DM
39767 "type" : "boolean",
39768 "typetext" : "<boolean>"
2c0dde61
DM
39769 },
39770 "node" : {
39771 "description" : "The cluster node name.",
39772 "format" : "pve-node",
013dc89f
DM
39773 "type" : "string",
39774 "typetext" : "<string>"
2c0dde61
DM
39775 }
39776 }
39777 },
39778 "permissions" : {
39779 "check" : [
39780 "perm",
39781 "/",
39782 [
39783 "Sys.Audit",
39784 "Datastore.Audit"
39785 ],
39786 "any",
39787 1
39788 ]
39789 },
39790 "protected" : 1,
39791 "proxyto" : "node",
39792 "returns" : {
de0983cb
DM
39793 "properties" : {
39794 "attributes" : {
39795 "optional" : 1,
39796 "type" : "array"
39797 },
39798 "health" : {
39799 "type" : "string"
39800 },
39801 "text" : {
39802 "optional" : 1,
39803 "type" : "string"
39804 },
39805 "type" : {
39806 "optional" : 1,
39807 "type" : "string"
39808 }
39809 },
2c0dde61
DM
39810 "type" : "object"
39811 }
39812 }
39813 },
39814 "leaf" : 1,
39815 "path" : "/nodes/{node}/disks/smart",
39816 "text" : "smart"
39817 },
39818 {
39819 "info" : {
39820 "POST" : {
e9cd3bd4 39821 "allowtoken" : 1,
2c0dde61
DM
39822 "description" : "Initialize Disk with GPT",
39823 "method" : "POST",
39824 "name" : "initgpt",
39825 "parameters" : {
39826 "additionalProperties" : 0,
39827 "properties" : {
39828 "disk" : {
39829 "description" : "Block device name",
39830 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
39831 "type" : "string"
39832 },
39833 "node" : {
39834 "description" : "The cluster node name.",
39835 "format" : "pve-node",
013dc89f
DM
39836 "type" : "string",
39837 "typetext" : "<string>"
2c0dde61
DM
39838 },
39839 "uuid" : {
39840 "description" : "UUID for the GPT table",
39841 "maxLength" : 36,
39842 "optional" : 1,
39843 "pattern" : "[a-fA-F0-9\\-]+",
39844 "type" : "string"
39845 }
39846 }
39847 },
39848 "permissions" : {
39849 "check" : [
39850 "perm",
39851 "/",
39852 [
39853 "Sys.Modify"
39854 ]
39855 ]
39856 },
39857 "protected" : 1,
39858 "proxyto" : "node",
39859 "returns" : {
39860 "type" : "string"
39861 }
39862 }
39863 },
39864 "leaf" : 1,
39865 "path" : "/nodes/{node}/disks/initgpt",
39866 "text" : "initgpt"
0695fdaf
TL
39867 },
39868 {
39869 "info" : {
39870 "PUT" : {
39871 "allowtoken" : 1,
39872 "description" : "Wipe a disk or partition.",
39873 "method" : "PUT",
39874 "name" : "wipe_disk",
39875 "parameters" : {
39876 "additionalProperties" : 0,
39877 "properties" : {
39878 "disk" : {
39879 "description" : "Block device name",
39880 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
39881 "type" : "string"
39882 },
39883 "node" : {
39884 "description" : "The cluster node name.",
39885 "format" : "pve-node",
39886 "type" : "string",
39887 "typetext" : "<string>"
39888 }
39889 }
39890 },
39891 "protected" : 1,
39892 "proxyto" : "node",
39893 "returns" : {
39894 "type" : "string"
39895 }
39896 }
39897 },
39898 "leaf" : 1,
39899 "path" : "/nodes/{node}/disks/wipedisk",
39900 "text" : "wipedisk"
2c0dde61
DM
39901 }
39902 ],
39903 "info" : {
39904 "GET" : {
e9cd3bd4 39905 "allowtoken" : 1,
2c0dde61
DM
39906 "description" : "Node index.",
39907 "method" : "GET",
39908 "name" : "index",
39909 "parameters" : {
39910 "additionalProperties" : 0,
39911 "properties" : {
39912 "node" : {
39913 "description" : "The cluster node name.",
39914 "format" : "pve-node",
013dc89f
DM
39915 "type" : "string",
39916 "typetext" : "<string>"
2c0dde61
DM
39917 }
39918 }
39919 },
39920 "permissions" : {
39921 "user" : "all"
39922 },
39923 "proxyto" : "node",
39924 "returns" : {
39925 "items" : {
39926 "properties" : {},
39927 "type" : "object"
39928 },
39929 "links" : [
39930 {
39931 "href" : "{name}",
39932 "rel" : "child"
39933 }
39934 ],
39935 "type" : "array"
39936 }
39937 }
39938 },
39939 "leaf" : 0,
39940 "path" : "/nodes/{node}/disks",
39941 "text" : "disks"
39942 },
56122987 39943 {
56122987
DM
39944 "children" : [
39945 {
39946 "info" : {
44660702 39947 "GET" : {
e9cd3bd4 39948 "allowtoken" : 1,
44660702
DM
39949 "description" : "List available updates.",
39950 "method" : "GET",
39951 "name" : "list_updates",
39952 "parameters" : {
39953 "additionalProperties" : 0,
39954 "properties" : {
39955 "node" : {
39956 "description" : "The cluster node name.",
39957 "format" : "pve-node",
013dc89f
DM
39958 "type" : "string",
39959 "typetext" : "<string>"
44660702
DM
39960 }
39961 }
7aacca6f
DM
39962 },
39963 "permissions" : {
39964 "check" : [
39965 "perm",
39966 "/nodes/{node}",
39967 [
39968 "Sys.Modify"
39969 ]
39970 ]
39971 },
44660702 39972 "protected" : 1,
56122987 39973 "proxyto" : "node",
44660702
DM
39974 "returns" : {
39975 "items" : {
39976 "properties" : {},
39977 "type" : "object"
39978 },
39979 "type" : "array"
39980 }
39981 },
39982 "POST" : {
e9cd3bd4 39983 "allowtoken" : 1,
44660702 39984 "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
7aacca6f
DM
39985 "method" : "POST",
39986 "name" : "update_database",
56122987
DM
39987 "parameters" : {
39988 "additionalProperties" : 0,
39989 "properties" : {
44660702
DM
39990 "node" : {
39991 "description" : "The cluster node name.",
39992 "format" : "pve-node",
013dc89f
DM
39993 "type" : "string",
39994 "typetext" : "<string>"
44660702 39995 },
56122987 39996 "notify" : {
56122987 39997 "default" : 0,
44660702
DM
39998 "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
39999 "optional" : 1,
013dc89f
DM
40000 "type" : "boolean",
40001 "typetext" : "<boolean>"
56122987
DM
40002 },
40003 "quiet" : {
56122987 40004 "default" : 0,
44660702 40005 "description" : "Only produces output suitable for logging, omitting progress indicators.",
56122987 40006 "optional" : 1,
013dc89f
DM
40007 "type" : "boolean",
40008 "typetext" : "<boolean>"
56122987 40009 }
7aacca6f
DM
40010 }
40011 },
40012 "permissions" : {
40013 "check" : [
40014 "perm",
40015 "/nodes/{node}",
40016 [
40017 "Sys.Modify"
40018 ]
40019 ]
40020 },
44660702
DM
40021 "protected" : 1,
40022 "proxyto" : "node",
40023 "returns" : {
40024 "type" : "string"
40025 }
56122987
DM
40026 }
40027 },
7aacca6f 40028 "leaf" : 1,
44660702
DM
40029 "path" : "/nodes/{node}/apt/update",
40030 "text" : "update"
56122987
DM
40031 },
40032 {
56122987
DM
40033 "info" : {
40034 "GET" : {
e9cd3bd4 40035 "allowtoken" : 1,
44660702 40036 "description" : "Get package changelogs.",
56122987 40037 "method" : "GET",
7aacca6f 40038 "name" : "changelog",
56122987 40039 "parameters" : {
44660702 40040 "additionalProperties" : 0,
56122987
DM
40041 "properties" : {
40042 "name" : {
40043 "description" : "Package name.",
013dc89f
DM
40044 "type" : "string",
40045 "typetext" : "<string>"
56122987 40046 },
44660702
DM
40047 "node" : {
40048 "description" : "The cluster node name.",
40049 "format" : "pve-node",
013dc89f
DM
40050 "type" : "string",
40051 "typetext" : "<string>"
44660702 40052 },
56122987 40053 "version" : {
7aacca6f 40054 "description" : "Package version.",
44660702 40055 "optional" : 1,
013dc89f
DM
40056 "type" : "string",
40057 "typetext" : "<string>"
56122987 40058 }
44660702 40059 }
56122987 40060 },
44660702
DM
40061 "permissions" : {
40062 "check" : [
40063 "perm",
40064 "/nodes/{node}",
40065 [
40066 "Sys.Modify"
40067 ]
40068 ]
40069 },
40070 "proxyto" : "node",
40071 "returns" : {
40072 "type" : "string"
40073 }
56122987
DM
40074 }
40075 },
44660702
DM
40076 "leaf" : 1,
40077 "path" : "/nodes/{node}/apt/changelog",
7aacca6f 40078 "text" : "changelog"
56122987 40079 },
34f3e481
TL
40080 {
40081 "info" : {
40082 "GET" : {
40083 "allowtoken" : 1,
40084 "description" : "Get APT repository information.",
40085 "method" : "GET",
40086 "name" : "repositories",
40087 "parameters" : {
40088 "additionalProperties" : 0,
40089 "properties" : {
40090 "node" : {
40091 "description" : "The cluster node name.",
40092 "format" : "pve-node",
40093 "type" : "string",
40094 "typetext" : "<string>"
40095 }
40096 }
40097 },
40098 "permissions" : {
40099 "check" : [
40100 "perm",
40101 "/nodes/{node}",
40102 [
40103 "Sys.Audit"
40104 ]
40105 ]
40106 },
40107 "proxyto" : "node",
40108 "returns" : {
40109 "description" : "Result from parsing the APT repository files in /etc/apt/.",
40110 "properties" : {
40111 "digest" : {
40112 "description" : "Common digest of all files.",
40113 "type" : "string"
40114 },
40115 "errors" : {
40116 "description" : "List of problematic repository files.",
40117 "items" : {
40118 "properties" : {
40119 "error" : {
40120 "description" : "The error message",
40121 "type" : "string"
40122 },
40123 "path" : {
40124 "description" : "Path to the problematic file.",
40125 "type" : "string"
40126 }
40127 },
40128 "type" : "object"
40129 },
40130 "type" : "array"
40131 },
40132 "files" : {
40133 "description" : "List of parsed repository files.",
40134 "items" : {
40135 "properties" : {
40136 "digest" : {
40137 "description" : "Digest of the file as bytes.",
40138 "items" : {
40139 "type" : "integer"
40140 },
40141 "type" : "array"
40142 },
40143 "file-type" : {
40144 "description" : "Format of the file.",
40145 "enum" : [
40146 "list",
40147 "sources"
40148 ],
40149 "type" : "string"
40150 },
40151 "path" : {
40152 "description" : "Path to the problematic file.",
40153 "type" : "string"
40154 },
40155 "repositories" : {
40156 "description" : "The parsed repositories.",
40157 "items" : {
40158 "properties" : {
40159 "Comment" : {
40160 "description" : "Associated comment",
40161 "optional" : 1,
40162 "type" : "string"
40163 },
40164 "Components" : {
40165 "description" : "List of repository components",
40166 "items" : {
40167 "type" : "string"
40168 },
40169 "optional" : 1,
40170 "type" : "array"
40171 },
40172 "Enabled" : {
40173 "description" : "Whether the repository is enabled or not",
40174 "type" : "boolean"
40175 },
40176 "FileType" : {
40177 "description" : "Format of the defining file.",
40178 "enum" : [
40179 "list",
40180 "sources"
40181 ],
40182 "type" : "string"
40183 },
40184 "Options" : {
40185 "description" : "Additional options",
40186 "items" : {
40187 "properties" : {
40188 "Key" : {
40189 "type" : "string"
40190 },
40191 "Values" : {
40192 "items" : {
40193 "type" : "string"
40194 },
40195 "type" : "array"
40196 }
40197 },
40198 "type" : "object"
40199 },
40200 "optional" : 1,
40201 "type" : "array"
40202 },
40203 "Suites" : {
40204 "description" : "List of package distribuitions",
40205 "items" : {
40206 "type" : "string"
40207 },
40208 "type" : "array"
40209 },
40210 "Types" : {
40211 "description" : "List of package types.",
40212 "items" : {
40213 "enum" : [
40214 "deb",
40215 "deb-src"
40216 ],
40217 "type" : "string"
40218 },
40219 "type" : "array"
40220 },
40221 "URIs" : {
40222 "description" : "List of repository URIs.",
40223 "items" : {
40224 "type" : "string"
40225 },
40226 "type" : "array"
40227 }
40228 },
40229 "type" : "object"
40230 },
40231 "type" : "array"
40232 }
40233 },
40234 "type" : "object"
40235 },
40236 "type" : "array"
40237 },
40238 "infos" : {
40239 "description" : "Additional information/warnings for APT repositories.",
40240 "items" : {
40241 "properties" : {
40242 "index" : {
40243 "description" : "Index of the associated repository within the file.",
40244 "type" : "string"
40245 },
40246 "kind" : {
40247 "description" : "Kind of the information (e.g. warning).",
40248 "type" : "string"
40249 },
40250 "message" : {
40251 "description" : "Information message.",
40252 "type" : "string"
40253 },
40254 "path" : {
40255 "description" : "Path to the associated file.",
40256 "type" : "string"
40257 },
40258 "property" : {
40259 "description" : "Property from which the info originates.",
40260 "optional" : 1,
40261 "type" : "string"
40262 }
40263 },
40264 "type" : "object"
40265 },
40266 "type" : "array"
40267 },
40268 "standard-repos" : {
40269 "description" : "List of standard repositories and their configuration status",
40270 "items" : {
40271 "properties" : {
40272 "handle" : {
40273 "description" : "Handle to identify the repository.",
40274 "type" : "string"
40275 },
40276 "name" : {
40277 "description" : "Full name of the repository.",
40278 "type" : "string"
40279 },
40280 "status" : {
40281 "description" : "Indicating enabled/disabled status, if the repository is configured.",
40282 "optional" : 1,
40283 "type" : "boolean"
40284 }
40285 },
40286 "type" : "object"
40287 },
40288 "type" : "array"
40289 }
40290 },
40291 "type" : "object"
40292 }
40293 },
40294 "POST" : {
40295 "allowtoken" : 1,
40296 "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
40297 "method" : "POST",
40298 "name" : "change_repository",
40299 "parameters" : {
40300 "additionalProperties" : 0,
40301 "properties" : {
40302 "digest" : {
40303 "description" : "Digest to detect modifications.",
40304 "maxLength" : 80,
40305 "optional" : 1,
40306 "type" : "string",
40307 "typetext" : "<string>"
40308 },
40309 "enabled" : {
40310 "description" : "Whether the repository should be enabled or not.",
40311 "optional" : 1,
40312 "type" : "boolean",
40313 "typetext" : "<boolean>"
40314 },
40315 "index" : {
40316 "description" : "Index within the file (starting from 0).",
40317 "type" : "integer",
40318 "typetext" : "<integer>"
40319 },
40320 "node" : {
40321 "description" : "The cluster node name.",
40322 "format" : "pve-node",
40323 "type" : "string",
40324 "typetext" : "<string>"
40325 },
40326 "path" : {
40327 "description" : "Path to the containing file.",
40328 "type" : "string",
40329 "typetext" : "<string>"
40330 }
40331 }
40332 },
40333 "permissions" : {
40334 "check" : [
40335 "perm",
40336 "/nodes/{node}",
40337 [
40338 "Sys.Modify"
40339 ]
40340 ]
40341 },
40342 "protected" : 1,
40343 "proxyto" : "node",
40344 "returns" : {
40345 "type" : "null"
40346 }
40347 },
40348 "PUT" : {
40349 "allowtoken" : 1,
40350 "description" : "Add a standard repository to the configuration",
40351 "method" : "PUT",
40352 "name" : "add_repository",
40353 "parameters" : {
40354 "additionalProperties" : 0,
40355 "properties" : {
40356 "digest" : {
40357 "description" : "Digest to detect modifications.",
40358 "maxLength" : 80,
40359 "optional" : 1,
40360 "type" : "string",
40361 "typetext" : "<string>"
40362 },
40363 "handle" : {
40364 "description" : "Handle that identifies a repository.",
40365 "type" : "string",
40366 "typetext" : "<string>"
40367 },
40368 "node" : {
40369 "description" : "The cluster node name.",
40370 "format" : "pve-node",
40371 "type" : "string",
40372 "typetext" : "<string>"
40373 }
40374 }
40375 },
40376 "permissions" : {
40377 "check" : [
40378 "perm",
40379 "/nodes/{node}",
40380 [
40381 "Sys.Modify"
40382 ]
40383 ]
40384 },
40385 "protected" : 1,
40386 "proxyto" : "node",
40387 "returns" : {
40388 "type" : "null"
40389 }
40390 }
40391 },
40392 "leaf" : 1,
40393 "path" : "/nodes/{node}/apt/repositories",
40394 "text" : "repositories"
40395 },
56122987 40396 {
56122987
DM
40397 "info" : {
40398 "GET" : {
e9cd3bd4 40399 "allowtoken" : 1,
44660702
DM
40400 "description" : "Get package information for important Proxmox packages.",
40401 "method" : "GET",
7aacca6f
DM
40402 "name" : "versions",
40403 "parameters" : {
44660702 40404 "additionalProperties" : 0,
7aacca6f
DM
40405 "properties" : {
40406 "node" : {
44660702 40407 "description" : "The cluster node name.",
7aacca6f 40408 "format" : "pve-node",
013dc89f
DM
40409 "type" : "string",
40410 "typetext" : "<string>"
7aacca6f 40411 }
44660702 40412 }
7aacca6f 40413 },
56122987
DM
40414 "permissions" : {
40415 "check" : [
40416 "perm",
40417 "/nodes/{node}",
40418 [
40419 "Sys.Audit"
40420 ]
40421 ]
40422 },
7aacca6f 40423 "proxyto" : "node",
56122987
DM
40424 "returns" : {
40425 "items" : {
7aacca6f
DM
40426 "properties" : {},
40427 "type" : "object"
44660702
DM
40428 },
40429 "type" : "array"
56122987
DM
40430 }
40431 }
40432 },
44660702 40433 "leaf" : 1,
7aacca6f 40434 "path" : "/nodes/{node}/apt/versions",
44660702 40435 "text" : "versions"
56122987
DM
40436 }
40437 ],
56122987
DM
40438 "info" : {
40439 "GET" : {
e9cd3bd4 40440 "allowtoken" : 1,
44660702 40441 "description" : "Directory index for apt (Advanced Package Tool).",
7aacca6f 40442 "method" : "GET",
44660702 40443 "name" : "index",
7aacca6f
DM
40444 "parameters" : {
40445 "additionalProperties" : 0,
40446 "properties" : {
40447 "node" : {
44660702 40448 "description" : "The cluster node name.",
7aacca6f 40449 "format" : "pve-node",
013dc89f
DM
40450 "type" : "string",
40451 "typetext" : "<string>"
7aacca6f
DM
40452 }
40453 }
40454 },
7aacca6f
DM
40455 "permissions" : {
40456 "user" : "all"
40457 },
44660702
DM
40458 "returns" : {
40459 "items" : {
40460 "properties" : {
40461 "id" : {
40462 "type" : "string"
40463 }
40464 },
40465 "type" : "object"
40466 },
40467 "links" : [
40468 {
40469 "href" : "{id}",
40470 "rel" : "child"
40471 }
40472 ],
40473 "type" : "array"
40474 }
56122987 40475 }
7aacca6f 40476 },
44660702 40477 "leaf" : 0,
7aacca6f 40478 "path" : "/nodes/{node}/apt",
44660702 40479 "text" : "apt"
56122987
DM
40480 },
40481 {
56122987
DM
40482 "children" : [
40483 {
40484 "children" : [
40485 {
56122987
DM
40486 "info" : {
40487 "DELETE" : {
e9cd3bd4 40488 "allowtoken" : 1,
44660702 40489 "description" : "Delete rule.",
7aacca6f 40490 "method" : "DELETE",
44660702 40491 "name" : "delete_rule",
56122987
DM
40492 "parameters" : {
40493 "additionalProperties" : 0,
40494 "properties" : {
56122987
DM
40495 "digest" : {
40496 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 40497 "maxLength" : 40,
56122987 40498 "optional" : 1,
013dc89f
DM
40499 "type" : "string",
40500 "typetext" : "<string>"
56122987 40501 },
44660702
DM
40502 "node" : {
40503 "description" : "The cluster node name.",
40504 "format" : "pve-node",
013dc89f
DM
40505 "type" : "string",
40506 "typetext" : "<string>"
44660702 40507 },
7aacca6f 40508 "pos" : {
7aacca6f 40509 "description" : "Update rule at position <pos>.",
44660702
DM
40510 "minimum" : 0,
40511 "optional" : 1,
4bd7df8b 40512 "type" : "integer",
013dc89f 40513 "typetext" : "<integer> (0 - N)"
56122987
DM
40514 }
40515 }
40516 },
44660702
DM
40517 "permissions" : {
40518 "check" : [
40519 "perm",
40520 "/nodes/{node}",
40521 [
40522 "Sys.Modify"
40523 ]
40524 ]
40525 },
40526 "protected" : 1,
40527 "proxyto" : "node",
56122987
DM
40528 "returns" : {
40529 "type" : "null"
44660702
DM
40530 }
40531 },
40532 "GET" : {
e9cd3bd4 40533 "allowtoken" : 1,
44660702
DM
40534 "description" : "Get single rule data.",
40535 "method" : "GET",
40536 "name" : "get_rule",
40537 "parameters" : {
40538 "additionalProperties" : 0,
40539 "properties" : {
40540 "node" : {
40541 "description" : "The cluster node name.",
40542 "format" : "pve-node",
013dc89f
DM
40543 "type" : "string",
40544 "typetext" : "<string>"
44660702
DM
40545 },
40546 "pos" : {
40547 "description" : "Update rule at position <pos>.",
40548 "minimum" : 0,
40549 "optional" : 1,
4bd7df8b 40550 "type" : "integer",
013dc89f 40551 "typetext" : "<integer> (0 - N)"
44660702
DM
40552 }
40553 }
56122987 40554 },
56122987
DM
40555 "permissions" : {
40556 "check" : [
40557 "perm",
40558 "/nodes/{node}",
40559 [
44660702 40560 "Sys.Audit"
56122987
DM
40561 ]
40562 ]
44660702
DM
40563 },
40564 "proxyto" : "node",
40565 "returns" : {
40566 "properties" : {
e2d681b3
TL
40567 "action" : {
40568 "type" : "string"
40569 },
40570 "comment" : {
40571 "optional" : 1,
40572 "type" : "string"
40573 },
40574 "dest" : {
40575 "optional" : 1,
40576 "type" : "string"
40577 },
40578 "dport" : {
40579 "optional" : 1,
40580 "type" : "string"
40581 },
40582 "enable" : {
40583 "optional" : 1,
40584 "type" : "integer"
40585 },
4772952b
TL
40586 "icmp-type" : {
40587 "optional" : 1,
40588 "type" : "string"
40589 },
e2d681b3
TL
40590 "iface" : {
40591 "optional" : 1,
40592 "type" : "string"
40593 },
40594 "ipversion" : {
40595 "optional" : 1,
40596 "type" : "integer"
40597 },
95895385
TL
40598 "log" : {
40599 "description" : "Log level for firewall rule",
40600 "enum" : [
40601 "emerg",
40602 "alert",
40603 "crit",
40604 "err",
40605 "warning",
40606 "notice",
40607 "info",
40608 "debug",
40609 "nolog"
40610 ],
40611 "optional" : 1,
40612 "type" : "string"
40613 },
e2d681b3
TL
40614 "macro" : {
40615 "optional" : 1,
5f26e15b 40616 "type" : "string"
e2d681b3 40617 },
44660702
DM
40618 "pos" : {
40619 "type" : "integer"
e2d681b3
TL
40620 },
40621 "proto" : {
40622 "optional" : 1,
40623 "type" : "string"
40624 },
40625 "source" : {
40626 "optional" : 1,
40627 "type" : "string"
40628 },
40629 "sport" : {
40630 "optional" : 1,
40631 "type" : "string"
40632 },
40633 "type" : {
40634 "type" : "string"
44660702
DM
40635 }
40636 },
40637 "type" : "object"
7aacca6f 40638 }
56122987
DM
40639 },
40640 "PUT" : {
e9cd3bd4 40641 "allowtoken" : 1,
44660702
DM
40642 "description" : "Modify rule data.",
40643 "method" : "PUT",
56122987 40644 "name" : "update_rule",
56122987 40645 "parameters" : {
44660702 40646 "additionalProperties" : 0,
56122987 40647 "properties" : {
44660702
DM
40648 "action" : {
40649 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
40650 "maxLength" : 20,
40651 "minLength" : 2,
56122987 40652 "optional" : 1,
44660702
DM
40653 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
40654 "type" : "string"
56122987 40655 },
7aacca6f 40656 "comment" : {
e94f0d56 40657 "description" : "Descriptive comment.",
56122987 40658 "optional" : 1,
013dc89f
DM
40659 "type" : "string",
40660 "typetext" : "<string>"
56122987 40661 },
44660702
DM
40662 "delete" : {
40663 "description" : "A list of settings you want to delete.",
40664 "format" : "pve-configid-list",
56122987 40665 "optional" : 1,
013dc89f
DM
40666 "type" : "string",
40667 "typetext" : "<string>"
56122987 40668 },
44660702
DM
40669 "dest" : {
40670 "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.",
40671 "format" : "pve-fw-addr-spec",
0695fdaf 40672 "maxLength" : 512,
56122987 40673 "optional" : 1,
013dc89f
DM
40674 "type" : "string",
40675 "typetext" : "<string>"
56122987 40676 },
44660702
DM
40677 "digest" : {
40678 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
40679 "maxLength" : 40,
56122987 40680 "optional" : 1,
013dc89f
DM
40681 "type" : "string",
40682 "typetext" : "<string>"
56122987 40683 },
7aacca6f 40684 "dport" : {
7aacca6f 40685 "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
40686 "format" : "pve-fw-dport-spec",
40687 "optional" : 1,
013dc89f
DM
40688 "type" : "string",
40689 "typetext" : "<string>"
7aacca6f 40690 },
44660702 40691 "enable" : {
e94f0d56 40692 "description" : "Flag to enable/disable a rule.",
44660702 40693 "minimum" : 0,
56122987 40694 "optional" : 1,
4bd7df8b 40695 "type" : "integer",
013dc89f 40696 "typetext" : "<integer> (0 - N)"
56122987 40697 },
4772952b
TL
40698 "icmp-type" : {
40699 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
40700 "format" : "pve-fw-icmp-type-spec",
40701 "optional" : 1,
40702 "type" : "string",
40703 "typetext" : "<string>"
40704 },
7aacca6f 40705 "iface" : {
44660702 40706 "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 40707 "format" : "pve-iface",
44660702 40708 "maxLength" : 20,
56122987 40709 "minLength" : 2,
44660702 40710 "optional" : 1,
013dc89f
DM
40711 "type" : "string",
40712 "typetext" : "<string>"
56122987 40713 },
95895385
TL
40714 "log" : {
40715 "description" : "Log level for firewall rule.",
40716 "enum" : [
40717 "emerg",
40718 "alert",
40719 "crit",
40720 "err",
40721 "warning",
40722 "notice",
40723 "info",
40724 "debug",
40725 "nolog"
40726 ],
40727 "optional" : 1,
40728 "type" : "string"
40729 },
44660702 40730 "macro" : {
e94f0d56 40731 "description" : "Use predefined standard macro.",
44660702
DM
40732 "maxLength" : 128,
40733 "optional" : 1,
013dc89f
DM
40734 "type" : "string",
40735 "typetext" : "<string>"
44660702
DM
40736 },
40737 "moveto" : {
40738 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
40739 "minimum" : 0,
7aacca6f 40740 "optional" : 1,
4bd7df8b 40741 "type" : "integer",
013dc89f 40742 "typetext" : "<integer> (0 - N)"
44660702
DM
40743 },
40744 "node" : {
40745 "description" : "The cluster node name.",
40746 "format" : "pve-node",
013dc89f
DM
40747 "type" : "string",
40748 "typetext" : "<string>"
56122987
DM
40749 },
40750 "pos" : {
44660702 40751 "description" : "Update rule at position <pos>.",
7aacca6f 40752 "minimum" : 0,
7aacca6f 40753 "optional" : 1,
4bd7df8b 40754 "type" : "integer",
013dc89f 40755 "typetext" : "<integer> (0 - N)"
7aacca6f 40756 },
44660702
DM
40757 "proto" : {
40758 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
40759 "format" : "pve-fw-protocol-spec",
7aacca6f 40760 "optional" : 1,
013dc89f
DM
40761 "type" : "string",
40762 "typetext" : "<string>"
7aacca6f 40763 },
44660702
DM
40764 "source" : {
40765 "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.",
40766 "format" : "pve-fw-addr-spec",
0695fdaf 40767 "maxLength" : 512,
56122987 40768 "optional" : 1,
013dc89f
DM
40769 "type" : "string",
40770 "typetext" : "<string>"
7aacca6f 40771 },
44660702
DM
40772 "sport" : {
40773 "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.",
40774 "format" : "pve-fw-sport-spec",
40775 "optional" : 1,
013dc89f
DM
40776 "type" : "string",
40777 "typetext" : "<string>"
44660702
DM
40778 },
40779 "type" : {
e94f0d56 40780 "description" : "Rule type.",
44660702
DM
40781 "enum" : [
40782 "in",
40783 "out",
40784 "group"
40785 ],
40786 "optional" : 1,
40787 "type" : "string"
56122987 40788 }
44660702 40789 }
56122987 40790 },
56122987
DM
40791 "permissions" : {
40792 "check" : [
40793 "perm",
40794 "/nodes/{node}",
40795 [
40796 "Sys.Modify"
40797 ]
40798 ]
7aacca6f 40799 },
44660702 40800 "protected" : 1,
7aacca6f 40801 "proxyto" : "node",
7aacca6f
DM
40802 "returns" : {
40803 "type" : "null"
56122987
DM
40804 }
40805 }
7aacca6f 40806 },
44660702 40807 "leaf" : 1,
7aacca6f 40808 "path" : "/nodes/{node}/firewall/rules/{pos}",
44660702 40809 "text" : "{pos}"
56122987
DM
40810 }
40811 ],
56122987
DM
40812 "info" : {
40813 "GET" : {
e9cd3bd4 40814 "allowtoken" : 1,
44660702
DM
40815 "description" : "List rules.",
40816 "method" : "GET",
40817 "name" : "get_rules",
40818 "parameters" : {
40819 "additionalProperties" : 0,
40820 "properties" : {
40821 "node" : {
40822 "description" : "The cluster node name.",
40823 "format" : "pve-node",
013dc89f
DM
40824 "type" : "string",
40825 "typetext" : "<string>"
44660702
DM
40826 }
40827 }
40828 },
40829 "permissions" : {
40830 "check" : [
40831 "perm",
40832 "/nodes/{node}",
40833 [
40834 "Sys.Audit"
40835 ]
40836 ]
40837 },
40838 "proxyto" : "node",
56122987 40839 "returns" : {
56122987
DM
40840 "items" : {
40841 "properties" : {
40842 "pos" : {
40843 "type" : "integer"
40844 }
44660702
DM
40845 },
40846 "type" : "object"
56122987 40847 },
7aacca6f
DM
40848 "links" : [
40849 {
40850 "href" : "{pos}",
40851 "rel" : "child"
40852 }
40853 ],
40854 "type" : "array"
44660702 40855 }
56122987
DM
40856 },
40857 "POST" : {
e9cd3bd4 40858 "allowtoken" : 1,
44660702 40859 "description" : "Create new rule.",
7aacca6f
DM
40860 "method" : "POST",
40861 "name" : "create_rule",
56122987 40862 "parameters" : {
44660702 40863 "additionalProperties" : 0,
56122987 40864 "properties" : {
7aacca6f 40865 "action" : {
7aacca6f 40866 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
44660702 40867 "maxLength" : 20,
7aacca6f
DM
40868 "minLength" : 2,
40869 "optional" : 0,
44660702
DM
40870 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
40871 "type" : "string"
56122987 40872 },
44660702 40873 "comment" : {
e94f0d56 40874 "description" : "Descriptive comment.",
56122987 40875 "optional" : 1,
013dc89f
DM
40876 "type" : "string",
40877 "typetext" : "<string>"
56122987 40878 },
44660702
DM
40879 "dest" : {
40880 "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.",
40881 "format" : "pve-fw-addr-spec",
0695fdaf 40882 "maxLength" : 512,
7aacca6f 40883 "optional" : 1,
013dc89f
DM
40884 "type" : "string",
40885 "typetext" : "<string>"
56122987 40886 },
44660702
DM
40887 "digest" : {
40888 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
40889 "maxLength" : 40,
40890 "optional" : 1,
013dc89f
DM
40891 "type" : "string",
40892 "typetext" : "<string>"
56122987 40893 },
44660702
DM
40894 "dport" : {
40895 "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.",
40896 "format" : "pve-fw-dport-spec",
7aacca6f 40897 "optional" : 1,
013dc89f
DM
40898 "type" : "string",
40899 "typetext" : "<string>"
56122987 40900 },
44660702 40901 "enable" : {
e94f0d56 40902 "description" : "Flag to enable/disable a rule.",
44660702
DM
40903 "minimum" : 0,
40904 "optional" : 1,
4bd7df8b 40905 "type" : "integer",
013dc89f 40906 "typetext" : "<integer> (0 - N)"
44660702 40907 },
4772952b
TL
40908 "icmp-type" : {
40909 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
40910 "format" : "pve-fw-icmp-type-spec",
40911 "optional" : 1,
40912 "type" : "string",
40913 "typetext" : "<string>"
40914 },
7aacca6f 40915 "iface" : {
44660702 40916 "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 40917 "format" : "pve-iface",
56122987 40918 "maxLength" : 20,
7aacca6f 40919 "minLength" : 2,
7aacca6f 40920 "optional" : 1,
013dc89f
DM
40921 "type" : "string",
40922 "typetext" : "<string>"
56122987 40923 },
95895385
TL
40924 "log" : {
40925 "description" : "Log level for firewall rule.",
40926 "enum" : [
40927 "emerg",
40928 "alert",
40929 "crit",
40930 "err",
40931 "warning",
40932 "notice",
40933 "info",
40934 "debug",
40935 "nolog"
40936 ],
40937 "optional" : 1,
40938 "type" : "string"
40939 },
44660702 40940 "macro" : {
e94f0d56 40941 "description" : "Use predefined standard macro.",
44660702 40942 "maxLength" : 128,
7aacca6f 40943 "optional" : 1,
013dc89f
DM
40944 "type" : "string",
40945 "typetext" : "<string>"
56122987 40946 },
44660702
DM
40947 "node" : {
40948 "description" : "The cluster node name.",
40949 "format" : "pve-node",
013dc89f
DM
40950 "type" : "string",
40951 "typetext" : "<string>"
44660702
DM
40952 },
40953 "pos" : {
40954 "description" : "Update rule at position <pos>.",
40955 "minimum" : 0,
40956 "optional" : 1,
4bd7df8b 40957 "type" : "integer",
013dc89f 40958 "typetext" : "<integer> (0 - N)"
44660702
DM
40959 },
40960 "proto" : {
40961 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
40962 "format" : "pve-fw-protocol-spec",
56122987 40963 "optional" : 1,
013dc89f
DM
40964 "type" : "string",
40965 "typetext" : "<string>"
56122987 40966 },
7aacca6f 40967 "source" : {
7aacca6f 40968 "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 40969 "format" : "pve-fw-addr-spec",
0695fdaf 40970 "maxLength" : 512,
44660702 40971 "optional" : 1,
013dc89f
DM
40972 "type" : "string",
40973 "typetext" : "<string>"
7aacca6f 40974 },
44660702
DM
40975 "sport" : {
40976 "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.",
40977 "format" : "pve-fw-sport-spec",
7aacca6f 40978 "optional" : 1,
013dc89f
DM
40979 "type" : "string",
40980 "typetext" : "<string>"
44660702
DM
40981 },
40982 "type" : {
e94f0d56 40983 "description" : "Rule type.",
44660702
DM
40984 "enum" : [
40985 "in",
40986 "out",
40987 "group"
40988 ],
40989 "optional" : 0,
40990 "type" : "string"
56122987 40991 }
44660702 40992 }
7aacca6f 40993 },
56122987
DM
40994 "permissions" : {
40995 "check" : [
40996 "perm",
40997 "/nodes/{node}",
40998 [
40999 "Sys.Modify"
41000 ]
41001 ]
41002 },
44660702
DM
41003 "protected" : 1,
41004 "proxyto" : "node",
41005 "returns" : {
41006 "type" : "null"
41007 }
56122987
DM
41008 }
41009 },
44660702 41010 "leaf" : 0,
7aacca6f 41011 "path" : "/nodes/{node}/firewall/rules",
44660702 41012 "text" : "rules"
56122987
DM
41013 },
41014 {
56122987 41015 "info" : {
44660702 41016 "GET" : {
e9cd3bd4 41017 "allowtoken" : 1,
44660702
DM
41018 "description" : "Get host firewall options.",
41019 "method" : "GET",
41020 "name" : "get_options",
56122987 41021 "parameters" : {
7aacca6f 41022 "additionalProperties" : 0,
56122987 41023 "properties" : {
44660702
DM
41024 "node" : {
41025 "description" : "The cluster node name.",
41026 "format" : "pve-node",
013dc89f
DM
41027 "type" : "string",
41028 "typetext" : "<string>"
44660702
DM
41029 }
41030 }
41031 },
41032 "permissions" : {
41033 "check" : [
41034 "perm",
41035 "/nodes/{node}",
41036 [
41037 "Sys.Audit"
41038 ]
41039 ]
41040 },
41041 "proxyto" : "node",
41042 "returns" : {
41043 "properties" : {
41044 "enable" : {
41045 "description" : "Enable host firewall rules.",
7aacca6f 41046 "optional" : 1,
44660702 41047 "type" : "boolean"
7aacca6f 41048 },
44660702
DM
41049 "log_level_in" : {
41050 "description" : "Log level for incoming traffic.",
56122987
DM
41051 "enum" : [
41052 "emerg",
41053 "alert",
41054 "crit",
41055 "err",
41056 "warning",
41057 "notice",
41058 "info",
41059 "debug",
41060 "nolog"
41061 ],
56122987 41062 "optional" : 1,
44660702
DM
41063 "type" : "string"
41064 },
41065 "log_level_out" : {
41066 "description" : "Log level for outgoing traffic.",
56122987
DM
41067 "enum" : [
41068 "emerg",
41069 "alert",
41070 "crit",
41071 "err",
41072 "warning",
41073 "notice",
41074 "info",
41075 "debug",
41076 "nolog"
41077 ],
44660702
DM
41078 "optional" : 1,
41079 "type" : "string"
41080 },
95895385
TL
41081 "log_nf_conntrack" : {
41082 "default" : 0,
41083 "description" : "Enable logging of conntrack information.",
41084 "optional" : 1,
41085 "type" : "boolean"
41086 },
44660702 41087 "ndp" : {
5c1699e5
TL
41088 "default" : 0,
41089 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702
DM
41090 "optional" : 1,
41091 "type" : "boolean"
41092 },
5f26e15b
TL
41093 "nf_conntrack_allow_invalid" : {
41094 "default" : 0,
41095 "description" : "Allow invalid packets on connection tracking.",
41096 "optional" : 1,
41097 "type" : "boolean"
41098 },
44660702 41099 "nf_conntrack_max" : {
5c1699e5 41100 "default" : 262144,
44660702
DM
41101 "description" : "Maximum number of tracked connections.",
41102 "minimum" : 32768,
41103 "optional" : 1,
41104 "type" : "integer"
41105 },
41106 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 41107 "default" : 432000,
44660702
DM
41108 "description" : "Conntrack established timeout.",
41109 "minimum" : 7875,
41110 "optional" : 1,
41111 "type" : "integer"
41112 },
5c1699e5
TL
41113 "nf_conntrack_tcp_timeout_syn_recv" : {
41114 "default" : 60,
41115 "description" : "Conntrack syn recv timeout.",
41116 "maximum" : 60,
41117 "minimum" : 30,
41118 "optional" : 1,
41119 "type" : "integer"
41120 },
44660702
DM
41121 "nosmurfs" : {
41122 "description" : "Enable SMURFS filter.",
41123 "optional" : 1,
41124 "type" : "boolean"
56122987 41125 },
5c1699e5
TL
41126 "protection_synflood" : {
41127 "default" : 0,
41128 "description" : "Enable synflood protection",
41129 "optional" : 1,
41130 "type" : "boolean"
41131 },
41132 "protection_synflood_burst" : {
41133 "default" : 1000,
41134 "description" : "Synflood protection rate burst by ip src.",
41135 "optional" : 1,
41136 "type" : "integer"
41137 },
41138 "protection_synflood_rate" : {
41139 "default" : 200,
41140 "description" : "Synflood protection rate syn/sec by ip src.",
41141 "optional" : 1,
41142 "type" : "integer"
41143 },
7aacca6f 41144 "smurf_log_level" : {
44660702 41145 "description" : "Log level for SMURFS filter.",
56122987
DM
41146 "enum" : [
41147 "emerg",
41148 "alert",
41149 "crit",
41150 "err",
41151 "warning",
41152 "notice",
41153 "info",
41154 "debug",
41155 "nolog"
7aacca6f 41156 ],
7aacca6f
DM
41157 "optional" : 1,
41158 "type" : "string"
56122987 41159 },
44660702
DM
41160 "tcp_flags_log_level" : {
41161 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
41162 "enum" : [
41163 "emerg",
41164 "alert",
41165 "crit",
41166 "err",
41167 "warning",
41168 "notice",
41169 "info",
41170 "debug",
41171 "nolog"
41172 ],
44660702
DM
41173 "optional" : 1,
41174 "type" : "string"
7aacca6f 41175 },
44660702 41176 "tcpflags" : {
5c1699e5 41177 "default" : 0,
44660702 41178 "description" : "Filter illegal combinations of TCP flags.",
56122987 41179 "optional" : 1,
44660702 41180 "type" : "boolean"
56122987 41181 }
44660702
DM
41182 },
41183 "type" : "object"
7aacca6f 41184 }
56122987 41185 },
44660702 41186 "PUT" : {
e9cd3bd4 41187 "allowtoken" : 1,
44660702
DM
41188 "description" : "Set Firewall options.",
41189 "method" : "PUT",
41190 "name" : "set_options",
7aacca6f 41191 "parameters" : {
44660702 41192 "additionalProperties" : 0,
7aacca6f 41193 "properties" : {
44660702
DM
41194 "delete" : {
41195 "description" : "A list of settings you want to delete.",
41196 "format" : "pve-configid-list",
7aacca6f 41197 "optional" : 1,
013dc89f
DM
41198 "type" : "string",
41199 "typetext" : "<string>"
56122987 41200 },
44660702
DM
41201 "digest" : {
41202 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
41203 "maxLength" : 40,
41204 "optional" : 1,
013dc89f
DM
41205 "type" : "string",
41206 "typetext" : "<string>"
56122987 41207 },
44660702
DM
41208 "enable" : {
41209 "description" : "Enable host firewall rules.",
7aacca6f 41210 "optional" : 1,
013dc89f
DM
41211 "type" : "boolean",
41212 "typetext" : "<boolean>"
44660702
DM
41213 },
41214 "log_level_in" : {
41215 "description" : "Log level for incoming traffic.",
56122987
DM
41216 "enum" : [
41217 "emerg",
41218 "alert",
41219 "crit",
41220 "err",
41221 "warning",
41222 "notice",
41223 "info",
41224 "debug",
41225 "nolog"
44660702 41226 ],
7aacca6f 41227 "optional" : 1,
44660702 41228 "type" : "string"
7aacca6f 41229 },
44660702
DM
41230 "log_level_out" : {
41231 "description" : "Log level for outgoing traffic.",
56122987
DM
41232 "enum" : [
41233 "emerg",
41234 "alert",
41235 "crit",
41236 "err",
41237 "warning",
41238 "notice",
41239 "info",
41240 "debug",
41241 "nolog"
41242 ],
41243 "optional" : 1,
7aacca6f 41244 "type" : "string"
56122987 41245 },
95895385
TL
41246 "log_nf_conntrack" : {
41247 "default" : 0,
41248 "description" : "Enable logging of conntrack information.",
41249 "optional" : 1,
41250 "type" : "boolean",
41251 "typetext" : "<boolean>"
41252 },
44660702 41253 "ndp" : {
5c1699e5
TL
41254 "default" : 0,
41255 "description" : "Enable NDP (Neighbor Discovery Protocol).",
7aacca6f 41256 "optional" : 1,
013dc89f
DM
41257 "type" : "boolean",
41258 "typetext" : "<boolean>"
44660702 41259 },
5f26e15b
TL
41260 "nf_conntrack_allow_invalid" : {
41261 "default" : 0,
41262 "description" : "Allow invalid packets on connection tracking.",
41263 "optional" : 1,
41264 "type" : "boolean",
41265 "typetext" : "<boolean>"
41266 },
44660702 41267 "nf_conntrack_max" : {
5c1699e5 41268 "default" : 262144,
44660702
DM
41269 "description" : "Maximum number of tracked connections.",
41270 "minimum" : 32768,
41271 "optional" : 1,
4bd7df8b 41272 "type" : "integer",
013dc89f 41273 "typetext" : "<integer> (32768 - N)"
44660702
DM
41274 },
41275 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 41276 "default" : 432000,
44660702
DM
41277 "description" : "Conntrack established timeout.",
41278 "minimum" : 7875,
41279 "optional" : 1,
4bd7df8b 41280 "type" : "integer",
013dc89f 41281 "typetext" : "<integer> (7875 - N)"
44660702 41282 },
5c1699e5
TL
41283 "nf_conntrack_tcp_timeout_syn_recv" : {
41284 "default" : 60,
41285 "description" : "Conntrack syn recv timeout.",
41286 "maximum" : 60,
41287 "minimum" : 30,
41288 "optional" : 1,
41289 "type" : "integer",
41290 "typetext" : "<integer> (30 - 60)"
41291 },
44660702
DM
41292 "node" : {
41293 "description" : "The cluster node name.",
41294 "format" : "pve-node",
013dc89f
DM
41295 "type" : "string",
41296 "typetext" : "<string>"
44660702
DM
41297 },
41298 "nosmurfs" : {
41299 "description" : "Enable SMURFS filter.",
41300 "optional" : 1,
013dc89f
DM
41301 "type" : "boolean",
41302 "typetext" : "<boolean>"
44660702 41303 },
5c1699e5
TL
41304 "protection_synflood" : {
41305 "default" : 0,
41306 "description" : "Enable synflood protection",
41307 "optional" : 1,
41308 "type" : "boolean",
41309 "typetext" : "<boolean>"
41310 },
41311 "protection_synflood_burst" : {
41312 "default" : 1000,
41313 "description" : "Synflood protection rate burst by ip src.",
41314 "optional" : 1,
41315 "type" : "integer",
41316 "typetext" : "<integer>"
41317 },
41318 "protection_synflood_rate" : {
41319 "default" : 200,
41320 "description" : "Synflood protection rate syn/sec by ip src.",
41321 "optional" : 1,
41322 "type" : "integer",
41323 "typetext" : "<integer>"
41324 },
44660702
DM
41325 "smurf_log_level" : {
41326 "description" : "Log level for SMURFS filter.",
56122987
DM
41327 "enum" : [
41328 "emerg",
41329 "alert",
41330 "crit",
41331 "err",
41332 "warning",
41333 "notice",
41334 "info",
41335 "debug",
41336 "nolog"
44660702
DM
41337 ],
41338 "optional" : 1,
41339 "type" : "string"
56122987 41340 },
44660702
DM
41341 "tcp_flags_log_level" : {
41342 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
41343 "enum" : [
41344 "emerg",
41345 "alert",
41346 "crit",
41347 "err",
41348 "warning",
41349 "notice",
41350 "info",
41351 "debug",
41352 "nolog"
41353 ],
44660702
DM
41354 "optional" : 1,
41355 "type" : "string"
7aacca6f 41356 },
44660702 41357 "tcpflags" : {
5c1699e5 41358 "default" : 0,
44660702 41359 "description" : "Filter illegal combinations of TCP flags.",
56122987 41360 "optional" : 1,
013dc89f
DM
41361 "type" : "boolean",
41362 "typetext" : "<boolean>"
56122987 41363 }
7aacca6f 41364 }
56122987 41365 },
44660702
DM
41366 "permissions" : {
41367 "check" : [
41368 "perm",
41369 "/nodes/{node}",
41370 [
41371 "Sys.Modify"
41372 ]
41373 ]
41374 },
41375 "protected" : 1,
41376 "proxyto" : "node",
41377 "returns" : {
41378 "type" : "null"
41379 }
7aacca6f
DM
41380 }
41381 },
44660702
DM
41382 "leaf" : 1,
41383 "path" : "/nodes/{node}/firewall/options",
7aacca6f
DM
41384 "text" : "options"
41385 },
41386 {
7aacca6f
DM
41387 "info" : {
41388 "GET" : {
e9cd3bd4 41389 "allowtoken" : 1,
44660702
DM
41390 "description" : "Read firewall log",
41391 "method" : "GET",
7aacca6f 41392 "name" : "log",
56122987 41393 "parameters" : {
44660702 41394 "additionalProperties" : 0,
56122987 41395 "properties" : {
7aacca6f 41396 "limit" : {
44660702 41397 "minimum" : 0,
7aacca6f 41398 "optional" : 1,
4bd7df8b 41399 "type" : "integer",
013dc89f 41400 "typetext" : "<integer> (0 - N)"
7aacca6f 41401 },
56122987 41402 "node" : {
7aacca6f 41403 "description" : "The cluster node name.",
44660702 41404 "format" : "pve-node",
013dc89f
DM
41405 "type" : "string",
41406 "typetext" : "<string>"
44660702
DM
41407 },
41408 "start" : {
41409 "minimum" : 0,
41410 "optional" : 1,
4bd7df8b 41411 "type" : "integer",
013dc89f 41412 "typetext" : "<integer> (0 - N)"
56122987 41413 }
44660702 41414 }
7aacca6f 41415 },
56122987
DM
41416 "permissions" : {
41417 "check" : [
41418 "perm",
41419 "/nodes/{node}",
41420 [
41421 "Sys.Syslog"
41422 ]
41423 ]
41424 },
44660702
DM
41425 "protected" : 1,
41426 "proxyto" : "node",
56122987
DM
41427 "returns" : {
41428 "items" : {
56122987 41429 "properties" : {
56122987 41430 "n" : {
44660702
DM
41431 "description" : "Line number",
41432 "type" : "integer"
7aacca6f
DM
41433 },
41434 "t" : {
44660702
DM
41435 "description" : "Line text",
41436 "type" : "string"
56122987 41437 }
44660702
DM
41438 },
41439 "type" : "object"
56122987
DM
41440 },
41441 "type" : "array"
7aacca6f 41442 }
56122987
DM
41443 }
41444 },
44660702
DM
41445 "leaf" : 1,
41446 "path" : "/nodes/{node}/firewall/log",
7aacca6f 41447 "text" : "log"
56122987
DM
41448 }
41449 ],
41450 "info" : {
41451 "GET" : {
e9cd3bd4 41452 "allowtoken" : 1,
44660702
DM
41453 "description" : "Directory index.",
41454 "method" : "GET",
41455 "name" : "index",
56122987 41456 "parameters" : {
44660702 41457 "additionalProperties" : 0,
56122987
DM
41458 "properties" : {
41459 "node" : {
41460 "description" : "The cluster node name.",
44660702 41461 "format" : "pve-node",
013dc89f
DM
41462 "type" : "string",
41463 "typetext" : "<string>"
56122987 41464 }
44660702 41465 }
56122987 41466 },
7aacca6f
DM
41467 "permissions" : {
41468 "user" : "all"
41469 },
56122987
DM
41470 "returns" : {
41471 "items" : {
41472 "properties" : {},
41473 "type" : "object"
41474 },
56122987
DM
41475 "links" : [
41476 {
44660702
DM
41477 "href" : "{name}",
41478 "rel" : "child"
56122987 41479 }
44660702
DM
41480 ],
41481 "type" : "array"
41482 }
56122987 41483 }
7aacca6f 41484 },
44660702 41485 "leaf" : 0,
7aacca6f 41486 "path" : "/nodes/{node}/firewall",
44660702 41487 "text" : "firewall"
56122987 41488 },
5d9c884c
DM
41489 {
41490 "children" : [
41491 {
41492 "children" : [
41493 {
41494 "info" : {
41495 "GET" : {
e9cd3bd4 41496 "allowtoken" : 1,
5d9c884c
DM
41497 "description" : "Get replication job status.",
41498 "method" : "GET",
41499 "name" : "job_status",
41500 "parameters" : {
41501 "additionalProperties" : 0,
41502 "properties" : {
41503 "id" : {
41504 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
41505 "format" : "pve-replication-job-id",
41506 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
41507 "type" : "string"
41508 },
41509 "node" : {
41510 "description" : "The cluster node name.",
41511 "format" : "pve-node",
41512 "type" : "string",
41513 "typetext" : "<string>"
41514 }
41515 }
41516 },
41517 "permissions" : {
41518 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
41519 "user" : "all"
41520 },
41521 "protected" : 1,
41522 "proxyto" : "node",
41523 "returns" : {
5d9c884c
DM
41524 "type" : "object"
41525 }
41526 }
41527 },
41528 "leaf" : 1,
41529 "path" : "/nodes/{node}/replication/{id}/status",
41530 "text" : "status"
41531 },
41532 {
41533 "info" : {
41534 "GET" : {
e9cd3bd4 41535 "allowtoken" : 1,
5d9c884c
DM
41536 "description" : "Read replication job log.",
41537 "method" : "GET",
41538 "name" : "read_job_log",
41539 "parameters" : {
41540 "additionalProperties" : 0,
41541 "properties" : {
41542 "id" : {
41543 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
41544 "format" : "pve-replication-job-id",
41545 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
41546 "type" : "string"
41547 },
41548 "limit" : {
41549 "minimum" : 0,
41550 "optional" : 1,
41551 "type" : "integer",
41552 "typetext" : "<integer> (0 - N)"
41553 },
41554 "node" : {
41555 "description" : "The cluster node name.",
41556 "format" : "pve-node",
41557 "type" : "string",
41558 "typetext" : "<string>"
41559 },
41560 "start" : {
41561 "minimum" : 0,
41562 "optional" : 1,
41563 "type" : "integer",
41564 "typetext" : "<integer> (0 - N)"
41565 }
41566 }
41567 },
41568 "permissions" : {
41569 "description" : "Requires the VM.Audit permission on /vms/<vmid>, or 'Sys.Audit' on '/nodes/<node>'",
41570 "user" : "all"
41571 },
41572 "protected" : 1,
41573 "proxyto" : "node",
41574 "returns" : {
41575 "items" : {
41576 "properties" : {
41577 "n" : {
41578 "description" : "Line number",
41579 "type" : "integer"
41580 },
41581 "t" : {
41582 "description" : "Line text",
41583 "type" : "string"
41584 }
41585 },
41586 "type" : "object"
41587 },
41588 "type" : "array"
41589 }
41590 }
41591 },
41592 "leaf" : 1,
41593 "path" : "/nodes/{node}/replication/{id}/log",
41594 "text" : "log"
41595 },
41596 {
41597 "info" : {
41598 "POST" : {
e9cd3bd4 41599 "allowtoken" : 1,
5d9c884c
DM
41600 "description" : "Schedule replication job to start as soon as possible.",
41601 "method" : "POST",
41602 "name" : "schedule_now",
41603 "parameters" : {
41604 "additionalProperties" : 0,
41605 "properties" : {
41606 "id" : {
41607 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
41608 "format" : "pve-replication-job-id",
41609 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
41610 "type" : "string"
41611 },
41612 "node" : {
41613 "description" : "The cluster node name.",
41614 "format" : "pve-node",
41615 "type" : "string",
41616 "typetext" : "<string>"
41617 }
41618 }
41619 },
41620 "permissions" : {
41621 "check" : [
41622 "perm",
41623 "/storage",
41624 [
41625 "Datastore.Allocate"
41626 ]
41627 ]
41628 },
41629 "protected" : 1,
41630 "proxyto" : "node",
41631 "returns" : {
41632 "type" : "string"
41633 }
41634 }
41635 },
41636 "leaf" : 1,
41637 "path" : "/nodes/{node}/replication/{id}/schedule_now",
41638 "text" : "schedule_now"
41639 }
41640 ],
41641 "info" : {
41642 "GET" : {
e9cd3bd4 41643 "allowtoken" : 1,
5d9c884c
DM
41644 "description" : "Directory index.",
41645 "method" : "GET",
41646 "name" : "index",
41647 "parameters" : {
41648 "additionalProperties" : 0,
41649 "properties" : {
41650 "id" : {
41651 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
41652 "format" : "pve-replication-job-id",
41653 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
41654 "type" : "string"
41655 },
41656 "node" : {
41657 "description" : "The cluster node name.",
41658 "format" : "pve-node",
41659 "type" : "string",
41660 "typetext" : "<string>"
41661 }
41662 }
41663 },
41664 "permissions" : {
41665 "user" : "all"
41666 },
41667 "returns" : {
41668 "items" : {
41669 "properties" : {},
41670 "type" : "object"
41671 },
41672 "links" : [
41673 {
41674 "href" : "{name}",
41675 "rel" : "child"
41676 }
41677 ],
41678 "type" : "array"
41679 }
41680 }
41681 },
41682 "leaf" : 0,
41683 "path" : "/nodes/{node}/replication/{id}",
41684 "text" : "{id}"
41685 }
41686 ],
41687 "info" : {
41688 "GET" : {
e9cd3bd4 41689 "allowtoken" : 1,
5d9c884c
DM
41690 "description" : "List status of all replication jobs on this node.",
41691 "method" : "GET",
41692 "name" : "status",
41693 "parameters" : {
41694 "additionalProperties" : 0,
41695 "properties" : {
41696 "guest" : {
41697 "description" : "Only list replication jobs for this guest.",
41698 "format" : "pve-vmid",
41699 "minimum" : 1,
41700 "optional" : 1,
41701 "type" : "integer",
41702 "typetext" : "<integer> (1 - N)"
41703 },
41704 "node" : {
41705 "description" : "The cluster node name.",
41706 "format" : "pve-node",
41707 "type" : "string",
41708 "typetext" : "<string>"
41709 }
41710 }
41711 },
41712 "permissions" : {
41713 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
41714 "user" : "all"
41715 },
41716 "protected" : 1,
41717 "proxyto" : "node",
41718 "returns" : {
41719 "items" : {
41720 "properties" : {
41721 "id" : {
41722 "type" : "string"
41723 }
41724 },
41725 "type" : "object"
41726 },
41727 "links" : [
41728 {
41729 "href" : "{id}",
41730 "rel" : "child"
41731 }
41732 ],
41733 "type" : "array"
41734 }
41735 }
41736 },
41737 "leaf" : 0,
41738 "path" : "/nodes/{node}/replication",
41739 "text" : "replication"
41740 },
a9a8e3d1
DM
41741 {
41742 "children" : [
41743 {
41744 "children" : [
41745 {
41746 "info" : {
41747 "DELETE" : {
e9cd3bd4 41748 "allowtoken" : 1,
a9a8e3d1
DM
41749 "description" : "Revoke existing certificate from CA.",
41750 "method" : "DELETE",
41751 "name" : "revoke_certificate",
41752 "parameters" : {
41753 "additionalProperties" : 0,
41754 "properties" : {
41755 "node" : {
41756 "description" : "The cluster node name.",
41757 "format" : "pve-node",
41758 "type" : "string",
41759 "typetext" : "<string>"
41760 }
41761 }
41762 },
ac70d7d1
TL
41763 "permissions" : {
41764 "check" : [
41765 "perm",
41766 "/nodes/{node}",
41767 [
41768 "Sys.Modify"
41769 ]
41770 ]
41771 },
a9a8e3d1
DM
41772 "protected" : 1,
41773 "proxyto" : "node",
41774 "returns" : {
41775 "type" : "string"
41776 }
41777 },
41778 "POST" : {
e9cd3bd4 41779 "allowtoken" : 1,
a9a8e3d1
DM
41780 "description" : "Order a new certificate from ACME-compatible CA.",
41781 "method" : "POST",
41782 "name" : "new_certificate",
41783 "parameters" : {
41784 "additionalProperties" : 0,
41785 "properties" : {
41786 "force" : {
41787 "default" : 0,
41788 "description" : "Overwrite existing custom certificate.",
41789 "optional" : 1,
41790 "type" : "boolean",
41791 "typetext" : "<boolean>"
41792 },
41793 "node" : {
41794 "description" : "The cluster node name.",
41795 "format" : "pve-node",
41796 "type" : "string",
41797 "typetext" : "<string>"
41798 }
41799 }
41800 },
ac70d7d1
TL
41801 "permissions" : {
41802 "check" : [
41803 "perm",
41804 "/nodes/{node}",
41805 [
41806 "Sys.Modify"
41807 ]
41808 ]
41809 },
a9a8e3d1
DM
41810 "protected" : 1,
41811 "proxyto" : "node",
41812 "returns" : {
41813 "type" : "string"
41814 }
41815 },
41816 "PUT" : {
e9cd3bd4 41817 "allowtoken" : 1,
a9a8e3d1
DM
41818 "description" : "Renew existing certificate from CA.",
41819 "method" : "PUT",
41820 "name" : "renew_certificate",
41821 "parameters" : {
41822 "additionalProperties" : 0,
41823 "properties" : {
41824 "force" : {
41825 "default" : 0,
41826 "description" : "Force renewal even if expiry is more than 30 days away.",
41827 "optional" : 1,
41828 "type" : "boolean",
41829 "typetext" : "<boolean>"
41830 },
41831 "node" : {
41832 "description" : "The cluster node name.",
41833 "format" : "pve-node",
41834 "type" : "string",
41835 "typetext" : "<string>"
41836 }
41837 }
41838 },
ac70d7d1
TL
41839 "permissions" : {
41840 "check" : [
41841 "perm",
41842 "/nodes/{node}",
41843 [
41844 "Sys.Modify"
41845 ]
41846 ]
41847 },
a9a8e3d1
DM
41848 "protected" : 1,
41849 "proxyto" : "node",
41850 "returns" : {
41851 "type" : "string"
41852 }
41853 }
41854 },
41855 "leaf" : 1,
41856 "path" : "/nodes/{node}/certificates/acme/certificate",
41857 "text" : "certificate"
41858 }
41859 ],
41860 "info" : {
41861 "GET" : {
e9cd3bd4 41862 "allowtoken" : 1,
a9a8e3d1
DM
41863 "description" : "ACME index.",
41864 "method" : "GET",
41865 "name" : "index",
41866 "parameters" : {
41867 "additionalProperties" : 0,
41868 "properties" : {
41869 "node" : {
41870 "description" : "The cluster node name.",
41871 "format" : "pve-node",
41872 "type" : "string",
41873 "typetext" : "<string>"
41874 }
41875 }
41876 },
41877 "permissions" : {
41878 "user" : "all"
41879 },
41880 "returns" : {
41881 "items" : {
41882 "properties" : {},
41883 "type" : "object"
41884 },
41885 "links" : [
41886 {
41887 "href" : "{name}",
41888 "rel" : "child"
41889 }
41890 ],
41891 "type" : "array"
41892 }
41893 }
41894 },
41895 "leaf" : 0,
41896 "path" : "/nodes/{node}/certificates/acme",
41897 "text" : "acme"
41898 },
41899 {
41900 "info" : {
41901 "GET" : {
e9cd3bd4 41902 "allowtoken" : 1,
a9a8e3d1
DM
41903 "description" : "Get information about node's certificates.",
41904 "method" : "GET",
41905 "name" : "info",
41906 "parameters" : {
41907 "additionalProperties" : 0,
41908 "properties" : {
41909 "node" : {
41910 "description" : "The cluster node name.",
41911 "format" : "pve-node",
41912 "type" : "string",
41913 "typetext" : "<string>"
41914 }
41915 }
41916 },
41917 "permissions" : {
41918 "user" : "all"
41919 },
41920 "proxyto" : "node",
41921 "returns" : {
41922 "items" : {
41923 "properties" : {
41924 "filename" : {
41925 "optional" : 1,
41926 "type" : "string"
41927 },
41928 "fingerprint" : {
41929 "description" : "Certificate SHA 256 fingerprint.",
41930 "optional" : 1,
41931 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
41932 "type" : "string"
41933 },
41934 "issuer" : {
41935 "description" : "Certificate issuer name.",
41936 "optional" : 1,
41937 "type" : "string"
41938 },
41939 "notafter" : {
41940 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
41941 "optional" : 1,
4d47f125 41942 "renderer" : "timestamp",
a9a8e3d1
DM
41943 "type" : "integer"
41944 },
41945 "notbefore" : {
41946 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
41947 "optional" : 1,
4d47f125 41948 "renderer" : "timestamp",
a9a8e3d1
DM
41949 "type" : "integer"
41950 },
41951 "pem" : {
41952 "description" : "Certificate in PEM format",
41953 "format" : "pem-certificate",
41954 "optional" : 1,
41955 "type" : "string"
41956 },
1c532546
TL
41957 "public-key-bits" : {
41958 "description" : "Certificate's public key size",
41959 "optional" : 1,
41960 "type" : "integer"
41961 },
41962 "public-key-type" : {
41963 "description" : "Certificate's public key algorithm",
41964 "optional" : 1,
41965 "type" : "string"
41966 },
a9a8e3d1
DM
41967 "san" : {
41968 "description" : "List of Certificate's SubjectAlternativeName entries.",
41969 "items" : {
41970 "type" : "string"
41971 },
41972 "optional" : 1,
4d47f125 41973 "renderer" : "yaml",
a9a8e3d1
DM
41974 "type" : "array"
41975 },
41976 "subject" : {
41977 "description" : "Certificate subject name.",
41978 "optional" : 1,
41979 "type" : "string"
41980 }
41981 },
41982 "type" : "object"
41983 },
41984 "type" : "array"
41985 }
41986 }
41987 },
41988 "leaf" : 1,
41989 "path" : "/nodes/{node}/certificates/info",
41990 "text" : "info"
41991 },
41992 {
41993 "info" : {
41994 "DELETE" : {
e9cd3bd4 41995 "allowtoken" : 1,
a9a8e3d1
DM
41996 "description" : "DELETE custom certificate chain and key.",
41997 "method" : "DELETE",
41998 "name" : "remove_custom_cert",
41999 "parameters" : {
42000 "additionalProperties" : 0,
42001 "properties" : {
42002 "node" : {
42003 "description" : "The cluster node name.",
42004 "format" : "pve-node",
42005 "type" : "string",
42006 "typetext" : "<string>"
42007 },
42008 "restart" : {
42009 "default" : 0,
42010 "description" : "Restart pveproxy.",
42011 "optional" : 1,
42012 "type" : "boolean",
42013 "typetext" : "<boolean>"
42014 }
42015 }
42016 },
ac70d7d1
TL
42017 "permissions" : {
42018 "check" : [
42019 "perm",
42020 "/nodes/{node}",
42021 [
42022 "Sys.Modify"
42023 ]
42024 ]
42025 },
a9a8e3d1
DM
42026 "protected" : 1,
42027 "proxyto" : "node",
42028 "returns" : {
42029 "type" : "null"
42030 }
42031 },
42032 "POST" : {
e9cd3bd4 42033 "allowtoken" : 1,
a9a8e3d1
DM
42034 "description" : "Upload or update custom certificate chain and key.",
42035 "method" : "POST",
42036 "name" : "upload_custom_cert",
42037 "parameters" : {
42038 "additionalProperties" : 0,
42039 "properties" : {
42040 "certificates" : {
42041 "description" : "PEM encoded certificate (chain).",
42042 "format" : "pem-certificate-chain",
42043 "type" : "string",
42044 "typetext" : "<string>"
42045 },
42046 "force" : {
42047 "default" : 0,
42048 "description" : "Overwrite existing custom or ACME certificate files.",
42049 "optional" : 1,
42050 "type" : "boolean",
42051 "typetext" : "<boolean>"
42052 },
42053 "key" : {
42054 "description" : "PEM encoded private key.",
42055 "format" : "pem-string",
42056 "optional" : 1,
42057 "type" : "string",
42058 "typetext" : "<string>"
42059 },
42060 "node" : {
42061 "description" : "The cluster node name.",
42062 "format" : "pve-node",
42063 "type" : "string",
42064 "typetext" : "<string>"
42065 },
42066 "restart" : {
42067 "default" : 0,
42068 "description" : "Restart pveproxy.",
42069 "optional" : 1,
42070 "type" : "boolean",
42071 "typetext" : "<boolean>"
42072 }
42073 }
42074 },
ac70d7d1
TL
42075 "permissions" : {
42076 "check" : [
42077 "perm",
42078 "/nodes/{node}",
42079 [
42080 "Sys.Modify"
42081 ]
42082 ]
42083 },
a9a8e3d1
DM
42084 "protected" : 1,
42085 "proxyto" : "node",
42086 "returns" : {
42087 "properties" : {
42088 "filename" : {
42089 "optional" : 1,
42090 "type" : "string"
42091 },
42092 "fingerprint" : {
42093 "description" : "Certificate SHA 256 fingerprint.",
42094 "optional" : 1,
42095 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
42096 "type" : "string"
42097 },
42098 "issuer" : {
42099 "description" : "Certificate issuer name.",
42100 "optional" : 1,
42101 "type" : "string"
42102 },
42103 "notafter" : {
42104 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
42105 "optional" : 1,
4d47f125 42106 "renderer" : "timestamp",
a9a8e3d1
DM
42107 "type" : "integer"
42108 },
42109 "notbefore" : {
42110 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
42111 "optional" : 1,
4d47f125 42112 "renderer" : "timestamp",
a9a8e3d1
DM
42113 "type" : "integer"
42114 },
42115 "pem" : {
42116 "description" : "Certificate in PEM format",
42117 "format" : "pem-certificate",
42118 "optional" : 1,
42119 "type" : "string"
42120 },
1c532546
TL
42121 "public-key-bits" : {
42122 "description" : "Certificate's public key size",
42123 "optional" : 1,
42124 "type" : "integer"
42125 },
42126 "public-key-type" : {
42127 "description" : "Certificate's public key algorithm",
42128 "optional" : 1,
42129 "type" : "string"
42130 },
a9a8e3d1
DM
42131 "san" : {
42132 "description" : "List of Certificate's SubjectAlternativeName entries.",
42133 "items" : {
42134 "type" : "string"
42135 },
42136 "optional" : 1,
4d47f125 42137 "renderer" : "yaml",
a9a8e3d1
DM
42138 "type" : "array"
42139 },
42140 "subject" : {
42141 "description" : "Certificate subject name.",
42142 "optional" : 1,
42143 "type" : "string"
42144 }
42145 },
42146 "type" : "object"
42147 }
42148 }
42149 },
42150 "leaf" : 1,
42151 "path" : "/nodes/{node}/certificates/custom",
42152 "text" : "custom"
42153 }
42154 ],
42155 "info" : {
42156 "GET" : {
e9cd3bd4 42157 "allowtoken" : 1,
a9a8e3d1
DM
42158 "description" : "Node index.",
42159 "method" : "GET",
42160 "name" : "index",
42161 "parameters" : {
42162 "additionalProperties" : 0,
42163 "properties" : {
42164 "node" : {
42165 "description" : "The cluster node name.",
42166 "format" : "pve-node",
42167 "type" : "string",
42168 "typetext" : "<string>"
42169 }
42170 }
42171 },
42172 "permissions" : {
42173 "user" : "all"
42174 },
42175 "returns" : {
42176 "items" : {
42177 "properties" : {},
42178 "type" : "object"
42179 },
42180 "links" : [
42181 {
42182 "href" : "{name}",
42183 "rel" : "child"
42184 }
42185 ],
42186 "type" : "array"
42187 }
42188 }
42189 },
42190 "leaf" : 0,
c5aa7e14
TL
42191 "path" : "/nodes/{node}/certificates",
42192 "text" : "certificates"
42193 },
42194 {
42195 "info" : {
42196 "GET" : {
42197 "allowtoken" : 1,
42198 "description" : "Get node configuration options.",
42199 "method" : "GET",
42200 "name" : "get_config",
42201 "parameters" : {
42202 "additionalProperties" : 0,
42203 "properties" : {
42204 "node" : {
42205 "description" : "The cluster node name.",
42206 "format" : "pve-node",
42207 "type" : "string",
42208 "typetext" : "<string>"
42209 },
42210 "property" : {
42211 "default" : "all",
42212 "description" : "Return only a specific property from the node configuration.",
42213 "enum" : [
42214 "acme",
42215 "acmedomain0",
42216 "acmedomain1",
42217 "acmedomain2",
42218 "acmedomain3",
42219 "acmedomain4",
42220 "acmedomain5",
42221 "description",
42222 "startall-onboot-delay",
42223 "wakeonlan"
42224 ],
42225 "optional" : 1,
42226 "type" : "string"
42227 }
42228 }
42229 },
42230 "permissions" : {
42231 "check" : [
42232 "perm",
42233 "/",
42234 [
42235 "Sys.Audit"
42236 ]
42237 ]
42238 },
42239 "proxyto" : "node",
42240 "returns" : {
c30bb419
TL
42241 "properties" : {
42242 "acme" : {
42243 "description" : "Node specific ACME settings.",
42244 "format" : {
42245 "account" : {
42246 "default" : "default",
42247 "description" : "ACME account config file name.",
42248 "format" : "pve-configid",
42249 "format_description" : "name",
42250 "optional" : 1,
42251 "type" : "string"
42252 },
42253 "domains" : {
42254 "description" : "List of domains for this node's ACME certificate",
42255 "format" : "pve-acme-domain-list",
42256 "format_description" : "domain[;domain;...]",
42257 "optional" : 1,
42258 "type" : "string"
42259 }
42260 },
42261 "optional" : 1,
42262 "type" : "string"
42263 },
42264 "acmedomain[n]" : {
42265 "description" : "ACME domain and validation plugin",
42266 "format" : {
42267 "alias" : {
42268 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
42269 "format" : "pve-acme-alias",
42270 "format_description" : "domain",
42271 "optional" : 1,
42272 "type" : "string"
42273 },
42274 "domain" : {
42275 "default_key" : 1,
42276 "description" : "domain for this node's ACME certificate",
42277 "format" : "pve-acme-domain",
42278 "format_description" : "domain",
42279 "type" : "string"
42280 },
42281 "plugin" : {
42282 "default" : "standalone",
42283 "description" : "The ACME plugin ID",
42284 "format" : "pve-configid",
42285 "format_description" : "name of the plugin configuration",
42286 "optional" : 1,
42287 "type" : "string"
42288 }
42289 },
42290 "optional" : 1,
42291 "type" : "string"
42292 },
42293 "description" : {
42294 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
42295 "maxLength" : 65536,
42296 "optional" : 1,
42297 "type" : "string"
42298 },
42299 "digest" : {
42300 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
42301 "maxLength" : 40,
42302 "optional" : 1,
42303 "type" : "string"
42304 },
42305 "startall-onboot-delay" : {
42306 "default" : 0,
42307 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
42308 "maximum" : 300,
42309 "minimum" : 0,
42310 "optional" : 1,
42311 "type" : "integer"
42312 },
42313 "wakeonlan" : {
42314 "description" : "MAC address for wake on LAN",
42315 "format" : "mac-addr",
42316 "optional" : 1,
42317 "type" : "string"
42318 }
42319 },
c5aa7e14
TL
42320 "type" : "object"
42321 }
42322 },
42323 "PUT" : {
42324 "allowtoken" : 1,
42325 "description" : "Set node configuration options.",
42326 "method" : "PUT",
42327 "name" : "set_options",
42328 "parameters" : {
42329 "additionalProperties" : 0,
42330 "properties" : {
42331 "acme" : {
42332 "description" : "Node specific ACME settings.",
42333 "format" : {
42334 "account" : {
42335 "default" : "default",
42336 "description" : "ACME account config file name.",
42337 "format" : "pve-configid",
42338 "format_description" : "name",
42339 "optional" : 1,
42340 "type" : "string"
42341 },
42342 "domains" : {
42343 "description" : "List of domains for this node's ACME certificate",
42344 "format" : "pve-acme-domain-list",
42345 "format_description" : "domain[;domain;...]",
42346 "optional" : 1,
42347 "type" : "string"
42348 }
42349 },
42350 "optional" : 1,
42351 "type" : "string",
42352 "typetext" : "[account=<name>] [,domains=<domain[;domain;...]>]"
42353 },
42354 "acmedomain[n]" : {
42355 "description" : "ACME domain and validation plugin",
42356 "format" : {
42357 "alias" : {
42358 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
ac70d7d1 42359 "format" : "pve-acme-alias",
c5aa7e14
TL
42360 "format_description" : "domain",
42361 "optional" : 1,
42362 "type" : "string"
42363 },
42364 "domain" : {
42365 "default_key" : 1,
42366 "description" : "domain for this node's ACME certificate",
42367 "format" : "pve-acme-domain",
42368 "format_description" : "domain",
42369 "type" : "string"
42370 },
42371 "plugin" : {
42372 "default" : "standalone",
42373 "description" : "The ACME plugin ID",
42374 "format" : "pve-configid",
42375 "format_description" : "name of the plugin configuration",
42376 "optional" : 1,
42377 "type" : "string"
42378 }
42379 },
42380 "optional" : 1,
42381 "type" : "string",
42382 "typetext" : "[domain=]<domain> [,alias=<domain>] [,plugin=<name of the plugin configuration>]"
42383 },
42384 "delete" : {
42385 "description" : "A list of settings you want to delete.",
42386 "format" : "pve-configid-list",
42387 "optional" : 1,
42388 "type" : "string",
42389 "typetext" : "<string>"
42390 },
42391 "description" : {
0695fdaf
TL
42392 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
42393 "maxLength" : 65536,
c5aa7e14
TL
42394 "optional" : 1,
42395 "type" : "string",
42396 "typetext" : "<string>"
42397 },
42398 "digest" : {
42399 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
42400 "maxLength" : 40,
42401 "optional" : 1,
42402 "type" : "string",
42403 "typetext" : "<string>"
42404 },
42405 "node" : {
42406 "description" : "The cluster node name.",
42407 "format" : "pve-node",
42408 "type" : "string",
42409 "typetext" : "<string>"
42410 },
42411 "startall-onboot-delay" : {
42412 "default" : 0,
42413 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
42414 "maximum" : 300,
42415 "minimum" : 0,
42416 "optional" : 1,
42417 "type" : "integer",
42418 "typetext" : "<integer> (0 - 300)"
42419 },
42420 "wakeonlan" : {
42421 "description" : "MAC address for wake on LAN",
42422 "format" : "mac-addr",
42423 "optional" : 1,
42424 "type" : "string",
42425 "typetext" : "<string>"
42426 }
42427 }
42428 },
42429 "permissions" : {
42430 "check" : [
42431 "perm",
42432 "/",
42433 [
42434 "Sys.Modify"
42435 ]
42436 ]
42437 },
42438 "protected" : 1,
42439 "proxyto" : "node",
42440 "returns" : {
42441 "type" : "null"
42442 }
42443 }
42444 },
42445 "leaf" : 1,
42446 "path" : "/nodes/{node}/config",
42447 "text" : "config"
42448 },
42449 {
42450 "children" : [
42451 {
42452 "children" : [
42453 {
42454 "children" : [
42455 {
42456 "info" : {
42457 "GET" : {
42458 "allowtoken" : 1,
42459 "description" : "List zone content.",
42460 "method" : "GET",
42461 "name" : "index",
42462 "parameters" : {
42463 "additionalProperties" : 0,
42464 "properties" : {
42465 "node" : {
42466 "description" : "The cluster node name.",
42467 "format" : "pve-node",
42468 "type" : "string",
42469 "typetext" : "<string>"
42470 },
42471 "zone" : {
42472 "description" : "The SDN zone object identifier.",
42473 "format" : "pve-sdn-zone-id",
42474 "type" : "string",
42475 "typetext" : "<string>"
42476 }
42477 }
42478 },
42479 "permissions" : {
42480 "check" : [
42481 "perm",
42482 "/sdn/zones/{zone}",
42483 [
42484 "SDN.Audit"
42485 ],
42486 "any",
42487 1
42488 ]
42489 },
42490 "protected" : 1,
42491 "proxyto" : "node",
42492 "returns" : {
42493 "items" : {
42494 "properties" : {
42495 "status" : {
42496 "description" : "Status.",
42497 "optional" : 1,
42498 "type" : "string"
42499 },
42500 "statusmsg" : {
42501 "description" : "Status details",
42502 "optional" : 1,
42503 "type" : "string"
42504 },
42505 "vnet" : {
42506 "description" : "Vnet identifier.",
42507 "type" : "string"
42508 }
42509 },
42510 "type" : "object"
42511 },
42512 "links" : [
42513 {
42514 "href" : "{vnet}",
42515 "rel" : "child"
42516 }
42517 ],
42518 "type" : "array"
42519 }
42520 }
42521 },
42522 "leaf" : 1,
42523 "path" : "/nodes/{node}/sdn/zones/{zone}/content",
42524 "text" : "content"
42525 }
42526 ],
42527 "info" : {
42528 "GET" : {
42529 "allowtoken" : 1,
42530 "description" : "",
42531 "method" : "GET",
42532 "name" : "diridx",
42533 "parameters" : {
42534 "additionalProperties" : 0,
42535 "properties" : {
42536 "node" : {
42537 "description" : "The cluster node name.",
42538 "format" : "pve-node",
42539 "type" : "string",
42540 "typetext" : "<string>"
42541 },
42542 "zone" : {
42543 "description" : "The SDN zone object identifier.",
42544 "format" : "pve-sdn-zone-id",
42545 "type" : "string",
42546 "typetext" : "<string>"
42547 }
42548 }
42549 },
42550 "permissions" : {
42551 "check" : [
42552 "perm",
42553 "/sdn/zones/{zone}",
42554 [
42555 "SDN.Audit"
42556 ],
42557 "any",
42558 1
42559 ]
42560 },
42561 "returns" : {
42562 "items" : {
42563 "properties" : {
42564 "subdir" : {
42565 "type" : "string"
42566 }
42567 },
42568 "type" : "object"
42569 },
42570 "links" : [
42571 {
42572 "href" : "{subdir}",
42573 "rel" : "child"
42574 }
42575 ],
42576 "type" : "array"
42577 }
42578 }
42579 },
42580 "leaf" : 0,
42581 "path" : "/nodes/{node}/sdn/zones/{zone}",
42582 "text" : "{zone}"
42583 }
42584 ],
42585 "info" : {
42586 "GET" : {
42587 "allowtoken" : 1,
42588 "description" : "Get status for all zones.",
42589 "method" : "GET",
42590 "name" : "index",
42591 "parameters" : {
42592 "additionalProperties" : 0,
42593 "properties" : {
42594 "node" : {
42595 "description" : "The cluster node name.",
42596 "format" : "pve-node",
42597 "type" : "string",
42598 "typetext" : "<string>"
42599 }
42600 }
42601 },
42602 "permissions" : {
42603 "description" : "Only list entries where you have 'SDN.Audit'",
42604 "user" : "all"
42605 },
42606 "protected" : 1,
42607 "proxyto" : "node",
42608 "returns" : {
42609 "items" : {
42610 "properties" : {
42611 "status" : {
42612 "description" : "Status of zone",
ac70d7d1
TL
42613 "enum" : [
42614 "available",
42615 "pending",
42616 "error"
42617 ],
c5aa7e14
TL
42618 "type" : "string"
42619 },
42620 "zone" : {
42621 "description" : "The SDN zone object identifier.",
42622 "format" : "pve-sdn-zone-id",
42623 "type" : "string"
42624 }
42625 },
42626 "type" : "object"
42627 },
42628 "links" : [
42629 {
42630 "href" : "{zone}",
42631 "rel" : "child"
42632 }
42633 ],
42634 "type" : "array"
42635 }
42636 }
42637 },
42638 "leaf" : 0,
42639 "path" : "/nodes/{node}/sdn/zones",
42640 "text" : "zones"
42641 }
42642 ],
42643 "info" : {
42644 "GET" : {
42645 "allowtoken" : 1,
42646 "description" : "SDN index.",
42647 "method" : "GET",
42648 "name" : "sdnindex",
42649 "parameters" : {
42650 "additionalProperties" : 0,
42651 "properties" : {
42652 "node" : {
42653 "description" : "The cluster node name.",
42654 "format" : "pve-node",
42655 "type" : "string",
42656 "typetext" : "<string>"
42657 }
42658 }
42659 },
42660 "permissions" : {
42661 "user" : "all"
42662 },
42663 "returns" : {
42664 "items" : {
42665 "properties" : {},
42666 "type" : "object"
42667 },
42668 "links" : [
42669 {
42670 "href" : "{name}",
42671 "rel" : "child"
42672 }
42673 ],
42674 "type" : "array"
42675 }
42676 }
42677 },
42678 "leaf" : 0,
42679 "path" : "/nodes/{node}/sdn",
42680 "text" : "sdn"
a9a8e3d1 42681 },
56122987 42682 {
56122987
DM
42683 "info" : {
42684 "GET" : {
e9cd3bd4 42685 "allowtoken" : 1,
44660702
DM
42686 "description" : "API version details",
42687 "method" : "GET",
42688 "name" : "version",
56122987 42689 "parameters" : {
44660702 42690 "additionalProperties" : 0,
56122987
DM
42691 "properties" : {
42692 "node" : {
56122987 42693 "description" : "The cluster node name.",
44660702 42694 "format" : "pve-node",
013dc89f
DM
42695 "type" : "string",
42696 "typetext" : "<string>"
56122987 42697 }
44660702 42698 }
56122987 42699 },
56122987 42700 "permissions" : {
7aacca6f 42701 "user" : "all"
56122987 42702 },
56122987 42703 "proxyto" : "node",
56122987 42704 "returns" : {
56122987 42705 "properties" : {
44660702 42706 "release" : {
1e3f8156 42707 "description" : "The current installed Proxmox VE Release",
56122987
DM
42708 "type" : "string"
42709 },
44660702 42710 "repoid" : {
1e3f8156 42711 "description" : "The short git commit hash ID from which this version was build",
7aacca6f
DM
42712 "type" : "string"
42713 },
42714 "version" : {
1e3f8156 42715 "description" : "The current installed pve-manager package version",
7aacca6f
DM
42716 "type" : "string"
42717 }
44660702
DM
42718 },
42719 "type" : "object"
7aacca6f 42720 }
56122987
DM
42721 }
42722 },
56122987 42723 "leaf" : 1,
44660702
DM
42724 "path" : "/nodes/{node}/version",
42725 "text" : "version"
56122987
DM
42726 },
42727 {
56122987
DM
42728 "info" : {
42729 "GET" : {
e9cd3bd4 42730 "allowtoken" : 1,
7aacca6f 42731 "description" : "Read node status",
44660702 42732 "method" : "GET",
7aacca6f 42733 "name" : "status",
56122987 42734 "parameters" : {
44660702 42735 "additionalProperties" : 0,
56122987
DM
42736 "properties" : {
42737 "node" : {
7aacca6f 42738 "description" : "The cluster node name.",
44660702 42739 "format" : "pve-node",
013dc89f
DM
42740 "type" : "string",
42741 "typetext" : "<string>"
56122987 42742 }
44660702 42743 }
56122987 42744 },
56122987
DM
42745 "permissions" : {
42746 "check" : [
42747 "perm",
42748 "/nodes/{node}",
42749 [
42750 "Sys.Audit"
42751 ]
42752 ]
44660702
DM
42753 },
42754 "proxyto" : "node",
42755 "returns" : {
44660702 42756 "type" : "object"
7aacca6f
DM
42757 }
42758 },
42759 "POST" : {
e9cd3bd4 42760 "allowtoken" : 1,
44660702
DM
42761 "description" : "Reboot or shutdown a node.",
42762 "method" : "POST",
7aacca6f 42763 "name" : "node_cmd",
56122987 42764 "parameters" : {
44660702 42765 "additionalProperties" : 0,
56122987 42766 "properties" : {
7aacca6f
DM
42767 "command" : {
42768 "description" : "Specify the command.",
56122987 42769 "enum" : [
7aacca6f
DM
42770 "reboot",
42771 "shutdown"
56122987
DM
42772 ],
42773 "type" : "string"
44660702
DM
42774 },
42775 "node" : {
42776 "description" : "The cluster node name.",
42777 "format" : "pve-node",
013dc89f
DM
42778 "type" : "string",
42779 "typetext" : "<string>"
56122987 42780 }
44660702 42781 }
7aacca6f 42782 },
7aacca6f
DM
42783 "permissions" : {
42784 "check" : [
42785 "perm",
42786 "/nodes/{node}",
42787 [
42788 "Sys.PowerMgmt"
42789 ]
42790 ]
42791 },
44660702 42792 "protected" : 1,
7aacca6f 42793 "proxyto" : "node",
7aacca6f
DM
42794 "returns" : {
42795 "type" : "null"
56122987
DM
42796 }
42797 }
42798 },
7aacca6f 42799 "leaf" : 1,
44660702
DM
42800 "path" : "/nodes/{node}/status",
42801 "text" : "status"
56122987
DM
42802 },
42803 {
56122987
DM
42804 "info" : {
42805 "GET" : {
e9cd3bd4 42806 "allowtoken" : 1,
44660702
DM
42807 "description" : "Read tap/vm network device interface counters",
42808 "method" : "GET",
42809 "name" : "netstat",
42810 "parameters" : {
42811 "additionalProperties" : 0,
42812 "properties" : {
42813 "node" : {
42814 "description" : "The cluster node name.",
42815 "format" : "pve-node",
013dc89f
DM
42816 "type" : "string",
42817 "typetext" : "<string>"
44660702 42818 }
56122987
DM
42819 }
42820 },
42821 "permissions" : {
42822 "check" : [
42823 "perm",
42824 "/nodes/{node}",
42825 [
7aacca6f 42826 "Sys.Audit"
56122987
DM
42827 ]
42828 ]
42829 },
7aacca6f 42830 "proxyto" : "node",
44660702
DM
42831 "returns" : {
42832 "items" : {
42833 "properties" : {},
42834 "type" : "object"
42835 },
42836 "type" : "array"
42837 }
7aacca6f
DM
42838 }
42839 },
44660702
DM
42840 "leaf" : 1,
42841 "path" : "/nodes/{node}/netstat",
7aacca6f
DM
42842 "text" : "netstat"
42843 },
42844 {
42845 "info" : {
42846 "POST" : {
e9cd3bd4 42847 "allowtoken" : 1,
7aacca6f 42848 "description" : "Execute multiple commands in order.",
7aacca6f 42849 "method" : "POST",
7aacca6f 42850 "name" : "execute",
56122987
DM
42851 "parameters" : {
42852 "additionalProperties" : 0,
42853 "properties" : {
7aacca6f
DM
42854 "commands" : {
42855 "description" : "JSON encoded array of commands.",
013dc89f
DM
42856 "type" : "string",
42857 "typetext" : "<string>"
56122987
DM
42858 },
42859 "node" : {
44660702 42860 "description" : "The cluster node name.",
56122987 42861 "format" : "pve-node",
013dc89f
DM
42862 "type" : "string",
42863 "typetext" : "<string>"
56122987
DM
42864 }
42865 }
44660702
DM
42866 },
42867 "permissions" : {
42868 "check" : [
42869 "perm",
42870 "/nodes/{node}",
42871 [
42872 "Sys.Audit"
42873 ]
42874 ]
42875 },
42876 "protected" : 1,
42877 "proxyto" : "node",
42878 "returns" : {
44660702 42879 "type" : "array"
56122987
DM
42880 }
42881 }
42882 },
56122987 42883 "leaf" : 1,
44660702
DM
42884 "path" : "/nodes/{node}/execute",
42885 "text" : "execute"
56122987 42886 },
5f26e15b
TL
42887 {
42888 "info" : {
42889 "POST" : {
e9cd3bd4 42890 "allowtoken" : 1,
5f26e15b
TL
42891 "description" : "Try to wake a node via 'wake on LAN' network packet.",
42892 "method" : "POST",
42893 "name" : "wakeonlan",
42894 "parameters" : {
42895 "additionalProperties" : 0,
42896 "properties" : {
42897 "node" : {
42898 "description" : "target node for wake on LAN packet",
42899 "format" : "pve-node",
42900 "type" : "string",
42901 "typetext" : "<string>"
42902 }
42903 }
42904 },
42905 "permissions" : {
42906 "check" : [
42907 "perm",
42908 "/nodes/{node}",
42909 [
42910 "Sys.PowerMgmt"
42911 ]
42912 ]
42913 },
42914 "protected" : 1,
42915 "returns" : {
42916 "description" : "MAC address used to assemble the WoL magic packet.",
42917 "format" : "mac-addr",
42918 "type" : "string"
42919 }
42920 }
42921 },
42922 "leaf" : 1,
42923 "path" : "/nodes/{node}/wakeonlan",
42924 "text" : "wakeonlan"
42925 },
56122987
DM
42926 {
42927 "info" : {
7aacca6f 42928 "GET" : {
e9cd3bd4 42929 "allowtoken" : 1,
44660702
DM
42930 "description" : "Read node RRD statistics (returns PNG)",
42931 "method" : "GET",
7aacca6f 42932 "name" : "rrd",
56122987 42933 "parameters" : {
7aacca6f 42934 "additionalProperties" : 0,
56122987 42935 "properties" : {
44660702
DM
42936 "cf" : {
42937 "description" : "The RRD consolidation function",
42938 "enum" : [
42939 "AVERAGE",
42940 "MAX"
42941 ],
42942 "optional" : 1,
42943 "type" : "string"
42944 },
7aacca6f 42945 "ds" : {
7aacca6f 42946 "description" : "The list of datasources you want to display.",
44660702 42947 "format" : "pve-configid-list",
013dc89f
DM
42948 "type" : "string",
42949 "typetext" : "<string>"
44660702
DM
42950 },
42951 "node" : {
42952 "description" : "The cluster node name.",
42953 "format" : "pve-node",
013dc89f
DM
42954 "type" : "string",
42955 "typetext" : "<string>"
7aacca6f
DM
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"
56122987 42967 }
7aacca6f 42968 }
56122987 42969 },
56122987 42970 "permissions" : {
56122987
DM
42971 "check" : [
42972 "perm",
42973 "/nodes/{node}",
42974 [
7aacca6f 42975 "Sys.Audit"
56122987
DM
42976 ]
42977 ]
42978 },
7aacca6f 42979 "protected" : 1,
56122987 42980 "returns" : {
56122987 42981 "properties" : {
7aacca6f 42982 "filename" : {
56122987
DM
42983 "type" : "string"
42984 }
44660702
DM
42985 },
42986 "type" : "object"
42987 }
56122987
DM
42988 }
42989 },
44660702 42990 "leaf" : 1,
7aacca6f 42991 "path" : "/nodes/{node}/rrd",
44660702 42992 "text" : "rrd"
56122987
DM
42993 },
42994 {
42995 "info" : {
7aacca6f 42996 "GET" : {
e9cd3bd4 42997 "allowtoken" : 1,
44660702
DM
42998 "description" : "Read node RRD statistics",
42999 "method" : "GET",
7aacca6f 43000 "name" : "rrddata",
56122987 43001 "parameters" : {
44660702 43002 "additionalProperties" : 0,
56122987 43003 "properties" : {
7aacca6f 43004 "cf" : {
7aacca6f
DM
43005 "description" : "The RRD consolidation function",
43006 "enum" : [
43007 "AVERAGE",
43008 "MAX"
44660702
DM
43009 ],
43010 "optional" : 1,
43011 "type" : "string"
56122987
DM
43012 },
43013 "node" : {
44660702 43014 "description" : "The cluster node name.",
56122987 43015 "format" : "pve-node",
013dc89f
DM
43016 "type" : "string",
43017 "typetext" : "<string>"
56122987 43018 },
7aacca6f 43019 "timeframe" : {
7aacca6f
DM
43020 "description" : "Specify the time frame you are interested in.",
43021 "enum" : [
43022 "hour",
43023 "day",
43024 "week",
43025 "month",
43026 "year"
44660702
DM
43027 ],
43028 "type" : "string"
56122987 43029 }
56122987
DM
43030 }
43031 },
56122987
DM
43032 "permissions" : {
43033 "check" : [
43034 "perm",
43035 "/nodes/{node}",
43036 [
44660702 43037 "Sys.Audit"
56122987
DM
43038 ]
43039 ]
7aacca6f 43040 },
44660702 43041 "protected" : 1,
56122987 43042 "returns" : {
7aacca6f 43043 "items" : {
44660702 43044 "properties" : {},
7aacca6f
DM
43045 "type" : "object"
43046 },
43047 "type" : "array"
44660702
DM
43048 }
43049 }
43050 },
43051 "leaf" : 1,
43052 "path" : "/nodes/{node}/rrddata",
43053 "text" : "rrddata"
43054 },
43055 {
43056 "info" : {
43057 "GET" : {
e9cd3bd4 43058 "allowtoken" : 1,
44660702
DM
43059 "description" : "Read system log",
43060 "method" : "GET",
43061 "name" : "syslog",
56122987 43062 "parameters" : {
44660702 43063 "additionalProperties" : 0,
56122987 43064 "properties" : {
44660702
DM
43065 "limit" : {
43066 "minimum" : 0,
7aacca6f 43067 "optional" : 1,
4bd7df8b 43068 "type" : "integer",
013dc89f 43069 "typetext" : "<integer> (0 - N)"
7aacca6f 43070 },
56122987 43071 "node" : {
7aacca6f 43072 "description" : "The cluster node name.",
44660702 43073 "format" : "pve-node",
013dc89f
DM
43074 "type" : "string",
43075 "typetext" : "<string>"
56122987 43076 },
35a75dd3
DM
43077 "service" : {
43078 "description" : "Service ID",
43079 "maxLength" : 128,
43080 "optional" : 1,
43081 "type" : "string",
43082 "typetext" : "<string>"
43083 },
44660702
DM
43084 "since" : {
43085 "description" : "Display all log since this date-time string.",
43086 "optional" : 1,
43087 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
43088 "type" : "string"
43089 },
43090 "start" : {
7aacca6f
DM
43091 "minimum" : 0,
43092 "optional" : 1,
4bd7df8b 43093 "type" : "integer",
013dc89f 43094 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
43095 },
43096 "until" : {
43097 "description" : "Display all log until this date-time string.",
7aacca6f 43098 "optional" : 1,
44660702 43099 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
56122987
DM
43100 "type" : "string"
43101 }
44660702 43102 }
56122987 43103 },
44660702
DM
43104 "permissions" : {
43105 "check" : [
43106 "perm",
43107 "/nodes/{node}",
43108 [
43109 "Sys.Syslog"
43110 ]
43111 ]
43112 },
43113 "protected" : 1,
43114 "proxyto" : "node",
43115 "returns" : {
43116 "items" : {
43117 "properties" : {
43118 "n" : {
43119 "description" : "Line number",
43120 "type" : "integer"
43121 },
43122 "t" : {
43123 "description" : "Line text",
43124 "type" : "string"
43125 }
43126 },
43127 "type" : "object"
43128 },
43129 "type" : "array"
43130 }
56122987
DM
43131 }
43132 },
44660702
DM
43133 "leaf" : 1,
43134 "path" : "/nodes/{node}/syslog",
7aacca6f 43135 "text" : "syslog"
56122987 43136 },
bb4c8cf8
TL
43137 {
43138 "info" : {
43139 "GET" : {
e9cd3bd4 43140 "allowtoken" : 1,
bb4c8cf8
TL
43141 "description" : "Read Journal",
43142 "method" : "GET",
43143 "name" : "journal",
43144 "parameters" : {
43145 "additionalProperties" : 0,
43146 "properties" : {
43147 "endcursor" : {
43148 "description" : "End before the given Cursor. Conflicts with 'until'",
43149 "optional" : 1,
43150 "type" : "string",
43151 "typetext" : "<string>"
43152 },
43153 "lastentries" : {
43154 "description" : "Limit to the last X lines. Conflicts with a range.",
43155 "minimum" : 0,
43156 "optional" : 1,
43157 "type" : "integer",
43158 "typetext" : "<integer> (0 - N)"
43159 },
43160 "node" : {
43161 "description" : "The cluster node name.",
43162 "format" : "pve-node",
43163 "type" : "string",
43164 "typetext" : "<string>"
43165 },
43166 "since" : {
43167 "description" : "Display all log since this UNIX epoch. Conflicts with 'startcursor'.",
43168 "minimum" : 0,
43169 "optional" : 1,
43170 "type" : "integer",
43171 "typetext" : "<integer> (0 - N)"
43172 },
43173 "startcursor" : {
43174 "description" : "Start after the given Cursor. Conflicts with 'since'",
43175 "optional" : 1,
43176 "type" : "string",
43177 "typetext" : "<string>"
43178 },
43179 "until" : {
43180 "description" : "Display all log until this UNIX epoch. Conflicts with 'endcursor'.",
43181 "minimum" : 0,
43182 "optional" : 1,
43183 "type" : "integer",
43184 "typetext" : "<integer> (0 - N)"
43185 }
43186 }
43187 },
43188 "permissions" : {
43189 "check" : [
43190 "perm",
43191 "/nodes/{node}",
43192 [
43193 "Sys.Syslog"
43194 ]
43195 ]
43196 },
43197 "protected" : 1,
43198 "proxyto" : "node",
43199 "returns" : {
43200 "items" : {
43201 "type" : "string"
43202 },
43203 "type" : "array"
43204 }
43205 }
43206 },
43207 "leaf" : 1,
43208 "path" : "/nodes/{node}/journal",
43209 "text" : "journal"
43210 },
56122987 43211 {
56122987
DM
43212 "info" : {
43213 "POST" : {
e9cd3bd4 43214 "allowtoken" : 1,
44660702
DM
43215 "description" : "Creates a VNC Shell proxy.",
43216 "method" : "POST",
43217 "name" : "vncshell",
43218 "parameters" : {
43219 "additionalProperties" : 0,
56122987 43220 "properties" : {
95895385
TL
43221 "cmd" : {
43222 "default" : "login",
43223 "description" : "Run specific command or default to login.",
43224 "enum" : [
c30bb419 43225 "ceph_install",
7af2edf9 43226 "upgrade",
5370fa8c 43227 "login"
95895385
TL
43228 ],
43229 "optional" : 1,
43230 "type" : "string"
43231 },
4772952b
TL
43232 "cmd-opts" : {
43233 "default" : "",
43234 "description" : "Add parameters to a command. Encoded as null terminated strings.",
43235 "optional" : 1,
43236 "requires" : "cmd",
43237 "type" : "string",
43238 "typetext" : "<string>"
43239 },
5d9c884c
DM
43240 "height" : {
43241 "description" : "sets the height of the console in pixels.",
43242 "maximum" : 2160,
43243 "minimum" : 16,
43244 "optional" : 1,
43245 "type" : "integer",
43246 "typetext" : "<integer> (16 - 2160)"
43247 },
44660702
DM
43248 "node" : {
43249 "description" : "The cluster node name.",
43250 "format" : "pve-node",
013dc89f
DM
43251 "type" : "string",
43252 "typetext" : "<string>"
7aacca6f 43253 },
44660702
DM
43254 "websocket" : {
43255 "description" : "use websocket instead of standard vnc.",
43256 "optional" : 1,
013dc89f
DM
43257 "type" : "boolean",
43258 "typetext" : "<boolean>"
5d9c884c
DM
43259 },
43260 "width" : {
43261 "description" : "sets the width of the console in pixels.",
43262 "maximum" : 4096,
43263 "minimum" : 16,
43264 "optional" : 1,
43265 "type" : "integer",
43266 "typetext" : "<integer> (16 - 4096)"
56122987 43267 }
44660702 43268 }
56122987 43269 },
56122987
DM
43270 "permissions" : {
43271 "check" : [
43272 "perm",
7aacca6f 43273 "/nodes/{node}",
56122987 43274 [
7aacca6f 43275 "Sys.Console"
56122987 43276 ]
44660702
DM
43277 ],
43278 "description" : "Restricted to users on realm 'pam'"
56122987 43279 },
44660702
DM
43280 "protected" : 1,
43281 "returns" : {
43282 "additionalProperties" : 0,
56122987 43283 "properties" : {
44660702
DM
43284 "cert" : {
43285 "type" : "string"
7aacca6f 43286 },
44660702
DM
43287 "port" : {
43288 "type" : "integer"
7aacca6f 43289 },
44660702
DM
43290 "ticket" : {
43291 "type" : "string"
43292 },
43293 "upid" : {
43294 "type" : "string"
43295 },
43296 "user" : {
43297 "type" : "string"
56122987 43298 }
44660702
DM
43299 }
43300 }
56122987
DM
43301 }
43302 },
7aacca6f 43303 "leaf" : 1,
44660702
DM
43304 "path" : "/nodes/{node}/vncshell",
43305 "text" : "vncshell"
56122987 43306 },
35a75dd3
DM
43307 {
43308 "info" : {
43309 "POST" : {
e9cd3bd4 43310 "allowtoken" : 1,
35a75dd3
DM
43311 "description" : "Creates a VNC Shell proxy.",
43312 "method" : "POST",
43313 "name" : "termproxy",
43314 "parameters" : {
43315 "additionalProperties" : 0,
43316 "properties" : {
95895385
TL
43317 "cmd" : {
43318 "default" : "login",
43319 "description" : "Run specific command or default to login.",
43320 "enum" : [
c30bb419 43321 "ceph_install",
7af2edf9 43322 "upgrade",
5370fa8c 43323 "login"
95895385
TL
43324 ],
43325 "optional" : 1,
43326 "type" : "string"
43327 },
4772952b
TL
43328 "cmd-opts" : {
43329 "default" : "",
43330 "description" : "Add parameters to a command. Encoded as null terminated strings.",
43331 "optional" : 1,
43332 "requires" : "cmd",
43333 "type" : "string",
43334 "typetext" : "<string>"
43335 },
35a75dd3
DM
43336 "node" : {
43337 "description" : "The cluster node name.",
43338 "format" : "pve-node",
43339 "type" : "string",
43340 "typetext" : "<string>"
35a75dd3
DM
43341 }
43342 }
43343 },
43344 "permissions" : {
43345 "check" : [
43346 "perm",
43347 "/nodes/{node}",
43348 [
43349 "Sys.Console"
43350 ]
43351 ],
43352 "description" : "Restricted to users on realm 'pam'"
43353 },
43354 "protected" : 1,
43355 "returns" : {
43356 "additionalProperties" : 0,
43357 "properties" : {
43358 "port" : {
43359 "type" : "integer"
43360 },
43361 "ticket" : {
43362 "type" : "string"
43363 },
43364 "upid" : {
43365 "type" : "string"
43366 },
43367 "user" : {
43368 "type" : "string"
43369 }
43370 }
43371 }
43372 }
43373 },
43374 "leaf" : 1,
43375 "path" : "/nodes/{node}/termproxy",
43376 "text" : "termproxy"
43377 },
56122987
DM
43378 {
43379 "info" : {
43380 "GET" : {
e9cd3bd4 43381 "allowtoken" : 1,
0695fdaf 43382 "description" : "Opens a websocket for VNC traffic.",
44660702
DM
43383 "method" : "GET",
43384 "name" : "vncwebsocket",
56122987 43385 "parameters" : {
44660702 43386 "additionalProperties" : 0,
56122987
DM
43387 "properties" : {
43388 "node" : {
43389 "description" : "The cluster node name.",
44660702 43390 "format" : "pve-node",
013dc89f
DM
43391 "type" : "string",
43392 "typetext" : "<string>"
7aacca6f
DM
43393 },
43394 "port" : {
7aacca6f
DM
43395 "description" : "Port number returned by previous vncproxy call.",
43396 "maximum" : 5999,
44660702 43397 "minimum" : 5900,
4bd7df8b 43398 "type" : "integer",
013dc89f 43399 "typetext" : "<integer> (5900 - 5999)"
44660702
DM
43400 },
43401 "vncticket" : {
43402 "description" : "Ticket from previous call to vncproxy.",
43403 "maxLength" : 512,
013dc89f
DM
43404 "type" : "string",
43405 "typetext" : "<string>"
56122987 43406 }
44660702 43407 }
56122987 43408 },
56122987
DM
43409 "permissions" : {
43410 "check" : [
43411 "perm",
43412 "/nodes/{node}",
43413 [
7aacca6f 43414 "Sys.Console"
56122987 43415 ]
44660702
DM
43416 ],
43417 "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket)."
43418 },
43419 "returns" : {
43420 "properties" : {
43421 "port" : {
43422 "type" : "string"
43423 }
43424 },
43425 "type" : "object"
7aacca6f 43426 }
56122987
DM
43427 }
43428 },
44660702 43429 "leaf" : 1,
7aacca6f 43430 "path" : "/nodes/{node}/vncwebsocket",
44660702 43431 "text" : "vncwebsocket"
56122987
DM
43432 },
43433 {
43434 "info" : {
43435 "POST" : {
e9cd3bd4 43436 "allowtoken" : 1,
44660702 43437 "description" : "Creates a SPICE shell.",
7aacca6f 43438 "method" : "POST",
44660702 43439 "name" : "spiceshell",
56122987 43440 "parameters" : {
7aacca6f 43441 "additionalProperties" : 0,
56122987 43442 "properties" : {
95895385
TL
43443 "cmd" : {
43444 "default" : "login",
43445 "description" : "Run specific command or default to login.",
43446 "enum" : [
c30bb419 43447 "ceph_install",
7af2edf9 43448 "upgrade",
5370fa8c 43449 "login"
95895385
TL
43450 ],
43451 "optional" : 1,
43452 "type" : "string"
43453 },
4772952b
TL
43454 "cmd-opts" : {
43455 "default" : "",
43456 "description" : "Add parameters to a command. Encoded as null terminated strings.",
43457 "optional" : 1,
43458 "requires" : "cmd",
43459 "type" : "string",
43460 "typetext" : "<string>"
43461 },
7aacca6f 43462 "node" : {
44660702 43463 "description" : "The cluster node name.",
56122987 43464 "format" : "pve-node",
013dc89f
DM
43465 "type" : "string",
43466 "typetext" : "<string>"
7aacca6f 43467 },
44660702 43468 "proxy" : {
4d47f125 43469 "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
43470 "format" : "address",
43471 "optional" : 1,
013dc89f
DM
43472 "type" : "string",
43473 "typetext" : "<string>"
56122987 43474 }
7aacca6f 43475 }
56122987 43476 },
56122987
DM
43477 "permissions" : {
43478 "check" : [
43479 "perm",
7aacca6f 43480 "/nodes/{node}",
56122987 43481 [
7aacca6f 43482 "Sys.Console"
56122987 43483 ]
7aacca6f
DM
43484 ],
43485 "description" : "Restricted to users on realm 'pam'"
44660702
DM
43486 },
43487 "protected" : 1,
43488 "proxyto" : "node",
43489 "returns" : {
43490 "additionalProperties" : 1,
43491 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
43492 "properties" : {
43493 "host" : {
43494 "type" : "string"
43495 },
43496 "password" : {
43497 "type" : "string"
43498 },
43499 "proxy" : {
43500 "type" : "string"
43501 },
43502 "tls-port" : {
43503 "type" : "integer"
43504 },
43505 "type" : {
43506 "type" : "string"
43507 }
43508 }
7aacca6f 43509 }
56122987
DM
43510 }
43511 },
56122987 43512 "leaf" : 1,
44660702
DM
43513 "path" : "/nodes/{node}/spiceshell",
43514 "text" : "spiceshell"
56122987
DM
43515 },
43516 {
56122987 43517 "info" : {
7aacca6f 43518 "GET" : {
e9cd3bd4 43519 "allowtoken" : 1,
44660702 43520 "description" : "Read DNS settings.",
7aacca6f 43521 "method" : "GET",
44660702
DM
43522 "name" : "dns",
43523 "parameters" : {
7aacca6f
DM
43524 "additionalProperties" : 0,
43525 "properties" : {
44660702
DM
43526 "node" : {
43527 "description" : "The cluster node name.",
43528 "format" : "pve-node",
013dc89f
DM
43529 "type" : "string",
43530 "typetext" : "<string>"
7aacca6f
DM
43531 }
43532 }
43533 },
7aacca6f
DM
43534 "permissions" : {
43535 "check" : [
43536 "perm",
43537 "/nodes/{node}",
43538 [
43539 "Sys.Audit"
43540 ]
43541 ]
43542 },
44660702
DM
43543 "proxyto" : "node",
43544 "returns" : {
56122987
DM
43545 "additionalProperties" : 0,
43546 "properties" : {
44660702
DM
43547 "dns1" : {
43548 "description" : "First name server IP address.",
43549 "optional" : 1,
43550 "type" : "string"
43551 },
43552 "dns2" : {
43553 "description" : "Second name server IP address.",
43554 "optional" : 1,
43555 "type" : "string"
43556 },
43557 "dns3" : {
43558 "description" : "Third name server IP address.",
43559 "optional" : 1,
43560 "type" : "string"
43561 },
43562 "search" : {
43563 "description" : "Search domain for host-name lookup.",
43564 "optional" : 1,
43565 "type" : "string"
7aacca6f 43566 }
44660702
DM
43567 },
43568 "type" : "object"
43569 }
7aacca6f
DM
43570 },
43571 "PUT" : {
e9cd3bd4 43572 "allowtoken" : 1,
44660702
DM
43573 "description" : "Write DNS settings.",
43574 "method" : "PUT",
7aacca6f
DM
43575 "name" : "update_dns",
43576 "parameters" : {
43577 "additionalProperties" : 0,
43578 "properties" : {
44660702
DM
43579 "dns1" : {
43580 "description" : "First name server IP address.",
43581 "format" : "ip",
43582 "optional" : 1,
013dc89f
DM
43583 "type" : "string",
43584 "typetext" : "<string>"
7aacca6f 43585 },
44660702
DM
43586 "dns2" : {
43587 "description" : "Second name server IP address.",
43588 "format" : "ip",
7aacca6f 43589 "optional" : 1,
013dc89f
DM
43590 "type" : "string",
43591 "typetext" : "<string>"
7aacca6f 43592 },
44660702
DM
43593 "dns3" : {
43594 "description" : "Third name server IP address.",
43595 "format" : "ip",
7aacca6f 43596 "optional" : 1,
013dc89f
DM
43597 "type" : "string",
43598 "typetext" : "<string>"
7aacca6f
DM
43599 },
43600 "node" : {
44660702 43601 "description" : "The cluster node name.",
56122987 43602 "format" : "pve-node",
013dc89f
DM
43603 "type" : "string",
43604 "typetext" : "<string>"
7aacca6f 43605 },
44660702
DM
43606 "search" : {
43607 "description" : "Search domain for host-name lookup.",
013dc89f
DM
43608 "type" : "string",
43609 "typetext" : "<string>"
56122987
DM
43610 }
43611 }
43612 },
43613 "permissions" : {
43614 "check" : [
43615 "perm",
7aacca6f 43616 "/nodes/{node}",
56122987 43617 [
7aacca6f 43618 "Sys.Modify"
56122987
DM
43619 ]
43620 ]
43621 },
44660702 43622 "protected" : 1,
7aacca6f 43623 "proxyto" : "node",
56122987 43624 "returns" : {
7aacca6f
DM
43625 "type" : "null"
43626 }
56122987 43627 }
44660702
DM
43628 },
43629 "leaf" : 1,
43630 "path" : "/nodes/{node}/dns",
43631 "text" : "dns"
56122987
DM
43632 },
43633 {
43634 "info" : {
7aacca6f 43635 "GET" : {
e9cd3bd4 43636 "allowtoken" : 1,
7aacca6f 43637 "description" : "Read server time and time zone settings.",
44660702
DM
43638 "method" : "GET",
43639 "name" : "time",
56122987 43640 "parameters" : {
44660702 43641 "additionalProperties" : 0,
56122987
DM
43642 "properties" : {
43643 "node" : {
44660702 43644 "description" : "The cluster node name.",
56122987 43645 "format" : "pve-node",
013dc89f
DM
43646 "type" : "string",
43647 "typetext" : "<string>"
56122987 43648 }
44660702 43649 }
56122987
DM
43650 },
43651 "permissions" : {
43652 "check" : [
43653 "perm",
7aacca6f 43654 "/nodes/{node}",
56122987 43655 [
7aacca6f 43656 "Sys.Audit"
56122987
DM
43657 ]
43658 ]
44660702
DM
43659 },
43660 "proxyto" : "node",
43661 "returns" : {
43662 "additionalProperties" : 0,
43663 "properties" : {
43664 "localtime" : {
43665 "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
43666 "minimum" : 1297163644,
4d47f125 43667 "renderer" : "timestamp_gmt",
44660702
DM
43668 "type" : "integer"
43669 },
43670 "time" : {
43671 "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
43672 "minimum" : 1297163644,
4d47f125 43673 "renderer" : "timestamp",
44660702
DM
43674 "type" : "integer"
43675 },
43676 "timezone" : {
43677 "description" : "Time zone",
43678 "type" : "string"
43679 }
43680 },
43681 "type" : "object"
7aacca6f
DM
43682 }
43683 },
43684 "PUT" : {
e9cd3bd4 43685 "allowtoken" : 1,
7aacca6f 43686 "description" : "Set time zone.",
44660702
DM
43687 "method" : "PUT",
43688 "name" : "set_timezone",
43689 "parameters" : {
43690 "additionalProperties" : 0,
43691 "properties" : {
43692 "node" : {
43693 "description" : "The cluster node name.",
43694 "format" : "pve-node",
013dc89f
DM
43695 "type" : "string",
43696 "typetext" : "<string>"
44660702
DM
43697 },
43698 "timezone" : {
43699 "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
013dc89f
DM
43700 "type" : "string",
43701 "typetext" : "<string>"
44660702
DM
43702 }
43703 }
43704 },
7aacca6f
DM
43705 "permissions" : {
43706 "check" : [
43707 "perm",
43708 "/nodes/{node}",
43709 [
43710 "Sys.Modify"
43711 ]
43712 ]
56122987 43713 },
7aacca6f 43714 "protected" : 1,
44660702
DM
43715 "proxyto" : "node",
43716 "returns" : {
43717 "type" : "null"
43718 }
7aacca6f
DM
43719 }
43720 },
7aacca6f 43721 "leaf" : 1,
44660702
DM
43722 "path" : "/nodes/{node}/time",
43723 "text" : "time"
7aacca6f
DM
43724 },
43725 {
43726 "info" : {
44660702 43727 "GET" : {
e9cd3bd4 43728 "allowtoken" : 1,
44660702
DM
43729 "description" : "Get list of appliances.",
43730 "method" : "GET",
43731 "name" : "aplinfo",
7aacca6f
DM
43732 "parameters" : {
43733 "additionalProperties" : 0,
43734 "properties" : {
7aacca6f 43735 "node" : {
44660702 43736 "description" : "The cluster node name.",
7aacca6f 43737 "format" : "pve-node",
013dc89f
DM
43738 "type" : "string",
43739 "typetext" : "<string>"
7aacca6f
DM
43740 }
43741 }
56122987 43742 },
7aacca6f 43743 "permissions" : {
44660702 43744 "user" : "all"
56122987 43745 },
44660702 43746 "proxyto" : "node",
7aacca6f
DM
43747 "returns" : {
43748 "items" : {
44660702
DM
43749 "properties" : {},
43750 "type" : "object"
7aacca6f
DM
43751 },
43752 "type" : "array"
44660702
DM
43753 }
43754 },
43755 "POST" : {
e9cd3bd4 43756 "allowtoken" : 1,
44660702
DM
43757 "description" : "Download appliance templates.",
43758 "method" : "POST",
43759 "name" : "apl_download",
7aacca6f
DM
43760 "parameters" : {
43761 "additionalProperties" : 0,
43762 "properties" : {
43763 "node" : {
7aacca6f 43764 "description" : "The cluster node name.",
44660702 43765 "format" : "pve-node",
013dc89f
DM
43766 "type" : "string",
43767 "typetext" : "<string>"
44660702
DM
43768 },
43769 "storage" : {
4bd7df8b 43770 "description" : "The storage where the template will be stored",
44660702 43771 "format" : "pve-storage-id",
013dc89f
DM
43772 "type" : "string",
43773 "typetext" : "<string>"
44660702
DM
43774 },
43775 "template" : {
1e3f8156 43776 "description" : "The template which will downloaded",
44660702 43777 "maxLength" : 255,
013dc89f
DM
43778 "type" : "string",
43779 "typetext" : "<string>"
7aacca6f
DM
43780 }
43781 }
56122987 43782 },
7aacca6f 43783 "permissions" : {
44660702
DM
43784 "check" : [
43785 "perm",
43786 "/storage/{storage}",
43787 [
43788 "Datastore.AllocateTemplate"
43789 ]
43790 ]
43791 },
43792 "protected" : 1,
43793 "proxyto" : "node",
43794 "returns" : {
43795 "type" : "string"
7aacca6f
DM
43796 }
43797 }
43798 },
7aacca6f 43799 "leaf" : 1,
44660702
DM
43800 "path" : "/nodes/{node}/aplinfo",
43801 "text" : "aplinfo"
7aacca6f 43802 },
5370fa8c
TL
43803 {
43804 "info" : {
43805 "GET" : {
43806 "allowtoken" : 1,
43807 "description" : "Query metadata of an URL: file size, file name and mime type.",
43808 "method" : "GET",
43809 "name" : "query_url_metadata",
43810 "parameters" : {
43811 "additionalProperties" : 0,
43812 "properties" : {
43813 "node" : {
43814 "description" : "The cluster node name.",
43815 "format" : "pve-node",
43816 "type" : "string",
43817 "typetext" : "<string>"
43818 },
43819 "url" : {
43820 "description" : "The URL to query the metadata from.",
43821 "pattern" : "https?://.*",
43822 "type" : "string"
43823 },
43824 "verify-certificates" : {
43825 "default" : 1,
43826 "description" : "If false, no SSL/TLS certificates will be verified.",
43827 "optional" : 1,
43828 "type" : "boolean",
43829 "typetext" : "<boolean>"
43830 }
43831 }
43832 },
43833 "permissions" : {
43834 "check" : [
43835 "perm",
43836 "/",
43837 [
43838 "Sys.Audit",
43839 "Sys.Modify"
43840 ]
43841 ]
43842 },
43843 "proxyto" : "node",
43844 "returns" : {
43845 "properties" : {
43846 "filename" : {
43847 "optional" : 1,
43848 "type" : "string"
43849 },
43850 "mimetype" : {
43851 "optional" : 1,
43852 "type" : "string"
43853 },
43854 "size" : {
43855 "optional" : 1,
43856 "renderer" : "bytes",
43857 "type" : "integer"
43858 }
43859 },
43860 "type" : "object"
43861 }
43862 }
43863 },
43864 "leaf" : 1,
43865 "path" : "/nodes/{node}/query-url-metadata",
43866 "text" : "query-url-metadata"
43867 },
7aacca6f
DM
43868 {
43869 "info" : {
43870 "GET" : {
e9cd3bd4 43871 "allowtoken" : 1,
44660702
DM
43872 "description" : "Gather various systems information about a node",
43873 "method" : "GET",
43874 "name" : "report",
7aacca6f 43875 "parameters" : {
44660702 43876 "additionalProperties" : 0,
7aacca6f
DM
43877 "properties" : {
43878 "node" : {
7aacca6f 43879 "description" : "The cluster node name.",
44660702 43880 "format" : "pve-node",
013dc89f
DM
43881 "type" : "string",
43882 "typetext" : "<string>"
7aacca6f 43883 }
44660702 43884 }
56122987 43885 },
7aacca6f
DM
43886 "permissions" : {
43887 "check" : [
43888 "perm",
43889 "/nodes/{node}",
43890 [
43891 "Sys.Audit"
43892 ]
43893 ]
56122987 43894 },
44660702 43895 "protected" : 1,
7aacca6f
DM
43896 "proxyto" : "node",
43897 "returns" : {
56122987 43898 "type" : "string"
7aacca6f
DM
43899 }
43900 }
43901 },
7aacca6f 43902 "leaf" : 1,
44660702
DM
43903 "path" : "/nodes/{node}/report",
43904 "text" : "report"
7aacca6f
DM
43905 },
43906 {
7aacca6f
DM
43907 "info" : {
43908 "POST" : {
e9cd3bd4 43909 "allowtoken" : 1,
1c532546 43910 "description" : "Start all VMs and containers located on this node (by default only those with onboot=1).",
7aacca6f 43911 "method" : "POST",
44660702 43912 "name" : "startall",
7aacca6f 43913 "parameters" : {
44660702 43914 "additionalProperties" : 0,
7aacca6f
DM
43915 "properties" : {
43916 "force" : {
1c532546
TL
43917 "default" : "off",
43918 "description" : "Issue start command even if virtual guest have 'onboot' not set or set to off.",
7aacca6f 43919 "optional" : 1,
013dc89f
DM
43920 "type" : "boolean",
43921 "typetext" : "<boolean>"
7aacca6f
DM
43922 },
43923 "node" : {
7aacca6f 43924 "description" : "The cluster node name.",
44660702 43925 "format" : "pve-node",
013dc89f
DM
43926 "type" : "string",
43927 "typetext" : "<string>"
52e44c50
FG
43928 },
43929 "vms" : {
1c532546 43930 "description" : "Only consider guests from this comma separated list of VMIDs.",
52e44c50
FG
43931 "format" : "pve-vmid-list",
43932 "optional" : 1,
43933 "type" : "string",
43934 "typetext" : "<string>"
7aacca6f 43935 }
44660702 43936 }
56122987 43937 },
7aacca6f
DM
43938 "permissions" : {
43939 "check" : [
43940 "perm",
43941 "/",
43942 [
43943 "VM.PowerMgmt"
43944 ]
43945 ]
44660702
DM
43946 },
43947 "protected" : 1,
43948 "proxyto" : "node",
43949 "returns" : {
43950 "type" : "string"
7aacca6f
DM
43951 }
43952 }
43953 },
44660702 43954 "leaf" : 1,
7aacca6f 43955 "path" : "/nodes/{node}/startall",
44660702 43956 "text" : "startall"
7aacca6f
DM
43957 },
43958 {
7aacca6f
DM
43959 "info" : {
43960 "POST" : {
e9cd3bd4 43961 "allowtoken" : 1,
7aacca6f 43962 "description" : "Stop all VMs and Containers.",
44660702
DM
43963 "method" : "POST",
43964 "name" : "stopall",
7aacca6f 43965 "parameters" : {
44660702 43966 "additionalProperties" : 0,
7aacca6f
DM
43967 "properties" : {
43968 "node" : {
44660702 43969 "description" : "The cluster node name.",
7aacca6f 43970 "format" : "pve-node",
013dc89f
DM
43971 "type" : "string",
43972 "typetext" : "<string>"
52e44c50
FG
43973 },
43974 "vms" : {
43975 "description" : "Only consider Guests with these IDs.",
43976 "format" : "pve-vmid-list",
43977 "optional" : 1,
43978 "type" : "string",
43979 "typetext" : "<string>"
7aacca6f 43980 }
44660702 43981 }
56122987 43982 },
7aacca6f
DM
43983 "permissions" : {
43984 "check" : [
43985 "perm",
43986 "/",
43987 [
44660702 43988 "VM.PowerMgmt"
7aacca6f
DM
43989 ]
43990 ]
56122987 43991 },
44660702 43992 "protected" : 1,
7aacca6f 43993 "proxyto" : "node",
44660702
DM
43994 "returns" : {
43995 "type" : "string"
43996 }
43997 }
56122987 43998 },
44660702
DM
43999 "leaf" : 1,
44000 "path" : "/nodes/{node}/stopall",
44001 "text" : "stopall"
44002 },
44003 {
44004 "info" : {
44005 "POST" : {
e9cd3bd4 44006 "allowtoken" : 1,
44660702
DM
44007 "description" : "Migrate all VMs and Containers.",
44008 "method" : "POST",
44009 "name" : "migrateall",
44010 "parameters" : {
44011 "additionalProperties" : 0,
44012 "properties" : {
44013 "maxworkers" : {
44014 "description" : "Maximal number of parallel migration job. If not set use 'max_workers' from datacenter.cfg, one of both must be set!",
44015 "minimum" : 1,
44016 "optional" : 1,
4bd7df8b 44017 "type" : "integer",
013dc89f 44018 "typetext" : "<integer> (1 - N)"
44660702
DM
44019 },
44020 "node" : {
44021 "description" : "The cluster node name.",
44022 "format" : "pve-node",
013dc89f
DM
44023 "type" : "string",
44024 "typetext" : "<string>"
44660702
DM
44025 },
44026 "target" : {
44027 "description" : "Target node.",
44028 "format" : "pve-node",
013dc89f
DM
44029 "type" : "string",
44030 "typetext" : "<string>"
52e44c50
FG
44031 },
44032 "vms" : {
44033 "description" : "Only consider Guests with these IDs.",
44034 "format" : "pve-vmid-list",
44035 "optional" : 1,
44036 "type" : "string",
44037 "typetext" : "<string>"
e9cd3bd4
TL
44038 },
44039 "with-local-disks" : {
44040 "description" : "Enable live storage migration for local disk",
44041 "optional" : 1,
44042 "type" : "boolean",
44043 "typetext" : "<boolean>"
44660702
DM
44044 }
44045 }
44046 },
44047 "permissions" : {
44048 "check" : [
44049 "perm",
44050 "/",
44051 [
44052 "VM.Migrate"
44053 ]
44054 ]
44055 },
44056 "protected" : 1,
44057 "proxyto" : "node",
44058 "returns" : {
44059 "type" : "string"
44060 }
44061 }
56122987 44062 },
44660702
DM
44063 "leaf" : 1,
44064 "path" : "/nodes/{node}/migrateall",
44065 "text" : "migrateall"
4d47f125
TL
44066 },
44067 {
44068 "info" : {
44069 "GET" : {
e9cd3bd4 44070 "allowtoken" : 1,
4d47f125
TL
44071 "description" : "Get the content of /etc/hosts.",
44072 "method" : "GET",
44073 "name" : "get_etc_hosts",
44074 "parameters" : {
44075 "additionalProperties" : 0,
44076 "properties" : {
44077 "node" : {
44078 "description" : "The cluster node name.",
44079 "format" : "pve-node",
44080 "type" : "string",
44081 "typetext" : "<string>"
44082 }
44083 }
44084 },
44085 "permissions" : {
44086 "check" : [
44087 "perm",
44088 "/",
44089 [
44090 "Sys.Audit"
44091 ]
44092 ]
44093 },
44094 "protected" : 1,
44095 "proxyto" : "node",
44096 "returns" : {
44097 "properties" : {
44098 "data" : {
44099 "description" : "The content of /etc/hosts.",
44100 "type" : "string"
44101 },
44102 "digest" : {
44103 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44104 "maxLength" : 40,
44105 "optional" : 1,
44106 "type" : "string"
44107 }
44108 },
44109 "type" : "object"
44110 }
44111 },
44112 "POST" : {
e9cd3bd4 44113 "allowtoken" : 1,
4d47f125
TL
44114 "description" : "Write /etc/hosts.",
44115 "method" : "POST",
44116 "name" : "write_etc_hosts",
44117 "parameters" : {
44118 "additionalProperties" : 0,
44119 "properties" : {
44120 "data" : {
44121 "description" : "The target content of /etc/hosts.",
44122 "type" : "string",
44123 "typetext" : "<string>"
44124 },
44125 "digest" : {
44126 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44127 "maxLength" : 40,
44128 "optional" : 1,
44129 "type" : "string",
44130 "typetext" : "<string>"
44131 },
44132 "node" : {
44133 "description" : "The cluster node name.",
44134 "format" : "pve-node",
44135 "type" : "string",
44136 "typetext" : "<string>"
44137 }
44138 }
44139 },
44140 "permissions" : {
44141 "check" : [
44142 "perm",
44143 "/nodes/{node}",
44144 [
44145 "Sys.Modify"
44146 ]
44147 ]
44148 },
44149 "protected" : 1,
44150 "proxyto" : "node",
44151 "returns" : {
44152 "type" : "null"
44153 }
44154 }
44155 },
44156 "leaf" : 1,
44157 "path" : "/nodes/{node}/hosts",
44158 "text" : "hosts"
44660702
DM
44159 }
44160 ],
44161 "info" : {
44162 "GET" : {
e9cd3bd4 44163 "allowtoken" : 1,
44660702
DM
44164 "description" : "Node index.",
44165 "method" : "GET",
44166 "name" : "index",
44167 "parameters" : {
44168 "additionalProperties" : 0,
44169 "properties" : {
44170 "node" : {
44171 "description" : "The cluster node name.",
44172 "format" : "pve-node",
013dc89f
DM
44173 "type" : "string",
44174 "typetext" : "<string>"
44660702
DM
44175 }
44176 }
56122987 44177 },
44660702
DM
44178 "permissions" : {
44179 "user" : "all"
56122987 44180 },
44660702
DM
44181 "returns" : {
44182 "items" : {
44183 "properties" : {},
44184 "type" : "object"
44185 },
44186 "links" : [
44187 {
44188 "href" : "{name}",
44189 "rel" : "child"
44190 }
56122987 44191 ],
44660702 44192 "type" : "array"
7aacca6f
DM
44193 }
44194 }
44195 },
44660702
DM
44196 "leaf" : 0,
44197 "path" : "/nodes/{node}",
44198 "text" : "{node}"
44199 }
44200 ],
44201 "info" : {
7aacca6f 44202 "GET" : {
e9cd3bd4 44203 "allowtoken" : 1,
44660702 44204 "description" : "Cluster node index.",
7aacca6f 44205 "method" : "GET",
44660702 44206 "name" : "index",
7aacca6f 44207 "parameters" : {
7aacca6f
DM
44208 "additionalProperties" : 0
44209 },
44210 "permissions" : {
7aacca6f
DM
44211 "user" : "all"
44212 },
44660702
DM
44213 "returns" : {
44214 "items" : {
4d47f125
TL
44215 "properties" : {
44216 "cpu" : {
44217 "description" : "CPU utilization.",
44218 "optional" : 1,
44219 "renderer" : "fraction_as_percentage",
44220 "type" : "number"
44221 },
44222 "level" : {
44223 "description" : "Support level.",
44224 "optional" : 1,
44225 "type" : "string"
44226 },
44227 "maxcpu" : {
44228 "description" : "Number of available CPUs.",
44229 "optional" : 1,
44230 "type" : "integer"
44231 },
44232 "maxmem" : {
44233 "description" : "Number of available memory in bytes.",
44234 "optional" : 1,
44235 "renderer" : "bytes",
44236 "type" : "integer"
44237 },
44238 "mem" : {
44239 "description" : "Used memory in bytes.",
44240 "optional" : 1,
44241 "renderer" : "bytes",
1c532546 44242 "type" : "integer"
4d47f125
TL
44243 },
44244 "node" : {
44245 "description" : "The cluster node name.",
44246 "format" : "pve-node",
44247 "type" : "string"
44248 },
44249 "ssl_fingerprint" : {
44250 "description" : "The SSL fingerprint for the node certificate.",
44251 "optional" : 1,
44252 "type" : "string"
44253 },
44254 "status" : {
44255 "description" : "Node status.",
44256 "enum" : [
44257 "unknown",
44258 "online",
44259 "offline"
44260 ],
44261 "type" : "string"
44262 },
44263 "uptime" : {
44264 "description" : "Node uptime in seconds.",
44265 "optional" : 1,
44266 "renderer" : "duration",
44267 "type" : "integer"
44268 }
44269 },
44660702
DM
44270 "type" : "object"
44271 },
44272 "links" : [
44273 {
44274 "href" : "{node}",
44275 "rel" : "child"
44276 }
44277 ],
44278 "type" : "array"
44279 }
7aacca6f
DM
44280 }
44281 },
44660702
DM
44282 "leaf" : 0,
44283 "path" : "/nodes",
44284 "text" : "nodes"
44285 },
44286 {
7aacca6f
DM
44287 "children" : [
44288 {
7aacca6f 44289 "info" : {
44660702 44290 "DELETE" : {
e9cd3bd4 44291 "allowtoken" : 1,
44660702
DM
44292 "description" : "Delete storage configuration.",
44293 "method" : "DELETE",
44294 "name" : "delete",
7aacca6f
DM
44295 "parameters" : {
44296 "additionalProperties" : 0,
44297 "properties" : {
44298 "storage" : {
7aacca6f 44299 "description" : "The storage identifier.",
44660702 44300 "format" : "pve-storage-id",
013dc89f
DM
44301 "type" : "string",
44302 "typetext" : "<string>"
7aacca6f
DM
44303 }
44304 }
56122987 44305 },
7aacca6f
DM
44306 "permissions" : {
44307 "check" : [
44308 "perm",
44309 "/storage",
44310 [
44311 "Datastore.Allocate"
44312 ]
44313 ]
56122987 44314 },
44660702
DM
44315 "protected" : 1,
44316 "returns" : {
44317 "type" : "null"
44318 }
44319 },
44320 "GET" : {
e9cd3bd4 44321 "allowtoken" : 1,
44660702
DM
44322 "description" : "Read storage configuration.",
44323 "method" : "GET",
44324 "name" : "read",
7aacca6f
DM
44325 "parameters" : {
44326 "additionalProperties" : 0,
44327 "properties" : {
44328 "storage" : {
44660702 44329 "description" : "The storage identifier.",
7aacca6f 44330 "format" : "pve-storage-id",
013dc89f
DM
44331 "type" : "string",
44332 "typetext" : "<string>"
7aacca6f
DM
44333 }
44334 }
44335 },
44660702
DM
44336 "permissions" : {
44337 "check" : [
44338 "perm",
44339 "/storage/{storage}",
44340 [
44341 "Datastore.Allocate"
44342 ]
44343 ]
44344 },
5da3d723
TL
44345 "returns" : {
44346 "type" : "object"
44347 }
7aacca6f
DM
44348 },
44349 "PUT" : {
e9cd3bd4 44350 "allowtoken" : 1,
44660702
DM
44351 "description" : "Update storage configuration.",
44352 "method" : "PUT",
44353 "name" : "update",
44354 "parameters" : {
44355 "additionalProperties" : 0,
44356 "properties" : {
44357 "blocksize" : {
44358 "description" : "block size",
7aacca6f 44359 "optional" : 1,
013dc89f
DM
44360 "type" : "string",
44361 "typetext" : "<string>"
7aacca6f 44362 },
27a7acb2
DM
44363 "bwlimit" : {
44364 "description" : "Set bandwidth/io limits various operations.",
44365 "format" : {
44366 "clone" : {
95895385 44367 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
44368 "format_description" : "LIMIT",
44369 "minimum" : "0",
44370 "optional" : 1,
44371 "type" : "number"
44372 },
44373 "default" : {
95895385 44374 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
44375 "format_description" : "LIMIT",
44376 "minimum" : "0",
44377 "optional" : 1,
44378 "type" : "number"
44379 },
44380 "migration" : {
95895385 44381 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
44382 "format_description" : "LIMIT",
44383 "minimum" : "0",
44384 "optional" : 1,
44385 "type" : "number"
44386 },
44387 "move" : {
95895385 44388 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
44389 "format_description" : "LIMIT",
44390 "minimum" : "0",
44391 "optional" : 1,
44392 "type" : "number"
44393 },
44394 "restore" : {
95895385 44395 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
44396 "format_description" : "LIMIT",
44397 "minimum" : "0",
44398 "optional" : 1,
44399 "type" : "number"
44400 }
44401 },
44402 "optional" : 1,
44403 "type" : "string",
44404 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
44405 },
44660702
DM
44406 "comstar_hg" : {
44407 "description" : "host group for comstar views",
44408 "optional" : 1,
013dc89f
DM
44409 "type" : "string",
44410 "typetext" : "<string>"
7aacca6f 44411 },
44660702
DM
44412 "comstar_tg" : {
44413 "description" : "target group for comstar views",
7aacca6f 44414 "optional" : 1,
013dc89f
DM
44415 "type" : "string",
44416 "typetext" : "<string>"
7aacca6f 44417 },
44660702
DM
44418 "content" : {
44419 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
44420 "format" : "pve-storage-content-list",
7aacca6f 44421 "optional" : 1,
013dc89f
DM
44422 "type" : "string",
44423 "typetext" : "<string>"
7aacca6f 44424 },
c30bb419
TL
44425 "data-pool" : {
44426 "description" : "Data Pool (for erasure coding only)",
44427 "optional" : 1,
44428 "type" : "string",
44429 "typetext" : "<string>"
44430 },
44660702
DM
44431 "delete" : {
44432 "description" : "A list of settings you want to delete.",
44433 "format" : "pve-configid-list",
44434 "maxLength" : 4096,
7aacca6f 44435 "optional" : 1,
013dc89f
DM
44436 "type" : "string",
44437 "typetext" : "<string>"
7aacca6f
DM
44438 },
44439 "digest" : {
44660702 44440 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 44441 "maxLength" : 40,
7aacca6f 44442 "optional" : 1,
013dc89f
DM
44443 "type" : "string",
44444 "typetext" : "<string>"
7aacca6f 44445 },
44660702
DM
44446 "disable" : {
44447 "description" : "Flag to disable the storage.",
44448 "optional" : 1,
013dc89f
DM
44449 "type" : "boolean",
44450 "typetext" : "<boolean>"
7aacca6f 44451 },
27a7acb2
DM
44452 "domain" : {
44453 "description" : "CIFS domain.",
44454 "maxLength" : 256,
44455 "optional" : 1,
44456 "type" : "string",
44457 "typetext" : "<string>"
44458 },
04d22a9f
TL
44459 "encryption-key" : {
44460 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
44461 "optional" : 1,
44462 "type" : "string",
44463 "typetext" : "<string>"
44464 },
c5aa7e14
TL
44465 "fingerprint" : {
44466 "description" : "Certificate SHA 256 fingerprint.",
44467 "optional" : 1,
44468 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
44469 "type" : "string"
44470 },
7aacca6f
DM
44471 "format" : {
44472 "description" : "Default image format.",
44660702 44473 "format" : "pve-storage-format",
7aacca6f 44474 "optional" : 1,
013dc89f
DM
44475 "type" : "string",
44476 "typetext" : "<string>"
7aacca6f 44477 },
5370fa8c
TL
44478 "fs-name" : {
44479 "description" : "The Ceph filesystem name.",
44480 "format" : "pve-configid",
44481 "optional" : 1,
44482 "type" : "string",
44483 "typetext" : "<string>"
44484 },
5da3d723
TL
44485 "fuse" : {
44486 "description" : "Mount CephFS through FUSE.",
44487 "optional" : 1,
44488 "type" : "boolean",
44489 "typetext" : "<boolean>"
44490 },
2c0dde61
DM
44491 "is_mountpoint" : {
44492 "default" : "no",
2489d6df 44493 "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 44494 "optional" : 1,
2489d6df
WB
44495 "type" : "string",
44496 "typetext" : "<string>"
2c0dde61 44497 },
5370fa8c
TL
44498 "keyring" : {
44499 "description" : "Client keyring contents (for external clusters).",
44500 "optional" : 1,
44501 "type" : "string",
44502 "typetext" : "<string>"
44503 },
44660702 44504 "krbd" : {
e2d681b3 44505 "description" : "Always access rbd through krbd kernel module.",
7aacca6f 44506 "optional" : 1,
013dc89f
DM
44507 "type" : "boolean",
44508 "typetext" : "<boolean>"
7aacca6f 44509 },
4d47f125
TL
44510 "lio_tpg" : {
44511 "description" : "target portal group for Linux LIO targets",
44512 "optional" : 1,
44513 "type" : "string",
44514 "typetext" : "<string>"
44515 },
d2656385 44516 "master-pubkey" : {
5f4e66fe 44517 "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
44518 "optional" : 1,
44519 "type" : "string",
44520 "typetext" : "<string>"
44521 },
7af2edf9
TL
44522 "max-protected-backups" : {
44523 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
44524 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
44525 "minimum" : -1,
44526 "optional" : 1,
44527 "type" : "integer",
44528 "typetext" : "<integer> (-1 - N)"
44529 },
44660702 44530 "maxfiles" : {
5f4e66fe 44531 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
44532 "minimum" : 0,
44533 "optional" : 1,
4bd7df8b 44534 "type" : "integer",
013dc89f 44535 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
44536 },
44537 "mkdir" : {
44538 "default" : "yes",
44539 "description" : "Create the directory if it doesn't exist.",
44540 "optional" : 1,
013dc89f
DM
44541 "type" : "boolean",
44542 "typetext" : "<boolean>"
7aacca6f 44543 },
2489d6df
WB
44544 "monhost" : {
44545 "description" : "IP addresses of monitors (for external clusters).",
44546 "format" : "pve-storage-portal-dns-list",
44547 "optional" : 1,
44548 "type" : "string",
44549 "typetext" : "<string>"
44550 },
5c1699e5
TL
44551 "mountpoint" : {
44552 "description" : "mount point",
44553 "format" : "pve-storage-path",
44554 "optional" : 1,
44555 "type" : "string",
44556 "typetext" : "<string>"
44557 },
d2656385
TL
44558 "namespace" : {
44559 "description" : "RBD Namespace.",
44560 "optional" : 1,
44561 "type" : "string",
44562 "typetext" : "<string>"
44563 },
5f4e66fe
TL
44564 "nocow" : {
44565 "default" : 0,
44566 "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.",
44567 "optional" : 1,
44568 "type" : "boolean",
44569 "typetext" : "<boolean>"
44570 },
7aacca6f 44571 "nodes" : {
44660702 44572 "description" : "List of cluster node names.",
7aacca6f
DM
44573 "format" : "pve-node-list",
44574 "optional" : 1,
013dc89f
DM
44575 "type" : "string",
44576 "typetext" : "<string>"
7aacca6f 44577 },
44660702
DM
44578 "nowritecache" : {
44579 "description" : "disable write caching on the target",
7aacca6f 44580 "optional" : 1,
013dc89f
DM
44581 "type" : "boolean",
44582 "typetext" : "<boolean>"
7aacca6f
DM
44583 },
44584 "options" : {
7aacca6f 44585 "description" : "NFS mount options (see 'man nfs')",
44660702
DM
44586 "format" : "pve-storage-options",
44587 "optional" : 1,
013dc89f
DM
44588 "type" : "string",
44589 "typetext" : "<string>"
44660702 44590 },
27a7acb2 44591 "password" : {
04d22a9f 44592 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
44593 "maxLength" : 256,
44594 "optional" : 1,
44595 "type" : "string",
44596 "typetext" : "<string>"
44597 },
44660702
DM
44598 "pool" : {
44599 "description" : "Pool.",
44600 "optional" : 1,
013dc89f
DM
44601 "type" : "string",
44602 "typetext" : "<string>"
44660702 44603 },
4772952b
TL
44604 "port" : {
44605 "default" : 8007,
44606 "description" : "For non default port.",
44607 "maximum" : 65535,
44608 "minimum" : 1,
44609 "optional" : 1,
44610 "type" : "integer",
44611 "typetext" : "<integer> (1 - 65535)"
44612 },
5370fa8c
TL
44613 "preallocation" : {
44614 "default" : "metadata",
44615 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
44616 "enum" : [
44617 "off",
44618 "metadata",
44619 "falloc",
44620 "full"
44621 ],
44622 "optional" : 1,
44623 "type" : "string"
44624 },
739d4d64
TL
44625 "prune-backups" : {
44626 "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.",
44627 "format" : "prune-backups",
44628 "optional" : 1,
44629 "type" : "string",
4772952b 44630 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 44631 },
44660702
DM
44632 "saferemove" : {
44633 "description" : "Zero-out data when removing LVs.",
44634 "optional" : 1,
013dc89f
DM
44635 "type" : "boolean",
44636 "typetext" : "<boolean>"
7aacca6f
DM
44637 },
44638 "saferemove_throughput" : {
44660702 44639 "description" : "Wipe throughput (cstream -t parameter value).",
7aacca6f 44640 "optional" : 1,
013dc89f
DM
44641 "type" : "string",
44642 "typetext" : "<string>"
7aacca6f 44643 },
44660702
DM
44644 "server" : {
44645 "description" : "Server IP or DNS name.",
44646 "format" : "pve-storage-server",
7aacca6f 44647 "optional" : 1,
013dc89f
DM
44648 "type" : "string",
44649 "typetext" : "<string>"
7aacca6f 44650 },
44660702
DM
44651 "server2" : {
44652 "description" : "Backup volfile server IP or DNS name.",
44653 "format" : "pve-storage-server",
7aacca6f 44654 "optional" : 1,
44660702 44655 "requires" : "server",
013dc89f
DM
44656 "type" : "string",
44657 "typetext" : "<string>"
44660702
DM
44658 },
44659 "shared" : {
44660 "description" : "Mark storage as shared.",
44661 "optional" : 1,
013dc89f
DM
44662 "type" : "boolean",
44663 "typetext" : "<boolean>"
44660702 44664 },
27a7acb2 44665 "smbversion" : {
5370fa8c
TL
44666 "default" : "default",
44667 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 44668 "enum" : [
5370fa8c 44669 "default",
5da3d723
TL
44670 "2.0",
44671 "2.1",
5370fa8c
TL
44672 "3",
44673 "3.0",
44674 "3.11"
5da3d723 44675 ],
27a7acb2 44676 "optional" : 1,
5da3d723 44677 "type" : "string"
27a7acb2 44678 },
44660702
DM
44679 "sparse" : {
44680 "description" : "use sparse volumes",
44681 "optional" : 1,
013dc89f
DM
44682 "type" : "boolean",
44683 "typetext" : "<boolean>"
44660702
DM
44684 },
44685 "storage" : {
44686 "description" : "The storage identifier.",
44687 "format" : "pve-storage-id",
013dc89f
DM
44688 "type" : "string",
44689 "typetext" : "<string>"
44660702 44690 },
5da3d723
TL
44691 "subdir" : {
44692 "description" : "Subdir to mount.",
44693 "format" : "pve-storage-path",
44694 "optional" : 1,
44695 "type" : "string",
44696 "typetext" : "<string>"
44697 },
4bd7df8b
DM
44698 "tagged_only" : {
44699 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
44700 "optional" : 1,
013dc89f
DM
44701 "type" : "boolean",
44702 "typetext" : "<boolean>"
4bd7df8b 44703 },
44660702
DM
44704 "transport" : {
44705 "description" : "Gluster transport: tcp or rdma",
44706 "enum" : [
44707 "tcp",
44708 "rdma",
44709 "unix"
44710 ],
44711 "optional" : 1,
44712 "type" : "string"
7aacca6f
DM
44713 },
44714 "username" : {
44715 "description" : "RBD Id.",
44660702 44716 "optional" : 1,
013dc89f
DM
44717 "type" : "string",
44718 "typetext" : "<string>"
7aacca6f 44719 }
44660702
DM
44720 },
44721 "type" : "object"
44722 },
44723 "permissions" : {
44724 "check" : [
44725 "perm",
44726 "/storage",
44727 [
44728 "Datastore.Allocate"
44729 ]
44730 ]
44731 },
44732 "protected" : 1,
44733 "returns" : {
4772952b
TL
44734 "properties" : {
44735 "config" : {
44736 "additionalProperties" : 1,
44737 "description" : "Partial, possible server generated, configuration properties.",
44738 "optional" : 1,
44739 "properties" : {
44740 "encryption-key" : {
44741 "description" : "The, possible auto-generated, encryption-key.",
44742 "optional" : 1,
44743 "type" : "string"
44744 }
44745 },
44746 "type" : "object"
44747 },
44748 "storage" : {
44749 "description" : "The ID of the created storage.",
44750 "type" : "string"
44751 },
44752 "type" : {
44753 "description" : "The type of the created storage.",
44754 "enum" : [
5f4e66fe 44755 "btrfs",
4772952b
TL
44756 "cephfs",
44757 "cifs",
44758 "dir",
4772952b
TL
44759 "glusterfs",
44760 "iscsi",
44761 "iscsidirect",
44762 "lvm",
44763 "lvmthin",
44764 "nfs",
44765 "pbs",
44766 "rbd",
44767 "zfs",
44768 "zfspool"
44769 ],
44770 "type" : "string"
44771 }
44772 },
44773 "type" : "object"
44660702
DM
44774 }
44775 }
44776 },
44777 "leaf" : 1,
44778 "path" : "/storage/{storage}",
44779 "text" : "{storage}"
44780 }
44781 ],
44782 "info" : {
44783 "GET" : {
e9cd3bd4 44784 "allowtoken" : 1,
44660702
DM
44785 "description" : "Storage index.",
44786 "method" : "GET",
44787 "name" : "index",
44788 "parameters" : {
44789 "additionalProperties" : 0,
44790 "properties" : {
44791 "type" : {
44792 "description" : "Only list storage of specific type",
44793 "enum" : [
5f4e66fe 44794 "btrfs",
5da3d723 44795 "cephfs",
27a7acb2 44796 "cifs",
44660702 44797 "dir",
44660702
DM
44798 "glusterfs",
44799 "iscsi",
44800 "iscsidirect",
44801 "lvm",
44802 "lvmthin",
44803 "nfs",
c5aa7e14 44804 "pbs",
44660702 44805 "rbd",
44660702
DM
44806 "zfs",
44807 "zfspool"
44808 ],
44809 "optional" : 1,
44810 "type" : "string"
44811 }
44812 }
44813 },
44814 "permissions" : {
44815 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
44816 "user" : "all"
44817 },
44818 "returns" : {
44819 "items" : {
44820 "properties" : {
44821 "storage" : {
44822 "type" : "string"
7aacca6f 44823 }
56122987 44824 },
44660702
DM
44825 "type" : "object"
44826 },
44827 "links" : [
44828 {
44829 "href" : "{storage}",
44830 "rel" : "child"
44831 }
44832 ],
44833 "type" : "array"
44834 }
44835 },
44836 "POST" : {
e9cd3bd4 44837 "allowtoken" : 1,
44660702
DM
44838 "description" : "Create a new storage.",
44839 "method" : "POST",
44840 "name" : "create",
44841 "parameters" : {
44842 "additionalProperties" : 0,
44843 "properties" : {
44844 "authsupported" : {
44845 "description" : "Authsupported.",
44846 "optional" : 1,
013dc89f
DM
44847 "type" : "string",
44848 "typetext" : "<string>"
44660702
DM
44849 },
44850 "base" : {
44851 "description" : "Base volume. This volume is automatically activated.",
44852 "format" : "pve-volume-id",
44853 "optional" : 1,
013dc89f
DM
44854 "type" : "string",
44855 "typetext" : "<string>"
44660702
DM
44856 },
44857 "blocksize" : {
44858 "description" : "block size",
44859 "optional" : 1,
013dc89f
DM
44860 "type" : "string",
44861 "typetext" : "<string>"
44660702 44862 },
27a7acb2
DM
44863 "bwlimit" : {
44864 "description" : "Set bandwidth/io limits various operations.",
44865 "format" : {
44866 "clone" : {
95895385 44867 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
44868 "format_description" : "LIMIT",
44869 "minimum" : "0",
44870 "optional" : 1,
44871 "type" : "number"
44872 },
44873 "default" : {
95895385 44874 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
44875 "format_description" : "LIMIT",
44876 "minimum" : "0",
44877 "optional" : 1,
44878 "type" : "number"
44879 },
44880 "migration" : {
95895385 44881 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
44882 "format_description" : "LIMIT",
44883 "minimum" : "0",
44884 "optional" : 1,
44885 "type" : "number"
44886 },
44887 "move" : {
95895385 44888 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
44889 "format_description" : "LIMIT",
44890 "minimum" : "0",
44891 "optional" : 1,
44892 "type" : "number"
44893 },
44894 "restore" : {
95895385 44895 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
44896 "format_description" : "LIMIT",
44897 "minimum" : "0",
44898 "optional" : 1,
44899 "type" : "number"
44900 }
44901 },
44902 "optional" : 1,
44903 "type" : "string",
44904 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
44905 },
44660702
DM
44906 "comstar_hg" : {
44907 "description" : "host group for comstar views",
44908 "optional" : 1,
013dc89f
DM
44909 "type" : "string",
44910 "typetext" : "<string>"
44660702
DM
44911 },
44912 "comstar_tg" : {
44913 "description" : "target group for comstar views",
44914 "optional" : 1,
013dc89f
DM
44915 "type" : "string",
44916 "typetext" : "<string>"
44660702
DM
44917 },
44918 "content" : {
44919 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
44920 "format" : "pve-storage-content-list",
44921 "optional" : 1,
013dc89f
DM
44922 "type" : "string",
44923 "typetext" : "<string>"
44660702 44924 },
c30bb419
TL
44925 "data-pool" : {
44926 "description" : "Data Pool (for erasure coding only)",
44927 "optional" : 1,
44928 "type" : "string",
44929 "typetext" : "<string>"
44930 },
c5aa7e14 44931 "datastore" : {
4772952b 44932 "description" : "Proxmox Backup Server datastore name.",
c5aa7e14
TL
44933 "optional" : 1,
44934 "type" : "string",
44935 "typetext" : "<string>"
44936 },
44660702
DM
44937 "disable" : {
44938 "description" : "Flag to disable the storage.",
44939 "optional" : 1,
013dc89f
DM
44940 "type" : "boolean",
44941 "typetext" : "<boolean>"
44660702 44942 },
27a7acb2
DM
44943 "domain" : {
44944 "description" : "CIFS domain.",
44945 "maxLength" : 256,
44946 "optional" : 1,
44947 "type" : "string",
44948 "typetext" : "<string>"
44949 },
04d22a9f
TL
44950 "encryption-key" : {
44951 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
44952 "optional" : 1,
44953 "type" : "string",
44954 "typetext" : "<string>"
44955 },
44660702
DM
44956 "export" : {
44957 "description" : "NFS export path.",
44958 "format" : "pve-storage-path",
44959 "optional" : 1,
013dc89f
DM
44960 "type" : "string",
44961 "typetext" : "<string>"
44660702 44962 },
c5aa7e14
TL
44963 "fingerprint" : {
44964 "description" : "Certificate SHA 256 fingerprint.",
44965 "optional" : 1,
44966 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
44967 "type" : "string"
44968 },
44660702
DM
44969 "format" : {
44970 "description" : "Default image format.",
44971 "format" : "pve-storage-format",
44972 "optional" : 1,
013dc89f
DM
44973 "type" : "string",
44974 "typetext" : "<string>"
44660702 44975 },
5370fa8c
TL
44976 "fs-name" : {
44977 "description" : "The Ceph filesystem name.",
44978 "format" : "pve-configid",
44979 "optional" : 1,
44980 "type" : "string",
44981 "typetext" : "<string>"
44982 },
5da3d723
TL
44983 "fuse" : {
44984 "description" : "Mount CephFS through FUSE.",
44985 "optional" : 1,
44986 "type" : "boolean",
44987 "typetext" : "<boolean>"
44988 },
2c0dde61
DM
44989 "is_mountpoint" : {
44990 "default" : "no",
2489d6df 44991 "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 44992 "optional" : 1,
2489d6df
WB
44993 "type" : "string",
44994 "typetext" : "<string>"
2c0dde61 44995 },
44660702
DM
44996 "iscsiprovider" : {
44997 "description" : "iscsi provider",
44998 "optional" : 1,
013dc89f
DM
44999 "type" : "string",
45000 "typetext" : "<string>"
44660702 45001 },
5370fa8c
TL
45002 "keyring" : {
45003 "description" : "Client keyring contents (for external clusters).",
45004 "optional" : 1,
45005 "type" : "string",
45006 "typetext" : "<string>"
45007 },
44660702 45008 "krbd" : {
e2d681b3 45009 "description" : "Always access rbd through krbd kernel module.",
44660702 45010 "optional" : 1,
013dc89f
DM
45011 "type" : "boolean",
45012 "typetext" : "<boolean>"
56122987 45013 },
4d47f125
TL
45014 "lio_tpg" : {
45015 "description" : "target portal group for Linux LIO targets",
45016 "optional" : 1,
45017 "type" : "string",
45018 "typetext" : "<string>"
45019 },
d2656385 45020 "master-pubkey" : {
5f4e66fe 45021 "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
45022 "optional" : 1,
45023 "type" : "string",
45024 "typetext" : "<string>"
45025 },
7af2edf9
TL
45026 "max-protected-backups" : {
45027 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
45028 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
45029 "minimum" : -1,
45030 "optional" : 1,
45031 "type" : "integer",
45032 "typetext" : "<integer> (-1 - N)"
45033 },
44660702 45034 "maxfiles" : {
5f4e66fe 45035 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
45036 "minimum" : 0,
45037 "optional" : 1,
4bd7df8b 45038 "type" : "integer",
013dc89f 45039 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
45040 },
45041 "mkdir" : {
45042 "default" : "yes",
45043 "description" : "Create the directory if it doesn't exist.",
45044 "optional" : 1,
013dc89f
DM
45045 "type" : "boolean",
45046 "typetext" : "<boolean>"
7aacca6f 45047 },
44660702 45048 "monhost" : {
2489d6df 45049 "description" : "IP addresses of monitors (for external clusters).",
4bd7df8b 45050 "format" : "pve-storage-portal-dns-list",
44660702 45051 "optional" : 1,
013dc89f
DM
45052 "type" : "string",
45053 "typetext" : "<string>"
7aacca6f 45054 },
5c1699e5
TL
45055 "mountpoint" : {
45056 "description" : "mount point",
45057 "format" : "pve-storage-path",
45058 "optional" : 1,
45059 "type" : "string",
45060 "typetext" : "<string>"
45061 },
d2656385
TL
45062 "namespace" : {
45063 "description" : "RBD Namespace.",
45064 "optional" : 1,
45065 "type" : "string",
45066 "typetext" : "<string>"
45067 },
5f4e66fe
TL
45068 "nocow" : {
45069 "default" : 0,
45070 "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.",
45071 "optional" : 1,
45072 "type" : "boolean",
45073 "typetext" : "<boolean>"
45074 },
44660702
DM
45075 "nodes" : {
45076 "description" : "List of cluster node names.",
45077 "format" : "pve-node-list",
45078 "optional" : 1,
013dc89f
DM
45079 "type" : "string",
45080 "typetext" : "<string>"
7aacca6f 45081 },
44660702
DM
45082 "nowritecache" : {
45083 "description" : "disable write caching on the target",
45084 "optional" : 1,
013dc89f
DM
45085 "type" : "boolean",
45086 "typetext" : "<boolean>"
44660702
DM
45087 },
45088 "options" : {
45089 "description" : "NFS mount options (see 'man nfs')",
45090 "format" : "pve-storage-options",
45091 "optional" : 1,
013dc89f
DM
45092 "type" : "string",
45093 "typetext" : "<string>"
44660702 45094 },
27a7acb2 45095 "password" : {
04d22a9f 45096 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
45097 "maxLength" : 256,
45098 "optional" : 1,
45099 "type" : "string",
45100 "typetext" : "<string>"
45101 },
44660702
DM
45102 "path" : {
45103 "description" : "File system path.",
45104 "format" : "pve-storage-path",
45105 "optional" : 1,
013dc89f
DM
45106 "type" : "string",
45107 "typetext" : "<string>"
44660702
DM
45108 },
45109 "pool" : {
45110 "description" : "Pool.",
45111 "optional" : 1,
013dc89f
DM
45112 "type" : "string",
45113 "typetext" : "<string>"
44660702 45114 },
4772952b
TL
45115 "port" : {
45116 "default" : 8007,
45117 "description" : "For non default port.",
45118 "maximum" : 65535,
45119 "minimum" : 1,
45120 "optional" : 1,
45121 "type" : "integer",
45122 "typetext" : "<integer> (1 - 65535)"
45123 },
44660702
DM
45124 "portal" : {
45125 "description" : "iSCSI portal (IP or DNS name with optional port).",
45126 "format" : "pve-storage-portal-dns",
45127 "optional" : 1,
013dc89f
DM
45128 "type" : "string",
45129 "typetext" : "<string>"
44660702 45130 },
5370fa8c
TL
45131 "preallocation" : {
45132 "default" : "metadata",
45133 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
45134 "enum" : [
45135 "off",
45136 "metadata",
45137 "falloc",
45138 "full"
45139 ],
45140 "optional" : 1,
45141 "type" : "string"
45142 },
739d4d64
TL
45143 "prune-backups" : {
45144 "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.",
45145 "format" : "prune-backups",
45146 "optional" : 1,
45147 "type" : "string",
4772952b 45148 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 45149 },
44660702
DM
45150 "saferemove" : {
45151 "description" : "Zero-out data when removing LVs.",
45152 "optional" : 1,
013dc89f
DM
45153 "type" : "boolean",
45154 "typetext" : "<boolean>"
44660702
DM
45155 },
45156 "saferemove_throughput" : {
45157 "description" : "Wipe throughput (cstream -t parameter value).",
45158 "optional" : 1,
013dc89f
DM
45159 "type" : "string",
45160 "typetext" : "<string>"
44660702
DM
45161 },
45162 "server" : {
45163 "description" : "Server IP or DNS name.",
45164 "format" : "pve-storage-server",
45165 "optional" : 1,
013dc89f
DM
45166 "type" : "string",
45167 "typetext" : "<string>"
44660702
DM
45168 },
45169 "server2" : {
45170 "description" : "Backup volfile server IP or DNS name.",
45171 "format" : "pve-storage-server",
45172 "optional" : 1,
45173 "requires" : "server",
013dc89f
DM
45174 "type" : "string",
45175 "typetext" : "<string>"
44660702 45176 },
27a7acb2
DM
45177 "share" : {
45178 "description" : "CIFS share.",
45179 "optional" : 1,
45180 "type" : "string",
45181 "typetext" : "<string>"
45182 },
44660702
DM
45183 "shared" : {
45184 "description" : "Mark storage as shared.",
45185 "optional" : 1,
013dc89f
DM
45186 "type" : "boolean",
45187 "typetext" : "<boolean>"
44660702 45188 },
27a7acb2 45189 "smbversion" : {
5370fa8c
TL
45190 "default" : "default",
45191 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 45192 "enum" : [
5370fa8c 45193 "default",
5da3d723
TL
45194 "2.0",
45195 "2.1",
5370fa8c
TL
45196 "3",
45197 "3.0",
45198 "3.11"
5da3d723 45199 ],
27a7acb2 45200 "optional" : 1,
5da3d723 45201 "type" : "string"
27a7acb2 45202 },
44660702
DM
45203 "sparse" : {
45204 "description" : "use sparse volumes",
45205 "optional" : 1,
013dc89f
DM
45206 "type" : "boolean",
45207 "typetext" : "<boolean>"
44660702
DM
45208 },
45209 "storage" : {
45210 "description" : "The storage identifier.",
45211 "format" : "pve-storage-id",
013dc89f
DM
45212 "type" : "string",
45213 "typetext" : "<string>"
44660702 45214 },
5da3d723
TL
45215 "subdir" : {
45216 "description" : "Subdir to mount.",
45217 "format" : "pve-storage-path",
45218 "optional" : 1,
45219 "type" : "string",
45220 "typetext" : "<string>"
45221 },
4bd7df8b
DM
45222 "tagged_only" : {
45223 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
45224 "optional" : 1,
013dc89f
DM
45225 "type" : "boolean",
45226 "typetext" : "<boolean>"
4bd7df8b 45227 },
44660702
DM
45228 "target" : {
45229 "description" : "iSCSI target.",
45230 "optional" : 1,
013dc89f
DM
45231 "type" : "string",
45232 "typetext" : "<string>"
44660702
DM
45233 },
45234 "thinpool" : {
45235 "description" : "LVM thin pool LV name.",
45236 "format" : "pve-storage-vgname",
45237 "optional" : 1,
013dc89f
DM
45238 "type" : "string",
45239 "typetext" : "<string>"
44660702
DM
45240 },
45241 "transport" : {
45242 "description" : "Gluster transport: tcp or rdma",
45243 "enum" : [
45244 "tcp",
45245 "rdma",
45246 "unix"
7aacca6f 45247 ],
44660702
DM
45248 "optional" : 1,
45249 "type" : "string"
56122987 45250 },
44660702
DM
45251 "type" : {
45252 "description" : "Storage type.",
45253 "enum" : [
5f4e66fe 45254 "btrfs",
5da3d723 45255 "cephfs",
27a7acb2 45256 "cifs",
44660702 45257 "dir",
44660702
DM
45258 "glusterfs",
45259 "iscsi",
45260 "iscsidirect",
45261 "lvm",
45262 "lvmthin",
45263 "nfs",
c5aa7e14 45264 "pbs",
44660702 45265 "rbd",
44660702
DM
45266 "zfs",
45267 "zfspool"
45268 ],
45269 "type" : "string"
56122987 45270 },
44660702
DM
45271 "username" : {
45272 "description" : "RBD Id.",
45273 "optional" : 1,
013dc89f
DM
45274 "type" : "string",
45275 "typetext" : "<string>"
7aacca6f 45276 },
44660702
DM
45277 "vgname" : {
45278 "description" : "Volume group name.",
45279 "format" : "pve-storage-vgname",
45280 "optional" : 1,
013dc89f
DM
45281 "type" : "string",
45282 "typetext" : "<string>"
44660702
DM
45283 },
45284 "volume" : {
45285 "description" : "Glusterfs Volume.",
45286 "optional" : 1,
013dc89f
DM
45287 "type" : "string",
45288 "typetext" : "<string>"
44660702
DM
45289 }
45290 },
45291 "type" : "object"
45292 },
45293 "permissions" : {
45294 "check" : [
45295 "perm",
45296 "/storage",
45297 [
45298 "Datastore.Allocate"
45299 ]
45300 ]
56122987 45301 },
44660702
DM
45302 "protected" : 1,
45303 "returns" : {
4772952b
TL
45304 "properties" : {
45305 "config" : {
45306 "additionalProperties" : 1,
45307 "description" : "Partial, possible server generated, configuration properties.",
45308 "optional" : 1,
45309 "properties" : {
45310 "encryption-key" : {
45311 "description" : "The, possible auto-generated, encryption-key.",
45312 "optional" : 1,
45313 "type" : "string"
45314 }
45315 },
45316 "type" : "object"
45317 },
45318 "storage" : {
45319 "description" : "The ID of the created storage.",
45320 "type" : "string"
45321 },
45322 "type" : {
45323 "description" : "The type of the created storage.",
45324 "enum" : [
5f4e66fe 45325 "btrfs",
4772952b
TL
45326 "cephfs",
45327 "cifs",
45328 "dir",
4772952b
TL
45329 "glusterfs",
45330 "iscsi",
45331 "iscsidirect",
45332 "lvm",
45333 "lvmthin",
45334 "nfs",
45335 "pbs",
45336 "rbd",
45337 "zfs",
45338 "zfspool"
45339 ],
45340 "type" : "string"
45341 }
45342 },
45343 "type" : "object"
44660702
DM
45344 }
45345 }
45346 },
45347 "leaf" : 0,
45348 "path" : "/storage",
45349 "text" : "storage"
45350 },
45351 {
45352 "children" : [
45353 {
56122987
DM
45354 "children" : [
45355 {
bb4c8cf8
TL
45356 "children" : [
45357 {
45358 "info" : {
45359 "GET" : {
e9cd3bd4 45360 "allowtoken" : 1,
bb4c8cf8
TL
45361 "description" : "Get user TFA types (Personal and Realm).",
45362 "method" : "GET",
45363 "name" : "read_user_tfa_type",
45364 "parameters" : {
45365 "additionalProperties" : 0,
45366 "properties" : {
5370fa8c
TL
45367 "multiple" : {
45368 "default" : 0,
45369 "description" : "Request all entries as an array.",
45370 "optional" : 1,
45371 "type" : "boolean",
45372 "typetext" : "<boolean>"
45373 },
bb4c8cf8
TL
45374 "userid" : {
45375 "description" : "User ID",
45376 "format" : "pve-userid",
45377 "maxLength" : 64,
45378 "type" : "string",
45379 "typetext" : "<string>"
45380 }
45381 }
45382 },
45383 "permissions" : {
45384 "check" : [
45385 "or",
45386 [
45387 "userid-param",
45388 "self"
45389 ],
45390 [
45391 "userid-group",
45392 [
45393 "User.Modify",
45394 "Sys.Audit"
45395 ]
45396 ]
45397 ]
45398 },
45399 "protected" : 1,
45400 "returns" : {
45401 "additionalProperties" : 0,
45402 "properties" : {
45403 "realm" : {
45404 "description" : "The type of TFA the users realm has set, if any.",
45405 "enum" : [
45406 "oath",
45407 "yubico"
45408 ],
45409 "optional" : 1,
45410 "type" : "string"
45411 },
5370fa8c
TL
45412 "types" : {
45413 "description" : "Array of the user configured TFA types, if any. Only available if 'multiple' was not passed.",
45414 "items" : {
45415 "description" : "A TFA type.",
45416 "enum" : [
45417 "totp",
45418 "u2f",
45419 "yubico",
45420 "webauthn",
45421 "recovedry"
45422 ],
45423 "type" : "string"
45424 },
45425 "optional" : 1,
45426 "type" : "array"
45427 },
bb4c8cf8 45428 "user" : {
5370fa8c 45429 "description" : "The type of TFA the user has set, if any. Only set if 'multiple' was not passed.",
bb4c8cf8
TL
45430 "enum" : [
45431 "oath",
45432 "u2f"
45433 ],
45434 "optional" : 1,
45435 "type" : "string"
45436 }
45437 },
45438 "type" : "object"
45439 }
45440 }
45441 },
45442 "leaf" : 1,
45443 "path" : "/access/users/{userid}/tfa",
45444 "text" : "tfa"
e9cd3bd4
TL
45445 },
45446 {
45447 "children" : [
45448 {
45449 "info" : {
45450 "DELETE" : {
45451 "allowtoken" : 1,
45452 "description" : "Remove API token for a specific user.",
45453 "method" : "DELETE",
45454 "name" : "remove_token",
45455 "parameters" : {
45456 "additionalProperties" : 0,
45457 "properties" : {
45458 "tokenid" : {
45459 "description" : "User-specific token identifier.",
45460 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
45461 "type" : "string"
45462 },
45463 "userid" : {
45464 "description" : "User ID",
45465 "format" : "pve-userid",
45466 "maxLength" : 64,
45467 "type" : "string",
45468 "typetext" : "<string>"
45469 }
45470 }
45471 },
45472 "permissions" : {
45473 "check" : [
45474 "or",
45475 [
45476 "userid-param",
45477 "self"
45478 ],
45479 [
45480 "perm",
45481 "/access/users/{userid}",
45482 [
45483 "User.Modify"
45484 ]
45485 ]
45486 ]
45487 },
45488 "protected" : 1,
45489 "returns" : {
c5aa7e14
TL
45490 "type" : "null"
45491 }
45492 },
45493 "GET" : {
45494 "allowtoken" : 1,
45495 "description" : "Get specific API token information.",
45496 "method" : "GET",
45497 "name" : "read_token",
45498 "parameters" : {
45499 "additionalProperties" : 0,
45500 "properties" : {
45501 "tokenid" : {
45502 "description" : "User-specific token identifier.",
45503 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
45504 "type" : "string"
45505 },
45506 "userid" : {
45507 "description" : "User ID",
45508 "format" : "pve-userid",
45509 "maxLength" : 64,
45510 "type" : "string",
45511 "typetext" : "<string>"
45512 }
45513 }
45514 },
45515 "permissions" : {
45516 "check" : [
45517 "or",
45518 [
45519 "userid-param",
45520 "self"
45521 ],
45522 [
45523 "perm",
45524 "/access/users/{userid}",
45525 [
45526 "User.Modify"
45527 ]
45528 ]
45529 ]
45530 },
45531 "returns" : {
45532 "properties" : {
45533 "comment" : {
45534 "optional" : 1,
45535 "type" : "string"
45536 },
45537 "expire" : {
45538 "default" : "same as user",
45539 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45540 "minimum" : 0,
45541 "optional" : 1,
45542 "type" : "integer"
45543 },
45544 "privsep" : {
45545 "default" : 1,
45546 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45547 "optional" : 1,
45548 "type" : "boolean"
45549 }
45550 },
45551 "type" : "object"
45552 }
45553 },
45554 "POST" : {
45555 "allowtoken" : 1,
45556 "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!",
45557 "method" : "POST",
45558 "name" : "generate_token",
45559 "parameters" : {
45560 "additionalProperties" : 0,
45561 "properties" : {
45562 "comment" : {
45563 "optional" : 1,
45564 "type" : "string",
45565 "typetext" : "<string>"
45566 },
45567 "expire" : {
45568 "default" : "same as user",
45569 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45570 "minimum" : 0,
45571 "optional" : 1,
45572 "type" : "integer",
45573 "typetext" : "<integer> (0 - N)"
45574 },
45575 "privsep" : {
45576 "default" : 1,
45577 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45578 "optional" : 1,
45579 "type" : "boolean",
45580 "typetext" : "<boolean>"
45581 },
45582 "tokenid" : {
45583 "description" : "User-specific token identifier.",
45584 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
45585 "type" : "string"
45586 },
45587 "userid" : {
45588 "description" : "User ID",
45589 "format" : "pve-userid",
45590 "maxLength" : 64,
45591 "type" : "string",
45592 "typetext" : "<string>"
45593 }
45594 }
45595 },
45596 "permissions" : {
45597 "check" : [
45598 "or",
45599 [
45600 "userid-param",
45601 "self"
45602 ],
45603 [
45604 "perm",
45605 "/access/users/{userid}",
45606 [
45607 "User.Modify"
45608 ]
45609 ]
45610 ]
45611 },
45612 "protected" : 1,
45613 "returns" : {
e9cd3bd4
TL
45614 "additionalProperties" : 0,
45615 "properties" : {
c5aa7e14
TL
45616 "full-tokenid" : {
45617 "description" : "The full token id.",
45618 "format_description" : "<userid>!<tokenid>",
e9cd3bd4
TL
45619 "type" : "string"
45620 },
e9cd3bd4
TL
45621 "info" : {
45622 "properties" : {
45623 "comment" : {
45624 "optional" : 1,
45625 "type" : "string"
45626 },
45627 "expire" : {
45628 "default" : "same as user",
45629 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45630 "minimum" : 0,
45631 "optional" : 1,
45632 "type" : "integer"
45633 },
45634 "privsep" : {
45635 "default" : 1,
45636 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45637 "optional" : 1,
45638 "type" : "boolean"
45639 }
45640 },
45641 "type" : "object"
45642 },
45643 "value" : {
45644 "description" : "API token value used for authentication.",
45645 "type" : "string"
45646 }
45647 },
45648 "type" : "object"
45649 }
45650 },
45651 "PUT" : {
45652 "allowtoken" : 1,
45653 "description" : "Update API token for a specific user.",
45654 "method" : "PUT",
45655 "name" : "update_token_info",
45656 "parameters" : {
45657 "additionalProperties" : 0,
45658 "properties" : {
45659 "comment" : {
45660 "optional" : 1,
45661 "type" : "string",
45662 "typetext" : "<string>"
45663 },
45664 "expire" : {
45665 "default" : "same as user",
45666 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45667 "minimum" : 0,
45668 "optional" : 1,
45669 "type" : "integer",
45670 "typetext" : "<integer> (0 - N)"
45671 },
45672 "privsep" : {
45673 "default" : 1,
45674 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45675 "optional" : 1,
45676 "type" : "boolean",
45677 "typetext" : "<boolean>"
45678 },
45679 "tokenid" : {
45680 "description" : "User-specific token identifier.",
45681 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
45682 "type" : "string"
45683 },
45684 "userid" : {
45685 "description" : "User ID",
45686 "format" : "pve-userid",
45687 "maxLength" : 64,
45688 "type" : "string",
45689 "typetext" : "<string>"
45690 }
45691 }
45692 },
45693 "permissions" : {
45694 "check" : [
45695 "or",
45696 [
45697 "userid-param",
45698 "self"
45699 ],
45700 [
45701 "perm",
45702 "/access/users/{userid}",
45703 [
45704 "User.Modify"
45705 ]
45706 ]
45707 ]
45708 },
45709 "protected" : 1,
45710 "returns" : {
45711 "description" : "Updated token information.",
45712 "properties" : {
45713 "comment" : {
45714 "optional" : 1,
45715 "type" : "string"
45716 },
45717 "expire" : {
45718 "default" : "same as user",
45719 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45720 "minimum" : 0,
45721 "optional" : 1,
45722 "type" : "integer"
45723 },
45724 "privsep" : {
45725 "default" : 1,
45726 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45727 "optional" : 1,
45728 "type" : "boolean"
45729 }
45730 },
45731 "type" : "object"
45732 }
45733 }
45734 },
45735 "leaf" : 1,
45736 "path" : "/access/users/{userid}/token/{tokenid}",
45737 "text" : "{tokenid}"
45738 }
45739 ],
45740 "info" : {
45741 "GET" : {
45742 "allowtoken" : 1,
45743 "description" : "Get user API tokens.",
45744 "method" : "GET",
45745 "name" : "token_index",
45746 "parameters" : {
45747 "additionalProperties" : 0,
45748 "properties" : {
45749 "userid" : {
45750 "description" : "User ID",
45751 "format" : "pve-userid",
45752 "maxLength" : 64,
45753 "type" : "string",
45754 "typetext" : "<string>"
45755 }
45756 }
45757 },
45758 "permissions" : {
45759 "check" : [
45760 "or",
45761 [
45762 "userid-param",
45763 "self"
45764 ],
45765 [
45766 "perm",
45767 "/access/users/{userid}",
45768 [
45769 "User.Modify"
45770 ]
45771 ]
45772 ]
45773 },
45774 "returns" : {
45775 "items" : {
45776 "properties" : {
45777 "comment" : {
45778 "optional" : 1,
45779 "type" : "string"
45780 },
45781 "expire" : {
45782 "default" : "same as user",
45783 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45784 "minimum" : 0,
45785 "optional" : 1,
45786 "type" : "integer"
45787 },
45788 "privsep" : {
45789 "default" : 1,
45790 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45791 "optional" : 1,
45792 "type" : "boolean"
45793 },
45794 "tokenid" : {
45795 "description" : "User-specific token identifier.",
45796 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
45797 "type" : "string"
45798 }
45799 },
45800 "type" : "object"
45801 },
45802 "links" : [
45803 {
45804 "href" : "{tokenid}",
45805 "rel" : "child"
45806 }
45807 ],
45808 "type" : "array"
45809 }
45810 }
45811 },
45812 "leaf" : 0,
45813 "path" : "/access/users/{userid}/token",
45814 "text" : "token"
bb4c8cf8
TL
45815 }
45816 ],
56122987 45817 "info" : {
44660702 45818 "DELETE" : {
e9cd3bd4 45819 "allowtoken" : 1,
44660702
DM
45820 "description" : "Delete user.",
45821 "method" : "DELETE",
45822 "name" : "delete_user",
56122987 45823 "parameters" : {
7aacca6f 45824 "additionalProperties" : 0,
56122987 45825 "properties" : {
56122987 45826 "userid" : {
56122987
DM
45827 "description" : "User ID",
45828 "format" : "pve-userid",
44660702 45829 "maxLength" : 64,
013dc89f
DM
45830 "type" : "string",
45831 "typetext" : "<string>"
56122987 45832 }
7aacca6f 45833 }
56122987 45834 },
56122987
DM
45835 "permissions" : {
45836 "check" : [
44660702 45837 "and",
56122987 45838 [
44660702
DM
45839 "userid-param",
45840 "Realm.AllocateUser"
56122987 45841 ],
44660702
DM
45842 [
45843 "userid-group",
45844 [
45845 "User.Modify"
45846 ]
45847 ]
56122987 45848 ]
7aacca6f 45849 },
44660702 45850 "protected" : 1,
56122987
DM
45851 "returns" : {
45852 "type" : "null"
44660702 45853 }
7aacca6f 45854 },
44660702 45855 "GET" : {
e9cd3bd4 45856 "allowtoken" : 1,
44660702
DM
45857 "description" : "Get user configuration.",
45858 "method" : "GET",
45859 "name" : "read_user",
56122987
DM
45860 "parameters" : {
45861 "additionalProperties" : 0,
45862 "properties" : {
45863 "userid" : {
44660702 45864 "description" : "User ID",
56122987 45865 "format" : "pve-userid",
44660702 45866 "maxLength" : 64,
013dc89f
DM
45867 "type" : "string",
45868 "typetext" : "<string>"
56122987
DM
45869 }
45870 }
45871 },
56122987
DM
45872 "permissions" : {
45873 "check" : [
44660702 45874 "userid-group",
56122987 45875 [
44660702
DM
45876 "User.Modify",
45877 "Sys.Audit"
56122987
DM
45878 ]
45879 ]
45880 },
56122987 45881 "returns" : {
7aacca6f 45882 "additionalProperties" : 0,
56122987 45883 "properties" : {
44660702
DM
45884 "comment" : {
45885 "optional" : 1,
45886 "type" : "string"
56122987 45887 },
44660702 45888 "email" : {
e2d681b3 45889 "format" : "email-opt",
44660702
DM
45890 "optional" : 1,
45891 "type" : "string"
7aacca6f
DM
45892 },
45893 "enable" : {
e2d681b3
TL
45894 "default" : 1,
45895 "description" : "Enable the account (default). You can set this to '0' to disable the account",
45896 "optional" : 1,
7aacca6f
DM
45897 "type" : "boolean"
45898 },
44660702 45899 "expire" : {
e2d681b3
TL
45900 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
45901 "minimum" : 0,
44660702
DM
45902 "optional" : 1,
45903 "type" : "integer"
45904 },
45905 "firstname" : {
56122987
DM
45906 "optional" : 1,
45907 "type" : "string"
45908 },
44660702 45909 "groups" : {
e9cd3bd4
TL
45910 "items" : {
45911 "format" : "pve-groupid",
45912 "type" : "string"
45913 },
45914 "optional" : 1,
44660702 45915 "type" : "array"
56122987 45916 },
44660702 45917 "keys" : {
e2d681b3 45918 "description" : "Keys for two factor auth (yubico).",
44660702
DM
45919 "optional" : 1,
45920 "type" : "string"
7aacca6f 45921 },
44660702
DM
45922 "lastname" : {
45923 "optional" : 1,
45924 "type" : "string"
e9cd3bd4
TL
45925 },
45926 "tokens" : {
c30bb419
TL
45927 "additionalProperties" : {
45928 "properties" : {
45929 "comment" : {
45930 "optional" : 1,
45931 "type" : "string"
45932 },
45933 "expire" : {
45934 "default" : "same as user",
45935 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45936 "minimum" : 0,
45937 "optional" : 1,
45938 "type" : "integer"
45939 },
45940 "privsep" : {
45941 "default" : 1,
45942 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45943 "optional" : 1,
45944 "type" : "boolean"
45945 }
45946 },
45947 "type" : "object"
45948 },
e9cd3bd4
TL
45949 "optional" : 1,
45950 "type" : "object"
56122987 45951 }
e2d681b3
TL
45952 },
45953 "type" : "object"
44660702
DM
45954 }
45955 },
45956 "PUT" : {
e9cd3bd4 45957 "allowtoken" : 1,
44660702
DM
45958 "description" : "Update user configuration.",
45959 "method" : "PUT",
45960 "name" : "update_user",
56122987 45961 "parameters" : {
44660702 45962 "additionalProperties" : 0,
56122987 45963 "properties" : {
44660702
DM
45964 "append" : {
45965 "optional" : 1,
45966 "requires" : "groups",
013dc89f
DM
45967 "type" : "boolean",
45968 "typetext" : "<boolean>"
44660702
DM
45969 },
45970 "comment" : {
45971 "optional" : 1,
013dc89f
DM
45972 "type" : "string",
45973 "typetext" : "<string>"
44660702
DM
45974 },
45975 "email" : {
45976 "format" : "email-opt",
45977 "optional" : 1,
013dc89f
DM
45978 "type" : "string",
45979 "typetext" : "<string>"
44660702
DM
45980 },
45981 "enable" : {
e2d681b3
TL
45982 "default" : 1,
45983 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 45984 "optional" : 1,
013dc89f
DM
45985 "type" : "boolean",
45986 "typetext" : "<boolean>"
44660702
DM
45987 },
45988 "expire" : {
45989 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
45990 "minimum" : 0,
45991 "optional" : 1,
4bd7df8b 45992 "type" : "integer",
013dc89f 45993 "typetext" : "<integer> (0 - N)"
44660702
DM
45994 },
45995 "firstname" : {
45996 "optional" : 1,
013dc89f
DM
45997 "type" : "string",
45998 "typetext" : "<string>"
44660702
DM
45999 },
46000 "groups" : {
46001 "format" : "pve-groupid-list",
46002 "optional" : 1,
013dc89f
DM
46003 "type" : "string",
46004 "typetext" : "<string>"
44660702
DM
46005 },
46006 "keys" : {
46007 "description" : "Keys for two factor auth (yubico).",
46008 "optional" : 1,
013dc89f
DM
46009 "type" : "string",
46010 "typetext" : "<string>"
44660702
DM
46011 },
46012 "lastname" : {
46013 "optional" : 1,
013dc89f
DM
46014 "type" : "string",
46015 "typetext" : "<string>"
44660702 46016 },
56122987 46017 "userid" : {
56122987
DM
46018 "description" : "User ID",
46019 "format" : "pve-userid",
44660702 46020 "maxLength" : 64,
013dc89f
DM
46021 "type" : "string",
46022 "typetext" : "<string>"
56122987 46023 }
44660702 46024 }
56122987 46025 },
56122987
DM
46026 "permissions" : {
46027 "check" : [
46028 "userid-group",
46029 [
44660702
DM
46030 "User.Modify"
46031 ],
46032 "groups_param",
c30bb419 46033 "update"
56122987
DM
46034 ]
46035 },
44660702
DM
46036 "protected" : 1,
46037 "returns" : {
46038 "type" : "null"
46039 }
56122987
DM
46040 }
46041 },
bb4c8cf8 46042 "leaf" : 0,
44660702 46043 "path" : "/access/users/{userid}",
7aacca6f 46044 "text" : "{userid}"
56122987 46045 }
7aacca6f 46046 ],
56122987 46047 "info" : {
7aacca6f 46048 "GET" : {
e9cd3bd4 46049 "allowtoken" : 1,
44660702
DM
46050 "description" : "User index.",
46051 "method" : "GET",
7aacca6f 46052 "name" : "index",
56122987 46053 "parameters" : {
44660702
DM
46054 "additionalProperties" : 0,
46055 "properties" : {
46056 "enabled" : {
46057 "description" : "Optional filter for enable property.",
46058 "optional" : 1,
013dc89f
DM
46059 "type" : "boolean",
46060 "typetext" : "<boolean>"
e9cd3bd4
TL
46061 },
46062 "full" : {
46063 "default" : 0,
46064 "description" : "Include group and token information.",
46065 "optional" : 1,
46066 "type" : "boolean",
46067 "typetext" : "<boolean>"
44660702
DM
46068 }
46069 }
46070 },
46071 "permissions" : {
46072 "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.",
46073 "user" : "all"
56122987 46074 },
7aacca6f 46075 "returns" : {
7aacca6f
DM
46076 "items" : {
46077 "properties" : {
e2d681b3
TL
46078 "comment" : {
46079 "optional" : 1,
46080 "type" : "string"
46081 },
46082 "email" : {
46083 "format" : "email-opt",
46084 "optional" : 1,
46085 "type" : "string"
46086 },
46087 "enable" : {
46088 "default" : 1,
46089 "description" : "Enable the account (default). You can set this to '0' to disable the account",
46090 "optional" : 1,
46091 "type" : "boolean"
46092 },
46093 "expire" : {
46094 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
46095 "minimum" : 0,
46096 "optional" : 1,
46097 "type" : "integer"
46098 },
46099 "firstname" : {
46100 "optional" : 1,
46101 "type" : "string"
46102 },
e9cd3bd4
TL
46103 "groups" : {
46104 "format" : "pve-groupid-list",
46105 "optional" : 1,
46106 "type" : "string"
46107 },
e2d681b3
TL
46108 "keys" : {
46109 "description" : "Keys for two factor auth (yubico).",
46110 "optional" : 1,
46111 "type" : "string"
46112 },
46113 "lastname" : {
46114 "optional" : 1,
46115 "type" : "string"
46116 },
34f3e481
TL
46117 "realm-type" : {
46118 "description" : "The type of the users realm",
46119 "format" : "pve-realm",
46120 "optional" : 1,
46121 "type" : "string"
46122 },
e9cd3bd4
TL
46123 "tokens" : {
46124 "items" : {
46125 "properties" : {
46126 "comment" : {
46127 "optional" : 1,
46128 "type" : "string"
46129 },
46130 "expire" : {
46131 "default" : "same as user",
46132 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46133 "minimum" : 0,
46134 "optional" : 1,
46135 "type" : "integer"
46136 },
46137 "privsep" : {
46138 "default" : 1,
46139 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46140 "optional" : 1,
46141 "type" : "boolean"
46142 },
46143 "tokenid" : {
46144 "description" : "User-specific token identifier.",
46145 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
46146 "type" : "string"
46147 }
46148 },
46149 "type" : "object"
46150 },
46151 "optional" : 1,
46152 "type" : "array"
46153 },
44660702 46154 "userid" : {
e2d681b3
TL
46155 "description" : "User ID",
46156 "format" : "pve-userid",
46157 "maxLength" : 64,
7aacca6f
DM
46158 "type" : "string"
46159 }
46160 },
46161 "type" : "object"
46162 },
44660702
DM
46163 "links" : [
46164 {
46165 "href" : "{userid}",
46166 "rel" : "child"
46167 }
46168 ],
7aacca6f
DM
46169 "type" : "array"
46170 }
46171 },
46172 "POST" : {
e9cd3bd4 46173 "allowtoken" : 1,
44660702 46174 "description" : "Create new user.",
7aacca6f 46175 "method" : "POST",
44660702 46176 "name" : "create_user",
56122987 46177 "parameters" : {
7aacca6f
DM
46178 "additionalProperties" : 0,
46179 "properties" : {
44660702
DM
46180 "comment" : {
46181 "optional" : 1,
013dc89f
DM
46182 "type" : "string",
46183 "typetext" : "<string>"
7aacca6f 46184 },
44660702
DM
46185 "email" : {
46186 "format" : "email-opt",
46187 "optional" : 1,
013dc89f
DM
46188 "type" : "string",
46189 "typetext" : "<string>"
44660702
DM
46190 },
46191 "enable" : {
46192 "default" : 1,
e2d681b3 46193 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 46194 "optional" : 1,
013dc89f
DM
46195 "type" : "boolean",
46196 "typetext" : "<boolean>"
44660702
DM
46197 },
46198 "expire" : {
46199 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
46200 "minimum" : 0,
46201 "optional" : 1,
4bd7df8b 46202 "type" : "integer",
013dc89f 46203 "typetext" : "<integer> (0 - N)"
44660702
DM
46204 },
46205 "firstname" : {
46206 "optional" : 1,
013dc89f
DM
46207 "type" : "string",
46208 "typetext" : "<string>"
44660702
DM
46209 },
46210 "groups" : {
46211 "format" : "pve-groupid-list",
46212 "optional" : 1,
013dc89f
DM
46213 "type" : "string",
46214 "typetext" : "<string>"
44660702
DM
46215 },
46216 "keys" : {
46217 "description" : "Keys for two factor auth (yubico).",
46218 "optional" : 1,
013dc89f
DM
46219 "type" : "string",
46220 "typetext" : "<string>"
44660702
DM
46221 },
46222 "lastname" : {
7aacca6f 46223 "optional" : 1,
013dc89f
DM
46224 "type" : "string",
46225 "typetext" : "<string>"
44660702
DM
46226 },
46227 "password" : {
46228 "description" : "Initial password.",
46229 "maxLength" : 64,
46230 "minLength" : 5,
46231 "optional" : 1,
013dc89f
DM
46232 "type" : "string",
46233 "typetext" : "<string>"
44660702
DM
46234 },
46235 "userid" : {
46236 "description" : "User ID",
46237 "format" : "pve-userid",
46238 "maxLength" : 64,
013dc89f
DM
46239 "type" : "string",
46240 "typetext" : "<string>"
56122987 46241 }
7aacca6f 46242 }
56122987 46243 },
44660702
DM
46244 "permissions" : {
46245 "check" : [
46246 "and",
46247 [
46248 "userid-param",
46249 "Realm.AllocateUser"
46250 ],
46251 [
46252 "userid-group",
46253 [
46254 "User.Modify"
46255 ],
46256 "groups_param",
c30bb419 46257 "create"
44660702
DM
46258 ]
46259 ],
46260 "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."
46261 },
46262 "protected" : 1,
46263 "returns" : {
46264 "type" : "null"
46265 }
56122987
DM
46266 }
46267 },
44660702
DM
46268 "leaf" : 0,
46269 "path" : "/access/users",
46270 "text" : "users"
46271 },
46272 {
56122987
DM
46273 "children" : [
46274 {
56122987
DM
46275 "info" : {
46276 "DELETE" : {
e9cd3bd4 46277 "allowtoken" : 1,
44660702
DM
46278 "description" : "Delete group.",
46279 "method" : "DELETE",
46280 "name" : "delete_group",
46281 "parameters" : {
46282 "additionalProperties" : 0,
46283 "properties" : {
46284 "groupid" : {
46285 "format" : "pve-groupid",
013dc89f
DM
46286 "type" : "string",
46287 "typetext" : "<string>"
44660702
DM
46288 }
46289 }
46290 },
7aacca6f
DM
46291 "permissions" : {
46292 "check" : [
46293 "perm",
46294 "/access/groups",
46295 [
46296 "Group.Allocate"
46297 ]
46298 ]
46299 },
7aacca6f 46300 "protected" : 1,
7aacca6f
DM
46301 "returns" : {
46302 "type" : "null"
44660702 46303 }
7aacca6f 46304 },
44660702 46305 "GET" : {
e9cd3bd4 46306 "allowtoken" : 1,
44660702
DM
46307 "description" : "Get group configuration.",
46308 "method" : "GET",
46309 "name" : "read_group",
46310 "parameters" : {
46311 "additionalProperties" : 0,
46312 "properties" : {
46313 "groupid" : {
46314 "format" : "pve-groupid",
013dc89f
DM
46315 "type" : "string",
46316 "typetext" : "<string>"
44660702
DM
46317 }
46318 }
56122987 46319 },
7aacca6f
DM
46320 "permissions" : {
46321 "check" : [
46322 "perm",
46323 "/access/groups",
46324 [
44660702 46325 "Sys.Audit",
7aacca6f 46326 "Group.Allocate"
44660702
DM
46327 ],
46328 "any",
46329 1
7aacca6f
DM
46330 ]
46331 },
7aacca6f 46332 "returns" : {
44660702 46333 "additionalProperties" : 0,
7aacca6f
DM
46334 "properties" : {
46335 "comment" : {
44660702
DM
46336 "optional" : 1,
46337 "type" : "string"
7aacca6f
DM
46338 },
46339 "members" : {
46340 "items" : {
e2d681b3
TL
46341 "description" : "User ID",
46342 "format" : "pve-userid",
46343 "maxLength" : 64,
7aacca6f
DM
46344 "type" : "string"
46345 },
46346 "type" : "array"
46347 }
46348 },
44660702
DM
46349 "type" : "object"
46350 }
46351 },
46352 "PUT" : {
e9cd3bd4 46353 "allowtoken" : 1,
44660702
DM
46354 "description" : "Update group data.",
46355 "method" : "PUT",
46356 "name" : "update_group",
56122987 46357 "parameters" : {
44660702 46358 "additionalProperties" : 0,
56122987 46359 "properties" : {
44660702
DM
46360 "comment" : {
46361 "optional" : 1,
013dc89f
DM
46362 "type" : "string",
46363 "typetext" : "<string>"
44660702 46364 },
56122987
DM
46365 "groupid" : {
46366 "format" : "pve-groupid",
013dc89f
DM
46367 "type" : "string",
46368 "typetext" : "<string>"
56122987 46369 }
44660702 46370 }
56122987 46371 },
56122987
DM
46372 "permissions" : {
46373 "check" : [
46374 "perm",
46375 "/access/groups",
46376 [
46377 "Group.Allocate"
44660702 46378 ]
56122987
DM
46379 ]
46380 },
44660702
DM
46381 "protected" : 1,
46382 "returns" : {
46383 "type" : "null"
46384 }
7aacca6f
DM
46385 }
46386 },
7aacca6f 46387 "leaf" : 1,
44660702
DM
46388 "path" : "/access/groups/{groupid}",
46389 "text" : "{groupid}"
46390 }
46391 ],
46392 "info" : {
46393 "GET" : {
e9cd3bd4 46394 "allowtoken" : 1,
44660702
DM
46395 "description" : "Group index.",
46396 "method" : "GET",
46397 "name" : "index",
46398 "parameters" : {
46399 "additionalProperties" : 0
46400 },
46401 "permissions" : {
46402 "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
46403 "user" : "all"
46404 },
46405 "returns" : {
46406 "items" : {
46407 "properties" : {
e2d681b3
TL
46408 "comment" : {
46409 "optional" : 1,
46410 "type" : "string"
46411 },
44660702 46412 "groupid" : {
e2d681b3 46413 "format" : "pve-groupid",
44660702 46414 "type" : "string"
e9cd3bd4
TL
46415 },
46416 "users" : {
46417 "description" : "list of users which form this group",
46418 "format" : "pve-userid-list",
46419 "optional" : 1,
46420 "type" : "string"
44660702
DM
46421 }
46422 },
46423 "type" : "object"
46424 },
46425 "links" : [
46426 {
46427 "href" : "{groupid}",
46428 "rel" : "child"
46429 }
46430 ],
46431 "type" : "array"
46432 }
46433 },
46434 "POST" : {
e9cd3bd4 46435 "allowtoken" : 1,
44660702
DM
46436 "description" : "Create new group.",
46437 "method" : "POST",
46438 "name" : "create_group",
46439 "parameters" : {
46440 "additionalProperties" : 0,
46441 "properties" : {
46442 "comment" : {
46443 "optional" : 1,
013dc89f
DM
46444 "type" : "string",
46445 "typetext" : "<string>"
44660702
DM
46446 },
46447 "groupid" : {
46448 "format" : "pve-groupid",
013dc89f
DM
46449 "type" : "string",
46450 "typetext" : "<string>"
44660702
DM
46451 }
46452 }
46453 },
46454 "permissions" : {
46455 "check" : [
46456 "perm",
46457 "/access/groups",
46458 [
46459 "Group.Allocate"
46460 ]
46461 ]
46462 },
46463 "protected" : 1,
46464 "returns" : {
46465 "type" : "null"
46466 }
7aacca6f 46467 }
44660702 46468 },
7aacca6f 46469 "leaf" : 0,
44660702
DM
46470 "path" : "/access/groups",
46471 "text" : "groups"
7aacca6f
DM
46472 },
46473 {
46474 "children" : [
46475 {
7aacca6f 46476 "info" : {
7aacca6f 46477 "DELETE" : {
e9cd3bd4 46478 "allowtoken" : 1,
7aacca6f 46479 "description" : "Delete role.",
44660702 46480 "method" : "DELETE",
7aacca6f 46481 "name" : "delete_role",
56122987
DM
46482 "parameters" : {
46483 "additionalProperties" : 0,
46484 "properties" : {
7aacca6f
DM
46485 "roleid" : {
46486 "format" : "pve-roleid",
013dc89f
DM
46487 "type" : "string",
46488 "typetext" : "<string>"
56122987
DM
46489 }
46490 }
46491 },
56122987
DM
46492 "permissions" : {
46493 "check" : [
46494 "perm",
7aacca6f 46495 "/access",
56122987 46496 [
7aacca6f
DM
46497 "Sys.Modify"
46498 ]
56122987 46499 ]
44660702
DM
46500 },
46501 "protected" : 1,
46502 "returns" : {
46503 "type" : "null"
56122987
DM
46504 }
46505 },
44660702 46506 "GET" : {
e9cd3bd4 46507 "allowtoken" : 1,
44660702
DM
46508 "description" : "Get role configuration.",
46509 "method" : "GET",
46510 "name" : "read_role",
46511 "parameters" : {
46512 "additionalProperties" : 0,
46513 "properties" : {
46514 "roleid" : {
46515 "format" : "pve-roleid",
013dc89f
DM
46516 "type" : "string",
46517 "typetext" : "<string>"
44660702
DM
46518 }
46519 }
46520 },
7aacca6f 46521 "permissions" : {
44660702 46522 "user" : "all"
56122987 46523 },
e2d681b3
TL
46524 "returns" : {
46525 "additionalProperties" : 0,
46526 "properties" : {
46527 "Datastore.Allocate" : {
46528 "optional" : 1,
46529 "type" : "boolean"
46530 },
46531 "Datastore.AllocateSpace" : {
46532 "optional" : 1,
46533 "type" : "boolean"
46534 },
46535 "Datastore.AllocateTemplate" : {
46536 "optional" : 1,
46537 "type" : "boolean"
46538 },
46539 "Datastore.Audit" : {
46540 "optional" : 1,
46541 "type" : "boolean"
46542 },
46543 "Group.Allocate" : {
46544 "optional" : 1,
46545 "type" : "boolean"
46546 },
46547 "Permissions.Modify" : {
46548 "optional" : 1,
46549 "type" : "boolean"
46550 },
46551 "Pool.Allocate" : {
46552 "optional" : 1,
46553 "type" : "boolean"
46554 },
0695fdaf
TL
46555 "Pool.Audit" : {
46556 "optional" : 1,
46557 "type" : "boolean"
46558 },
e2d681b3
TL
46559 "Realm.Allocate" : {
46560 "optional" : 1,
46561 "type" : "boolean"
46562 },
46563 "Realm.AllocateUser" : {
46564 "optional" : 1,
46565 "type" : "boolean"
46566 },
5c1699e5
TL
46567 "SDN.Allocate" : {
46568 "optional" : 1,
46569 "type" : "boolean"
46570 },
46571 "SDN.Audit" : {
46572 "optional" : 1,
46573 "type" : "boolean"
46574 },
e2d681b3
TL
46575 "Sys.Audit" : {
46576 "optional" : 1,
46577 "type" : "boolean"
46578 },
46579 "Sys.Console" : {
46580 "optional" : 1,
46581 "type" : "boolean"
46582 },
46583 "Sys.Modify" : {
46584 "optional" : 1,
46585 "type" : "boolean"
46586 },
46587 "Sys.PowerMgmt" : {
46588 "optional" : 1,
46589 "type" : "boolean"
46590 },
46591 "Sys.Syslog" : {
46592 "optional" : 1,
46593 "type" : "boolean"
46594 },
46595 "User.Modify" : {
46596 "optional" : 1,
46597 "type" : "boolean"
46598 },
46599 "VM.Allocate" : {
46600 "optional" : 1,
46601 "type" : "boolean"
46602 },
46603 "VM.Audit" : {
46604 "optional" : 1,
46605 "type" : "boolean"
46606 },
46607 "VM.Backup" : {
46608 "optional" : 1,
46609 "type" : "boolean"
46610 },
46611 "VM.Clone" : {
46612 "optional" : 1,
46613 "type" : "boolean"
46614 },
46615 "VM.Config.CDROM" : {
46616 "optional" : 1,
46617 "type" : "boolean"
46618 },
46619 "VM.Config.CPU" : {
46620 "optional" : 1,
46621 "type" : "boolean"
46622 },
ac70d7d1
TL
46623 "VM.Config.Cloudinit" : {
46624 "optional" : 1,
46625 "type" : "boolean"
46626 },
e2d681b3
TL
46627 "VM.Config.Disk" : {
46628 "optional" : 1,
46629 "type" : "boolean"
46630 },
46631 "VM.Config.HWType" : {
46632 "optional" : 1,
46633 "type" : "boolean"
46634 },
46635 "VM.Config.Memory" : {
46636 "optional" : 1,
46637 "type" : "boolean"
46638 },
46639 "VM.Config.Network" : {
46640 "optional" : 1,
46641 "type" : "boolean"
46642 },
46643 "VM.Config.Options" : {
46644 "optional" : 1,
46645 "type" : "boolean"
46646 },
46647 "VM.Console" : {
46648 "optional" : 1,
46649 "type" : "boolean"
46650 },
46651 "VM.Migrate" : {
46652 "optional" : 1,
46653 "type" : "boolean"
46654 },
46655 "VM.Monitor" : {
46656 "optional" : 1,
46657 "type" : "boolean"
46658 },
46659 "VM.PowerMgmt" : {
46660 "optional" : 1,
46661 "type" : "boolean"
46662 },
46663 "VM.Snapshot" : {
46664 "optional" : 1,
46665 "type" : "boolean"
46666 },
46667 "VM.Snapshot.Rollback" : {
46668 "optional" : 1,
46669 "type" : "boolean"
46670 }
46671 },
46672 "type" : "object"
46673 }
44660702
DM
46674 },
46675 "PUT" : {
e9cd3bd4 46676 "allowtoken" : 1,
e2d681b3 46677 "description" : "Update an existing role.",
44660702
DM
46678 "method" : "PUT",
46679 "name" : "update_role",
56122987
DM
46680 "parameters" : {
46681 "additionalProperties" : 0,
46682 "properties" : {
7aacca6f 46683 "append" : {
44660702 46684 "optional" : 1,
7aacca6f 46685 "requires" : "privs",
013dc89f
DM
46686 "type" : "boolean",
46687 "typetext" : "<boolean>"
7aacca6f
DM
46688 },
46689 "privs" : {
46690 "format" : "pve-priv-list",
e2d681b3 46691 "optional" : 1,
013dc89f
DM
46692 "type" : "string",
46693 "typetext" : "<string>"
44660702
DM
46694 },
46695 "roleid" : {
46696 "format" : "pve-roleid",
013dc89f
DM
46697 "type" : "string",
46698 "typetext" : "<string>"
56122987
DM
46699 }
46700 }
46701 },
44660702
DM
46702 "permissions" : {
46703 "check" : [
46704 "perm",
46705 "/access",
46706 [
46707 "Sys.Modify"
46708 ]
46709 ]
46710 },
56122987 46711 "protected" : 1,
7aacca6f
DM
46712 "returns" : {
46713 "type" : "null"
56122987
DM
46714 }
46715 }
46716 },
44660702 46717 "leaf" : 1,
7aacca6f 46718 "path" : "/access/roles/{roleid}",
44660702 46719 "text" : "{roleid}"
56122987
DM
46720 }
46721 ],
56122987 46722 "info" : {
7aacca6f 46723 "GET" : {
e9cd3bd4 46724 "allowtoken" : 1,
7aacca6f 46725 "description" : "Role index.",
44660702 46726 "method" : "GET",
7aacca6f 46727 "name" : "index",
56122987 46728 "parameters" : {
56122987
DM
46729 "additionalProperties" : 0
46730 },
7aacca6f
DM
46731 "permissions" : {
46732 "user" : "all"
46733 },
56122987 46734 "returns" : {
7aacca6f 46735 "items" : {
7aacca6f 46736 "properties" : {
e2d681b3
TL
46737 "privs" : {
46738 "format" : "pve-priv-list",
46739 "optional" : 1,
46740 "type" : "string"
46741 },
7aacca6f 46742 "roleid" : {
e2d681b3 46743 "format" : "pve-roleid",
7aacca6f 46744 "type" : "string"
e2d681b3
TL
46745 },
46746 "special" : {
46747 "default" : 0,
46748 "optional" : 1,
46749 "type" : "boolean"
7aacca6f 46750 }
44660702
DM
46751 },
46752 "type" : "object"
46753 },
46754 "links" : [
46755 {
46756 "href" : "{roleid}",
46757 "rel" : "child"
7aacca6f 46758 }
44660702
DM
46759 ],
46760 "type" : "array"
46761 }
7aacca6f
DM
46762 },
46763 "POST" : {
e9cd3bd4 46764 "allowtoken" : 1,
7aacca6f 46765 "description" : "Create new role.",
44660702
DM
46766 "method" : "POST",
46767 "name" : "create_role",
7aacca6f
DM
46768 "parameters" : {
46769 "additionalProperties" : 0,
46770 "properties" : {
7aacca6f
DM
46771 "privs" : {
46772 "format" : "pve-priv-list",
46773 "optional" : 1,
013dc89f
DM
46774 "type" : "string",
46775 "typetext" : "<string>"
44660702
DM
46776 },
46777 "roleid" : {
46778 "format" : "pve-roleid",
013dc89f
DM
46779 "type" : "string",
46780 "typetext" : "<string>"
7aacca6f
DM
46781 }
46782 }
46783 },
44660702
DM
46784 "permissions" : {
46785 "check" : [
46786 "perm",
46787 "/access",
46788 [
46789 "Sys.Modify"
46790 ]
46791 ]
46792 },
46793 "protected" : 1,
7aacca6f
DM
46794 "returns" : {
46795 "type" : "null"
46796 }
46797 }
46798 },
44660702 46799 "leaf" : 0,
7aacca6f 46800 "path" : "/access/roles",
44660702 46801 "text" : "roles"
7aacca6f
DM
46802 },
46803 {
46804 "info" : {
56122987 46805 "GET" : {
e9cd3bd4 46806 "allowtoken" : 1,
44660702
DM
46807 "description" : "Get Access Control List (ACLs).",
46808 "method" : "GET",
46809 "name" : "read_acl",
7aacca6f
DM
46810 "parameters" : {
46811 "additionalProperties" : 0
46812 },
44660702
DM
46813 "permissions" : {
46814 "description" : "The returned list is restricted to objects where you have rights to modify permissions.",
46815 "user" : "all"
46816 },
56122987 46817 "returns" : {
56122987 46818 "items" : {
44660702 46819 "additionalProperties" : 0,
56122987 46820 "properties" : {
7aacca6f 46821 "path" : {
e2d681b3 46822 "description" : "Access control path",
7aacca6f
DM
46823 "type" : "string"
46824 },
44660702 46825 "propagate" : {
e2d681b3
TL
46826 "default" : 1,
46827 "description" : "Allow to propagate (inherit) permissions.",
46828 "optional" : 1,
44660702
DM
46829 "type" : "boolean"
46830 },
46831 "roleid" : {
46832 "type" : "string"
46833 },
7aacca6f
DM
46834 "type" : {
46835 "enum" : [
46836 "user",
e9cd3bd4
TL
46837 "group",
46838 "token"
7aacca6f
DM
46839 ],
46840 "type" : "string"
46841 },
7aacca6f
DM
46842 "ugid" : {
46843 "type" : "string"
56122987 46844 }
7aacca6f 46845 },
44660702 46846 "type" : "object"
7aacca6f
DM
46847 },
46848 "type" : "array"
44660702 46849 }
7aacca6f
DM
46850 },
46851 "PUT" : {
e9cd3bd4 46852 "allowtoken" : 1,
44660702
DM
46853 "description" : "Update Access Control List (add or remove permissions).",
46854 "method" : "PUT",
7aacca6f
DM
46855 "name" : "update_acl",
46856 "parameters" : {
46857 "additionalProperties" : 0,
46858 "properties" : {
46859 "delete" : {
44660702 46860 "description" : "Remove permissions (instead of adding it).",
7aacca6f 46861 "optional" : 1,
013dc89f
DM
46862 "type" : "boolean",
46863 "typetext" : "<boolean>"
7aacca6f 46864 },
44660702
DM
46865 "groups" : {
46866 "description" : "List of groups.",
46867 "format" : "pve-groupid-list",
7aacca6f 46868 "optional" : 1,
013dc89f
DM
46869 "type" : "string",
46870 "typetext" : "<string>"
7aacca6f
DM
46871 },
46872 "path" : {
46873 "description" : "Access control path",
013dc89f
DM
46874 "type" : "string",
46875 "typetext" : "<string>"
7aacca6f 46876 },
7aacca6f 46877 "propagate" : {
44660702 46878 "default" : 1,
7aacca6f 46879 "description" : "Allow to propagate (inherit) permissions.",
7aacca6f 46880 "optional" : 1,
013dc89f
DM
46881 "type" : "boolean",
46882 "typetext" : "<boolean>"
7aacca6f 46883 },
44660702
DM
46884 "roles" : {
46885 "description" : "List of roles.",
46886 "format" : "pve-roleid-list",
013dc89f
DM
46887 "type" : "string",
46888 "typetext" : "<string>"
44660702 46889 },
e9cd3bd4
TL
46890 "tokens" : {
46891 "description" : "List of API tokens.",
46892 "format" : "pve-tokenid-list",
46893 "optional" : 1,
46894 "type" : "string",
46895 "typetext" : "<string>"
46896 },
44660702
DM
46897 "users" : {
46898 "description" : "List of users.",
46899 "format" : "pve-userid-list",
7aacca6f 46900 "optional" : 1,
013dc89f
DM
46901 "type" : "string",
46902 "typetext" : "<string>"
56122987
DM
46903 }
46904 }
46905 },
56122987 46906 "permissions" : {
7aacca6f
DM
46907 "check" : [
46908 "perm-modify",
46909 "{path}"
46910 ]
46911 },
7aacca6f
DM
46912 "protected" : 1,
46913 "returns" : {
46914 "type" : "null"
44660702 46915 }
56122987
DM
46916 }
46917 },
7aacca6f 46918 "leaf" : 1,
44660702
DM
46919 "path" : "/access/acl",
46920 "text" : "acl"
7aacca6f
DM
46921 },
46922 {
56122987
DM
46923 "children" : [
46924 {
c5aa7e14
TL
46925 "children" : [
46926 {
46927 "info" : {
46928 "POST" : {
46929 "allowtoken" : 1,
46930 "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.",
46931 "method" : "POST",
46932 "name" : "sync",
46933 "parameters" : {
46934 "additionalProperties" : 0,
46935 "properties" : {
46936 "dry-run" : {
46937 "default" : 0,
46938 "description" : "If set, does not write anything.",
46939 "optional" : 1,
46940 "type" : "boolean",
46941 "typetext" : "<boolean>"
46942 },
46943 "enable-new" : {
46944 "default" : "1",
46945 "description" : "Enable newly synced users immediately.",
46946 "optional" : "1",
46947 "type" : "boolean",
46948 "typetext" : "<boolean>"
46949 },
46950 "full" : {
7af2edf9 46951 "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
46952 "optional" : "1",
46953 "type" : "boolean",
46954 "typetext" : "<boolean>"
46955 },
46956 "purge" : {
7af2edf9 46957 "description" : "DEPRECATED: use 'remove-vanished' instead. Remove ACLs for users or groups which were removed from the config during a sync.",
c5aa7e14
TL
46958 "optional" : "1",
46959 "type" : "boolean",
46960 "typetext" : "<boolean>"
46961 },
46962 "realm" : {
46963 "description" : "Authentication domain ID",
46964 "format" : "pve-realm",
46965 "maxLength" : 32,
46966 "type" : "string",
46967 "typetext" : "<string>"
46968 },
7af2edf9
TL
46969 "remove-vanished" : {
46970 "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.",
46971 "optional" : "1",
46972 "pattern" : "(?:(?:acl|properties|entry);)*(?:acl|properties|entry)",
46973 "type" : "string",
46974 "typetext" : "[acl];[properties];[entry]"
46975 },
c5aa7e14
TL
46976 "scope" : {
46977 "description" : "Select what to sync.",
46978 "enum" : [
46979 "users",
46980 "groups",
46981 "both"
46982 ],
46983 "optional" : "1",
46984 "type" : "string"
46985 }
46986 }
46987 },
46988 "permissions" : {
46989 "check" : [
46990 "and",
46991 [
c30bb419
TL
46992 "perm",
46993 "/access/realm/{realm}",
46994 [
46995 "Realm.AllocateUser"
46996 ]
c5aa7e14
TL
46997 ],
46998 [
c30bb419
TL
46999 "perm",
47000 "/access/groups",
c5aa7e14
TL
47001 [
47002 "User.Modify"
47003 ]
47004 ]
47005 ],
47006 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
47007 },
47008 "protected" : 1,
47009 "returns" : {
47010 "description" : "Worker Task-UPID",
47011 "type" : "string"
47012 }
47013 }
47014 },
47015 "leaf" : 1,
47016 "path" : "/access/domains/{realm}/sync",
47017 "text" : "sync"
47018 }
47019 ],
56122987 47020 "info" : {
44660702 47021 "DELETE" : {
e9cd3bd4 47022 "allowtoken" : 1,
44660702
DM
47023 "description" : "Delete an authentication server.",
47024 "method" : "DELETE",
47025 "name" : "delete",
47026 "parameters" : {
47027 "additionalProperties" : 0,
47028 "properties" : {
47029 "realm" : {
47030 "description" : "Authentication domain ID",
47031 "format" : "pve-realm",
47032 "maxLength" : 32,
013dc89f
DM
47033 "type" : "string",
47034 "typetext" : "<string>"
56122987 47035 }
44660702 47036 }
56122987 47037 },
56122987
DM
47038 "permissions" : {
47039 "check" : [
47040 "perm",
7aacca6f 47041 "/access/realm",
56122987 47042 [
7aacca6f 47043 "Realm.Allocate"
56122987
DM
47044 ]
47045 ]
47046 },
7aacca6f 47047 "protected" : 1,
7aacca6f
DM
47048 "returns" : {
47049 "type" : "null"
44660702 47050 }
7aacca6f 47051 },
44660702 47052 "GET" : {
e9cd3bd4 47053 "allowtoken" : 1,
44660702
DM
47054 "description" : "Get auth server configuration.",
47055 "method" : "GET",
47056 "name" : "read",
56122987 47057 "parameters" : {
44660702 47058 "additionalProperties" : 0,
56122987 47059 "properties" : {
7aacca6f 47060 "realm" : {
44660702 47061 "description" : "Authentication domain ID",
7aacca6f
DM
47062 "format" : "pve-realm",
47063 "maxLength" : 32,
013dc89f
DM
47064 "type" : "string",
47065 "typetext" : "<string>"
56122987 47066 }
44660702 47067 }
7aacca6f 47068 },
7aacca6f
DM
47069 "permissions" : {
47070 "check" : [
47071 "perm",
47072 "/access/realm",
47073 [
44660702
DM
47074 "Realm.Allocate",
47075 "Sys.Audit"
47076 ],
47077 "any",
47078 1
7aacca6f 47079 ]
44660702
DM
47080 },
47081 "returns" : {}
7aacca6f 47082 },
44660702 47083 "PUT" : {
e9cd3bd4 47084 "allowtoken" : 1,
44660702
DM
47085 "description" : "Update authentication server settings.",
47086 "method" : "PUT",
47087 "name" : "update",
7aacca6f 47088 "parameters" : {
44660702 47089 "additionalProperties" : 0,
7aacca6f 47090 "properties" : {
c30bb419
TL
47091 "acr-values" : {
47092 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
47093 "optional" : 1,
47094 "type" : "string",
47095 "typetext" : "<string>"
47096 },
34f3e481
TL
47097 "autocreate" : {
47098 "default" : 0,
47099 "description" : "Automatically create users if they do not exist.",
47100 "optional" : 1,
47101 "type" : "boolean",
47102 "typetext" : "<boolean>"
47103 },
44660702
DM
47104 "base_dn" : {
47105 "description" : "LDAP base domain name",
47106 "maxLength" : 256,
47107 "optional" : 1,
47108 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
47109 "type" : "string"
47110 },
4bd7df8b
DM
47111 "bind_dn" : {
47112 "description" : "LDAP bind domain name",
47113 "maxLength" : 256,
47114 "optional" : 1,
47115 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
47116 "type" : "string"
47117 },
2489d6df
WB
47118 "capath" : {
47119 "default" : "/etc/ssl/certs",
47120 "description" : "Path to the CA certificate store",
47121 "optional" : 1,
47122 "type" : "string",
47123 "typetext" : "<string>"
47124 },
4772952b
TL
47125 "case-sensitive" : {
47126 "default" : 1,
47127 "description" : "username is case-sensitive",
47128 "optional" : 1,
47129 "type" : "boolean",
47130 "typetext" : "<boolean>"
47131 },
2489d6df
WB
47132 "cert" : {
47133 "description" : "Path to the client certificate",
47134 "optional" : 1,
47135 "type" : "string",
47136 "typetext" : "<string>"
47137 },
47138 "certkey" : {
47139 "description" : "Path to the client certificate key",
47140 "optional" : 1,
47141 "type" : "string",
47142 "typetext" : "<string>"
47143 },
34f3e481
TL
47144 "client-id" : {
47145 "description" : "OpenID Client ID",
47146 "maxLength" : 256,
47147 "optional" : 1,
47148 "type" : "string",
47149 "typetext" : "<string>"
47150 },
47151 "client-key" : {
47152 "description" : "OpenID Client Key",
47153 "maxLength" : 256,
47154 "optional" : 1,
47155 "type" : "string",
47156 "typetext" : "<string>"
47157 },
44660702
DM
47158 "comment" : {
47159 "description" : "Description.",
47160 "maxLength" : 4096,
47161 "optional" : 1,
013dc89f
DM
47162 "type" : "string",
47163 "typetext" : "<string>"
44660702
DM
47164 },
47165 "default" : {
47166 "description" : "Use this as default realm",
47167 "optional" : 1,
013dc89f
DM
47168 "type" : "boolean",
47169 "typetext" : "<boolean>"
44660702
DM
47170 },
47171 "delete" : {
47172 "description" : "A list of settings you want to delete.",
47173 "format" : "pve-configid-list",
47174 "maxLength" : 4096,
47175 "optional" : 1,
013dc89f
DM
47176 "type" : "string",
47177 "typetext" : "<string>"
44660702
DM
47178 },
47179 "digest" : {
47180 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
47181 "maxLength" : 40,
47182 "optional" : 1,
013dc89f
DM
47183 "type" : "string",
47184 "typetext" : "<string>"
44660702
DM
47185 },
47186 "domain" : {
47187 "description" : "AD domain name",
47188 "maxLength" : 256,
47189 "optional" : 1,
47190 "pattern" : "\\S+",
47191 "type" : "string"
47192 },
c5aa7e14
TL
47193 "filter" : {
47194 "description" : "LDAP filter for user sync.",
47195 "maxLength" : 2048,
47196 "optional" : 1,
47197 "type" : "string",
47198 "typetext" : "<string>"
47199 },
47200 "group_classes" : {
47201 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
47202 "description" : "The objectclasses for groups.",
47203 "format" : "ldap-simple-attr-list",
47204 "optional" : 1,
47205 "type" : "string",
47206 "typetext" : "<string>"
47207 },
47208 "group_dn" : {
47209 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
47210 "maxLength" : 256,
47211 "optional" : 1,
47212 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
47213 "type" : "string"
47214 },
47215 "group_filter" : {
47216 "description" : "LDAP filter for group sync.",
47217 "maxLength" : 2048,
47218 "optional" : 1,
47219 "type" : "string",
47220 "typetext" : "<string>"
47221 },
47222 "group_name_attr" : {
47223 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
47224 "format" : "ldap-simple-attr",
47225 "maxLength" : 256,
47226 "optional" : 1,
47227 "type" : "string",
47228 "typetext" : "<string>"
47229 },
34f3e481
TL
47230 "issuer-url" : {
47231 "description" : "OpenID Issuer Url",
47232 "maxLength" : 256,
47233 "optional" : 1,
47234 "type" : "string",
47235 "typetext" : "<string>"
47236 },
c5aa7e14
TL
47237 "mode" : {
47238 "default" : "ldap",
47239 "description" : "LDAP protocol mode.",
47240 "enum" : [
47241 "ldap",
47242 "ldaps",
47243 "ldap+starttls"
47244 ],
47245 "optional" : 1,
47246 "type" : "string"
47247 },
47248 "password" : {
47249 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
47250 "optional" : 1,
47251 "type" : "string",
47252 "typetext" : "<string>"
47253 },
44660702
DM
47254 "port" : {
47255 "description" : "Server port.",
47256 "maximum" : 65535,
47257 "minimum" : 1,
47258 "optional" : 1,
4bd7df8b 47259 "type" : "integer",
013dc89f 47260 "typetext" : "<integer> (1 - 65535)"
44660702 47261 },
c30bb419
TL
47262 "prompt" : {
47263 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
47264 "optional" : 1,
47265 "pattern" : "(?:none|login|consent|select_account|\\S+)",
47266 "type" : "string"
47267 },
7aacca6f 47268 "realm" : {
7aacca6f
DM
47269 "description" : "Authentication domain ID",
47270 "format" : "pve-realm",
44660702 47271 "maxLength" : 32,
013dc89f
DM
47272 "type" : "string",
47273 "typetext" : "<string>"
44660702 47274 },
c30bb419
TL
47275 "scopes" : {
47276 "default" : "email profile",
47277 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
47278 "optional" : 1,
47279 "type" : "string",
47280 "typetext" : "<string>"
47281 },
44660702 47282 "secure" : {
c5aa7e14 47283 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
44660702 47284 "optional" : 1,
013dc89f
DM
47285 "type" : "boolean",
47286 "typetext" : "<boolean>"
44660702
DM
47287 },
47288 "server1" : {
47289 "description" : "Server IP address (or DNS name)",
47290 "format" : "address",
47291 "maxLength" : 256,
47292 "optional" : 1,
013dc89f
DM
47293 "type" : "string",
47294 "typetext" : "<string>"
44660702
DM
47295 },
47296 "server2" : {
47297 "description" : "Fallback Server IP address (or DNS name)",
47298 "format" : "address",
47299 "maxLength" : 256,
47300 "optional" : 1,
013dc89f
DM
47301 "type" : "string",
47302 "typetext" : "<string>"
44660702 47303 },
1c532546
TL
47304 "sslversion" : {
47305 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
47306 "enum" : [
47307 "tlsv1",
47308 "tlsv1_1",
47309 "tlsv1_2",
47310 "tlsv1_3"
47311 ],
47312 "optional" : 1,
47313 "type" : "string"
47314 },
c5aa7e14
TL
47315 "sync-defaults-options" : {
47316 "description" : "The default options for behavior of synchronizations.",
47317 "format" : "realm-sync-options",
47318 "optional" : 1,
47319 "type" : "string",
7af2edf9 47320 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=[acl];[properties];[entry]] [,scope=<users|groups|both>]"
c5aa7e14
TL
47321 },
47322 "sync_attributes" : {
47323 "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.",
47324 "optional" : 1,
47325 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
47326 "type" : "string"
47327 },
44660702
DM
47328 "tfa" : {
47329 "description" : "Use Two-factor authentication.",
47330 "format" : "pve-tfa-config",
47331 "maxLength" : 128,
47332 "optional" : 1,
013dc89f 47333 "type" : "string",
95895385 47334 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
47335 },
47336 "user_attr" : {
47337 "description" : "LDAP user attribute name",
47338 "maxLength" : 256,
47339 "optional" : 1,
47340 "pattern" : "\\S{2,}",
47341 "type" : "string"
2489d6df 47342 },
c5aa7e14
TL
47343 "user_classes" : {
47344 "default" : "inetorgperson, posixaccount, person, user",
47345 "description" : "The objectclasses for users.",
47346 "format" : "ldap-simple-attr-list",
47347 "optional" : 1,
47348 "type" : "string",
47349 "typetext" : "<string>"
47350 },
2489d6df
WB
47351 "verify" : {
47352 "default" : 0,
47353 "description" : "Verify the server's SSL certificate",
47354 "optional" : 1,
47355 "type" : "boolean",
47356 "typetext" : "<boolean>"
7aacca6f 47357 }
56122987 47358 },
44660702 47359 "type" : "object"
56122987 47360 },
7aacca6f
DM
47361 "permissions" : {
47362 "check" : [
47363 "perm",
47364 "/access/realm",
47365 [
44660702
DM
47366 "Realm.Allocate"
47367 ]
7aacca6f
DM
47368 ]
47369 },
44660702
DM
47370 "protected" : 1,
47371 "returns" : {
47372 "type" : "null"
47373 }
56122987 47374 }
44660702 47375 },
c5aa7e14 47376 "leaf" : 0,
44660702
DM
47377 "path" : "/access/domains/{realm}",
47378 "text" : "{realm}"
56122987 47379 }
7aacca6f 47380 ],
56122987
DM
47381 "info" : {
47382 "GET" : {
e9cd3bd4 47383 "allowtoken" : 1,
44660702
DM
47384 "description" : "Authentication domain index.",
47385 "method" : "GET",
47386 "name" : "index",
47387 "parameters" : {
47388 "additionalProperties" : 0
47389 },
47390 "permissions" : {
47391 "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
47392 "user" : "world"
47393 },
56122987 47394 "returns" : {
56122987
DM
47395 "items" : {
47396 "properties" : {
7aacca6f 47397 "comment" : {
52e44c50 47398 "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
7aacca6f
DM
47399 "optional" : 1,
47400 "type" : "string"
47401 },
56122987
DM
47402 "realm" : {
47403 "type" : "string"
47404 },
47405 "tfa" : {
7aacca6f 47406 "description" : "Two-factor authentication provider.",
56122987
DM
47407 "enum" : [
47408 "yubico",
47409 "oath"
47410 ],
44660702
DM
47411 "optional" : 1,
47412 "type" : "string"
c5aa7e14
TL
47413 },
47414 "type" : {
47415 "type" : "string"
56122987
DM
47416 }
47417 },
47418 "type" : "object"
44660702
DM
47419 },
47420 "links" : [
47421 {
47422 "href" : "{realm}",
47423 "rel" : "child"
47424 }
47425 ],
47426 "type" : "array"
47427 }
56122987
DM
47428 },
47429 "POST" : {
e9cd3bd4 47430 "allowtoken" : 1,
7aacca6f 47431 "description" : "Add an authentication server.",
44660702 47432 "method" : "POST",
7aacca6f 47433 "name" : "create",
56122987 47434 "parameters" : {
44660702 47435 "additionalProperties" : 0,
56122987 47436 "properties" : {
c30bb419
TL
47437 "acr-values" : {
47438 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
47439 "optional" : 1,
47440 "type" : "string",
47441 "typetext" : "<string>"
47442 },
34f3e481
TL
47443 "autocreate" : {
47444 "default" : 0,
47445 "description" : "Automatically create users if they do not exist.",
47446 "optional" : 1,
47447 "type" : "boolean",
47448 "typetext" : "<boolean>"
47449 },
44660702
DM
47450 "base_dn" : {
47451 "description" : "LDAP base domain name",
56122987 47452 "maxLength" : 256,
44660702
DM
47453 "optional" : 1,
47454 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
7aacca6f 47455 "type" : "string"
56122987 47456 },
4bd7df8b
DM
47457 "bind_dn" : {
47458 "description" : "LDAP bind domain name",
47459 "maxLength" : 256,
47460 "optional" : 1,
47461 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
47462 "type" : "string"
47463 },
2489d6df
WB
47464 "capath" : {
47465 "default" : "/etc/ssl/certs",
47466 "description" : "Path to the CA certificate store",
47467 "optional" : 1,
47468 "type" : "string",
47469 "typetext" : "<string>"
47470 },
4772952b
TL
47471 "case-sensitive" : {
47472 "default" : 1,
47473 "description" : "username is case-sensitive",
47474 "optional" : 1,
47475 "type" : "boolean",
47476 "typetext" : "<boolean>"
47477 },
2489d6df
WB
47478 "cert" : {
47479 "description" : "Path to the client certificate",
47480 "optional" : 1,
47481 "type" : "string",
47482 "typetext" : "<string>"
47483 },
47484 "certkey" : {
47485 "description" : "Path to the client certificate key",
47486 "optional" : 1,
47487 "type" : "string",
47488 "typetext" : "<string>"
47489 },
34f3e481
TL
47490 "client-id" : {
47491 "description" : "OpenID Client ID",
47492 "maxLength" : 256,
47493 "optional" : 1,
47494 "type" : "string",
47495 "typetext" : "<string>"
47496 },
47497 "client-key" : {
47498 "description" : "OpenID Client Key",
47499 "maxLength" : 256,
47500 "optional" : 1,
47501 "type" : "string",
47502 "typetext" : "<string>"
47503 },
44660702
DM
47504 "comment" : {
47505 "description" : "Description.",
47506 "maxLength" : 4096,
56122987 47507 "optional" : 1,
013dc89f
DM
47508 "type" : "string",
47509 "typetext" : "<string>"
56122987 47510 },
44660702
DM
47511 "default" : {
47512 "description" : "Use this as default realm",
7aacca6f 47513 "optional" : 1,
013dc89f
DM
47514 "type" : "boolean",
47515 "typetext" : "<boolean>"
56122987 47516 },
44660702
DM
47517 "domain" : {
47518 "description" : "AD domain name",
47519 "maxLength" : 256,
7aacca6f 47520 "optional" : 1,
44660702
DM
47521 "pattern" : "\\S+",
47522 "type" : "string"
56122987 47523 },
c5aa7e14
TL
47524 "filter" : {
47525 "description" : "LDAP filter for user sync.",
47526 "maxLength" : 2048,
47527 "optional" : 1,
47528 "type" : "string",
47529 "typetext" : "<string>"
47530 },
47531 "group_classes" : {
47532 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
47533 "description" : "The objectclasses for groups.",
47534 "format" : "ldap-simple-attr-list",
47535 "optional" : 1,
47536 "type" : "string",
47537 "typetext" : "<string>"
47538 },
47539 "group_dn" : {
47540 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
47541 "maxLength" : 256,
47542 "optional" : 1,
47543 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
47544 "type" : "string"
47545 },
47546 "group_filter" : {
47547 "description" : "LDAP filter for group sync.",
47548 "maxLength" : 2048,
47549 "optional" : 1,
47550 "type" : "string",
47551 "typetext" : "<string>"
47552 },
47553 "group_name_attr" : {
47554 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
47555 "format" : "ldap-simple-attr",
47556 "maxLength" : 256,
47557 "optional" : 1,
47558 "type" : "string",
47559 "typetext" : "<string>"
47560 },
34f3e481
TL
47561 "issuer-url" : {
47562 "description" : "OpenID Issuer Url",
47563 "maxLength" : 256,
47564 "optional" : 1,
47565 "type" : "string",
47566 "typetext" : "<string>"
47567 },
c5aa7e14
TL
47568 "mode" : {
47569 "default" : "ldap",
47570 "description" : "LDAP protocol mode.",
47571 "enum" : [
47572 "ldap",
47573 "ldaps",
47574 "ldap+starttls"
47575 ],
47576 "optional" : 1,
47577 "type" : "string"
47578 },
47579 "password" : {
47580 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
47581 "optional" : 1,
47582 "type" : "string",
47583 "typetext" : "<string>"
47584 },
7aacca6f 47585 "port" : {
44660702 47586 "description" : "Server port.",
7aacca6f 47587 "maximum" : 65535,
44660702 47588 "minimum" : 1,
7aacca6f 47589 "optional" : 1,
4bd7df8b 47590 "type" : "integer",
013dc89f 47591 "typetext" : "<integer> (1 - 65535)"
56122987 47592 },
c30bb419
TL
47593 "prompt" : {
47594 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
47595 "optional" : 1,
47596 "pattern" : "(?:none|login|consent|select_account|\\S+)",
47597 "type" : "string"
47598 },
44660702
DM
47599 "realm" : {
47600 "description" : "Authentication domain ID",
47601 "format" : "pve-realm",
47602 "maxLength" : 32,
013dc89f
DM
47603 "type" : "string",
47604 "typetext" : "<string>"
44660702 47605 },
c30bb419
TL
47606 "scopes" : {
47607 "default" : "email profile",
47608 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
47609 "optional" : 1,
47610 "type" : "string",
47611 "typetext" : "<string>"
47612 },
44660702 47613 "secure" : {
c5aa7e14 47614 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
7aacca6f 47615 "optional" : 1,
013dc89f
DM
47616 "type" : "boolean",
47617 "typetext" : "<boolean>"
56122987 47618 },
44660702
DM
47619 "server1" : {
47620 "description" : "Server IP address (or DNS name)",
47621 "format" : "address",
47622 "maxLength" : 256,
47623 "optional" : 1,
013dc89f
DM
47624 "type" : "string",
47625 "typetext" : "<string>"
56122987 47626 },
44660702
DM
47627 "server2" : {
47628 "description" : "Fallback Server IP address (or DNS name)",
47629 "format" : "address",
7aacca6f 47630 "maxLength" : 256,
7aacca6f 47631 "optional" : 1,
013dc89f
DM
47632 "type" : "string",
47633 "typetext" : "<string>"
7aacca6f 47634 },
1c532546
TL
47635 "sslversion" : {
47636 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
47637 "enum" : [
47638 "tlsv1",
47639 "tlsv1_1",
47640 "tlsv1_2",
47641 "tlsv1_3"
47642 ],
47643 "optional" : 1,
47644 "type" : "string"
47645 },
c5aa7e14
TL
47646 "sync-defaults-options" : {
47647 "description" : "The default options for behavior of synchronizations.",
47648 "format" : "realm-sync-options",
47649 "optional" : 1,
47650 "type" : "string",
7af2edf9 47651 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=[acl];[properties];[entry]] [,scope=<users|groups|both>]"
c5aa7e14
TL
47652 },
47653 "sync_attributes" : {
47654 "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.",
47655 "optional" : 1,
47656 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
47657 "type" : "string"
47658 },
44660702
DM
47659 "tfa" : {
47660 "description" : "Use Two-factor authentication.",
47661 "format" : "pve-tfa-config",
47662 "maxLength" : 128,
47663 "optional" : 1,
013dc89f 47664 "type" : "string",
95895385 47665 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
47666 },
47667 "type" : {
47668 "description" : "Realm type.",
47669 "enum" : [
47670 "ad",
47671 "ldap",
34f3e481 47672 "openid",
44660702
DM
47673 "pam",
47674 "pve"
47675 ],
47676 "type" : "string"
47677 },
47678 "user_attr" : {
47679 "description" : "LDAP user attribute name",
7aacca6f 47680 "maxLength" : 256,
7aacca6f 47681 "optional" : 1,
44660702
DM
47682 "pattern" : "\\S{2,}",
47683 "type" : "string"
2489d6df 47684 },
c5aa7e14
TL
47685 "user_classes" : {
47686 "default" : "inetorgperson, posixaccount, person, user",
47687 "description" : "The objectclasses for users.",
47688 "format" : "ldap-simple-attr-list",
47689 "optional" : 1,
47690 "type" : "string",
47691 "typetext" : "<string>"
47692 },
34f3e481
TL
47693 "username-claim" : {
47694 "description" : "OpenID claim used to generate the unique username.",
34f3e481 47695 "optional" : 1,
c30bb419
TL
47696 "type" : "string",
47697 "typetext" : "<string>"
34f3e481 47698 },
2489d6df
WB
47699 "verify" : {
47700 "default" : 0,
47701 "description" : "Verify the server's SSL certificate",
47702 "optional" : 1,
47703 "type" : "boolean",
47704 "typetext" : "<boolean>"
7aacca6f
DM
47705 }
47706 },
7aacca6f 47707 "type" : "object"
56122987 47708 },
7aacca6f
DM
47709 "permissions" : {
47710 "check" : [
47711 "perm",
47712 "/access/realm",
47713 [
47714 "Realm.Allocate"
47715 ]
47716 ]
44660702
DM
47717 },
47718 "protected" : 1,
47719 "returns" : {
47720 "type" : "null"
7aacca6f 47721 }
56122987 47722 }
7aacca6f 47723 },
44660702 47724 "leaf" : 0,
56122987 47725 "path" : "/access/domains",
44660702 47726 "text" : "domains"
56122987 47727 },
34f3e481
TL
47728 {
47729 "children" : [
47730 {
47731 "info" : {
47732 "POST" : {
47733 "allowtoken" : 1,
47734 "description" : "Get the OpenId Authorization Url for the specified realm.",
47735 "method" : "POST",
47736 "name" : "auth_url",
47737 "parameters" : {
47738 "additionalProperties" : 0,
47739 "properties" : {
47740 "realm" : {
47741 "description" : "Authentication domain ID",
47742 "format" : "pve-realm",
47743 "maxLength" : 32,
47744 "type" : "string",
47745 "typetext" : "<string>"
47746 },
47747 "redirect-url" : {
47748 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
47749 "maxLength" : 255,
47750 "type" : "string",
47751 "typetext" : "<string>"
47752 }
47753 }
47754 },
47755 "permissions" : {
47756 "user" : "world"
47757 },
47758 "protected" : 1,
47759 "returns" : {
47760 "description" : "Redirection URL.",
47761 "type" : "string"
47762 }
47763 }
47764 },
47765 "leaf" : 1,
47766 "path" : "/access/openid/auth-url",
47767 "text" : "auth-url"
47768 },
47769 {
47770 "info" : {
47771 "POST" : {
47772 "allowtoken" : 1,
47773 "description" : " Verify OpenID authorization code and create a ticket.",
47774 "method" : "POST",
47775 "name" : "login",
47776 "parameters" : {
47777 "additionalProperties" : 0,
47778 "properties" : {
47779 "code" : {
47780 "description" : "OpenId authorization code.",
47781 "maxLength" : 1024,
47782 "type" : "string",
47783 "typetext" : "<string>"
47784 },
47785 "redirect-url" : {
47786 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
47787 "maxLength" : 255,
47788 "type" : "string",
47789 "typetext" : "<string>"
47790 },
47791 "state" : {
47792 "description" : "OpenId state.",
47793 "maxLength" : 1024,
47794 "type" : "string",
47795 "typetext" : "<string>"
47796 }
47797 }
47798 },
47799 "permissions" : {
47800 "user" : "world"
47801 },
47802 "protected" : 1,
47803 "returns" : {
47804 "properties" : {
47805 "CSRFPreventionToken" : {
47806 "type" : "string"
47807 },
47808 "cap" : {
47809 "type" : "object"
47810 },
47811 "clustername" : {
47812 "optional" : 1,
47813 "type" : "string"
47814 },
47815 "ticket" : {
47816 "type" : "string"
47817 },
47818 "username" : {
47819 "type" : "string"
47820 }
47821 }
47822 }
47823 }
47824 },
47825 "leaf" : 1,
47826 "path" : "/access/openid/login",
47827 "text" : "login"
47828 }
47829 ],
47830 "info" : {
47831 "GET" : {
47832 "allowtoken" : 1,
47833 "description" : "Directory index.",
47834 "method" : "GET",
47835 "name" : "index",
47836 "parameters" : {
47837 "additionalProperties" : 0
47838 },
47839 "permissions" : {
47840 "user" : "all"
47841 },
47842 "returns" : {
47843 "items" : {
47844 "properties" : {
47845 "subdir" : {
47846 "type" : "string"
47847 }
47848 },
47849 "type" : "object"
47850 },
47851 "links" : [
47852 {
47853 "href" : "{subdir}",
47854 "rel" : "child"
47855 }
47856 ],
47857 "type" : "array"
47858 }
47859 }
47860 },
47861 "leaf" : 0,
47862 "path" : "/access/openid",
47863 "text" : "openid"
47864 },
5370fa8c
TL
47865 {
47866 "children" : [
47867 {
47868 "children" : [
47869 {
47870 "info" : {
47871 "DELETE" : {
47872 "allowtoken" : 0,
47873 "description" : "Delete a TFA entry by ID.",
47874 "method" : "DELETE",
47875 "name" : "delete_tfa",
47876 "parameters" : {
47877 "additionalProperties" : 0,
47878 "properties" : {
47879 "id" : {
47880 "description" : "A TFA entry id.",
47881 "type" : "string",
47882 "typetext" : "<string>"
47883 },
47884 "password" : {
47885 "description" : "The current password.",
47886 "maxLength" : 64,
47887 "minLength" : 5,
47888 "optional" : 1,
47889 "type" : "string",
47890 "typetext" : "<string>"
47891 },
47892 "userid" : {
47893 "description" : "User ID",
47894 "format" : "pve-userid",
47895 "maxLength" : 64,
47896 "type" : "string",
47897 "typetext" : "<string>"
47898 }
47899 }
47900 },
47901 "permissions" : {
47902 "check" : [
47903 "or",
47904 [
47905 "userid-param",
47906 "self"
47907 ],
47908 [
47909 "userid-group",
47910 [
47911 "User.Modify"
47912 ]
47913 ]
47914 ]
47915 },
47916 "protected" : 1,
47917 "returns" : {
47918 "type" : "null"
47919 }
47920 },
47921 "GET" : {
47922 "allowtoken" : 0,
47923 "description" : "Fetch a requested TFA entry if present.",
47924 "method" : "GET",
47925 "name" : "get_tfa_entry",
47926 "parameters" : {
47927 "additionalProperties" : 0,
47928 "properties" : {
47929 "id" : {
47930 "description" : "A TFA entry id.",
47931 "type" : "string",
47932 "typetext" : "<string>"
47933 },
47934 "userid" : {
47935 "description" : "User ID",
47936 "format" : "pve-userid",
47937 "maxLength" : 64,
47938 "type" : "string",
47939 "typetext" : "<string>"
47940 }
47941 }
47942 },
47943 "permissions" : {
47944 "check" : [
47945 "or",
47946 [
47947 "userid-param",
47948 "self"
47949 ],
47950 [
47951 "userid-group",
47952 [
47953 "User.Modify",
47954 "Sys.Audit"
47955 ]
47956 ]
47957 ]
47958 },
47959 "protected" : 1,
47960 "returns" : {
47961 "description" : "TFA Entry.",
47962 "properties" : {
47963 "created" : {
47964 "description" : "Creation time of this entry as unix epoch.",
47965 "type" : "integer"
47966 },
47967 "description" : {
47968 "description" : "User chosen description for this entry.",
47969 "type" : "string"
47970 },
47971 "enable" : {
47972 "default" : 1,
47973 "description" : "Whether this TFA entry is currently enabled.",
47974 "optional" : 1,
47975 "type" : "boolean"
47976 },
47977 "id" : {
47978 "description" : "The id used to reference this entry.",
47979 "type" : "string"
47980 },
47981 "type" : {
47982 "description" : "TFA Entry Type.",
47983 "enum" : [
47984 "totp",
47985 "u2f",
47986 "webauthn",
47987 "recovery",
47988 "yubico"
47989 ],
47990 "type" : "string"
47991 }
47992 },
47993 "type" : "object"
47994 }
47995 },
47996 "PUT" : {
47997 "allowtoken" : 0,
47998 "description" : "Add a TFA entry for a user.",
47999 "method" : "PUT",
48000 "name" : "update_tfa_entry",
48001 "parameters" : {
48002 "additionalProperties" : 0,
48003 "properties" : {
48004 "description" : {
48005 "description" : "A description to distinguish multiple entries from one another",
48006 "maxLength" : 255,
48007 "optional" : 1,
48008 "type" : "string",
48009 "typetext" : "<string>"
48010 },
48011 "enable" : {
48012 "description" : "Whether the entry should be enabled for login.",
48013 "optional" : 1,
48014 "type" : "boolean",
48015 "typetext" : "<boolean>"
48016 },
48017 "id" : {
48018 "description" : "A TFA entry id.",
48019 "type" : "string",
48020 "typetext" : "<string>"
48021 },
48022 "password" : {
48023 "description" : "The current password.",
48024 "maxLength" : 64,
48025 "minLength" : 5,
48026 "optional" : 1,
48027 "type" : "string",
48028 "typetext" : "<string>"
48029 },
48030 "userid" : {
48031 "description" : "User ID",
48032 "format" : "pve-userid",
48033 "maxLength" : 64,
48034 "type" : "string",
48035 "typetext" : "<string>"
48036 }
48037 }
48038 },
48039 "permissions" : {
48040 "check" : [
48041 "or",
48042 [
48043 "userid-param",
48044 "self"
48045 ],
48046 [
48047 "userid-group",
48048 [
48049 "User.Modify"
48050 ]
48051 ]
48052 ]
48053 },
48054 "protected" : 1,
48055 "returns" : {
48056 "type" : "null"
48057 }
48058 }
48059 },
48060 "leaf" : 1,
48061 "path" : "/access/tfa/{userid}/{id}",
48062 "text" : "{id}"
48063 }
48064 ],
48065 "info" : {
48066 "GET" : {
48067 "allowtoken" : 0,
48068 "description" : "List TFA configurations of users.",
48069 "method" : "GET",
48070 "name" : "list_user_tfa",
48071 "parameters" : {
48072 "additionalProperties" : 0,
48073 "properties" : {
48074 "userid" : {
48075 "description" : "User ID",
48076 "format" : "pve-userid",
48077 "maxLength" : 64,
48078 "type" : "string",
48079 "typetext" : "<string>"
48080 }
48081 }
48082 },
48083 "permissions" : {
48084 "check" : [
48085 "or",
48086 [
48087 "userid-param",
48088 "self"
48089 ],
48090 [
48091 "userid-group",
48092 [
48093 "User.Modify",
48094 "Sys.Audit"
48095 ]
48096 ]
48097 ]
48098 },
48099 "protected" : 1,
48100 "returns" : {
48101 "description" : "A list of the user's TFA entries.",
48102 "items" : {
48103 "description" : "TFA Entry.",
48104 "properties" : {
48105 "created" : {
48106 "description" : "Creation time of this entry as unix epoch.",
48107 "type" : "integer"
48108 },
48109 "description" : {
48110 "description" : "User chosen description for this entry.",
48111 "type" : "string"
48112 },
48113 "enable" : {
48114 "default" : 1,
48115 "description" : "Whether this TFA entry is currently enabled.",
48116 "optional" : 1,
48117 "type" : "boolean"
48118 },
48119 "id" : {
48120 "description" : "The id used to reference this entry.",
48121 "type" : "string"
48122 },
48123 "type" : {
48124 "description" : "TFA Entry Type.",
48125 "enum" : [
48126 "totp",
48127 "u2f",
48128 "webauthn",
48129 "recovery",
48130 "yubico"
48131 ],
48132 "type" : "string"
48133 }
48134 },
48135 "type" : "object"
48136 },
48137 "type" : "array"
48138 }
48139 },
48140 "POST" : {
48141 "allowtoken" : 0,
48142 "description" : "Add a TFA entry for a user.",
48143 "method" : "POST",
48144 "name" : "add_tfa_entry",
48145 "parameters" : {
48146 "additionalProperties" : 0,
48147 "properties" : {
48148 "challenge" : {
48149 "description" : "When responding to a u2f challenge: the original challenge string",
48150 "optional" : 1,
48151 "type" : "string",
48152 "typetext" : "<string>"
48153 },
48154 "description" : {
48155 "description" : "A description to distinguish multiple entries from one another",
48156 "maxLength" : 255,
48157 "optional" : 1,
48158 "type" : "string",
48159 "typetext" : "<string>"
48160 },
48161 "password" : {
48162 "description" : "The current password.",
48163 "maxLength" : 64,
48164 "minLength" : 5,
48165 "optional" : 1,
48166 "type" : "string",
48167 "typetext" : "<string>"
48168 },
48169 "totp" : {
48170 "description" : "A totp URI.",
48171 "optional" : 1,
48172 "type" : "string",
48173 "typetext" : "<string>"
48174 },
48175 "type" : {
48176 "description" : "TFA Entry Type.",
48177 "enum" : [
48178 "totp",
48179 "u2f",
48180 "webauthn",
48181 "recovery",
48182 "yubico"
48183 ],
48184 "type" : "string"
48185 },
48186 "userid" : {
48187 "description" : "User ID",
48188 "format" : "pve-userid",
48189 "maxLength" : 64,
48190 "type" : "string",
48191 "typetext" : "<string>"
48192 },
48193 "value" : {
48194 "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
48195 "optional" : 1,
48196 "type" : "string",
48197 "typetext" : "<string>"
48198 }
48199 }
48200 },
48201 "permissions" : {
48202 "check" : [
48203 "or",
48204 [
48205 "userid-param",
48206 "self"
48207 ],
48208 [
48209 "userid-group",
48210 [
48211 "User.Modify"
48212 ]
48213 ]
48214 ]
48215 },
48216 "protected" : 1,
48217 "returns" : {
48218 "properties" : {
48219 "challenge" : {
48220 "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
48221 "optional" : 1,
48222 "type" : "string"
48223 },
48224 "id" : {
48225 "description" : "The id of a newly added TFA entry.",
48226 "type" : "string"
48227 },
48228 "recovery" : {
48229 "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
48230 "items" : {
48231 "description" : "A recovery entry.",
48232 "type" : "string"
48233 },
48234 "optional" : 1,
48235 "type" : "array"
48236 }
48237 },
48238 "type" : "object"
48239 }
48240 }
48241 },
48242 "leaf" : 0,
48243 "path" : "/access/tfa/{userid}",
48244 "text" : "{userid}"
48245 }
48246 ],
48247 "info" : {
48248 "GET" : {
48249 "allowtoken" : 0,
48250 "description" : "List TFA configurations of users.",
48251 "method" : "GET",
48252 "name" : "list_tfa",
48253 "parameters" : {
48254 "additionalProperties" : 0
48255 },
48256 "permissions" : {
48257 "description" : "Returns all or just the logged-in user, depending on privileges.",
48258 "user" : "all"
48259 },
48260 "protected" : 1,
48261 "returns" : {
48262 "description" : "The list tuples of user and TFA entries.",
48263 "items" : {
48264 "properties" : {
48265 "entries" : {
48266 "items" : {
48267 "description" : "TFA Entry.",
48268 "properties" : {
48269 "created" : {
48270 "description" : "Creation time of this entry as unix epoch.",
48271 "type" : "integer"
48272 },
48273 "description" : {
48274 "description" : "User chosen description for this entry.",
48275 "type" : "string"
48276 },
48277 "enable" : {
48278 "default" : 1,
48279 "description" : "Whether this TFA entry is currently enabled.",
48280 "optional" : 1,
48281 "type" : "boolean"
48282 },
48283 "id" : {
48284 "description" : "The id used to reference this entry.",
48285 "type" : "string"
48286 },
48287 "type" : {
48288 "description" : "TFA Entry Type.",
48289 "enum" : [
48290 "totp",
48291 "u2f",
48292 "webauthn",
48293 "recovery",
48294 "yubico"
48295 ],
48296 "type" : "string"
48297 }
48298 },
48299 "type" : "object"
48300 },
48301 "type" : "array"
48302 },
48303 "userid" : {
48304 "description" : "User this entry belongs to.",
48305 "type" : "string"
48306 }
48307 },
48308 "type" : "object"
48309 },
48310 "type" : "array"
48311 }
48312 },
48313 "POST" : {
48314 "allowtoken" : 0,
48315 "description" : "Finish a u2f challenge.",
48316 "method" : "POST",
48317 "name" : "verify_tfa",
48318 "parameters" : {
48319 "additionalProperties" : 0,
48320 "properties" : {
48321 "response" : {
48322 "description" : "The response to the current authentication challenge.",
48323 "type" : "string",
48324 "typetext" : "<string>"
48325 }
48326 }
48327 },
48328 "permissions" : {
48329 "user" : "all"
48330 },
48331 "protected" : 1,
48332 "returns" : {
48333 "properties" : {
48334 "ticket" : {
48335 "type" : "string"
48336 }
48337 },
48338 "type" : "object"
48339 }
48340 }
48341 },
48342 "leaf" : 0,
48343 "path" : "/access/tfa",
48344 "text" : "tfa"
48345 },
56122987 48346 {
56122987 48347 "info" : {
44660702 48348 "GET" : {
e9cd3bd4 48349 "allowtoken" : 1,
2489d6df 48350 "description" : "Dummy. Useful for formatters which want to provide a login page.",
44660702
DM
48351 "method" : "GET",
48352 "name" : "get_ticket",
48353 "parameters" : {
48354 "additionalProperties" : 0
48355 },
48356 "permissions" : {
48357 "user" : "world"
48358 },
48359 "returns" : {
48360 "type" : "null"
48361 }
48362 },
56122987 48363 "POST" : {
e9cd3bd4 48364 "allowtoken" : 0,
44660702 48365 "description" : "Create or verify authentication ticket.",
56122987 48366 "method" : "POST",
44660702
DM
48367 "name" : "create_ticket",
48368 "parameters" : {
48369 "additionalProperties" : 0,
56122987 48370 "properties" : {
5370fa8c
TL
48371 "new-format" : {
48372 "default" : 0,
48373 "description" : "With webauthn the format of half-authenticated tickts changed. New clients should pass 1 here and not worry about the old format. The old format is deprecated and will be retired with PVE-8.0",
48374 "optional" : 1,
48375 "type" : "boolean",
48376 "typetext" : "<boolean>"
48377 },
44660702
DM
48378 "otp" : {
48379 "description" : "One-time password for Two-factor authentication.",
7aacca6f 48380 "optional" : 1,
013dc89f
DM
48381 "type" : "string",
48382 "typetext" : "<string>"
56122987 48383 },
7aacca6f
DM
48384 "password" : {
48385 "description" : "The secret password. This can also be a valid ticket.",
013dc89f
DM
48386 "type" : "string",
48387 "typetext" : "<string>"
7aacca6f 48388 },
44660702
DM
48389 "path" : {
48390 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
7aacca6f 48391 "maxLength" : 64,
56122987 48392 "optional" : 1,
56122987 48393 "requires" : "privs",
013dc89f
DM
48394 "type" : "string",
48395 "typetext" : "<string>"
44660702
DM
48396 },
48397 "privs" : {
7aacca6f 48398 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
44660702
DM
48399 "format" : "pve-priv-list",
48400 "maxLength" : 64,
56122987 48401 "optional" : 1,
44660702 48402 "requires" : "path",
013dc89f
DM
48403 "type" : "string",
48404 "typetext" : "<string>"
56122987
DM
48405 },
48406 "realm" : {
56122987 48407 "description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
44660702 48408 "format" : "pve-realm",
7aacca6f 48409 "maxLength" : 32,
44660702 48410 "optional" : 1,
013dc89f
DM
48411 "type" : "string",
48412 "typetext" : "<string>"
56122987 48413 },
5370fa8c
TL
48414 "tfa-challenge" : {
48415 "description" : "The signed TFA challenge string the user wants to respond to.",
48416 "optional" : 1,
48417 "type" : "string",
48418 "typetext" : "<string>"
48419 },
56122987
DM
48420 "username" : {
48421 "description" : "User name",
44660702 48422 "maxLength" : 64,
013dc89f
DM
48423 "type" : "string",
48424 "typetext" : "<string>"
56122987 48425 }
44660702 48426 }
7aacca6f 48427 },
56122987 48428 "permissions" : {
44660702 48429 "description" : "You need to pass valid credientials.",
56122987
DM
48430 "user" : "world"
48431 },
44660702 48432 "protected" : 1,
7aacca6f 48433 "returns" : {
56122987 48434 "properties" : {
44660702
DM
48435 "CSRFPreventionToken" : {
48436 "optional" : 1,
48437 "type" : "string"
56122987 48438 },
e2d681b3
TL
48439 "clustername" : {
48440 "optional" : 1,
48441 "type" : "string"
48442 },
44660702
DM
48443 "ticket" : {
48444 "optional" : 1,
48445 "type" : "string"
48446 },
48447 "username" : {
56122987
DM
48448 "type" : "string"
48449 }
48450 },
44660702 48451 "type" : "object"
7aacca6f 48452 }
7aacca6f
DM
48453 }
48454 },
44660702
DM
48455 "leaf" : 1,
48456 "path" : "/access/ticket",
48457 "text" : "ticket"
7aacca6f 48458 },
56122987 48459 {
56122987 48460 "info" : {
7aacca6f 48461 "PUT" : {
e9cd3bd4 48462 "allowtoken" : 0,
44660702 48463 "description" : "Change user password.",
7aacca6f 48464 "method" : "PUT",
e2d681b3 48465 "name" : "change_password",
56122987
DM
48466 "parameters" : {
48467 "additionalProperties" : 0,
48468 "properties" : {
44660702
DM
48469 "password" : {
48470 "description" : "The new password.",
48471 "maxLength" : 64,
48472 "minLength" : 5,
013dc89f
DM
48473 "type" : "string",
48474 "typetext" : "<string>"
7aacca6f 48475 },
44660702
DM
48476 "userid" : {
48477 "description" : "User ID",
48478 "format" : "pve-userid",
48479 "maxLength" : 64,
013dc89f
DM
48480 "type" : "string",
48481 "typetext" : "<string>"
56122987 48482 }
7aacca6f 48483 }
56122987
DM
48484 },
48485 "permissions" : {
48486 "check" : [
44660702 48487 "or",
56122987 48488 [
44660702
DM
48489 "userid-param",
48490 "self"
48491 ],
48492 [
48493 "and",
48494 [
48495 "userid-param",
48496 "Realm.AllocateUser"
48497 ],
48498 [
48499 "userid-group",
48500 [
48501 "User.Modify"
48502 ]
48503 ]
56122987 48504 ]
7aacca6f 48505 ],
44660702 48506 "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 48507 },
44660702 48508 "protected" : 1,
7aacca6f
DM
48509 "returns" : {
48510 "type" : "null"
44660702
DM
48511 }
48512 }
48513 },
48514 "leaf" : 1,
48515 "path" : "/access/password",
48516 "text" : "password"
95895385 48517 },
e9cd3bd4
TL
48518 {
48519 "info" : {
48520 "GET" : {
48521 "allowtoken" : 1,
48522 "description" : "Retrieve effective permissions of given user/token.",
48523 "method" : "GET",
48524 "name" : "permissions",
48525 "parameters" : {
48526 "additionalProperties" : 0,
48527 "properties" : {
48528 "path" : {
48529 "description" : "Only dump this specific path, not the whole tree.",
48530 "optional" : 1,
48531 "type" : "string",
48532 "typetext" : "<string>"
48533 },
48534 "userid" : {
48535 "description" : "User ID or full API token ID",
48536 "optional" : 1,
48537 "pattern" : "(?^:^(?^:[^\\s:/]+)\\@(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+))?$)",
48538 "type" : "string"
48539 }
48540 }
48541 },
48542 "permissions" : {
48543 "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.",
48544 "user" : "all"
48545 },
48546 "returns" : {
48547 "description" : "Map of \"path\" => (Map of \"privilege\" => \"propagate boolean\").",
48548 "type" : "object"
48549 }
48550 }
48551 },
48552 "leaf" : 1,
48553 "path" : "/access/permissions",
48554 "text" : "permissions"
44660702
DM
48555 }
48556 ],
48557 "info" : {
48558 "GET" : {
e9cd3bd4 48559 "allowtoken" : 1,
44660702
DM
48560 "description" : "Directory index.",
48561 "method" : "GET",
48562 "name" : "index",
48563 "parameters" : {
48564 "additionalProperties" : 0
48565 },
48566 "permissions" : {
48567 "user" : "all"
48568 },
48569 "returns" : {
48570 "items" : {
48571 "properties" : {
48572 "subdir" : {
48573 "type" : "string"
48574 }
7aacca6f 48575 },
44660702
DM
48576 "type" : "object"
48577 },
48578 "links" : [
48579 {
48580 "href" : "{subdir}",
48581 "rel" : "child"
48582 }
48583 ],
48584 "type" : "array"
48585 }
48586 }
48587 },
48588 "leaf" : 0,
48589 "path" : "/access",
48590 "text" : "access"
48591 },
48592 {
48593 "children" : [
48594 {
48595 "info" : {
48596 "DELETE" : {
e9cd3bd4 48597 "allowtoken" : 1,
7aacca6f 48598 "description" : "Delete pool.",
44660702
DM
48599 "method" : "DELETE",
48600 "name" : "delete_pool",
7aacca6f
DM
48601 "parameters" : {
48602 "additionalProperties" : 0,
48603 "properties" : {
48604 "poolid" : {
48605 "format" : "pve-poolid",
013dc89f
DM
48606 "type" : "string",
48607 "typetext" : "<string>"
7aacca6f
DM
48608 }
48609 }
48610 },
56122987
DM
48611 "permissions" : {
48612 "check" : [
48613 "perm",
48614 "/pool/{poolid}",
48615 [
48616 "Pool.Allocate"
48617 ]
44660702
DM
48618 ],
48619 "description" : "You can only delete empty pools (no members)."
48620 },
48621 "protected" : 1,
48622 "returns" : {
48623 "type" : "null"
7aacca6f
DM
48624 }
48625 },
48626 "GET" : {
e9cd3bd4 48627 "allowtoken" : 1,
7aacca6f 48628 "description" : "Get pool configuration.",
44660702 48629 "method" : "GET",
7aacca6f 48630 "name" : "read_pool",
56122987 48631 "parameters" : {
44660702 48632 "additionalProperties" : 0,
56122987
DM
48633 "properties" : {
48634 "poolid" : {
44660702 48635 "format" : "pve-poolid",
013dc89f
DM
48636 "type" : "string",
48637 "typetext" : "<string>"
c30bb419
TL
48638 },
48639 "type" : {
48640 "enum" : [
48641 "qemu",
48642 "lxc",
48643 "storage"
48644 ],
48645 "optional" : 1,
48646 "type" : "string"
56122987 48647 }
44660702 48648 }
56122987 48649 },
56122987 48650 "permissions" : {
56122987
DM
48651 "check" : [
48652 "perm",
48653 "/pool/{poolid}",
48654 [
0695fdaf 48655 "Pool.Audit"
56122987
DM
48656 ]
48657 ]
48658 },
7aacca6f 48659 "returns" : {
44660702 48660 "additionalProperties" : 0,
56122987 48661 "properties" : {
44660702
DM
48662 "comment" : {
48663 "optional" : 1,
48664 "type" : "string"
48665 },
7aacca6f 48666 "members" : {
7aacca6f
DM
48667 "items" : {
48668 "additionalProperties" : 1,
7aacca6f 48669 "properties" : {
7aacca6f
DM
48670 "id" : {
48671 "type" : "string"
48672 },
48673 "node" : {
48674 "type" : "string"
48675 },
44660702
DM
48676 "storage" : {
48677 "optional" : 1,
48678 "type" : "string"
48679 },
7aacca6f 48680 "type" : {
7aacca6f
DM
48681 "enum" : [
48682 "qemu",
48683 "lxc",
48684 "openvz",
48685 "storage"
44660702
DM
48686 ],
48687 "type" : "string"
48688 },
48689 "vmid" : {
48690 "optional" : 1,
48691 "type" : "integer"
7aacca6f 48692 }
44660702
DM
48693 },
48694 "type" : "object"
48695 },
48696 "type" : "array"
48697 }
48698 },
48699 "type" : "object"
48700 }
48701 },
48702 "PUT" : {
e9cd3bd4 48703 "allowtoken" : 1,
44660702
DM
48704 "description" : "Update pool data.",
48705 "method" : "PUT",
48706 "name" : "update_pool",
48707 "parameters" : {
48708 "additionalProperties" : 0,
48709 "properties" : {
56122987
DM
48710 "comment" : {
48711 "optional" : 1,
013dc89f
DM
48712 "type" : "string",
48713 "typetext" : "<string>"
44660702
DM
48714 },
48715 "delete" : {
48716 "description" : "Remove vms/storage (instead of adding it).",
48717 "optional" : 1,
013dc89f
DM
48718 "type" : "boolean",
48719 "typetext" : "<boolean>"
44660702
DM
48720 },
48721 "poolid" : {
48722 "format" : "pve-poolid",
013dc89f
DM
48723 "type" : "string",
48724 "typetext" : "<string>"
44660702
DM
48725 },
48726 "storage" : {
48727 "description" : "List of storage IDs.",
48728 "format" : "pve-storage-id-list",
48729 "optional" : 1,
013dc89f
DM
48730 "type" : "string",
48731 "typetext" : "<string>"
44660702
DM
48732 },
48733 "vms" : {
48734 "description" : "List of virtual machines.",
48735 "format" : "pve-vmid-list",
48736 "optional" : 1,
013dc89f
DM
48737 "type" : "string",
48738 "typetext" : "<string>"
56122987 48739 }
44660702
DM
48740 }
48741 },
48742 "permissions" : {
48743 "check" : [
48744 "perm",
48745 "/pool/{poolid}",
48746 [
48747 "Pool.Allocate"
48748 ]
48749 ],
48750 "description" : "You also need the right to modify permissions on any object you add/delete."
48751 },
48752 "protected" : 1,
48753 "returns" : {
48754 "type" : "null"
56122987
DM
48755 }
48756 }
48757 },
44660702
DM
48758 "leaf" : 1,
48759 "path" : "/pools/{poolid}",
7aacca6f 48760 "text" : "{poolid}"
56122987 48761 }
7aacca6f 48762 ],
56122987
DM
48763 "info" : {
48764 "GET" : {
e9cd3bd4 48765 "allowtoken" : 1,
44660702
DM
48766 "description" : "Pool index.",
48767 "method" : "GET",
48768 "name" : "index",
48769 "parameters" : {
48770 "additionalProperties" : 0
48771 },
48772 "permissions" : {
0695fdaf 48773 "description" : "List all pools where you have Pool.Audit permissions on /pool/<pool>.",
44660702
DM
48774 "user" : "all"
48775 },
56122987 48776 "returns" : {
44660702
DM
48777 "items" : {
48778 "properties" : {
48779 "poolid" : {
48780 "type" : "string"
48781 }
56122987 48782 },
44660702
DM
48783 "type" : "object"
48784 },
48785 "links" : [
48786 {
48787 "href" : "{poolid}",
48788 "rel" : "child"
48789 }
48790 ],
48791 "type" : "array"
48792 }
48793 },
48794 "POST" : {
e9cd3bd4 48795 "allowtoken" : 1,
44660702
DM
48796 "description" : "Create new pool.",
48797 "method" : "POST",
48798 "name" : "create_pool",
48799 "parameters" : {
48800 "additionalProperties" : 0,
48801 "properties" : {
48802 "comment" : {
48803 "optional" : 1,
013dc89f
DM
48804 "type" : "string",
48805 "typetext" : "<string>"
7aacca6f 48806 },
44660702
DM
48807 "poolid" : {
48808 "format" : "pve-poolid",
013dc89f
DM
48809 "type" : "string",
48810 "typetext" : "<string>"
56122987
DM
48811 }
48812 }
48813 },
56122987 48814 "permissions" : {
44660702
DM
48815 "check" : [
48816 "perm",
48817 "/pool/{poolid}",
48818 [
48819 "Pool.Allocate"
48820 ]
48821 ]
56122987 48822 },
44660702
DM
48823 "protected" : 1,
48824 "returns" : {
48825 "type" : "null"
48826 }
48827 }
48828 },
48829 "leaf" : 0,
48830 "path" : "/pools",
48831 "text" : "pools"
48832 },
48833 {
48834 "info" : {
48835 "GET" : {
e9cd3bd4 48836 "allowtoken" : 1,
5370fa8c 48837 "description" : "API version details, including some parts of the global datacenter config.",
44660702
DM
48838 "method" : "GET",
48839 "name" : "version",
7aacca6f
DM
48840 "parameters" : {
48841 "additionalProperties" : 0
48842 },
44660702
DM
48843 "permissions" : {
48844 "user" : "all"
48845 },
48846 "returns" : {
48847 "properties" : {
5370fa8c
TL
48848 "console" : {
48849 "description" : "The default console viewer to use.",
48850 "enum" : [
48851 "applet",
48852 "vv",
48853 "html5",
48854 "xtermjs"
48855 ],
48856 "optional" : 1,
48857 "type" : "string"
48858 },
44660702 48859 "release" : {
5370fa8c 48860 "description" : "The current Proxmox VE point release in `x.y` format.",
44660702
DM
48861 "type" : "string"
48862 },
48863 "repoid" : {
5370fa8c 48864 "description" : "The short git revision from which this version was build.",
44660702
DM
48865 "type" : "string"
48866 },
48867 "version" : {
5370fa8c 48868 "description" : "The full pve-manager package version of this node.",
44660702
DM
48869 "type" : "string"
48870 }
48871 },
48872 "type" : "object"
48873 }
56122987
DM
48874 }
48875 },
44660702
DM
48876 "leaf" : 1,
48877 "path" : "/version",
56122987
DM
48878 "text" : "version"
48879 }
48880]
48881;
48882