]> git.proxmox.com Git - pve-docs.git/blame - api-viewer/apidata.js
update static/schema information
[pve-docs.git] / api-viewer / apidata.js
CommitLineData
0695fdaf 1const apiSchema = [
56122987 2 {
56122987 3 "children" : [
5d9c884c
DM
4 {
5 "children" : [
6 {
7 "info" : {
8 "DELETE" : {
e9cd3bd4 9 "allowtoken" : 1,
5d9c884c
DM
10 "description" : "Mark replication job for removal.",
11 "method" : "DELETE",
12 "name" : "delete",
13 "parameters" : {
14 "additionalProperties" : 0,
15 "properties" : {
16 "force" : {
17 "default" : 0,
18 "description" : "Will remove the jobconfig entry, but will not cleanup.",
19 "optional" : 1,
20 "type" : "boolean",
21 "typetext" : "<boolean>"
22 },
23 "id" : {
24 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
25 "format" : "pve-replication-job-id",
26 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
27 "type" : "string"
28 },
29 "keep" : {
30 "default" : 0,
31 "description" : "Keep replicated data at target (do not remove).",
32 "optional" : 1,
33 "type" : "boolean",
34 "typetext" : "<boolean>"
35 }
36 }
37 },
38 "permissions" : {
39 "check" : [
40 "perm",
41 "/storage",
42 [
43 "Datastore.Allocate"
44 ]
45 ]
46 },
47 "protected" : 1,
48 "returns" : {
49 "type" : "null"
50 }
51 },
52 "GET" : {
e9cd3bd4 53 "allowtoken" : 1,
5d9c884c
DM
54 "description" : "Read replication job configuration.",
55 "method" : "GET",
56 "name" : "read",
57 "parameters" : {
58 "additionalProperties" : 0,
59 "properties" : {
60 "id" : {
61 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
62 "format" : "pve-replication-job-id",
63 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
64 "type" : "string"
65 }
66 }
67 },
68 "permissions" : {
69 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
70 "user" : "all"
71 },
72 "returns" : {
73 "type" : "object"
74 }
75 },
76 "PUT" : {
e9cd3bd4 77 "allowtoken" : 1,
5d9c884c
DM
78 "description" : "Update replication job configuration.",
79 "method" : "PUT",
80 "name" : "update",
81 "parameters" : {
82 "additionalProperties" : 0,
83 "properties" : {
84 "comment" : {
85 "description" : "Description.",
86 "maxLength" : 4096,
87 "optional" : 1,
88 "type" : "string",
89 "typetext" : "<string>"
90 },
91 "delete" : {
92 "description" : "A list of settings you want to delete.",
93 "format" : "pve-configid-list",
94 "maxLength" : 4096,
95 "optional" : 1,
96 "type" : "string",
97 "typetext" : "<string>"
98 },
99 "digest" : {
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
DM
3694 },
3695 "pigz" : {
3696 "default" : 0,
3697 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
3698 "optional" : 1,
013dc89f
DM
3699 "type" : "integer",
3700 "typetext" : "<integer>"
44660702 3701 },
9226ccbc
TL
3702 "pool" : {
3703 "description" : "Backup all known guest systems included in the specified pool.",
3704 "optional" : 1,
3705 "type" : "string",
3706 "typetext" : "<string>"
3707 },
739d4d64 3708 "prune-backups" : {
0695fdaf 3709 "default" : "keep-all=1",
739d4d64
TL
3710 "description" : "Use these retention options instead of those from the storage configuration.",
3711 "format" : "prune-backups",
3712 "optional" : 1,
3713 "type" : "string",
4772952b 3714 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 3715 },
44660702
DM
3716 "quiet" : {
3717 "default" : 0,
3718 "description" : "Be quiet.",
3719 "optional" : 1,
013dc89f
DM
3720 "type" : "boolean",
3721 "typetext" : "<boolean>"
44660702
DM
3722 },
3723 "remove" : {
3724 "default" : 1,
0695fdaf 3725 "description" : "Prune older backups according to 'prune-backups'.",
44660702 3726 "optional" : 1,
013dc89f
DM
3727 "type" : "boolean",
3728 "typetext" : "<boolean>"
44660702 3729 },
5370fa8c
TL
3730 "schedule" : {
3731 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
3732 "format" : "pve-calendar-event",
3733 "maxLength" : 128,
3734 "optional" : 1,
3735 "type" : "string",
3736 "typetext" : "<string>"
3737 },
44660702
DM
3738 "script" : {
3739 "description" : "Use specified hook script.",
3740 "optional" : 1,
013dc89f
DM
3741 "type" : "string",
3742 "typetext" : "<string>"
44660702 3743 },
44660702
DM
3744 "starttime" : {
3745 "description" : "Job Start time.",
5370fa8c 3746 "optional" : 1,
44660702 3747 "pattern" : "\\d{1,2}:\\d{1,2}",
56122987 3748 "type" : "string",
44660702 3749 "typetext" : "HH:MM"
7aacca6f 3750 },
44660702
DM
3751 "stdexcludes" : {
3752 "default" : 1,
3753 "description" : "Exclude temporary files and logs.",
3754 "optional" : 1,
013dc89f
DM
3755 "type" : "boolean",
3756 "typetext" : "<boolean>"
44660702
DM
3757 },
3758 "stop" : {
3759 "default" : 0,
1e3f8156 3760 "description" : "Stop running backup jobs on this host.",
44660702 3761 "optional" : 1,
013dc89f
DM
3762 "type" : "boolean",
3763 "typetext" : "<boolean>"
44660702
DM
3764 },
3765 "stopwait" : {
3766 "default" : 10,
3767 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
3768 "minimum" : 0,
3769 "optional" : 1,
4bd7df8b 3770 "type" : "integer",
013dc89f 3771 "typetext" : "<integer> (0 - N)"
44660702
DM
3772 },
3773 "storage" : {
3774 "description" : "Store resulting file to this storage.",
3775 "format" : "pve-storage-id",
3776 "optional" : 1,
013dc89f
DM
3777 "type" : "string",
3778 "typetext" : "<string>"
56122987 3779 },
44660702
DM
3780 "tmpdir" : {
3781 "description" : "Store temporary files to specified directory.",
3782 "optional" : 1,
013dc89f
DM
3783 "type" : "string",
3784 "typetext" : "<string>"
44660702
DM
3785 },
3786 "vmid" : {
3787 "description" : "The ID of the guest system you want to backup.",
3788 "format" : "pve-vmid-list",
3789 "optional" : 1,
013dc89f
DM
3790 "type" : "string",
3791 "typetext" : "<string>"
c5aa7e14
TL
3792 },
3793 "zstd" : {
3794 "default" : 1,
3795 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
3796 "optional" : 1,
3797 "type" : "integer",
3798 "typetext" : "<integer>"
56122987 3799 }
44660702 3800 }
56122987
DM
3801 },
3802 "permissions" : {
3803 "check" : [
3804 "perm",
3805 "/",
3806 [
44660702 3807 "Sys.Modify"
56122987 3808 ]
04d22a9f
TL
3809 ],
3810 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
56122987 3811 },
44660702
DM
3812 "protected" : 1,
3813 "returns" : {
3814 "type" : "null"
7aacca6f 3815 }
56122987
DM
3816 }
3817 },
04d22a9f 3818 "leaf" : 0,
44660702
DM
3819 "path" : "/cluster/backup/{id}",
3820 "text" : "{id}"
3821 }
3822 ],
3823 "info" : {
3824 "GET" : {
e9cd3bd4 3825 "allowtoken" : 1,
44660702
DM
3826 "description" : "List vzdump backup schedule.",
3827 "method" : "GET",
3828 "name" : "index",
3829 "parameters" : {
3830 "additionalProperties" : 0
3831 },
3832 "permissions" : {
3833 "check" : [
3834 "perm",
3835 "/",
3836 [
3837 "Sys.Audit"
3838 ]
3839 ]
3840 },
3841 "returns" : {
3842 "items" : {
3843 "properties" : {
3844 "id" : {
1c532546
TL
3845 "description" : "The job ID.",
3846 "maxLength" : 50,
44660702
DM
3847 "type" : "string"
3848 }
3849 },
3850 "type" : "object"
3851 },
3852 "links" : [
3853 {
3854 "href" : "{id}",
3855 "rel" : "child"
3856 }
3857 ],
3858 "type" : "array"
3859 }
3860 },
3861 "POST" : {
e9cd3bd4 3862 "allowtoken" : 1,
44660702
DM
3863 "description" : "Create new vzdump backup job.",
3864 "method" : "POST",
3865 "name" : "create_job",
3866 "parameters" : {
3867 "additionalProperties" : 0,
3868 "properties" : {
3869 "all" : {
3870 "default" : 0,
3871 "description" : "Backup all known guest systems on this host.",
3872 "optional" : 1,
013dc89f
DM
3873 "type" : "boolean",
3874 "typetext" : "<boolean>"
44660702
DM
3875 },
3876 "bwlimit" : {
3877 "default" : 0,
3878 "description" : "Limit I/O bandwidth (KBytes per second).",
3879 "minimum" : 0,
3880 "optional" : 1,
4bd7df8b 3881 "type" : "integer",
013dc89f 3882 "typetext" : "<integer> (0 - N)"
44660702 3883 },
5370fa8c
TL
3884 "comment" : {
3885 "description" : "Description for the Job.",
3886 "maxLength" : 512,
3887 "optional" : 1,
3888 "type" : "string",
3889 "typetext" : "<string>"
3890 },
44660702
DM
3891 "compress" : {
3892 "default" : "0",
3893 "description" : "Compress dump file.",
3894 "enum" : [
3895 "0",
3896 "1",
3897 "gzip",
c5aa7e14
TL
3898 "lzo",
3899 "zstd"
44660702
DM
3900 ],
3901 "optional" : 1,
3902 "type" : "string"
3903 },
3904 "dow" : {
3905 "default" : "mon,tue,wed,thu,fri,sat,sun",
3906 "description" : "Day of week selection.",
3907 "format" : "pve-day-of-week-list",
3908 "optional" : 1,
5370fa8c 3909 "requires" : "starttime",
013dc89f
DM
3910 "type" : "string",
3911 "typetext" : "<string>"
44660702
DM
3912 },
3913 "dumpdir" : {
3914 "description" : "Store resulting files to specified directory.",
3915 "optional" : 1,
013dc89f
DM
3916 "type" : "string",
3917 "typetext" : "<string>"
44660702
DM
3918 },
3919 "enabled" : {
3920 "default" : "1",
3921 "description" : "Enable or disable the job.",
3922 "optional" : 1,
013dc89f
DM
3923 "type" : "boolean",
3924 "typetext" : "<boolean>"
44660702
DM
3925 },
3926 "exclude" : {
3927 "description" : "Exclude specified guest systems (assumes --all)",
3928 "format" : "pve-vmid-list",
3929 "optional" : 1,
013dc89f
DM
3930 "type" : "string",
3931 "typetext" : "<string>"
44660702
DM
3932 },
3933 "exclude-path" : {
d2656385 3934 "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
3935 "format" : "string-alist",
3936 "optional" : 1,
013dc89f
DM
3937 "type" : "string",
3938 "typetext" : "<string>"
44660702 3939 },
5370fa8c
TL
3940 "id" : {
3941 "description" : "Job ID (will be autogenerated).",
3942 "format" : "pve-configid",
3943 "optional" : 1,
3944 "type" : "string",
3945 "typetext" : "<string>"
3946 },
44660702
DM
3947 "ionice" : {
3948 "default" : 7,
3949 "description" : "Set CFQ ionice priority.",
3950 "maximum" : 8,
3951 "minimum" : 0,
3952 "optional" : 1,
4bd7df8b 3953 "type" : "integer",
013dc89f 3954 "typetext" : "<integer> (0 - 8)"
44660702
DM
3955 },
3956 "lockwait" : {
3957 "default" : 180,
3958 "description" : "Maximal time to wait for the global lock (minutes).",
3959 "minimum" : 0,
3960 "optional" : 1,
4bd7df8b 3961 "type" : "integer",
013dc89f 3962 "typetext" : "<integer> (0 - N)"
44660702
DM
3963 },
3964 "mailnotification" : {
3965 "default" : "always",
3966 "description" : "Specify when to send an email",
3967 "enum" : [
3968 "always",
3969 "failure"
3970 ],
3971 "optional" : 1,
3972 "type" : "string"
3973 },
3974 "mailto" : {
d2656385
TL
3975 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
3976 "format" : "email-or-username-list",
44660702 3977 "optional" : 1,
013dc89f
DM
3978 "type" : "string",
3979 "typetext" : "<string>"
44660702
DM
3980 },
3981 "maxfiles" : {
0695fdaf 3982 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
3983 "minimum" : 1,
3984 "optional" : 1,
4bd7df8b 3985 "type" : "integer",
013dc89f 3986 "typetext" : "<integer> (1 - N)"
44660702
DM
3987 },
3988 "mode" : {
3989 "default" : "snapshot",
3990 "description" : "Backup mode.",
3991 "enum" : [
3992 "snapshot",
3993 "suspend",
3994 "stop"
3995 ],
3996 "optional" : 1,
3997 "type" : "string"
3998 },
3999 "node" : {
4000 "description" : "Only run if executed on this node.",
4001 "format" : "pve-node",
4002 "optional" : 1,
013dc89f
DM
4003 "type" : "string",
4004 "typetext" : "<string>"
44660702
DM
4005 },
4006 "pigz" : {
4007 "default" : 0,
4008 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
4009 "optional" : 1,
013dc89f
DM
4010 "type" : "integer",
4011 "typetext" : "<integer>"
44660702 4012 },
9226ccbc
TL
4013 "pool" : {
4014 "description" : "Backup all known guest systems included in the specified pool.",
4015 "optional" : 1,
4016 "type" : "string",
4017 "typetext" : "<string>"
4018 },
739d4d64 4019 "prune-backups" : {
0695fdaf 4020 "default" : "keep-all=1",
739d4d64
TL
4021 "description" : "Use these retention options instead of those from the storage configuration.",
4022 "format" : "prune-backups",
4023 "optional" : 1,
4024 "type" : "string",
4772952b 4025 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 4026 },
44660702
DM
4027 "quiet" : {
4028 "default" : 0,
4029 "description" : "Be quiet.",
4030 "optional" : 1,
013dc89f
DM
4031 "type" : "boolean",
4032 "typetext" : "<boolean>"
44660702
DM
4033 },
4034 "remove" : {
4035 "default" : 1,
0695fdaf 4036 "description" : "Prune older backups according to 'prune-backups'.",
44660702 4037 "optional" : 1,
013dc89f
DM
4038 "type" : "boolean",
4039 "typetext" : "<boolean>"
44660702 4040 },
5370fa8c
TL
4041 "schedule" : {
4042 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
4043 "format" : "pve-calendar-event",
4044 "maxLength" : 128,
4045 "optional" : 1,
4046 "type" : "string",
4047 "typetext" : "<string>"
4048 },
44660702
DM
4049 "script" : {
4050 "description" : "Use specified hook script.",
4051 "optional" : 1,
013dc89f
DM
4052 "type" : "string",
4053 "typetext" : "<string>"
44660702 4054 },
44660702
DM
4055 "starttime" : {
4056 "description" : "Job Start time.",
5370fa8c 4057 "optional" : 1,
44660702
DM
4058 "pattern" : "\\d{1,2}:\\d{1,2}",
4059 "type" : "string",
4060 "typetext" : "HH:MM"
4061 },
4062 "stdexcludes" : {
4063 "default" : 1,
4064 "description" : "Exclude temporary files and logs.",
4065 "optional" : 1,
013dc89f
DM
4066 "type" : "boolean",
4067 "typetext" : "<boolean>"
44660702
DM
4068 },
4069 "stop" : {
4070 "default" : 0,
1e3f8156 4071 "description" : "Stop running backup jobs on this host.",
44660702 4072 "optional" : 1,
013dc89f
DM
4073 "type" : "boolean",
4074 "typetext" : "<boolean>"
44660702
DM
4075 },
4076 "stopwait" : {
4077 "default" : 10,
4078 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
4079 "minimum" : 0,
4080 "optional" : 1,
4bd7df8b 4081 "type" : "integer",
013dc89f 4082 "typetext" : "<integer> (0 - N)"
44660702
DM
4083 },
4084 "storage" : {
4085 "description" : "Store resulting file to this storage.",
4086 "format" : "pve-storage-id",
4087 "optional" : 1,
013dc89f
DM
4088 "type" : "string",
4089 "typetext" : "<string>"
44660702
DM
4090 },
4091 "tmpdir" : {
4092 "description" : "Store temporary files to specified directory.",
4093 "optional" : 1,
013dc89f
DM
4094 "type" : "string",
4095 "typetext" : "<string>"
44660702
DM
4096 },
4097 "vmid" : {
4098 "description" : "The ID of the guest system you want to backup.",
4099 "format" : "pve-vmid-list",
4100 "optional" : 1,
013dc89f
DM
4101 "type" : "string",
4102 "typetext" : "<string>"
c5aa7e14
TL
4103 },
4104 "zstd" : {
4105 "default" : 1,
4106 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
4107 "optional" : 1,
4108 "type" : "integer",
4109 "typetext" : "<integer>"
44660702
DM
4110 }
4111 }
4112 },
4113 "permissions" : {
4114 "check" : [
4115 "perm",
4116 "/",
4117 [
4118 "Sys.Modify"
4119 ]
de0983cb
DM
4120 ],
4121 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
44660702
DM
4122 },
4123 "protected" : 1,
4124 "returns" : {
4125 "type" : "null"
4126 }
4127 }
4128 },
4129 "leaf" : 0,
4130 "path" : "/cluster/backup",
4131 "text" : "backup"
4132 },
04d22a9f
TL
4133 {
4134 "children" : [
4135 {
4136 "info" : {
4137 "GET" : {
4138 "allowtoken" : 1,
4139 "description" : "Shows all guests which are not covered by any backup job.",
4140 "method" : "GET",
4141 "name" : "get_guests_not_in_backup",
4142 "parameters" : {
4143 "additionalProperties" : 0
4144 },
4145 "permissions" : {
4146 "check" : [
4147 "perm",
4148 "/",
4149 [
4150 "Sys.Audit"
4151 ]
4152 ]
4153 },
4154 "protected" : 1,
4155 "returns" : {
4156 "description" : "Contains the guest objects.",
4157 "items" : {
4158 "properties" : {
4159 "name" : {
4160 "description" : "Name of the guest",
4161 "optional" : 1,
4162 "type" : "string"
4163 },
4164 "type" : {
4165 "description" : "Type of the guest.",
4166 "enum" : [
4167 "qemu",
4168 "lxc"
4169 ],
4170 "type" : "string"
4171 },
4172 "vmid" : {
4173 "description" : "VMID of the guest.",
4174 "type" : "integer"
4175 }
4176 },
4177 "type" : "object"
4178 },
4179 "type" : "array"
4180 }
4181 }
4182 },
4183 "leaf" : 1,
34f3e481
TL
4184 "path" : "/cluster/backup-info/not-backed-up",
4185 "text" : "not-backed-up"
04d22a9f
TL
4186 }
4187 ],
4188 "info" : {
4189 "GET" : {
4190 "allowtoken" : 1,
34f3e481 4191 "description" : "Index for backup info related endpoints",
04d22a9f 4192 "method" : "GET",
34f3e481 4193 "name" : "index",
04d22a9f
TL
4194 "parameters" : {
4195 "additionalProperties" : 0
4196 },
04d22a9f 4197 "returns" : {
34f3e481
TL
4198 "description" : "Directory index.",
4199 "items" : {
4200 "properties" : {
4201 "subdir" : {
4202 "description" : "API sub-directory endpoint",
4203 "type" : "string"
4204 }
4205 },
4206 "type" : "object"
4207 },
4208 "links" : [
4209 {
4210 "href" : "{subdir}",
4211 "rel" : "child"
4212 }
4213 ],
4214 "type" : "array"
04d22a9f
TL
4215 }
4216 }
4217 },
4218 "leaf" : 0,
34f3e481
TL
4219 "path" : "/cluster/backup-info",
4220 "text" : "backup-info"
04d22a9f 4221 },
44660702
DM
4222 {
4223 "children" : [
4224 {
4225 "children" : [
4226 {
4227 "children" : [
56122987 4228 {
56122987
DM
4229 "info" : {
4230 "POST" : {
e9cd3bd4 4231 "allowtoken" : 1,
44660702
DM
4232 "description" : "Request resource migration (online) to another node.",
4233 "method" : "POST",
4234 "name" : "migrate",
56122987 4235 "parameters" : {
7aacca6f 4236 "additionalProperties" : 0,
56122987
DM
4237 "properties" : {
4238 "node" : {
95895385 4239 "description" : "Target node.",
44660702 4240 "format" : "pve-node",
013dc89f
DM
4241 "type" : "string",
4242 "typetext" : "<string>"
56122987
DM
4243 },
4244 "sid" : {
44660702 4245 "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 4246 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4247 "type" : "string",
44660702 4248 "typetext" : "<type>:<name>"
56122987 4249 }
7aacca6f 4250 }
56122987 4251 },
56122987
DM
4252 "permissions" : {
4253 "check" : [
4254 "perm",
4255 "/",
4256 [
4257 "Sys.Console"
4258 ]
4259 ]
4260 },
7aacca6f 4261 "protected" : 1,
7aacca6f
DM
4262 "returns" : {
4263 "type" : "null"
44660702 4264 }
56122987 4265 }
44660702
DM
4266 },
4267 "leaf" : 1,
4268 "path" : "/cluster/ha/resources/{sid}/migrate",
4269 "text" : "migrate"
4270 },
4271 {
4272 "info" : {
4273 "POST" : {
e9cd3bd4 4274 "allowtoken" : 1,
44660702
DM
4275 "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
4276 "method" : "POST",
4277 "name" : "relocate",
4278 "parameters" : {
4279 "additionalProperties" : 0,
4280 "properties" : {
4281 "node" : {
95895385 4282 "description" : "Target node.",
44660702 4283 "format" : "pve-node",
013dc89f
DM
4284 "type" : "string",
4285 "typetext" : "<string>"
44660702
DM
4286 },
4287 "sid" : {
4288 "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).",
4289 "format" : "pve-ha-resource-or-vm-id",
4290 "type" : "string",
4291 "typetext" : "<type>:<name>"
4292 }
4293 }
4294 },
4295 "permissions" : {
4296 "check" : [
4297 "perm",
4298 "/",
4299 [
4300 "Sys.Console"
4301 ]
4302 ]
4303 },
4304 "protected" : 1,
4305 "returns" : {
4306 "type" : "null"
4307 }
4308 }
4309 },
4310 "leaf" : 1,
4311 "path" : "/cluster/ha/resources/{sid}/relocate",
4312 "text" : "relocate"
4313 }
4314 ],
4315 "info" : {
4316 "DELETE" : {
e9cd3bd4 4317 "allowtoken" : 1,
44660702
DM
4318 "description" : "Delete resource configuration.",
4319 "method" : "DELETE",
4320 "name" : "delete",
7aacca6f 4321 "parameters" : {
44660702 4322 "additionalProperties" : 0,
7aacca6f
DM
4323 "properties" : {
4324 "sid" : {
4325 "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 4326 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4327 "type" : "string",
44660702
DM
4328 "typetext" : "<type>:<name>"
4329 }
4330 }
4331 },
4332 "permissions" : {
4333 "check" : [
4334 "perm",
4335 "/",
4336 [
4337 "Sys.Console"
4338 ]
4339 ]
4340 },
4341 "protected" : 1,
4342 "returns" : {
4343 "type" : "null"
4344 }
4345 },
4346 "GET" : {
e9cd3bd4 4347 "allowtoken" : 1,
44660702
DM
4348 "description" : "Read resource configuration.",
4349 "method" : "GET",
4350 "name" : "read",
4351 "parameters" : {
4352 "additionalProperties" : 0,
4353 "properties" : {
4354 "sid" : {
4355 "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 4356 "format" : "pve-ha-resource-or-vm-id",
44660702 4357 "type" : "string",
7aacca6f
DM
4358 "typetext" : "<type>:<name>"
4359 }
44660702 4360 }
7aacca6f
DM
4361 },
4362 "permissions" : {
4363 "check" : [
4364 "perm",
4365 "/",
4366 [
4367 "Sys.Audit"
4368 ]
4369 ]
4370 },
5f26e15b
TL
4371 "returns" : {
4372 "properties" : {
4373 "comment" : {
4374 "description" : "Description.",
4375 "optional" : 1,
4376 "type" : "string"
4377 },
4378 "digest" : {
4379 "description" : "Can be used to prevent concurrent modifications.",
4380 "type" : "string"
4381 },
4382 "group" : {
4383 "description" : "The HA group identifier.",
4384 "format" : "pve-configid",
4385 "optional" : 1,
4386 "type" : "string"
4387 },
4388 "max_relocate" : {
4389 "description" : "Maximal number of service relocate tries when a service failes to start.",
4390 "optional" : 1,
4391 "type" : "integer"
4392 },
4393 "max_restart" : {
4394 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4395 "optional" : 1,
4396 "type" : "integer"
4397 },
4398 "sid" : {
4399 "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).",
4400 "format" : "pve-ha-resource-or-vm-id",
4401 "type" : "string",
4402 "typetext" : "<type>:<name>"
4403 },
4404 "state" : {
4405 "description" : "Requested resource state.",
4406 "enum" : [
4407 "started",
4408 "stopped",
4409 "enabled",
4410 "disabled",
4411 "ignored"
4412 ],
4413 "optional" : 1,
4414 "type" : "string"
4415 },
4416 "type" : {
4417 "description" : "The type of the resources.",
4418 "type" : "string"
4419 }
4420 },
4421 "type" : "object"
4422 }
7aacca6f 4423 },
56122987 4424 "PUT" : {
e9cd3bd4 4425 "allowtoken" : 1,
44660702 4426 "description" : "Update resource configuration.",
7aacca6f 4427 "method" : "PUT",
44660702 4428 "name" : "update",
56122987
DM
4429 "parameters" : {
4430 "additionalProperties" : 0,
4431 "properties" : {
44660702
DM
4432 "comment" : {
4433 "description" : "Description.",
4434 "maxLength" : 4096,
56122987 4435 "optional" : 1,
013dc89f
DM
4436 "type" : "string",
4437 "typetext" : "<string>"
56122987 4438 },
7aacca6f
DM
4439 "delete" : {
4440 "description" : "A list of settings you want to delete.",
7aacca6f 4441 "format" : "pve-configid-list",
44660702
DM
4442 "maxLength" : 4096,
4443 "optional" : 1,
013dc89f
DM
4444 "type" : "string",
4445 "typetext" : "<string>"
56122987 4446 },
44660702
DM
4447 "digest" : {
4448 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4449 "maxLength" : 40,
4450 "optional" : 1,
013dc89f
DM
4451 "type" : "string",
4452 "typetext" : "<string>"
56122987 4453 },
44660702
DM
4454 "group" : {
4455 "description" : "The HA group identifier.",
4456 "format" : "pve-configid",
7aacca6f 4457 "optional" : 1,
013dc89f
DM
4458 "type" : "string",
4459 "typetext" : "<string>"
56122987
DM
4460 },
4461 "max_relocate" : {
7aacca6f 4462 "default" : 1,
56122987 4463 "description" : "Maximal number of service relocate tries when a service failes to start.",
44660702
DM
4464 "minimum" : 0,
4465 "optional" : 1,
4bd7df8b 4466 "type" : "integer",
013dc89f 4467 "typetext" : "<integer> (0 - N)"
7aacca6f 4468 },
44660702
DM
4469 "max_restart" : {
4470 "default" : 1,
4471 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4472 "minimum" : 0,
7aacca6f 4473 "optional" : 1,
4bd7df8b 4474 "type" : "integer",
013dc89f 4475 "typetext" : "<integer> (0 - N)"
44660702
DM
4476 },
4477 "sid" : {
4478 "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).",
4479 "format" : "pve-ha-resource-or-vm-id",
4480 "type" : "string",
4481 "typetext" : "<type>:<name>"
7aacca6f
DM
4482 },
4483 "state" : {
f13c1238
DM
4484 "default" : "started",
4485 "description" : "Requested resource state.",
7aacca6f 4486 "enum" : [
f13c1238
DM
4487 "started",
4488 "stopped",
7aacca6f 4489 "enabled",
2489d6df
WB
4490 "disabled",
4491 "ignored"
7aacca6f 4492 ],
7aacca6f 4493 "optional" : 1,
f13c1238 4494 "type" : "string",
2489d6df 4495 "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 4496 }
44660702
DM
4497 },
4498 "type" : "object"
56122987 4499 },
56122987
DM
4500 "permissions" : {
4501 "check" : [
4502 "perm",
4503 "/",
4504 [
4505 "Sys.Console"
4506 ]
4507 ]
4508 },
7aacca6f 4509 "protected" : 1,
56122987
DM
4510 "returns" : {
4511 "type" : "null"
4512 }
4513 }
4514 },
44660702 4515 "leaf" : 0,
7aacca6f 4516 "path" : "/cluster/ha/resources/{sid}",
44660702 4517 "text" : "{sid}"
56122987
DM
4518 }
4519 ],
7aacca6f
DM
4520 "info" : {
4521 "GET" : {
e9cd3bd4 4522 "allowtoken" : 1,
44660702
DM
4523 "description" : "List HA resources.",
4524 "method" : "GET",
4525 "name" : "index",
7aacca6f 4526 "parameters" : {
44660702
DM
4527 "additionalProperties" : 0,
4528 "properties" : {
4529 "type" : {
4530 "description" : "Only list resources of specific type",
4531 "enum" : [
4532 "ct",
4533 "vm"
4534 ],
4535 "optional" : 1,
4536 "type" : "string"
4537 }
4538 }
7aacca6f 4539 },
7aacca6f
DM
4540 "permissions" : {
4541 "check" : [
4542 "perm",
4543 "/",
4544 [
4545 "Sys.Audit"
4546 ]
4547 ]
4548 },
7aacca6f 4549 "returns" : {
7aacca6f 4550 "items" : {
7aacca6f 4551 "properties" : {
44660702 4552 "sid" : {
7aacca6f
DM
4553 "type" : "string"
4554 }
44660702
DM
4555 },
4556 "type" : "object"
7aacca6f
DM
4557 },
4558 "links" : [
4559 {
44660702 4560 "href" : "{sid}",
7aacca6f
DM
4561 "rel" : "child"
4562 }
44660702
DM
4563 ],
4564 "type" : "array"
7aacca6f
DM
4565 }
4566 },
4567 "POST" : {
e9cd3bd4 4568 "allowtoken" : 1,
44660702 4569 "description" : "Create a new HA resource.",
7aacca6f 4570 "method" : "POST",
44660702 4571 "name" : "create",
7aacca6f 4572 "parameters" : {
44660702 4573 "additionalProperties" : 0,
7aacca6f
DM
4574 "properties" : {
4575 "comment" : {
7aacca6f 4576 "description" : "Description.",
44660702 4577 "maxLength" : 4096,
7aacca6f 4578 "optional" : 1,
013dc89f
DM
4579 "type" : "string",
4580 "typetext" : "<string>"
7aacca6f 4581 },
44660702
DM
4582 "group" : {
4583 "description" : "The HA group identifier.",
4584 "format" : "pve-configid",
7aacca6f 4585 "optional" : 1,
013dc89f
DM
4586 "type" : "string",
4587 "typetext" : "<string>"
7aacca6f 4588 },
44660702
DM
4589 "max_relocate" : {
4590 "default" : 1,
4591 "description" : "Maximal number of service relocate tries when a service failes to start.",
4592 "minimum" : 0,
7aacca6f 4593 "optional" : 1,
4bd7df8b 4594 "type" : "integer",
013dc89f 4595 "typetext" : "<integer> (0 - N)"
7aacca6f 4596 },
44660702
DM
4597 "max_restart" : {
4598 "default" : 1,
4599 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4600 "minimum" : 0,
4601 "optional" : 1,
4bd7df8b 4602 "type" : "integer",
013dc89f 4603 "typetext" : "<integer> (0 - N)"
44660702
DM
4604 },
4605 "sid" : {
4606 "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).",
4607 "format" : "pve-ha-resource-or-vm-id",
4608 "type" : "string",
4609 "typetext" : "<type>:<name>"
4610 },
4611 "state" : {
f13c1238
DM
4612 "default" : "started",
4613 "description" : "Requested resource state.",
7aacca6f 4614 "enum" : [
f13c1238
DM
4615 "started",
4616 "stopped",
44660702 4617 "enabled",
2489d6df
WB
4618 "disabled",
4619 "ignored"
7aacca6f 4620 ],
7aacca6f 4621 "optional" : 1,
f13c1238 4622 "type" : "string",
2489d6df 4623 "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 4624 },
44660702
DM
4625 "type" : {
4626 "description" : "Resource type.",
4627 "enum" : [
4628 "ct",
4629 "vm"
4630 ],
4631 "optional" : 1,
4632 "type" : "string"
4633 }
7aacca6f 4634 },
44660702 4635 "type" : "object"
7aacca6f
DM
4636 },
4637 "permissions" : {
4638 "check" : [
4639 "perm",
4640 "/",
4641 [
4642 "Sys.Console"
4643 ]
4644 ]
4645 },
44660702
DM
4646 "protected" : 1,
4647 "returns" : {
4648 "type" : "null"
4649 }
7aacca6f
DM
4650 }
4651 },
44660702
DM
4652 "leaf" : 0,
4653 "path" : "/cluster/ha/resources",
4654 "text" : "resources"
4655 },
4656 {
56122987
DM
4657 "children" : [
4658 {
56122987 4659 "info" : {
44660702 4660 "DELETE" : {
e9cd3bd4 4661 "allowtoken" : 1,
44660702
DM
4662 "description" : "Delete ha group configuration.",
4663 "method" : "DELETE",
4664 "name" : "delete",
56122987 4665 "parameters" : {
7aacca6f 4666 "additionalProperties" : 0,
56122987 4667 "properties" : {
7aacca6f
DM
4668 "group" : {
4669 "description" : "The HA group identifier.",
44660702 4670 "format" : "pve-configid",
013dc89f
DM
4671 "type" : "string",
4672 "typetext" : "<string>"
56122987 4673 }
7aacca6f 4674 }
56122987 4675 },
56122987
DM
4676 "permissions" : {
4677 "check" : [
4678 "perm",
4679 "/",
4680 [
7aacca6f 4681 "Sys.Console"
56122987
DM
4682 ]
4683 ]
4684 },
44660702 4685 "protected" : 1,
7aacca6f
DM
4686 "returns" : {
4687 "type" : "null"
56122987
DM
4688 }
4689 },
44660702 4690 "GET" : {
e9cd3bd4 4691 "allowtoken" : 1,
44660702
DM
4692 "description" : "Read ha group configuration.",
4693 "method" : "GET",
4694 "name" : "read",
56122987 4695 "parameters" : {
44660702 4696 "additionalProperties" : 0,
56122987
DM
4697 "properties" : {
4698 "group" : {
4699 "description" : "The HA group identifier.",
44660702 4700 "format" : "pve-configid",
013dc89f
DM
4701 "type" : "string",
4702 "typetext" : "<string>"
56122987 4703 }
44660702 4704 }
56122987 4705 },
56122987
DM
4706 "permissions" : {
4707 "check" : [
4708 "perm",
4709 "/",
4710 [
44660702 4711 "Sys.Audit"
56122987
DM
4712 ]
4713 ]
4714 },
44660702 4715 "returns" : {}
7aacca6f 4716 },
44660702 4717 "PUT" : {
e9cd3bd4 4718 "allowtoken" : 1,
44660702
DM
4719 "description" : "Update ha group configuration.",
4720 "method" : "PUT",
4721 "name" : "update",
7aacca6f 4722 "parameters" : {
44660702 4723 "additionalProperties" : 0,
7aacca6f 4724 "properties" : {
44660702
DM
4725 "comment" : {
4726 "description" : "Description.",
4727 "maxLength" : 4096,
4728 "optional" : 1,
013dc89f
DM
4729 "type" : "string",
4730 "typetext" : "<string>"
44660702
DM
4731 },
4732 "delete" : {
4733 "description" : "A list of settings you want to delete.",
4734 "format" : "pve-configid-list",
4735 "maxLength" : 4096,
4736 "optional" : 1,
013dc89f
DM
4737 "type" : "string",
4738 "typetext" : "<string>"
44660702
DM
4739 },
4740 "digest" : {
4741 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4742 "maxLength" : 40,
4743 "optional" : 1,
013dc89f
DM
4744 "type" : "string",
4745 "typetext" : "<string>"
44660702 4746 },
7aacca6f
DM
4747 "group" : {
4748 "description" : "The HA group identifier.",
44660702 4749 "format" : "pve-configid",
013dc89f
DM
4750 "type" : "string",
4751 "typetext" : "<string>"
44660702
DM
4752 },
4753 "nodes" : {
f13c1238 4754 "description" : "List of cluster node names with optional priority.",
44660702
DM
4755 "format" : "pve-ha-group-node-list",
4756 "optional" : 1,
7aacca6f 4757 "type" : "string",
f13c1238
DM
4758 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4759 "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
4760 },
4761 "nofailback" : {
4762 "default" : 0,
4763 "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.",
4764 "optional" : 1,
013dc89f
DM
4765 "type" : "boolean",
4766 "typetext" : "<boolean>"
44660702
DM
4767 },
4768 "restricted" : {
4769 "default" : 0,
c4808e75 4770 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4771 "optional" : 1,
013dc89f 4772 "type" : "boolean",
c4808e75
DM
4773 "typetext" : "<boolean>",
4774 "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
4775 }
4776 },
44660702 4777 "type" : "object"
7aacca6f 4778 },
7aacca6f
DM
4779 "permissions" : {
4780 "check" : [
4781 "perm",
4782 "/",
4783 [
44660702 4784 "Sys.Console"
7aacca6f
DM
4785 ]
4786 ]
4787 },
44660702
DM
4788 "protected" : 1,
4789 "returns" : {
4790 "type" : "null"
4791 }
56122987
DM
4792 }
4793 },
4794 "leaf" : 1,
44660702
DM
4795 "path" : "/cluster/ha/groups/{group}",
4796 "text" : "{group}"
56122987 4797 }
44660702
DM
4798 ],
4799 "info" : {
4800 "GET" : {
e9cd3bd4 4801 "allowtoken" : 1,
44660702
DM
4802 "description" : "Get HA groups.",
4803 "method" : "GET",
4804 "name" : "index",
4805 "parameters" : {
4806 "additionalProperties" : 0
4807 },
4808 "permissions" : {
4809 "check" : [
4810 "perm",
4811 "/",
4812 [
4813 "Sys.Audit"
4814 ]
4815 ]
4816 },
4817 "returns" : {
4818 "items" : {
4819 "properties" : {
4820 "group" : {
4821 "type" : "string"
4822 }
4823 },
4824 "type" : "object"
4825 },
4826 "links" : [
4827 {
4828 "href" : "{group}",
4829 "rel" : "child"
4830 }
4831 ],
4832 "type" : "array"
4833 }
4834 },
4835 "POST" : {
e9cd3bd4 4836 "allowtoken" : 1,
44660702
DM
4837 "description" : "Create a new HA group.",
4838 "method" : "POST",
4839 "name" : "create",
4840 "parameters" : {
4841 "additionalProperties" : 0,
4842 "properties" : {
4843 "comment" : {
4844 "description" : "Description.",
4845 "maxLength" : 4096,
4846 "optional" : 1,
013dc89f
DM
4847 "type" : "string",
4848 "typetext" : "<string>"
44660702
DM
4849 },
4850 "group" : {
4851 "description" : "The HA group identifier.",
4852 "format" : "pve-configid",
013dc89f
DM
4853 "type" : "string",
4854 "typetext" : "<string>"
44660702
DM
4855 },
4856 "nodes" : {
f13c1238 4857 "description" : "List of cluster node names with optional priority.",
44660702
DM
4858 "format" : "pve-ha-group-node-list",
4859 "optional" : 0,
4860 "type" : "string",
f13c1238
DM
4861 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4862 "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
4863 },
4864 "nofailback" : {
4865 "default" : 0,
4866 "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.",
4867 "optional" : 1,
013dc89f
DM
4868 "type" : "boolean",
4869 "typetext" : "<boolean>"
44660702
DM
4870 },
4871 "restricted" : {
4872 "default" : 0,
c4808e75 4873 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4874 "optional" : 1,
013dc89f 4875 "type" : "boolean",
c4808e75
DM
4876 "typetext" : "<boolean>",
4877 "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
4878 },
4879 "type" : {
4880 "description" : "Group type.",
4881 "enum" : [
4882 "group"
4883 ],
4884 "optional" : 1,
4885 "type" : "string"
4886 }
4887 },
4888 "type" : "object"
4889 },
4890 "permissions" : {
4891 "check" : [
4892 "perm",
4893 "/",
4894 [
4895 "Sys.Console"
4896 ]
4897 ]
4898 },
4899 "protected" : 1,
4900 "returns" : {
4901 "type" : "null"
4902 }
4903 }
4904 },
4905 "leaf" : 0,
4906 "path" : "/cluster/ha/groups",
4907 "text" : "groups"
7aacca6f
DM
4908 },
4909 {
7aacca6f
DM
4910 "children" : [
4911 {
4912 "info" : {
4913 "GET" : {
e9cd3bd4 4914 "allowtoken" : 1,
56122987 4915 "description" : "Get HA manger status.",
44660702 4916 "method" : "GET",
7aacca6f 4917 "name" : "status",
44660702
DM
4918 "parameters" : {
4919 "additionalProperties" : 0
4920 },
56122987
DM
4921 "permissions" : {
4922 "check" : [
4923 "perm",
4924 "/",
4925 [
4926 "Sys.Audit"
4927 ]
4928 ]
7aacca6f 4929 },
44660702
DM
4930 "returns" : {
4931 "type" : "array"
56122987
DM
4932 }
4933 }
7aacca6f 4934 },
7aacca6f 4935 "leaf" : 1,
44660702
DM
4936 "path" : "/cluster/ha/status/current",
4937 "text" : "current"
56122987
DM
4938 },
4939 {
4940 "info" : {
4941 "GET" : {
e9cd3bd4 4942 "allowtoken" : 1,
7aacca6f 4943 "description" : "Get full HA manger status, including LRM status.",
44660702
DM
4944 "method" : "GET",
4945 "name" : "manager_status",
7aacca6f
DM
4946 "parameters" : {
4947 "additionalProperties" : 0
4948 },
56122987
DM
4949 "permissions" : {
4950 "check" : [
4951 "perm",
4952 "/",
4953 [
4954 "Sys.Audit"
4955 ]
4956 ]
44660702
DM
4957 },
4958 "returns" : {
4959 "type" : "object"
7aacca6f 4960 }
56122987
DM
4961 }
4962 },
56122987 4963 "leaf" : 1,
44660702
DM
4964 "path" : "/cluster/ha/status/manager_status",
4965 "text" : "manager_status"
56122987
DM
4966 }
4967 ],
56122987
DM
4968 "info" : {
4969 "GET" : {
e9cd3bd4 4970 "allowtoken" : 1,
44660702 4971 "description" : "Directory index.",
7aacca6f 4972 "method" : "GET",
44660702
DM
4973 "name" : "index",
4974 "parameters" : {
4975 "additionalProperties" : 0
4976 },
4977 "permissions" : {
4978 "user" : "all"
4979 },
56122987 4980 "returns" : {
56122987
DM
4981 "items" : {
4982 "properties" : {},
4983 "type" : "object"
4984 },
4985 "links" : [
4986 {
44660702
DM
4987 "href" : "{name}",
4988 "rel" : "child"
56122987 4989 }
7aacca6f
DM
4990 ],
4991 "type" : "array"
44660702 4992 }
56122987 4993 }
7aacca6f 4994 },
44660702 4995 "leaf" : 0,
7aacca6f 4996 "path" : "/cluster/ha/status",
44660702 4997 "text" : "status"
56122987
DM
4998 }
4999 ],
56122987
DM
5000 "info" : {
5001 "GET" : {
e9cd3bd4 5002 "allowtoken" : 1,
7aacca6f 5003 "description" : "Directory index.",
44660702
DM
5004 "method" : "GET",
5005 "name" : "index",
5006 "parameters" : {
5007 "additionalProperties" : 0
5008 },
7aacca6f
DM
5009 "permissions" : {
5010 "check" : [
5011 "perm",
5012 "/",
5013 [
5014 "Sys.Audit"
5015 ]
5016 ]
5017 },
56122987 5018 "returns" : {
56122987 5019 "items" : {
7aacca6f
DM
5020 "properties" : {
5021 "id" : {
5022 "type" : "string"
5023 }
44660702
DM
5024 },
5025 "type" : "object"
7aacca6f
DM
5026 },
5027 "links" : [
5028 {
5029 "href" : "{id}",
5030 "rel" : "child"
5031 }
44660702
DM
5032 ],
5033 "type" : "array"
7aacca6f
DM
5034 }
5035 }
44660702
DM
5036 },
5037 "leaf" : 0,
5038 "path" : "/cluster/ha",
5039 "text" : "ha"
7aacca6f 5040 },
a9a8e3d1
DM
5041 {
5042 "children" : [
c5aa7e14
TL
5043 {
5044 "children" : [
5045 {
5046 "info" : {
5047 "DELETE" : {
5048 "allowtoken" : 1,
5049 "description" : "Delete ACME plugin configuration.",
5050 "method" : "DELETE",
5051 "name" : "delete_plugin",
5052 "parameters" : {
5053 "additionalProperties" : 0,
5054 "properties" : {
5055 "id" : {
5056 "description" : "Unique identifier for ACME plugin instance.",
5057 "format" : "pve-configid",
5058 "type" : "string",
5059 "typetext" : "<string>"
5060 }
5061 }
5062 },
5063 "permissions" : {
5064 "check" : [
5065 "perm",
5066 "/",
5067 [
5068 "Sys.Modify"
5069 ]
5070 ]
5071 },
5072 "protected" : 1,
5073 "returns" : {
5074 "type" : "null"
5075 }
5076 },
5077 "GET" : {
5078 "allowtoken" : 1,
5079 "description" : "Get ACME plugin configuration.",
5080 "method" : "GET",
5081 "name" : "get_plugin_config",
5082 "parameters" : {
5083 "additionalProperties" : 0,
5084 "properties" : {
5085 "id" : {
5086 "description" : "Unique identifier for ACME plugin instance.",
5087 "format" : "pve-configid",
5088 "type" : "string",
5089 "typetext" : "<string>"
5090 }
5091 }
5092 },
5093 "permissions" : {
5094 "check" : [
5095 "perm",
5096 "/",
5097 [
5098 "Sys.Modify"
5099 ]
5100 ]
5101 },
5102 "protected" : 1,
5103 "returns" : {
5104 "type" : "object"
5105 }
5106 },
5107 "PUT" : {
5108 "allowtoken" : 1,
5109 "description" : "Update ACME plugin configuration.",
5110 "method" : "PUT",
5111 "name" : "update_plugin",
5112 "parameters" : {
5113 "additionalProperties" : 0,
5114 "properties" : {
5115 "api" : {
5116 "description" : "API plugin name",
5117 "enum" : [
d2656385 5118 "1984hosting",
c5aa7e14
TL
5119 "acmedns",
5120 "acmeproxy",
5121 "active24",
5122 "ad",
5123 "ali",
d2656385
TL
5124 "anx",
5125 "arvan",
e7084ef7 5126 "aurora",
c5aa7e14
TL
5127 "autodns",
5128 "aws",
5370fa8c 5129 "azion",
c5aa7e14
TL
5130 "azure",
5131 "cf",
5132 "clouddns",
5133 "cloudns",
5134 "cn",
5135 "conoha",
5136 "constellix",
5137 "cx",
5138 "cyon",
5139 "da",
5140 "ddnss",
5141 "desec",
ac70d7d1 5142 "df",
c5aa7e14
TL
5143 "dgon",
5144 "dnsimple",
5145 "do",
5146 "doapi",
5147 "domeneshop",
5148 "dp",
5149 "dpi",
5150 "dreamhost",
5151 "duckdns",
5152 "durabledns",
5153 "dyn",
5154 "dynu",
5155 "dynv6",
5156 "easydns",
d2656385 5157 "edgedns",
c5aa7e14
TL
5158 "euserv",
5159 "exoscale",
5160 "freedns",
5161 "gandi_livedns",
5162 "gcloud",
5163 "gd",
5164 "gdnsdk",
5165 "he",
d2656385 5166 "hetzner",
c5aa7e14
TL
5167 "hexonet",
5168 "hostingde",
d2656385 5169 "huaweicloud",
c5aa7e14 5170 "infoblox",
d2656385 5171 "infomaniak",
c5aa7e14
TL
5172 "internetbs",
5173 "inwx",
d2656385 5174 "ionos",
c5aa7e14
TL
5175 "ispconfig",
5176 "jd",
d2656385
TL
5177 "joker",
5178 "kappernet",
c5aa7e14
TL
5179 "kas",
5180 "kinghost",
5181 "knot",
5182 "leaseweb",
5183 "lexicon",
5184 "linode",
5185 "linode_v4",
5186 "loopia",
5187 "lua",
5188 "maradns",
5189 "me",
5190 "miab",
5191 "misaka",
5192 "myapi",
5193 "mydevil",
5194 "mydnsjp",
5195 "namecheap",
5196 "namecom",
5197 "namesilo",
5198 "nederhost",
5199 "neodigit",
5200 "netcup",
d2656385 5201 "netlify",
c5aa7e14 5202 "nic",
d2656385
TL
5203 "njalla",
5204 "nm",
c5aa7e14
TL
5205 "nsd",
5206 "nsone",
5207 "nsupdate",
5208 "nw",
5370fa8c 5209 "oci",
c5aa7e14
TL
5210 "one",
5211 "online",
5212 "openprovider",
d2656385 5213 "openstack",
c5aa7e14
TL
5214 "opnsense",
5215 "ovh",
5216 "pdns",
5217 "pleskxml",
5218 "pointhq",
e7084ef7 5219 "porkbun",
d2656385 5220 "rackcorp",
c5aa7e14
TL
5221 "rackspace",
5222 "rcode0",
5223 "regru",
d2656385 5224 "scaleway",
c5aa7e14
TL
5225 "schlundtech",
5226 "selectel",
5227 "servercow",
d2656385 5228 "simply",
c5aa7e14 5229 "tele3",
d2656385 5230 "transip",
c5aa7e14
TL
5231 "ultra",
5232 "unoeuro",
5233 "variomedia",
5370fa8c 5234 "veesp",
c5aa7e14
TL
5235 "vscale",
5236 "vultr",
e7084ef7 5237 "websupport",
d2656385 5238 "world4you",
c5aa7e14
TL
5239 "yandex",
5240 "zilore",
5241 "zone",
5242 "zonomi"
5243 ],
5244 "optional" : 1,
5245 "type" : "string"
5246 },
5247 "data" : {
5248 "description" : "DNS plugin data. (base64 encoded)",
5249 "optional" : 1,
5250 "type" : "string",
5251 "typetext" : "<string>"
5252 },
5253 "delete" : {
5254 "description" : "A list of settings you want to delete.",
5255 "format" : "pve-configid-list",
5256 "maxLength" : 4096,
5257 "optional" : 1,
5258 "type" : "string",
5259 "typetext" : "<string>"
5260 },
5261 "digest" : {
5262 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
5263 "maxLength" : 40,
5264 "optional" : 1,
5265 "type" : "string",
5266 "typetext" : "<string>"
5267 },
5268 "disable" : {
5269 "description" : "Flag to disable the config.",
5270 "optional" : 1,
5271 "type" : "boolean",
5272 "typetext" : "<boolean>"
5273 },
5274 "id" : {
5275 "description" : "ACME Plugin ID name",
5276 "format" : "pve-configid",
5277 "type" : "string",
5278 "typetext" : "<string>"
5279 },
5280 "nodes" : {
5281 "description" : "List of cluster node names.",
5282 "format" : "pve-node-list",
5283 "optional" : 1,
5284 "type" : "string",
5285 "typetext" : "<string>"
5286 },
5287 "validation-delay" : {
5288 "default" : 30,
5289 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5290 "maximum" : 172800,
5291 "minimum" : 0,
5292 "optional" : 1,
5293 "type" : "integer",
5294 "typetext" : "<integer> (0 - 172800)"
5295 }
5296 },
5297 "type" : "object"
5298 },
5299 "permissions" : {
5300 "check" : [
5301 "perm",
5302 "/",
5303 [
5304 "Sys.Modify"
5305 ]
5306 ]
5307 },
5308 "protected" : 1,
5309 "returns" : {
5310 "type" : "null"
5311 }
5312 }
5313 },
5314 "leaf" : 1,
5315 "path" : "/cluster/acme/plugins/{id}",
5316 "text" : "{id}"
5317 }
5318 ],
5319 "info" : {
5320 "GET" : {
5321 "allowtoken" : 1,
5322 "description" : "ACME plugin index.",
5323 "method" : "GET",
5324 "name" : "index",
5325 "parameters" : {
5326 "additionalProperties" : 0,
5327 "properties" : {
5328 "type" : {
5329 "description" : "Only list ACME plugins of a specific type",
5330 "enum" : [
5331 "dns",
5332 "standalone"
5333 ],
5334 "optional" : 1,
5335 "type" : "string"
5336 }
5337 }
5338 },
5339 "permissions" : {
5340 "check" : [
5341 "perm",
5342 "/",
5343 [
5344 "Sys.Modify"
5345 ]
5346 ]
5347 },
5348 "protected" : 1,
5349 "returns" : {
5350 "items" : {
5351 "properties" : {
5352 "plugin" : {
5353 "description" : "Unique identifier for ACME plugin instance.",
5354 "format" : "pve-configid",
5355 "type" : "string"
5356 }
5357 },
5358 "type" : "object"
5359 },
5360 "links" : [
5361 {
5362 "href" : "{plugin}",
5363 "rel" : "child"
5364 }
5365 ],
5366 "type" : "array"
5367 }
5368 },
5369 "POST" : {
5370 "allowtoken" : 1,
5371 "description" : "Add ACME plugin configuration.",
5372 "method" : "POST",
5373 "name" : "add_plugin",
5374 "parameters" : {
5375 "additionalProperties" : 0,
5376 "properties" : {
5377 "api" : {
5378 "description" : "API plugin name",
5379 "enum" : [
d2656385 5380 "1984hosting",
c5aa7e14
TL
5381 "acmedns",
5382 "acmeproxy",
5383 "active24",
5384 "ad",
5385 "ali",
d2656385
TL
5386 "anx",
5387 "arvan",
e7084ef7 5388 "aurora",
c5aa7e14
TL
5389 "autodns",
5390 "aws",
5370fa8c 5391 "azion",
c5aa7e14
TL
5392 "azure",
5393 "cf",
5394 "clouddns",
5395 "cloudns",
5396 "cn",
5397 "conoha",
5398 "constellix",
5399 "cx",
5400 "cyon",
5401 "da",
5402 "ddnss",
5403 "desec",
ac70d7d1 5404 "df",
c5aa7e14
TL
5405 "dgon",
5406 "dnsimple",
5407 "do",
5408 "doapi",
5409 "domeneshop",
5410 "dp",
5411 "dpi",
5412 "dreamhost",
5413 "duckdns",
5414 "durabledns",
5415 "dyn",
5416 "dynu",
5417 "dynv6",
5418 "easydns",
d2656385 5419 "edgedns",
c5aa7e14
TL
5420 "euserv",
5421 "exoscale",
5422 "freedns",
5423 "gandi_livedns",
5424 "gcloud",
5425 "gd",
5426 "gdnsdk",
5427 "he",
d2656385 5428 "hetzner",
c5aa7e14
TL
5429 "hexonet",
5430 "hostingde",
d2656385 5431 "huaweicloud",
c5aa7e14 5432 "infoblox",
d2656385 5433 "infomaniak",
c5aa7e14
TL
5434 "internetbs",
5435 "inwx",
d2656385 5436 "ionos",
c5aa7e14
TL
5437 "ispconfig",
5438 "jd",
d2656385
TL
5439 "joker",
5440 "kappernet",
c5aa7e14
TL
5441 "kas",
5442 "kinghost",
5443 "knot",
5444 "leaseweb",
5445 "lexicon",
5446 "linode",
5447 "linode_v4",
5448 "loopia",
5449 "lua",
5450 "maradns",
5451 "me",
5452 "miab",
5453 "misaka",
5454 "myapi",
5455 "mydevil",
5456 "mydnsjp",
5457 "namecheap",
5458 "namecom",
5459 "namesilo",
5460 "nederhost",
5461 "neodigit",
5462 "netcup",
d2656385 5463 "netlify",
c5aa7e14 5464 "nic",
d2656385
TL
5465 "njalla",
5466 "nm",
c5aa7e14
TL
5467 "nsd",
5468 "nsone",
5469 "nsupdate",
5470 "nw",
5370fa8c 5471 "oci",
c5aa7e14
TL
5472 "one",
5473 "online",
5474 "openprovider",
d2656385 5475 "openstack",
c5aa7e14
TL
5476 "opnsense",
5477 "ovh",
5478 "pdns",
5479 "pleskxml",
5480 "pointhq",
e7084ef7 5481 "porkbun",
d2656385 5482 "rackcorp",
c5aa7e14
TL
5483 "rackspace",
5484 "rcode0",
5485 "regru",
d2656385 5486 "scaleway",
c5aa7e14
TL
5487 "schlundtech",
5488 "selectel",
5489 "servercow",
d2656385 5490 "simply",
c5aa7e14 5491 "tele3",
d2656385 5492 "transip",
c5aa7e14
TL
5493 "ultra",
5494 "unoeuro",
5495 "variomedia",
5370fa8c 5496 "veesp",
c5aa7e14
TL
5497 "vscale",
5498 "vultr",
e7084ef7 5499 "websupport",
d2656385 5500 "world4you",
c5aa7e14
TL
5501 "yandex",
5502 "zilore",
5503 "zone",
5504 "zonomi"
5505 ],
5506 "optional" : 1,
5507 "type" : "string"
5508 },
5509 "data" : {
5510 "description" : "DNS plugin data. (base64 encoded)",
5511 "optional" : 1,
5512 "type" : "string",
5513 "typetext" : "<string>"
5514 },
5515 "disable" : {
5516 "description" : "Flag to disable the config.",
5517 "optional" : 1,
5518 "type" : "boolean",
5519 "typetext" : "<boolean>"
5520 },
5521 "id" : {
5522 "description" : "ACME Plugin ID name",
5523 "format" : "pve-configid",
5524 "type" : "string",
5525 "typetext" : "<string>"
5526 },
5527 "nodes" : {
5528 "description" : "List of cluster node names.",
5529 "format" : "pve-node-list",
5530 "optional" : 1,
5531 "type" : "string",
5532 "typetext" : "<string>"
5533 },
5534 "type" : {
5535 "description" : "ACME challenge type.",
5536 "enum" : [
5537 "dns",
5538 "standalone"
5539 ],
5540 "type" : "string"
5541 },
5542 "validation-delay" : {
5543 "default" : 30,
5544 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5545 "maximum" : 172800,
5546 "minimum" : 0,
5547 "optional" : 1,
5548 "type" : "integer",
5549 "typetext" : "<integer> (0 - 172800)"
5550 }
5551 },
5552 "type" : "object"
5553 },
5554 "permissions" : {
5555 "check" : [
5556 "perm",
5557 "/",
5558 [
5559 "Sys.Modify"
5560 ]
5561 ]
5562 },
5563 "protected" : 1,
5564 "returns" : {
5565 "type" : "null"
5566 }
5567 }
5568 },
5569 "leaf" : 0,
5570 "path" : "/cluster/acme/plugins",
5571 "text" : "plugins"
5572 },
a9a8e3d1
DM
5573 {
5574 "children" : [
5575 {
5576 "info" : {
5577 "DELETE" : {
e9cd3bd4 5578 "allowtoken" : 1,
a9a8e3d1
DM
5579 "description" : "Deactivate existing ACME account at CA.",
5580 "method" : "DELETE",
5581 "name" : "deactivate_account",
5582 "parameters" : {
5583 "additionalProperties" : 0,
5584 "properties" : {
5585 "name" : {
5586 "default" : "default",
5587 "description" : "ACME account config file name.",
5588 "format" : "pve-configid",
5589 "format_description" : "name",
5590 "optional" : 1,
5591 "type" : "string",
5592 "typetext" : "<name>"
5593 }
5594 }
5595 },
5596 "protected" : 1,
5597 "returns" : {
5598 "type" : "string"
5599 }
5600 },
5601 "GET" : {
e9cd3bd4 5602 "allowtoken" : 1,
a9a8e3d1
DM
5603 "description" : "Return existing ACME account information.",
5604 "method" : "GET",
5605 "name" : "get_account",
5606 "parameters" : {
5607 "additionalProperties" : 0,
5608 "properties" : {
5609 "name" : {
5610 "default" : "default",
5611 "description" : "ACME account config file name.",
5612 "format" : "pve-configid",
5613 "format_description" : "name",
5614 "optional" : 1,
5615 "type" : "string",
5616 "typetext" : "<name>"
5617 }
5618 }
5619 },
5620 "protected" : 1,
5621 "returns" : {
5622 "additionalProperties" : 0,
5623 "properties" : {
5624 "account" : {
5625 "optional" : 1,
4d47f125 5626 "renderer" : "yaml",
a9a8e3d1
DM
5627 "type" : "object"
5628 },
5629 "directory" : {
5630 "description" : "URL of ACME CA directory endpoint.",
5631 "optional" : 1,
5632 "pattern" : "^https?://.*",
5633 "type" : "string"
5634 },
5635 "location" : {
5636 "optional" : 1,
5637 "type" : "string"
5638 },
5639 "tos" : {
5640 "optional" : 1,
5641 "type" : "string"
5642 }
5643 },
5644 "type" : "object"
5645 }
5646 },
5647 "PUT" : {
e9cd3bd4 5648 "allowtoken" : 1,
a9a8e3d1
DM
5649 "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
5650 "method" : "PUT",
5651 "name" : "update_account",
5652 "parameters" : {
5653 "additionalProperties" : 0,
5654 "properties" : {
5655 "contact" : {
5656 "description" : "Contact email addresses.",
5657 "format" : "email-list",
5658 "optional" : 1,
5659 "type" : "string",
5660 "typetext" : "<string>"
5661 },
5662 "name" : {
5663 "default" : "default",
5664 "description" : "ACME account config file name.",
5665 "format" : "pve-configid",
5666 "format_description" : "name",
5667 "optional" : 1,
5668 "type" : "string",
5669 "typetext" : "<name>"
5670 }
5671 }
5672 },
5673 "protected" : 1,
5674 "returns" : {
5675 "type" : "string"
5676 }
5677 }
5678 },
5679 "leaf" : 1,
5680 "path" : "/cluster/acme/account/{name}",
5681 "text" : "{name}"
5682 }
5683 ],
5684 "info" : {
5685 "GET" : {
e9cd3bd4 5686 "allowtoken" : 1,
a9a8e3d1
DM
5687 "description" : "ACMEAccount index.",
5688 "method" : "GET",
5689 "name" : "account_index",
5690 "parameters" : {
5691 "additionalProperties" : 0
5692 },
5693 "permissions" : {
5694 "user" : "all"
5695 },
5696 "protected" : 1,
5697 "returns" : {
5698 "items" : {
5699 "properties" : {},
5700 "type" : "object"
5701 },
5702 "links" : [
5703 {
5704 "href" : "{name}",
5705 "rel" : "child"
5706 }
5707 ],
5708 "type" : "array"
5709 }
5710 },
5711 "POST" : {
e9cd3bd4 5712 "allowtoken" : 1,
a9a8e3d1
DM
5713 "description" : "Register a new ACME account with CA.",
5714 "method" : "POST",
5715 "name" : "register_account",
5716 "parameters" : {
5717 "additionalProperties" : 0,
5718 "properties" : {
5719 "contact" : {
5720 "description" : "Contact email addresses.",
5721 "format" : "email-list",
5722 "type" : "string",
5723 "typetext" : "<string>"
5724 },
5725 "directory" : {
5726 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5727 "description" : "URL of ACME CA directory endpoint.",
5728 "optional" : 1,
5729 "pattern" : "^https?://.*",
5730 "type" : "string"
5731 },
5732 "name" : {
5733 "default" : "default",
5734 "description" : "ACME account config file name.",
5735 "format" : "pve-configid",
5736 "format_description" : "name",
5737 "optional" : 1,
5738 "type" : "string",
5739 "typetext" : "<name>"
5740 },
5741 "tos_url" : {
5742 "description" : "URL of CA TermsOfService - setting this indicates agreement.",
5743 "optional" : 1,
5744 "type" : "string",
5745 "typetext" : "<string>"
5746 }
5747 }
5748 },
5749 "protected" : 1,
5750 "returns" : {
5751 "type" : "string"
5752 }
5753 }
5754 },
5755 "leaf" : 0,
5756 "path" : "/cluster/acme/account",
5757 "text" : "account"
5758 },
5759 {
5760 "info" : {
5761 "GET" : {
e9cd3bd4 5762 "allowtoken" : 1,
a9a8e3d1
DM
5763 "description" : "Retrieve ACME TermsOfService URL from CA.",
5764 "method" : "GET",
5765 "name" : "get_tos",
5766 "parameters" : {
5767 "additionalProperties" : 0,
5768 "properties" : {
5769 "directory" : {
5770 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5771 "description" : "URL of ACME CA directory endpoint.",
5772 "optional" : 1,
5773 "pattern" : "^https?://.*",
5774 "type" : "string"
5775 }
5776 }
5777 },
5da3d723
TL
5778 "permissions" : {
5779 "user" : "all"
5780 },
a9a8e3d1
DM
5781 "returns" : {
5782 "description" : "ACME TermsOfService URL.",
5c1699e5 5783 "optional" : 1,
a9a8e3d1
DM
5784 "type" : "string"
5785 }
5786 }
5787 },
5788 "leaf" : 1,
5789 "path" : "/cluster/acme/tos",
5790 "text" : "tos"
5791 },
5792 {
5793 "info" : {
5794 "GET" : {
e9cd3bd4 5795 "allowtoken" : 1,
a9a8e3d1
DM
5796 "description" : "Get named known ACME directory endpoints.",
5797 "method" : "GET",
5798 "name" : "get_directories",
5799 "parameters" : {
5800 "additionalProperties" : 0
5801 },
5da3d723
TL
5802 "permissions" : {
5803 "user" : "all"
5804 },
a9a8e3d1
DM
5805 "returns" : {
5806 "items" : {
5807 "additionalProperties" : 0,
5808 "properties" : {
5809 "name" : {
5810 "type" : "string"
5811 },
5812 "url" : {
5813 "description" : "URL of ACME CA directory endpoint.",
5814 "pattern" : "^https?://.*",
5815 "type" : "string"
5816 }
5817 },
5818 "type" : "object"
5819 },
5820 "type" : "array"
5821 }
5822 }
5823 },
5824 "leaf" : 1,
5825 "path" : "/cluster/acme/directories",
5826 "text" : "directories"
ac70d7d1
TL
5827 },
5828 {
5829 "info" : {
5830 "GET" : {
5831 "allowtoken" : 1,
5832 "description" : "Get schema of ACME challenge types.",
5833 "method" : "GET",
5834 "name" : "challengeschema",
5835 "parameters" : {
5836 "additionalProperties" : 0
5837 },
5838 "permissions" : {
5839 "user" : "all"
5840 },
5841 "returns" : {
5842 "items" : {
5843 "additionalProperties" : 0,
5844 "properties" : {
5845 "id" : {
5846 "type" : "string"
5847 },
5848 "name" : {
5849 "description" : "Human readable name, falls back to id",
5850 "type" : "string"
5851 },
5852 "schema" : {
5853 "type" : "object"
5854 },
5855 "type" : {
5856 "type" : "string"
5857 }
5858 },
5859 "type" : "object"
5860 },
5861 "type" : "array"
5862 }
5863 }
5864 },
5865 "leaf" : 1,
5866 "path" : "/cluster/acme/challenge-schema",
5867 "text" : "challenge-schema"
a9a8e3d1
DM
5868 }
5869 ],
5870 "info" : {
5871 "GET" : {
e9cd3bd4 5872 "allowtoken" : 1,
a9a8e3d1
DM
5873 "description" : "ACMEAccount index.",
5874 "method" : "GET",
5875 "name" : "index",
5876 "parameters" : {
5877 "additionalProperties" : 0
5878 },
5879 "permissions" : {
5880 "user" : "all"
5881 },
5882 "returns" : {
5883 "items" : {
5884 "properties" : {},
5885 "type" : "object"
5886 },
5887 "links" : [
5888 {
5889 "href" : "{name}",
5890 "rel" : "child"
5891 }
5892 ],
5893 "type" : "array"
5894 }
5895 }
5896 },
5897 "leaf" : 0,
5898 "path" : "/cluster/acme",
5899 "text" : "acme"
5900 },
1c532546
TL
5901 {
5902 "children" : [
5903 {
5904 "info" : {
5905 "GET" : {
e9cd3bd4 5906 "allowtoken" : 1,
1c532546
TL
5907 "description" : "Get ceph metadata.",
5908 "method" : "GET",
5909 "name" : "metadata",
5910 "parameters" : {
c5aa7e14
TL
5911 "additionalProperties" : 0,
5912 "properties" : {
5913 "scope" : {
5914 "default" : "all",
5915 "enum" : [
5916 "all",
5917 "versions"
5918 ],
5919 "optional" : 1,
5920 "type" : "string"
5921 }
5922 }
1c532546
TL
5923 },
5924 "permissions" : {
5925 "check" : [
5926 "perm",
5927 "/",
5928 [
5929 "Sys.Audit",
5930 "Datastore.Audit"
5931 ],
5932 "any",
5933 1
5934 ]
5935 },
5936 "protected" : 1,
5937 "returns" : {
5938 "type" : "object"
5939 }
5940 }
5941 },
5942 "leaf" : 1,
5943 "path" : "/cluster/ceph/metadata",
5944 "text" : "metadata"
5945 },
5946 {
5947 "info" : {
5948 "GET" : {
e9cd3bd4 5949 "allowtoken" : 1,
1c532546
TL
5950 "description" : "Get ceph status.",
5951 "method" : "GET",
5952 "name" : "status",
5953 "parameters" : {
5954 "additionalProperties" : 0
5955 },
5956 "permissions" : {
5957 "check" : [
5958 "perm",
5959 "/",
5960 [
5961 "Sys.Audit",
5962 "Datastore.Audit"
5963 ],
5964 "any",
5965 1
5966 ]
5967 },
5968 "protected" : 1,
5969 "returns" : {
5970 "type" : "object"
5971 }
5972 }
5973 },
5974 "leaf" : 1,
5975 "path" : "/cluster/ceph/status",
5976 "text" : "status"
5977 },
5978 {
5979 "children" : [
5980 {
5981 "info" : {
5982 "GET" : {
e9cd3bd4 5983 "allowtoken" : 1,
1c532546
TL
5984 "description" : "Get the status of a specific ceph flag.",
5985 "method" : "GET",
5986 "name" : "get_flag",
5987 "parameters" : {
5988 "additionalProperties" : 0,
5989 "properties" : {
5990 "flag" : {
5991 "description" : "The name of the flag name to get.",
5992 "enum" : [
5993 "nobackfill",
5994 "nodeep-scrub",
5995 "nodown",
5996 "noin",
5997 "noout",
5998 "norebalance",
5999 "norecover",
6000 "noscrub",
6001 "notieragent",
6002 "noup",
6003 "pause"
6004 ],
6005 "type" : "string"
6006 }
6007 }
6008 },
6009 "permissions" : {
6010 "check" : [
6011 "perm",
6012 "/",
6013 [
6014 "Sys.Audit"
6015 ]
6016 ]
6017 },
6018 "protected" : 1,
6019 "returns" : {
6020 "type" : "boolean"
6021 }
6022 },
6023 "PUT" : {
e9cd3bd4 6024 "allowtoken" : 1,
1c532546
TL
6025 "description" : "Set or clear (unset) a specific ceph flag",
6026 "method" : "PUT",
6027 "name" : "update_flag",
6028 "parameters" : {
6029 "additionalProperties" : 0,
6030 "properties" : {
6031 "flag" : {
6032 "description" : "The ceph flag to update",
6033 "enum" : [
6034 "nobackfill",
6035 "nodeep-scrub",
6036 "nodown",
6037 "noin",
6038 "noout",
6039 "norebalance",
6040 "norecover",
6041 "noscrub",
6042 "notieragent",
6043 "noup",
6044 "pause"
6045 ],
6046 "type" : "string"
6047 },
6048 "value" : {
6049 "description" : "The new value of the flag",
6050 "type" : "boolean",
6051 "typetext" : "<boolean>"
6052 }
6053 }
6054 },
6055 "permissions" : {
6056 "check" : [
6057 "perm",
6058 "/",
6059 [
6060 "Sys.Modify"
6061 ]
6062 ]
6063 },
6064 "protected" : 1,
6065 "returns" : {
6066 "type" : "null"
6067 }
6068 }
6069 },
6070 "leaf" : 1,
6071 "path" : "/cluster/ceph/flags/{flag}",
6072 "text" : "{flag}"
6073 }
6074 ],
6075 "info" : {
6076 "GET" : {
e9cd3bd4 6077 "allowtoken" : 1,
1c532546
TL
6078 "description" : "get the status of all ceph flags",
6079 "method" : "GET",
6080 "name" : "get_all_flags",
6081 "parameters" : {
6082 "additionalProperties" : 0
6083 },
6084 "permissions" : {
6085 "check" : [
6086 "perm",
6087 "/",
6088 [
6089 "Sys.Audit"
6090 ]
6091 ]
6092 },
6093 "protected" : 1,
6094 "returns" : {
6095 "items" : {
6096 "additionalProperties" : 1,
6097 "properties" : {
6098 "name" : {
6099 "description" : "Flag name.",
6100 "enum" : [
6101 "nobackfill",
6102 "nodeep-scrub",
6103 "nodown",
6104 "noin",
6105 "noout",
6106 "norebalance",
6107 "norecover",
6108 "noscrub",
6109 "notieragent",
6110 "noup",
6111 "pause"
6112 ],
6113 "type" : "string"
6114 }
6115 },
6116 "type" : "object"
6117 },
6118 "links" : [
6119 {
6120 "href" : "{name}",
6121 "rel" : "child"
6122 }
6123 ],
6124 "type" : "array"
6125 }
6126 },
6127 "PUT" : {
e9cd3bd4 6128 "allowtoken" : 1,
1c532546
TL
6129 "description" : "Set/Unset multiple ceph flags at once.",
6130 "method" : "PUT",
6131 "name" : "set_flags",
6132 "parameters" : {
6133 "additionalProperties" : 0,
6134 "properties" : {
6135 "nobackfill" : {
6136 "description" : "Backfilling of PGs is suspended.",
6137 "optional" : 1,
6138 "type" : "boolean",
6139 "typetext" : "<boolean>"
6140 },
6141 "nodeep-scrub" : {
6142 "description" : "Deep Scrubbing is disabled.",
6143 "optional" : 1,
6144 "type" : "boolean",
6145 "typetext" : "<boolean>"
6146 },
6147 "nodown" : {
6148 "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
6149 "optional" : 1,
6150 "type" : "boolean",
6151 "typetext" : "<boolean>"
6152 },
6153 "noin" : {
6154 "description" : "OSDs that were previously marked out will not be marked back in when they start.",
6155 "optional" : 1,
6156 "type" : "boolean",
6157 "typetext" : "<boolean>"
6158 },
6159 "noout" : {
6160 "description" : "OSDs will not automatically be marked out after the configured interval.",
6161 "optional" : 1,
6162 "type" : "boolean",
6163 "typetext" : "<boolean>"
6164 },
6165 "norebalance" : {
6166 "description" : "Rebalancing of PGs is suspended.",
6167 "optional" : 1,
6168 "type" : "boolean",
6169 "typetext" : "<boolean>"
6170 },
6171 "norecover" : {
6172 "description" : "Recovery of PGs is suspended.",
6173 "optional" : 1,
6174 "type" : "boolean",
6175 "typetext" : "<boolean>"
6176 },
6177 "noscrub" : {
6178 "description" : "Scrubbing is disabled.",
6179 "optional" : 1,
6180 "type" : "boolean",
6181 "typetext" : "<boolean>"
6182 },
6183 "notieragent" : {
6184 "description" : "Cache tiering activity is suspended.",
6185 "optional" : 1,
6186 "type" : "boolean",
6187 "typetext" : "<boolean>"
6188 },
6189 "noup" : {
6190 "description" : "OSDs are not allowed to start.",
6191 "optional" : 1,
6192 "type" : "boolean",
6193 "typetext" : "<boolean>"
6194 },
6195 "pause" : {
6196 "description" : "Pauses read and writes.",
6197 "optional" : 1,
6198 "type" : "boolean",
6199 "typetext" : "<boolean>"
6200 }
6201 }
6202 },
6203 "permissions" : {
6204 "check" : [
6205 "perm",
6206 "/",
6207 [
6208 "Sys.Modify"
6209 ]
6210 ]
6211 },
6212 "protected" : 1,
6213 "returns" : {
6214 "type" : "string"
6215 }
6216 }
6217 },
6218 "leaf" : 0,
6219 "path" : "/cluster/ceph/flags",
6220 "text" : "flags"
6221 }
6222 ],
6223 "info" : {
6224 "GET" : {
e9cd3bd4 6225 "allowtoken" : 1,
1c532546
TL
6226 "description" : "Cluster ceph index.",
6227 "method" : "GET",
6228 "name" : "cephindex",
6229 "parameters" : {
6230 "additionalProperties" : 0
6231 },
6232 "permissions" : {
6233 "user" : "all"
6234 },
6235 "returns" : {
6236 "items" : {
6237 "properties" : {},
6238 "type" : "object"
6239 },
6240 "links" : [
6241 {
6242 "href" : "{name}",
6243 "rel" : "child"
6244 }
6245 ],
6246 "type" : "array"
6247 }
6248 }
6249 },
6250 "leaf" : 0,
6251 "path" : "/cluster/ceph",
6252 "text" : "ceph"
6253 },
5370fa8c
TL
6254 {
6255 "children" : [
6256 {
6257 "info" : {
6258 "GET" : {
6259 "allowtoken" : 1,
6260 "description" : "Returns a list of future schedule runtimes.",
6261 "method" : "GET",
6262 "name" : "schedule-analyze",
6263 "parameters" : {
6264 "additionalProperties" : 0,
6265 "properties" : {
6266 "iterations" : {
6267 "default" : 10,
6268 "description" : "Number of event-iteration to simulate and return.",
6269 "maximum" : 100,
6270 "minimum" : 1,
6271 "optional" : 1,
6272 "type" : "integer",
6273 "typetext" : "<integer> (1 - 100)"
6274 },
6275 "schedule" : {
6276 "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
6277 "format" : "pve-calendar-event",
6278 "maxLength" : 128,
6279 "type" : "string",
6280 "typetext" : "<string>"
6281 },
6282 "starttime" : {
6283 "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
6284 "optional" : 1,
6285 "type" : "integer",
6286 "typetext" : "<integer>"
6287 }
6288 }
6289 },
6290 "permissions" : {
6291 "user" : "all"
6292 },
6293 "returns" : {
6294 "description" : "An array of the next <iterations> events since <starttime>.",
6295 "items" : {
6296 "properties" : {
6297 "timestamp" : {
6298 "description" : "UNIX timestamp for the run.",
6299 "type" : "integer"
6300 },
6301 "utc" : {
6302 "description" : "UTC timestamp for the run.",
6303 "type" : "string"
6304 }
6305 },
6306 "type" : "object"
6307 },
6308 "type" : "array"
6309 }
6310 }
6311 },
6312 "leaf" : 1,
6313 "path" : "/cluster/jobs/schedule-analyze",
6314 "text" : "schedule-analyze"
6315 }
6316 ],
6317 "info" : {
6318 "GET" : {
6319 "allowtoken" : 1,
6320 "description" : "Index for jobs related endpoints.",
6321 "method" : "GET",
6322 "name" : "index",
6323 "parameters" : {
6324 "additionalProperties" : 0
6325 },
6326 "permissions" : {
6327 "user" : "all"
6328 },
6329 "returns" : {
6330 "description" : "Directory index.",
6331 "items" : {
6332 "properties" : {
6333 "subdir" : {
6334 "description" : "API sub-directory endpoint",
6335 "type" : "string"
6336 }
6337 },
6338 "type" : "object"
6339 },
6340 "links" : [
6341 {
6342 "href" : "{subdir}",
6343 "rel" : "child"
6344 }
6345 ],
6346 "type" : "array"
6347 }
6348 }
6349 },
6350 "leaf" : 0,
6351 "path" : "/cluster/jobs",
6352 "text" : "jobs"
6353 },
c5aa7e14
TL
6354 {
6355 "children" : [
6356 {
6357 "children" : [
6358 {
d2656385
TL
6359 "children" : [
6360 {
6361 "children" : [
6362 {
6363 "info" : {
6364 "DELETE" : {
6365 "allowtoken" : 1,
6366 "description" : "Delete sdn subnet object configuration.",
6367 "method" : "DELETE",
6368 "name" : "delete",
6369 "parameters" : {
6370 "additionalProperties" : 0,
6371 "properties" : {
6372 "subnet" : {
6373 "description" : "The SDN subnet object identifier.",
6374 "format" : "pve-sdn-subnet-id",
6375 "type" : "string",
6376 "typetext" : "<string>"
6377 },
6378 "vnet" : {
6379 "description" : "The SDN vnet object identifier.",
6380 "format" : "pve-sdn-vnet-id",
6381 "type" : "string",
6382 "typetext" : "<string>"
6383 }
6384 }
6385 },
6386 "permissions" : {
6387 "check" : [
6388 "perm",
6389 "/sdn/vnets/{vnet}/subnets",
6390 [
6391 "SDN.Allocate"
6392 ]
6393 ]
6394 },
6395 "protected" : 1,
6396 "returns" : {
6397 "type" : "null"
6398 }
6399 },
6400 "GET" : {
6401 "allowtoken" : 1,
6402 "description" : "Read sdn subnet configuration.",
6403 "method" : "GET",
6404 "name" : "read",
6405 "parameters" : {
6406 "additionalProperties" : 0,
6407 "properties" : {
6408 "pending" : {
6409 "description" : "Display pending config.",
6410 "optional" : 1,
6411 "type" : "boolean",
6412 "typetext" : "<boolean>"
6413 },
6414 "running" : {
6415 "description" : "Display running config.",
6416 "optional" : 1,
6417 "type" : "boolean",
6418 "typetext" : "<boolean>"
6419 },
6420 "subnet" : {
6421 "description" : "The SDN subnet object identifier.",
6422 "format" : "pve-sdn-subnet-id",
6423 "type" : "string",
6424 "typetext" : "<string>"
6425 },
6426 "vnet" : {
6427 "description" : "The SDN vnet object identifier.",
6428 "format" : "pve-sdn-vnet-id",
6429 "type" : "string",
6430 "typetext" : "<string>"
6431 }
6432 }
6433 },
6434 "permissions" : {
6435 "check" : [
6436 "perm",
6437 "/sdn/vnets/{vnet}/subnets/{subnet}",
6438 [
6439 "SDN.Allocate"
6440 ]
6441 ]
6442 },
6443 "returns" : {
6444 "type" : "object"
6445 }
6446 },
6447 "PUT" : {
6448 "allowtoken" : 1,
6449 "description" : "Update sdn subnet object configuration.",
6450 "method" : "PUT",
6451 "name" : "update",
6452 "parameters" : {
6453 "additionalProperties" : 0,
6454 "properties" : {
6455 "delete" : {
6456 "description" : "A list of settings you want to delete.",
6457 "format" : "pve-configid-list",
6458 "maxLength" : 4096,
6459 "optional" : 1,
6460 "type" : "string",
6461 "typetext" : "<string>"
6462 },
6463 "digest" : {
6464 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
6465 "maxLength" : 40,
6466 "optional" : 1,
6467 "type" : "string",
6468 "typetext" : "<string>"
6469 },
6470 "dnszoneprefix" : {
6471 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
6472 "format" : "dns-name",
6473 "optional" : 1,
6474 "type" : "string",
6475 "typetext" : "<string>"
6476 },
6477 "gateway" : {
6478 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
6479 "format" : "ip",
6480 "optional" : 1,
6481 "type" : "string",
6482 "typetext" : "<string>"
6483 },
6484 "snat" : {
6485 "description" : "enable masquerade for this subnet if pve-firewall",
6486 "optional" : 1,
6487 "type" : "boolean",
6488 "typetext" : "<boolean>"
6489 },
6490 "subnet" : {
6491 "description" : "The SDN subnet object identifier.",
6492 "format" : "pve-sdn-subnet-id",
6493 "type" : "string",
6494 "typetext" : "<string>"
6495 },
6496 "vnet" : {
6497 "description" : "associated vnet",
6498 "optional" : 1,
6499 "type" : "string",
6500 "typetext" : "<string>"
6501 }
6502 },
6503 "type" : "object"
6504 },
6505 "permissions" : {
6506 "check" : [
6507 "perm",
6508 "/sdn/vnets/{vnet}/subnets",
6509 [
6510 "SDN.Allocate"
6511 ]
6512 ]
6513 },
6514 "protected" : 1,
6515 "returns" : {
6516 "type" : "null"
6517 }
6518 }
6519 },
6520 "leaf" : 1,
6521 "path" : "/cluster/sdn/vnets/{vnet}/subnets/{subnet}",
6522 "text" : "{subnet}"
6523 }
6524 ],
6525 "info" : {
6526 "GET" : {
6527 "allowtoken" : 1,
6528 "description" : "SDN subnets index.",
6529 "method" : "GET",
6530 "name" : "index",
6531 "parameters" : {
6532 "additionalProperties" : 0,
6533 "properties" : {
6534 "pending" : {
6535 "description" : "Display pending config.",
6536 "optional" : 1,
6537 "type" : "boolean",
6538 "typetext" : "<boolean>"
6539 },
6540 "running" : {
6541 "description" : "Display running config.",
6542 "optional" : 1,
6543 "type" : "boolean",
6544 "typetext" : "<boolean>"
6545 },
6546 "vnet" : {
6547 "description" : "The SDN vnet object identifier.",
6548 "format" : "pve-sdn-vnet-id",
6549 "type" : "string",
6550 "typetext" : "<string>"
6551 }
6552 }
6553 },
6554 "permissions" : {
6555 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/subnets/<subnet>'",
6556 "user" : "all"
6557 },
6558 "returns" : {
6559 "items" : {
6560 "properties" : {},
6561 "type" : "object"
6562 },
6563 "links" : [
6564 {
6565 "href" : "{subnet}",
6566 "rel" : "child"
6567 }
6568 ],
6569 "type" : "array"
6570 }
6571 },
6572 "POST" : {
6573 "allowtoken" : 1,
6574 "description" : "Create a new sdn subnet object.",
6575 "method" : "POST",
6576 "name" : "create",
6577 "parameters" : {
6578 "additionalProperties" : 0,
6579 "properties" : {
6580 "dnszoneprefix" : {
6581 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
6582 "format" : "dns-name",
6583 "optional" : 1,
6584 "type" : "string",
6585 "typetext" : "<string>"
6586 },
6587 "gateway" : {
6588 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
6589 "format" : "ip",
6590 "optional" : 1,
6591 "type" : "string",
6592 "typetext" : "<string>"
6593 },
6594 "snat" : {
6595 "description" : "enable masquerade for this subnet if pve-firewall",
6596 "optional" : 1,
6597 "type" : "boolean",
6598 "typetext" : "<boolean>"
6599 },
6600 "subnet" : {
6601 "description" : "The SDN subnet object identifier.",
6602 "format" : "pve-sdn-subnet-id",
6603 "type" : "string",
6604 "typetext" : "<string>"
6605 },
6606 "type" : {
6607 "enum" : [
6608 "subnet"
6609 ],
6610 "type" : "string"
6611 },
6612 "vnet" : {
6613 "description" : "associated vnet",
6614 "optional" : 0,
6615 "type" : "string",
6616 "typetext" : "<string>"
6617 }
6618 },
6619 "type" : "object"
6620 },
6621 "permissions" : {
6622 "check" : [
6623 "perm",
6624 "/sdn/vnets/{vnet}/subnets",
6625 [
6626 "SDN.Allocate"
6627 ]
6628 ]
6629 },
6630 "protected" : 1,
6631 "returns" : {
6632 "type" : "null"
6633 }
6634 }
6635 },
6636 "leaf" : 0,
6637 "path" : "/cluster/sdn/vnets/{vnet}/subnets",
6638 "text" : "subnets"
6639 }
6640 ],
c5aa7e14
TL
6641 "info" : {
6642 "DELETE" : {
6643 "allowtoken" : 1,
6644 "description" : "Delete sdn vnet object configuration.",
6645 "method" : "DELETE",
6646 "name" : "delete",
6647 "parameters" : {
6648 "additionalProperties" : 0,
6649 "properties" : {
6650 "vnet" : {
6651 "description" : "The SDN vnet object identifier.",
6652 "format" : "pve-sdn-vnet-id",
6653 "type" : "string",
6654 "typetext" : "<string>"
6655 }
6656 }
6657 },
6658 "permissions" : {
6659 "check" : [
6660 "perm",
6661 "/sdn/vnets",
6662 [
6663 "SDN.Allocate"
6664 ]
6665 ]
6666 },
6667 "protected" : 1,
6668 "returns" : {
6669 "type" : "null"
6670 }
6671 },
6672 "GET" : {
6673 "allowtoken" : 1,
6674 "description" : "Read sdn vnet configuration.",
6675 "method" : "GET",
6676 "name" : "read",
6677 "parameters" : {
6678 "additionalProperties" : 0,
6679 "properties" : {
d2656385
TL
6680 "pending" : {
6681 "description" : "Display pending config.",
6682 "optional" : 1,
6683 "type" : "boolean",
6684 "typetext" : "<boolean>"
6685 },
6686 "running" : {
6687 "description" : "Display running config.",
6688 "optional" : 1,
6689 "type" : "boolean",
6690 "typetext" : "<boolean>"
6691 },
c5aa7e14
TL
6692 "vnet" : {
6693 "description" : "The SDN vnet object identifier.",
6694 "format" : "pve-sdn-vnet-id",
6695 "type" : "string",
6696 "typetext" : "<string>"
6697 }
6698 }
6699 },
6700 "permissions" : {
6701 "check" : [
6702 "perm",
6703 "/sdn/vnets/{vnet}",
6704 [
6705 "SDN.Allocate"
6706 ]
6707 ]
6708 },
6709 "returns" : {
6710 "type" : "object"
6711 }
6712 },
6713 "PUT" : {
6714 "allowtoken" : 1,
6715 "description" : "Update sdn vnet object configuration.",
6716 "method" : "PUT",
6717 "name" : "update",
6718 "parameters" : {
6719 "additionalProperties" : 0,
6720 "properties" : {
6721 "alias" : {
6722 "description" : "alias name of the vnet",
5370fa8c 6723 "maxLength" : 256,
c5aa7e14 6724 "optional" : 1,
5370fa8c
TL
6725 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
6726 "type" : "string"
c5aa7e14
TL
6727 },
6728 "delete" : {
6729 "description" : "A list of settings you want to delete.",
6730 "format" : "pve-configid-list",
6731 "maxLength" : 4096,
6732 "optional" : 1,
6733 "type" : "string",
6734 "typetext" : "<string>"
6735 },
6736 "digest" : {
6737 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
6738 "maxLength" : 40,
6739 "optional" : 1,
6740 "type" : "string",
6741 "typetext" : "<string>"
6742 },
c5aa7e14
TL
6743 "tag" : {
6744 "description" : "vlan or vxlan id",
6745 "optional" : 1,
6746 "type" : "integer",
6747 "typetext" : "<integer>"
6748 },
ac70d7d1
TL
6749 "vlanaware" : {
6750 "description" : "Allow vm VLANs to pass through this vnet.",
6751 "optional" : 1,
6752 "type" : "boolean",
6753 "typetext" : "<boolean>"
6754 },
c5aa7e14
TL
6755 "vnet" : {
6756 "description" : "The SDN vnet object identifier.",
6757 "format" : "pve-sdn-vnet-id",
6758 "type" : "string",
6759 "typetext" : "<string>"
6760 },
6761 "zone" : {
6762 "description" : "zone id",
6763 "optional" : 1,
6764 "type" : "string",
6765 "typetext" : "<string>"
6766 }
6767 },
6768 "type" : "object"
6769 },
6770 "permissions" : {
6771 "check" : [
6772 "perm",
6773 "/sdn/vnets",
6774 [
6775 "SDN.Allocate"
6776 ]
6777 ]
6778 },
6779 "protected" : 1,
6780 "returns" : {
6781 "type" : "null"
6782 }
6783 }
6784 },
d2656385 6785 "leaf" : 0,
c5aa7e14
TL
6786 "path" : "/cluster/sdn/vnets/{vnet}",
6787 "text" : "{vnet}"
6788 }
6789 ],
6790 "info" : {
6791 "GET" : {
6792 "allowtoken" : 1,
6793 "description" : "SDN vnets index.",
6794 "method" : "GET",
6795 "name" : "index",
6796 "parameters" : {
d2656385
TL
6797 "additionalProperties" : 0,
6798 "properties" : {
6799 "pending" : {
6800 "description" : "Display pending config.",
6801 "optional" : 1,
6802 "type" : "boolean",
6803 "typetext" : "<boolean>"
6804 },
6805 "running" : {
6806 "description" : "Display running config.",
6807 "optional" : 1,
6808 "type" : "boolean",
6809 "typetext" : "<boolean>"
6810 }
6811 }
c5aa7e14
TL
6812 },
6813 "permissions" : {
6814 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/vnets/<vnet>'",
6815 "user" : "all"
6816 },
6817 "returns" : {
6818 "items" : {
6819 "properties" : {},
6820 "type" : "object"
6821 },
6822 "links" : [
6823 {
6824 "href" : "{vnet}",
6825 "rel" : "child"
6826 }
6827 ],
6828 "type" : "array"
6829 }
6830 },
6831 "POST" : {
6832 "allowtoken" : 1,
6833 "description" : "Create a new sdn vnet object.",
6834 "method" : "POST",
6835 "name" : "create",
6836 "parameters" : {
6837 "additionalProperties" : 0,
6838 "properties" : {
6839 "alias" : {
6840 "description" : "alias name of the vnet",
5370fa8c 6841 "maxLength" : 256,
c5aa7e14 6842 "optional" : 1,
5370fa8c
TL
6843 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
6844 "type" : "string"
c5aa7e14 6845 },
c5aa7e14
TL
6846 "tag" : {
6847 "description" : "vlan or vxlan id",
ac70d7d1 6848 "optional" : 1,
c5aa7e14
TL
6849 "type" : "integer",
6850 "typetext" : "<integer>"
6851 },
6852 "type" : {
6853 "description" : "Type",
6854 "enum" : [
6855 "vnet"
6856 ],
6857 "optional" : 1,
6858 "type" : "string"
6859 },
ac70d7d1
TL
6860 "vlanaware" : {
6861 "description" : "Allow vm VLANs to pass through this vnet.",
6862 "optional" : 1,
6863 "type" : "boolean",
6864 "typetext" : "<boolean>"
6865 },
c5aa7e14
TL
6866 "vnet" : {
6867 "description" : "The SDN vnet object identifier.",
6868 "format" : "pve-sdn-vnet-id",
6869 "type" : "string",
6870 "typetext" : "<string>"
6871 },
6872 "zone" : {
6873 "description" : "zone id",
6874 "optional" : 0,
6875 "type" : "string",
6876 "typetext" : "<string>"
6877 }
6878 },
6879 "type" : "object"
6880 },
6881 "permissions" : {
6882 "check" : [
6883 "perm",
6884 "/sdn/vnets",
6885 [
6886 "SDN.Allocate"
6887 ]
6888 ]
6889 },
6890 "protected" : 1,
6891 "returns" : {
6892 "type" : "null"
6893 }
6894 }
6895 },
6896 "leaf" : 0,
6897 "path" : "/cluster/sdn/vnets",
6898 "text" : "vnets"
6899 },
6900 {
6901 "children" : [
6902 {
6903 "info" : {
6904 "DELETE" : {
6905 "allowtoken" : 1,
6906 "description" : "Delete sdn zone object configuration.",
6907 "method" : "DELETE",
6908 "name" : "delete",
6909 "parameters" : {
6910 "additionalProperties" : 0,
6911 "properties" : {
6912 "zone" : {
6913 "description" : "The SDN zone object identifier.",
6914 "format" : "pve-sdn-zone-id",
6915 "type" : "string",
6916 "typetext" : "<string>"
6917 }
6918 }
6919 },
6920 "permissions" : {
6921 "check" : [
6922 "perm",
6923 "/sdn/zones",
6924 [
6925 "SDN.Allocate"
6926 ]
6927 ]
6928 },
6929 "protected" : 1,
6930 "returns" : {
6931 "type" : "null"
6932 }
6933 },
6934 "GET" : {
6935 "allowtoken" : 1,
6936 "description" : "Read sdn zone configuration.",
6937 "method" : "GET",
6938 "name" : "read",
6939 "parameters" : {
6940 "additionalProperties" : 0,
6941 "properties" : {
d2656385
TL
6942 "pending" : {
6943 "description" : "Display pending config.",
6944 "optional" : 1,
6945 "type" : "boolean",
6946 "typetext" : "<boolean>"
6947 },
6948 "running" : {
6949 "description" : "Display running config.",
6950 "optional" : 1,
6951 "type" : "boolean",
6952 "typetext" : "<boolean>"
6953 },
c5aa7e14
TL
6954 "zone" : {
6955 "description" : "The SDN zone object identifier.",
6956 "format" : "pve-sdn-zone-id",
6957 "type" : "string",
6958 "typetext" : "<string>"
6959 }
6960 }
6961 },
6962 "permissions" : {
6963 "check" : [
6964 "perm",
6965 "/sdn/zones/{zone}",
6966 [
6967 "SDN.Allocate"
6968 ]
6969 ]
6970 },
6971 "returns" : {
6972 "type" : "object"
6973 }
6974 },
6975 "PUT" : {
6976 "allowtoken" : 1,
6977 "description" : "Update sdn zone object configuration.",
6978 "method" : "PUT",
6979 "name" : "update",
6980 "parameters" : {
6981 "additionalProperties" : 0,
6982 "properties" : {
5370fa8c
TL
6983 "advertise-subnets" : {
6984 "description" : "Advertise evpn subnets if you have silent hosts",
6985 "optional" : 1,
6986 "type" : "boolean",
6987 "typetext" : "<boolean>"
6988 },
c5aa7e14
TL
6989 "bridge" : {
6990 "optional" : 1,
6991 "type" : "string",
6992 "typetext" : "<string>"
6993 },
6994 "controller" : {
6995 "description" : "Frr router name",
6996 "optional" : 1,
6997 "type" : "string",
6998 "typetext" : "<string>"
6999 },
7000 "delete" : {
7001 "description" : "A list of settings you want to delete.",
7002 "format" : "pve-configid-list",
7003 "maxLength" : 4096,
7004 "optional" : 1,
7005 "type" : "string",
7006 "typetext" : "<string>"
7007 },
7008 "digest" : {
7009 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7010 "maxLength" : 40,
7011 "optional" : 1,
7012 "type" : "string",
7013 "typetext" : "<string>"
7014 },
5370fa8c
TL
7015 "disable-arp-nd-suppression" : {
7016 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
7017 "optional" : 1,
7018 "type" : "boolean",
7019 "typetext" : "<boolean>"
7020 },
d2656385
TL
7021 "dns" : {
7022 "description" : "dns api server",
7023 "optional" : 1,
7024 "type" : "string",
7025 "typetext" : "<string>"
7026 },
7027 "dnszone" : {
7028 "description" : "dns domain zone ex: mydomain.com",
7029 "format" : "dns-name",
7030 "optional" : 1,
7031 "type" : "string",
7032 "typetext" : "<string>"
7033 },
c5aa7e14
TL
7034 "dp-id" : {
7035 "description" : "Faucet dataplane id",
7036 "optional" : 1,
7037 "type" : "integer",
7038 "typetext" : "<integer>"
7039 },
d2656385
TL
7040 "exitnodes" : {
7041 "description" : "List of cluster node names.",
7042 "format" : "pve-node-list",
7043 "optional" : 1,
7044 "type" : "string",
7045 "typetext" : "<string>"
7046 },
5370fa8c
TL
7047 "exitnodes-local-routing" : {
7048 "description" : "Allow exitnodes to connect to evpn guests",
7049 "optional" : 1,
7050 "type" : "boolean",
7051 "typetext" : "<boolean>"
7052 },
d2656385
TL
7053 "ipam" : {
7054 "description" : "use a specific ipam",
e7084ef7 7055 "optional" : 1,
d2656385
TL
7056 "type" : "string",
7057 "typetext" : "<string>"
7058 },
7059 "mac" : {
7060 "description" : "Anycast logical router mac address",
7061 "format" : "mac-addr",
7062 "optional" : 1,
7063 "type" : "string",
7064 "typetext" : "<string>"
7065 },
c5aa7e14 7066 "mtu" : {
ac70d7d1 7067 "description" : "MTU",
c5aa7e14
TL
7068 "optional" : 1,
7069 "type" : "integer",
7070 "typetext" : "<integer>"
7071 },
7072 "nodes" : {
7073 "description" : "List of cluster node names.",
7074 "format" : "pve-node-list",
7075 "optional" : 1,
7076 "type" : "string",
7077 "typetext" : "<string>"
7078 },
7079 "peers" : {
7080 "description" : "peers address list.",
7081 "format" : "ip-list",
7082 "optional" : 1,
7083 "type" : "string",
7084 "typetext" : "<string>"
7085 },
d2656385
TL
7086 "reversedns" : {
7087 "description" : "reverse dns api server",
7088 "optional" : 1,
7089 "type" : "string",
7090 "typetext" : "<string>"
7091 },
c5aa7e14 7092 "tag" : {
ac70d7d1
TL
7093 "description" : "Service-VLAN Tag",
7094 "minimum" : 0,
c5aa7e14
TL
7095 "optional" : 1,
7096 "type" : "integer",
ac70d7d1
TL
7097 "typetext" : "<integer> (0 - N)"
7098 },
7099 "vlan-protocol" : {
7100 "default" : "802.1q",
7101 "enum" : [
7102 "802.1q",
7103 "802.1ad"
7104 ],
7105 "optional" : 1,
7106 "type" : "string"
c5aa7e14
TL
7107 },
7108 "vrf-vxlan" : {
7109 "description" : "l3vni.",
7110 "optional" : 1,
7111 "type" : "integer",
7112 "typetext" : "<integer>"
7113 },
7114 "zone" : {
7115 "description" : "The SDN zone object identifier.",
7116 "format" : "pve-sdn-zone-id",
7117 "type" : "string",
7118 "typetext" : "<string>"
7119 }
7120 },
7121 "type" : "object"
7122 },
7123 "permissions" : {
7124 "check" : [
7125 "perm",
7126 "/sdn/zones",
7127 [
7128 "SDN.Allocate"
7129 ]
7130 ]
7131 },
7132 "protected" : 1,
7133 "returns" : {
7134 "type" : "null"
7135 }
7136 }
7137 },
7138 "leaf" : 1,
7139 "path" : "/cluster/sdn/zones/{zone}",
7140 "text" : "{zone}"
7141 }
7142 ],
7143 "info" : {
7144 "GET" : {
7145 "allowtoken" : 1,
7146 "description" : "SDN zones index.",
7147 "method" : "GET",
7148 "name" : "index",
7149 "parameters" : {
7150 "additionalProperties" : 0,
7151 "properties" : {
d2656385
TL
7152 "pending" : {
7153 "description" : "Display pending config.",
7154 "optional" : 1,
7155 "type" : "boolean",
7156 "typetext" : "<boolean>"
7157 },
7158 "running" : {
7159 "description" : "Display running config.",
7160 "optional" : 1,
7161 "type" : "boolean",
7162 "typetext" : "<boolean>"
7163 },
c5aa7e14 7164 "type" : {
e7084ef7 7165 "description" : "Only list SDN zones of specific type",
c5aa7e14
TL
7166 "enum" : [
7167 "evpn",
7168 "faucet",
7169 "qinq",
ac70d7d1 7170 "simple",
c5aa7e14
TL
7171 "vlan",
7172 "vxlan"
7173 ],
7174 "optional" : 1,
7175 "type" : "string"
7176 }
7177 }
7178 },
7179 "permissions" : {
7180 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>'",
7181 "user" : "all"
7182 },
7183 "returns" : {
7184 "items" : {
7185 "properties" : {
d2656385
TL
7186 "dns" : {
7187 "optional" : 1,
7188 "type" : "string"
7189 },
7190 "dnszone" : {
7191 "optional" : 1,
7192 "type" : "string"
7193 },
7194 "ipam" : {
7195 "optional" : 1,
7196 "type" : "string"
7197 },
7198 "mtu" : {
7199 "optional" : 1,
7200 "type" : "integer"
7201 },
7202 "nodes" : {
7203 "optional" : 1,
7204 "type" : "string"
7205 },
7206 "pending" : {
7207 "optional" : 1
7208 },
7209 "reversedns" : {
7210 "optional" : 1,
7211 "type" : "string"
7212 },
7213 "state" : {
7214 "optional" : 1,
7215 "type" : "string"
7216 },
c5aa7e14
TL
7217 "type" : {
7218 "type" : "string"
7219 },
7220 "zone" : {
7221 "type" : "string"
7222 }
7223 },
7224 "type" : "object"
7225 },
7226 "links" : [
7227 {
7228 "href" : "{zone}",
7229 "rel" : "child"
7230 }
7231 ],
7232 "type" : "array"
7233 }
7234 },
7235 "POST" : {
7236 "allowtoken" : 1,
7237 "description" : "Create a new sdn zone object.",
7238 "method" : "POST",
7239 "name" : "create",
7240 "parameters" : {
7241 "additionalProperties" : 0,
7242 "properties" : {
5370fa8c
TL
7243 "advertise-subnets" : {
7244 "description" : "Advertise evpn subnets if you have silent hosts",
7245 "optional" : 1,
7246 "type" : "boolean",
7247 "typetext" : "<boolean>"
7248 },
c5aa7e14
TL
7249 "bridge" : {
7250 "optional" : 1,
7251 "type" : "string",
7252 "typetext" : "<string>"
7253 },
7254 "controller" : {
7255 "description" : "Frr router name",
7256 "optional" : 1,
7257 "type" : "string",
7258 "typetext" : "<string>"
7259 },
5370fa8c
TL
7260 "disable-arp-nd-suppression" : {
7261 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
7262 "optional" : 1,
7263 "type" : "boolean",
7264 "typetext" : "<boolean>"
7265 },
d2656385
TL
7266 "dns" : {
7267 "description" : "dns api server",
7268 "optional" : 1,
7269 "type" : "string",
7270 "typetext" : "<string>"
7271 },
7272 "dnszone" : {
7273 "description" : "dns domain zone ex: mydomain.com",
7274 "format" : "dns-name",
7275 "optional" : 1,
7276 "type" : "string",
7277 "typetext" : "<string>"
7278 },
c5aa7e14
TL
7279 "dp-id" : {
7280 "description" : "Faucet dataplane id",
7281 "optional" : 1,
7282 "type" : "integer",
7283 "typetext" : "<integer>"
7284 },
d2656385
TL
7285 "exitnodes" : {
7286 "description" : "List of cluster node names.",
7287 "format" : "pve-node-list",
7288 "optional" : 1,
7289 "type" : "string",
7290 "typetext" : "<string>"
7291 },
5370fa8c
TL
7292 "exitnodes-local-routing" : {
7293 "description" : "Allow exitnodes to connect to evpn guests",
7294 "optional" : 1,
7295 "type" : "boolean",
7296 "typetext" : "<boolean>"
7297 },
d2656385
TL
7298 "ipam" : {
7299 "description" : "use a specific ipam",
e7084ef7 7300 "optional" : 1,
d2656385
TL
7301 "type" : "string",
7302 "typetext" : "<string>"
7303 },
7304 "mac" : {
7305 "description" : "Anycast logical router mac address",
7306 "format" : "mac-addr",
7307 "optional" : 1,
7308 "type" : "string",
7309 "typetext" : "<string>"
7310 },
c5aa7e14 7311 "mtu" : {
ac70d7d1 7312 "description" : "MTU",
c5aa7e14
TL
7313 "optional" : 1,
7314 "type" : "integer",
7315 "typetext" : "<integer>"
7316 },
7317 "nodes" : {
7318 "description" : "List of cluster node names.",
7319 "format" : "pve-node-list",
7320 "optional" : 1,
7321 "type" : "string",
7322 "typetext" : "<string>"
7323 },
7324 "peers" : {
7325 "description" : "peers address list.",
7326 "format" : "ip-list",
7327 "optional" : 1,
7328 "type" : "string",
7329 "typetext" : "<string>"
7330 },
d2656385
TL
7331 "reversedns" : {
7332 "description" : "reverse dns api server",
7333 "optional" : 1,
7334 "type" : "string",
7335 "typetext" : "<string>"
7336 },
c5aa7e14 7337 "tag" : {
ac70d7d1
TL
7338 "description" : "Service-VLAN Tag",
7339 "minimum" : 0,
c5aa7e14
TL
7340 "optional" : 1,
7341 "type" : "integer",
ac70d7d1 7342 "typetext" : "<integer> (0 - N)"
c5aa7e14
TL
7343 },
7344 "type" : {
7345 "description" : "Plugin type.",
7346 "enum" : [
7347 "evpn",
7348 "faucet",
7349 "qinq",
ac70d7d1 7350 "simple",
c5aa7e14
TL
7351 "vlan",
7352 "vxlan"
7353 ],
7354 "format" : "pve-configid",
7355 "type" : "string"
7356 },
ac70d7d1
TL
7357 "vlan-protocol" : {
7358 "default" : "802.1q",
7359 "enum" : [
7360 "802.1q",
7361 "802.1ad"
7362 ],
7363 "optional" : 1,
7364 "type" : "string"
7365 },
c5aa7e14
TL
7366 "vrf-vxlan" : {
7367 "description" : "l3vni.",
7368 "optional" : 1,
7369 "type" : "integer",
7370 "typetext" : "<integer>"
7371 },
7372 "zone" : {
7373 "description" : "The SDN zone object identifier.",
7374 "format" : "pve-sdn-zone-id",
7375 "type" : "string",
7376 "typetext" : "<string>"
7377 }
7378 },
7379 "type" : "object"
7380 },
7381 "permissions" : {
7382 "check" : [
7383 "perm",
7384 "/sdn/zones",
7385 [
7386 "SDN.Allocate"
7387 ]
7388 ]
7389 },
7390 "protected" : 1,
7391 "returns" : {
7392 "type" : "null"
7393 }
7394 }
7395 },
7396 "leaf" : 0,
7397 "path" : "/cluster/sdn/zones",
7398 "text" : "zones"
7399 },
7400 {
7401 "children" : [
7402 {
7403 "info" : {
7404 "DELETE" : {
7405 "allowtoken" : 1,
7406 "description" : "Delete sdn controller object configuration.",
7407 "method" : "DELETE",
7408 "name" : "delete",
7409 "parameters" : {
7410 "additionalProperties" : 0,
7411 "properties" : {
7412 "controller" : {
7413 "description" : "The SDN controller object identifier.",
7414 "format" : "pve-sdn-controller-id",
7415 "type" : "string",
7416 "typetext" : "<string>"
7417 }
7418 }
7419 },
7420 "permissions" : {
7421 "check" : [
7422 "perm",
7423 "/sdn/controllers",
7424 [
7425 "SDN.Allocate"
7426 ]
7427 ]
7428 },
7429 "protected" : 1,
7430 "returns" : {
7431 "type" : "null"
7432 }
7433 },
7434 "GET" : {
7435 "allowtoken" : 1,
7436 "description" : "Read sdn controller configuration.",
7437 "method" : "GET",
7438 "name" : "read",
7439 "parameters" : {
7440 "additionalProperties" : 0,
7441 "properties" : {
7442 "controller" : {
7443 "description" : "The SDN controller object identifier.",
7444 "format" : "pve-sdn-controller-id",
7445 "type" : "string",
7446 "typetext" : "<string>"
d2656385
TL
7447 },
7448 "pending" : {
7449 "description" : "Display pending config.",
7450 "optional" : 1,
7451 "type" : "boolean",
7452 "typetext" : "<boolean>"
7453 },
7454 "running" : {
7455 "description" : "Display running config.",
7456 "optional" : 1,
7457 "type" : "boolean",
7458 "typetext" : "<boolean>"
c5aa7e14
TL
7459 }
7460 }
7461 },
7462 "permissions" : {
7463 "check" : [
7464 "perm",
7465 "/sdn/controllers/{controller}",
7466 [
7467 "SDN.Allocate"
7468 ]
7469 ]
7470 },
7471 "returns" : {
7472 "type" : "object"
7473 }
7474 },
7475 "PUT" : {
7476 "allowtoken" : 1,
7477 "description" : "Update sdn controller object configuration.",
7478 "method" : "PUT",
7479 "name" : "update",
7480 "parameters" : {
7481 "additionalProperties" : 0,
7482 "properties" : {
7483 "asn" : {
7484 "description" : "autonomous system number",
7485 "optional" : 1,
7486 "type" : "integer",
7487 "typetext" : "<integer>"
7488 },
7489 "controller" : {
7490 "description" : "The SDN controller object identifier.",
7491 "format" : "pve-sdn-controller-id",
7492 "type" : "string",
7493 "typetext" : "<string>"
7494 },
7495 "delete" : {
7496 "description" : "A list of settings you want to delete.",
7497 "format" : "pve-configid-list",
7498 "maxLength" : 4096,
7499 "optional" : 1,
7500 "type" : "string",
7501 "typetext" : "<string>"
7502 },
7503 "digest" : {
7504 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7505 "maxLength" : 40,
7506 "optional" : 1,
7507 "type" : "string",
7508 "typetext" : "<string>"
7509 },
d2656385
TL
7510 "ebgp" : {
7511 "description" : "Enable ebgp. (remote-as external)",
7512 "optional" : 1,
7513 "type" : "boolean",
7514 "typetext" : "<boolean>"
7515 },
7516 "ebgp-multihop" : {
7517 "optional" : 1,
7518 "type" : "integer",
7519 "typetext" : "<integer>"
7520 },
7521 "loopback" : {
7522 "description" : "source loopback interface.",
c5aa7e14
TL
7523 "optional" : 1,
7524 "type" : "string",
7525 "typetext" : "<string>"
7526 },
d2656385
TL
7527 "node" : {
7528 "description" : "The cluster node name.",
7529 "format" : "pve-node",
c5aa7e14
TL
7530 "optional" : 1,
7531 "type" : "string",
7532 "typetext" : "<string>"
7533 },
7534 "peers" : {
7535 "description" : "peers address list.",
7536 "format" : "ip-list",
7537 "optional" : 1,
7538 "type" : "string",
7539 "typetext" : "<string>"
7540 }
7541 },
7542 "type" : "object"
7543 },
7544 "permissions" : {
7545 "check" : [
7546 "perm",
7547 "/sdn/controllers",
7548 [
7549 "SDN.Allocate"
7550 ]
7551 ]
7552 },
7553 "protected" : 1,
7554 "returns" : {
7555 "type" : "null"
7556 }
7557 }
7558 },
7559 "leaf" : 1,
7560 "path" : "/cluster/sdn/controllers/{controller}",
7561 "text" : "{controller}"
7562 }
7563 ],
7564 "info" : {
7565 "GET" : {
7566 "allowtoken" : 1,
7567 "description" : "SDN controllers index.",
7568 "method" : "GET",
7569 "name" : "index",
7570 "parameters" : {
7571 "additionalProperties" : 0,
7572 "properties" : {
d2656385
TL
7573 "pending" : {
7574 "description" : "Display pending config.",
7575 "optional" : 1,
7576 "type" : "boolean",
7577 "typetext" : "<boolean>"
7578 },
7579 "running" : {
7580 "description" : "Display running config.",
7581 "optional" : 1,
7582 "type" : "boolean",
7583 "typetext" : "<boolean>"
7584 },
c5aa7e14
TL
7585 "type" : {
7586 "description" : "Only list sdn controllers of specific type",
7587 "enum" : [
d2656385 7588 "bgp",
c5aa7e14
TL
7589 "evpn",
7590 "faucet"
7591 ],
7592 "optional" : 1,
7593 "type" : "string"
7594 }
7595 }
7596 },
7597 "permissions" : {
7598 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/controllers/<controller>'",
7599 "user" : "all"
7600 },
7601 "returns" : {
7602 "items" : {
7603 "properties" : {
7604 "controller" : {
7605 "type" : "string"
7606 },
d2656385
TL
7607 "pending" : {
7608 "optional" : 1
7609 },
7610 "state" : {
7611 "optional" : 1,
7612 "type" : "string"
7613 },
c5aa7e14
TL
7614 "type" : {
7615 "type" : "string"
7616 }
7617 },
7618 "type" : "object"
7619 },
7620 "links" : [
7621 {
7622 "href" : "{controller}",
7623 "rel" : "child"
7624 }
7625 ],
7626 "type" : "array"
7627 }
7628 },
7629 "POST" : {
7630 "allowtoken" : 1,
7631 "description" : "Create a new sdn controller object.",
7632 "method" : "POST",
7633 "name" : "create",
7634 "parameters" : {
7635 "additionalProperties" : 0,
7636 "properties" : {
7637 "asn" : {
7638 "description" : "autonomous system number",
7639 "optional" : 1,
7640 "type" : "integer",
7641 "typetext" : "<integer>"
7642 },
7643 "controller" : {
7644 "description" : "The SDN controller object identifier.",
7645 "format" : "pve-sdn-controller-id",
7646 "type" : "string",
7647 "typetext" : "<string>"
7648 },
d2656385
TL
7649 "ebgp" : {
7650 "description" : "Enable ebgp. (remote-as external)",
7651 "optional" : 1,
7652 "type" : "boolean",
7653 "typetext" : "<boolean>"
7654 },
7655 "ebgp-multihop" : {
7656 "optional" : 1,
7657 "type" : "integer",
7658 "typetext" : "<integer>"
7659 },
7660 "loopback" : {
7661 "description" : "source loopback interface.",
c5aa7e14
TL
7662 "optional" : 1,
7663 "type" : "string",
7664 "typetext" : "<string>"
7665 },
d2656385
TL
7666 "node" : {
7667 "description" : "The cluster node name.",
7668 "format" : "pve-node",
c5aa7e14
TL
7669 "optional" : 1,
7670 "type" : "string",
7671 "typetext" : "<string>"
7672 },
7673 "peers" : {
7674 "description" : "peers address list.",
7675 "format" : "ip-list",
7676 "optional" : 1,
7677 "type" : "string",
7678 "typetext" : "<string>"
7679 },
7680 "type" : {
7681 "description" : "Plugin type.",
7682 "enum" : [
d2656385 7683 "bgp",
c5aa7e14
TL
7684 "evpn",
7685 "faucet"
7686 ],
7687 "format" : "pve-configid",
7688 "type" : "string"
7689 }
7690 },
7691 "type" : "object"
7692 },
7693 "permissions" : {
7694 "check" : [
7695 "perm",
7696 "/sdn/controllers",
7697 [
7698 "SDN.Allocate"
7699 ]
7700 ]
7701 },
7702 "protected" : 1,
7703 "returns" : {
7704 "type" : "null"
7705 }
7706 }
7707 },
7708 "leaf" : 0,
7709 "path" : "/cluster/sdn/controllers",
7710 "text" : "controllers"
d2656385
TL
7711 },
7712 {
7713 "children" : [
7714 {
7715 "info" : {
7716 "DELETE" : {
7717 "allowtoken" : 1,
7718 "description" : "Delete sdn ipam object configuration.",
7719 "method" : "DELETE",
7720 "name" : "delete",
7721 "parameters" : {
7722 "additionalProperties" : 0,
7723 "properties" : {
7724 "ipam" : {
7725 "description" : "The SDN ipam object identifier.",
7726 "format" : "pve-sdn-ipam-id",
7727 "type" : "string",
7728 "typetext" : "<string>"
7729 }
7730 }
7731 },
7732 "permissions" : {
7733 "check" : [
7734 "perm",
7735 "/sdn/ipams",
7736 [
7737 "SDN.Allocate"
7738 ]
7739 ]
7740 },
7741 "protected" : 1,
7742 "returns" : {
7743 "type" : "null"
7744 }
7745 },
7746 "GET" : {
7747 "allowtoken" : 1,
7748 "description" : "Read sdn ipam configuration.",
7749 "method" : "GET",
7750 "name" : "read",
7751 "parameters" : {
7752 "additionalProperties" : 0,
7753 "properties" : {
7754 "ipam" : {
7755 "description" : "The SDN ipam object identifier.",
7756 "format" : "pve-sdn-ipam-id",
7757 "type" : "string",
7758 "typetext" : "<string>"
7759 }
7760 }
7761 },
7762 "permissions" : {
7763 "check" : [
7764 "perm",
7765 "/sdn/ipams/{ipam}",
7766 [
7767 "SDN.Allocate"
7768 ]
7769 ]
7770 },
7771 "returns" : {
7772 "type" : "object"
7773 }
7774 },
7775 "PUT" : {
7776 "allowtoken" : 1,
7777 "description" : "Update sdn ipam object configuration.",
7778 "method" : "PUT",
7779 "name" : "update",
7780 "parameters" : {
7781 "additionalProperties" : 0,
7782 "properties" : {
7783 "delete" : {
7784 "description" : "A list of settings you want to delete.",
7785 "format" : "pve-configid-list",
7786 "maxLength" : 4096,
7787 "optional" : 1,
7788 "type" : "string",
7789 "typetext" : "<string>"
7790 },
7791 "digest" : {
7792 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7793 "maxLength" : 40,
7794 "optional" : 1,
7795 "type" : "string",
7796 "typetext" : "<string>"
7797 },
7798 "ipam" : {
7799 "description" : "The SDN ipam object identifier.",
7800 "format" : "pve-sdn-ipam-id",
7801 "type" : "string",
7802 "typetext" : "<string>"
7803 },
7804 "section" : {
7805 "optional" : 1,
7806 "type" : "integer",
7807 "typetext" : "<integer>"
7808 },
7809 "token" : {
7810 "optional" : 1,
7811 "type" : "string",
7812 "typetext" : "<string>"
7813 },
7814 "url" : {
7815 "optional" : 1,
7816 "type" : "string",
7817 "typetext" : "<string>"
7818 }
7819 },
7820 "type" : "object"
7821 },
7822 "permissions" : {
7823 "check" : [
7824 "perm",
7825 "/sdn/ipams",
7826 [
7827 "SDN.Allocate"
7828 ]
7829 ]
7830 },
7831 "protected" : 1,
7832 "returns" : {
7833 "type" : "null"
7834 }
c5aa7e14
TL
7835 }
7836 },
d2656385
TL
7837 "leaf" : 1,
7838 "path" : "/cluster/sdn/ipams/{ipam}",
7839 "text" : "{ipam}"
7aacca6f 7840 }
d2656385
TL
7841 ],
7842 "info" : {
7843 "GET" : {
7844 "allowtoken" : 1,
7845 "description" : "SDN ipams index.",
7846 "method" : "GET",
7847 "name" : "index",
7848 "parameters" : {
7849 "additionalProperties" : 0,
7850 "properties" : {
7851 "type" : {
7852 "description" : "Only list sdn ipams of specific type",
7853 "enum" : [
7854 "netbox",
7855 "phpipam",
7856 "pve"
7857 ],
7858 "optional" : 1,
7859 "type" : "string"
7860 }
7861 }
7862 },
7863 "permissions" : {
7864 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/ipams/<ipam>'",
7865 "user" : "all"
7866 },
7867 "returns" : {
7868 "items" : {
7869 "properties" : {
7870 "ipam" : {
7871 "type" : "string"
7872 },
7873 "type" : {
7874 "type" : "string"
7875 }
7876 },
7877 "type" : "object"
7878 },
7879 "links" : [
7880 {
7881 "href" : "{ipam}",
7882 "rel" : "child"
7883 }
44660702 7884 ],
d2656385
TL
7885 "type" : "array"
7886 }
7887 },
7888 "POST" : {
7889 "allowtoken" : 1,
7890 "description" : "Create a new sdn ipam object.",
7891 "method" : "POST",
7892 "name" : "create",
7893 "parameters" : {
7894 "additionalProperties" : 0,
7895 "properties" : {
7896 "ipam" : {
7897 "description" : "The SDN ipam object identifier.",
7898 "format" : "pve-sdn-ipam-id",
7899 "type" : "string",
7900 "typetext" : "<string>"
7901 },
7902 "section" : {
7903 "optional" : 1,
7904 "type" : "integer",
7905 "typetext" : "<integer>"
7906 },
7907 "token" : {
7908 "optional" : 1,
7909 "type" : "string",
7910 "typetext" : "<string>"
7911 },
7912 "type" : {
7913 "description" : "Plugin type.",
7914 "enum" : [
7915 "netbox",
7916 "phpipam",
7917 "pve"
7918 ],
7919 "format" : "pve-configid",
7920 "type" : "string"
7921 },
7922 "url" : {
7923 "optional" : 1,
7924 "type" : "string",
7925 "typetext" : "<string>"
7926 }
7927 },
7928 "type" : "object"
7929 },
7930 "permissions" : {
7931 "check" : [
7932 "perm",
7933 "/sdn/ipams",
7934 [
7935 "SDN.Allocate"
7936 ]
7937 ]
7938 },
7939 "protected" : 1,
7940 "returns" : {
7941 "type" : "null"
56122987
DM
7942 }
7943 }
7944 },
d2656385
TL
7945 "leaf" : 0,
7946 "path" : "/cluster/sdn/ipams",
7947 "text" : "ipams"
7948 },
7949 {
7950 "children" : [
7951 {
7952 "info" : {
7953 "DELETE" : {
7954 "allowtoken" : 1,
7955 "description" : "Delete sdn dns object configuration.",
7956 "method" : "DELETE",
7957 "name" : "delete",
7958 "parameters" : {
7959 "additionalProperties" : 0,
7960 "properties" : {
7961 "dns" : {
7962 "description" : "The SDN dns object identifier.",
7963 "format" : "pve-sdn-dns-id",
7964 "type" : "string",
7965 "typetext" : "<string>"
7966 }
7967 }
7968 },
7969 "permissions" : {
7970 "check" : [
7971 "perm",
7972 "/sdn/dns",
7973 [
7974 "SDN.Allocate"
7975 ]
7976 ]
7977 },
7978 "protected" : 1,
7979 "returns" : {
7980 "type" : "null"
7981 }
7982 },
7983 "GET" : {
7984 "allowtoken" : 1,
7985 "description" : "Read sdn dns configuration.",
7986 "method" : "GET",
7987 "name" : "read",
7988 "parameters" : {
7989 "additionalProperties" : 0,
7990 "properties" : {
7991 "dns" : {
7992 "description" : "The SDN dns object identifier.",
7993 "format" : "pve-sdn-dns-id",
7994 "type" : "string",
7995 "typetext" : "<string>"
7996 }
7997 }
7998 },
7999 "permissions" : {
8000 "check" : [
8001 "perm",
8002 "/sdn/dns/{dns}",
8003 [
8004 "SDN.Allocate"
8005 ]
8006 ]
8007 },
8008 "returns" : {
8009 "type" : "object"
8010 }
8011 },
8012 "PUT" : {
8013 "allowtoken" : 1,
8014 "description" : "Update sdn dns object configuration.",
8015 "method" : "PUT",
8016 "name" : "update",
8017 "parameters" : {
8018 "additionalProperties" : 0,
8019 "properties" : {
8020 "delete" : {
8021 "description" : "A list of settings you want to delete.",
8022 "format" : "pve-configid-list",
8023 "maxLength" : 4096,
8024 "optional" : 1,
8025 "type" : "string",
8026 "typetext" : "<string>"
8027 },
8028 "digest" : {
8029 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
8030 "maxLength" : 40,
8031 "optional" : 1,
8032 "type" : "string",
8033 "typetext" : "<string>"
8034 },
8035 "dns" : {
8036 "description" : "The SDN dns object identifier.",
8037 "format" : "pve-sdn-dns-id",
8038 "type" : "string",
8039 "typetext" : "<string>"
8040 },
8041 "key" : {
8042 "optional" : 1,
8043 "type" : "string",
8044 "typetext" : "<string>"
8045 },
8046 "reversemaskv6" : {
8047 "optional" : 1,
8048 "type" : "integer",
8049 "typetext" : "<integer>"
8050 },
8051 "ttl" : {
8052 "optional" : 1,
8053 "type" : "integer",
8054 "typetext" : "<integer>"
8055 },
8056 "url" : {
8057 "optional" : 1,
8058 "type" : "string",
8059 "typetext" : "<string>"
8060 }
8061 },
8062 "type" : "object"
8063 },
8064 "permissions" : {
8065 "check" : [
8066 "perm",
8067 "/sdn/dns",
8068 [
8069 "SDN.Allocate"
8070 ]
8071 ]
8072 },
8073 "protected" : 1,
8074 "returns" : {
8075 "type" : "null"
8076 }
8077 }
8078 },
8079 "leaf" : 1,
8080 "path" : "/cluster/sdn/dns/{dns}",
8081 "text" : "{dns}"
8082 }
8083 ],
8084 "info" : {
8085 "GET" : {
8086 "allowtoken" : 1,
8087 "description" : "SDN dns index.",
8088 "method" : "GET",
8089 "name" : "index",
8090 "parameters" : {
8091 "additionalProperties" : 0,
8092 "properties" : {
8093 "type" : {
8094 "description" : "Only list sdn dns of specific type",
8095 "enum" : [
8096 "powerdns"
8097 ],
8098 "optional" : 1,
8099 "type" : "string"
8100 }
8101 }
8102 },
8103 "permissions" : {
8104 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/dns/<dns>'",
8105 "user" : "all"
8106 },
8107 "returns" : {
8108 "items" : {
8109 "properties" : {
8110 "dns" : {
8111 "type" : "string"
8112 },
8113 "type" : {
8114 "type" : "string"
8115 }
8116 },
8117 "type" : "object"
8118 },
8119 "links" : [
8120 {
8121 "href" : "{dns}",
8122 "rel" : "child"
8123 }
8124 ],
8125 "type" : "array"
8126 }
8127 },
8128 "POST" : {
8129 "allowtoken" : 1,
8130 "description" : "Create a new sdn dns object.",
8131 "method" : "POST",
8132 "name" : "create",
8133 "parameters" : {
8134 "additionalProperties" : 0,
8135 "properties" : {
8136 "dns" : {
8137 "description" : "The SDN dns object identifier.",
8138 "format" : "pve-sdn-dns-id",
8139 "type" : "string",
8140 "typetext" : "<string>"
8141 },
8142 "key" : {
8143 "optional" : 0,
8144 "type" : "string",
8145 "typetext" : "<string>"
8146 },
8147 "reversemaskv6" : {
8148 "optional" : 1,
8149 "type" : "integer",
8150 "typetext" : "<integer>"
8151 },
8152 "reversev6mask" : {
8153 "optional" : 1,
8154 "type" : "integer",
8155 "typetext" : "<integer>"
8156 },
8157 "ttl" : {
8158 "optional" : 1,
8159 "type" : "integer",
8160 "typetext" : "<integer>"
8161 },
8162 "type" : {
8163 "description" : "Plugin type.",
8164 "enum" : [
8165 "powerdns"
8166 ],
8167 "format" : "pve-configid",
8168 "type" : "string"
8169 },
8170 "url" : {
8171 "optional" : 0,
8172 "type" : "string",
8173 "typetext" : "<string>"
8174 }
8175 },
8176 "type" : "object"
8177 },
8178 "permissions" : {
8179 "check" : [
8180 "perm",
8181 "/sdn/dns",
8182 [
8183 "SDN.Allocate"
8184 ]
8185 ]
8186 },
8187 "protected" : 1,
8188 "returns" : {
8189 "type" : "null"
8190 }
8191 }
8192 },
8193 "leaf" : 0,
8194 "path" : "/cluster/sdn/dns",
8195 "text" : "dns"
8196 }
8197 ],
8198 "info" : {
8199 "GET" : {
8200 "allowtoken" : 1,
8201 "description" : "Directory index.",
8202 "method" : "GET",
8203 "name" : "index",
8204 "parameters" : {
8205 "additionalProperties" : 0
8206 },
8207 "permissions" : {
8208 "check" : [
8209 "perm",
8210 "/",
8211 [
8212 "SDN.Audit"
8213 ]
8214 ]
8215 },
8216 "returns" : {
8217 "items" : {
8218 "properties" : {
8219 "id" : {
8220 "type" : "string"
8221 }
8222 },
8223 "type" : "object"
8224 },
8225 "links" : [
8226 {
8227 "href" : "{id}",
8228 "rel" : "child"
8229 }
8230 ],
8231 "type" : "array"
8232 }
8233 },
8234 "PUT" : {
8235 "allowtoken" : 1,
8236 "description" : "Apply sdn controller changes && reload.",
8237 "method" : "PUT",
8238 "name" : "reload",
8239 "parameters" : {
8240 "additionalProperties" : 0
8241 },
8242 "permissions" : {
8243 "check" : [
8244 "perm",
8245 "/sdn",
8246 [
8247 "SDN.Allocate"
8248 ]
8249 ]
8250 },
8251 "protected" : 1,
8252 "returns" : {
8253 "type" : "string"
8254 }
8255 }
8256 },
8257 "leaf" : 0,
8258 "path" : "/cluster/sdn",
8259 "text" : "sdn"
8260 },
8261 {
8262 "info" : {
8263 "GET" : {
8264 "allowtoken" : 1,
8265 "description" : "Read cluster log",
8266 "method" : "GET",
8267 "name" : "log",
8268 "parameters" : {
8269 "additionalProperties" : 0,
8270 "properties" : {
8271 "max" : {
8272 "description" : "Maximum number of entries.",
8273 "minimum" : 1,
8274 "optional" : 1,
8275 "type" : "integer",
8276 "typetext" : "<integer> (1 - N)"
8277 }
8278 }
8279 },
8280 "permissions" : {
8281 "user" : "all"
8282 },
8283 "returns" : {
8284 "items" : {
8285 "properties" : {},
8286 "type" : "object"
8287 },
8288 "type" : "array"
8289 }
8290 }
8291 },
8292 "leaf" : 1,
8293 "path" : "/cluster/log",
8294 "text" : "log"
8295 },
8296 {
8297 "info" : {
8298 "GET" : {
8299 "allowtoken" : 1,
8300 "description" : "Resources index (cluster wide).",
8301 "method" : "GET",
8302 "name" : "resources",
8303 "parameters" : {
8304 "additionalProperties" : 0,
8305 "properties" : {
8306 "type" : {
8307 "enum" : [
8308 "vm",
8309 "storage",
8310 "node",
8311 "sdn"
8312 ],
8313 "optional" : 1,
8314 "type" : "string"
8315 }
8316 }
8317 },
8318 "permissions" : {
8319 "user" : "all"
8320 },
8321 "returns" : {
8322 "items" : {
8323 "properties" : {
8324 "content" : {
8325 "description" : "Allowed storage content types (when type == storage).",
8326 "format" : "pve-storage-content-list",
8327 "optional" : 1,
8328 "type" : "string"
8329 },
8330 "cpu" : {
8331 "description" : "CPU utilization (when type in node,qemu,lxc).",
4d47f125
TL
8332 "optional" : 1,
8333 "renderer" : "fraction_as_percentage",
8334 "type" : "number"
8335 },
8336 "disk" : {
8337 "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
8338 "optional" : 1,
8339 "renderer" : "bytes",
8340 "type" : "string"
8341 },
8342 "hastate" : {
8343 "description" : "HA service status (for HA managed VMs).",
8344 "optional" : 1,
8345 "type" : "string"
8346 },
8347 "id" : {
8348 "type" : "string"
8349 },
8350 "level" : {
8351 "description" : "Support level (when type == node).",
8352 "optional" : 1,
8353 "type" : "string"
8354 },
8355 "maxcpu" : {
8356 "description" : "Number of available CPUs (when type in node,qemu,lxc).",
8357 "optional" : 1,
8358 "type" : "number"
8359 },
8360 "maxdisk" : {
8361 "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
8362 "optional" : 1,
8363 "renderer" : "bytes",
8364 "type" : "integer"
8365 },
8366 "maxmem" : {
8367 "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
8368 "optional" : 1,
8369 "renderer" : "bytes",
8370 "type" : "integer"
8371 },
8372 "mem" : {
8373 "description" : "Used memory in bytes (when type in node,qemu,lxc).",
8374 "optional" : 1,
8375 "renderer" : "bytes",
8376 "type" : "string"
8377 },
34f3e481
TL
8378 "name" : {
8379 "description" : "Name of the resource.",
8380 "optional" : 1,
8381 "type" : "string"
8382 },
4d47f125
TL
8383 "node" : {
8384 "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
8385 "format" : "pve-node",
8386 "optional" : 1,
8387 "type" : "string"
8388 },
d2656385
TL
8389 "plugintype" : {
8390 "description" : "More specific type, if available.",
8391 "optional" : 1,
8392 "type" : "string"
8393 },
4d47f125
TL
8394 "pool" : {
8395 "description" : "The pool name (when type in pool,qemu,lxc).",
8396 "optional" : 1,
8397 "type" : "string"
8398 },
8399 "status" : {
8400 "description" : "Resource type dependent status.",
8401 "optional" : 1,
8402 "type" : "string"
8403 },
8404 "storage" : {
8405 "description" : "The storage identifier (when type == storage).",
8406 "format" : "pve-storage-id",
8407 "optional" : 1,
8408 "type" : "string"
8409 },
8410 "type" : {
8411 "description" : "Resource type.",
8412 "enum" : [
8413 "node",
8414 "storage",
8415 "pool",
8416 "qemu",
8417 "lxc",
1c532546
TL
8418 "openvz",
8419 "sdn"
4d47f125
TL
8420 ],
8421 "type" : "string"
8422 },
8423 "uptime" : {
8424 "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
8425 "optional" : 1,
8426 "renderer" : "duration",
8427 "type" : "integer"
8428 }
8429 },
44660702
DM
8430 "type" : "object"
8431 },
8432 "type" : "array"
8433 }
56122987
DM
8434 }
8435 },
7aacca6f 8436 "leaf" : 1,
44660702
DM
8437 "path" : "/cluster/resources",
8438 "text" : "resources"
56122987
DM
8439 },
8440 {
56122987
DM
8441 "info" : {
8442 "GET" : {
e9cd3bd4 8443 "allowtoken" : 1,
7aacca6f 8444 "description" : "List recent tasks (cluster wide).",
44660702 8445 "method" : "GET",
7aacca6f 8446 "name" : "tasks",
56122987
DM
8447 "parameters" : {
8448 "additionalProperties" : 0
8449 },
44660702
DM
8450 "permissions" : {
8451 "user" : "all"
8452 },
56122987
DM
8453 "returns" : {
8454 "items" : {
8455 "properties" : {
8456 "upid" : {
8457 "type" : "string"
8458 }
44660702
DM
8459 },
8460 "type" : "object"
8461 },
8462 "type" : "array"
7aacca6f 8463 }
56122987
DM
8464 }
8465 },
7aacca6f 8466 "leaf" : 1,
44660702
DM
8467 "path" : "/cluster/tasks",
8468 "text" : "tasks"
56122987
DM
8469 },
8470 {
56122987 8471 "info" : {
7aacca6f 8472 "GET" : {
e9cd3bd4 8473 "allowtoken" : 1,
44660702
DM
8474 "description" : "Get datacenter options.",
8475 "method" : "GET",
8476 "name" : "get_options",
56122987 8477 "parameters" : {
7aacca6f
DM
8478 "additionalProperties" : 0
8479 },
8480 "permissions" : {
8481 "check" : [
8482 "perm",
8483 "/",
8484 [
8485 "Sys.Audit"
8486 ]
8487 ]
8488 },
7aacca6f 8489 "returns" : {
44660702 8490 "type" : "object"
7aacca6f
DM
8491 }
8492 },
8493 "PUT" : {
e9cd3bd4 8494 "allowtoken" : 1,
44660702
DM
8495 "description" : "Set datacenter options.",
8496 "method" : "PUT",
7aacca6f
DM
8497 "name" : "set_options",
8498 "parameters" : {
8499 "additionalProperties" : 0,
8500 "properties" : {
27a7acb2
DM
8501 "bwlimit" : {
8502 "description" : "Set bandwidth/io limits various operations.",
8503 "format" : {
8504 "clone" : {
95895385 8505 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
8506 "format_description" : "LIMIT",
8507 "minimum" : "0",
8508 "optional" : 1,
8509 "type" : "number"
8510 },
8511 "default" : {
95895385 8512 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
8513 "format_description" : "LIMIT",
8514 "minimum" : "0",
8515 "optional" : 1,
8516 "type" : "number"
8517 },
8518 "migration" : {
95895385 8519 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
8520 "format_description" : "LIMIT",
8521 "minimum" : "0",
8522 "optional" : 1,
8523 "type" : "number"
8524 },
8525 "move" : {
95895385 8526 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
8527 "format_description" : "LIMIT",
8528 "minimum" : "0",
8529 "optional" : 1,
8530 "type" : "number"
8531 },
8532 "restore" : {
95895385 8533 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
8534 "format_description" : "LIMIT",
8535 "minimum" : "0",
8536 "optional" : 1,
8537 "type" : "number"
8538 }
8539 },
8540 "optional" : 1,
8541 "type" : "string",
8542 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
8543 },
56122987 8544 "console" : {
a9a8e3d1 8545 "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
8546 "enum" : [
8547 "applet",
8548 "vv",
a9a8e3d1
DM
8549 "html5",
8550 "xtermjs"
44660702
DM
8551 ],
8552 "optional" : 1,
8553 "type" : "string"
56122987 8554 },
7aacca6f 8555 "delete" : {
7aacca6f 8556 "description" : "A list of settings you want to delete.",
44660702 8557 "format" : "pve-configid-list",
7aacca6f 8558 "optional" : 1,
013dc89f
DM
8559 "type" : "string",
8560 "typetext" : "<string>"
7aacca6f 8561 },
5370fa8c
TL
8562 "description" : {
8563 "description" : "Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.",
8564 "maxLength" : 65536,
8565 "optional" : 1,
8566 "type" : "string",
8567 "typetext" : "<string>"
8568 },
44660702
DM
8569 "email_from" : {
8570 "description" : "Specify email address to send notification from (default is root@$hostname)",
8571 "format" : "email-opt",
7aacca6f 8572 "optional" : 1,
013dc89f
DM
8573 "type" : "string",
8574 "typetext" : "<string>"
44660702
DM
8575 },
8576 "fencing" : {
8577 "default" : "watchdog",
8578 "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 8579 "enum" : [
44660702
DM
8580 "watchdog",
8581 "hardware",
8582 "both"
7aacca6f 8583 ],
44660702
DM
8584 "optional" : 1,
8585 "type" : "string"
8586 },
5f26e15b
TL
8587 "ha" : {
8588 "description" : "Cluster wide HA settings.",
8589 "format" : {
8590 "shutdown_policy" : {
8591 "default" : "conditional",
5c1699e5 8592 "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
8593 "enum" : [
8594 "freeze",
8595 "failover",
5c1699e5
TL
8596 "conditional",
8597 "migrate"
5f26e15b
TL
8598 ],
8599 "type" : "string",
e9cd3bd4 8600 "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
8601 }
8602 },
8603 "optional" : 1,
8604 "type" : "string",
5c1699e5 8605 "typetext" : "shutdown_policy=<enum>"
5f26e15b 8606 },
44660702
DM
8607 "http_proxy" : {
8608 "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
8609 "optional" : 1,
8610 "pattern" : "http://.*",
8611 "type" : "string"
7aacca6f 8612 },
56122987 8613 "keyboard" : {
44660702 8614 "description" : "Default keybord layout for vnc server.",
56122987 8615 "enum" : [
44660702
DM
8616 "de",
8617 "de-ch",
7aacca6f 8618 "da",
56122987 8619 "en-gb",
44660702
DM
8620 "en-us",
8621 "es",
8622 "fi",
8623 "fr",
8624 "fr-be",
8625 "fr-ca",
8626 "fr-ch",
8627 "hu",
7aacca6f 8628 "is",
44660702
DM
8629 "it",
8630 "ja",
8631 "lt",
56122987 8632 "mk",
7aacca6f 8633 "nl",
56122987 8634 "no",
44660702 8635 "pl",
7aacca6f 8636 "pt",
44660702
DM
8637 "pt-br",
8638 "sv",
8639 "sl",
8640 "tr"
56122987 8641 ],
56122987
DM
8642 "optional" : 1,
8643 "type" : "string"
8644 },
44660702
DM
8645 "language" : {
8646 "description" : "Default GUI language.",
8647 "enum" : [
4d47f125 8648 "ca",
1c532546
TL
8649 "da",
8650 "de",
44660702 8651 "en",
1c532546 8652 "es",
4d47f125 8653 "eu",
1c532546 8654 "fa",
4d47f125 8655 "fr",
1c532546 8656 "he",
4d47f125 8657 "it",
4d47f125
TL
8658 "ja",
8659 "nb",
8660 "nn",
4d47f125
TL
8661 "pl",
8662 "pt_BR",
8663 "ru",
8664 "sl",
8665 "sv",
1c532546
TL
8666 "tr",
8667 "zh_CN",
8668 "zh_TW"
44660702 8669 ],
56122987 8670 "optional" : 1,
44660702 8671 "type" : "string"
56122987 8672 },
4bd7df8b
DM
8673 "mac_prefix" : {
8674 "description" : "Prefix for autogenerated MAC addresses.",
95895385 8675 "format" : "mac-prefix",
4bd7df8b 8676 "optional" : 1,
95895385
TL
8677 "type" : "string",
8678 "typetext" : "<string>"
4bd7df8b 8679 },
44660702
DM
8680 "max_workers" : {
8681 "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
8682 "minimum" : 1,
56122987 8683 "optional" : 1,
4bd7df8b 8684 "type" : "integer",
013dc89f 8685 "typetext" : "<integer> (1 - N)"
56122987 8686 },
de0983cb
DM
8687 "migration" : {
8688 "description" : "For cluster wide migration settings.",
8689 "format" : {
8690 "network" : {
8691 "description" : "CIDR of the (sub) network that is used for migration.",
8692 "format" : "CIDR",
8693 "format_description" : "CIDR",
8694 "optional" : 1,
8695 "type" : "string"
8696 },
8697 "type" : {
8698 "default" : "secure",
8699 "default_key" : 1,
8700 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
8701 "enum" : [
8702 "secure",
8703 "insecure"
8704 ],
8705 "type" : "string"
8706 }
8707 },
8708 "optional" : 1,
8709 "type" : "string",
8710 "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
8711 },
7aacca6f 8712 "migration_unsecure" : {
de0983cb 8713 "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 8714 "optional" : 1,
013dc89f
DM
8715 "type" : "boolean",
8716 "typetext" : "<boolean>"
95895385
TL
8717 },
8718 "u2f" : {
8719 "description" : "u2f",
8720 "format" : {
8721 "appid" : {
8722 "description" : "U2F AppId URL override. Defaults to the origin.",
8723 "format_description" : "APPID",
8724 "optional" : 1,
8725 "type" : "string"
8726 },
8727 "origin" : {
8728 "description" : "U2F Origin override. Mostly useful for single nodes with a single URL.",
8729 "format_description" : "URL",
8730 "optional" : 1,
8731 "type" : "string"
8732 }
8733 },
8734 "optional" : 1,
8735 "type" : "string",
8736 "typetext" : "[appid=<APPID>] [,origin=<URL>]"
5370fa8c
TL
8737 },
8738 "webauthn" : {
8739 "description" : "webauthn configuration",
8740 "format" : {
8741 "id" : {
8742 "description" : "Relying part ID. Must be the domain name without protocol, port or location. Changing this *will* break existing credentials.",
8743 "format_description" : "DOMAINNAME",
8744 "optional" : 1,
8745 "type" : "string"
8746 },
8747 "origin" : {
8748 "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.",
8749 "format_description" : "URL",
8750 "optional" : 1,
8751 "type" : "string"
8752 },
8753 "rp" : {
8754 "description" : "Relying party name. Any text identifier. Changing this *may* break existing credentials.",
8755 "format_description" : "RELYING_PARTY",
8756 "optional" : 1,
8757 "type" : "string"
8758 }
8759 },
8760 "optional" : 1,
8761 "type" : "string",
8762 "typetext" : "[id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>]"
56122987
DM
8763 }
8764 }
8765 },
44660702
DM
8766 "permissions" : {
8767 "check" : [
8768 "perm",
8769 "/",
8770 [
8771 "Sys.Modify"
8772 ]
8773 ]
8774 },
56122987 8775 "protected" : 1,
7aacca6f
DM
8776 "returns" : {
8777 "type" : "null"
44660702 8778 }
7aacca6f
DM
8779 }
8780 },
44660702
DM
8781 "leaf" : 1,
8782 "path" : "/cluster/options",
7aacca6f
DM
8783 "text" : "options"
8784 },
8785 {
7aacca6f 8786 "info" : {
56122987 8787 "GET" : {
e9cd3bd4 8788 "allowtoken" : 1,
1e3f8156 8789 "description" : "Get cluster status information.",
44660702
DM
8790 "method" : "GET",
8791 "name" : "get_status",
56122987
DM
8792 "parameters" : {
8793 "additionalProperties" : 0
8794 },
56122987
DM
8795 "permissions" : {
8796 "check" : [
8797 "perm",
8798 "/",
8799 [
8800 "Sys.Audit"
8801 ]
8802 ]
8803 },
7aacca6f 8804 "protected" : 1,
56122987 8805 "returns" : {
56122987 8806 "items" : {
56122987 8807 "properties" : {
e9cd3bd4
TL
8808 "id" : {
8809 "type" : "string"
8810 },
8811 "ip" : {
8812 "description" : "[node] IP of the resolved nodename.",
8813 "optional" : 1,
8814 "type" : "string"
8815 },
8816 "level" : {
8817 "description" : "[node] Proxmox VE Subscription level, indicates if eligible for enterprise support as well as access to the stable Proxmox VE Enterprise Repository.",
8818 "optional" : 1,
8819 "type" : "string"
8820 },
8821 "local" : {
8822 "description" : "[node] Indicates if this is the responding node.",
8823 "optional" : 1,
8824 "type" : "boolean"
8825 },
8826 "name" : {
8827 "type" : "string"
8828 },
8829 "nodeid" : {
8830 "description" : "[node] ID of the node from the corosync configuration.",
8831 "optional" : 1,
8832 "type" : "integer"
8833 },
8834 "nodes" : {
8835 "description" : "[cluster] Nodes count, including offline nodes.",
8836 "optional" : 1,
8837 "type" : "integer"
8838 },
8839 "online" : {
8840 "description" : "[node] Indicates if the node is online or offline.",
8841 "optional" : 1,
8842 "type" : "boolean"
8843 },
8844 "quorate" : {
8845 "description" : "[cluster] Indicates if there is a majority of nodes online to make decisions",
8846 "optional" : 1,
8847 "type" : "boolean"
8848 },
56122987 8849 "type" : {
e9cd3bd4
TL
8850 "description" : "Indicates the type, either cluster or node. The type defines the object properties e.g. quorate available for type cluster.",
8851 "enum" : [
8852 "cluster",
8853 "node"
8854 ],
56122987 8855 "type" : "string"
e9cd3bd4
TL
8856 },
8857 "version" : {
8858 "description" : "[cluster] Current version of the corosync configuration file.",
8859 "optional" : 1,
8860 "type" : "integer"
56122987 8861 }
44660702
DM
8862 },
8863 "type" : "object"
7aacca6f
DM
8864 },
8865 "type" : "array"
56122987
DM
8866 }
8867 }
8868 },
44660702 8869 "leaf" : 1,
7aacca6f 8870 "path" : "/cluster/status",
44660702 8871 "text" : "status"
56122987
DM
8872 },
8873 {
56122987
DM
8874 "info" : {
8875 "GET" : {
e9cd3bd4 8876 "allowtoken" : 1,
56122987 8877 "description" : "Get next free VMID. If you pass an VMID it will raise an error if the ID is already used.",
44660702
DM
8878 "method" : "GET",
8879 "name" : "nextid",
56122987 8880 "parameters" : {
44660702 8881 "additionalProperties" : 0,
56122987
DM
8882 "properties" : {
8883 "vmid" : {
44660702 8884 "description" : "The (unique) ID of the VM.",
56122987 8885 "format" : "pve-vmid",
7aacca6f 8886 "minimum" : 1,
7aacca6f 8887 "optional" : 1,
4bd7df8b 8888 "type" : "integer",
013dc89f 8889 "typetext" : "<integer> (1 - N)"
56122987 8890 }
44660702 8891 }
56122987 8892 },
7aacca6f
DM
8893 "permissions" : {
8894 "user" : "all"
44660702
DM
8895 },
8896 "returns" : {
8897 "description" : "The next free VMID.",
8898 "type" : "integer"
7aacca6f 8899 }
56122987
DM
8900 }
8901 },
7aacca6f 8902 "leaf" : 1,
44660702
DM
8903 "path" : "/cluster/nextid",
8904 "text" : "nextid"
56122987
DM
8905 }
8906 ],
44660702
DM
8907 "info" : {
8908 "GET" : {
e9cd3bd4 8909 "allowtoken" : 1,
44660702
DM
8910 "description" : "Cluster index.",
8911 "method" : "GET",
8912 "name" : "index",
8913 "parameters" : {
8914 "additionalProperties" : 0
8915 },
8916 "permissions" : {
8917 "user" : "all"
8918 },
8919 "returns" : {
8920 "items" : {
8921 "properties" : {},
8922 "type" : "object"
8923 },
8924 "links" : [
8925 {
8926 "href" : "{name}",
8927 "rel" : "child"
8928 }
8929 ],
8930 "type" : "array"
8931 }
8932 }
8933 },
8934 "leaf" : 0,
8935 "path" : "/cluster",
7aacca6f 8936 "text" : "cluster"
56122987
DM
8937 },
8938 {
56122987
DM
8939 "children" : [
8940 {
7aacca6f
DM
8941 "children" : [
8942 {
8943 "children" : [
8944 {
56122987
DM
8945 "children" : [
8946 {
56122987
DM
8947 "children" : [
8948 {
8949 "children" : [
8950 {
56122987
DM
8951 "info" : {
8952 "DELETE" : {
e9cd3bd4 8953 "allowtoken" : 1,
44660702 8954 "description" : "Delete rule.",
7aacca6f 8955 "method" : "DELETE",
44660702 8956 "name" : "delete_rule",
56122987 8957 "parameters" : {
44660702 8958 "additionalProperties" : 0,
56122987 8959 "properties" : {
44660702
DM
8960 "digest" : {
8961 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
8962 "maxLength" : 40,
8963 "optional" : 1,
013dc89f
DM
8964 "type" : "string",
8965 "typetext" : "<string>"
44660702 8966 },
56122987 8967 "node" : {
7aacca6f 8968 "description" : "The cluster node name.",
44660702 8969 "format" : "pve-node",
013dc89f
DM
8970 "type" : "string",
8971 "typetext" : "<string>"
7aacca6f 8972 },
56122987 8973 "pos" : {
7aacca6f 8974 "description" : "Update rule at position <pos>.",
44660702 8975 "minimum" : 0,
56122987 8976 "optional" : 1,
4bd7df8b 8977 "type" : "integer",
013dc89f 8978 "typetext" : "<integer> (0 - N)"
44660702
DM
8979 },
8980 "vmid" : {
8981 "description" : "The (unique) ID of the VM.",
8982 "format" : "pve-vmid",
8983 "minimum" : 1,
4bd7df8b 8984 "type" : "integer",
013dc89f 8985 "typetext" : "<integer> (1 - N)"
56122987 8986 }
44660702 8987 }
7aacca6f 8988 },
56122987
DM
8989 "permissions" : {
8990 "check" : [
8991 "perm",
8992 "/vms/{vmid}",
8993 [
8994 "VM.Config.Network"
8995 ]
8996 ]
8997 },
44660702
DM
8998 "protected" : 1,
8999 "proxyto" : null,
56122987
DM
9000 "returns" : {
9001 "type" : "null"
44660702
DM
9002 }
9003 },
9004 "GET" : {
e9cd3bd4 9005 "allowtoken" : 1,
44660702
DM
9006 "description" : "Get single rule data.",
9007 "method" : "GET",
9008 "name" : "get_rule",
9009 "parameters" : {
9010 "additionalProperties" : 0,
9011 "properties" : {
9012 "node" : {
9013 "description" : "The cluster node name.",
9014 "format" : "pve-node",
013dc89f
DM
9015 "type" : "string",
9016 "typetext" : "<string>"
44660702
DM
9017 },
9018 "pos" : {
9019 "description" : "Update rule at position <pos>.",
9020 "minimum" : 0,
9021 "optional" : 1,
4bd7df8b 9022 "type" : "integer",
013dc89f 9023 "typetext" : "<integer> (0 - N)"
44660702
DM
9024 },
9025 "vmid" : {
9026 "description" : "The (unique) ID of the VM.",
9027 "format" : "pve-vmid",
9028 "minimum" : 1,
4bd7df8b 9029 "type" : "integer",
013dc89f 9030 "typetext" : "<integer> (1 - N)"
44660702
DM
9031 }
9032 }
56122987 9033 },
56122987
DM
9034 "permissions" : {
9035 "check" : [
9036 "perm",
9037 "/vms/{vmid}",
9038 [
44660702 9039 "VM.Audit"
56122987
DM
9040 ]
9041 ]
9042 },
56122987 9043 "proxyto" : null,
44660702
DM
9044 "returns" : {
9045 "properties" : {
e2d681b3
TL
9046 "action" : {
9047 "type" : "string"
9048 },
9049 "comment" : {
9050 "optional" : 1,
9051 "type" : "string"
9052 },
9053 "dest" : {
9054 "optional" : 1,
9055 "type" : "string"
9056 },
9057 "dport" : {
9058 "optional" : 1,
9059 "type" : "string"
9060 },
9061 "enable" : {
9062 "optional" : 1,
9063 "type" : "integer"
9064 },
4772952b
TL
9065 "icmp-type" : {
9066 "optional" : 1,
9067 "type" : "string"
9068 },
e2d681b3
TL
9069 "iface" : {
9070 "optional" : 1,
9071 "type" : "string"
9072 },
9073 "ipversion" : {
9074 "optional" : 1,
9075 "type" : "integer"
9076 },
95895385
TL
9077 "log" : {
9078 "description" : "Log level for firewall rule",
9079 "enum" : [
9080 "emerg",
9081 "alert",
9082 "crit",
9083 "err",
9084 "warning",
9085 "notice",
9086 "info",
9087 "debug",
9088 "nolog"
9089 ],
9090 "optional" : 1,
9091 "type" : "string"
9092 },
e2d681b3
TL
9093 "macro" : {
9094 "optional" : 1,
5f26e15b 9095 "type" : "string"
e2d681b3 9096 },
44660702
DM
9097 "pos" : {
9098 "type" : "integer"
e2d681b3
TL
9099 },
9100 "proto" : {
9101 "optional" : 1,
9102 "type" : "string"
9103 },
9104 "source" : {
9105 "optional" : 1,
9106 "type" : "string"
9107 },
9108 "sport" : {
9109 "optional" : 1,
9110 "type" : "string"
9111 },
9112 "type" : {
9113 "type" : "string"
44660702
DM
9114 }
9115 },
9116 "type" : "object"
9117 }
9118 },
9119 "PUT" : {
e9cd3bd4 9120 "allowtoken" : 1,
7aacca6f
DM
9121 "description" : "Modify rule data.",
9122 "method" : "PUT",
44660702 9123 "name" : "update_rule",
56122987 9124 "parameters" : {
44660702 9125 "additionalProperties" : 0,
56122987 9126 "properties" : {
44660702
DM
9127 "action" : {
9128 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
9129 "maxLength" : 20,
9130 "minLength" : 2,
56122987 9131 "optional" : 1,
44660702 9132 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
9133 "type" : "string"
9134 },
7aacca6f 9135 "comment" : {
e94f0d56 9136 "description" : "Descriptive comment.",
7aacca6f 9137 "optional" : 1,
013dc89f
DM
9138 "type" : "string",
9139 "typetext" : "<string>"
7aacca6f
DM
9140 },
9141 "delete" : {
7aacca6f 9142 "description" : "A list of settings you want to delete.",
44660702
DM
9143 "format" : "pve-configid-list",
9144 "optional" : 1,
013dc89f
DM
9145 "type" : "string",
9146 "typetext" : "<string>"
7aacca6f
DM
9147 },
9148 "dest" : {
44660702 9149 "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 9150 "format" : "pve-fw-addr-spec",
0695fdaf 9151 "maxLength" : 512,
56122987 9152 "optional" : 1,
013dc89f
DM
9153 "type" : "string",
9154 "typetext" : "<string>"
56122987 9155 },
7aacca6f 9156 "digest" : {
44660702 9157 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 9158 "maxLength" : 40,
56122987 9159 "optional" : 1,
013dc89f
DM
9160 "type" : "string",
9161 "typetext" : "<string>"
44660702
DM
9162 },
9163 "dport" : {
9164 "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.",
9165 "format" : "pve-fw-dport-spec",
9166 "optional" : 1,
013dc89f
DM
9167 "type" : "string",
9168 "typetext" : "<string>"
56122987 9169 },
7aacca6f 9170 "enable" : {
e94f0d56 9171 "description" : "Flag to enable/disable a rule.",
44660702 9172 "minimum" : 0,
56122987 9173 "optional" : 1,
4bd7df8b 9174 "type" : "integer",
013dc89f 9175 "typetext" : "<integer> (0 - N)"
7aacca6f 9176 },
4772952b
TL
9177 "icmp-type" : {
9178 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
9179 "format" : "pve-fw-icmp-type-spec",
9180 "optional" : 1,
9181 "type" : "string",
9182 "typetext" : "<string>"
9183 },
44660702
DM
9184 "iface" : {
9185 "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.",
9186 "format" : "pve-iface",
9187 "maxLength" : 20,
7aacca6f 9188 "minLength" : 2,
56122987 9189 "optional" : 1,
013dc89f
DM
9190 "type" : "string",
9191 "typetext" : "<string>"
56122987 9192 },
95895385
TL
9193 "log" : {
9194 "description" : "Log level for firewall rule.",
9195 "enum" : [
9196 "emerg",
9197 "alert",
9198 "crit",
9199 "err",
9200 "warning",
9201 "notice",
9202 "info",
9203 "debug",
9204 "nolog"
9205 ],
9206 "optional" : 1,
9207 "type" : "string"
9208 },
44660702 9209 "macro" : {
e94f0d56 9210 "description" : "Use predefined standard macro.",
44660702 9211 "maxLength" : 128,
56122987 9212 "optional" : 1,
013dc89f
DM
9213 "type" : "string",
9214 "typetext" : "<string>"
56122987 9215 },
44660702
DM
9216 "moveto" : {
9217 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
9218 "minimum" : 0,
56122987 9219 "optional" : 1,
4bd7df8b 9220 "type" : "integer",
013dc89f 9221 "typetext" : "<integer> (0 - N)"
56122987 9222 },
44660702
DM
9223 "node" : {
9224 "description" : "The cluster node name.",
9225 "format" : "pve-node",
013dc89f
DM
9226 "type" : "string",
9227 "typetext" : "<string>"
44660702
DM
9228 },
9229 "pos" : {
9230 "description" : "Update rule at position <pos>.",
9231 "minimum" : 0,
9232 "optional" : 1,
4bd7df8b 9233 "type" : "integer",
013dc89f 9234 "typetext" : "<integer> (0 - N)"
56122987 9235 },
44660702
DM
9236 "proto" : {
9237 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
9238 "format" : "pve-fw-protocol-spec",
9239 "optional" : 1,
013dc89f
DM
9240 "type" : "string",
9241 "typetext" : "<string>"
7aacca6f 9242 },
44660702
DM
9243 "source" : {
9244 "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.",
9245 "format" : "pve-fw-addr-spec",
0695fdaf 9246 "maxLength" : 512,
56122987 9247 "optional" : 1,
013dc89f
DM
9248 "type" : "string",
9249 "typetext" : "<string>"
56122987
DM
9250 },
9251 "sport" : {
9252 "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
9253 "format" : "pve-fw-sport-spec",
9254 "optional" : 1,
013dc89f
DM
9255 "type" : "string",
9256 "typetext" : "<string>"
44660702
DM
9257 },
9258 "type" : {
e94f0d56 9259 "description" : "Rule type.",
44660702
DM
9260 "enum" : [
9261 "in",
9262 "out",
9263 "group"
9264 ],
56122987 9265 "optional" : 1,
56122987 9266 "type" : "string"
44660702
DM
9267 },
9268 "vmid" : {
9269 "description" : "The (unique) ID of the VM.",
9270 "format" : "pve-vmid",
9271 "minimum" : 1,
4bd7df8b 9272 "type" : "integer",
013dc89f 9273 "typetext" : "<integer> (1 - N)"
56122987 9274 }
44660702 9275 }
56122987 9276 },
56122987
DM
9277 "permissions" : {
9278 "check" : [
9279 "perm",
9280 "/vms/{vmid}",
9281 [
44660702 9282 "VM.Config.Network"
56122987
DM
9283 ]
9284 ]
7aacca6f 9285 },
44660702 9286 "protected" : 1,
7aacca6f 9287 "proxyto" : null,
7aacca6f 9288 "returns" : {
44660702
DM
9289 "type" : "null"
9290 }
56122987 9291 }
7aacca6f 9292 },
44660702 9293 "leaf" : 1,
7aacca6f 9294 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
44660702 9295 "text" : "{pos}"
56122987
DM
9296 }
9297 ],
56122987 9298 "info" : {
44660702 9299 "GET" : {
e9cd3bd4 9300 "allowtoken" : 1,
44660702
DM
9301 "description" : "List rules.",
9302 "method" : "GET",
9303 "name" : "get_rules",
9304 "parameters" : {
9305 "additionalProperties" : 0,
9306 "properties" : {
9307 "node" : {
9308 "description" : "The cluster node name.",
9309 "format" : "pve-node",
013dc89f
DM
9310 "type" : "string",
9311 "typetext" : "<string>"
44660702
DM
9312 },
9313 "vmid" : {
9314 "description" : "The (unique) ID of the VM.",
9315 "format" : "pve-vmid",
9316 "minimum" : 1,
4bd7df8b 9317 "type" : "integer",
013dc89f 9318 "typetext" : "<integer> (1 - N)"
44660702
DM
9319 }
9320 }
56122987 9321 },
56122987
DM
9322 "permissions" : {
9323 "check" : [
9324 "perm",
9325 "/vms/{vmid}",
9326 [
44660702 9327 "VM.Audit"
56122987
DM
9328 ]
9329 ]
7aacca6f 9330 },
44660702
DM
9331 "proxyto" : null,
9332 "returns" : {
9333 "items" : {
9334 "properties" : {
9335 "pos" : {
9336 "type" : "integer"
9337 }
9338 },
9339 "type" : "object"
9340 },
9341 "links" : [
9342 {
9343 "href" : "{pos}",
9344 "rel" : "child"
9345 }
9346 ],
9347 "type" : "array"
9348 }
9349 },
9350 "POST" : {
e9cd3bd4 9351 "allowtoken" : 1,
44660702 9352 "description" : "Create new rule.",
7aacca6f 9353 "method" : "POST",
44660702 9354 "name" : "create_rule",
56122987 9355 "parameters" : {
44660702 9356 "additionalProperties" : 0,
56122987 9357 "properties" : {
44660702
DM
9358 "action" : {
9359 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
9360 "maxLength" : 20,
9361 "minLength" : 2,
9362 "optional" : 0,
9363 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
9364 "type" : "string"
56122987 9365 },
44660702 9366 "comment" : {
e94f0d56 9367 "description" : "Descriptive comment.",
56122987 9368 "optional" : 1,
013dc89f
DM
9369 "type" : "string",
9370 "typetext" : "<string>"
56122987 9371 },
44660702
DM
9372 "dest" : {
9373 "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.",
9374 "format" : "pve-fw-addr-spec",
0695fdaf 9375 "maxLength" : 512,
44660702 9376 "optional" : 1,
013dc89f
DM
9377 "type" : "string",
9378 "typetext" : "<string>"
56122987 9379 },
44660702
DM
9380 "digest" : {
9381 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9382 "maxLength" : 40,
56122987 9383 "optional" : 1,
013dc89f
DM
9384 "type" : "string",
9385 "typetext" : "<string>"
56122987 9386 },
7aacca6f
DM
9387 "dport" : {
9388 "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 9389 "format" : "pve-fw-dport-spec",
7aacca6f 9390 "optional" : 1,
013dc89f
DM
9391 "type" : "string",
9392 "typetext" : "<string>"
56122987
DM
9393 },
9394 "enable" : {
e94f0d56 9395 "description" : "Flag to enable/disable a rule.",
56122987 9396 "minimum" : 0,
44660702 9397 "optional" : 1,
4bd7df8b 9398 "type" : "integer",
013dc89f 9399 "typetext" : "<integer> (0 - N)"
56122987 9400 },
4772952b
TL
9401 "icmp-type" : {
9402 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
9403 "format" : "pve-fw-icmp-type-spec",
9404 "optional" : 1,
9405 "type" : "string",
9406 "typetext" : "<string>"
9407 },
44660702
DM
9408 "iface" : {
9409 "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.",
9410 "format" : "pve-iface",
9411 "maxLength" : 20,
7aacca6f 9412 "minLength" : 2,
44660702 9413 "optional" : 1,
013dc89f
DM
9414 "type" : "string",
9415 "typetext" : "<string>"
56122987 9416 },
95895385
TL
9417 "log" : {
9418 "description" : "Log level for firewall rule.",
9419 "enum" : [
9420 "emerg",
9421 "alert",
9422 "crit",
9423 "err",
9424 "warning",
9425 "notice",
9426 "info",
9427 "debug",
9428 "nolog"
9429 ],
9430 "optional" : 1,
9431 "type" : "string"
9432 },
44660702 9433 "macro" : {
e94f0d56 9434 "description" : "Use predefined standard macro.",
44660702 9435 "maxLength" : 128,
56122987 9436 "optional" : 1,
013dc89f
DM
9437 "type" : "string",
9438 "typetext" : "<string>"
7aacca6f 9439 },
44660702
DM
9440 "node" : {
9441 "description" : "The cluster node name.",
9442 "format" : "pve-node",
013dc89f
DM
9443 "type" : "string",
9444 "typetext" : "<string>"
44660702
DM
9445 },
9446 "pos" : {
9447 "description" : "Update rule at position <pos>.",
9448 "minimum" : 0,
9449 "optional" : 1,
4bd7df8b 9450 "type" : "integer",
013dc89f 9451 "typetext" : "<integer> (0 - N)"
44660702
DM
9452 },
9453 "proto" : {
9454 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
9455 "format" : "pve-fw-protocol-spec",
7aacca6f 9456 "optional" : 1,
013dc89f
DM
9457 "type" : "string",
9458 "typetext" : "<string>"
7aacca6f
DM
9459 },
9460 "source" : {
9461 "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 9462 "format" : "pve-fw-addr-spec",
0695fdaf 9463 "maxLength" : 512,
7aacca6f 9464 "optional" : 1,
013dc89f
DM
9465 "type" : "string",
9466 "typetext" : "<string>"
7aacca6f 9467 },
44660702
DM
9468 "sport" : {
9469 "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.",
9470 "format" : "pve-fw-sport-spec",
7aacca6f 9471 "optional" : 1,
013dc89f
DM
9472 "type" : "string",
9473 "typetext" : "<string>"
7aacca6f 9474 },
44660702 9475 "type" : {
e94f0d56 9476 "description" : "Rule type.",
44660702
DM
9477 "enum" : [
9478 "in",
9479 "out",
9480 "group"
9481 ],
9482 "optional" : 0,
9483 "type" : "string"
7aacca6f 9484 },
7aacca6f 9485 "vmid" : {
44660702 9486 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
9487 "format" : "pve-vmid",
9488 "minimum" : 1,
4bd7df8b 9489 "type" : "integer",
013dc89f 9490 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
9491 }
9492 }
9493 },
56122987
DM
9494 "permissions" : {
9495 "check" : [
9496 "perm",
9497 "/vms/{vmid}",
9498 [
44660702 9499 "VM.Config.Network"
56122987
DM
9500 ]
9501 ]
9502 },
44660702
DM
9503 "protected" : 1,
9504 "proxyto" : null,
56122987 9505 "returns" : {
44660702
DM
9506 "type" : "null"
9507 }
56122987
DM
9508 }
9509 },
44660702 9510 "leaf" : 0,
7aacca6f 9511 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
44660702 9512 "text" : "rules"
56122987
DM
9513 },
9514 {
9515 "children" : [
9516 {
56122987 9517 "info" : {
44660702 9518 "DELETE" : {
e9cd3bd4 9519 "allowtoken" : 1,
44660702
DM
9520 "description" : "Remove IP or Network alias.",
9521 "method" : "DELETE",
9522 "name" : "remove_alias",
56122987 9523 "parameters" : {
44660702 9524 "additionalProperties" : 0,
56122987 9525 "properties" : {
44660702
DM
9526 "digest" : {
9527 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9528 "maxLength" : 40,
9529 "optional" : 1,
013dc89f
DM
9530 "type" : "string",
9531 "typetext" : "<string>"
56122987
DM
9532 },
9533 "name" : {
56122987 9534 "description" : "Alias name.",
44660702 9535 "maxLength" : 64,
7aacca6f 9536 "minLength" : 2,
44660702 9537 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987
DM
9538 "type" : "string"
9539 },
7aacca6f 9540 "node" : {
44660702 9541 "description" : "The cluster node name.",
7aacca6f 9542 "format" : "pve-node",
013dc89f
DM
9543 "type" : "string",
9544 "typetext" : "<string>"
44660702
DM
9545 },
9546 "vmid" : {
9547 "description" : "The (unique) ID of the VM.",
9548 "format" : "pve-vmid",
9549 "minimum" : 1,
4bd7df8b 9550 "type" : "integer",
013dc89f 9551 "typetext" : "<integer> (1 - N)"
56122987 9552 }
44660702 9553 }
56122987 9554 },
7aacca6f
DM
9555 "permissions" : {
9556 "check" : [
9557 "perm",
9558 "/vms/{vmid}",
9559 [
9560 "VM.Config.Network"
9561 ]
9562 ]
56122987 9563 },
44660702
DM
9564 "protected" : 1,
9565 "returns" : {
9566 "type" : "null"
9567 }
9568 },
9569 "GET" : {
e9cd3bd4 9570 "allowtoken" : 1,
44660702
DM
9571 "description" : "Read alias.",
9572 "method" : "GET",
9573 "name" : "read_alias",
56122987 9574 "parameters" : {
44660702 9575 "additionalProperties" : 0,
56122987 9576 "properties" : {
56122987 9577 "name" : {
7aacca6f 9578 "description" : "Alias name.",
44660702 9579 "maxLength" : 64,
56122987 9580 "minLength" : 2,
44660702 9581 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 9582 "type" : "string"
7aacca6f
DM
9583 },
9584 "node" : {
9585 "description" : "The cluster node name.",
44660702 9586 "format" : "pve-node",
013dc89f
DM
9587 "type" : "string",
9588 "typetext" : "<string>"
44660702
DM
9589 },
9590 "vmid" : {
9591 "description" : "The (unique) ID of the VM.",
9592 "format" : "pve-vmid",
9593 "minimum" : 1,
4bd7df8b 9594 "type" : "integer",
013dc89f 9595 "typetext" : "<integer> (1 - N)"
56122987 9596 }
44660702 9597 }
56122987 9598 },
44660702
DM
9599 "permissions" : {
9600 "check" : [
9601 "perm",
9602 "/vms/{vmid}",
9603 [
9604 "VM.Audit"
9605 ]
9606 ]
56122987 9607 },
44660702
DM
9608 "returns" : {
9609 "type" : "object"
9610 }
7aacca6f 9611 },
44660702 9612 "PUT" : {
e9cd3bd4 9613 "allowtoken" : 1,
44660702
DM
9614 "description" : "Update IP or Network alias.",
9615 "method" : "PUT",
9616 "name" : "update_alias",
56122987
DM
9617 "parameters" : {
9618 "additionalProperties" : 0,
9619 "properties" : {
44660702
DM
9620 "cidr" : {
9621 "description" : "Network/IP specification in CIDR format.",
9622 "format" : "IPorCIDR",
013dc89f
DM
9623 "type" : "string",
9624 "typetext" : "<string>"
44660702
DM
9625 },
9626 "comment" : {
9627 "optional" : 1,
013dc89f
DM
9628 "type" : "string",
9629 "typetext" : "<string>"
56122987
DM
9630 },
9631 "digest" : {
44660702 9632 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
56122987
DM
9633 "maxLength" : 40,
9634 "optional" : 1,
013dc89f
DM
9635 "type" : "string",
9636 "typetext" : "<string>"
56122987 9637 },
7aacca6f 9638 "name" : {
44660702 9639 "description" : "Alias name.",
56122987
DM
9640 "maxLength" : 64,
9641 "minLength" : 2,
9642 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 9643 "type" : "string"
7aacca6f
DM
9644 },
9645 "node" : {
7aacca6f 9646 "description" : "The cluster node name.",
44660702 9647 "format" : "pve-node",
013dc89f
DM
9648 "type" : "string",
9649 "typetext" : "<string>"
44660702
DM
9650 },
9651 "rename" : {
9652 "description" : "Rename an existing alias.",
9653 "maxLength" : 64,
9654 "minLength" : 2,
9655 "optional" : 1,
9656 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
9657 "type" : "string"
9658 },
9659 "vmid" : {
9660 "description" : "The (unique) ID of the VM.",
9661 "format" : "pve-vmid",
9662 "minimum" : 1,
4bd7df8b 9663 "type" : "integer",
013dc89f 9664 "typetext" : "<integer> (1 - N)"
56122987
DM
9665 }
9666 }
9667 },
7aacca6f
DM
9668 "permissions" : {
9669 "check" : [
9670 "perm",
9671 "/vms/{vmid}",
9672 [
9673 "VM.Config.Network"
9674 ]
9675 ]
9676 },
9677 "protected" : 1,
7aacca6f
DM
9678 "returns" : {
9679 "type" : "null"
44660702 9680 }
56122987
DM
9681 }
9682 },
44660702 9683 "leaf" : 1,
7aacca6f 9684 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
44660702 9685 "text" : "{name}"
56122987
DM
9686 }
9687 ],
9688 "info" : {
44660702 9689 "GET" : {
e9cd3bd4 9690 "allowtoken" : 1,
44660702
DM
9691 "description" : "List aliases",
9692 "method" : "GET",
9693 "name" : "get_aliases",
56122987 9694 "parameters" : {
44660702 9695 "additionalProperties" : 0,
56122987 9696 "properties" : {
7aacca6f 9697 "node" : {
7aacca6f 9698 "description" : "The cluster node name.",
44660702 9699 "format" : "pve-node",
013dc89f
DM
9700 "type" : "string",
9701 "typetext" : "<string>"
56122987 9702 },
44660702
DM
9703 "vmid" : {
9704 "description" : "The (unique) ID of the VM.",
9705 "format" : "pve-vmid",
9706 "minimum" : 1,
4bd7df8b 9707 "type" : "integer",
013dc89f 9708 "typetext" : "<integer> (1 - N)"
56122987 9709 }
44660702 9710 }
56122987 9711 },
56122987
DM
9712 "permissions" : {
9713 "check" : [
9714 "perm",
9715 "/vms/{vmid}",
9716 [
44660702 9717 "VM.Audit"
56122987
DM
9718 ]
9719 ]
9720 },
56122987
DM
9721 "returns" : {
9722 "items" : {
9723 "properties" : {
44660702 9724 "cidr" : {
56122987
DM
9725 "type" : "string"
9726 },
44660702
DM
9727 "comment" : {
9728 "optional" : 1,
7aacca6f 9729 "type" : "string"
56122987
DM
9730 },
9731 "digest" : {
56122987 9732 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 9733 "maxLength" : 40,
56122987
DM
9734 "optional" : 0,
9735 "type" : "string"
9736 },
44660702 9737 "name" : {
56122987
DM
9738 "type" : "string"
9739 }
44660702
DM
9740 },
9741 "type" : "object"
56122987 9742 },
56122987
DM
9743 "links" : [
9744 {
9745 "href" : "{name}",
9746 "rel" : "child"
9747 }
44660702
DM
9748 ],
9749 "type" : "array"
9750 }
9751 },
9752 "POST" : {
e9cd3bd4 9753 "allowtoken" : 1,
44660702
DM
9754 "description" : "Create IP or Network Alias.",
9755 "method" : "POST",
9756 "name" : "create_alias",
56122987 9757 "parameters" : {
7aacca6f 9758 "additionalProperties" : 0,
56122987 9759 "properties" : {
44660702
DM
9760 "cidr" : {
9761 "description" : "Network/IP specification in CIDR format.",
9762 "format" : "IPorCIDR",
013dc89f
DM
9763 "type" : "string",
9764 "typetext" : "<string>"
44660702
DM
9765 },
9766 "comment" : {
9767 "optional" : 1,
013dc89f
DM
9768 "type" : "string",
9769 "typetext" : "<string>"
44660702
DM
9770 },
9771 "name" : {
9772 "description" : "Alias name.",
9773 "maxLength" : 64,
9774 "minLength" : 2,
9775 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
9776 "type" : "string"
56122987
DM
9777 },
9778 "node" : {
7aacca6f 9779 "description" : "The cluster node name.",
44660702 9780 "format" : "pve-node",
013dc89f
DM
9781 "type" : "string",
9782 "typetext" : "<string>"
44660702
DM
9783 },
9784 "vmid" : {
9785 "description" : "The (unique) ID of the VM.",
9786 "format" : "pve-vmid",
9787 "minimum" : 1,
4bd7df8b 9788 "type" : "integer",
013dc89f 9789 "typetext" : "<integer> (1 - N)"
56122987 9790 }
7aacca6f 9791 }
56122987 9792 },
44660702
DM
9793 "permissions" : {
9794 "check" : [
9795 "perm",
9796 "/vms/{vmid}",
9797 [
9798 "VM.Config.Network"
9799 ]
9800 ]
9801 },
9802 "protected" : 1,
9803 "returns" : {
9804 "type" : "null"
9805 }
56122987 9806 }
44660702
DM
9807 },
9808 "leaf" : 0,
9809 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
9810 "text" : "aliases"
56122987
DM
9811 },
9812 {
56122987
DM
9813 "children" : [
9814 {
7aacca6f
DM
9815 "children" : [
9816 {
9817 "info" : {
9818 "DELETE" : {
e9cd3bd4 9819 "allowtoken" : 1,
44660702 9820 "description" : "Remove IP or Network from IPSet.",
7aacca6f 9821 "method" : "DELETE",
44660702 9822 "name" : "remove_ip",
7aacca6f 9823 "parameters" : {
44660702 9824 "additionalProperties" : 0,
7aacca6f 9825 "properties" : {
44660702
DM
9826 "cidr" : {
9827 "description" : "Network/IP specification in CIDR format.",
9828 "format" : "IPorCIDRorAlias",
013dc89f
DM
9829 "type" : "string",
9830 "typetext" : "<string>"
44660702
DM
9831 },
9832 "digest" : {
9833 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9834 "maxLength" : 40,
9835 "optional" : 1,
013dc89f
DM
9836 "type" : "string",
9837 "typetext" : "<string>"
44660702 9838 },
7aacca6f 9839 "name" : {
7aacca6f 9840 "description" : "IP set name.",
44660702
DM
9841 "maxLength" : 64,
9842 "minLength" : 2,
7aacca6f 9843 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 9844 "type" : "string"
7aacca6f
DM
9845 },
9846 "node" : {
9847 "description" : "The cluster node name.",
44660702 9848 "format" : "pve-node",
013dc89f
DM
9849 "type" : "string",
9850 "typetext" : "<string>"
7aacca6f
DM
9851 },
9852 "vmid" : {
44660702 9853 "description" : "The (unique) ID of the VM.",
7aacca6f 9854 "format" : "pve-vmid",
44660702 9855 "minimum" : 1,
4bd7df8b 9856 "type" : "integer",
013dc89f 9857 "typetext" : "<integer> (1 - N)"
7aacca6f 9858 }
44660702 9859 }
7aacca6f 9860 },
7aacca6f
DM
9861 "permissions" : {
9862 "check" : [
9863 "perm",
9864 "/vms/{vmid}",
9865 [
9866 "VM.Config.Network"
9867 ]
9868 ]
9869 },
9870 "protected" : 1,
44660702
DM
9871 "returns" : {
9872 "type" : "null"
9873 }
56122987 9874 },
44660702 9875 "GET" : {
e9cd3bd4 9876 "allowtoken" : 1,
44660702
DM
9877 "description" : "Read IP or Network settings from IPSet.",
9878 "method" : "GET",
9879 "name" : "read_ip",
7aacca6f 9880 "parameters" : {
44660702 9881 "additionalProperties" : 0,
7aacca6f 9882 "properties" : {
7aacca6f 9883 "cidr" : {
44660702 9884 "description" : "Network/IP specification in CIDR format.",
7aacca6f 9885 "format" : "IPorCIDRorAlias",
013dc89f
DM
9886 "type" : "string",
9887 "typetext" : "<string>"
7aacca6f
DM
9888 },
9889 "name" : {
7aacca6f 9890 "description" : "IP set name.",
44660702 9891 "maxLength" : 64,
7aacca6f 9892 "minLength" : 2,
44660702
DM
9893 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
9894 "type" : "string"
7aacca6f 9895 },
44660702
DM
9896 "node" : {
9897 "description" : "The cluster node name.",
9898 "format" : "pve-node",
013dc89f
DM
9899 "type" : "string",
9900 "typetext" : "<string>"
7aacca6f 9901 },
44660702
DM
9902 "vmid" : {
9903 "description" : "The (unique) ID of the VM.",
9904 "format" : "pve-vmid",
9905 "minimum" : 1,
4bd7df8b 9906 "type" : "integer",
013dc89f 9907 "typetext" : "<integer> (1 - N)"
7aacca6f 9908 }
44660702 9909 }
7aacca6f 9910 },
44660702
DM
9911 "permissions" : {
9912 "check" : [
9913 "perm",
9914 "/vms/{vmid}",
9915 [
9916 "VM.Audit"
9917 ]
9918 ]
9919 },
9920 "protected" : 1,
7aacca6f 9921 "returns" : {
44660702 9922 "type" : "object"
7aacca6f 9923 }
56122987 9924 },
44660702 9925 "PUT" : {
e9cd3bd4 9926 "allowtoken" : 1,
44660702
DM
9927 "description" : "Update IP or Network settings",
9928 "method" : "PUT",
9929 "name" : "update_ip",
7aacca6f
DM
9930 "parameters" : {
9931 "additionalProperties" : 0,
9932 "properties" : {
44660702
DM
9933 "cidr" : {
9934 "description" : "Network/IP specification in CIDR format.",
9935 "format" : "IPorCIDRorAlias",
013dc89f
DM
9936 "type" : "string",
9937 "typetext" : "<string>"
44660702
DM
9938 },
9939 "comment" : {
9940 "optional" : 1,
013dc89f
DM
9941 "type" : "string",
9942 "typetext" : "<string>"
44660702
DM
9943 },
9944 "digest" : {
9945 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9946 "maxLength" : 40,
9947 "optional" : 1,
013dc89f
DM
9948 "type" : "string",
9949 "typetext" : "<string>"
44660702 9950 },
7aacca6f 9951 "name" : {
7aacca6f 9952 "description" : "IP set name.",
44660702 9953 "maxLength" : 64,
7aacca6f 9954 "minLength" : 2,
44660702
DM
9955 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
9956 "type" : "string"
7aacca6f
DM
9957 },
9958 "node" : {
7aacca6f 9959 "description" : "The cluster node name.",
44660702 9960 "format" : "pve-node",
013dc89f
DM
9961 "type" : "string",
9962 "typetext" : "<string>"
7aacca6f 9963 },
44660702
DM
9964 "nomatch" : {
9965 "optional" : 1,
013dc89f
DM
9966 "type" : "boolean",
9967 "typetext" : "<boolean>"
7aacca6f
DM
9968 },
9969 "vmid" : {
9970 "description" : "The (unique) ID of the VM.",
44660702 9971 "format" : "pve-vmid",
7aacca6f 9972 "minimum" : 1,
4bd7df8b 9973 "type" : "integer",
013dc89f 9974 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
9975 }
9976 }
9977 },
9978 "permissions" : {
9979 "check" : [
9980 "perm",
9981 "/vms/{vmid}",
9982 [
44660702 9983 "VM.Config.Network"
7aacca6f
DM
9984 ]
9985 ]
9986 },
7aacca6f 9987 "protected" : 1,
7aacca6f 9988 "returns" : {
44660702 9989 "type" : "null"
7aacca6f 9990 }
56122987 9991 }
7aacca6f 9992 },
7aacca6f 9993 "leaf" : 1,
44660702
DM
9994 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
9995 "text" : "{cidr}"
7aacca6f 9996 }
44660702
DM
9997 ],
9998 "info" : {
9999 "DELETE" : {
e9cd3bd4 10000 "allowtoken" : 1,
44660702
DM
10001 "description" : "Delete IPSet",
10002 "method" : "DELETE",
10003 "name" : "delete_ipset",
10004 "parameters" : {
10005 "additionalProperties" : 0,
10006 "properties" : {
10007 "name" : {
10008 "description" : "IP set name.",
10009 "maxLength" : 64,
10010 "minLength" : 2,
10011 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10012 "type" : "string"
10013 },
10014 "node" : {
10015 "description" : "The cluster node name.",
10016 "format" : "pve-node",
013dc89f
DM
10017 "type" : "string",
10018 "typetext" : "<string>"
44660702
DM
10019 },
10020 "vmid" : {
10021 "description" : "The (unique) ID of the VM.",
10022 "format" : "pve-vmid",
10023 "minimum" : 1,
4bd7df8b 10024 "type" : "integer",
013dc89f 10025 "typetext" : "<integer> (1 - N)"
44660702
DM
10026 }
10027 }
7aacca6f 10028 },
44660702
DM
10029 "permissions" : {
10030 "check" : [
10031 "perm",
10032 "/vms/{vmid}",
10033 [
10034 "VM.Config.Network"
10035 ]
10036 ]
7aacca6f 10037 },
44660702
DM
10038 "protected" : 1,
10039 "returns" : {
10040 "type" : "null"
10041 }
10042 },
10043 "GET" : {
e9cd3bd4 10044 "allowtoken" : 1,
44660702
DM
10045 "description" : "List IPSet content",
10046 "method" : "GET",
10047 "name" : "get_ipset",
10048 "parameters" : {
10049 "additionalProperties" : 0,
10050 "properties" : {
10051 "name" : {
10052 "description" : "IP set name.",
10053 "maxLength" : 64,
10054 "minLength" : 2,
10055 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10056 "type" : "string"
10057 },
10058 "node" : {
10059 "description" : "The cluster node name.",
10060 "format" : "pve-node",
013dc89f
DM
10061 "type" : "string",
10062 "typetext" : "<string>"
44660702
DM
10063 },
10064 "vmid" : {
10065 "description" : "The (unique) ID of the VM.",
10066 "format" : "pve-vmid",
10067 "minimum" : 1,
4bd7df8b 10068 "type" : "integer",
013dc89f 10069 "typetext" : "<integer> (1 - N)"
44660702
DM
10070 }
10071 }
7aacca6f 10072 },
44660702
DM
10073 "permissions" : {
10074 "check" : [
10075 "perm",
10076 "/vms/{vmid}",
10077 [
10078 "VM.Audit"
10079 ]
10080 ]
7aacca6f 10081 },
44660702
DM
10082 "returns" : {
10083 "items" : {
10084 "properties" : {
10085 "cidr" : {
10086 "type" : "string"
10087 },
10088 "comment" : {
10089 "optional" : 1,
10090 "type" : "string"
10091 },
10092 "digest" : {
10093 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10094 "maxLength" : 40,
10095 "optional" : 0,
10096 "type" : "string"
10097 },
10098 "nomatch" : {
10099 "optional" : 1,
10100 "type" : "boolean"
10101 }
10102 },
10103 "type" : "object"
10104 },
10105 "links" : [
10106 {
10107 "href" : "{cidr}",
10108 "rel" : "child"
10109 }
10110 ],
10111 "type" : "array"
56122987
DM
10112 }
10113 },
44660702 10114 "POST" : {
e9cd3bd4 10115 "allowtoken" : 1,
44660702
DM
10116 "description" : "Add IP or Network to IPSet.",
10117 "method" : "POST",
10118 "name" : "create_ip",
10119 "parameters" : {
10120 "additionalProperties" : 0,
10121 "properties" : {
10122 "cidr" : {
10123 "description" : "Network/IP specification in CIDR format.",
10124 "format" : "IPorCIDRorAlias",
013dc89f
DM
10125 "type" : "string",
10126 "typetext" : "<string>"
44660702
DM
10127 },
10128 "comment" : {
10129 "optional" : 1,
013dc89f
DM
10130 "type" : "string",
10131 "typetext" : "<string>"
44660702
DM
10132 },
10133 "name" : {
10134 "description" : "IP set name.",
10135 "maxLength" : 64,
10136 "minLength" : 2,
10137 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10138 "type" : "string"
10139 },
10140 "node" : {
10141 "description" : "The cluster node name.",
10142 "format" : "pve-node",
013dc89f
DM
10143 "type" : "string",
10144 "typetext" : "<string>"
44660702
DM
10145 },
10146 "nomatch" : {
10147 "optional" : 1,
013dc89f
DM
10148 "type" : "boolean",
10149 "typetext" : "<boolean>"
44660702
DM
10150 },
10151 "vmid" : {
10152 "description" : "The (unique) ID of the VM.",
10153 "format" : "pve-vmid",
10154 "minimum" : 1,
4bd7df8b 10155 "type" : "integer",
013dc89f 10156 "typetext" : "<integer> (1 - N)"
44660702
DM
10157 }
10158 }
10159 },
10160 "permissions" : {
10161 "check" : [
10162 "perm",
10163 "/vms/{vmid}",
10164 [
10165 "VM.Config.Network"
10166 ]
10167 ]
10168 },
10169 "protected" : 1,
10170 "returns" : {
10171 "type" : "null"
10172 }
10173 }
10174 },
10175 "leaf" : 0,
10176 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
10177 "text" : "{name}"
10178 }
10179 ],
10180 "info" : {
10181 "GET" : {
e9cd3bd4 10182 "allowtoken" : 1,
44660702
DM
10183 "description" : "List IPSets",
10184 "method" : "GET",
10185 "name" : "ipset_index",
10186 "parameters" : {
10187 "additionalProperties" : 0,
10188 "properties" : {
10189 "node" : {
10190 "description" : "The cluster node name.",
10191 "format" : "pve-node",
013dc89f
DM
10192 "type" : "string",
10193 "typetext" : "<string>"
44660702
DM
10194 },
10195 "vmid" : {
10196 "description" : "The (unique) ID of the VM.",
10197 "format" : "pve-vmid",
10198 "minimum" : 1,
4bd7df8b 10199 "type" : "integer",
013dc89f 10200 "typetext" : "<integer> (1 - N)"
44660702
DM
10201 }
10202 }
56122987
DM
10203 },
10204 "permissions" : {
10205 "check" : [
10206 "perm",
10207 "/vms/{vmid}",
10208 [
44660702 10209 "VM.Audit"
56122987
DM
10210 ]
10211 ]
10212 },
7aacca6f 10213 "returns" : {
7aacca6f
DM
10214 "items" : {
10215 "properties" : {
7aacca6f
DM
10216 "comment" : {
10217 "optional" : 1,
10218 "type" : "string"
10219 },
10220 "digest" : {
7aacca6f 10221 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
10222 "maxLength" : 40,
10223 "optional" : 0,
10224 "type" : "string"
10225 },
10226 "name" : {
10227 "description" : "IP set name.",
10228 "maxLength" : 64,
10229 "minLength" : 2,
10230 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10231 "type" : "string"
7aacca6f
DM
10232 }
10233 },
10234 "type" : "object"
10235 },
10236 "links" : [
10237 {
44660702
DM
10238 "href" : "{name}",
10239 "rel" : "child"
7aacca6f 10240 }
44660702
DM
10241 ],
10242 "type" : "array"
10243 }
10244 },
10245 "POST" : {
e9cd3bd4 10246 "allowtoken" : 1,
44660702
DM
10247 "description" : "Create new IPSet",
10248 "method" : "POST",
10249 "name" : "create_ipset",
56122987
DM
10250 "parameters" : {
10251 "additionalProperties" : 0,
10252 "properties" : {
44660702
DM
10253 "comment" : {
10254 "optional" : 1,
013dc89f
DM
10255 "type" : "string",
10256 "typetext" : "<string>"
56122987 10257 },
44660702
DM
10258 "digest" : {
10259 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10260 "maxLength" : 40,
10261 "optional" : 1,
013dc89f
DM
10262 "type" : "string",
10263 "typetext" : "<string>"
44660702
DM
10264 },
10265 "name" : {
10266 "description" : "IP set name.",
10267 "maxLength" : 64,
10268 "minLength" : 2,
10269 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10270 "type" : "string"
10271 },
10272 "node" : {
10273 "description" : "The cluster node name.",
10274 "format" : "pve-node",
013dc89f
DM
10275 "type" : "string",
10276 "typetext" : "<string>"
44660702
DM
10277 },
10278 "rename" : {
10279 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
10280 "maxLength" : 64,
10281 "minLength" : 2,
10282 "optional" : 1,
10283 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10284 "type" : "string"
10285 },
10286 "vmid" : {
10287 "description" : "The (unique) ID of the VM.",
10288 "format" : "pve-vmid",
10289 "minimum" : 1,
4bd7df8b 10290 "type" : "integer",
013dc89f 10291 "typetext" : "<integer> (1 - N)"
44660702
DM
10292 }
10293 }
10294 },
7aacca6f
DM
10295 "permissions" : {
10296 "check" : [
10297 "perm",
10298 "/vms/{vmid}",
10299 [
10300 "VM.Config.Network"
10301 ]
10302 ]
10303 },
44660702 10304 "protected" : 1,
56122987 10305 "returns" : {
7aacca6f 10306 "type" : "null"
44660702
DM
10307 }
10308 }
10309 },
10310 "leaf" : 0,
10311 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
10312 "text" : "ipset"
10313 },
10314 {
10315 "info" : {
10316 "GET" : {
e9cd3bd4 10317 "allowtoken" : 1,
44660702
DM
10318 "description" : "Get VM firewall options.",
10319 "method" : "GET",
10320 "name" : "get_options",
7aacca6f
DM
10321 "parameters" : {
10322 "additionalProperties" : 0,
56122987 10323 "properties" : {
7aacca6f
DM
10324 "node" : {
10325 "description" : "The cluster node name.",
44660702 10326 "format" : "pve-node",
013dc89f
DM
10327 "type" : "string",
10328 "typetext" : "<string>"
7aacca6f 10329 },
44660702
DM
10330 "vmid" : {
10331 "description" : "The (unique) ID of the VM.",
10332 "format" : "pve-vmid",
10333 "minimum" : 1,
4bd7df8b 10334 "type" : "integer",
013dc89f 10335 "typetext" : "<integer> (1 - N)"
44660702
DM
10336 }
10337 }
10338 },
10339 "permissions" : {
10340 "check" : [
10341 "perm",
10342 "/vms/{vmid}",
10343 [
10344 "VM.Audit"
10345 ]
10346 ]
10347 },
10348 "proxyto" : "node",
10349 "returns" : {
10350 "properties" : {
10351 "dhcp" : {
5c1699e5 10352 "default" : 0,
44660702 10353 "description" : "Enable DHCP.",
56122987 10354 "optional" : 1,
44660702 10355 "type" : "boolean"
56122987 10356 },
44660702 10357 "enable" : {
5c1699e5 10358 "default" : 0,
44660702 10359 "description" : "Enable/disable firewall rules.",
7aacca6f 10360 "optional" : 1,
44660702 10361 "type" : "boolean"
56122987 10362 },
44660702
DM
10363 "ipfilter" : {
10364 "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 10365 "optional" : 1,
44660702 10366 "type" : "boolean"
7aacca6f 10367 },
56122987 10368 "log_level_in" : {
7aacca6f 10369 "description" : "Log level for incoming traffic.",
56122987
DM
10370 "enum" : [
10371 "emerg",
10372 "alert",
10373 "crit",
10374 "err",
10375 "warning",
10376 "notice",
10377 "info",
10378 "debug",
10379 "nolog"
10380 ],
56122987
DM
10381 "optional" : 1,
10382 "type" : "string"
10383 },
44660702
DM
10384 "log_level_out" : {
10385 "description" : "Log level for outgoing traffic.",
10386 "enum" : [
10387 "emerg",
10388 "alert",
10389 "crit",
10390 "err",
10391 "warning",
10392 "notice",
10393 "info",
10394 "debug",
10395 "nolog"
10396 ],
10397 "optional" : 1,
10398 "type" : "string"
10399 },
10400 "macfilter" : {
5c1699e5 10401 "default" : 0,
44660702 10402 "description" : "Enable/disable MAC address filter.",
56122987 10403 "optional" : 1,
7aacca6f 10404 "type" : "boolean"
56122987
DM
10405 },
10406 "ndp" : {
5c1699e5
TL
10407 "default" : 0,
10408 "description" : "Enable NDP (Neighbor Discovery Protocol).",
56122987 10409 "optional" : 1,
44660702 10410 "type" : "boolean"
56122987
DM
10411 },
10412 "policy_in" : {
56122987
DM
10413 "description" : "Input policy.",
10414 "enum" : [
10415 "ACCEPT",
10416 "REJECT",
10417 "DROP"
44660702
DM
10418 ],
10419 "optional" : 1,
10420 "type" : "string"
56122987 10421 },
44660702
DM
10422 "policy_out" : {
10423 "description" : "Output policy.",
10424 "enum" : [
10425 "ACCEPT",
10426 "REJECT",
10427 "DROP"
10428 ],
10429 "optional" : 1,
10430 "type" : "string"
10431 },
10432 "radv" : {
10433 "description" : "Allow sending Router Advertisement.",
10434 "optional" : 1,
10435 "type" : "boolean"
10436 }
10437 },
10438 "type" : "object"
10439 }
10440 },
10441 "PUT" : {
e9cd3bd4 10442 "allowtoken" : 1,
44660702
DM
10443 "description" : "Set Firewall options.",
10444 "method" : "PUT",
10445 "name" : "set_options",
10446 "parameters" : {
10447 "additionalProperties" : 0,
10448 "properties" : {
10449 "delete" : {
10450 "description" : "A list of settings you want to delete.",
10451 "format" : "pve-configid-list",
10452 "optional" : 1,
013dc89f
DM
10453 "type" : "string",
10454 "typetext" : "<string>"
44660702
DM
10455 },
10456 "dhcp" : {
5c1699e5 10457 "default" : 0,
44660702 10458 "description" : "Enable DHCP.",
7aacca6f 10459 "optional" : 1,
013dc89f
DM
10460 "type" : "boolean",
10461 "typetext" : "<boolean>"
7aacca6f
DM
10462 },
10463 "digest" : {
10464 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 10465 "maxLength" : 40,
7aacca6f 10466 "optional" : 1,
013dc89f
DM
10467 "type" : "string",
10468 "typetext" : "<string>"
7aacca6f
DM
10469 },
10470 "enable" : {
5c1699e5 10471 "default" : 0,
7aacca6f 10472 "description" : "Enable/disable firewall rules.",
56122987 10473 "optional" : 1,
013dc89f
DM
10474 "type" : "boolean",
10475 "typetext" : "<boolean>"
7aacca6f 10476 },
44660702
DM
10477 "ipfilter" : {
10478 "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.",
10479 "optional" : 1,
013dc89f
DM
10480 "type" : "boolean",
10481 "typetext" : "<boolean>"
44660702
DM
10482 },
10483 "log_level_in" : {
10484 "description" : "Log level for incoming traffic.",
56122987
DM
10485 "enum" : [
10486 "emerg",
10487 "alert",
10488 "crit",
10489 "err",
10490 "warning",
10491 "notice",
10492 "info",
10493 "debug",
10494 "nolog"
7aacca6f 10495 ],
7aacca6f 10496 "optional" : 1,
44660702 10497 "type" : "string"
7aacca6f 10498 },
44660702
DM
10499 "log_level_out" : {
10500 "description" : "Log level for outgoing traffic.",
56122987
DM
10501 "enum" : [
10502 "emerg",
10503 "alert",
10504 "crit",
10505 "err",
10506 "warning",
10507 "notice",
10508 "info",
10509 "debug",
10510 "nolog"
10511 ],
56122987 10512 "optional" : 1,
44660702 10513 "type" : "string"
56122987
DM
10514 },
10515 "macfilter" : {
5c1699e5 10516 "default" : 0,
56122987 10517 "description" : "Enable/disable MAC address filter.",
7aacca6f 10518 "optional" : 1,
013dc89f
DM
10519 "type" : "boolean",
10520 "typetext" : "<boolean>"
56122987 10521 },
44660702 10522 "ndp" : {
5c1699e5
TL
10523 "default" : 0,
10524 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702 10525 "optional" : 1,
013dc89f
DM
10526 "type" : "boolean",
10527 "typetext" : "<boolean>"
44660702
DM
10528 },
10529 "node" : {
10530 "description" : "The cluster node name.",
10531 "format" : "pve-node",
013dc89f
DM
10532 "type" : "string",
10533 "typetext" : "<string>"
44660702 10534 },
56122987 10535 "policy_in" : {
44660702 10536 "description" : "Input policy.",
56122987
DM
10537 "enum" : [
10538 "ACCEPT",
10539 "REJECT",
10540 "DROP"
7aacca6f 10541 ],
56122987 10542 "optional" : 1,
7aacca6f 10543 "type" : "string"
56122987 10544 },
44660702
DM
10545 "policy_out" : {
10546 "description" : "Output policy.",
10547 "enum" : [
10548 "ACCEPT",
10549 "REJECT",
10550 "DROP"
10551 ],
56122987 10552 "optional" : 1,
44660702 10553 "type" : "string"
56122987 10554 },
44660702
DM
10555 "radv" : {
10556 "description" : "Allow sending Router Advertisement.",
56122987 10557 "optional" : 1,
013dc89f
DM
10558 "type" : "boolean",
10559 "typetext" : "<boolean>"
7aacca6f
DM
10560 },
10561 "vmid" : {
10562 "description" : "The (unique) ID of the VM.",
44660702 10563 "format" : "pve-vmid",
7aacca6f 10564 "minimum" : 1,
4bd7df8b 10565 "type" : "integer",
013dc89f 10566 "typetext" : "<integer> (1 - N)"
56122987
DM
10567 }
10568 }
10569 },
56122987
DM
10570 "permissions" : {
10571 "check" : [
10572 "perm",
10573 "/vms/{vmid}",
10574 [
44660702 10575 "VM.Config.Network"
56122987
DM
10576 ]
10577 ]
7aacca6f 10578 },
44660702 10579 "protected" : 1,
7aacca6f 10580 "proxyto" : "node",
44660702
DM
10581 "returns" : {
10582 "type" : "null"
10583 }
56122987
DM
10584 }
10585 },
44660702 10586 "leaf" : 1,
7aacca6f 10587 "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
44660702 10588 "text" : "options"
56122987
DM
10589 },
10590 {
56122987
DM
10591 "info" : {
10592 "GET" : {
e9cd3bd4 10593 "allowtoken" : 1,
44660702
DM
10594 "description" : "Read firewall log",
10595 "method" : "GET",
10596 "name" : "log",
10597 "parameters" : {
10598 "additionalProperties" : 0,
10599 "properties" : {
10600 "limit" : {
10601 "minimum" : 0,
10602 "optional" : 1,
4bd7df8b 10603 "type" : "integer",
013dc89f 10604 "typetext" : "<integer> (0 - N)"
56122987 10605 },
44660702
DM
10606 "node" : {
10607 "description" : "The cluster node name.",
10608 "format" : "pve-node",
013dc89f
DM
10609 "type" : "string",
10610 "typetext" : "<string>"
44660702
DM
10611 },
10612 "start" : {
10613 "minimum" : 0,
10614 "optional" : 1,
4bd7df8b 10615 "type" : "integer",
013dc89f 10616 "typetext" : "<integer> (0 - N)"
44660702
DM
10617 },
10618 "vmid" : {
10619 "description" : "The (unique) ID of the VM.",
10620 "format" : "pve-vmid",
10621 "minimum" : 1,
4bd7df8b 10622 "type" : "integer",
013dc89f 10623 "typetext" : "<integer> (1 - N)"
44660702
DM
10624 }
10625 }
7aacca6f 10626 },
7aacca6f
DM
10627 "permissions" : {
10628 "check" : [
10629 "perm",
10630 "/vms/{vmid}",
10631 [
10632 "VM.Console"
10633 ]
10634 ]
56122987 10635 },
7aacca6f 10636 "protected" : 1,
44660702
DM
10637 "proxyto" : "node",
10638 "returns" : {
10639 "items" : {
10640 "properties" : {
10641 "n" : {
10642 "description" : "Line number",
10643 "type" : "integer"
10644 },
10645 "t" : {
10646 "description" : "Line text",
10647 "type" : "string"
10648 }
56122987 10649 },
44660702 10650 "type" : "object"
7aacca6f 10651 },
44660702 10652 "type" : "array"
7aacca6f
DM
10653 }
10654 }
10655 },
44660702 10656 "leaf" : 1,
7aacca6f 10657 "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
44660702 10658 "text" : "log"
7aacca6f
DM
10659 },
10660 {
7aacca6f
DM
10661 "info" : {
10662 "GET" : {
e9cd3bd4 10663 "allowtoken" : 1,
7aacca6f 10664 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702
DM
10665 "method" : "GET",
10666 "name" : "refs",
56122987 10667 "parameters" : {
44660702 10668 "additionalProperties" : 0,
56122987
DM
10669 "properties" : {
10670 "node" : {
7aacca6f 10671 "description" : "The cluster node name.",
44660702 10672 "format" : "pve-node",
013dc89f
DM
10673 "type" : "string",
10674 "typetext" : "<string>"
56122987
DM
10675 },
10676 "type" : {
56122987
DM
10677 "description" : "Only list references of specified type.",
10678 "enum" : [
10679 "alias",
10680 "ipset"
7aacca6f 10681 ],
44660702
DM
10682 "optional" : 1,
10683 "type" : "string"
10684 },
10685 "vmid" : {
10686 "description" : "The (unique) ID of the VM.",
10687 "format" : "pve-vmid",
10688 "minimum" : 1,
4bd7df8b 10689 "type" : "integer",
013dc89f 10690 "typetext" : "<integer> (1 - N)"
56122987 10691 }
44660702
DM
10692 }
10693 },
10694 "permissions" : {
10695 "check" : [
10696 "perm",
10697 "/vms/{vmid}",
10698 [
10699 "VM.Audit"
10700 ]
10701 ]
56122987
DM
10702 },
10703 "returns" : {
56122987
DM
10704 "items" : {
10705 "properties" : {
44660702
DM
10706 "comment" : {
10707 "optional" : 1,
56122987
DM
10708 "type" : "string"
10709 },
10710 "name" : {
10711 "type" : "string"
10712 },
44660702
DM
10713 "type" : {
10714 "enum" : [
10715 "alias",
10716 "ipset"
10717 ],
7aacca6f 10718 "type" : "string"
56122987
DM
10719 }
10720 },
10721 "type" : "object"
7aacca6f
DM
10722 },
10723 "type" : "array"
10724 }
56122987 10725 }
44660702
DM
10726 },
10727 "leaf" : 1,
10728 "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
10729 "text" : "refs"
56122987
DM
10730 }
10731 ],
56122987
DM
10732 "info" : {
10733 "GET" : {
e9cd3bd4 10734 "allowtoken" : 1,
44660702 10735 "description" : "Directory index.",
56122987 10736 "method" : "GET",
44660702 10737 "name" : "index",
56122987 10738 "parameters" : {
44660702 10739 "additionalProperties" : 0,
56122987
DM
10740 "properties" : {
10741 "node" : {
10742 "description" : "The cluster node name.",
44660702 10743 "format" : "pve-node",
013dc89f
DM
10744 "type" : "string",
10745 "typetext" : "<string>"
56122987
DM
10746 },
10747 "vmid" : {
44660702 10748 "description" : "The (unique) ID of the VM.",
56122987
DM
10749 "format" : "pve-vmid",
10750 "minimum" : 1,
4bd7df8b 10751 "type" : "integer",
013dc89f 10752 "typetext" : "<integer> (1 - N)"
56122987 10753 }
44660702 10754 }
56122987 10755 },
56122987 10756 "permissions" : {
27a7acb2
DM
10757 "user" : "all"
10758 },
10759 "returns" : {
10760 "items" : {
10761 "properties" : {},
10762 "type" : "object"
10763 },
10764 "links" : [
10765 {
10766 "href" : "{name}",
10767 "rel" : "child"
10768 }
10769 ],
10770 "type" : "array"
10771 }
10772 }
10773 },
10774 "leaf" : 0,
10775 "path" : "/nodes/{node}/qemu/{vmid}/firewall",
10776 "text" : "firewall"
10777 },
10778 {
10779 "children" : [
10780 {
10781 "info" : {
10782 "POST" : {
e9cd3bd4 10783 "allowtoken" : 1,
27a7acb2
DM
10784 "description" : "Execute fsfreeze-freeze.",
10785 "method" : "POST",
10786 "name" : "fsfreeze-freeze",
10787 "parameters" : {
10788 "additionalProperties" : 0,
10789 "properties" : {
10790 "node" : {
10791 "description" : "The cluster node name.",
10792 "format" : "pve-node",
10793 "type" : "string",
10794 "typetext" : "<string>"
10795 },
10796 "vmid" : {
10797 "description" : "The (unique) ID of the VM.",
10798 "format" : "pve-vmid",
10799 "minimum" : 1,
10800 "type" : "integer",
10801 "typetext" : "<integer> (1 - N)"
10802 }
10803 }
10804 },
10805 "permissions" : {
10806 "check" : [
10807 "perm",
10808 "/vms/{vmid}",
10809 [
10810 "VM.Monitor"
10811 ]
10812 ]
10813 },
10814 "protected" : 1,
10815 "proxyto" : "node",
10816 "returns" : {
10817 "description" : "Returns an object with a single `result` property.",
10818 "type" : "object"
10819 }
10820 }
10821 },
10822 "leaf" : 1,
10823 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze",
10824 "text" : "fsfreeze-freeze"
10825 },
10826 {
10827 "info" : {
10828 "POST" : {
e9cd3bd4 10829 "allowtoken" : 1,
27a7acb2
DM
10830 "description" : "Execute fsfreeze-status.",
10831 "method" : "POST",
10832 "name" : "fsfreeze-status",
10833 "parameters" : {
10834 "additionalProperties" : 0,
10835 "properties" : {
10836 "node" : {
10837 "description" : "The cluster node name.",
10838 "format" : "pve-node",
10839 "type" : "string",
10840 "typetext" : "<string>"
10841 },
10842 "vmid" : {
10843 "description" : "The (unique) ID of the VM.",
10844 "format" : "pve-vmid",
10845 "minimum" : 1,
10846 "type" : "integer",
10847 "typetext" : "<integer> (1 - N)"
10848 }
10849 }
10850 },
10851 "permissions" : {
10852 "check" : [
10853 "perm",
10854 "/vms/{vmid}",
10855 [
10856 "VM.Monitor"
10857 ]
10858 ]
10859 },
10860 "protected" : 1,
10861 "proxyto" : "node",
10862 "returns" : {
10863 "description" : "Returns an object with a single `result` property.",
10864 "type" : "object"
10865 }
10866 }
10867 },
10868 "leaf" : 1,
10869 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status",
10870 "text" : "fsfreeze-status"
10871 },
10872 {
10873 "info" : {
10874 "POST" : {
e9cd3bd4 10875 "allowtoken" : 1,
27a7acb2
DM
10876 "description" : "Execute fsfreeze-thaw.",
10877 "method" : "POST",
10878 "name" : "fsfreeze-thaw",
10879 "parameters" : {
10880 "additionalProperties" : 0,
10881 "properties" : {
10882 "node" : {
10883 "description" : "The cluster node name.",
10884 "format" : "pve-node",
10885 "type" : "string",
10886 "typetext" : "<string>"
10887 },
10888 "vmid" : {
10889 "description" : "The (unique) ID of the VM.",
10890 "format" : "pve-vmid",
10891 "minimum" : 1,
10892 "type" : "integer",
10893 "typetext" : "<integer> (1 - N)"
10894 }
10895 }
10896 },
10897 "permissions" : {
10898 "check" : [
10899 "perm",
10900 "/vms/{vmid}",
10901 [
10902 "VM.Monitor"
10903 ]
10904 ]
10905 },
10906 "protected" : 1,
10907 "proxyto" : "node",
10908 "returns" : {
10909 "description" : "Returns an object with a single `result` property.",
10910 "type" : "object"
10911 }
10912 }
10913 },
10914 "leaf" : 1,
10915 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw",
10916 "text" : "fsfreeze-thaw"
10917 },
10918 {
10919 "info" : {
10920 "POST" : {
e9cd3bd4 10921 "allowtoken" : 1,
27a7acb2
DM
10922 "description" : "Execute fstrim.",
10923 "method" : "POST",
10924 "name" : "fstrim",
10925 "parameters" : {
10926 "additionalProperties" : 0,
10927 "properties" : {
10928 "node" : {
10929 "description" : "The cluster node name.",
10930 "format" : "pve-node",
10931 "type" : "string",
10932 "typetext" : "<string>"
10933 },
10934 "vmid" : {
10935 "description" : "The (unique) ID of the VM.",
10936 "format" : "pve-vmid",
10937 "minimum" : 1,
10938 "type" : "integer",
10939 "typetext" : "<integer> (1 - N)"
10940 }
10941 }
10942 },
10943 "permissions" : {
10944 "check" : [
10945 "perm",
10946 "/vms/{vmid}",
10947 [
10948 "VM.Monitor"
10949 ]
10950 ]
10951 },
10952 "protected" : 1,
10953 "proxyto" : "node",
10954 "returns" : {
10955 "description" : "Returns an object with a single `result` property.",
10956 "type" : "object"
10957 }
10958 }
10959 },
10960 "leaf" : 1,
10961 "path" : "/nodes/{node}/qemu/{vmid}/agent/fstrim",
10962 "text" : "fstrim"
10963 },
10964 {
10965 "info" : {
10966 "GET" : {
e9cd3bd4 10967 "allowtoken" : 1,
27a7acb2
DM
10968 "description" : "Execute get-fsinfo.",
10969 "method" : "GET",
10970 "name" : "get-fsinfo",
10971 "parameters" : {
10972 "additionalProperties" : 0,
10973 "properties" : {
10974 "node" : {
10975 "description" : "The cluster node name.",
10976 "format" : "pve-node",
10977 "type" : "string",
10978 "typetext" : "<string>"
10979 },
10980 "vmid" : {
10981 "description" : "The (unique) ID of the VM.",
10982 "format" : "pve-vmid",
10983 "minimum" : 1,
10984 "type" : "integer",
10985 "typetext" : "<integer> (1 - N)"
10986 }
10987 }
10988 },
10989 "permissions" : {
10990 "check" : [
10991 "perm",
10992 "/vms/{vmid}",
10993 [
10994 "VM.Monitor"
10995 ]
10996 ]
10997 },
10998 "protected" : 1,
10999 "proxyto" : "node",
11000 "returns" : {
11001 "description" : "Returns an object with a single `result` property.",
11002 "type" : "object"
11003 }
11004 }
11005 },
11006 "leaf" : 1,
11007 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-fsinfo",
11008 "text" : "get-fsinfo"
11009 },
11010 {
11011 "info" : {
11012 "GET" : {
e9cd3bd4 11013 "allowtoken" : 1,
27a7acb2
DM
11014 "description" : "Execute get-host-name.",
11015 "method" : "GET",
11016 "name" : "get-host-name",
11017 "parameters" : {
11018 "additionalProperties" : 0,
11019 "properties" : {
11020 "node" : {
11021 "description" : "The cluster node name.",
11022 "format" : "pve-node",
11023 "type" : "string",
11024 "typetext" : "<string>"
11025 },
11026 "vmid" : {
11027 "description" : "The (unique) ID of the VM.",
11028 "format" : "pve-vmid",
11029 "minimum" : 1,
11030 "type" : "integer",
11031 "typetext" : "<integer> (1 - N)"
11032 }
11033 }
11034 },
11035 "permissions" : {
11036 "check" : [
11037 "perm",
11038 "/vms/{vmid}",
11039 [
11040 "VM.Monitor"
11041 ]
11042 ]
11043 },
11044 "protected" : 1,
11045 "proxyto" : "node",
11046 "returns" : {
11047 "description" : "Returns an object with a single `result` property.",
11048 "type" : "object"
11049 }
11050 }
11051 },
11052 "leaf" : 1,
11053 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-host-name",
11054 "text" : "get-host-name"
11055 },
11056 {
11057 "info" : {
11058 "GET" : {
e9cd3bd4 11059 "allowtoken" : 1,
27a7acb2
DM
11060 "description" : "Execute get-memory-block-info.",
11061 "method" : "GET",
11062 "name" : "get-memory-block-info",
11063 "parameters" : {
11064 "additionalProperties" : 0,
11065 "properties" : {
11066 "node" : {
11067 "description" : "The cluster node name.",
11068 "format" : "pve-node",
11069 "type" : "string",
11070 "typetext" : "<string>"
11071 },
11072 "vmid" : {
11073 "description" : "The (unique) ID of the VM.",
11074 "format" : "pve-vmid",
11075 "minimum" : 1,
11076 "type" : "integer",
11077 "typetext" : "<integer> (1 - N)"
11078 }
11079 }
11080 },
11081 "permissions" : {
11082 "check" : [
11083 "perm",
11084 "/vms/{vmid}",
11085 [
11086 "VM.Monitor"
11087 ]
11088 ]
11089 },
11090 "protected" : 1,
11091 "proxyto" : "node",
11092 "returns" : {
11093 "description" : "Returns an object with a single `result` property.",
11094 "type" : "object"
11095 }
11096 }
11097 },
11098 "leaf" : 1,
11099 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info",
11100 "text" : "get-memory-block-info"
11101 },
11102 {
11103 "info" : {
11104 "GET" : {
e9cd3bd4 11105 "allowtoken" : 1,
27a7acb2
DM
11106 "description" : "Execute get-memory-blocks.",
11107 "method" : "GET",
11108 "name" : "get-memory-blocks",
11109 "parameters" : {
11110 "additionalProperties" : 0,
11111 "properties" : {
11112 "node" : {
11113 "description" : "The cluster node name.",
11114 "format" : "pve-node",
11115 "type" : "string",
11116 "typetext" : "<string>"
11117 },
11118 "vmid" : {
11119 "description" : "The (unique) ID of the VM.",
11120 "format" : "pve-vmid",
11121 "minimum" : 1,
11122 "type" : "integer",
11123 "typetext" : "<integer> (1 - N)"
11124 }
11125 }
11126 },
11127 "permissions" : {
11128 "check" : [
11129 "perm",
11130 "/vms/{vmid}",
11131 [
11132 "VM.Monitor"
11133 ]
11134 ]
11135 },
11136 "protected" : 1,
11137 "proxyto" : "node",
11138 "returns" : {
11139 "description" : "Returns an object with a single `result` property.",
11140 "type" : "object"
11141 }
11142 }
11143 },
11144 "leaf" : 1,
11145 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks",
11146 "text" : "get-memory-blocks"
11147 },
11148 {
11149 "info" : {
11150 "GET" : {
e9cd3bd4 11151 "allowtoken" : 1,
27a7acb2
DM
11152 "description" : "Execute get-osinfo.",
11153 "method" : "GET",
11154 "name" : "get-osinfo",
11155 "parameters" : {
11156 "additionalProperties" : 0,
11157 "properties" : {
11158 "node" : {
11159 "description" : "The cluster node name.",
11160 "format" : "pve-node",
11161 "type" : "string",
11162 "typetext" : "<string>"
11163 },
11164 "vmid" : {
11165 "description" : "The (unique) ID of the VM.",
11166 "format" : "pve-vmid",
11167 "minimum" : 1,
11168 "type" : "integer",
11169 "typetext" : "<integer> (1 - N)"
11170 }
11171 }
11172 },
11173 "permissions" : {
11174 "check" : [
11175 "perm",
11176 "/vms/{vmid}",
11177 [
11178 "VM.Monitor"
11179 ]
11180 ]
11181 },
11182 "protected" : 1,
11183 "proxyto" : "node",
11184 "returns" : {
11185 "description" : "Returns an object with a single `result` property.",
11186 "type" : "object"
11187 }
11188 }
11189 },
11190 "leaf" : 1,
11191 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-osinfo",
11192 "text" : "get-osinfo"
11193 },
11194 {
11195 "info" : {
11196 "GET" : {
e9cd3bd4 11197 "allowtoken" : 1,
27a7acb2
DM
11198 "description" : "Execute get-time.",
11199 "method" : "GET",
11200 "name" : "get-time",
11201 "parameters" : {
11202 "additionalProperties" : 0,
11203 "properties" : {
11204 "node" : {
11205 "description" : "The cluster node name.",
11206 "format" : "pve-node",
11207 "type" : "string",
11208 "typetext" : "<string>"
11209 },
11210 "vmid" : {
11211 "description" : "The (unique) ID of the VM.",
11212 "format" : "pve-vmid",
11213 "minimum" : 1,
11214 "type" : "integer",
11215 "typetext" : "<integer> (1 - N)"
11216 }
11217 }
11218 },
11219 "permissions" : {
11220 "check" : [
11221 "perm",
11222 "/vms/{vmid}",
11223 [
11224 "VM.Monitor"
11225 ]
11226 ]
11227 },
11228 "protected" : 1,
11229 "proxyto" : "node",
11230 "returns" : {
11231 "description" : "Returns an object with a single `result` property.",
11232 "type" : "object"
11233 }
11234 }
11235 },
11236 "leaf" : 1,
11237 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-time",
11238 "text" : "get-time"
11239 },
11240 {
11241 "info" : {
11242 "GET" : {
e9cd3bd4 11243 "allowtoken" : 1,
27a7acb2
DM
11244 "description" : "Execute get-timezone.",
11245 "method" : "GET",
11246 "name" : "get-timezone",
11247 "parameters" : {
11248 "additionalProperties" : 0,
11249 "properties" : {
11250 "node" : {
11251 "description" : "The cluster node name.",
11252 "format" : "pve-node",
11253 "type" : "string",
11254 "typetext" : "<string>"
11255 },
11256 "vmid" : {
11257 "description" : "The (unique) ID of the VM.",
11258 "format" : "pve-vmid",
11259 "minimum" : 1,
11260 "type" : "integer",
11261 "typetext" : "<integer> (1 - N)"
11262 }
11263 }
11264 },
11265 "permissions" : {
11266 "check" : [
11267 "perm",
11268 "/vms/{vmid}",
11269 [
11270 "VM.Monitor"
11271 ]
11272 ]
11273 },
11274 "protected" : 1,
11275 "proxyto" : "node",
11276 "returns" : {
11277 "description" : "Returns an object with a single `result` property.",
11278 "type" : "object"
11279 }
11280 }
11281 },
11282 "leaf" : 1,
11283 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-timezone",
11284 "text" : "get-timezone"
11285 },
11286 {
11287 "info" : {
11288 "GET" : {
e9cd3bd4 11289 "allowtoken" : 1,
27a7acb2
DM
11290 "description" : "Execute get-users.",
11291 "method" : "GET",
11292 "name" : "get-users",
11293 "parameters" : {
11294 "additionalProperties" : 0,
11295 "properties" : {
11296 "node" : {
11297 "description" : "The cluster node name.",
11298 "format" : "pve-node",
11299 "type" : "string",
11300 "typetext" : "<string>"
11301 },
11302 "vmid" : {
11303 "description" : "The (unique) ID of the VM.",
11304 "format" : "pve-vmid",
11305 "minimum" : 1,
11306 "type" : "integer",
11307 "typetext" : "<integer> (1 - N)"
11308 }
11309 }
11310 },
11311 "permissions" : {
11312 "check" : [
11313 "perm",
11314 "/vms/{vmid}",
11315 [
11316 "VM.Monitor"
11317 ]
11318 ]
11319 },
11320 "protected" : 1,
11321 "proxyto" : "node",
11322 "returns" : {
11323 "description" : "Returns an object with a single `result` property.",
11324 "type" : "object"
11325 }
11326 }
11327 },
11328 "leaf" : 1,
11329 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-users",
11330 "text" : "get-users"
11331 },
11332 {
11333 "info" : {
11334 "GET" : {
e9cd3bd4 11335 "allowtoken" : 1,
27a7acb2
DM
11336 "description" : "Execute get-vcpus.",
11337 "method" : "GET",
11338 "name" : "get-vcpus",
11339 "parameters" : {
11340 "additionalProperties" : 0,
11341 "properties" : {
11342 "node" : {
11343 "description" : "The cluster node name.",
11344 "format" : "pve-node",
11345 "type" : "string",
11346 "typetext" : "<string>"
11347 },
11348 "vmid" : {
11349 "description" : "The (unique) ID of the VM.",
11350 "format" : "pve-vmid",
11351 "minimum" : 1,
11352 "type" : "integer",
11353 "typetext" : "<integer> (1 - N)"
11354 }
11355 }
11356 },
11357 "permissions" : {
11358 "check" : [
11359 "perm",
11360 "/vms/{vmid}",
11361 [
11362 "VM.Monitor"
11363 ]
11364 ]
11365 },
11366 "protected" : 1,
11367 "proxyto" : "node",
11368 "returns" : {
11369 "description" : "Returns an object with a single `result` property.",
11370 "type" : "object"
11371 }
11372 }
11373 },
11374 "leaf" : 1,
11375 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-vcpus",
11376 "text" : "get-vcpus"
11377 },
11378 {
11379 "info" : {
11380 "GET" : {
e9cd3bd4 11381 "allowtoken" : 1,
27a7acb2
DM
11382 "description" : "Execute info.",
11383 "method" : "GET",
11384 "name" : "info",
11385 "parameters" : {
11386 "additionalProperties" : 0,
11387 "properties" : {
11388 "node" : {
11389 "description" : "The cluster node name.",
11390 "format" : "pve-node",
11391 "type" : "string",
11392 "typetext" : "<string>"
11393 },
11394 "vmid" : {
11395 "description" : "The (unique) ID of the VM.",
11396 "format" : "pve-vmid",
11397 "minimum" : 1,
11398 "type" : "integer",
11399 "typetext" : "<integer> (1 - N)"
11400 }
11401 }
11402 },
11403 "permissions" : {
11404 "check" : [
11405 "perm",
11406 "/vms/{vmid}",
11407 [
11408 "VM.Monitor"
11409 ]
11410 ]
11411 },
11412 "protected" : 1,
11413 "proxyto" : "node",
11414 "returns" : {
11415 "description" : "Returns an object with a single `result` property.",
11416 "type" : "object"
11417 }
11418 }
11419 },
11420 "leaf" : 1,
11421 "path" : "/nodes/{node}/qemu/{vmid}/agent/info",
11422 "text" : "info"
11423 },
11424 {
11425 "info" : {
11426 "GET" : {
e9cd3bd4 11427 "allowtoken" : 1,
27a7acb2
DM
11428 "description" : "Execute network-get-interfaces.",
11429 "method" : "GET",
11430 "name" : "network-get-interfaces",
11431 "parameters" : {
11432 "additionalProperties" : 0,
11433 "properties" : {
11434 "node" : {
11435 "description" : "The cluster node name.",
11436 "format" : "pve-node",
11437 "type" : "string",
11438 "typetext" : "<string>"
11439 },
11440 "vmid" : {
11441 "description" : "The (unique) ID of the VM.",
11442 "format" : "pve-vmid",
11443 "minimum" : 1,
11444 "type" : "integer",
11445 "typetext" : "<integer> (1 - N)"
11446 }
11447 }
11448 },
11449 "permissions" : {
11450 "check" : [
11451 "perm",
11452 "/vms/{vmid}",
11453 [
11454 "VM.Monitor"
11455 ]
11456 ]
11457 },
11458 "protected" : 1,
11459 "proxyto" : "node",
11460 "returns" : {
11461 "description" : "Returns an object with a single `result` property.",
11462 "type" : "object"
11463 }
11464 }
11465 },
11466 "leaf" : 1,
11467 "path" : "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces",
11468 "text" : "network-get-interfaces"
11469 },
11470 {
11471 "info" : {
11472 "POST" : {
e9cd3bd4 11473 "allowtoken" : 1,
27a7acb2
DM
11474 "description" : "Execute ping.",
11475 "method" : "POST",
11476 "name" : "ping",
11477 "parameters" : {
11478 "additionalProperties" : 0,
11479 "properties" : {
11480 "node" : {
11481 "description" : "The cluster node name.",
11482 "format" : "pve-node",
11483 "type" : "string",
11484 "typetext" : "<string>"
11485 },
11486 "vmid" : {
11487 "description" : "The (unique) ID of the VM.",
11488 "format" : "pve-vmid",
11489 "minimum" : 1,
11490 "type" : "integer",
11491 "typetext" : "<integer> (1 - N)"
11492 }
11493 }
11494 },
11495 "permissions" : {
11496 "check" : [
11497 "perm",
11498 "/vms/{vmid}",
11499 [
11500 "VM.Monitor"
11501 ]
11502 ]
11503 },
11504 "protected" : 1,
11505 "proxyto" : "node",
11506 "returns" : {
11507 "description" : "Returns an object with a single `result` property.",
11508 "type" : "object"
11509 }
11510 }
11511 },
11512 "leaf" : 1,
11513 "path" : "/nodes/{node}/qemu/{vmid}/agent/ping",
11514 "text" : "ping"
11515 },
11516 {
11517 "info" : {
11518 "POST" : {
e9cd3bd4 11519 "allowtoken" : 1,
27a7acb2
DM
11520 "description" : "Execute shutdown.",
11521 "method" : "POST",
11522 "name" : "shutdown",
11523 "parameters" : {
11524 "additionalProperties" : 0,
11525 "properties" : {
11526 "node" : {
11527 "description" : "The cluster node name.",
11528 "format" : "pve-node",
11529 "type" : "string",
11530 "typetext" : "<string>"
11531 },
11532 "vmid" : {
11533 "description" : "The (unique) ID of the VM.",
11534 "format" : "pve-vmid",
11535 "minimum" : 1,
11536 "type" : "integer",
11537 "typetext" : "<integer> (1 - N)"
11538 }
11539 }
11540 },
11541 "permissions" : {
11542 "check" : [
11543 "perm",
11544 "/vms/{vmid}",
11545 [
11546 "VM.Monitor"
11547 ]
11548 ]
11549 },
11550 "protected" : 1,
11551 "proxyto" : "node",
11552 "returns" : {
11553 "description" : "Returns an object with a single `result` property.",
11554 "type" : "object"
11555 }
11556 }
11557 },
11558 "leaf" : 1,
11559 "path" : "/nodes/{node}/qemu/{vmid}/agent/shutdown",
11560 "text" : "shutdown"
11561 },
11562 {
11563 "info" : {
11564 "POST" : {
e9cd3bd4 11565 "allowtoken" : 1,
27a7acb2
DM
11566 "description" : "Execute suspend-disk.",
11567 "method" : "POST",
11568 "name" : "suspend-disk",
11569 "parameters" : {
11570 "additionalProperties" : 0,
11571 "properties" : {
11572 "node" : {
11573 "description" : "The cluster node name.",
11574 "format" : "pve-node",
11575 "type" : "string",
11576 "typetext" : "<string>"
11577 },
11578 "vmid" : {
11579 "description" : "The (unique) ID of the VM.",
11580 "format" : "pve-vmid",
11581 "minimum" : 1,
11582 "type" : "integer",
11583 "typetext" : "<integer> (1 - N)"
11584 }
11585 }
11586 },
11587 "permissions" : {
11588 "check" : [
11589 "perm",
11590 "/vms/{vmid}",
11591 [
11592 "VM.Monitor"
11593 ]
11594 ]
11595 },
11596 "protected" : 1,
11597 "proxyto" : "node",
11598 "returns" : {
11599 "description" : "Returns an object with a single `result` property.",
11600 "type" : "object"
11601 }
11602 }
11603 },
11604 "leaf" : 1,
11605 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-disk",
11606 "text" : "suspend-disk"
11607 },
11608 {
11609 "info" : {
11610 "POST" : {
e9cd3bd4 11611 "allowtoken" : 1,
27a7acb2
DM
11612 "description" : "Execute suspend-hybrid.",
11613 "method" : "POST",
11614 "name" : "suspend-hybrid",
11615 "parameters" : {
11616 "additionalProperties" : 0,
11617 "properties" : {
11618 "node" : {
11619 "description" : "The cluster node name.",
11620 "format" : "pve-node",
11621 "type" : "string",
11622 "typetext" : "<string>"
11623 },
11624 "vmid" : {
11625 "description" : "The (unique) ID of the VM.",
11626 "format" : "pve-vmid",
11627 "minimum" : 1,
11628 "type" : "integer",
11629 "typetext" : "<integer> (1 - N)"
11630 }
11631 }
11632 },
11633 "permissions" : {
11634 "check" : [
11635 "perm",
11636 "/vms/{vmid}",
11637 [
11638 "VM.Monitor"
11639 ]
11640 ]
11641 },
11642 "protected" : 1,
11643 "proxyto" : "node",
11644 "returns" : {
11645 "description" : "Returns an object with a single `result` property.",
11646 "type" : "object"
11647 }
11648 }
11649 },
11650 "leaf" : 1,
11651 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid",
11652 "text" : "suspend-hybrid"
11653 },
11654 {
11655 "info" : {
11656 "POST" : {
e9cd3bd4 11657 "allowtoken" : 1,
27a7acb2
DM
11658 "description" : "Execute suspend-ram.",
11659 "method" : "POST",
11660 "name" : "suspend-ram",
11661 "parameters" : {
11662 "additionalProperties" : 0,
11663 "properties" : {
11664 "node" : {
11665 "description" : "The cluster node name.",
11666 "format" : "pve-node",
11667 "type" : "string",
11668 "typetext" : "<string>"
11669 },
11670 "vmid" : {
11671 "description" : "The (unique) ID of the VM.",
11672 "format" : "pve-vmid",
11673 "minimum" : 1,
11674 "type" : "integer",
11675 "typetext" : "<integer> (1 - N)"
11676 }
11677 }
11678 },
11679 "permissions" : {
11680 "check" : [
11681 "perm",
11682 "/vms/{vmid}",
11683 [
11684 "VM.Monitor"
11685 ]
11686 ]
11687 },
11688 "protected" : 1,
11689 "proxyto" : "node",
11690 "returns" : {
11691 "description" : "Returns an object with a single `result` property.",
11692 "type" : "object"
11693 }
11694 }
11695 },
11696 "leaf" : 1,
11697 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram",
11698 "text" : "suspend-ram"
4d47f125
TL
11699 },
11700 {
11701 "info" : {
11702 "POST" : {
e9cd3bd4 11703 "allowtoken" : 1,
4d47f125
TL
11704 "description" : "Sets the password for the given user to the given password",
11705 "method" : "POST",
11706 "name" : "set-user-password",
11707 "parameters" : {
11708 "additionalProperties" : 0,
11709 "properties" : {
11710 "crypted" : {
11711 "default" : 0,
11712 "description" : "set to 1 if the password has already been passed through crypt()",
11713 "optional" : 1,
11714 "type" : "boolean",
11715 "typetext" : "<boolean>"
11716 },
11717 "node" : {
11718 "description" : "The cluster node name.",
11719 "format" : "pve-node",
11720 "type" : "string",
11721 "typetext" : "<string>"
11722 },
11723 "password" : {
11724 "description" : "The new password.",
1c532546 11725 "maxLength" : 1024,
4d47f125
TL
11726 "minLength" : 5,
11727 "type" : "string",
11728 "typetext" : "<string>"
11729 },
11730 "username" : {
11731 "description" : "The user to set the password for.",
11732 "type" : "string",
11733 "typetext" : "<string>"
11734 },
11735 "vmid" : {
11736 "description" : "The (unique) ID of the VM.",
11737 "format" : "pve-vmid",
11738 "minimum" : 1,
11739 "type" : "integer",
11740 "typetext" : "<integer> (1 - N)"
11741 }
11742 }
27a7acb2 11743 },
4d47f125
TL
11744 "permissions" : {
11745 "check" : [
11746 "perm",
11747 "/vms/{vmid}",
11748 [
11749 "VM.Monitor"
11750 ]
11751 ]
11752 },
11753 "protected" : 1,
11754 "proxyto" : "node",
11755 "returns" : {
11756 "description" : "Returns an object with a single `result` property.",
11757 "type" : "object"
27a7acb2
DM
11758 }
11759 }
11760 },
4d47f125
TL
11761 "leaf" : 1,
11762 "path" : "/nodes/{node}/qemu/{vmid}/agent/set-user-password",
11763 "text" : "set-user-password"
27a7acb2 11764 },
4d47f125
TL
11765 {
11766 "info" : {
11767 "POST" : {
e9cd3bd4 11768 "allowtoken" : 1,
4d47f125
TL
11769 "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.",
11770 "method" : "POST",
11771 "name" : "exec",
11772 "parameters" : {
11773 "additionalProperties" : 0,
11774 "properties" : {
11775 "command" : {
11776 "description" : "The command as a list of program + arguments",
11777 "format" : "string-alist",
c5aa7e14
TL
11778 "optional" : 1,
11779 "type" : "string",
11780 "typetext" : "<string>"
11781 },
11782 "input-data" : {
11783 "description" : "Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'.",
11784 "maxLength" : 65536,
11785 "optional" : 1,
4d47f125
TL
11786 "type" : "string",
11787 "typetext" : "<string>"
11788 },
11789 "node" : {
11790 "description" : "The cluster node name.",
11791 "format" : "pve-node",
11792 "type" : "string",
11793 "typetext" : "<string>"
11794 },
11795 "vmid" : {
11796 "description" : "The (unique) ID of the VM.",
11797 "format" : "pve-vmid",
11798 "minimum" : 1,
11799 "type" : "integer",
11800 "typetext" : "<integer> (1 - N)"
11801 }
11802 }
27a7acb2 11803 },
4d47f125
TL
11804 "permissions" : {
11805 "check" : [
11806 "perm",
11807 "/vms/{vmid}",
11808 [
11809 "VM.Monitor"
11810 ]
11811 ]
27a7acb2 11812 },
4d47f125
TL
11813 "protected" : 1,
11814 "proxyto" : "node",
11815 "returns" : {
11816 "properties" : {
11817 "pid" : {
11818 "description" : "The PID of the process started by the guest-agent.",
11819 "type" : "integer"
11820 }
11821 },
11822 "type" : "object"
27a7acb2
DM
11823 }
11824 }
11825 },
4d47f125
TL
11826 "leaf" : 1,
11827 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec",
11828 "text" : "exec"
11829 },
11830 {
11831 "info" : {
11832 "GET" : {
e9cd3bd4 11833 "allowtoken" : 1,
4d47f125
TL
11834 "description" : "Gets the status of the given pid started by the guest-agent",
11835 "method" : "GET",
11836 "name" : "exec-status",
11837 "parameters" : {
11838 "additionalProperties" : 0,
11839 "properties" : {
11840 "node" : {
11841 "description" : "The cluster node name.",
11842 "format" : "pve-node",
11843 "type" : "string",
11844 "typetext" : "<string>"
11845 },
11846 "pid" : {
11847 "description" : "The PID to query",
11848 "type" : "integer",
11849 "typetext" : "<integer>"
11850 },
11851 "vmid" : {
11852 "description" : "The (unique) ID of the VM.",
11853 "format" : "pve-vmid",
11854 "minimum" : 1,
11855 "type" : "integer",
11856 "typetext" : "<integer> (1 - N)"
11857 }
11858 }
56122987 11859 },
4d47f125
TL
11860 "permissions" : {
11861 "check" : [
11862 "perm",
11863 "/vms/{vmid}",
11864 [
11865 "VM.Monitor"
11866 ]
11867 ]
56122987 11868 },
4d47f125
TL
11869 "protected" : 1,
11870 "proxyto" : "node",
11871 "returns" : {
11872 "properties" : {
11873 "err-data" : {
11874 "description" : "stderr of the process",
11875 "optional" : 1,
11876 "type" : "string"
11877 },
11878 "err-truncated" : {
11879 "description" : "true if stderr was not fully captured",
11880 "optional" : 1,
11881 "type" : "boolean"
11882 },
11883 "exitcode" : {
11884 "description" : "process exit code if it was normally terminated.",
11885 "optional" : 1,
11886 "type" : "integer"
11887 },
11888 "exited" : {
11889 "description" : "Tells if the given command has exited yet.",
11890 "type" : "boolean"
11891 },
11892 "out-data" : {
11893 "description" : "stdout of the process",
11894 "optional" : 1,
11895 "type" : "string"
11896 },
11897 "out-truncated" : {
11898 "description" : "true if stdout was not fully captured",
11899 "optional" : 1,
11900 "type" : "boolean"
11901 },
11902 "signal" : {
11903 "description" : "signal number or exception code if the process was abnormally terminated.",
11904 "optional" : 1,
11905 "type" : "integer"
11906 }
11907 },
11908 "type" : "object"
56122987
DM
11909 }
11910 }
11911 },
4d47f125
TL
11912 "leaf" : 1,
11913 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status",
11914 "text" : "exec-status"
11915 },
11916 {
11917 "info" : {
11918 "GET" : {
e9cd3bd4 11919 "allowtoken" : 1,
4d47f125
TL
11920 "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
11921 "method" : "GET",
11922 "name" : "file-read",
11923 "parameters" : {
11924 "additionalProperties" : 0,
11925 "properties" : {
11926 "file" : {
11927 "description" : "The path to the file",
11928 "type" : "string",
11929 "typetext" : "<string>"
11930 },
11931 "node" : {
11932 "description" : "The cluster node name.",
11933 "format" : "pve-node",
11934 "type" : "string",
11935 "typetext" : "<string>"
11936 },
11937 "vmid" : {
11938 "description" : "The (unique) ID of the VM.",
11939 "format" : "pve-vmid",
11940 "minimum" : 1,
11941 "type" : "integer",
11942 "typetext" : "<integer> (1 - N)"
11943 }
11944 }
11945 },
11946 "permissions" : {
11947 "check" : [
11948 "perm",
11949 "/vms/{vmid}",
11950 [
11951 "VM.Monitor"
11952 ]
11953 ]
11954 },
11955 "protected" : 1,
11956 "proxyto" : "node",
11957 "returns" : {
11958 "description" : "Returns an object with a `content` property.",
11959 "properties" : {
11960 "content" : {
11961 "description" : "The content of the file, maximum 16777216",
11962 "type" : "string"
11963 },
11964 "truncated" : {
11965 "description" : "If set to 1, the output is truncated and not complete",
11966 "optional" : 1,
11967 "type" : "boolean"
11968 }
11969 },
11970 "type" : "object"
11971 }
11972 }
56122987 11973 },
4d47f125
TL
11974 "leaf" : 1,
11975 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-read",
11976 "text" : "file-read"
11977 },
11978 {
11979 "info" : {
11980 "POST" : {
e9cd3bd4 11981 "allowtoken" : 1,
4d47f125
TL
11982 "description" : "Writes the given file via guest agent.",
11983 "method" : "POST",
11984 "name" : "file-write",
11985 "parameters" : {
11986 "additionalProperties" : 0,
11987 "properties" : {
11988 "content" : {
11989 "description" : "The content to write into the file.",
11990 "maxLength" : 61440,
11991 "type" : "string",
11992 "typetext" : "<string>"
11993 },
11994 "file" : {
11995 "description" : "The path to the file.",
11996 "type" : "string",
11997 "typetext" : "<string>"
11998 },
11999 "node" : {
12000 "description" : "The cluster node name.",
12001 "format" : "pve-node",
12002 "type" : "string",
12003 "typetext" : "<string>"
12004 },
12005 "vmid" : {
12006 "description" : "The (unique) ID of the VM.",
12007 "format" : "pve-vmid",
12008 "minimum" : 1,
12009 "type" : "integer",
12010 "typetext" : "<integer> (1 - N)"
12011 }
12012 }
12013 },
12014 "permissions" : {
12015 "check" : [
12016 "perm",
12017 "/vms/{vmid}",
12018 [
12019 "VM.Monitor"
12020 ]
12021 ]
12022 },
12023 "protected" : 1,
12024 "proxyto" : "node",
12025 "returns" : {
12026 "type" : "null"
7aacca6f 12027 }
4d47f125
TL
12028 }
12029 },
12030 "leaf" : 1,
12031 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write",
12032 "text" : "file-write"
56122987 12033 }
4d47f125 12034 ],
7aacca6f 12035 "info" : {
56122987 12036 "GET" : {
e9cd3bd4 12037 "allowtoken" : 1,
4d47f125 12038 "description" : "Qemu Agent command index.",
44660702 12039 "method" : "GET",
4d47f125 12040 "name" : "index",
56122987 12041 "parameters" : {
4d47f125 12042 "additionalProperties" : 1,
56122987
DM
12043 "properties" : {
12044 "node" : {
44660702 12045 "description" : "The cluster node name.",
56122987 12046 "format" : "pve-node",
013dc89f
DM
12047 "type" : "string",
12048 "typetext" : "<string>"
56122987 12049 },
7aacca6f 12050 "vmid" : {
7aacca6f
DM
12051 "description" : "The (unique) ID of the VM.",
12052 "format" : "pve-vmid",
44660702 12053 "minimum" : 1,
4bd7df8b 12054 "type" : "integer",
013dc89f 12055 "typetext" : "<integer> (1 - N)"
56122987 12056 }
44660702 12057 }
56122987 12058 },
56122987 12059 "permissions" : {
4d47f125 12060 "user" : "all"
56122987 12061 },
4d47f125 12062 "proxyto" : "node",
7aacca6f 12063 "returns" : {
4d47f125 12064 "description" : "Returns the list of Qemu Agent commands",
7aacca6f 12065 "items" : {
44660702
DM
12066 "properties" : {},
12067 "type" : "object"
12068 },
4d47f125
TL
12069 "links" : [
12070 {
12071 "href" : "{name}",
12072 "rel" : "child"
12073 }
12074 ],
44660702 12075 "type" : "array"
7aacca6f 12076 }
4d47f125
TL
12077 },
12078 "POST" : {
e9cd3bd4 12079 "allowtoken" : 1,
4d47f125
TL
12080 "description" : "Execute Qemu Guest Agent commands.",
12081 "method" : "POST",
12082 "name" : "agent",
44660702
DM
12083 "parameters" : {
12084 "additionalProperties" : 0,
12085 "properties" : {
4d47f125
TL
12086 "command" : {
12087 "description" : "The QGA command.",
12088 "enum" : [
12089 "fsfreeze-freeze",
12090 "fsfreeze-status",
12091 "fsfreeze-thaw",
12092 "fstrim",
12093 "get-fsinfo",
12094 "get-host-name",
12095 "get-memory-block-info",
12096 "get-memory-blocks",
12097 "get-osinfo",
12098 "get-time",
12099 "get-timezone",
12100 "get-users",
12101 "get-vcpus",
12102 "info",
12103 "network-get-interfaces",
12104 "ping",
12105 "shutdown",
12106 "suspend-disk",
12107 "suspend-hybrid",
12108 "suspend-ram"
12109 ],
12110 "type" : "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 "description" : "Returns an object with a single `result` property.",
12140 "type" : "object"
12141 }
12142 }
12143 },
12144 "leaf" : 0,
12145 "path" : "/nodes/{node}/qemu/{vmid}/agent",
12146 "text" : "agent"
12147 },
12148 {
12149 "info" : {
12150 "GET" : {
e9cd3bd4 12151 "allowtoken" : 1,
4d47f125
TL
12152 "description" : "Read VM RRD statistics (returns PNG)",
12153 "method" : "GET",
12154 "name" : "rrd",
12155 "parameters" : {
12156 "additionalProperties" : 0,
12157 "properties" : {
12158 "cf" : {
12159 "description" : "The RRD consolidation function",
12160 "enum" : [
12161 "AVERAGE",
12162 "MAX"
12163 ],
44660702 12164 "optional" : 1,
4d47f125
TL
12165 "type" : "string"
12166 },
12167 "ds" : {
12168 "description" : "The list of datasources you want to display.",
12169 "format" : "pve-configid-list",
12170 "type" : "string",
12171 "typetext" : "<string>"
44660702
DM
12172 },
12173 "node" : {
12174 "description" : "The cluster node name.",
12175 "format" : "pve-node",
013dc89f
DM
12176 "type" : "string",
12177 "typetext" : "<string>"
44660702 12178 },
4d47f125
TL
12179 "timeframe" : {
12180 "description" : "Specify the time frame you are interested in.",
12181 "enum" : [
12182 "hour",
12183 "day",
12184 "week",
12185 "month",
12186 "year"
12187 ],
12188 "type" : "string"
12189 },
44660702
DM
12190 "vmid" : {
12191 "description" : "The (unique) ID of the VM.",
12192 "format" : "pve-vmid",
12193 "minimum" : 1,
4bd7df8b 12194 "type" : "integer",
013dc89f 12195 "typetext" : "<integer> (1 - N)"
44660702
DM
12196 }
12197 }
7aacca6f 12198 },
56122987
DM
12199 "permissions" : {
12200 "check" : [
12201 "perm",
12202 "/vms/{vmid}",
12203 [
44660702
DM
12204 "VM.Audit"
12205 ]
56122987
DM
12206 ]
12207 },
4d47f125 12208 "protected" : 1,
44660702
DM
12209 "returns" : {
12210 "properties" : {
4d47f125 12211 "filename" : {
44660702
DM
12212 "type" : "string"
12213 }
12214 },
12215 "type" : "object"
12216 }
4d47f125
TL
12217 }
12218 },
12219 "leaf" : 1,
12220 "path" : "/nodes/{node}/qemu/{vmid}/rrd",
12221 "text" : "rrd"
12222 },
12223 {
12224 "info" : {
12225 "GET" : {
e9cd3bd4 12226 "allowtoken" : 1,
4d47f125
TL
12227 "description" : "Read VM RRD statistics",
12228 "method" : "GET",
12229 "name" : "rrddata",
12230 "parameters" : {
12231 "additionalProperties" : 0,
12232 "properties" : {
12233 "cf" : {
12234 "description" : "The RRD consolidation function",
12235 "enum" : [
12236 "AVERAGE",
12237 "MAX"
12238 ],
12239 "optional" : 1,
12240 "type" : "string"
12241 },
12242 "node" : {
12243 "description" : "The cluster node name.",
12244 "format" : "pve-node",
12245 "type" : "string",
12246 "typetext" : "<string>"
12247 },
12248 "timeframe" : {
12249 "description" : "Specify the time frame you are interested in.",
12250 "enum" : [
12251 "hour",
12252 "day",
12253 "week",
12254 "month",
12255 "year"
12256 ],
12257 "type" : "string"
12258 },
12259 "vmid" : {
12260 "description" : "The (unique) ID of the VM.",
12261 "format" : "pve-vmid",
12262 "minimum" : 1,
12263 "type" : "integer",
12264 "typetext" : "<integer> (1 - N)"
12265 }
12266 }
12267 },
12268 "permissions" : {
12269 "check" : [
12270 "perm",
12271 "/vms/{vmid}",
12272 [
12273 "VM.Audit"
12274 ]
12275 ]
12276 },
12277 "protected" : 1,
12278 "returns" : {
12279 "items" : {
12280 "properties" : {},
12281 "type" : "object"
12282 },
12283 "type" : "array"
12284 }
12285 }
12286 },
12287 "leaf" : 1,
12288 "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
12289 "text" : "rrddata"
12290 },
12291 {
12292 "info" : {
12293 "GET" : {
e9cd3bd4
TL
12294 "allowtoken" : 1,
12295 "description" : "Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead.",
4d47f125
TL
12296 "method" : "GET",
12297 "name" : "vm_config",
56122987 12298 "parameters" : {
44660702 12299 "additionalProperties" : 0,
4d47f125
TL
12300 "properties" : {
12301 "current" : {
12302 "default" : 0,
12303 "description" : "Get current values (instead of pending values).",
12304 "optional" : 1,
12305 "type" : "boolean",
12306 "typetext" : "<boolean>"
12307 },
12308 "node" : {
12309 "description" : "The cluster node name.",
12310 "format" : "pve-node",
12311 "type" : "string",
12312 "typetext" : "<string>"
12313 },
5f26e15b
TL
12314 "snapshot" : {
12315 "description" : "Fetch config values from given snapshot.",
12316 "format" : "pve-configid",
12317 "maxLength" : 40,
12318 "optional" : 1,
12319 "type" : "string",
12320 "typetext" : "<string>"
12321 },
4d47f125
TL
12322 "vmid" : {
12323 "description" : "The (unique) ID of the VM.",
12324 "format" : "pve-vmid",
12325 "minimum" : 1,
12326 "type" : "integer",
12327 "typetext" : "<integer> (1 - N)"
12328 }
12329 }
12330 },
12331 "permissions" : {
12332 "check" : [
12333 "perm",
12334 "/vms/{vmid}",
12335 [
12336 "VM.Audit"
12337 ]
12338 ]
12339 },
12340 "proxyto" : "node",
12341 "returns" : {
e9cd3bd4 12342 "description" : "The VM configuration.",
56122987 12343 "properties" : {
44660702
DM
12344 "acpi" : {
12345 "default" : 1,
12346 "description" : "Enable/disable ACPI.",
12347 "optional" : 1,
4d47f125 12348 "type" : "boolean"
44660702
DM
12349 },
12350 "agent" : {
5370fa8c 12351 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
12352 "format" : {
12353 "enabled" : {
12354 "default" : 0,
12355 "default_key" : 1,
5370fa8c 12356 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
12357 "type" : "boolean"
12358 },
12359 "fstrim_cloned_disks" : {
12360 "default" : 0,
d2656385 12361 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
12362 "optional" : 1,
12363 "type" : "boolean"
5c1699e5
TL
12364 },
12365 "type" : {
12366 "default" : "virtio",
12367 "description" : "Select the agent type",
12368 "enum" : [
12369 "virtio",
12370 "isa"
12371 ],
12372 "optional" : 1,
12373 "type" : "string"
4d47f125
TL
12374 }
12375 },
7aacca6f 12376 "optional" : 1,
4d47f125 12377 "type" : "string"
7aacca6f 12378 },
e2d681b3
TL
12379 "arch" : {
12380 "description" : "Virtual processor architecture. Defaults to the host.",
12381 "enum" : [
12382 "x86_64",
12383 "aarch64"
12384 ],
12385 "optional" : 1,
12386 "type" : "string"
12387 },
44660702 12388 "args" : {
c2993fe5 12389 "description" : "Arbitrary arguments passed to kvm.",
44660702 12390 "optional" : 1,
c2993fe5
DM
12391 "type" : "string",
12392 "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 12393 },
1c532546
TL
12394 "audio0" : {
12395 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
12396 "format" : {
12397 "device" : {
12398 "description" : "Configure an audio device.",
12399 "enum" : [
12400 "ich9-intel-hda",
12401 "intel-hda",
12402 "AC97"
12403 ],
12404 "type" : "string"
12405 },
12406 "driver" : {
12407 "default" : "spice",
12408 "description" : "Driver backend for the audio device.",
12409 "enum" : [
d2656385
TL
12410 "spice",
12411 "none"
1c532546
TL
12412 ],
12413 "optional" : 1,
12414 "type" : "string"
12415 }
12416 },
12417 "optional" : 1,
12418 "type" : "string"
12419 },
44660702
DM
12420 "autostart" : {
12421 "default" : 0,
12422 "description" : "Automatic restart after crash (currently ignored).",
56122987 12423 "optional" : 1,
4d47f125 12424 "type" : "boolean"
56122987 12425 },
4d47f125
TL
12426 "balloon" : {
12427 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
12428 "minimum" : 0,
7aacca6f 12429 "optional" : 1,
4d47f125 12430 "type" : "integer"
7aacca6f 12431 },
44660702
DM
12432 "bios" : {
12433 "default" : "seabios",
12434 "description" : "Select BIOS implementation.",
12435 "enum" : [
12436 "seabios",
12437 "ovmf"
12438 ],
56122987 12439 "optional" : 1,
44660702 12440 "type" : "string"
7aacca6f 12441 },
44660702 12442 "boot" : {
5370fa8c 12443 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 12444 "format" : "pve-qm-boot",
44660702 12445 "optional" : 1,
44660702
DM
12446 "type" : "string"
12447 },
12448 "bootdisk" : {
4772952b 12449 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
12450 "format" : "pve-qm-bootdisk",
12451 "optional" : 1,
12452 "pattern" : "(ide|sata|scsi|virtio)\\d+",
12453 "type" : "string"
12454 },
12455 "cdrom" : {
12456 "description" : "This is an alias for option -ide2",
de0983cb 12457 "format" : "pve-qm-ide",
44660702 12458 "optional" : 1,
7aacca6f 12459 "type" : "string",
013dc89f 12460 "typetext" : "<volume>"
44660702 12461 },
95895385
TL
12462 "cicustom" : {
12463 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
12464 "format" : "pve-qm-cicustom",
12465 "optional" : 1,
12466 "type" : "string"
12467 },
27a7acb2
DM
12468 "cipassword" : {
12469 "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.",
12470 "optional" : 1,
4d47f125 12471 "type" : "string"
27a7acb2
DM
12472 },
12473 "citype" : {
12474 "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.",
12475 "enum" : [
12476 "configdrive2",
d2656385
TL
12477 "nocloud",
12478 "opennebula"
27a7acb2
DM
12479 ],
12480 "optional" : 1,
12481 "type" : "string"
12482 },
12483 "ciuser" : {
12484 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
12485 "optional" : 1,
4d47f125 12486 "type" : "string"
27a7acb2 12487 },
44660702
DM
12488 "cores" : {
12489 "default" : 1,
12490 "description" : "The number of cores per socket.",
12491 "minimum" : 1,
7aacca6f 12492 "optional" : 1,
4d47f125 12493 "type" : "integer"
7aacca6f 12494 },
44660702
DM
12495 "cpu" : {
12496 "description" : "Emulated CPU type.",
c5aa7e14 12497 "format" : "pve-vm-cpu-conf",
44660702 12498 "optional" : 1,
4d47f125 12499 "type" : "string"
44660702
DM
12500 },
12501 "cpulimit" : {
12502 "default" : 0,
c2993fe5 12503 "description" : "Limit of CPU usage.",
44660702
DM
12504 "maximum" : 128,
12505 "minimum" : 0,
12506 "optional" : 1,
c2993fe5
DM
12507 "type" : "number",
12508 "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
12509 },
12510 "cpuunits" : {
5370fa8c
TL
12511 "default" : "cgroup v1: 1024, cgroup v2: 100",
12512 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df
WB
12513 "maximum" : 262144,
12514 "minimum" : 2,
44660702 12515 "optional" : 1,
c2993fe5 12516 "type" : "integer",
2489d6df 12517 "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 12518 },
44660702 12519 "description" : {
8f4d9c87
TL
12520 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
12521 "maxLength" : 8192,
44660702 12522 "optional" : 1,
4d47f125 12523 "type" : "string"
44660702
DM
12524 },
12525 "digest" : {
4d47f125
TL
12526 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
12527 "type" : "string"
44660702 12528 },
4d47f125 12529 "efidisk0" : {
d2656385 12530 "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.",
4d47f125 12531 "format" : {
5370fa8c
TL
12532 "efitype" : {
12533 "default" : "2m",
12534 "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.",
12535 "enum" : [
12536 "2m",
12537 "4m"
12538 ],
12539 "optional" : 1,
12540 "type" : "string"
12541 },
4d47f125
TL
12542 "file" : {
12543 "default_key" : 1,
12544 "description" : "The drive's backing volume.",
12545 "format" : "pve-volume-id-or-qm-path",
12546 "format_description" : "volume",
12547 "type" : "string"
12548 },
12549 "format" : {
12550 "description" : "The drive's backing file's data format.",
12551 "enum" : [
12552 "raw",
12553 "cow",
12554 "qcow",
12555 "qed",
12556 "qcow2",
12557 "vmdk",
12558 "cloop"
12559 ],
12560 "optional" : 1,
12561 "type" : "string"
12562 },
5370fa8c
TL
12563 "pre-enrolled-keys" : {
12564 "default" : 0,
12565 "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.",
12566 "optional" : 1,
12567 "type" : "boolean"
12568 },
4d47f125
TL
12569 "size" : {
12570 "description" : "Disk size. This is purely informational and has no effect.",
12571 "format" : "disk-size",
12572 "format_description" : "DiskSize",
12573 "optional" : 1,
12574 "type" : "string"
12575 },
12576 "volume" : {
12577 "alias" : "file"
12578 }
12579 },
44660702 12580 "optional" : 1,
4d47f125 12581 "type" : "string"
44660702
DM
12582 },
12583 "freeze" : {
12584 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
12585 "optional" : 1,
4d47f125 12586 "type" : "boolean"
44660702 12587 },
5f26e15b
TL
12588 "hookscript" : {
12589 "description" : "Script that will be executed during various steps in the vms lifetime.",
12590 "format" : "pve-volume-id",
12591 "optional" : 1,
12592 "type" : "string"
12593 },
44660702 12594 "hostpci[n]" : {
c2993fe5 12595 "description" : "Map host PCI devices into guest.",
44660702
DM
12596 "format" : "pve-qm-hostpci",
12597 "optional" : 1,
57b78691 12598 "type" : "string",
bb4c8cf8 12599 "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
12600 },
12601 "hotplug" : {
12602 "default" : "network,disk,usb",
5370fa8c 12603 "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
12604 "format" : "pve-hotplug-features",
12605 "optional" : 1,
4d47f125 12606 "type" : "string"
44660702 12607 },
4bd7df8b
DM
12608 "hugepages" : {
12609 "description" : "Enable/disable hugepages memory.",
12610 "enum" : [
12611 "any",
12612 "2",
12613 "1024"
12614 ],
12615 "optional" : 1,
12616 "type" : "string"
12617 },
44660702 12618 "ide[n]" : {
d2656385 12619 "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.",
44660702
DM
12620 "format" : {
12621 "aio" : {
12622 "description" : "AIO type to use.",
12623 "enum" : [
12624 "native",
8f4d9c87
TL
12625 "threads",
12626 "io_uring"
56122987 12627 ],
56122987 12628 "optional" : 1,
44660702 12629 "type" : "string"
56122987 12630 },
44660702
DM
12631 "backup" : {
12632 "description" : "Whether the drive should be included when making backups.",
56122987 12633 "optional" : 1,
44660702 12634 "type" : "boolean"
56122987 12635 },
7aacca6f 12636 "bps" : {
de0983cb 12637 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
12638 "format_description" : "bps",
12639 "optional" : 1,
12640 "type" : "integer"
12641 },
de0983cb
DM
12642 "bps_max_length" : {
12643 "description" : "Maximum length of I/O bursts in seconds.",
12644 "format_description" : "seconds",
12645 "minimum" : 1,
12646 "optional" : 1,
12647 "type" : "integer"
12648 },
44660702 12649 "bps_rd" : {
de0983cb 12650 "description" : "Maximum read speed in bytes per second.",
44660702 12651 "format_description" : "bps",
56122987 12652 "optional" : 1,
44660702 12653 "type" : "integer"
56122987 12654 },
de0983cb 12655 "bps_rd_length" : {
5d9c884c
DM
12656 "alias" : "bps_rd_max_length"
12657 },
12658 "bps_rd_max_length" : {
de0983cb
DM
12659 "description" : "Maximum length of read I/O bursts in seconds.",
12660 "format_description" : "seconds",
12661 "minimum" : 1,
12662 "optional" : 1,
12663 "type" : "integer"
12664 },
44660702 12665 "bps_wr" : {
de0983cb 12666 "description" : "Maximum write speed in bytes per second.",
44660702
DM
12667 "format_description" : "bps",
12668 "optional" : 1,
12669 "type" : "integer"
12670 },
de0983cb 12671 "bps_wr_length" : {
5d9c884c
DM
12672 "alias" : "bps_wr_max_length"
12673 },
12674 "bps_wr_max_length" : {
de0983cb
DM
12675 "description" : "Maximum length of write I/O bursts in seconds.",
12676 "format_description" : "seconds",
12677 "minimum" : 1,
12678 "optional" : 1,
12679 "type" : "integer"
12680 },
44660702
DM
12681 "cache" : {
12682 "description" : "The drive's cache mode",
12683 "enum" : [
12684 "none",
12685 "writethrough",
12686 "writeback",
12687 "unsafe",
12688 "directsync"
12689 ],
44660702
DM
12690 "optional" : 1,
12691 "type" : "string"
12692 },
12693 "cyls" : {
12694 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
12695 "optional" : 1,
12696 "type" : "integer"
12697 },
12698 "detect_zeroes" : {
12699 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
12700 "optional" : 1,
12701 "type" : "boolean"
12702 },
12703 "discard" : {
12704 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
12705 "enum" : [
12706 "ignore",
12707 "on"
12708 ],
56122987 12709 "optional" : 1,
44660702
DM
12710 "type" : "string"
12711 },
12712 "file" : {
12713 "default_key" : 1,
12714 "description" : "The drive's backing volume.",
12715 "format" : "pve-volume-id-or-qm-path",
12716 "format_description" : "volume",
12717 "type" : "string"
56122987 12718 },
7aacca6f 12719 "format" : {
7aacca6f 12720 "description" : "The drive's backing file's data format.",
56122987 12721 "enum" : [
7aacca6f
DM
12722 "raw",
12723 "cow",
12724 "qcow",
12725 "qed",
12726 "qcow2",
12727 "vmdk",
12728 "cloop"
56122987
DM
12729 ],
12730 "optional" : 1,
56122987
DM
12731 "type" : "string"
12732 },
44660702
DM
12733 "heads" : {
12734 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
12735 "optional" : 1,
12736 "type" : "integer"
7aacca6f 12737 },
44660702 12738 "iops" : {
de0983cb 12739 "description" : "Maximum r/w I/O in operations per second.",
44660702 12740 "format_description" : "iops",
56122987 12741 "optional" : 1,
44660702 12742 "type" : "integer"
56122987 12743 },
44660702 12744 "iops_max" : {
de0983cb 12745 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 12746 "format_description" : "iops",
56122987 12747 "optional" : 1,
44660702 12748 "type" : "integer"
56122987 12749 },
de0983cb
DM
12750 "iops_max_length" : {
12751 "description" : "Maximum length of I/O bursts in seconds.",
12752 "format_description" : "seconds",
12753 "minimum" : 1,
12754 "optional" : 1,
12755 "type" : "integer"
12756 },
44660702 12757 "iops_rd" : {
de0983cb 12758 "description" : "Maximum read I/O in operations per second.",
44660702
DM
12759 "format_description" : "iops",
12760 "optional" : 1,
12761 "type" : "integer"
12762 },
de0983cb 12763 "iops_rd_length" : {
5d9c884c 12764 "alias" : "iops_rd_max_length"
de0983cb 12765 },
44660702 12766 "iops_rd_max" : {
de0983cb 12767 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 12768 "format_description" : "iops",
44660702
DM
12769 "optional" : 1,
12770 "type" : "integer"
12771 },
5d9c884c
DM
12772 "iops_rd_max_length" : {
12773 "description" : "Maximum length of read I/O bursts in seconds.",
12774 "format_description" : "seconds",
12775 "minimum" : 1,
12776 "optional" : 1,
12777 "type" : "integer"
12778 },
44660702 12779 "iops_wr" : {
de0983cb 12780 "description" : "Maximum write I/O in operations per second.",
44660702 12781 "format_description" : "iops",
56122987 12782 "optional" : 1,
7aacca6f 12783 "type" : "integer"
56122987 12784 },
de0983cb 12785 "iops_wr_length" : {
5d9c884c 12786 "alias" : "iops_wr_max_length"
de0983cb 12787 },
44660702 12788 "iops_wr_max" : {
de0983cb 12789 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 12790 "format_description" : "iops",
7aacca6f 12791 "optional" : 1,
44660702 12792 "type" : "integer"
56122987 12793 },
5d9c884c
DM
12794 "iops_wr_max_length" : {
12795 "description" : "Maximum length of write I/O bursts in seconds.",
12796 "format_description" : "seconds",
12797 "minimum" : 1,
12798 "optional" : 1,
12799 "type" : "integer"
12800 },
44660702 12801 "mbps" : {
de0983cb 12802 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
12803 "format_description" : "mbps",
12804 "optional" : 1,
12805 "type" : "number"
12806 },
12807 "mbps_max" : {
de0983cb 12808 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
12809 "format_description" : "mbps",
12810 "optional" : 1,
12811 "type" : "number"
12812 },
12813 "mbps_rd" : {
de0983cb 12814 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
12815 "format_description" : "mbps",
12816 "optional" : 1,
12817 "type" : "number"
12818 },
12819 "mbps_rd_max" : {
de0983cb 12820 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
12821 "format_description" : "mbps",
12822 "optional" : 1,
12823 "type" : "number"
12824 },
12825 "mbps_wr" : {
de0983cb 12826 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
12827 "format_description" : "mbps",
12828 "optional" : 1,
12829 "type" : "number"
12830 },
12831 "mbps_wr_max" : {
de0983cb 12832 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 12833 "format_description" : "mbps",
56122987 12834 "optional" : 1,
44660702 12835 "type" : "number"
56122987 12836 },
7aacca6f 12837 "media" : {
7aacca6f 12838 "default" : "disk",
7aacca6f
DM
12839 "description" : "The drive's media type.",
12840 "enum" : [
12841 "cdrom",
12842 "disk"
44660702 12843 ],
44660702
DM
12844 "optional" : 1,
12845 "type" : "string"
56122987 12846 },
44660702
DM
12847 "model" : {
12848 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
12849 "format" : "urlencoded",
12850 "format_description" : "model",
12851 "maxLength" : 120,
56122987 12852 "optional" : 1,
44660702 12853 "type" : "string"
56122987 12854 },
5d9c884c
DM
12855 "replicate" : {
12856 "default" : 1,
12857 "description" : "Whether the drive should considered for replication jobs.",
12858 "optional" : 1,
12859 "type" : "boolean"
12860 },
44660702
DM
12861 "rerror" : {
12862 "description" : "Read error action.",
12863 "enum" : [
12864 "ignore",
12865 "report",
12866 "stop"
12867 ],
56122987 12868 "optional" : 1,
44660702
DM
12869 "type" : "string"
12870 },
12871 "secs" : {
12872 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
12873 "optional" : 1,
12874 "type" : "integer"
12875 },
12876 "serial" : {
12877 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
12878 "format" : "urlencoded",
12879 "format_description" : "serial",
12880 "maxLength" : 60,
12881 "optional" : 1,
12882 "type" : "string"
12883 },
27a7acb2
DM
12884 "shared" : {
12885 "default" : 0,
12886 "description" : "Mark this locally-managed volume as available on all nodes",
12887 "optional" : 1,
12888 "type" : "boolean",
12889 "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!"
12890 },
44660702
DM
12891 "size" : {
12892 "description" : "Disk size. This is purely informational and has no effect.",
12893 "format" : "disk-size",
f004f5b9 12894 "format_description" : "DiskSize",
44660702
DM
12895 "optional" : 1,
12896 "type" : "string"
12897 },
12898 "snapshot" : {
27a7acb2 12899 "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
12900 "optional" : 1,
12901 "type" : "boolean"
12902 },
25203dc1
NC
12903 "ssd" : {
12904 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
12905 "optional" : 1,
12906 "type" : "boolean"
12907 },
44660702
DM
12908 "trans" : {
12909 "description" : "Force disk geometry bios translation mode.",
12910 "enum" : [
12911 "none",
12912 "lba",
12913 "auto"
12914 ],
44660702
DM
12915 "optional" : 1,
12916 "type" : "string"
12917 },
12918 "volume" : {
12919 "alias" : "file"
12920 },
12921 "werror" : {
12922 "description" : "Write error action.",
12923 "enum" : [
12924 "enospc",
12925 "ignore",
12926 "report",
12927 "stop"
12928 ],
44660702
DM
12929 "optional" : 1,
12930 "type" : "string"
95895385
TL
12931 },
12932 "wwn" : {
12933 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
12934 "format_description" : "wwn",
12935 "optional" : 1,
12936 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
12937 "type" : "string"
56122987
DM
12938 }
12939 },
44660702 12940 "optional" : 1,
4d47f125 12941 "type" : "string"
27a7acb2
DM
12942 },
12943 "ipconfig[n]" : {
d2656385 12944 "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
12945 "format" : "pve-qm-ipconfig",
12946 "optional" : 1,
4d47f125 12947 "type" : "string"
56122987 12948 },
95895385
TL
12949 "ivshmem" : {
12950 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
12951 "format" : {
12952 "name" : {
12953 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
12954 "format_description" : "string",
12955 "optional" : 1,
12956 "pattern" : "[a-zA-Z0-9\\-]+",
12957 "type" : "string"
12958 },
12959 "size" : {
12960 "description" : "The size of the file in MB.",
12961 "minimum" : 1,
12962 "type" : "integer"
12963 }
12964 },
12965 "optional" : 1,
12966 "type" : "string"
12967 },
4772952b
TL
12968 "keephugepages" : {
12969 "default" : 0,
12970 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
12971 "optional" : 1,
12972 "type" : "boolean"
12973 },
44660702 12974 "keyboard" : {
35a75dd3 12975 "default" : null,
5370fa8c 12976 "description" : "Keyboard layout for VNC server. The default is read from the'/etc/pve/datacenter.cfg' configuration file. It should not be necessary to set it.",
44660702
DM
12977 "enum" : [
12978 "de",
12979 "de-ch",
12980 "da",
12981 "en-gb",
12982 "en-us",
12983 "es",
12984 "fi",
12985 "fr",
12986 "fr-be",
12987 "fr-ca",
12988 "fr-ch",
12989 "hu",
12990 "is",
12991 "it",
12992 "ja",
12993 "lt",
12994 "mk",
12995 "nl",
12996 "no",
12997 "pl",
12998 "pt",
12999 "pt-br",
13000 "sv",
13001 "sl",
13002 "tr"
13003 ],
56122987 13004 "optional" : 1,
44660702
DM
13005 "type" : "string"
13006 },
13007 "kvm" : {
7aacca6f 13008 "default" : 1,
44660702
DM
13009 "description" : "Enable/disable KVM hardware virtualization.",
13010 "optional" : 1,
4d47f125 13011 "type" : "boolean"
56122987 13012 },
44660702 13013 "localtime" : {
5370fa8c 13014 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 13015 "optional" : 1,
4d47f125 13016 "type" : "boolean"
56122987 13017 },
44660702
DM
13018 "lock" : {
13019 "description" : "Lock/unlock the VM.",
13020 "enum" : [
44660702 13021 "backup",
5f26e15b
TL
13022 "clone",
13023 "create",
13024 "migrate",
13025 "rollback",
44660702 13026 "snapshot",
95895385
TL
13027 "snapshot-delete",
13028 "suspending",
13029 "suspended"
44660702 13030 ],
7aacca6f 13031 "optional" : 1,
44660702
DM
13032 "type" : "string"
13033 },
13034 "machine" : {
4d47f125 13035 "description" : "Specifies the Qemu machine type.",
44660702
DM
13036 "maxLength" : 40,
13037 "optional" : 1,
5c1699e5 13038 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
13039 "type" : "string"
13040 },
13041 "memory" : {
13042 "default" : 512,
13043 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
13044 "minimum" : 16,
13045 "optional" : 1,
4d47f125 13046 "type" : "integer"
44660702
DM
13047 },
13048 "migrate_downtime" : {
13049 "default" : 0.1,
13050 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
13051 "minimum" : 0,
13052 "optional" : 1,
4d47f125 13053 "type" : "number"
44660702
DM
13054 },
13055 "migrate_speed" : {
13056 "default" : 0,
13057 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
13058 "minimum" : 0,
13059 "optional" : 1,
4d47f125 13060 "type" : "integer"
44660702
DM
13061 },
13062 "name" : {
13063 "description" : "Set a name for the VM. Only used on the configuration web interface.",
13064 "format" : "dns-name",
13065 "optional" : 1,
4d47f125 13066 "type" : "string"
44660702 13067 },
27a7acb2 13068 "nameserver" : {
4772952b 13069 "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
13070 "format" : "address-list",
13071 "optional" : 1,
4d47f125 13072 "type" : "string"
27a7acb2 13073 },
44660702 13074 "net[n]" : {
c2993fe5 13075 "description" : "Specify network devices.",
f004f5b9
DM
13076 "format" : {
13077 "bridge" : {
c2993fe5 13078 "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",
f004f5b9
DM
13079 "format_description" : "bridge",
13080 "optional" : 1,
c5aa7e14 13081 "pattern" : "[-_.\\w\\d]+",
f004f5b9
DM
13082 "type" : "string"
13083 },
13084 "e1000" : {
13085 "alias" : "macaddr",
13086 "keyAlias" : "model"
13087 },
13088 "e1000-82540em" : {
13089 "alias" : "macaddr",
13090 "keyAlias" : "model"
13091 },
13092 "e1000-82544gc" : {
13093 "alias" : "macaddr",
13094 "keyAlias" : "model"
13095 },
13096 "e1000-82545em" : {
13097 "alias" : "macaddr",
13098 "keyAlias" : "model"
13099 },
5370fa8c
TL
13100 "e1000e" : {
13101 "alias" : "macaddr",
13102 "keyAlias" : "model"
13103 },
f004f5b9
DM
13104 "firewall" : {
13105 "description" : "Whether this interface should be protected by the firewall.",
13106 "optional" : 1,
13107 "type" : "boolean"
13108 },
13109 "i82551" : {
13110 "alias" : "macaddr",
13111 "keyAlias" : "model"
13112 },
13113 "i82557b" : {
13114 "alias" : "macaddr",
13115 "keyAlias" : "model"
13116 },
13117 "i82559er" : {
13118 "alias" : "macaddr",
13119 "keyAlias" : "model"
13120 },
13121 "link_down" : {
c2993fe5 13122 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
13123 "optional" : 1,
13124 "type" : "boolean"
13125 },
13126 "macaddr" : {
c2993fe5 13127 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 13128 "format" : "mac-addr",
f004f5b9 13129 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 13130 "optional" : 1,
95895385
TL
13131 "type" : "string",
13132 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
13133 },
13134 "model" : {
13135 "default_key" : 1,
c2993fe5 13136 "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 13137 "enum" : [
f004f5b9 13138 "e1000",
5370fa8c
TL
13139 "e1000-82540em",
13140 "e1000-82544gc",
13141 "e1000-82545em",
13142 "e1000e",
f004f5b9
DM
13143 "i82551",
13144 "i82557b",
13145 "i82559er",
5370fa8c
TL
13146 "ne2k_isa",
13147 "ne2k_pci",
13148 "pcnet",
13149 "rtl8139",
13150 "virtio",
13151 "vmxnet3"
f004f5b9 13152 ],
f004f5b9
DM
13153 "type" : "string"
13154 },
ac70d7d1
TL
13155 "mtu" : {
13156 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
13157 "maximum" : 65520,
13158 "minimum" : 1,
13159 "optional" : 1,
13160 "type" : "integer"
13161 },
f004f5b9
DM
13162 "ne2k_isa" : {
13163 "alias" : "macaddr",
13164 "keyAlias" : "model"
13165 },
13166 "ne2k_pci" : {
13167 "alias" : "macaddr",
13168 "keyAlias" : "model"
13169 },
13170 "pcnet" : {
13171 "alias" : "macaddr",
13172 "keyAlias" : "model"
13173 },
13174 "queues" : {
13175 "description" : "Number of packet queues to be used on the device.",
13176 "maximum" : 16,
13177 "minimum" : 0,
13178 "optional" : 1,
13179 "type" : "integer"
13180 },
13181 "rate" : {
c2993fe5 13182 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
13183 "minimum" : 0,
13184 "optional" : 1,
13185 "type" : "number"
13186 },
13187 "rtl8139" : {
13188 "alias" : "macaddr",
13189 "keyAlias" : "model"
13190 },
13191 "tag" : {
13192 "description" : "VLAN tag to apply to packets on this interface.",
13193 "maximum" : 4094,
c2993fe5 13194 "minimum" : 1,
f004f5b9
DM
13195 "optional" : 1,
13196 "type" : "integer"
13197 },
13198 "trunks" : {
13199 "description" : "VLAN trunks to pass through this interface.",
13200 "format_description" : "vlanid[;vlanid...]",
13201 "optional" : 1,
13202 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
13203 "type" : "string"
13204 },
13205 "virtio" : {
13206 "alias" : "macaddr",
13207 "keyAlias" : "model"
13208 },
13209 "vmxnet3" : {
13210 "alias" : "macaddr",
13211 "keyAlias" : "model"
13212 }
13213 },
44660702 13214 "optional" : 1,
4d47f125 13215 "type" : "string"
44660702
DM
13216 },
13217 "numa" : {
13218 "default" : 0,
13219 "description" : "Enable/disable NUMA.",
13220 "optional" : 1,
4d47f125 13221 "type" : "boolean"
44660702
DM
13222 },
13223 "numa[n]" : {
c2993fe5 13224 "description" : "NUMA topology.",
56122987 13225 "format" : {
7aacca6f 13226 "cpus" : {
c2993fe5 13227 "description" : "CPUs accessing this NUMA node.",
44660702
DM
13228 "format_description" : "id[-id];...",
13229 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
13230 "type" : "string"
7aacca6f
DM
13231 },
13232 "hostnodes" : {
c2993fe5 13233 "description" : "Host NUMA nodes to use.",
44660702 13234 "format_description" : "id[-id];...",
7aacca6f 13235 "optional" : 1,
7aacca6f 13236 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
44660702 13237 "type" : "string"
7aacca6f 13238 },
44660702 13239 "memory" : {
c2993fe5 13240 "description" : "Amount of memory this NUMA node provides.",
7aacca6f 13241 "optional" : 1,
44660702
DM
13242 "type" : "number"
13243 },
13244 "policy" : {
c2993fe5 13245 "description" : "NUMA allocation policy.",
7aacca6f
DM
13246 "enum" : [
13247 "preferred",
13248 "bind",
13249 "interleave"
13250 ],
44660702
DM
13251 "optional" : 1,
13252 "type" : "string"
56122987 13253 }
44660702 13254 },
56122987 13255 "optional" : 1,
4d47f125 13256 "type" : "string"
56122987 13257 },
44660702 13258 "onboot" : {
7aacca6f 13259 "default" : 0,
44660702
DM
13260 "description" : "Specifies whether a VM will be started during system bootup.",
13261 "optional" : 1,
4d47f125 13262 "type" : "boolean"
7aacca6f
DM
13263 },
13264 "ostype" : {
c2993fe5 13265 "description" : "Specify guest operating system.",
7aacca6f
DM
13266 "enum" : [
13267 "other",
13268 "wxp",
13269 "w2k",
13270 "w2k3",
13271 "w2k8",
13272 "wvista",
13273 "win7",
13274 "win8",
32d876b5 13275 "win10",
5370fa8c 13276 "win11",
7aacca6f
DM
13277 "l24",
13278 "l26",
13279 "solaris"
13280 ],
7aacca6f 13281 "optional" : 1,
c2993fe5 13282 "type" : "string",
5370fa8c 13283 "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 13284 },
44660702 13285 "parallel[n]" : {
c2993fe5 13286 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 13287 "optional" : 1,
44660702 13288 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 13289 "type" : "string",
4772952b 13290 "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
13291 },
13292 "protection" : {
13293 "default" : 0,
c2993fe5 13294 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 13295 "optional" : 1,
4d47f125 13296 "type" : "boolean"
7aacca6f 13297 },
44660702
DM
13298 "reboot" : {
13299 "default" : 1,
13300 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 13301 "optional" : 1,
4d47f125 13302 "type" : "boolean"
44660702 13303 },
c5aa7e14
TL
13304 "rng0" : {
13305 "description" : "Configure a VirtIO-based Random Number Generator.",
13306 "format" : {
13307 "max_bytes" : {
13308 "default" : 1024,
5370fa8c 13309 "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
13310 "optional" : 1,
13311 "type" : "integer"
13312 },
13313 "period" : {
13314 "default" : 1000,
13315 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
13316 "optional" : 1,
13317 "type" : "integer"
13318 },
13319 "source" : {
13320 "default_key" : 1,
5370fa8c 13321 "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
13322 "enum" : [
13323 "/dev/urandom",
13324 "/dev/random",
13325 "/dev/hwrng"
13326 ],
13327 "type" : "string"
13328 }
13329 },
13330 "optional" : 1,
13331 "type" : "string"
13332 },
44660702 13333 "sata[n]" : {
d2656385 13334 "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.",
56122987 13335 "format" : {
44660702
DM
13336 "aio" : {
13337 "description" : "AIO type to use.",
7aacca6f 13338 "enum" : [
44660702 13339 "native",
8f4d9c87
TL
13340 "threads",
13341 "io_uring"
7aacca6f 13342 ],
44660702
DM
13343 "optional" : 1,
13344 "type" : "string"
7aacca6f 13345 },
44660702
DM
13346 "backup" : {
13347 "description" : "Whether the drive should be included when making backups.",
56122987 13348 "optional" : 1,
7aacca6f 13349 "type" : "boolean"
44660702
DM
13350 },
13351 "bps" : {
de0983cb 13352 "description" : "Maximum r/w speed in bytes per second.",
44660702 13353 "format_description" : "bps",
7aacca6f 13354 "optional" : 1,
44660702 13355 "type" : "integer"
56122987 13356 },
de0983cb
DM
13357 "bps_max_length" : {
13358 "description" : "Maximum length of I/O bursts in seconds.",
13359 "format_description" : "seconds",
13360 "minimum" : 1,
13361 "optional" : 1,
13362 "type" : "integer"
13363 },
44660702 13364 "bps_rd" : {
de0983cb 13365 "description" : "Maximum read speed in bytes per second.",
44660702 13366 "format_description" : "bps",
56122987 13367 "optional" : 1,
44660702 13368 "type" : "integer"
56122987 13369 },
de0983cb 13370 "bps_rd_length" : {
5d9c884c
DM
13371 "alias" : "bps_rd_max_length"
13372 },
13373 "bps_rd_max_length" : {
de0983cb
DM
13374 "description" : "Maximum length of read I/O bursts in seconds.",
13375 "format_description" : "seconds",
13376 "minimum" : 1,
13377 "optional" : 1,
13378 "type" : "integer"
13379 },
44660702 13380 "bps_wr" : {
de0983cb 13381 "description" : "Maximum write speed in bytes per second.",
44660702 13382 "format_description" : "bps",
56122987 13383 "optional" : 1,
44660702 13384 "type" : "integer"
56122987 13385 },
de0983cb 13386 "bps_wr_length" : {
5d9c884c
DM
13387 "alias" : "bps_wr_max_length"
13388 },
13389 "bps_wr_max_length" : {
de0983cb
DM
13390 "description" : "Maximum length of write I/O bursts in seconds.",
13391 "format_description" : "seconds",
13392 "minimum" : 1,
13393 "optional" : 1,
13394 "type" : "integer"
13395 },
56122987 13396 "cache" : {
44660702 13397 "description" : "The drive's cache mode",
56122987
DM
13398 "enum" : [
13399 "none",
13400 "writethrough",
13401 "writeback",
13402 "unsafe",
13403 "directsync"
13404 ],
56122987 13405 "optional" : 1,
44660702 13406 "type" : "string"
56122987 13407 },
44660702
DM
13408 "cyls" : {
13409 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 13410 "optional" : 1,
44660702 13411 "type" : "integer"
7aacca6f
DM
13412 },
13413 "detect_zeroes" : {
13414 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 13415 "optional" : 1,
44660702 13416 "type" : "boolean"
56122987 13417 },
44660702
DM
13418 "discard" : {
13419 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
13420 "enum" : [
13421 "ignore",
13422 "on"
13423 ],
56122987 13424 "optional" : 1,
44660702 13425 "type" : "string"
7aacca6f 13426 },
44660702
DM
13427 "file" : {
13428 "default_key" : 1,
13429 "description" : "The drive's backing volume.",
13430 "format" : "pve-volume-id-or-qm-path",
13431 "format_description" : "volume",
13432 "type" : "string"
56122987 13433 },
7aacca6f 13434 "format" : {
44660702 13435 "description" : "The drive's backing file's data format.",
7aacca6f
DM
13436 "enum" : [
13437 "raw",
13438 "cow",
13439 "qcow",
13440 "qed",
13441 "qcow2",
13442 "vmdk",
13443 "cloop"
13444 ],
7aacca6f 13445 "optional" : 1,
44660702 13446 "type" : "string"
56122987 13447 },
7aacca6f 13448 "heads" : {
7aacca6f 13449 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 13450 "optional" : 1,
7aacca6f 13451 "type" : "integer"
56122987 13452 },
44660702 13453 "iops" : {
de0983cb 13454 "description" : "Maximum r/w I/O in operations per second.",
44660702 13455 "format_description" : "iops",
56122987 13456 "optional" : 1,
44660702 13457 "type" : "integer"
56122987 13458 },
44660702 13459 "iops_max" : {
de0983cb 13460 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 13461 "format_description" : "iops",
56122987 13462 "optional" : 1,
44660702 13463 "type" : "integer"
56122987 13464 },
de0983cb
DM
13465 "iops_max_length" : {
13466 "description" : "Maximum length of I/O bursts in seconds.",
13467 "format_description" : "seconds",
13468 "minimum" : 1,
13469 "optional" : 1,
13470 "type" : "integer"
13471 },
44660702 13472 "iops_rd" : {
de0983cb 13473 "description" : "Maximum read I/O in operations per second.",
44660702 13474 "format_description" : "iops",
7aacca6f 13475 "optional" : 1,
44660702 13476 "type" : "integer"
56122987 13477 },
de0983cb 13478 "iops_rd_length" : {
5d9c884c 13479 "alias" : "iops_rd_max_length"
de0983cb 13480 },
44660702 13481 "iops_rd_max" : {
de0983cb 13482 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 13483 "format_description" : "iops",
56122987 13484 "optional" : 1,
44660702 13485 "type" : "integer"
7aacca6f 13486 },
5d9c884c
DM
13487 "iops_rd_max_length" : {
13488 "description" : "Maximum length of read I/O bursts in seconds.",
13489 "format_description" : "seconds",
13490 "minimum" : 1,
13491 "optional" : 1,
13492 "type" : "integer"
13493 },
44660702 13494 "iops_wr" : {
de0983cb 13495 "description" : "Maximum write I/O in operations per second.",
44660702 13496 "format_description" : "iops",
56122987 13497 "optional" : 1,
44660702 13498 "type" : "integer"
56122987 13499 },
de0983cb 13500 "iops_wr_length" : {
5d9c884c 13501 "alias" : "iops_wr_max_length"
de0983cb 13502 },
56122987 13503 "iops_wr_max" : {
de0983cb 13504 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 13505 "format_description" : "iops",
56122987 13506 "optional" : 1,
44660702 13507 "type" : "integer"
56122987 13508 },
5d9c884c
DM
13509 "iops_wr_max_length" : {
13510 "description" : "Maximum length of write I/O bursts in seconds.",
13511 "format_description" : "seconds",
13512 "minimum" : 1,
13513 "optional" : 1,
13514 "type" : "integer"
13515 },
44660702 13516 "mbps" : {
de0983cb 13517 "description" : "Maximum r/w speed in megabytes per second.",
44660702 13518 "format_description" : "mbps",
56122987 13519 "optional" : 1,
44660702 13520 "type" : "number"
56122987 13521 },
44660702 13522 "mbps_max" : {
de0983cb 13523 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
13524 "format_description" : "mbps",
13525 "optional" : 1,
13526 "type" : "number"
56122987 13527 },
44660702 13528 "mbps_rd" : {
de0983cb 13529 "description" : "Maximum read speed in megabytes per second.",
44660702 13530 "format_description" : "mbps",
56122987 13531 "optional" : 1,
44660702 13532 "type" : "number"
56122987 13533 },
44660702 13534 "mbps_rd_max" : {
de0983cb 13535 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 13536 "format_description" : "mbps",
56122987 13537 "optional" : 1,
44660702 13538 "type" : "number"
56122987 13539 },
44660702 13540 "mbps_wr" : {
de0983cb 13541 "description" : "Maximum write speed in megabytes per second.",
56122987 13542 "format_description" : "mbps",
44660702
DM
13543 "optional" : 1,
13544 "type" : "number"
56122987 13545 },
44660702 13546 "mbps_wr_max" : {
de0983cb 13547 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
13548 "format_description" : "mbps",
13549 "optional" : 1,
13550 "type" : "number"
7aacca6f 13551 },
44660702
DM
13552 "media" : {
13553 "default" : "disk",
13554 "description" : "The drive's media type.",
13555 "enum" : [
13556 "cdrom",
13557 "disk"
13558 ],
56122987 13559 "optional" : 1,
44660702
DM
13560 "type" : "string"
13561 },
5d9c884c
DM
13562 "replicate" : {
13563 "default" : 1,
13564 "description" : "Whether the drive should considered for replication jobs.",
13565 "optional" : 1,
13566 "type" : "boolean"
13567 },
44660702
DM
13568 "rerror" : {
13569 "description" : "Read error action.",
7aacca6f 13570 "enum" : [
44660702
DM
13571 "ignore",
13572 "report",
13573 "stop"
13574 ],
7aacca6f 13575 "optional" : 1,
44660702 13576 "type" : "string"
56122987 13577 },
44660702
DM
13578 "secs" : {
13579 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 13580 "optional" : 1,
44660702 13581 "type" : "integer"
56122987 13582 },
44660702
DM
13583 "serial" : {
13584 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
13585 "format" : "urlencoded",
13586 "format_description" : "serial",
13587 "maxLength" : 60,
56122987 13588 "optional" : 1,
44660702 13589 "type" : "string"
56122987 13590 },
27a7acb2
DM
13591 "shared" : {
13592 "default" : 0,
13593 "description" : "Mark this locally-managed volume as available on all nodes",
13594 "optional" : 1,
13595 "type" : "boolean",
13596 "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!"
13597 },
44660702
DM
13598 "size" : {
13599 "description" : "Disk size. This is purely informational and has no effect.",
13600 "format" : "disk-size",
f004f5b9 13601 "format_description" : "DiskSize",
44660702
DM
13602 "optional" : 1,
13603 "type" : "string"
13604 },
13605 "snapshot" : {
27a7acb2 13606 "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 13607 "optional" : 1,
44660702
DM
13608 "type" : "boolean"
13609 },
25203dc1
NC
13610 "ssd" : {
13611 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
13612 "optional" : 1,
13613 "type" : "boolean"
13614 },
44660702
DM
13615 "trans" : {
13616 "description" : "Force disk geometry bios translation mode.",
56122987 13617 "enum" : [
7aacca6f
DM
13618 "none",
13619 "lba",
13620 "auto"
56122987 13621 ],
44660702
DM
13622 "optional" : 1,
13623 "type" : "string"
56122987 13624 },
7aacca6f
DM
13625 "volume" : {
13626 "alias" : "file"
56122987 13627 },
44660702
DM
13628 "werror" : {
13629 "description" : "Write error action.",
13630 "enum" : [
13631 "enospc",
13632 "ignore",
13633 "report",
13634 "stop"
13635 ],
7aacca6f 13636 "optional" : 1,
44660702 13637 "type" : "string"
95895385
TL
13638 },
13639 "wwn" : {
13640 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
13641 "format_description" : "wwn",
13642 "optional" : 1,
13643 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
13644 "type" : "string"
44660702
DM
13645 }
13646 },
13647 "optional" : 1,
4d47f125 13648 "type" : "string"
44660702
DM
13649 },
13650 "scsi[n]" : {
d2656385 13651 "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.",
44660702 13652 "format" : {
56122987 13653 "aio" : {
56122987
DM
13654 "description" : "AIO type to use.",
13655 "enum" : [
13656 "native",
8f4d9c87
TL
13657 "threads",
13658 "io_uring"
56122987 13659 ],
7aacca6f 13660 "optional" : 1,
44660702 13661 "type" : "string"
56122987 13662 },
44660702
DM
13663 "backup" : {
13664 "description" : "Whether the drive should be included when making backups.",
56122987 13665 "optional" : 1,
44660702 13666 "type" : "boolean"
56122987 13667 },
44660702 13668 "bps" : {
de0983cb 13669 "description" : "Maximum r/w speed in bytes per second.",
44660702 13670 "format_description" : "bps",
56122987 13671 "optional" : 1,
44660702 13672 "type" : "integer"
56122987 13673 },
de0983cb
DM
13674 "bps_max_length" : {
13675 "description" : "Maximum length of I/O bursts in seconds.",
13676 "format_description" : "seconds",
13677 "minimum" : 1,
13678 "optional" : 1,
13679 "type" : "integer"
13680 },
44660702 13681 "bps_rd" : {
de0983cb 13682 "description" : "Maximum read speed in bytes per second.",
44660702 13683 "format_description" : "bps",
56122987 13684 "optional" : 1,
44660702 13685 "type" : "integer"
56122987 13686 },
de0983cb 13687 "bps_rd_length" : {
5d9c884c
DM
13688 "alias" : "bps_rd_max_length"
13689 },
13690 "bps_rd_max_length" : {
de0983cb
DM
13691 "description" : "Maximum length of read I/O bursts in seconds.",
13692 "format_description" : "seconds",
13693 "minimum" : 1,
13694 "optional" : 1,
13695 "type" : "integer"
13696 },
7aacca6f 13697 "bps_wr" : {
de0983cb 13698 "description" : "Maximum write speed in bytes per second.",
7aacca6f 13699 "format_description" : "bps",
56122987 13700 "optional" : 1,
44660702 13701 "type" : "integer"
56122987 13702 },
de0983cb 13703 "bps_wr_length" : {
5d9c884c
DM
13704 "alias" : "bps_wr_max_length"
13705 },
13706 "bps_wr_max_length" : {
de0983cb
DM
13707 "description" : "Maximum length of write I/O bursts in seconds.",
13708 "format_description" : "seconds",
13709 "minimum" : 1,
13710 "optional" : 1,
13711 "type" : "integer"
13712 },
44660702
DM
13713 "cache" : {
13714 "description" : "The drive's cache mode",
7aacca6f 13715 "enum" : [
44660702
DM
13716 "none",
13717 "writethrough",
13718 "writeback",
13719 "unsafe",
13720 "directsync"
7aacca6f 13721 ],
56122987 13722 "optional" : 1,
44660702 13723 "type" : "string"
56122987 13724 },
44660702
DM
13725 "cyls" : {
13726 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 13727 "optional" : 1,
44660702 13728 "type" : "integer"
56122987 13729 },
44660702
DM
13730 "detect_zeroes" : {
13731 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 13732 "optional" : 1,
44660702 13733 "type" : "boolean"
56122987 13734 },
44660702
DM
13735 "discard" : {
13736 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
13737 "enum" : [
13738 "ignore",
13739 "on"
13740 ],
7aacca6f 13741 "optional" : 1,
44660702 13742 "type" : "string"
56122987 13743 },
44660702
DM
13744 "file" : {
13745 "default_key" : 1,
13746 "description" : "The drive's backing volume.",
13747 "format" : "pve-volume-id-or-qm-path",
13748 "format_description" : "volume",
13749 "type" : "string"
56122987 13750 },
7aacca6f 13751 "format" : {
44660702 13752 "description" : "The drive's backing file's data format.",
56122987 13753 "enum" : [
7aacca6f
DM
13754 "raw",
13755 "cow",
13756 "qcow",
13757 "qed",
13758 "qcow2",
13759 "vmdk",
13760 "cloop"
13761 ],
44660702
DM
13762 "optional" : 1,
13763 "type" : "string"
56122987 13764 },
44660702
DM
13765 "heads" : {
13766 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 13767 "optional" : 1,
7aacca6f 13768 "type" : "integer"
56122987 13769 },
44660702 13770 "iops" : {
de0983cb 13771 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 13772 "format_description" : "iops",
44660702
DM
13773 "optional" : 1,
13774 "type" : "integer"
7aacca6f 13775 },
44660702 13776 "iops_max" : {
de0983cb 13777 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 13778 "format_description" : "iops",
56122987 13779 "optional" : 1,
44660702 13780 "type" : "integer"
7aacca6f 13781 },
de0983cb
DM
13782 "iops_max_length" : {
13783 "description" : "Maximum length of I/O bursts in seconds.",
13784 "format_description" : "seconds",
13785 "minimum" : 1,
13786 "optional" : 1,
13787 "type" : "integer"
13788 },
44660702 13789 "iops_rd" : {
de0983cb 13790 "description" : "Maximum read I/O in operations per second.",
44660702 13791 "format_description" : "iops",
7aacca6f 13792 "optional" : 1,
44660702 13793 "type" : "integer"
56122987 13794 },
de0983cb 13795 "iops_rd_length" : {
5d9c884c 13796 "alias" : "iops_rd_max_length"
de0983cb 13797 },
44660702 13798 "iops_rd_max" : {
de0983cb 13799 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
13800 "format_description" : "iops",
13801 "optional" : 1,
13802 "type" : "integer"
13803 },
5d9c884c
DM
13804 "iops_rd_max_length" : {
13805 "description" : "Maximum length of read I/O bursts in seconds.",
13806 "format_description" : "seconds",
13807 "minimum" : 1,
13808 "optional" : 1,
13809 "type" : "integer"
13810 },
44660702 13811 "iops_wr" : {
de0983cb 13812 "description" : "Maximum write I/O in operations per second.",
44660702 13813 "format_description" : "iops",
56122987 13814 "optional" : 1,
44660702
DM
13815 "type" : "integer"
13816 },
de0983cb 13817 "iops_wr_length" : {
5d9c884c 13818 "alias" : "iops_wr_max_length"
de0983cb 13819 },
44660702 13820 "iops_wr_max" : {
de0983cb 13821 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
13822 "format_description" : "iops",
13823 "optional" : 1,
13824 "type" : "integer"
56122987 13825 },
5d9c884c
DM
13826 "iops_wr_max_length" : {
13827 "description" : "Maximum length of write I/O bursts in seconds.",
13828 "format_description" : "seconds",
13829 "minimum" : 1,
13830 "optional" : 1,
13831 "type" : "integer"
13832 },
7aacca6f 13833 "iothread" : {
7aacca6f 13834 "description" : "Whether to use iothreads for this drive",
56122987 13835 "optional" : 1,
56122987
DM
13836 "type" : "boolean"
13837 },
44660702 13838 "mbps" : {
de0983cb 13839 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
13840 "format_description" : "mbps",
13841 "optional" : 1,
13842 "type" : "number"
13843 },
13844 "mbps_max" : {
de0983cb 13845 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
13846 "format_description" : "mbps",
13847 "optional" : 1,
13848 "type" : "number"
13849 },
13850 "mbps_rd" : {
de0983cb 13851 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
13852 "format_description" : "mbps",
13853 "optional" : 1,
13854 "type" : "number"
13855 },
13856 "mbps_rd_max" : {
de0983cb 13857 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
13858 "format_description" : "mbps",
13859 "optional" : 1,
13860 "type" : "number"
13861 },
13862 "mbps_wr" : {
de0983cb 13863 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
13864 "format_description" : "mbps",
13865 "optional" : 1,
13866 "type" : "number"
13867 },
13868 "mbps_wr_max" : {
de0983cb 13869 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
13870 "format_description" : "mbps",
13871 "optional" : 1,
13872 "type" : "number"
13873 },
7aacca6f 13874 "media" : {
44660702
DM
13875 "default" : "disk",
13876 "description" : "The drive's media type.",
7aacca6f
DM
13877 "enum" : [
13878 "cdrom",
13879 "disk"
13880 ],
56122987 13881 "optional" : 1,
44660702
DM
13882 "type" : "string"
13883 },
13884 "queues" : {
13885 "description" : "Number of queues.",
44660702
DM
13886 "minimum" : 2,
13887 "optional" : 1,
13888 "type" : "integer"
13889 },
5d9c884c
DM
13890 "replicate" : {
13891 "default" : 1,
13892 "description" : "Whether the drive should considered for replication jobs.",
13893 "optional" : 1,
13894 "type" : "boolean"
13895 },
13896 "rerror" : {
13897 "description" : "Read error action.",
13898 "enum" : [
13899 "ignore",
13900 "report",
13901 "stop"
13902 ],
13903 "optional" : 1,
13904 "type" : "string"
13905 },
5370fa8c
TL
13906 "ro" : {
13907 "description" : "Whether the drive is read-only.",
13908 "optional" : 1,
13909 "type" : "boolean"
13910 },
52e44c50
FG
13911 "scsiblock" : {
13912 "default" : 0,
13913 "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",
13914 "optional" : 1,
13915 "type" : "boolean"
13916 },
44660702
DM
13917 "secs" : {
13918 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
13919 "optional" : 1,
13920 "type" : "integer"
13921 },
13922 "serial" : {
13923 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
13924 "format" : "urlencoded",
13925 "format_description" : "serial",
13926 "maxLength" : 60,
13927 "optional" : 1,
13928 "type" : "string"
13929 },
27a7acb2
DM
13930 "shared" : {
13931 "default" : 0,
13932 "description" : "Mark this locally-managed volume as available on all nodes",
13933 "optional" : 1,
13934 "type" : "boolean",
13935 "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!"
13936 },
44660702
DM
13937 "size" : {
13938 "description" : "Disk size. This is purely informational and has no effect.",
13939 "format" : "disk-size",
f004f5b9 13940 "format_description" : "DiskSize",
44660702
DM
13941 "optional" : 1,
13942 "type" : "string"
56122987 13943 },
7aacca6f 13944 "snapshot" : {
27a7acb2 13945 "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 13946 "optional" : 1,
44660702 13947 "type" : "boolean"
7aacca6f 13948 },
25203dc1
NC
13949 "ssd" : {
13950 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
13951 "optional" : 1,
13952 "type" : "boolean"
13953 },
44660702
DM
13954 "trans" : {
13955 "description" : "Force disk geometry bios translation mode.",
13956 "enum" : [
13957 "none",
13958 "lba",
13959 "auto"
13960 ],
44660702
DM
13961 "optional" : 1,
13962 "type" : "string"
13963 },
13964 "volume" : {
13965 "alias" : "file"
13966 },
13967 "werror" : {
13968 "description" : "Write error action.",
13969 "enum" : [
13970 "enospc",
13971 "ignore",
13972 "report",
13973 "stop"
13974 ],
56122987 13975 "optional" : 1,
44660702 13976 "type" : "string"
95895385
TL
13977 },
13978 "wwn" : {
13979 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
13980 "format_description" : "wwn",
13981 "optional" : 1,
13982 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
13983 "type" : "string"
56122987 13984 }
44660702 13985 },
7aacca6f 13986 "optional" : 1,
4d47f125 13987 "type" : "string"
44660702
DM
13988 },
13989 "scsihw" : {
13990 "default" : "lsi",
c2993fe5 13991 "description" : "SCSI controller model",
7aacca6f 13992 "enum" : [
44660702
DM
13993 "lsi",
13994 "lsi53c810",
13995 "virtio-scsi-pci",
13996 "virtio-scsi-single",
13997 "megasas",
13998 "pvscsi"
7aacca6f 13999 ],
44660702
DM
14000 "optional" : 1,
14001 "type" : "string"
56122987 14002 },
27a7acb2 14003 "searchdomain" : {
4772952b 14004 "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 14005 "optional" : 1,
4d47f125 14006 "type" : "string"
27a7acb2 14007 },
44660702 14008 "serial[n]" : {
c2993fe5 14009 "description" : "Create a serial device inside the VM (n is 0 to 3)",
7aacca6f 14010 "optional" : 1,
44660702 14011 "pattern" : "(/dev/.+|socket)",
c2993fe5 14012 "type" : "string",
4772952b 14013 "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 14014 },
44660702
DM
14015 "shares" : {
14016 "default" : 1000,
5da3d723 14017 "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
14018 "maximum" : 50000,
14019 "minimum" : 0,
56122987 14020 "optional" : 1,
4d47f125 14021 "type" : "integer"
56122987 14022 },
44660702
DM
14023 "smbios1" : {
14024 "description" : "Specify SMBIOS type 1 fields.",
14025 "format" : "pve-qm-smbios1",
1e3f8156 14026 "maxLength" : 512,
56122987 14027 "optional" : 1,
4d47f125 14028 "type" : "string"
56122987 14029 },
44660702
DM
14030 "smp" : {
14031 "default" : 1,
14032 "description" : "The number of CPUs. Please use option -sockets instead.",
7aacca6f 14033 "minimum" : 1,
7aacca6f 14034 "optional" : 1,
4d47f125 14035 "type" : "integer"
7aacca6f 14036 },
44660702
DM
14037 "sockets" : {
14038 "default" : 1,
14039 "description" : "The number of CPU sockets.",
14040 "minimum" : 1,
7aacca6f 14041 "optional" : 1,
4d47f125 14042 "type" : "integer"
56122987 14043 },
1c532546
TL
14044 "spice_enhancements" : {
14045 "description" : "Configure additional enhancements for SPICE.",
14046 "format" : {
14047 "foldersharing" : {
14048 "default" : "0",
14049 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
14050 "optional" : 1,
14051 "type" : "boolean"
14052 },
14053 "videostreaming" : {
14054 "default" : "off",
14055 "description" : "Enable video streaming. Uses compression for detected video streams.",
14056 "enum" : [
14057 "off",
14058 "all",
14059 "filter"
14060 ],
14061 "optional" : 1,
14062 "type" : "string"
14063 }
14064 },
14065 "optional" : 1,
14066 "type" : "string"
14067 },
27a7acb2
DM
14068 "sshkeys" : {
14069 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
14070 "format" : "urlencoded",
14071 "optional" : 1,
4d47f125 14072 "type" : "string"
27a7acb2 14073 },
44660702
DM
14074 "startdate" : {
14075 "default" : "now",
4772952b 14076 "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 14077 "optional" : 1,
44660702 14078 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 14079 "type" : "string",
44660702 14080 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
56122987 14081 },
7aacca6f 14082 "startup" : {
7aacca6f 14083 "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 14084 "format" : "pve-startup-order",
56122987 14085 "optional" : 1,
44660702
DM
14086 "type" : "string",
14087 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
56122987 14088 },
44660702 14089 "tablet" : {
7aacca6f 14090 "default" : 1,
c2993fe5 14091 "description" : "Enable/disable the USB tablet device.",
7aacca6f 14092 "optional" : 1,
c2993fe5 14093 "type" : "boolean",
4772952b 14094 "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 14095 },
5c1699e5
TL
14096 "tags" : {
14097 "description" : "Tags of the VM. This is only meta information.",
14098 "format" : "pve-tag-list",
14099 "optional" : 1,
14100 "type" : "string"
14101 },
44660702
DM
14102 "tdf" : {
14103 "default" : 0,
14104 "description" : "Enable/disable time drift fix.",
7aacca6f 14105 "optional" : 1,
4d47f125 14106 "type" : "boolean"
7aacca6f 14107 },
44660702
DM
14108 "template" : {
14109 "default" : 0,
14110 "description" : "Enable/disable Template.",
7aacca6f 14111 "optional" : 1,
4d47f125 14112 "type" : "boolean"
7aacca6f 14113 },
5370fa8c
TL
14114 "tpmstate0" : {
14115 "description" : "Configure a Disk for storing TPM state. 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 size of 4 MiB will always be used instead. The format is also fixed to 'raw'.",
14116 "format" : {
14117 "file" : {
14118 "default_key" : 1,
14119 "description" : "The drive's backing volume.",
14120 "format" : "pve-volume-id-or-qm-path",
14121 "format_description" : "volume",
14122 "type" : "string"
14123 },
14124 "size" : {
14125 "description" : "Disk size. This is purely informational and has no effect.",
14126 "format" : "disk-size",
14127 "format_description" : "DiskSize",
14128 "optional" : 1,
14129 "type" : "string"
14130 },
14131 "version" : {
14132 "default" : "v2.0",
14133 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
14134 "enum" : [
14135 "v1.2",
14136 "v2.0"
14137 ],
14138 "optional" : 1,
14139 "type" : "string"
14140 },
14141 "volume" : {
14142 "alias" : "file"
14143 }
14144 },
14145 "optional" : 1,
14146 "type" : "string"
14147 },
44660702 14148 "unused[n]" : {
c2993fe5 14149 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
14150 "format" : {
14151 "file" : {
14152 "default_key" : 1,
14153 "description" : "The drive's backing volume.",
14154 "format" : "pve-volume-id",
14155 "format_description" : "volume",
14156 "type" : "string"
14157 },
14158 "volume" : {
14159 "alias" : "file"
14160 }
14161 },
7aacca6f 14162 "optional" : 1,
4d47f125 14163 "type" : "string"
7aacca6f 14164 },
44660702 14165 "usb[n]" : {
c2993fe5 14166 "description" : "Configure an USB device (n is 0 to 4).",
44660702
DM
14167 "format" : {
14168 "host" : {
14169 "default_key" : 1,
4772952b 14170 "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
14171 "format" : "pve-qm-usb-device",
14172 "format_description" : "HOSTUSBDEVICE|spice",
14173 "type" : "string"
14174 },
14175 "usb3" : {
c2993fe5 14176 "default" : 0,
1c532546 14177 "description" : "Specifies whether if given host option is a USB3 device or port.",
44660702
DM
14178 "optional" : 1,
14179 "type" : "boolean"
14180 }
14181 },
7aacca6f 14182 "optional" : 1,
4d47f125 14183 "type" : "string"
56122987 14184 },
44660702
DM
14185 "vcpus" : {
14186 "default" : 0,
14187 "description" : "Number of hotplugged vcpus.",
14188 "minimum" : 1,
56122987 14189 "optional" : 1,
4d47f125 14190 "type" : "integer"
56122987 14191 },
44660702 14192 "vga" : {
e2d681b3
TL
14193 "description" : "Configure the VGA hardware.",
14194 "format" : {
14195 "memory" : {
14196 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
14197 "maximum" : 512,
14198 "minimum" : 4,
14199 "optional" : 1,
14200 "type" : "integer"
14201 },
14202 "type" : {
14203 "default" : "std",
14204 "default_key" : 1,
14205 "description" : "Select the VGA type.",
14206 "enum" : [
14207 "cirrus",
14208 "qxl",
14209 "qxl2",
14210 "qxl3",
14211 "qxl4",
5f26e15b 14212 "none",
e2d681b3
TL
14213 "serial0",
14214 "serial1",
14215 "serial2",
14216 "serial3",
14217 "std",
14218 "virtio",
14219 "vmware"
14220 ],
14221 "optional" : 1,
14222 "type" : "string"
14223 }
14224 },
56122987 14225 "optional" : 1,
c2993fe5 14226 "type" : "string",
e2d681b3 14227 "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 14228 },
44660702 14229 "virtio[n]" : {
d2656385 14230 "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.",
56122987 14231 "format" : {
44660702
DM
14232 "aio" : {
14233 "description" : "AIO type to use.",
56122987 14234 "enum" : [
44660702 14235 "native",
8f4d9c87
TL
14236 "threads",
14237 "io_uring"
56122987 14238 ],
56122987
DM
14239 "optional" : 1,
14240 "type" : "string"
14241 },
44660702
DM
14242 "backup" : {
14243 "description" : "Whether the drive should be included when making backups.",
44660702
DM
14244 "optional" : 1,
14245 "type" : "boolean"
7aacca6f 14246 },
44660702 14247 "bps" : {
de0983cb 14248 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
14249 "format_description" : "bps",
14250 "optional" : 1,
14251 "type" : "integer"
56122987 14252 },
de0983cb
DM
14253 "bps_max_length" : {
14254 "description" : "Maximum length of I/O bursts in seconds.",
14255 "format_description" : "seconds",
14256 "minimum" : 1,
14257 "optional" : 1,
14258 "type" : "integer"
14259 },
44660702 14260 "bps_rd" : {
de0983cb 14261 "description" : "Maximum read speed in bytes per second.",
44660702 14262 "format_description" : "bps",
56122987 14263 "optional" : 1,
44660702 14264 "type" : "integer"
56122987 14265 },
de0983cb 14266 "bps_rd_length" : {
5d9c884c
DM
14267 "alias" : "bps_rd_max_length"
14268 },
14269 "bps_rd_max_length" : {
de0983cb
DM
14270 "description" : "Maximum length of read I/O bursts in seconds.",
14271 "format_description" : "seconds",
14272 "minimum" : 1,
14273 "optional" : 1,
14274 "type" : "integer"
14275 },
44660702 14276 "bps_wr" : {
de0983cb 14277 "description" : "Maximum write speed in bytes per second.",
44660702 14278 "format_description" : "bps",
56122987 14279 "optional" : 1,
44660702
DM
14280 "type" : "integer"
14281 },
de0983cb 14282 "bps_wr_length" : {
5d9c884c
DM
14283 "alias" : "bps_wr_max_length"
14284 },
14285 "bps_wr_max_length" : {
de0983cb
DM
14286 "description" : "Maximum length of write I/O bursts in seconds.",
14287 "format_description" : "seconds",
14288 "minimum" : 1,
14289 "optional" : 1,
14290 "type" : "integer"
14291 },
44660702
DM
14292 "cache" : {
14293 "description" : "The drive's cache mode",
56122987 14294 "enum" : [
44660702
DM
14295 "none",
14296 "writethrough",
14297 "writeback",
14298 "unsafe",
14299 "directsync"
56122987 14300 ],
56122987 14301 "optional" : 1,
44660702 14302 "type" : "string"
56122987 14303 },
44660702
DM
14304 "cyls" : {
14305 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 14306 "optional" : 1,
44660702 14307 "type" : "integer"
7aacca6f 14308 },
44660702
DM
14309 "detect_zeroes" : {
14310 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
14311 "optional" : 1,
14312 "type" : "boolean"
7aacca6f 14313 },
44660702
DM
14314 "discard" : {
14315 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
14316 "enum" : [
14317 "ignore",
14318 "on"
14319 ],
56122987 14320 "optional" : 1,
44660702 14321 "type" : "string"
56122987
DM
14322 },
14323 "file" : {
7aacca6f 14324 "default_key" : 1,
44660702 14325 "description" : "The drive's backing volume.",
7aacca6f 14326 "format" : "pve-volume-id-or-qm-path",
44660702
DM
14327 "format_description" : "volume",
14328 "type" : "string"
7aacca6f
DM
14329 },
14330 "format" : {
7aacca6f
DM
14331 "description" : "The drive's backing file's data format.",
14332 "enum" : [
14333 "raw",
14334 "cow",
14335 "qcow",
14336 "qed",
14337 "qcow2",
14338 "vmdk",
14339 "cloop"
56122987
DM
14340 ],
14341 "optional" : 1,
56122987
DM
14342 "type" : "string"
14343 },
44660702
DM
14344 "heads" : {
14345 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 14346 "optional" : 1,
44660702 14347 "type" : "integer"
56122987 14348 },
44660702 14349 "iops" : {
de0983cb 14350 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 14351 "format_description" : "iops",
56122987 14352 "optional" : 1,
44660702 14353 "type" : "integer"
56122987 14354 },
44660702 14355 "iops_max" : {
de0983cb 14356 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 14357 "format_description" : "iops",
56122987 14358 "optional" : 1,
56122987
DM
14359 "type" : "integer"
14360 },
de0983cb
DM
14361 "iops_max_length" : {
14362 "description" : "Maximum length of I/O bursts in seconds.",
14363 "format_description" : "seconds",
14364 "minimum" : 1,
14365 "optional" : 1,
14366 "type" : "integer"
14367 },
44660702 14368 "iops_rd" : {
de0983cb 14369 "description" : "Maximum read I/O in operations per second.",
44660702 14370 "format_description" : "iops",
56122987 14371 "optional" : 1,
44660702 14372 "type" : "integer"
56122987 14373 },
de0983cb 14374 "iops_rd_length" : {
5d9c884c 14375 "alias" : "iops_rd_max_length"
de0983cb 14376 },
44660702 14377 "iops_rd_max" : {
de0983cb 14378 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 14379 "format_description" : "iops",
7aacca6f 14380 "optional" : 1,
44660702 14381 "type" : "integer"
56122987 14382 },
5d9c884c
DM
14383 "iops_rd_max_length" : {
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 "iops_wr" : {
de0983cb 14391 "description" : "Maximum write I/O in operations per second.",
44660702 14392 "format_description" : "iops",
7aacca6f 14393 "optional" : 1,
44660702 14394 "type" : "integer"
56122987 14395 },
de0983cb 14396 "iops_wr_length" : {
5d9c884c 14397 "alias" : "iops_wr_max_length"
de0983cb 14398 },
44660702 14399 "iops_wr_max" : {
de0983cb 14400 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 14401 "format_description" : "iops",
56122987
DM
14402 "optional" : 1,
14403 "type" : "integer"
14404 },
5d9c884c
DM
14405 "iops_wr_max_length" : {
14406 "description" : "Maximum length of write I/O bursts in seconds.",
14407 "format_description" : "seconds",
14408 "minimum" : 1,
14409 "optional" : 1,
14410 "type" : "integer"
14411 },
44660702
DM
14412 "iothread" : {
14413 "description" : "Whether to use iothreads for this drive",
44660702
DM
14414 "optional" : 1,
14415 "type" : "boolean"
14416 },
14417 "mbps" : {
de0983cb 14418 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 14419 "format_description" : "mbps",
44660702
DM
14420 "optional" : 1,
14421 "type" : "number"
14422 },
14423 "mbps_max" : {
de0983cb 14424 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
14425 "format_description" : "mbps",
14426 "optional" : 1,
14427 "type" : "number"
7aacca6f 14428 },
44660702 14429 "mbps_rd" : {
de0983cb 14430 "description" : "Maximum read speed in megabytes per second.",
44660702 14431 "format_description" : "mbps",
56122987 14432 "optional" : 1,
44660702 14433 "type" : "number"
56122987 14434 },
44660702 14435 "mbps_rd_max" : {
de0983cb 14436 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 14437 "format_description" : "mbps",
7aacca6f 14438 "optional" : 1,
44660702 14439 "type" : "number"
56122987 14440 },
44660702 14441 "mbps_wr" : {
de0983cb 14442 "description" : "Maximum write speed in megabytes per second.",
44660702 14443 "format_description" : "mbps",
56122987 14444 "optional" : 1,
44660702 14445 "type" : "number"
56122987 14446 },
44660702 14447 "mbps_wr_max" : {
de0983cb 14448 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 14449 "format_description" : "mbps",
56122987 14450 "optional" : 1,
44660702 14451 "type" : "number"
56122987
DM
14452 },
14453 "media" : {
7aacca6f 14454 "default" : "disk",
44660702 14455 "description" : "The drive's media type.",
56122987
DM
14456 "enum" : [
14457 "cdrom",
14458 "disk"
14459 ],
44660702
DM
14460 "optional" : 1,
14461 "type" : "string"
56122987 14462 },
5d9c884c
DM
14463 "replicate" : {
14464 "default" : 1,
14465 "description" : "Whether the drive should considered for replication jobs.",
14466 "optional" : 1,
14467 "type" : "boolean"
14468 },
7aacca6f 14469 "rerror" : {
44660702 14470 "description" : "Read error action.",
56122987 14471 "enum" : [
7aacca6f
DM
14472 "ignore",
14473 "report",
14474 "stop"
56122987 14475 ],
56122987 14476 "optional" : 1,
44660702 14477 "type" : "string"
56122987 14478 },
5370fa8c
TL
14479 "ro" : {
14480 "description" : "Whether the drive is read-only.",
14481 "optional" : 1,
14482 "type" : "boolean"
14483 },
44660702
DM
14484 "secs" : {
14485 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
14486 "optional" : 1,
14487 "type" : "integer"
14488 },
14489 "serial" : {
14490 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
14491 "format" : "urlencoded",
14492 "format_description" : "serial",
14493 "maxLength" : 60,
56122987 14494 "optional" : 1,
7aacca6f 14495 "type" : "string"
56122987 14496 },
27a7acb2
DM
14497 "shared" : {
14498 "default" : 0,
14499 "description" : "Mark this locally-managed volume as available on all nodes",
14500 "optional" : 1,
14501 "type" : "boolean",
14502 "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!"
14503 },
44660702
DM
14504 "size" : {
14505 "description" : "Disk size. This is purely informational and has no effect.",
14506 "format" : "disk-size",
f004f5b9 14507 "format_description" : "DiskSize",
56122987 14508 "optional" : 1,
44660702 14509 "type" : "string"
56122987 14510 },
44660702 14511 "snapshot" : {
27a7acb2 14512 "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 14513 "optional" : 1,
44660702 14514 "type" : "boolean"
56122987 14515 },
44660702
DM
14516 "trans" : {
14517 "description" : "Force disk geometry bios translation mode.",
14518 "enum" : [
14519 "none",
14520 "lba",
14521 "auto"
14522 ],
44660702
DM
14523 "optional" : 1,
14524 "type" : "string"
14525 },
14526 "volume" : {
14527 "alias" : "file"
14528 },
14529 "werror" : {
14530 "description" : "Write error action.",
14531 "enum" : [
14532 "enospc",
14533 "ignore",
14534 "report",
14535 "stop"
14536 ],
56122987 14537 "optional" : 1,
44660702 14538 "type" : "string"
56122987 14539 }
44660702 14540 },
56122987 14541 "optional" : 1,
4d47f125 14542 "type" : "string"
56122987 14543 },
4d47f125
TL
14544 "vmgenid" : {
14545 "default" : "1 (autogenerated)",
14546 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
14547 "format_description" : "UUID",
14548 "optional" : 1,
14549 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
14550 "type" : "string",
4772952b 14551 "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 14552 },
2489d6df
WB
14553 "vmstatestorage" : {
14554 "description" : "Default storage for VM state volumes/files.",
14555 "format" : "pve-storage-id",
14556 "optional" : 1,
4d47f125 14557 "type" : "string"
2489d6df 14558 },
44660702 14559 "watchdog" : {
c2993fe5 14560 "description" : "Create a virtual hardware watchdog device.",
44660702 14561 "format" : "pve-qm-watchdog",
56122987 14562 "optional" : 1,
c2993fe5
DM
14563 "type" : "string",
14564 "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 14565 }
4d47f125
TL
14566 },
14567 "type" : "object"
44660702 14568 }
56122987 14569 },
4d47f125 14570 "POST" : {
e9cd3bd4 14571 "allowtoken" : 1,
4d47f125
TL
14572 "description" : "Set virtual machine options (asynchrounous API).",
14573 "method" : "POST",
14574 "name" : "update_vm_async",
56122987 14575 "parameters" : {
7aacca6f 14576 "additionalProperties" : 0,
56122987 14577 "properties" : {
44660702
DM
14578 "acpi" : {
14579 "default" : 1,
14580 "description" : "Enable/disable ACPI.",
7aacca6f 14581 "optional" : 1,
013dc89f
DM
14582 "type" : "boolean",
14583 "typetext" : "<boolean>"
7aacca6f 14584 },
44660702 14585 "agent" : {
5370fa8c 14586 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
14587 "format" : {
14588 "enabled" : {
14589 "default" : 0,
14590 "default_key" : 1,
5370fa8c 14591 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
14592 "type" : "boolean"
14593 },
14594 "fstrim_cloned_disks" : {
14595 "default" : 0,
d2656385 14596 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
14597 "optional" : 1,
14598 "type" : "boolean"
5c1699e5
TL
14599 },
14600 "type" : {
14601 "default" : "virtio",
14602 "description" : "Select the agent type",
14603 "enum" : [
14604 "virtio",
14605 "isa"
14606 ],
14607 "optional" : 1,
14608 "type" : "string"
4d47f125
TL
14609 }
14610 },
7aacca6f 14611 "optional" : 1,
4d47f125 14612 "type" : "string",
5c1699e5 14613 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 14614 },
e2d681b3
TL
14615 "arch" : {
14616 "description" : "Virtual processor architecture. Defaults to the host.",
14617 "enum" : [
14618 "x86_64",
14619 "aarch64"
14620 ],
14621 "optional" : 1,
14622 "type" : "string"
14623 },
44660702 14624 "args" : {
c2993fe5 14625 "description" : "Arbitrary arguments passed to kvm.",
7aacca6f 14626 "optional" : 1,
c2993fe5 14627 "type" : "string",
013dc89f 14628 "typetext" : "<string>",
c2993fe5 14629 "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 14630 },
1c532546
TL
14631 "audio0" : {
14632 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
14633 "format" : {
14634 "device" : {
14635 "description" : "Configure an audio device.",
14636 "enum" : [
14637 "ich9-intel-hda",
14638 "intel-hda",
14639 "AC97"
14640 ],
14641 "type" : "string"
14642 },
14643 "driver" : {
14644 "default" : "spice",
14645 "description" : "Driver backend for the audio device.",
14646 "enum" : [
d2656385
TL
14647 "spice",
14648 "none"
1c532546
TL
14649 ],
14650 "optional" : 1,
14651 "type" : "string"
14652 }
14653 },
14654 "optional" : 1,
14655 "type" : "string",
d2656385 14656 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 14657 },
44660702
DM
14658 "autostart" : {
14659 "default" : 0,
14660 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 14661 "optional" : 1,
013dc89f
DM
14662 "type" : "boolean",
14663 "typetext" : "<boolean>"
7aacca6f 14664 },
4d47f125
TL
14665 "background_delay" : {
14666 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
14667 "maximum" : 30,
14668 "minimum" : 1,
14669 "optional" : 1,
14670 "type" : "integer",
14671 "typetext" : "<integer> (1 - 30)"
14672 },
44660702
DM
14673 "balloon" : {
14674 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
14675 "minimum" : 0,
14676 "optional" : 1,
4bd7df8b 14677 "type" : "integer",
013dc89f 14678 "typetext" : "<integer> (0 - N)"
44660702
DM
14679 },
14680 "bios" : {
14681 "default" : "seabios",
14682 "description" : "Select BIOS implementation.",
7aacca6f 14683 "enum" : [
44660702
DM
14684 "seabios",
14685 "ovmf"
7aacca6f 14686 ],
56122987 14687 "optional" : 1,
7aacca6f
DM
14688 "type" : "string"
14689 },
44660702 14690 "boot" : {
5370fa8c 14691 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 14692 "format" : "pve-qm-boot",
7aacca6f 14693 "optional" : 1,
4772952b
TL
14694 "type" : "string",
14695 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 14696 },
44660702 14697 "bootdisk" : {
4772952b 14698 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
14699 "format" : "pve-qm-bootdisk",
14700 "optional" : 1,
14701 "pattern" : "(ide|sata|scsi|virtio)\\d+",
14702 "type" : "string"
14703 },
14704 "cdrom" : {
14705 "description" : "This is an alias for option -ide2",
de0983cb 14706 "format" : "pve-qm-ide",
56122987 14707 "optional" : 1,
7aacca6f 14708 "type" : "string",
013dc89f 14709 "typetext" : "<volume>"
44660702 14710 },
95895385
TL
14711 "cicustom" : {
14712 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
14713 "format" : "pve-qm-cicustom",
14714 "optional" : 1,
14715 "type" : "string",
5370fa8c 14716 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 14717 },
27a7acb2
DM
14718 "cipassword" : {
14719 "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.",
14720 "optional" : 1,
14721 "type" : "string",
14722 "typetext" : "<string>"
14723 },
14724 "citype" : {
14725 "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.",
14726 "enum" : [
14727 "configdrive2",
d2656385
TL
14728 "nocloud",
14729 "opennebula"
27a7acb2
DM
14730 ],
14731 "optional" : 1,
14732 "type" : "string"
14733 },
14734 "ciuser" : {
14735 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
14736 "optional" : 1,
14737 "type" : "string",
14738 "typetext" : "<string>"
14739 },
44660702
DM
14740 "cores" : {
14741 "default" : 1,
14742 "description" : "The number of cores per socket.",
14743 "minimum" : 1,
14744 "optional" : 1,
4bd7df8b 14745 "type" : "integer",
013dc89f 14746 "typetext" : "<integer> (1 - N)"
44660702
DM
14747 },
14748 "cpu" : {
14749 "description" : "Emulated CPU type.",
c5aa7e14 14750 "format" : "pve-vm-cpu-conf",
44660702 14751 "optional" : 1,
4bd7df8b 14752 "type" : "string",
04d22a9f 14753 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702
DM
14754 },
14755 "cpulimit" : {
14756 "default" : 0,
c2993fe5 14757 "description" : "Limit of CPU usage.",
44660702
DM
14758 "maximum" : 128,
14759 "minimum" : 0,
14760 "optional" : 1,
c2993fe5 14761 "type" : "number",
013dc89f 14762 "typetext" : "<number> (0 - 128)",
c2993fe5 14763 "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
14764 },
14765 "cpuunits" : {
5370fa8c
TL
14766 "default" : "cgroup v1: 1024, cgroup v2: 100",
14767 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df
WB
14768 "maximum" : 262144,
14769 "minimum" : 2,
44660702 14770 "optional" : 1,
c2993fe5 14771 "type" : "integer",
2489d6df
WB
14772 "typetext" : "<integer> (2 - 262144)",
14773 "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
14774 },
14775 "delete" : {
14776 "description" : "A list of settings you want to delete.",
14777 "format" : "pve-configid-list",
14778 "optional" : 1,
013dc89f
DM
14779 "type" : "string",
14780 "typetext" : "<string>"
44660702
DM
14781 },
14782 "description" : {
8f4d9c87
TL
14783 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
14784 "maxLength" : 8192,
44660702 14785 "optional" : 1,
013dc89f
DM
14786 "type" : "string",
14787 "typetext" : "<string>"
44660702
DM
14788 },
14789 "digest" : {
14790 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
14791 "maxLength" : 40,
14792 "optional" : 1,
013dc89f
DM
14793 "type" : "string",
14794 "typetext" : "<string>"
44660702 14795 },
4d47f125 14796 "efidisk0" : {
d2656385 14797 "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.",
4d47f125 14798 "format" : {
5370fa8c
TL
14799 "efitype" : {
14800 "default" : "2m",
14801 "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.",
14802 "enum" : [
14803 "2m",
14804 "4m"
14805 ],
14806 "optional" : 1,
14807 "type" : "string"
14808 },
4d47f125
TL
14809 "file" : {
14810 "default_key" : 1,
14811 "description" : "The drive's backing volume.",
14812 "format" : "pve-volume-id-or-qm-path",
14813 "format_description" : "volume",
14814 "type" : "string"
14815 },
14816 "format" : {
14817 "description" : "The drive's backing file's data format.",
14818 "enum" : [
14819 "raw",
14820 "cow",
14821 "qcow",
14822 "qed",
14823 "qcow2",
14824 "vmdk",
14825 "cloop"
14826 ],
14827 "optional" : 1,
14828 "type" : "string"
14829 },
5370fa8c
TL
14830 "pre-enrolled-keys" : {
14831 "default" : 0,
14832 "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.",
14833 "optional" : 1,
14834 "type" : "boolean"
14835 },
4d47f125
TL
14836 "size" : {
14837 "description" : "Disk size. This is purely informational and has no effect.",
14838 "format" : "disk-size",
14839 "format_description" : "DiskSize",
14840 "optional" : 1,
14841 "type" : "string"
14842 },
14843 "volume" : {
14844 "alias" : "file"
14845 }
14846 },
14847 "optional" : 1,
14848 "type" : "string",
5370fa8c 14849 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 14850 },
44660702
DM
14851 "force" : {
14852 "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.",
14853 "optional" : 1,
14854 "requires" : "delete",
013dc89f
DM
14855 "type" : "boolean",
14856 "typetext" : "<boolean>"
44660702
DM
14857 },
14858 "freeze" : {
14859 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
14860 "optional" : 1,
013dc89f
DM
14861 "type" : "boolean",
14862 "typetext" : "<boolean>"
44660702 14863 },
5f26e15b
TL
14864 "hookscript" : {
14865 "description" : "Script that will be executed during various steps in the vms lifetime.",
14866 "format" : "pve-volume-id",
14867 "optional" : 1,
14868 "type" : "string",
14869 "typetext" : "<string>"
14870 },
44660702 14871 "hostpci[n]" : {
c2993fe5 14872 "description" : "Map host PCI devices into guest.",
44660702
DM
14873 "format" : "pve-qm-hostpci",
14874 "optional" : 1,
57b78691 14875 "type" : "string",
ac70d7d1 14876 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,x-vga=<1|0>]",
bb4c8cf8 14877 "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 14878 },
7aacca6f 14879 "hotplug" : {
7aacca6f 14880 "default" : "network,disk,usb",
5370fa8c 14881 "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 14882 "format" : "pve-hotplug-features",
56122987 14883 "optional" : 1,
013dc89f
DM
14884 "type" : "string",
14885 "typetext" : "<string>"
56122987 14886 },
4bd7df8b
DM
14887 "hugepages" : {
14888 "description" : "Enable/disable hugepages memory.",
14889 "enum" : [
14890 "any",
14891 "2",
14892 "1024"
14893 ],
14894 "optional" : 1,
14895 "type" : "string"
14896 },
56122987 14897 "ide[n]" : {
d2656385 14898 "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.",
56122987 14899 "format" : {
44660702
DM
14900 "aio" : {
14901 "description" : "AIO type to use.",
14902 "enum" : [
14903 "native",
8f4d9c87
TL
14904 "threads",
14905 "io_uring"
44660702 14906 ],
56122987 14907 "optional" : 1,
44660702 14908 "type" : "string"
56122987 14909 },
44660702
DM
14910 "backup" : {
14911 "description" : "Whether the drive should be included when making backups.",
44660702
DM
14912 "optional" : 1,
14913 "type" : "boolean"
14914 },
14915 "bps" : {
de0983cb 14916 "description" : "Maximum r/w speed in bytes per second.",
44660702 14917 "format_description" : "bps",
56122987 14918 "optional" : 1,
44660702 14919 "type" : "integer"
56122987 14920 },
de0983cb
DM
14921 "bps_max_length" : {
14922 "description" : "Maximum length of I/O bursts in seconds.",
14923 "format_description" : "seconds",
14924 "minimum" : 1,
14925 "optional" : 1,
14926 "type" : "integer"
14927 },
44660702 14928 "bps_rd" : {
de0983cb 14929 "description" : "Maximum read speed in bytes per second.",
44660702 14930 "format_description" : "bps",
56122987 14931 "optional" : 1,
44660702 14932 "type" : "integer"
56122987 14933 },
de0983cb 14934 "bps_rd_length" : {
5d9c884c
DM
14935 "alias" : "bps_rd_max_length"
14936 },
14937 "bps_rd_max_length" : {
de0983cb
DM
14938 "description" : "Maximum length of read I/O bursts in seconds.",
14939 "format_description" : "seconds",
14940 "minimum" : 1,
14941 "optional" : 1,
14942 "type" : "integer"
14943 },
7aacca6f 14944 "bps_wr" : {
de0983cb 14945 "description" : "Maximum write speed in bytes per second.",
44660702
DM
14946 "format_description" : "bps",
14947 "optional" : 1,
14948 "type" : "integer"
7aacca6f 14949 },
de0983cb 14950 "bps_wr_length" : {
5d9c884c
DM
14951 "alias" : "bps_wr_max_length"
14952 },
14953 "bps_wr_max_length" : {
de0983cb
DM
14954 "description" : "Maximum length of write I/O bursts in seconds.",
14955 "format_description" : "seconds",
14956 "minimum" : 1,
14957 "optional" : 1,
14958 "type" : "integer"
14959 },
44660702
DM
14960 "cache" : {
14961 "description" : "The drive's cache mode",
14962 "enum" : [
14963 "none",
14964 "writethrough",
14965 "writeback",
14966 "unsafe",
14967 "directsync"
14968 ],
56122987 14969 "optional" : 1,
44660702
DM
14970 "type" : "string"
14971 },
14972 "cyls" : {
14973 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
14974 "optional" : 1,
14975 "type" : "integer"
14976 },
14977 "detect_zeroes" : {
14978 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
14979 "optional" : 1,
14980 "type" : "boolean"
56122987 14981 },
7aacca6f 14982 "discard" : {
7aacca6f 14983 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 14984 "enum" : [
7aacca6f
DM
14985 "ignore",
14986 "on"
56122987
DM
14987 ],
14988 "optional" : 1,
44660702 14989 "type" : "string"
7aacca6f 14990 },
44660702
DM
14991 "file" : {
14992 "default_key" : 1,
14993 "description" : "The drive's backing volume.",
14994 "format" : "pve-volume-id-or-qm-path",
14995 "format_description" : "volume",
14996 "type" : "string"
7aacca6f
DM
14997 },
14998 "format" : {
44660702 14999 "description" : "The drive's backing file's data format.",
7aacca6f
DM
15000 "enum" : [
15001 "raw",
15002 "cow",
15003 "qcow",
15004 "qed",
15005 "qcow2",
15006 "vmdk",
15007 "cloop"
15008 ],
7aacca6f 15009 "optional" : 1,
44660702 15010 "type" : "string"
56122987 15011 },
7aacca6f 15012 "heads" : {
44660702 15013 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 15014 "optional" : 1,
44660702 15015 "type" : "integer"
7aacca6f 15016 },
44660702 15017 "iops" : {
de0983cb 15018 "description" : "Maximum r/w I/O in operations per second.",
44660702 15019 "format_description" : "iops",
7aacca6f 15020 "optional" : 1,
44660702 15021 "type" : "integer"
56122987 15022 },
44660702 15023 "iops_max" : {
de0983cb 15024 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 15025 "format_description" : "iops",
56122987 15026 "optional" : 1,
44660702 15027 "type" : "integer"
56122987 15028 },
de0983cb
DM
15029 "iops_max_length" : {
15030 "description" : "Maximum length of I/O bursts in seconds.",
15031 "format_description" : "seconds",
15032 "minimum" : 1,
15033 "optional" : 1,
15034 "type" : "integer"
15035 },
44660702 15036 "iops_rd" : {
de0983cb 15037 "description" : "Maximum read I/O in operations per second.",
44660702 15038 "format_description" : "iops",
56122987 15039 "optional" : 1,
44660702 15040 "type" : "integer"
7aacca6f 15041 },
de0983cb 15042 "iops_rd_length" : {
5d9c884c 15043 "alias" : "iops_rd_max_length"
de0983cb 15044 },
44660702 15045 "iops_rd_max" : {
de0983cb 15046 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 15047 "format_description" : "iops",
7aacca6f 15048 "optional" : 1,
44660702 15049 "type" : "integer"
7aacca6f 15050 },
5d9c884c
DM
15051 "iops_rd_max_length" : {
15052 "description" : "Maximum length of read I/O bursts in seconds.",
15053 "format_description" : "seconds",
15054 "minimum" : 1,
15055 "optional" : 1,
15056 "type" : "integer"
15057 },
44660702 15058 "iops_wr" : {
de0983cb 15059 "description" : "Maximum write I/O in operations per second.",
44660702 15060 "format_description" : "iops",
7aacca6f 15061 "optional" : 1,
44660702 15062 "type" : "integer"
56122987 15063 },
de0983cb 15064 "iops_wr_length" : {
5d9c884c 15065 "alias" : "iops_wr_max_length"
de0983cb 15066 },
44660702 15067 "iops_wr_max" : {
de0983cb 15068 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 15069 "format_description" : "iops",
7aacca6f 15070 "optional" : 1,
44660702 15071 "type" : "integer"
7aacca6f 15072 },
5d9c884c
DM
15073 "iops_wr_max_length" : {
15074 "description" : "Maximum length of write I/O bursts in seconds.",
15075 "format_description" : "seconds",
15076 "minimum" : 1,
15077 "optional" : 1,
15078 "type" : "integer"
15079 },
7aacca6f 15080 "mbps" : {
de0983cb 15081 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 15082 "format_description" : "mbps",
7aacca6f 15083 "optional" : 1,
44660702 15084 "type" : "number"
7aacca6f 15085 },
44660702 15086 "mbps_max" : {
de0983cb 15087 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 15088 "format_description" : "mbps",
7aacca6f 15089 "optional" : 1,
44660702 15090 "type" : "number"
7aacca6f 15091 },
44660702 15092 "mbps_rd" : {
de0983cb 15093 "description" : "Maximum read speed in megabytes per second.",
44660702 15094 "format_description" : "mbps",
7aacca6f 15095 "optional" : 1,
44660702 15096 "type" : "number"
7aacca6f 15097 },
44660702 15098 "mbps_rd_max" : {
de0983cb 15099 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
15100 "format_description" : "mbps",
15101 "optional" : 1,
15102 "type" : "number"
7aacca6f 15103 },
44660702 15104 "mbps_wr" : {
de0983cb 15105 "description" : "Maximum write speed in megabytes per second.",
44660702 15106 "format_description" : "mbps",
7aacca6f 15107 "optional" : 1,
44660702
DM
15108 "type" : "number"
15109 },
15110 "mbps_wr_max" : {
de0983cb 15111 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
15112 "format_description" : "mbps",
15113 "optional" : 1,
15114 "type" : "number"
15115 },
15116 "media" : {
15117 "default" : "disk",
15118 "description" : "The drive's media type.",
56122987 15119 "enum" : [
44660702
DM
15120 "cdrom",
15121 "disk"
56122987 15122 ],
44660702
DM
15123 "optional" : 1,
15124 "type" : "string"
56122987 15125 },
7aacca6f 15126 "model" : {
44660702 15127 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
56122987 15128 "format" : "urlencoded",
7aacca6f 15129 "format_description" : "model",
44660702 15130 "maxLength" : 120,
56122987 15131 "optional" : 1,
44660702 15132 "type" : "string"
56122987 15133 },
5d9c884c
DM
15134 "replicate" : {
15135 "default" : 1,
15136 "description" : "Whether the drive should considered for replication jobs.",
15137 "optional" : 1,
15138 "type" : "boolean"
15139 },
44660702
DM
15140 "rerror" : {
15141 "description" : "Read error action.",
15142 "enum" : [
15143 "ignore",
15144 "report",
15145 "stop"
15146 ],
56122987 15147 "optional" : 1,
44660702 15148 "type" : "string"
56122987 15149 },
44660702
DM
15150 "secs" : {
15151 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
15152 "optional" : 1,
15153 "type" : "integer"
56122987 15154 },
44660702
DM
15155 "serial" : {
15156 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
15157 "format" : "urlencoded",
15158 "format_description" : "serial",
15159 "maxLength" : 60,
56122987 15160 "optional" : 1,
44660702 15161 "type" : "string"
56122987 15162 },
27a7acb2
DM
15163 "shared" : {
15164 "default" : 0,
15165 "description" : "Mark this locally-managed volume as available on all nodes",
15166 "optional" : 1,
15167 "type" : "boolean",
15168 "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!"
15169 },
44660702
DM
15170 "size" : {
15171 "description" : "Disk size. This is purely informational and has no effect.",
15172 "format" : "disk-size",
f004f5b9 15173 "format_description" : "DiskSize",
56122987 15174 "optional" : 1,
44660702 15175 "type" : "string"
56122987 15176 },
44660702 15177 "snapshot" : {
27a7acb2 15178 "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 15179 "optional" : 1,
44660702 15180 "type" : "boolean"
56122987 15181 },
25203dc1
NC
15182 "ssd" : {
15183 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
15184 "optional" : 1,
15185 "type" : "boolean"
15186 },
44660702
DM
15187 "trans" : {
15188 "description" : "Force disk geometry bios translation mode.",
15189 "enum" : [
15190 "none",
15191 "lba",
15192 "auto"
15193 ],
56122987 15194 "optional" : 1,
44660702
DM
15195 "type" : "string"
15196 },
15197 "volume" : {
15198 "alias" : "file"
56122987 15199 },
7aacca6f 15200 "werror" : {
44660702 15201 "description" : "Write error action.",
7aacca6f
DM
15202 "enum" : [
15203 "enospc",
15204 "ignore",
15205 "report",
15206 "stop"
15207 ],
56122987 15208 "optional" : 1,
44660702 15209 "type" : "string"
95895385
TL
15210 },
15211 "wwn" : {
15212 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
15213 "format_description" : "wwn",
15214 "optional" : 1,
15215 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
15216 "type" : "string"
7aacca6f 15217 }
44660702
DM
15218 },
15219 "optional" : 1,
4bd7df8b 15220 "type" : "string",
8f4d9c87 15221 "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>] [,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
15222 },
15223 "ipconfig[n]" : {
d2656385 15224 "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
15225 "format" : "pve-qm-ipconfig",
15226 "optional" : 1,
15227 "type" : "string",
15228 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
7aacca6f 15229 },
95895385
TL
15230 "ivshmem" : {
15231 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
15232 "format" : {
15233 "name" : {
15234 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
15235 "format_description" : "string",
15236 "optional" : 1,
15237 "pattern" : "[a-zA-Z0-9\\-]+",
15238 "type" : "string"
15239 },
15240 "size" : {
15241 "description" : "The size of the file in MB.",
15242 "minimum" : 1,
15243 "type" : "integer"
15244 }
15245 },
15246 "optional" : 1,
15247 "type" : "string",
15248 "typetext" : "size=<integer> [,name=<string>]"
15249 },
4772952b
TL
15250 "keephugepages" : {
15251 "default" : 0,
15252 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
15253 "optional" : 1,
15254 "type" : "boolean",
15255 "typetext" : "<boolean>"
15256 },
44660702 15257 "keyboard" : {
35a75dd3 15258 "default" : null,
5370fa8c 15259 "description" : "Keyboard layout for VNC server. The default is read from the'/etc/pve/datacenter.cfg' configuration file. It should not be necessary to set it.",
44660702
DM
15260 "enum" : [
15261 "de",
15262 "de-ch",
15263 "da",
15264 "en-gb",
15265 "en-us",
15266 "es",
15267 "fi",
15268 "fr",
15269 "fr-be",
15270 "fr-ca",
15271 "fr-ch",
15272 "hu",
15273 "is",
15274 "it",
15275 "ja",
15276 "lt",
15277 "mk",
15278 "nl",
15279 "no",
15280 "pl",
15281 "pt",
15282 "pt-br",
15283 "sv",
15284 "sl",
15285 "tr"
15286 ],
7aacca6f 15287 "optional" : 1,
44660702 15288 "type" : "string"
7aacca6f 15289 },
44660702 15290 "kvm" : {
7aacca6f 15291 "default" : 1,
44660702 15292 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 15293 "optional" : 1,
013dc89f
DM
15294 "type" : "boolean",
15295 "typetext" : "<boolean>"
7aacca6f 15296 },
44660702 15297 "localtime" : {
5370fa8c 15298 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
7aacca6f 15299 "optional" : 1,
013dc89f
DM
15300 "type" : "boolean",
15301 "typetext" : "<boolean>"
7aacca6f 15302 },
44660702
DM
15303 "lock" : {
15304 "description" : "Lock/unlock the VM.",
15305 "enum" : [
44660702 15306 "backup",
5f26e15b
TL
15307 "clone",
15308 "create",
15309 "migrate",
15310 "rollback",
44660702 15311 "snapshot",
95895385
TL
15312 "snapshot-delete",
15313 "suspending",
15314 "suspended"
44660702 15315 ],
7aacca6f 15316 "optional" : 1,
44660702 15317 "type" : "string"
7aacca6f 15318 },
44660702 15319 "machine" : {
4d47f125 15320 "description" : "Specifies the Qemu machine type.",
44660702 15321 "maxLength" : 40,
7aacca6f 15322 "optional" : 1,
5c1699e5 15323 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702 15324 "type" : "string"
7aacca6f 15325 },
44660702
DM
15326 "memory" : {
15327 "default" : 512,
15328 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
15329 "minimum" : 16,
7aacca6f 15330 "optional" : 1,
4bd7df8b 15331 "type" : "integer",
013dc89f 15332 "typetext" : "<integer> (16 - N)"
7aacca6f 15333 },
44660702
DM
15334 "migrate_downtime" : {
15335 "default" : 0.1,
15336 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
15337 "minimum" : 0,
7aacca6f 15338 "optional" : 1,
4bd7df8b 15339 "type" : "number",
013dc89f 15340 "typetext" : "<number> (0 - N)"
7aacca6f 15341 },
44660702 15342 "migrate_speed" : {
7aacca6f 15343 "default" : 0,
44660702
DM
15344 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
15345 "minimum" : 0,
15346 "optional" : 1,
4bd7df8b 15347 "type" : "integer",
013dc89f 15348 "typetext" : "<integer> (0 - N)"
7aacca6f 15349 },
44660702
DM
15350 "name" : {
15351 "description" : "Set a name for the VM. Only used on the configuration web interface.",
15352 "format" : "dns-name",
7aacca6f 15353 "optional" : 1,
013dc89f
DM
15354 "type" : "string",
15355 "typetext" : "<string>"
7aacca6f 15356 },
27a7acb2 15357 "nameserver" : {
4772952b 15358 "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
15359 "format" : "address-list",
15360 "optional" : 1,
15361 "type" : "string",
15362 "typetext" : "<string>"
15363 },
44660702 15364 "net[n]" : {
c2993fe5 15365 "description" : "Specify network devices.",
f004f5b9
DM
15366 "format" : {
15367 "bridge" : {
c2993fe5 15368 "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",
f004f5b9
DM
15369 "format_description" : "bridge",
15370 "optional" : 1,
c5aa7e14 15371 "pattern" : "[-_.\\w\\d]+",
f004f5b9
DM
15372 "type" : "string"
15373 },
15374 "e1000" : {
15375 "alias" : "macaddr",
15376 "keyAlias" : "model"
15377 },
15378 "e1000-82540em" : {
15379 "alias" : "macaddr",
15380 "keyAlias" : "model"
15381 },
15382 "e1000-82544gc" : {
15383 "alias" : "macaddr",
15384 "keyAlias" : "model"
15385 },
15386 "e1000-82545em" : {
15387 "alias" : "macaddr",
15388 "keyAlias" : "model"
15389 },
5370fa8c
TL
15390 "e1000e" : {
15391 "alias" : "macaddr",
15392 "keyAlias" : "model"
15393 },
f004f5b9
DM
15394 "firewall" : {
15395 "description" : "Whether this interface should be protected by the firewall.",
15396 "optional" : 1,
15397 "type" : "boolean"
15398 },
15399 "i82551" : {
15400 "alias" : "macaddr",
15401 "keyAlias" : "model"
15402 },
15403 "i82557b" : {
15404 "alias" : "macaddr",
15405 "keyAlias" : "model"
15406 },
15407 "i82559er" : {
15408 "alias" : "macaddr",
15409 "keyAlias" : "model"
15410 },
15411 "link_down" : {
c2993fe5 15412 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
15413 "optional" : 1,
15414 "type" : "boolean"
15415 },
15416 "macaddr" : {
c2993fe5 15417 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 15418 "format" : "mac-addr",
f004f5b9 15419 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 15420 "optional" : 1,
95895385
TL
15421 "type" : "string",
15422 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
15423 },
15424 "model" : {
15425 "default_key" : 1,
c2993fe5 15426 "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 15427 "enum" : [
f004f5b9 15428 "e1000",
5370fa8c
TL
15429 "e1000-82540em",
15430 "e1000-82544gc",
15431 "e1000-82545em",
15432 "e1000e",
f004f5b9
DM
15433 "i82551",
15434 "i82557b",
15435 "i82559er",
5370fa8c
TL
15436 "ne2k_isa",
15437 "ne2k_pci",
15438 "pcnet",
15439 "rtl8139",
15440 "virtio",
15441 "vmxnet3"
f004f5b9 15442 ],
f004f5b9
DM
15443 "type" : "string"
15444 },
ac70d7d1
TL
15445 "mtu" : {
15446 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
15447 "maximum" : 65520,
15448 "minimum" : 1,
15449 "optional" : 1,
15450 "type" : "integer"
15451 },
f004f5b9
DM
15452 "ne2k_isa" : {
15453 "alias" : "macaddr",
15454 "keyAlias" : "model"
15455 },
15456 "ne2k_pci" : {
15457 "alias" : "macaddr",
15458 "keyAlias" : "model"
15459 },
15460 "pcnet" : {
15461 "alias" : "macaddr",
15462 "keyAlias" : "model"
15463 },
15464 "queues" : {
15465 "description" : "Number of packet queues to be used on the device.",
15466 "maximum" : 16,
15467 "minimum" : 0,
15468 "optional" : 1,
15469 "type" : "integer"
15470 },
15471 "rate" : {
c2993fe5 15472 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
15473 "minimum" : 0,
15474 "optional" : 1,
15475 "type" : "number"
15476 },
15477 "rtl8139" : {
15478 "alias" : "macaddr",
15479 "keyAlias" : "model"
15480 },
15481 "tag" : {
15482 "description" : "VLAN tag to apply to packets on this interface.",
15483 "maximum" : 4094,
c2993fe5 15484 "minimum" : 1,
f004f5b9
DM
15485 "optional" : 1,
15486 "type" : "integer"
15487 },
15488 "trunks" : {
15489 "description" : "VLAN trunks to pass through this interface.",
15490 "format_description" : "vlanid[;vlanid...]",
15491 "optional" : 1,
15492 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15493 "type" : "string"
15494 },
15495 "virtio" : {
15496 "alias" : "macaddr",
15497 "keyAlias" : "model"
15498 },
15499 "vmxnet3" : {
15500 "alias" : "macaddr",
15501 "keyAlias" : "model"
15502 }
15503 },
7aacca6f 15504 "optional" : 1,
4bd7df8b 15505 "type" : "string",
ac70d7d1 15506 "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 15507 },
44660702
DM
15508 "node" : {
15509 "description" : "The cluster node name.",
15510 "format" : "pve-node",
013dc89f
DM
15511 "type" : "string",
15512 "typetext" : "<string>"
44660702
DM
15513 },
15514 "numa" : {
15515 "default" : 0,
15516 "description" : "Enable/disable NUMA.",
7aacca6f 15517 "optional" : 1,
013dc89f
DM
15518 "type" : "boolean",
15519 "typetext" : "<boolean>"
7aacca6f 15520 },
44660702 15521 "numa[n]" : {
c2993fe5 15522 "description" : "NUMA topology.",
44660702
DM
15523 "format" : {
15524 "cpus" : {
c2993fe5 15525 "description" : "CPUs accessing this NUMA node.",
44660702
DM
15526 "format_description" : "id[-id];...",
15527 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15528 "type" : "string"
15529 },
15530 "hostnodes" : {
c2993fe5 15531 "description" : "Host NUMA nodes to use.",
44660702
DM
15532 "format_description" : "id[-id];...",
15533 "optional" : 1,
15534 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15535 "type" : "string"
15536 },
15537 "memory" : {
c2993fe5 15538 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
15539 "optional" : 1,
15540 "type" : "number"
15541 },
15542 "policy" : {
c2993fe5 15543 "description" : "NUMA allocation policy.",
44660702
DM
15544 "enum" : [
15545 "preferred",
15546 "bind",
15547 "interleave"
15548 ],
44660702
DM
15549 "optional" : 1,
15550 "type" : "string"
15551 }
15552 },
7aacca6f 15553 "optional" : 1,
4bd7df8b
DM
15554 "type" : "string",
15555 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
7aacca6f 15556 },
44660702
DM
15557 "onboot" : {
15558 "default" : 0,
15559 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 15560 "optional" : 1,
013dc89f
DM
15561 "type" : "boolean",
15562 "typetext" : "<boolean>"
7aacca6f 15563 },
44660702 15564 "ostype" : {
c2993fe5 15565 "description" : "Specify guest operating system.",
44660702
DM
15566 "enum" : [
15567 "other",
15568 "wxp",
15569 "w2k",
15570 "w2k3",
15571 "w2k8",
15572 "wvista",
15573 "win7",
15574 "win8",
32d876b5 15575 "win10",
5370fa8c 15576 "win11",
44660702
DM
15577 "l24",
15578 "l26",
15579 "solaris"
15580 ],
7aacca6f 15581 "optional" : 1,
c2993fe5 15582 "type" : "string",
5370fa8c 15583 "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 15584 },
44660702 15585 "parallel[n]" : {
c2993fe5 15586 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 15587 "optional" : 1,
44660702 15588 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 15589 "type" : "string",
4772952b 15590 "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 15591 },
44660702
DM
15592 "protection" : {
15593 "default" : 0,
c2993fe5 15594 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 15595 "optional" : 1,
013dc89f
DM
15596 "type" : "boolean",
15597 "typetext" : "<boolean>"
7aacca6f 15598 },
44660702
DM
15599 "reboot" : {
15600 "default" : 1,
15601 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 15602 "optional" : 1,
013dc89f
DM
15603 "type" : "boolean",
15604 "typetext" : "<boolean>"
7aacca6f 15605 },
44660702
DM
15606 "revert" : {
15607 "description" : "Revert a pending change.",
15608 "format" : "pve-configid-list",
7aacca6f 15609 "optional" : 1,
013dc89f
DM
15610 "type" : "string",
15611 "typetext" : "<string>"
7aacca6f 15612 },
c5aa7e14
TL
15613 "rng0" : {
15614 "description" : "Configure a VirtIO-based Random Number Generator.",
15615 "format" : {
15616 "max_bytes" : {
15617 "default" : 1024,
5370fa8c 15618 "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
15619 "optional" : 1,
15620 "type" : "integer"
15621 },
15622 "period" : {
15623 "default" : 1000,
15624 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
15625 "optional" : 1,
15626 "type" : "integer"
15627 },
15628 "source" : {
15629 "default_key" : 1,
5370fa8c 15630 "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
15631 "enum" : [
15632 "/dev/urandom",
15633 "/dev/random",
15634 "/dev/hwrng"
15635 ],
15636 "type" : "string"
15637 }
15638 },
15639 "optional" : 1,
15640 "type" : "string",
15641 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
15642 },
44660702 15643 "sata[n]" : {
d2656385 15644 "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.",
7aacca6f 15645 "format" : {
44660702
DM
15646 "aio" : {
15647 "description" : "AIO type to use.",
15648 "enum" : [
15649 "native",
8f4d9c87
TL
15650 "threads",
15651 "io_uring"
44660702 15652 ],
44660702
DM
15653 "optional" : 1,
15654 "type" : "string"
15655 },
15656 "backup" : {
15657 "description" : "Whether the drive should be included when making backups.",
44660702
DM
15658 "optional" : 1,
15659 "type" : "boolean"
15660 },
15661 "bps" : {
de0983cb 15662 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 15663 "format_description" : "bps",
7aacca6f
DM
15664 "optional" : 1,
15665 "type" : "integer"
56122987 15666 },
de0983cb
DM
15667 "bps_max_length" : {
15668 "description" : "Maximum length of I/O bursts in seconds.",
15669 "format_description" : "seconds",
15670 "minimum" : 1,
15671 "optional" : 1,
15672 "type" : "integer"
15673 },
44660702 15674 "bps_rd" : {
de0983cb 15675 "description" : "Maximum read speed in bytes per second.",
44660702 15676 "format_description" : "bps",
7aacca6f 15677 "optional" : 1,
44660702 15678 "type" : "integer"
7aacca6f 15679 },
de0983cb 15680 "bps_rd_length" : {
5d9c884c
DM
15681 "alias" : "bps_rd_max_length"
15682 },
15683 "bps_rd_max_length" : {
de0983cb
DM
15684 "description" : "Maximum length of read I/O bursts in seconds.",
15685 "format_description" : "seconds",
15686 "minimum" : 1,
15687 "optional" : 1,
15688 "type" : "integer"
15689 },
44660702 15690 "bps_wr" : {
de0983cb 15691 "description" : "Maximum write speed in bytes per second.",
44660702 15692 "format_description" : "bps",
7aacca6f 15693 "optional" : 1,
44660702 15694 "type" : "integer"
7aacca6f 15695 },
de0983cb 15696 "bps_wr_length" : {
5d9c884c
DM
15697 "alias" : "bps_wr_max_length"
15698 },
15699 "bps_wr_max_length" : {
de0983cb
DM
15700 "description" : "Maximum length of write I/O bursts in seconds.",
15701 "format_description" : "seconds",
15702 "minimum" : 1,
15703 "optional" : 1,
15704 "type" : "integer"
15705 },
44660702
DM
15706 "cache" : {
15707 "description" : "The drive's cache mode",
15708 "enum" : [
15709 "none",
15710 "writethrough",
15711 "writeback",
15712 "unsafe",
15713 "directsync"
15714 ],
7aacca6f 15715 "optional" : 1,
44660702 15716 "type" : "string"
7aacca6f 15717 },
44660702
DM
15718 "cyls" : {
15719 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 15720 "optional" : 1,
44660702 15721 "type" : "integer"
7aacca6f 15722 },
44660702
DM
15723 "detect_zeroes" : {
15724 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
7aacca6f 15725 "optional" : 1,
44660702 15726 "type" : "boolean"
7aacca6f 15727 },
44660702
DM
15728 "discard" : {
15729 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
15730 "enum" : [
15731 "ignore",
15732 "on"
15733 ],
7aacca6f 15734 "optional" : 1,
44660702
DM
15735 "type" : "string"
15736 },
15737 "file" : {
15738 "default_key" : 1,
15739 "description" : "The drive's backing volume.",
15740 "format" : "pve-volume-id-or-qm-path",
15741 "format_description" : "volume",
15742 "type" : "string"
7aacca6f
DM
15743 },
15744 "format" : {
7aacca6f 15745 "description" : "The drive's backing file's data format.",
56122987
DM
15746 "enum" : [
15747 "raw",
15748 "cow",
15749 "qcow",
15750 "qed",
15751 "qcow2",
15752 "vmdk",
15753 "cloop"
15754 ],
15755 "optional" : 1,
7aacca6f 15756 "type" : "string"
56122987 15757 },
7aacca6f 15758 "heads" : {
7aacca6f 15759 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
15760 "optional" : 1,
15761 "type" : "integer"
56122987 15762 },
44660702 15763 "iops" : {
de0983cb 15764 "description" : "Maximum r/w I/O in operations per second.",
44660702 15765 "format_description" : "iops",
56122987 15766 "optional" : 1,
44660702 15767 "type" : "integer"
7aacca6f 15768 },
44660702 15769 "iops_max" : {
de0983cb 15770 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 15771 "format_description" : "iops",
7aacca6f 15772 "optional" : 1,
44660702 15773 "type" : "integer"
56122987 15774 },
de0983cb
DM
15775 "iops_max_length" : {
15776 "description" : "Maximum length of I/O bursts in seconds.",
15777 "format_description" : "seconds",
15778 "minimum" : 1,
15779 "optional" : 1,
15780 "type" : "integer"
15781 },
44660702 15782 "iops_rd" : {
de0983cb 15783 "description" : "Maximum read I/O in operations per second.",
44660702 15784 "format_description" : "iops",
56122987 15785 "optional" : 1,
44660702 15786 "type" : "integer"
7aacca6f 15787 },
de0983cb 15788 "iops_rd_length" : {
5d9c884c 15789 "alias" : "iops_rd_max_length"
de0983cb 15790 },
44660702 15791 "iops_rd_max" : {
de0983cb 15792 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 15793 "format_description" : "iops",
56122987 15794 "optional" : 1,
44660702 15795 "type" : "integer"
56122987 15796 },
5d9c884c
DM
15797 "iops_rd_max_length" : {
15798 "description" : "Maximum length of read I/O bursts in seconds.",
15799 "format_description" : "seconds",
15800 "minimum" : 1,
15801 "optional" : 1,
15802 "type" : "integer"
15803 },
44660702 15804 "iops_wr" : {
de0983cb 15805 "description" : "Maximum write I/O in operations per second.",
44660702
DM
15806 "format_description" : "iops",
15807 "optional" : 1,
15808 "type" : "integer"
56122987 15809 },
de0983cb 15810 "iops_wr_length" : {
5d9c884c 15811 "alias" : "iops_wr_max_length"
de0983cb 15812 },
44660702 15813 "iops_wr_max" : {
de0983cb 15814 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
15815 "format_description" : "iops",
15816 "optional" : 1,
15817 "type" : "integer"
15818 },
5d9c884c
DM
15819 "iops_wr_max_length" : {
15820 "description" : "Maximum length of write I/O bursts in seconds.",
15821 "format_description" : "seconds",
15822 "minimum" : 1,
15823 "optional" : 1,
15824 "type" : "integer"
15825 },
44660702 15826 "mbps" : {
de0983cb 15827 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
15828 "format_description" : "mbps",
15829 "optional" : 1,
15830 "type" : "number"
15831 },
15832 "mbps_max" : {
de0983cb 15833 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
15834 "format_description" : "mbps",
15835 "optional" : 1,
15836 "type" : "number"
15837 },
15838 "mbps_rd" : {
de0983cb 15839 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
15840 "format_description" : "mbps",
15841 "optional" : 1,
15842 "type" : "number"
15843 },
15844 "mbps_rd_max" : {
de0983cb 15845 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
15846 "format_description" : "mbps",
15847 "optional" : 1,
15848 "type" : "number"
15849 },
15850 "mbps_wr" : {
de0983cb 15851 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
15852 "format_description" : "mbps",
15853 "optional" : 1,
15854 "type" : "number"
15855 },
15856 "mbps_wr_max" : {
de0983cb 15857 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
15858 "format_description" : "mbps",
15859 "optional" : 1,
15860 "type" : "number"
15861 },
15862 "media" : {
15863 "default" : "disk",
15864 "description" : "The drive's media type.",
15865 "enum" : [
15866 "cdrom",
15867 "disk"
15868 ],
56122987 15869 "optional" : 1,
44660702
DM
15870 "type" : "string"
15871 },
5d9c884c
DM
15872 "replicate" : {
15873 "default" : 1,
15874 "description" : "Whether the drive should considered for replication jobs.",
15875 "optional" : 1,
15876 "type" : "boolean"
15877 },
44660702 15878 "rerror" : {
7aacca6f
DM
15879 "description" : "Read error action.",
15880 "enum" : [
15881 "ignore",
15882 "report",
15883 "stop"
44660702 15884 ],
56122987 15885 "optional" : 1,
44660702 15886 "type" : "string"
56122987 15887 },
7aacca6f 15888 "secs" : {
44660702 15889 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 15890 "optional" : 1,
44660702 15891 "type" : "integer"
56122987 15892 },
44660702
DM
15893 "serial" : {
15894 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
15895 "format" : "urlencoded",
15896 "format_description" : "serial",
15897 "maxLength" : 60,
56122987 15898 "optional" : 1,
44660702 15899 "type" : "string"
56122987 15900 },
27a7acb2
DM
15901 "shared" : {
15902 "default" : 0,
15903 "description" : "Mark this locally-managed volume as available on all nodes",
15904 "optional" : 1,
15905 "type" : "boolean",
15906 "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!"
15907 },
44660702
DM
15908 "size" : {
15909 "description" : "Disk size. This is purely informational and has no effect.",
15910 "format" : "disk-size",
f004f5b9 15911 "format_description" : "DiskSize",
56122987 15912 "optional" : 1,
44660702 15913 "type" : "string"
56122987
DM
15914 },
15915 "snapshot" : {
27a7acb2 15916 "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 15917 "optional" : 1,
44660702 15918 "type" : "boolean"
56122987 15919 },
25203dc1
NC
15920 "ssd" : {
15921 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
15922 "optional" : 1,
15923 "type" : "boolean"
15924 },
56122987 15925 "trans" : {
7aacca6f 15926 "description" : "Force disk geometry bios translation mode.",
56122987
DM
15927 "enum" : [
15928 "none",
15929 "lba",
15930 "auto"
15931 ],
15932 "optional" : 1,
44660702 15933 "type" : "string"
56122987 15934 },
44660702
DM
15935 "volume" : {
15936 "alias" : "file"
56122987 15937 },
7aacca6f 15938 "werror" : {
44660702 15939 "description" : "Write error action.",
56122987 15940 "enum" : [
7aacca6f 15941 "enospc",
56122987 15942 "ignore",
7aacca6f
DM
15943 "report",
15944 "stop"
15945 ],
7aacca6f 15946 "optional" : 1,
44660702 15947 "type" : "string"
95895385
TL
15948 },
15949 "wwn" : {
15950 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
15951 "format_description" : "wwn",
15952 "optional" : 1,
15953 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
15954 "type" : "string"
44660702
DM
15955 }
15956 },
15957 "optional" : 1,
4bd7df8b 15958 "type" : "string",
8f4d9c87 15959 "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>] [,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
15960 },
15961 "scsi[n]" : {
d2656385 15962 "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.",
44660702
DM
15963 "format" : {
15964 "aio" : {
7aacca6f 15965 "description" : "AIO type to use.",
56122987
DM
15966 "enum" : [
15967 "native",
8f4d9c87
TL
15968 "threads",
15969 "io_uring"
44660702 15970 ],
56122987 15971 "optional" : 1,
44660702 15972 "type" : "string"
56122987 15973 },
7aacca6f 15974 "backup" : {
7aacca6f 15975 "description" : "Whether the drive should be included when making backups.",
7aacca6f 15976 "optional" : 1,
44660702 15977 "type" : "boolean"
56122987 15978 },
44660702 15979 "bps" : {
de0983cb 15980 "description" : "Maximum r/w speed in bytes per second.",
44660702 15981 "format_description" : "bps",
7aacca6f 15982 "optional" : 1,
44660702 15983 "type" : "integer"
7aacca6f 15984 },
de0983cb
DM
15985 "bps_max_length" : {
15986 "description" : "Maximum length of I/O bursts in seconds.",
15987 "format_description" : "seconds",
15988 "minimum" : 1,
15989 "optional" : 1,
15990 "type" : "integer"
15991 },
44660702 15992 "bps_rd" : {
de0983cb 15993 "description" : "Maximum read speed in bytes per second.",
44660702 15994 "format_description" : "bps",
56122987 15995 "optional" : 1,
44660702 15996 "type" : "integer"
56122987 15997 },
de0983cb 15998 "bps_rd_length" : {
5d9c884c
DM
15999 "alias" : "bps_rd_max_length"
16000 },
16001 "bps_rd_max_length" : {
de0983cb
DM
16002 "description" : "Maximum length of read I/O bursts in seconds.",
16003 "format_description" : "seconds",
16004 "minimum" : 1,
16005 "optional" : 1,
16006 "type" : "integer"
16007 },
44660702 16008 "bps_wr" : {
de0983cb 16009 "description" : "Maximum write speed in bytes per second.",
44660702 16010 "format_description" : "bps",
56122987 16011 "optional" : 1,
44660702 16012 "type" : "integer"
56122987 16013 },
de0983cb 16014 "bps_wr_length" : {
5d9c884c
DM
16015 "alias" : "bps_wr_max_length"
16016 },
16017 "bps_wr_max_length" : {
de0983cb
DM
16018 "description" : "Maximum length of write I/O bursts in seconds.",
16019 "format_description" : "seconds",
16020 "minimum" : 1,
16021 "optional" : 1,
16022 "type" : "integer"
16023 },
44660702
DM
16024 "cache" : {
16025 "description" : "The drive's cache mode",
16026 "enum" : [
16027 "none",
16028 "writethrough",
16029 "writeback",
16030 "unsafe",
16031 "directsync"
16032 ],
56122987 16033 "optional" : 1,
44660702
DM
16034 "type" : "string"
16035 },
16036 "cyls" : {
16037 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16038 "optional" : 1,
16039 "type" : "integer"
16040 },
16041 "detect_zeroes" : {
16042 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16043 "optional" : 1,
16044 "type" : "boolean"
16045 },
16046 "discard" : {
16047 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
16048 "enum" : [
16049 "ignore",
16050 "on"
16051 ],
44660702
DM
16052 "optional" : 1,
16053 "type" : "string"
16054 },
16055 "file" : {
16056 "default_key" : 1,
16057 "description" : "The drive's backing volume.",
16058 "format" : "pve-volume-id-or-qm-path",
16059 "format_description" : "volume",
16060 "type" : "string"
56122987 16061 },
7aacca6f 16062 "format" : {
44660702 16063 "description" : "The drive's backing file's data format.",
7aacca6f
DM
16064 "enum" : [
16065 "raw",
16066 "cow",
16067 "qcow",
16068 "qed",
16069 "qcow2",
16070 "vmdk",
16071 "cloop"
16072 ],
56122987 16073 "optional" : 1,
44660702 16074 "type" : "string"
56122987 16075 },
44660702
DM
16076 "heads" : {
16077 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 16078 "optional" : 1,
44660702 16079 "type" : "integer"
56122987 16080 },
44660702 16081 "iops" : {
de0983cb 16082 "description" : "Maximum r/w I/O in operations per second.",
44660702 16083 "format_description" : "iops",
7aacca6f 16084 "optional" : 1,
44660702 16085 "type" : "integer"
56122987 16086 },
44660702 16087 "iops_max" : {
de0983cb 16088 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
7aacca6f 16089 "format_description" : "iops",
7aacca6f 16090 "optional" : 1,
44660702 16091 "type" : "integer"
56122987 16092 },
de0983cb
DM
16093 "iops_max_length" : {
16094 "description" : "Maximum length of I/O bursts in seconds.",
16095 "format_description" : "seconds",
16096 "minimum" : 1,
16097 "optional" : 1,
16098 "type" : "integer"
16099 },
44660702 16100 "iops_rd" : {
de0983cb 16101 "description" : "Maximum read I/O in operations per second.",
44660702 16102 "format_description" : "iops",
56122987 16103 "optional" : 1,
44660702 16104 "type" : "integer"
56122987 16105 },
de0983cb 16106 "iops_rd_length" : {
5d9c884c 16107 "alias" : "iops_rd_max_length"
de0983cb 16108 },
44660702 16109 "iops_rd_max" : {
de0983cb 16110 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 16111 "format_description" : "iops",
56122987 16112 "optional" : 1,
44660702 16113 "type" : "integer"
56122987 16114 },
5d9c884c
DM
16115 "iops_rd_max_length" : {
16116 "description" : "Maximum length of read I/O bursts in seconds.",
16117 "format_description" : "seconds",
16118 "minimum" : 1,
16119 "optional" : 1,
16120 "type" : "integer"
16121 },
44660702 16122 "iops_wr" : {
de0983cb 16123 "description" : "Maximum write I/O in operations per second.",
44660702 16124 "format_description" : "iops",
56122987 16125 "optional" : 1,
44660702 16126 "type" : "integer"
56122987 16127 },
de0983cb 16128 "iops_wr_length" : {
5d9c884c 16129 "alias" : "iops_wr_max_length"
de0983cb 16130 },
44660702 16131 "iops_wr_max" : {
de0983cb 16132 "description" : "Maximum unthrottled write I/O pool in operations per second.",
7aacca6f 16133 "format_description" : "iops",
44660702
DM
16134 "optional" : 1,
16135 "type" : "integer"
7aacca6f 16136 },
5d9c884c
DM
16137 "iops_wr_max_length" : {
16138 "description" : "Maximum length of write I/O bursts in seconds.",
16139 "format_description" : "seconds",
16140 "minimum" : 1,
16141 "optional" : 1,
16142 "type" : "integer"
16143 },
7aacca6f 16144 "iothread" : {
44660702 16145 "description" : "Whether to use iothreads for this drive",
56122987 16146 "optional" : 1,
44660702 16147 "type" : "boolean"
56122987 16148 },
44660702 16149 "mbps" : {
de0983cb 16150 "description" : "Maximum r/w speed in megabytes per second.",
44660702 16151 "format_description" : "mbps",
56122987 16152 "optional" : 1,
44660702 16153 "type" : "number"
56122987 16154 },
44660702 16155 "mbps_max" : {
de0983cb 16156 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 16157 "format_description" : "mbps",
56122987 16158 "optional" : 1,
44660702 16159 "type" : "number"
56122987 16160 },
44660702 16161 "mbps_rd" : {
de0983cb 16162 "description" : "Maximum read speed in megabytes per second.",
44660702 16163 "format_description" : "mbps",
7aacca6f 16164 "optional" : 1,
44660702 16165 "type" : "number"
56122987 16166 },
44660702 16167 "mbps_rd_max" : {
de0983cb 16168 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 16169 "format_description" : "mbps",
7aacca6f 16170 "optional" : 1,
44660702 16171 "type" : "number"
7aacca6f 16172 },
44660702 16173 "mbps_wr" : {
de0983cb 16174 "description" : "Maximum write speed in megabytes per second.",
44660702 16175 "format_description" : "mbps",
56122987 16176 "optional" : 1,
44660702 16177 "type" : "number"
56122987 16178 },
44660702 16179 "mbps_wr_max" : {
de0983cb 16180 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 16181 "format_description" : "mbps",
56122987 16182 "optional" : 1,
44660702
DM
16183 "type" : "number"
16184 },
16185 "media" : {
16186 "default" : "disk",
16187 "description" : "The drive's media type.",
7aacca6f 16188 "enum" : [
44660702
DM
16189 "cdrom",
16190 "disk"
7aacca6f 16191 ],
56122987 16192 "optional" : 1,
44660702 16193 "type" : "string"
56122987 16194 },
7aacca6f 16195 "queues" : {
44660702 16196 "description" : "Number of queues.",
7aacca6f 16197 "minimum" : 2,
7aacca6f
DM
16198 "optional" : 1,
16199 "type" : "integer"
56122987 16200 },
5d9c884c
DM
16201 "replicate" : {
16202 "default" : 1,
16203 "description" : "Whether the drive should considered for replication jobs.",
16204 "optional" : 1,
16205 "type" : "boolean"
16206 },
16207 "rerror" : {
16208 "description" : "Read error action.",
16209 "enum" : [
16210 "ignore",
16211 "report",
16212 "stop"
16213 ],
16214 "optional" : 1,
16215 "type" : "string"
16216 },
5370fa8c
TL
16217 "ro" : {
16218 "description" : "Whether the drive is read-only.",
16219 "optional" : 1,
16220 "type" : "boolean"
16221 },
52e44c50
FG
16222 "scsiblock" : {
16223 "default" : 0,
16224 "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",
16225 "optional" : 1,
16226 "type" : "boolean"
16227 },
44660702
DM
16228 "secs" : {
16229 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 16230 "optional" : 1,
44660702 16231 "type" : "integer"
56122987 16232 },
44660702
DM
16233 "serial" : {
16234 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16235 "format" : "urlencoded",
16236 "format_description" : "serial",
16237 "maxLength" : 60,
56122987 16238 "optional" : 1,
44660702 16239 "type" : "string"
56122987 16240 },
27a7acb2
DM
16241 "shared" : {
16242 "default" : 0,
16243 "description" : "Mark this locally-managed volume as available on all nodes",
16244 "optional" : 1,
16245 "type" : "boolean",
16246 "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!"
16247 },
44660702
DM
16248 "size" : {
16249 "description" : "Disk size. This is purely informational and has no effect.",
16250 "format" : "disk-size",
f004f5b9 16251 "format_description" : "DiskSize",
44660702
DM
16252 "optional" : 1,
16253 "type" : "string"
16254 },
16255 "snapshot" : {
27a7acb2 16256 "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 16257 "optional" : 1,
44660702
DM
16258 "type" : "boolean"
16259 },
25203dc1
NC
16260 "ssd" : {
16261 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
16262 "optional" : 1,
16263 "type" : "boolean"
16264 },
44660702
DM
16265 "trans" : {
16266 "description" : "Force disk geometry bios translation mode.",
56122987 16267 "enum" : [
44660702
DM
16268 "none",
16269 "lba",
16270 "auto"
56122987 16271 ],
44660702
DM
16272 "optional" : 1,
16273 "type" : "string"
16274 },
16275 "volume" : {
16276 "alias" : "file"
56122987 16277 },
7aacca6f 16278 "werror" : {
7aacca6f
DM
16279 "description" : "Write error action.",
16280 "enum" : [
16281 "enospc",
16282 "ignore",
16283 "report",
16284 "stop"
44660702 16285 ],
56122987 16286 "optional" : 1,
7aacca6f 16287 "type" : "string"
95895385
TL
16288 },
16289 "wwn" : {
16290 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
16291 "format_description" : "wwn",
16292 "optional" : 1,
16293 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
16294 "type" : "string"
56122987 16295 }
44660702 16296 },
56122987 16297 "optional" : 1,
4bd7df8b 16298 "type" : "string",
5370fa8c 16299 "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>] [,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
16300 },
16301 "scsihw" : {
44660702 16302 "default" : "lsi",
c2993fe5 16303 "description" : "SCSI controller model",
56122987
DM
16304 "enum" : [
16305 "lsi",
16306 "lsi53c810",
16307 "virtio-scsi-pci",
16308 "virtio-scsi-single",
16309 "megasas",
16310 "pvscsi"
16311 ],
16312 "optional" : 1,
56122987
DM
16313 "type" : "string"
16314 },
27a7acb2 16315 "searchdomain" : {
4772952b 16316 "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
16317 "optional" : 1,
16318 "type" : "string",
16319 "typetext" : "<string>"
16320 },
44660702 16321 "serial[n]" : {
c2993fe5 16322 "description" : "Create a serial device inside the VM (n is 0 to 3)",
56122987 16323 "optional" : 1,
44660702 16324 "pattern" : "(/dev/.+|socket)",
c2993fe5 16325 "type" : "string",
4772952b 16326 "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 16327 },
44660702
DM
16328 "shares" : {
16329 "default" : 1000,
5da3d723 16330 "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
16331 "maximum" : 50000,
16332 "minimum" : 0,
7aacca6f 16333 "optional" : 1,
4bd7df8b 16334 "type" : "integer",
013dc89f 16335 "typetext" : "<integer> (0 - 50000)"
56122987 16336 },
7aacca6f
DM
16337 "skiplock" : {
16338 "description" : "Ignore locks - only root is allowed to use this option.",
44660702 16339 "optional" : 1,
013dc89f
DM
16340 "type" : "boolean",
16341 "typetext" : "<boolean>"
56122987 16342 },
44660702
DM
16343 "smbios1" : {
16344 "description" : "Specify SMBIOS type 1 fields.",
16345 "format" : "pve-qm-smbios1",
1e3f8156 16346 "maxLength" : 512,
56122987 16347 "optional" : 1,
4bd7df8b 16348 "type" : "string",
1e3f8156 16349 "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 16350 },
44660702
DM
16351 "smp" : {
16352 "default" : 1,
16353 "description" : "The number of CPUs. Please use option -sockets instead.",
16354 "minimum" : 1,
56122987 16355 "optional" : 1,
4bd7df8b 16356 "type" : "integer",
013dc89f 16357 "typetext" : "<integer> (1 - N)"
56122987 16358 },
44660702
DM
16359 "sockets" : {
16360 "default" : 1,
16361 "description" : "The number of CPU sockets.",
16362 "minimum" : 1,
56122987 16363 "optional" : 1,
4bd7df8b 16364 "type" : "integer",
013dc89f 16365 "typetext" : "<integer> (1 - N)"
56122987 16366 },
1c532546
TL
16367 "spice_enhancements" : {
16368 "description" : "Configure additional enhancements for SPICE.",
16369 "format" : {
16370 "foldersharing" : {
16371 "default" : "0",
16372 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
16373 "optional" : 1,
16374 "type" : "boolean"
16375 },
16376 "videostreaming" : {
16377 "default" : "off",
16378 "description" : "Enable video streaming. Uses compression for detected video streams.",
16379 "enum" : [
16380 "off",
16381 "all",
16382 "filter"
16383 ],
16384 "optional" : 1,
16385 "type" : "string"
16386 }
16387 },
16388 "optional" : 1,
16389 "type" : "string",
16390 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
16391 },
27a7acb2
DM
16392 "sshkeys" : {
16393 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
16394 "format" : "urlencoded",
16395 "optional" : 1,
16396 "type" : "string",
16397 "typetext" : "<string>"
16398 },
44660702
DM
16399 "startdate" : {
16400 "default" : "now",
4772952b 16401 "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
16402 "optional" : 1,
16403 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 16404 "type" : "string",
44660702
DM
16405 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
16406 },
16407 "startup" : {
16408 "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.",
16409 "format" : "pve-startup-order",
7aacca6f 16410 "optional" : 1,
44660702
DM
16411 "type" : "string",
16412 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
7aacca6f 16413 },
44660702
DM
16414 "tablet" : {
16415 "default" : 1,
c2993fe5 16416 "description" : "Enable/disable the USB tablet device.",
7aacca6f 16417 "optional" : 1,
c2993fe5 16418 "type" : "boolean",
013dc89f 16419 "typetext" : "<boolean>",
4772952b 16420 "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 16421 },
5c1699e5
TL
16422 "tags" : {
16423 "description" : "Tags of the VM. This is only meta information.",
16424 "format" : "pve-tag-list",
16425 "optional" : 1,
16426 "type" : "string",
16427 "typetext" : "<string>"
16428 },
44660702
DM
16429 "tdf" : {
16430 "default" : 0,
16431 "description" : "Enable/disable time drift fix.",
7aacca6f 16432 "optional" : 1,
013dc89f
DM
16433 "type" : "boolean",
16434 "typetext" : "<boolean>"
7aacca6f 16435 },
44660702
DM
16436 "template" : {
16437 "default" : 0,
16438 "description" : "Enable/disable Template.",
7aacca6f 16439 "optional" : 1,
013dc89f
DM
16440 "type" : "boolean",
16441 "typetext" : "<boolean>"
7aacca6f 16442 },
5370fa8c
TL
16443 "tpmstate0" : {
16444 "description" : "Configure a Disk for storing TPM state. 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 size of 4 MiB will always be used instead. The format is also fixed to 'raw'.",
16445 "format" : {
16446 "file" : {
16447 "default_key" : 1,
16448 "description" : "The drive's backing volume.",
16449 "format" : "pve-volume-id-or-qm-path",
16450 "format_description" : "volume",
16451 "type" : "string"
16452 },
16453 "size" : {
16454 "description" : "Disk size. This is purely informational and has no effect.",
16455 "format" : "disk-size",
16456 "format_description" : "DiskSize",
16457 "optional" : 1,
16458 "type" : "string"
16459 },
16460 "version" : {
16461 "default" : "v2.0",
16462 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
16463 "enum" : [
16464 "v1.2",
16465 "v2.0"
16466 ],
16467 "optional" : 1,
16468 "type" : "string"
16469 },
16470 "volume" : {
16471 "alias" : "file"
16472 }
16473 },
16474 "optional" : 1,
16475 "type" : "string",
16476 "typetext" : "[file=]<volume> [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
16477 },
44660702 16478 "unused[n]" : {
c2993fe5 16479 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
16480 "format" : {
16481 "file" : {
16482 "default_key" : 1,
16483 "description" : "The drive's backing volume.",
16484 "format" : "pve-volume-id",
16485 "format_description" : "volume",
16486 "type" : "string"
16487 },
16488 "volume" : {
16489 "alias" : "file"
16490 }
16491 },
7aacca6f 16492 "optional" : 1,
013dc89f 16493 "type" : "string",
c5aa7e14 16494 "typetext" : "[file=]<volume>"
7aacca6f 16495 },
44660702 16496 "usb[n]" : {
c2993fe5 16497 "description" : "Configure an USB device (n is 0 to 4).",
56122987 16498 "format" : {
44660702
DM
16499 "host" : {
16500 "default_key" : 1,
4772952b 16501 "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
16502 "format" : "pve-qm-usb-device",
16503 "format_description" : "HOSTUSBDEVICE|spice",
16504 "type" : "string"
7aacca6f 16505 },
44660702 16506 "usb3" : {
c2993fe5 16507 "default" : 0,
1c532546 16508 "description" : "Specifies whether if given host option is a USB3 device or port.",
7aacca6f 16509 "optional" : 1,
44660702 16510 "type" : "boolean"
7aacca6f 16511 }
44660702 16512 },
7aacca6f 16513 "optional" : 1,
4bd7df8b
DM
16514 "type" : "string",
16515 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
7aacca6f 16516 },
44660702 16517 "vcpus" : {
7aacca6f 16518 "default" : 0,
44660702
DM
16519 "description" : "Number of hotplugged vcpus.",
16520 "minimum" : 1,
7aacca6f 16521 "optional" : 1,
4bd7df8b 16522 "type" : "integer",
013dc89f 16523 "typetext" : "<integer> (1 - N)"
7aacca6f 16524 },
44660702 16525 "vga" : {
e2d681b3
TL
16526 "description" : "Configure the VGA hardware.",
16527 "format" : {
16528 "memory" : {
16529 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
16530 "maximum" : 512,
16531 "minimum" : 4,
16532 "optional" : 1,
16533 "type" : "integer"
16534 },
16535 "type" : {
16536 "default" : "std",
16537 "default_key" : 1,
16538 "description" : "Select the VGA type.",
16539 "enum" : [
16540 "cirrus",
16541 "qxl",
16542 "qxl2",
16543 "qxl3",
16544 "qxl4",
5f26e15b 16545 "none",
e2d681b3
TL
16546 "serial0",
16547 "serial1",
16548 "serial2",
16549 "serial3",
16550 "std",
16551 "virtio",
16552 "vmware"
16553 ],
16554 "optional" : 1,
16555 "type" : "string"
16556 }
16557 },
7aacca6f 16558 "optional" : 1,
c2993fe5 16559 "type" : "string",
e2d681b3
TL
16560 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
16561 "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 16562 },
44660702 16563 "virtio[n]" : {
d2656385 16564 "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.",
7aacca6f 16565 "format" : {
7aacca6f 16566 "aio" : {
7aacca6f 16567 "description" : "AIO type to use.",
56122987 16568 "enum" : [
7aacca6f 16569 "native",
8f4d9c87
TL
16570 "threads",
16571 "io_uring"
7aacca6f 16572 ],
44660702
DM
16573 "optional" : 1,
16574 "type" : "string"
56122987 16575 },
44660702
DM
16576 "backup" : {
16577 "description" : "Whether the drive should be included when making backups.",
56122987 16578 "optional" : 1,
44660702 16579 "type" : "boolean"
7aacca6f 16580 },
44660702 16581 "bps" : {
de0983cb 16582 "description" : "Maximum r/w speed in bytes per second.",
44660702 16583 "format_description" : "bps",
7aacca6f 16584 "optional" : 1,
44660702 16585 "type" : "integer"
56122987 16586 },
de0983cb
DM
16587 "bps_max_length" : {
16588 "description" : "Maximum length of I/O bursts in seconds.",
16589 "format_description" : "seconds",
16590 "minimum" : 1,
16591 "optional" : 1,
16592 "type" : "integer"
16593 },
56122987 16594 "bps_rd" : {
de0983cb 16595 "description" : "Maximum read speed in bytes per second.",
44660702 16596 "format_description" : "bps",
56122987 16597 "optional" : 1,
7aacca6f 16598 "type" : "integer"
56122987 16599 },
de0983cb 16600 "bps_rd_length" : {
5d9c884c
DM
16601 "alias" : "bps_rd_max_length"
16602 },
16603 "bps_rd_max_length" : {
de0983cb
DM
16604 "description" : "Maximum length of read I/O bursts in seconds.",
16605 "format_description" : "seconds",
16606 "minimum" : 1,
16607 "optional" : 1,
16608 "type" : "integer"
16609 },
44660702 16610 "bps_wr" : {
de0983cb 16611 "description" : "Maximum write speed in bytes per second.",
44660702 16612 "format_description" : "bps",
56122987 16613 "optional" : 1,
7aacca6f 16614 "type" : "integer"
56122987 16615 },
de0983cb 16616 "bps_wr_length" : {
5d9c884c
DM
16617 "alias" : "bps_wr_max_length"
16618 },
16619 "bps_wr_max_length" : {
de0983cb
DM
16620 "description" : "Maximum length of write I/O bursts in seconds.",
16621 "format_description" : "seconds",
16622 "minimum" : 1,
16623 "optional" : 1,
16624 "type" : "integer"
16625 },
7aacca6f 16626 "cache" : {
44660702 16627 "description" : "The drive's cache mode",
7aacca6f
DM
16628 "enum" : [
16629 "none",
16630 "writethrough",
16631 "writeback",
16632 "unsafe",
16633 "directsync"
16634 ],
56122987 16635 "optional" : 1,
44660702 16636 "type" : "string"
7aacca6f 16637 },
44660702
DM
16638 "cyls" : {
16639 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16640 "optional" : 1,
16641 "type" : "integer"
16642 },
16643 "detect_zeroes" : {
16644 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16645 "optional" : 1,
16646 "type" : "boolean"
16647 },
16648 "discard" : {
16649 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 16650 "enum" : [
44660702
DM
16651 "ignore",
16652 "on"
56122987
DM
16653 ],
16654 "optional" : 1,
44660702 16655 "type" : "string"
56122987 16656 },
44660702
DM
16657 "file" : {
16658 "default_key" : 1,
16659 "description" : "The drive's backing volume.",
16660 "format" : "pve-volume-id-or-qm-path",
16661 "format_description" : "volume",
16662 "type" : "string"
16663 },
16664 "format" : {
16665 "description" : "The drive's backing file's data format.",
16666 "enum" : [
16667 "raw",
16668 "cow",
16669 "qcow",
16670 "qed",
16671 "qcow2",
16672 "vmdk",
16673 "cloop"
16674 ],
56122987 16675 "optional" : 1,
44660702 16676 "type" : "string"
56122987 16677 },
44660702
DM
16678 "heads" : {
16679 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
16680 "optional" : 1,
16681 "type" : "integer"
16682 },
16683 "iops" : {
de0983cb 16684 "description" : "Maximum r/w I/O in operations per second.",
44660702 16685 "format_description" : "iops",
56122987 16686 "optional" : 1,
44660702
DM
16687 "type" : "integer"
16688 },
16689 "iops_max" : {
de0983cb 16690 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
16691 "format_description" : "iops",
16692 "optional" : 1,
16693 "type" : "integer"
56122987 16694 },
de0983cb
DM
16695 "iops_max_length" : {
16696 "description" : "Maximum length of I/O bursts in seconds.",
16697 "format_description" : "seconds",
16698 "minimum" : 1,
16699 "optional" : 1,
16700 "type" : "integer"
16701 },
7aacca6f 16702 "iops_rd" : {
de0983cb 16703 "description" : "Maximum read I/O in operations per second.",
7aacca6f 16704 "format_description" : "iops",
7aacca6f 16705 "optional" : 1,
44660702 16706 "type" : "integer"
56122987 16707 },
de0983cb 16708 "iops_rd_length" : {
5d9c884c 16709 "alias" : "iops_rd_max_length"
de0983cb 16710 },
44660702 16711 "iops_rd_max" : {
de0983cb 16712 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
16713 "format_description" : "iops",
16714 "optional" : 1,
16715 "type" : "integer"
16716 },
5d9c884c
DM
16717 "iops_rd_max_length" : {
16718 "description" : "Maximum length of read I/O bursts in seconds.",
16719 "format_description" : "seconds",
16720 "minimum" : 1,
16721 "optional" : 1,
16722 "type" : "integer"
16723 },
44660702 16724 "iops_wr" : {
de0983cb 16725 "description" : "Maximum write I/O in operations per second.",
44660702
DM
16726 "format_description" : "iops",
16727 "optional" : 1,
16728 "type" : "integer"
16729 },
de0983cb 16730 "iops_wr_length" : {
5d9c884c 16731 "alias" : "iops_wr_max_length"
de0983cb 16732 },
44660702 16733 "iops_wr_max" : {
de0983cb 16734 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
16735 "format_description" : "iops",
16736 "optional" : 1,
16737 "type" : "integer"
16738 },
5d9c884c
DM
16739 "iops_wr_max_length" : {
16740 "description" : "Maximum length of write I/O bursts in seconds.",
16741 "format_description" : "seconds",
16742 "minimum" : 1,
16743 "optional" : 1,
16744 "type" : "integer"
16745 },
44660702
DM
16746 "iothread" : {
16747 "description" : "Whether to use iothreads for this drive",
44660702
DM
16748 "optional" : 1,
16749 "type" : "boolean"
16750 },
16751 "mbps" : {
de0983cb 16752 "description" : "Maximum r/w speed in megabytes per second.",
44660702 16753 "format_description" : "mbps",
7aacca6f 16754 "optional" : 1,
44660702 16755 "type" : "number"
7aacca6f
DM
16756 },
16757 "mbps_max" : {
de0983cb 16758 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 16759 "format_description" : "mbps",
56122987 16760 "optional" : 1,
44660702 16761 "type" : "number"
56122987 16762 },
44660702 16763 "mbps_rd" : {
de0983cb 16764 "description" : "Maximum read speed in megabytes per second.",
44660702 16765 "format_description" : "mbps",
56122987 16766 "optional" : 1,
44660702 16767 "type" : "number"
56122987 16768 },
44660702 16769 "mbps_rd_max" : {
de0983cb 16770 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
16771 "format_description" : "mbps",
16772 "optional" : 1,
16773 "type" : "number"
16774 },
16775 "mbps_wr" : {
de0983cb 16776 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
16777 "format_description" : "mbps",
16778 "optional" : 1,
16779 "type" : "number"
16780 },
16781 "mbps_wr_max" : {
de0983cb 16782 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
16783 "format_description" : "mbps",
16784 "optional" : 1,
16785 "type" : "number"
16786 },
16787 "media" : {
16788 "default" : "disk",
16789 "description" : "The drive's media type.",
56122987 16790 "enum" : [
44660702
DM
16791 "cdrom",
16792 "disk"
56122987
DM
16793 ],
16794 "optional" : 1,
44660702 16795 "type" : "string"
56122987 16796 },
5d9c884c
DM
16797 "replicate" : {
16798 "default" : 1,
16799 "description" : "Whether the drive should considered for replication jobs.",
16800 "optional" : 1,
16801 "type" : "boolean"
16802 },
44660702
DM
16803 "rerror" : {
16804 "description" : "Read error action.",
16805 "enum" : [
16806 "ignore",
16807 "report",
16808 "stop"
16809 ],
56122987 16810 "optional" : 1,
44660702 16811 "type" : "string"
56122987 16812 },
5370fa8c
TL
16813 "ro" : {
16814 "description" : "Whether the drive is read-only.",
16815 "optional" : 1,
16816 "type" : "boolean"
16817 },
44660702
DM
16818 "secs" : {
16819 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 16820 "optional" : 1,
44660702 16821 "type" : "integer"
56122987 16822 },
7aacca6f
DM
16823 "serial" : {
16824 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
7aacca6f 16825 "format" : "urlencoded",
44660702 16826 "format_description" : "serial",
7aacca6f 16827 "maxLength" : 60,
44660702
DM
16828 "optional" : 1,
16829 "type" : "string"
56122987 16830 },
27a7acb2
DM
16831 "shared" : {
16832 "default" : 0,
16833 "description" : "Mark this locally-managed volume as available on all nodes",
16834 "optional" : 1,
16835 "type" : "boolean",
16836 "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!"
16837 },
44660702
DM
16838 "size" : {
16839 "description" : "Disk size. This is purely informational and has no effect.",
16840 "format" : "disk-size",
f004f5b9 16841 "format_description" : "DiskSize",
44660702
DM
16842 "optional" : 1,
16843 "type" : "string"
56122987 16844 },
44660702 16845 "snapshot" : {
27a7acb2 16846 "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 16847 "optional" : 1,
44660702 16848 "type" : "boolean"
56122987 16849 },
44660702
DM
16850 "trans" : {
16851 "description" : "Force disk geometry bios translation mode.",
16852 "enum" : [
16853 "none",
16854 "lba",
16855 "auto"
16856 ],
7aacca6f 16857 "optional" : 1,
44660702 16858 "type" : "string"
7aacca6f 16859 },
44660702
DM
16860 "volume" : {
16861 "alias" : "file"
16862 },
16863 "werror" : {
16864 "description" : "Write error action.",
16865 "enum" : [
16866 "enospc",
16867 "ignore",
16868 "report",
16869 "stop"
16870 ],
7aacca6f 16871 "optional" : 1,
44660702 16872 "type" : "string"
56122987
DM
16873 }
16874 },
7aacca6f 16875 "optional" : 1,
4bd7df8b 16876 "type" : "string",
5370fa8c 16877 "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>] [,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 16878 },
4d47f125
TL
16879 "vmgenid" : {
16880 "default" : "1 (autogenerated)",
16881 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
16882 "format_description" : "UUID",
16883 "optional" : 1,
16884 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
16885 "type" : "string",
4772952b 16886 "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 16887 },
44660702
DM
16888 "vmid" : {
16889 "description" : "The (unique) ID of the VM.",
16890 "format" : "pve-vmid",
16891 "minimum" : 1,
4bd7df8b 16892 "type" : "integer",
013dc89f 16893 "typetext" : "<integer> (1 - N)"
56122987 16894 },
2489d6df
WB
16895 "vmstatestorage" : {
16896 "description" : "Default storage for VM state volumes/files.",
16897 "format" : "pve-storage-id",
16898 "optional" : 1,
16899 "type" : "string",
16900 "typetext" : "<string>"
16901 },
44660702 16902 "watchdog" : {
c2993fe5 16903 "description" : "Create a virtual hardware watchdog device.",
44660702 16904 "format" : "pve-qm-watchdog",
56122987 16905 "optional" : 1,
c2993fe5 16906 "type" : "string",
013dc89f 16907 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 16908 "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 16909 }
7aacca6f 16910 }
56122987 16911 },
56122987
DM
16912 "permissions" : {
16913 "check" : [
16914 "perm",
16915 "/vms/{vmid}",
16916 [
16917 "VM.Config.Disk",
16918 "VM.Config.CDROM",
16919 "VM.Config.CPU",
16920 "VM.Config.Memory",
16921 "VM.Config.Network",
16922 "VM.Config.HWType",
ac70d7d1
TL
16923 "VM.Config.Options",
16924 "VM.Config.Cloudinit"
56122987
DM
16925 ],
16926 "any",
16927 1
16928 ]
16929 },
44660702 16930 "protected" : 1,
7aacca6f 16931 "proxyto" : "node",
56122987 16932 "returns" : {
4d47f125
TL
16933 "optional" : 1,
16934 "type" : "string"
7aacca6f 16935 }
4d47f125
TL
16936 },
16937 "PUT" : {
e9cd3bd4 16938 "allowtoken" : 1,
4d47f125
TL
16939 "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
16940 "method" : "PUT",
16941 "name" : "update_vm",
7aacca6f 16942 "parameters" : {
44660702 16943 "additionalProperties" : 0,
7aacca6f 16944 "properties" : {
4d47f125
TL
16945 "acpi" : {
16946 "default" : 1,
16947 "description" : "Enable/disable ACPI.",
16948 "optional" : 1,
16949 "type" : "boolean",
16950 "typetext" : "<boolean>"
7aacca6f 16951 },
4d47f125 16952 "agent" : {
5370fa8c 16953 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
16954 "format" : {
16955 "enabled" : {
16956 "default" : 0,
16957 "default_key" : 1,
5370fa8c 16958 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
16959 "type" : "boolean"
16960 },
16961 "fstrim_cloned_disks" : {
16962 "default" : 0,
d2656385 16963 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
16964 "optional" : 1,
16965 "type" : "boolean"
5c1699e5
TL
16966 },
16967 "type" : {
16968 "default" : "virtio",
16969 "description" : "Select the agent type",
16970 "enum" : [
16971 "virtio",
16972 "isa"
16973 ],
16974 "optional" : 1,
16975 "type" : "string"
4d47f125 16976 }
44660702 16977 },
4d47f125
TL
16978 "optional" : 1,
16979 "type" : "string",
5c1699e5 16980 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
44660702 16981 },
e2d681b3
TL
16982 "arch" : {
16983 "description" : "Virtual processor architecture. Defaults to the host.",
16984 "enum" : [
16985 "x86_64",
16986 "aarch64"
16987 ],
16988 "optional" : 1,
16989 "type" : "string"
16990 },
4d47f125
TL
16991 "args" : {
16992 "description" : "Arbitrary arguments passed to kvm.",
16993 "optional" : 1,
16994 "type" : "string",
16995 "typetext" : "<string>",
16996 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
16997 },
1c532546
TL
16998 "audio0" : {
16999 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
17000 "format" : {
17001 "device" : {
17002 "description" : "Configure an audio device.",
17003 "enum" : [
17004 "ich9-intel-hda",
17005 "intel-hda",
17006 "AC97"
17007 ],
17008 "type" : "string"
17009 },
17010 "driver" : {
17011 "default" : "spice",
17012 "description" : "Driver backend for the audio device.",
17013 "enum" : [
d2656385
TL
17014 "spice",
17015 "none"
1c532546
TL
17016 ],
17017 "optional" : 1,
17018 "type" : "string"
17019 }
17020 },
17021 "optional" : 1,
17022 "type" : "string",
d2656385 17023 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 17024 },
4d47f125
TL
17025 "autostart" : {
17026 "default" : 0,
17027 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 17028 "optional" : 1,
013dc89f
DM
17029 "type" : "boolean",
17030 "typetext" : "<boolean>"
7aacca6f 17031 },
4d47f125
TL
17032 "balloon" : {
17033 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
17034 "minimum" : 0,
17035 "optional" : 1,
17036 "type" : "integer",
17037 "typetext" : "<integer> (0 - N)"
17038 },
17039 "bios" : {
17040 "default" : "seabios",
17041 "description" : "Select BIOS implementation.",
17042 "enum" : [
17043 "seabios",
17044 "ovmf"
17045 ],
17046 "optional" : 1,
17047 "type" : "string"
17048 },
17049 "boot" : {
5370fa8c 17050 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 17051 "format" : "pve-qm-boot",
4d47f125 17052 "optional" : 1,
4772952b
TL
17053 "type" : "string",
17054 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
4d47f125
TL
17055 },
17056 "bootdisk" : {
4772952b 17057 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
4d47f125
TL
17058 "format" : "pve-qm-bootdisk",
17059 "optional" : 1,
17060 "pattern" : "(ide|sata|scsi|virtio)\\d+",
17061 "type" : "string"
17062 },
17063 "cdrom" : {
17064 "description" : "This is an alias for option -ide2",
17065 "format" : "pve-qm-ide",
17066 "optional" : 1,
17067 "type" : "string",
17068 "typetext" : "<volume>"
17069 },
95895385
TL
17070 "cicustom" : {
17071 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
17072 "format" : "pve-qm-cicustom",
17073 "optional" : 1,
17074 "type" : "string",
5370fa8c 17075 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 17076 },
4d47f125
TL
17077 "cipassword" : {
17078 "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.",
17079 "optional" : 1,
013dc89f
DM
17080 "type" : "string",
17081 "typetext" : "<string>"
44660702 17082 },
4d47f125
TL
17083 "citype" : {
17084 "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.",
17085 "enum" : [
17086 "configdrive2",
d2656385
TL
17087 "nocloud",
17088 "opennebula"
4d47f125
TL
17089 ],
17090 "optional" : 1,
17091 "type" : "string"
17092 },
17093 "ciuser" : {
17094 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
17095 "optional" : 1,
013dc89f
DM
17096 "type" : "string",
17097 "typetext" : "<string>"
56122987 17098 },
4d47f125
TL
17099 "cores" : {
17100 "default" : 1,
17101 "description" : "The number of cores per socket.",
7aacca6f 17102 "minimum" : 1,
4d47f125 17103 "optional" : 1,
4bd7df8b 17104 "type" : "integer",
013dc89f 17105 "typetext" : "<integer> (1 - N)"
4d47f125
TL
17106 },
17107 "cpu" : {
17108 "description" : "Emulated CPU type.",
c5aa7e14 17109 "format" : "pve-vm-cpu-conf",
4d47f125 17110 "optional" : 1,
013dc89f 17111 "type" : "string",
04d22a9f 17112 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702 17113 },
4d47f125
TL
17114 "cpulimit" : {
17115 "default" : 0,
17116 "description" : "Limit of CPU usage.",
17117 "maximum" : 128,
17118 "minimum" : 0,
17119 "optional" : 1,
17120 "type" : "number",
17121 "typetext" : "<number> (0 - 128)",
17122 "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."
17123 },
17124 "cpuunits" : {
5370fa8c
TL
17125 "default" : "cgroup v1: 1024, cgroup v2: 100",
17126 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
17127 "maximum" : 262144,
17128 "minimum" : 2,
17129 "optional" : 1,
4bd7df8b 17130 "type" : "integer",
4d47f125
TL
17131 "typetext" : "<integer> (2 - 262144)",
17132 "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 17133 },
4d47f125
TL
17134 "delete" : {
17135 "description" : "A list of settings you want to delete.",
17136 "format" : "pve-configid-list",
17137 "optional" : 1,
17138 "type" : "string",
17139 "typetext" : "<string>"
17140 },
17141 "description" : {
8f4d9c87
TL
17142 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
17143 "maxLength" : 8192,
4d47f125
TL
17144 "optional" : 1,
17145 "type" : "string",
17146 "typetext" : "<string>"
17147 },
17148 "digest" : {
17149 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
17150 "maxLength" : 40,
44660702 17151 "optional" : 1,
4d47f125
TL
17152 "type" : "string",
17153 "typetext" : "<string>"
17154 },
17155 "efidisk0" : {
d2656385 17156 "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.",
4d47f125 17157 "format" : {
5370fa8c
TL
17158 "efitype" : {
17159 "default" : "2m",
17160 "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.",
17161 "enum" : [
17162 "2m",
17163 "4m"
17164 ],
17165 "optional" : 1,
17166 "type" : "string"
17167 },
4d47f125
TL
17168 "file" : {
17169 "default_key" : 1,
17170 "description" : "The drive's backing volume.",
17171 "format" : "pve-volume-id-or-qm-path",
17172 "format_description" : "volume",
17173 "type" : "string"
17174 },
17175 "format" : {
17176 "description" : "The drive's backing file's data format.",
17177 "enum" : [
17178 "raw",
17179 "cow",
17180 "qcow",
17181 "qed",
17182 "qcow2",
17183 "vmdk",
17184 "cloop"
17185 ],
17186 "optional" : 1,
17187 "type" : "string"
17188 },
5370fa8c
TL
17189 "pre-enrolled-keys" : {
17190 "default" : 0,
17191 "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.",
17192 "optional" : 1,
17193 "type" : "boolean"
17194 },
4d47f125
TL
17195 "size" : {
17196 "description" : "Disk size. This is purely informational and has no effect.",
17197 "format" : "disk-size",
17198 "format_description" : "DiskSize",
17199 "optional" : 1,
17200 "type" : "string"
17201 },
17202 "volume" : {
17203 "alias" : "file"
17204 }
17205 },
17206 "optional" : 1,
17207 "type" : "string",
5370fa8c 17208 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125
TL
17209 },
17210 "force" : {
17211 "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.",
17212 "optional" : 1,
17213 "requires" : "delete",
013dc89f
DM
17214 "type" : "boolean",
17215 "typetext" : "<boolean>"
56122987 17216 },
4d47f125
TL
17217 "freeze" : {
17218 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
17219 "optional" : 1,
17220 "type" : "boolean",
17221 "typetext" : "<boolean>"
7aacca6f 17222 },
5f26e15b
TL
17223 "hookscript" : {
17224 "description" : "Script that will be executed during various steps in the vms lifetime.",
17225 "format" : "pve-volume-id",
17226 "optional" : 1,
17227 "type" : "string",
17228 "typetext" : "<string>"
17229 },
4d47f125
TL
17230 "hostpci[n]" : {
17231 "description" : "Map host PCI devices into guest.",
17232 "format" : "pve-qm-hostpci",
17233 "optional" : 1,
17234 "type" : "string",
ac70d7d1 17235 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,x-vga=<1|0>]",
bb4c8cf8 17236 "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 17237 },
4d47f125
TL
17238 "hotplug" : {
17239 "default" : "network,disk,usb",
5370fa8c 17240 "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
17241 "format" : "pve-hotplug-features",
17242 "optional" : 1,
35a75dd3
DM
17243 "type" : "string",
17244 "typetext" : "<string>"
17245 },
4d47f125
TL
17246 "hugepages" : {
17247 "description" : "Enable/disable hugepages memory.",
35a75dd3 17248 "enum" : [
4d47f125
TL
17249 "any",
17250 "2",
17251 "1024"
35a75dd3
DM
17252 ],
17253 "optional" : 1,
17254 "type" : "string"
17255 },
4d47f125 17256 "ide[n]" : {
d2656385 17257 "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.",
4d47f125
TL
17258 "format" : {
17259 "aio" : {
17260 "description" : "AIO type to use.",
17261 "enum" : [
17262 "native",
8f4d9c87
TL
17263 "threads",
17264 "io_uring"
4d47f125 17265 ],
44660702 17266 "optional" : 1,
44660702
DM
17267 "type" : "string"
17268 },
4d47f125
TL
17269 "backup" : {
17270 "description" : "Whether the drive should be included when making backups.",
56122987 17271 "optional" : 1,
4d47f125 17272 "type" : "boolean"
56122987 17273 },
4d47f125
TL
17274 "bps" : {
17275 "description" : "Maximum r/w speed in bytes per second.",
17276 "format_description" : "bps",
de0983cb 17277 "optional" : 1,
4d47f125 17278 "type" : "integer"
de0983cb 17279 },
4d47f125
TL
17280 "bps_max_length" : {
17281 "description" : "Maximum length of I/O bursts in seconds.",
17282 "format_description" : "seconds",
17283 "minimum" : 1,
de0983cb 17284 "optional" : 1,
4d47f125 17285 "type" : "integer"
7aacca6f 17286 },
4d47f125
TL
17287 "bps_rd" : {
17288 "description" : "Maximum read speed in bytes per second.",
17289 "format_description" : "bps",
7aacca6f 17290 "optional" : 1,
4d47f125 17291 "type" : "integer"
56122987 17292 },
4d47f125
TL
17293 "bps_rd_length" : {
17294 "alias" : "bps_rd_max_length"
17295 },
17296 "bps_rd_max_length" : {
17297 "description" : "Maximum length of read I/O bursts in seconds.",
17298 "format_description" : "seconds",
17299 "minimum" : 1,
56122987 17300 "optional" : 1,
4d47f125 17301 "type" : "integer"
56122987 17302 },
4d47f125
TL
17303 "bps_wr" : {
17304 "description" : "Maximum write speed in bytes per second.",
17305 "format_description" : "bps",
52e44c50 17306 "optional" : 1,
4d47f125 17307 "type" : "integer"
52e44c50 17308 },
4d47f125
TL
17309 "bps_wr_length" : {
17310 "alias" : "bps_wr_max_length"
17311 },
17312 "bps_wr_max_length" : {
17313 "description" : "Maximum length of write I/O bursts in seconds.",
17314 "format_description" : "seconds",
44660702 17315 "minimum" : 1,
56122987 17316 "optional" : 1,
4d47f125 17317 "type" : "integer"
56122987 17318 },
4d47f125
TL
17319 "cache" : {
17320 "description" : "The drive's cache mode",
17321 "enum" : [
17322 "none",
17323 "writethrough",
17324 "writeback",
17325 "unsafe",
17326 "directsync"
17327 ],
7aacca6f 17328 "optional" : 1,
4d47f125 17329 "type" : "string"
7aacca6f 17330 },
4d47f125
TL
17331 "cyls" : {
17332 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
17333 "optional" : 1,
17334 "type" : "integer"
56122987 17335 },
4d47f125
TL
17336 "detect_zeroes" : {
17337 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 17338 "optional" : 1,
4d47f125 17339 "type" : "boolean"
56122987 17340 },
4d47f125
TL
17341 "discard" : {
17342 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17343 "enum" : [
17344 "ignore",
17345 "on"
17346 ],
56122987 17347 "optional" : 1,
4d47f125 17348 "type" : "string"
7aacca6f 17349 },
4d47f125
TL
17350 "file" : {
17351 "default_key" : 1,
17352 "description" : "The drive's backing volume.",
17353 "format" : "pve-volume-id-or-qm-path",
17354 "format_description" : "volume",
17355 "type" : "string"
56122987 17356 },
4d47f125
TL
17357 "format" : {
17358 "description" : "The drive's backing file's data format.",
17359 "enum" : [
17360 "raw",
17361 "cow",
17362 "qcow",
17363 "qed",
17364 "qcow2",
17365 "vmdk",
17366 "cloop"
17367 ],
7aacca6f 17368 "optional" : 1,
4d47f125 17369 "type" : "string"
7aacca6f 17370 },
4d47f125
TL
17371 "heads" : {
17372 "description" : "Force the drive's physical geometry to have a specific head count.",
7aacca6f 17373 "optional" : 1,
4d47f125 17374 "type" : "integer"
56122987 17375 },
4d47f125
TL
17376 "iops" : {
17377 "description" : "Maximum r/w I/O in operations per second.",
17378 "format_description" : "iops",
44660702 17379 "optional" : 1,
4d47f125 17380 "type" : "integer"
44660702 17381 },
4d47f125
TL
17382 "iops_max" : {
17383 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
17384 "format_description" : "iops",
44660702 17385 "optional" : 1,
4d47f125 17386 "type" : "integer"
56122987 17387 },
4d47f125
TL
17388 "iops_max_length" : {
17389 "description" : "Maximum length of I/O bursts in seconds.",
17390 "format_description" : "seconds",
17391 "minimum" : 1,
7aacca6f 17392 "optional" : 1,
4d47f125 17393 "type" : "integer"
7aacca6f 17394 },
4d47f125
TL
17395 "iops_rd" : {
17396 "description" : "Maximum read I/O in operations per second.",
17397 "format_description" : "iops",
17398 "optional" : 1,
17399 "type" : "integer"
17400 },
17401 "iops_rd_length" : {
17402 "alias" : "iops_rd_max_length"
17403 },
17404 "iops_rd_max" : {
17405 "description" : "Maximum unthrottled read I/O pool in operations per second.",
17406 "format_description" : "iops",
17407 "optional" : 1,
17408 "type" : "integer"
17409 },
17410 "iops_rd_max_length" : {
17411 "description" : "Maximum length of read I/O bursts in seconds.",
17412 "format_description" : "seconds",
44660702 17413 "minimum" : 1,
4d47f125
TL
17414 "optional" : 1,
17415 "type" : "integer"
7aacca6f 17416 },
4d47f125
TL
17417 "iops_wr" : {
17418 "description" : "Maximum write I/O in operations per second.",
17419 "format_description" : "iops",
44660702 17420 "optional" : 1,
4d47f125 17421 "type" : "integer"
44660702 17422 },
4d47f125
TL
17423 "iops_wr_length" : {
17424 "alias" : "iops_wr_max_length"
17425 },
17426 "iops_wr_max" : {
17427 "description" : "Maximum unthrottled write I/O pool in operations per second.",
17428 "format_description" : "iops",
17429 "optional" : 1,
17430 "type" : "integer"
17431 },
17432 "iops_wr_max_length" : {
17433 "description" : "Maximum length of write I/O bursts in seconds.",
17434 "format_description" : "seconds",
44660702 17435 "minimum" : 1,
44660702 17436 "optional" : 1,
4d47f125 17437 "type" : "integer"
44660702 17438 },
4d47f125
TL
17439 "mbps" : {
17440 "description" : "Maximum r/w speed in megabytes per second.",
17441 "format_description" : "mbps",
17442 "optional" : 1,
17443 "type" : "number"
56122987 17444 },
4d47f125
TL
17445 "mbps_max" : {
17446 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
17447 "format_description" : "mbps",
17448 "optional" : 1,
17449 "type" : "number"
17450 },
17451 "mbps_rd" : {
17452 "description" : "Maximum read speed in megabytes per second.",
17453 "format_description" : "mbps",
17454 "optional" : 1,
17455 "type" : "number"
17456 },
17457 "mbps_rd_max" : {
17458 "description" : "Maximum unthrottled read pool in megabytes per second.",
17459 "format_description" : "mbps",
17460 "optional" : 1,
17461 "type" : "number"
17462 },
17463 "mbps_wr" : {
17464 "description" : "Maximum write speed in megabytes per second.",
17465 "format_description" : "mbps",
17466 "optional" : 1,
17467 "type" : "number"
17468 },
17469 "mbps_wr_max" : {
17470 "description" : "Maximum unthrottled write pool in megabytes per second.",
17471 "format_description" : "mbps",
17472 "optional" : 1,
17473 "type" : "number"
17474 },
17475 "media" : {
17476 "default" : "disk",
17477 "description" : "The drive's media type.",
17478 "enum" : [
17479 "cdrom",
17480 "disk"
17481 ],
17482 "optional" : 1,
17483 "type" : "string"
17484 },
17485 "model" : {
17486 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
17487 "format" : "urlencoded",
17488 "format_description" : "model",
17489 "maxLength" : 120,
17490 "optional" : 1,
17491 "type" : "string"
17492 },
17493 "replicate" : {
17494 "default" : 1,
17495 "description" : "Whether the drive should considered for replication jobs.",
17496 "optional" : 1,
17497 "type" : "boolean"
17498 },
17499 "rerror" : {
17500 "description" : "Read error action.",
17501 "enum" : [
17502 "ignore",
17503 "report",
17504 "stop"
17505 ],
17506 "optional" : 1,
17507 "type" : "string"
17508 },
17509 "secs" : {
17510 "description" : "Force the drive's physical geometry to have a specific sector count.",
17511 "optional" : 1,
17512 "type" : "integer"
17513 },
17514 "serial" : {
17515 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
17516 "format" : "urlencoded",
17517 "format_description" : "serial",
17518 "maxLength" : 60,
17519 "optional" : 1,
17520 "type" : "string"
17521 },
17522 "shared" : {
17523 "default" : 0,
17524 "description" : "Mark this locally-managed volume as available on all nodes",
44660702 17525 "optional" : 1,
013dc89f 17526 "type" : "boolean",
4d47f125 17527 "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 17528 },
4d47f125
TL
17529 "size" : {
17530 "description" : "Disk size. This is purely informational and has no effect.",
17531 "format" : "disk-size",
17532 "format_description" : "DiskSize",
17533 "optional" : 1,
17534 "type" : "string"
17535 },
17536 "snapshot" : {
17537 "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.",
17538 "optional" : 1,
17539 "type" : "boolean"
17540 },
25203dc1
NC
17541 "ssd" : {
17542 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17543 "optional" : 1,
17544 "type" : "boolean"
17545 },
4d47f125
TL
17546 "trans" : {
17547 "description" : "Force disk geometry bios translation mode.",
17548 "enum" : [
17549 "none",
17550 "lba",
17551 "auto"
17552 ],
17553 "optional" : 1,
17554 "type" : "string"
17555 },
17556 "volume" : {
17557 "alias" : "file"
17558 },
17559 "werror" : {
17560 "description" : "Write error action.",
17561 "enum" : [
17562 "enospc",
17563 "ignore",
17564 "report",
17565 "stop"
17566 ],
17567 "optional" : 1,
17568 "type" : "string"
95895385
TL
17569 },
17570 "wwn" : {
17571 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17572 "format_description" : "wwn",
17573 "optional" : 1,
17574 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17575 "type" : "string"
4d47f125
TL
17576 }
17577 },
17578 "optional" : 1,
013dc89f 17579 "type" : "string",
8f4d9c87 17580 "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>] [,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 17581 },
4d47f125 17582 "ipconfig[n]" : {
d2656385 17583 "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
17584 "format" : "pve-qm-ipconfig",
17585 "optional" : 1,
013dc89f 17586 "type" : "string",
4d47f125 17587 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
44660702 17588 },
95895385
TL
17589 "ivshmem" : {
17590 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
17591 "format" : {
17592 "name" : {
17593 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
17594 "format_description" : "string",
17595 "optional" : 1,
17596 "pattern" : "[a-zA-Z0-9\\-]+",
17597 "type" : "string"
17598 },
17599 "size" : {
17600 "description" : "The size of the file in MB.",
17601 "minimum" : 1,
17602 "type" : "integer"
17603 }
17604 },
17605 "optional" : 1,
17606 "type" : "string",
17607 "typetext" : "size=<integer> [,name=<string>]"
17608 },
4772952b
TL
17609 "keephugepages" : {
17610 "default" : 0,
17611 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
17612 "optional" : 1,
17613 "type" : "boolean",
17614 "typetext" : "<boolean>"
17615 },
4d47f125
TL
17616 "keyboard" : {
17617 "default" : null,
5370fa8c 17618 "description" : "Keyboard layout for VNC server. The default is read from the'/etc/pve/datacenter.cfg' configuration file. It should not be necessary to set it.",
4d47f125
TL
17619 "enum" : [
17620 "de",
17621 "de-ch",
17622 "da",
17623 "en-gb",
17624 "en-us",
17625 "es",
17626 "fi",
17627 "fr",
17628 "fr-be",
17629 "fr-ca",
17630 "fr-ch",
17631 "hu",
17632 "is",
17633 "it",
17634 "ja",
17635 "lt",
17636 "mk",
17637 "nl",
17638 "no",
17639 "pl",
17640 "pt",
17641 "pt-br",
17642 "sv",
17643 "sl",
17644 "tr"
17645 ],
17646 "optional" : 1,
17647 "type" : "string"
44660702 17648 },
4d47f125
TL
17649 "kvm" : {
17650 "default" : 1,
17651 "description" : "Enable/disable KVM hardware virtualization.",
44660702 17652 "optional" : 1,
013dc89f
DM
17653 "type" : "boolean",
17654 "typetext" : "<boolean>"
7aacca6f 17655 },
4d47f125 17656 "localtime" : {
5370fa8c 17657 "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
17658 "optional" : 1,
17659 "type" : "boolean",
17660 "typetext" : "<boolean>"
17661 },
17662 "lock" : {
17663 "description" : "Lock/unlock the VM.",
56122987 17664 "enum" : [
4d47f125 17665 "backup",
5f26e15b
TL
17666 "clone",
17667 "create",
17668 "migrate",
17669 "rollback",
56122987 17670 "snapshot",
95895385
TL
17671 "snapshot-delete",
17672 "suspending",
17673 "suspended"
56122987 17674 ],
4d47f125 17675 "optional" : 1,
44660702
DM
17676 "type" : "string"
17677 },
4d47f125
TL
17678 "machine" : {
17679 "description" : "Specifies the Qemu machine type.",
17680 "maxLength" : 40,
17681 "optional" : 1,
5c1699e5 17682 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
17683 "type" : "string"
17684 },
17685 "memory" : {
17686 "default" : 512,
17687 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
17688 "minimum" : 16,
17689 "optional" : 1,
17690 "type" : "integer",
17691 "typetext" : "<integer> (16 - N)"
17692 },
17693 "migrate_downtime" : {
17694 "default" : 0.1,
17695 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
17696 "minimum" : 0,
17697 "optional" : 1,
17698 "type" : "number",
17699 "typetext" : "<number> (0 - N)"
17700 },
17701 "migrate_speed" : {
17702 "default" : 0,
17703 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
17704 "minimum" : 0,
17705 "optional" : 1,
17706 "type" : "integer",
17707 "typetext" : "<integer> (0 - N)"
17708 },
17709 "name" : {
17710 "description" : "Set a name for the VM. Only used on the configuration web interface.",
17711 "format" : "dns-name",
17712 "optional" : 1,
013dc89f
DM
17713 "type" : "string",
17714 "typetext" : "<string>"
56122987 17715 },
4d47f125 17716 "nameserver" : {
4772952b 17717 "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 17718 "format" : "address-list",
7aacca6f 17719 "optional" : 1,
013dc89f
DM
17720 "type" : "string",
17721 "typetext" : "<string>"
7aacca6f 17722 },
4d47f125
TL
17723 "net[n]" : {
17724 "description" : "Specify network devices.",
17725 "format" : {
17726 "bridge" : {
17727 "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",
17728 "format_description" : "bridge",
17729 "optional" : 1,
c5aa7e14 17730 "pattern" : "[-_.\\w\\d]+",
4d47f125
TL
17731 "type" : "string"
17732 },
17733 "e1000" : {
17734 "alias" : "macaddr",
17735 "keyAlias" : "model"
17736 },
17737 "e1000-82540em" : {
17738 "alias" : "macaddr",
17739 "keyAlias" : "model"
17740 },
17741 "e1000-82544gc" : {
17742 "alias" : "macaddr",
17743 "keyAlias" : "model"
17744 },
17745 "e1000-82545em" : {
17746 "alias" : "macaddr",
17747 "keyAlias" : "model"
17748 },
5370fa8c
TL
17749 "e1000e" : {
17750 "alias" : "macaddr",
17751 "keyAlias" : "model"
17752 },
4d47f125
TL
17753 "firewall" : {
17754 "description" : "Whether this interface should be protected by the firewall.",
17755 "optional" : 1,
17756 "type" : "boolean"
17757 },
17758 "i82551" : {
17759 "alias" : "macaddr",
17760 "keyAlias" : "model"
17761 },
17762 "i82557b" : {
17763 "alias" : "macaddr",
17764 "keyAlias" : "model"
17765 },
17766 "i82559er" : {
17767 "alias" : "macaddr",
17768 "keyAlias" : "model"
17769 },
17770 "link_down" : {
17771 "description" : "Whether this interface should be disconnected (like pulling the plug).",
17772 "optional" : 1,
17773 "type" : "boolean"
17774 },
17775 "macaddr" : {
17776 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 17777 "format" : "mac-addr",
4d47f125
TL
17778 "format_description" : "XX:XX:XX:XX:XX:XX",
17779 "optional" : 1,
95895385
TL
17780 "type" : "string",
17781 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
17782 },
17783 "model" : {
17784 "default_key" : 1,
17785 "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'.",
17786 "enum" : [
4d47f125 17787 "e1000",
5370fa8c
TL
17788 "e1000-82540em",
17789 "e1000-82544gc",
17790 "e1000-82545em",
17791 "e1000e",
4d47f125
TL
17792 "i82551",
17793 "i82557b",
17794 "i82559er",
5370fa8c
TL
17795 "ne2k_isa",
17796 "ne2k_pci",
17797 "pcnet",
17798 "rtl8139",
17799 "virtio",
17800 "vmxnet3"
4d47f125
TL
17801 ],
17802 "type" : "string"
17803 },
ac70d7d1
TL
17804 "mtu" : {
17805 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
17806 "maximum" : 65520,
17807 "minimum" : 1,
17808 "optional" : 1,
17809 "type" : "integer"
17810 },
4d47f125
TL
17811 "ne2k_isa" : {
17812 "alias" : "macaddr",
17813 "keyAlias" : "model"
17814 },
17815 "ne2k_pci" : {
17816 "alias" : "macaddr",
17817 "keyAlias" : "model"
17818 },
17819 "pcnet" : {
17820 "alias" : "macaddr",
17821 "keyAlias" : "model"
17822 },
17823 "queues" : {
17824 "description" : "Number of packet queues to be used on the device.",
17825 "maximum" : 16,
17826 "minimum" : 0,
17827 "optional" : 1,
17828 "type" : "integer"
17829 },
17830 "rate" : {
17831 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
17832 "minimum" : 0,
17833 "optional" : 1,
17834 "type" : "number"
17835 },
17836 "rtl8139" : {
17837 "alias" : "macaddr",
17838 "keyAlias" : "model"
17839 },
17840 "tag" : {
17841 "description" : "VLAN tag to apply to packets on this interface.",
17842 "maximum" : 4094,
17843 "minimum" : 1,
17844 "optional" : 1,
17845 "type" : "integer"
17846 },
17847 "trunks" : {
17848 "description" : "VLAN trunks to pass through this interface.",
17849 "format_description" : "vlanid[;vlanid...]",
17850 "optional" : 1,
17851 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
17852 "type" : "string"
17853 },
17854 "virtio" : {
17855 "alias" : "macaddr",
17856 "keyAlias" : "model"
17857 },
17858 "vmxnet3" : {
17859 "alias" : "macaddr",
17860 "keyAlias" : "model"
17861 }
44660702 17862 },
44660702 17863 "optional" : 1,
013dc89f 17864 "type" : "string",
ac70d7d1 17865 "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
17866 },
17867 "node" : {
17868 "description" : "The cluster node name.",
17869 "format" : "pve-node",
013dc89f
DM
17870 "type" : "string",
17871 "typetext" : "<string>"
7aacca6f 17872 },
4d47f125
TL
17873 "numa" : {
17874 "default" : 0,
17875 "description" : "Enable/disable NUMA.",
56122987 17876 "optional" : 1,
4d47f125
TL
17877 "type" : "boolean",
17878 "typetext" : "<boolean>"
56122987 17879 },
4d47f125
TL
17880 "numa[n]" : {
17881 "description" : "NUMA topology.",
17882 "format" : {
17883 "cpus" : {
17884 "description" : "CPUs accessing this NUMA node.",
17885 "format_description" : "id[-id];...",
17886 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
17887 "type" : "string"
17888 },
17889 "hostnodes" : {
17890 "description" : "Host NUMA nodes to use.",
17891 "format_description" : "id[-id];...",
17892 "optional" : 1,
17893 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
17894 "type" : "string"
17895 },
17896 "memory" : {
17897 "description" : "Amount of memory this NUMA node provides.",
17898 "optional" : 1,
17899 "type" : "number"
17900 },
17901 "policy" : {
17902 "description" : "NUMA allocation policy.",
17903 "enum" : [
17904 "preferred",
17905 "bind",
17906 "interleave"
17907 ],
17908 "optional" : 1,
17909 "type" : "string"
17910 }
17911 },
7aacca6f 17912 "optional" : 1,
013dc89f 17913 "type" : "string",
4d47f125 17914 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 17915 },
4d47f125 17916 "onboot" : {
44660702 17917 "default" : 0,
4d47f125 17918 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 17919 "optional" : 1,
013dc89f
DM
17920 "type" : "boolean",
17921 "typetext" : "<boolean>"
56122987 17922 },
4d47f125
TL
17923 "ostype" : {
17924 "description" : "Specify guest operating system.",
7aacca6f 17925 "enum" : [
4d47f125
TL
17926 "other",
17927 "wxp",
17928 "w2k",
17929 "w2k3",
17930 "w2k8",
17931 "wvista",
17932 "win7",
17933 "win8",
17934 "win10",
5370fa8c 17935 "win11",
4d47f125
TL
17936 "l24",
17937 "l26",
17938 "solaris"
7aacca6f
DM
17939 ],
17940 "optional" : 1,
013dc89f 17941 "type" : "string",
5370fa8c 17942 "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 17943 },
4d47f125
TL
17944 "parallel[n]" : {
17945 "description" : "Map host parallel devices (n is 0 to 2).",
17946 "optional" : 1,
17947 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
013dc89f 17948 "type" : "string",
4772952b 17949 "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 17950 },
4d47f125
TL
17951 "protection" : {
17952 "default" : 0,
17953 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
44660702 17954 "optional" : 1,
013dc89f
DM
17955 "type" : "boolean",
17956 "typetext" : "<boolean>"
44660702 17957 },
4d47f125
TL
17958 "reboot" : {
17959 "default" : 1,
17960 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
56122987 17961 "optional" : 1,
013dc89f
DM
17962 "type" : "boolean",
17963 "typetext" : "<boolean>"
56122987 17964 },
4d47f125
TL
17965 "revert" : {
17966 "description" : "Revert a pending change.",
17967 "format" : "pve-configid-list",
17968 "optional" : 1,
013dc89f
DM
17969 "type" : "string",
17970 "typetext" : "<string>"
56122987 17971 },
c5aa7e14
TL
17972 "rng0" : {
17973 "description" : "Configure a VirtIO-based Random Number Generator.",
17974 "format" : {
17975 "max_bytes" : {
17976 "default" : 1024,
5370fa8c 17977 "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
17978 "optional" : 1,
17979 "type" : "integer"
17980 },
17981 "period" : {
17982 "default" : 1000,
17983 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
17984 "optional" : 1,
17985 "type" : "integer"
17986 },
17987 "source" : {
17988 "default_key" : 1,
5370fa8c 17989 "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
17990 "enum" : [
17991 "/dev/urandom",
17992 "/dev/random",
17993 "/dev/hwrng"
17994 ],
17995 "type" : "string"
17996 }
17997 },
17998 "optional" : 1,
17999 "type" : "string",
18000 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
18001 },
4d47f125 18002 "sata[n]" : {
d2656385 18003 "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.",
4d47f125
TL
18004 "format" : {
18005 "aio" : {
18006 "description" : "AIO type to use.",
18007 "enum" : [
18008 "native",
8f4d9c87
TL
18009 "threads",
18010 "io_uring"
4d47f125
TL
18011 ],
18012 "optional" : 1,
18013 "type" : "string"
18014 },
18015 "backup" : {
18016 "description" : "Whether the drive should be included when making backups.",
18017 "optional" : 1,
18018 "type" : "boolean"
18019 },
18020 "bps" : {
18021 "description" : "Maximum r/w speed in bytes per second.",
18022 "format_description" : "bps",
18023 "optional" : 1,
18024 "type" : "integer"
18025 },
18026 "bps_max_length" : {
18027 "description" : "Maximum length of I/O bursts in seconds.",
18028 "format_description" : "seconds",
18029 "minimum" : 1,
18030 "optional" : 1,
18031 "type" : "integer"
18032 },
18033 "bps_rd" : {
18034 "description" : "Maximum read speed in bytes per second.",
18035 "format_description" : "bps",
18036 "optional" : 1,
18037 "type" : "integer"
18038 },
18039 "bps_rd_length" : {
18040 "alias" : "bps_rd_max_length"
18041 },
18042 "bps_rd_max_length" : {
18043 "description" : "Maximum length of read I/O bursts in seconds.",
18044 "format_description" : "seconds",
18045 "minimum" : 1,
18046 "optional" : 1,
18047 "type" : "integer"
18048 },
18049 "bps_wr" : {
18050 "description" : "Maximum write speed in bytes per second.",
18051 "format_description" : "bps",
18052 "optional" : 1,
18053 "type" : "integer"
18054 },
18055 "bps_wr_length" : {
18056 "alias" : "bps_wr_max_length"
18057 },
18058 "bps_wr_max_length" : {
18059 "description" : "Maximum length of write I/O bursts in seconds.",
18060 "format_description" : "seconds",
18061 "minimum" : 1,
18062 "optional" : 1,
18063 "type" : "integer"
18064 },
18065 "cache" : {
18066 "description" : "The drive's cache mode",
18067 "enum" : [
18068 "none",
18069 "writethrough",
18070 "writeback",
18071 "unsafe",
18072 "directsync"
18073 ],
18074 "optional" : 1,
18075 "type" : "string"
18076 },
18077 "cyls" : {
18078 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
18079 "optional" : 1,
18080 "type" : "integer"
18081 },
18082 "detect_zeroes" : {
18083 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
18084 "optional" : 1,
18085 "type" : "boolean"
18086 },
18087 "discard" : {
18088 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
18089 "enum" : [
18090 "ignore",
18091 "on"
18092 ],
18093 "optional" : 1,
18094 "type" : "string"
18095 },
18096 "file" : {
18097 "default_key" : 1,
18098 "description" : "The drive's backing volume.",
18099 "format" : "pve-volume-id-or-qm-path",
18100 "format_description" : "volume",
18101 "type" : "string"
18102 },
18103 "format" : {
18104 "description" : "The drive's backing file's data format.",
18105 "enum" : [
18106 "raw",
18107 "cow",
18108 "qcow",
18109 "qed",
18110 "qcow2",
18111 "vmdk",
18112 "cloop"
18113 ],
18114 "optional" : 1,
18115 "type" : "string"
18116 },
18117 "heads" : {
18118 "description" : "Force the drive's physical geometry to have a specific head count.",
18119 "optional" : 1,
18120 "type" : "integer"
18121 },
18122 "iops" : {
18123 "description" : "Maximum r/w I/O in operations per second.",
18124 "format_description" : "iops",
18125 "optional" : 1,
18126 "type" : "integer"
18127 },
18128 "iops_max" : {
18129 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
18130 "format_description" : "iops",
18131 "optional" : 1,
18132 "type" : "integer"
18133 },
18134 "iops_max_length" : {
18135 "description" : "Maximum length of I/O bursts in seconds.",
18136 "format_description" : "seconds",
18137 "minimum" : 1,
18138 "optional" : 1,
18139 "type" : "integer"
18140 },
18141 "iops_rd" : {
18142 "description" : "Maximum read I/O in operations per second.",
18143 "format_description" : "iops",
18144 "optional" : 1,
18145 "type" : "integer"
18146 },
18147 "iops_rd_length" : {
18148 "alias" : "iops_rd_max_length"
18149 },
18150 "iops_rd_max" : {
18151 "description" : "Maximum unthrottled read I/O pool in operations per second.",
18152 "format_description" : "iops",
18153 "optional" : 1,
18154 "type" : "integer"
18155 },
18156 "iops_rd_max_length" : {
18157 "description" : "Maximum length of read I/O bursts in seconds.",
18158 "format_description" : "seconds",
18159 "minimum" : 1,
18160 "optional" : 1,
18161 "type" : "integer"
18162 },
18163 "iops_wr" : {
18164 "description" : "Maximum write I/O in operations per second.",
18165 "format_description" : "iops",
18166 "optional" : 1,
18167 "type" : "integer"
18168 },
18169 "iops_wr_length" : {
18170 "alias" : "iops_wr_max_length"
18171 },
18172 "iops_wr_max" : {
18173 "description" : "Maximum unthrottled write I/O pool in operations per second.",
18174 "format_description" : "iops",
18175 "optional" : 1,
18176 "type" : "integer"
18177 },
18178 "iops_wr_max_length" : {
18179 "description" : "Maximum length of write I/O bursts in seconds.",
18180 "format_description" : "seconds",
18181 "minimum" : 1,
18182 "optional" : 1,
18183 "type" : "integer"
18184 },
18185 "mbps" : {
18186 "description" : "Maximum r/w speed in megabytes per second.",
18187 "format_description" : "mbps",
18188 "optional" : 1,
18189 "type" : "number"
18190 },
18191 "mbps_max" : {
18192 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
18193 "format_description" : "mbps",
18194 "optional" : 1,
18195 "type" : "number"
18196 },
18197 "mbps_rd" : {
18198 "description" : "Maximum read speed in megabytes per second.",
18199 "format_description" : "mbps",
18200 "optional" : 1,
18201 "type" : "number"
18202 },
18203 "mbps_rd_max" : {
18204 "description" : "Maximum unthrottled read pool in megabytes per second.",
18205 "format_description" : "mbps",
18206 "optional" : 1,
18207 "type" : "number"
18208 },
18209 "mbps_wr" : {
18210 "description" : "Maximum write speed in megabytes per second.",
18211 "format_description" : "mbps",
18212 "optional" : 1,
18213 "type" : "number"
18214 },
18215 "mbps_wr_max" : {
18216 "description" : "Maximum unthrottled write pool in megabytes per second.",
18217 "format_description" : "mbps",
18218 "optional" : 1,
18219 "type" : "number"
18220 },
18221 "media" : {
18222 "default" : "disk",
18223 "description" : "The drive's media type.",
18224 "enum" : [
18225 "cdrom",
18226 "disk"
18227 ],
18228 "optional" : 1,
18229 "type" : "string"
18230 },
18231 "replicate" : {
18232 "default" : 1,
18233 "description" : "Whether the drive should considered for replication jobs.",
18234 "optional" : 1,
18235 "type" : "boolean"
18236 },
18237 "rerror" : {
18238 "description" : "Read error action.",
18239 "enum" : [
18240 "ignore",
18241 "report",
18242 "stop"
18243 ],
18244 "optional" : 1,
18245 "type" : "string"
18246 },
18247 "secs" : {
18248 "description" : "Force the drive's physical geometry to have a specific sector count.",
18249 "optional" : 1,
18250 "type" : "integer"
18251 },
18252 "serial" : {
18253 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18254 "format" : "urlencoded",
18255 "format_description" : "serial",
18256 "maxLength" : 60,
18257 "optional" : 1,
18258 "type" : "string"
18259 },
18260 "shared" : {
18261 "default" : 0,
18262 "description" : "Mark this locally-managed volume as available on all nodes",
18263 "optional" : 1,
18264 "type" : "boolean",
18265 "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!"
18266 },
18267 "size" : {
18268 "description" : "Disk size. This is purely informational and has no effect.",
18269 "format" : "disk-size",
18270 "format_description" : "DiskSize",
18271 "optional" : 1,
18272 "type" : "string"
18273 },
18274 "snapshot" : {
18275 "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.",
18276 "optional" : 1,
18277 "type" : "boolean"
18278 },
25203dc1
NC
18279 "ssd" : {
18280 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18281 "optional" : 1,
18282 "type" : "boolean"
18283 },
4d47f125
TL
18284 "trans" : {
18285 "description" : "Force disk geometry bios translation mode.",
18286 "enum" : [
18287 "none",
18288 "lba",
18289 "auto"
18290 ],
18291 "optional" : 1,
18292 "type" : "string"
18293 },
18294 "volume" : {
18295 "alias" : "file"
18296 },
18297 "werror" : {
18298 "description" : "Write error action.",
18299 "enum" : [
18300 "enospc",
18301 "ignore",
18302 "report",
18303 "stop"
18304 ],
18305 "optional" : 1,
18306 "type" : "string"
95895385
TL
18307 },
18308 "wwn" : {
18309 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
18310 "format_description" : "wwn",
18311 "optional" : 1,
18312 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
18313 "type" : "string"
4d47f125
TL
18314 }
18315 },
18316 "optional" : 1,
18317 "type" : "string",
8f4d9c87 18318 "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>] [,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
18319 },
18320 "scsi[n]" : {
d2656385 18321 "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.",
4d47f125
TL
18322 "format" : {
18323 "aio" : {
18324 "description" : "AIO type to use.",
18325 "enum" : [
18326 "native",
8f4d9c87
TL
18327 "threads",
18328 "io_uring"
4d47f125
TL
18329 ],
18330 "optional" : 1,
18331 "type" : "string"
18332 },
18333 "backup" : {
18334 "description" : "Whether the drive should be included when making backups.",
18335 "optional" : 1,
18336 "type" : "boolean"
18337 },
18338 "bps" : {
18339 "description" : "Maximum r/w speed in bytes per second.",
18340 "format_description" : "bps",
18341 "optional" : 1,
18342 "type" : "integer"
18343 },
18344 "bps_max_length" : {
18345 "description" : "Maximum length of I/O bursts in seconds.",
18346 "format_description" : "seconds",
18347 "minimum" : 1,
18348 "optional" : 1,
18349 "type" : "integer"
18350 },
18351 "bps_rd" : {
18352 "description" : "Maximum read speed in bytes per second.",
18353 "format_description" : "bps",
18354 "optional" : 1,
18355 "type" : "integer"
18356 },
18357 "bps_rd_length" : {
18358 "alias" : "bps_rd_max_length"
18359 },
18360 "bps_rd_max_length" : {
18361 "description" : "Maximum length of read I/O bursts in seconds.",
18362 "format_description" : "seconds",
18363 "minimum" : 1,
18364 "optional" : 1,
18365 "type" : "integer"
18366 },
18367 "bps_wr" : {
18368 "description" : "Maximum write speed in bytes per second.",
18369 "format_description" : "bps",
18370 "optional" : 1,
18371 "type" : "integer"
18372 },
18373 "bps_wr_length" : {
18374 "alias" : "bps_wr_max_length"
18375 },
18376 "bps_wr_max_length" : {
18377 "description" : "Maximum length of write I/O bursts in seconds.",
18378 "format_description" : "seconds",
18379 "minimum" : 1,
18380 "optional" : 1,
18381 "type" : "integer"
18382 },
18383 "cache" : {
18384 "description" : "The drive's cache mode",
18385 "enum" : [
18386 "none",
18387 "writethrough",
18388 "writeback",
18389 "unsafe",
18390 "directsync"
18391 ],
18392 "optional" : 1,
18393 "type" : "string"
18394 },
18395 "cyls" : {
18396 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
18397 "optional" : 1,
18398 "type" : "integer"
18399 },
18400 "detect_zeroes" : {
18401 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
18402 "optional" : 1,
18403 "type" : "boolean"
18404 },
18405 "discard" : {
18406 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
18407 "enum" : [
18408 "ignore",
18409 "on"
18410 ],
18411 "optional" : 1,
18412 "type" : "string"
18413 },
18414 "file" : {
18415 "default_key" : 1,
18416 "description" : "The drive's backing volume.",
18417 "format" : "pve-volume-id-or-qm-path",
18418 "format_description" : "volume",
18419 "type" : "string"
18420 },
18421 "format" : {
18422 "description" : "The drive's backing file's data format.",
18423 "enum" : [
18424 "raw",
18425 "cow",
18426 "qcow",
18427 "qed",
18428 "qcow2",
18429 "vmdk",
18430 "cloop"
18431 ],
18432 "optional" : 1,
18433 "type" : "string"
18434 },
18435 "heads" : {
18436 "description" : "Force the drive's physical geometry to have a specific head count.",
18437 "optional" : 1,
18438 "type" : "integer"
18439 },
18440 "iops" : {
18441 "description" : "Maximum r/w I/O in operations per second.",
18442 "format_description" : "iops",
18443 "optional" : 1,
18444 "type" : "integer"
18445 },
18446 "iops_max" : {
18447 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
18448 "format_description" : "iops",
18449 "optional" : 1,
18450 "type" : "integer"
18451 },
18452 "iops_max_length" : {
18453 "description" : "Maximum length of I/O bursts in seconds.",
18454 "format_description" : "seconds",
18455 "minimum" : 1,
18456 "optional" : 1,
18457 "type" : "integer"
18458 },
18459 "iops_rd" : {
18460 "description" : "Maximum read I/O in operations per second.",
18461 "format_description" : "iops",
18462 "optional" : 1,
18463 "type" : "integer"
18464 },
18465 "iops_rd_length" : {
18466 "alias" : "iops_rd_max_length"
18467 },
18468 "iops_rd_max" : {
18469 "description" : "Maximum unthrottled read I/O pool in operations per second.",
18470 "format_description" : "iops",
18471 "optional" : 1,
18472 "type" : "integer"
18473 },
18474 "iops_rd_max_length" : {
18475 "description" : "Maximum length of read I/O bursts in seconds.",
18476 "format_description" : "seconds",
18477 "minimum" : 1,
18478 "optional" : 1,
18479 "type" : "integer"
18480 },
18481 "iops_wr" : {
18482 "description" : "Maximum write I/O in operations per second.",
18483 "format_description" : "iops",
18484 "optional" : 1,
18485 "type" : "integer"
18486 },
18487 "iops_wr_length" : {
18488 "alias" : "iops_wr_max_length"
18489 },
18490 "iops_wr_max" : {
18491 "description" : "Maximum unthrottled write I/O pool in operations per second.",
18492 "format_description" : "iops",
18493 "optional" : 1,
18494 "type" : "integer"
18495 },
18496 "iops_wr_max_length" : {
18497 "description" : "Maximum length of write I/O bursts in seconds.",
18498 "format_description" : "seconds",
18499 "minimum" : 1,
18500 "optional" : 1,
18501 "type" : "integer"
18502 },
18503 "iothread" : {
18504 "description" : "Whether to use iothreads for this drive",
18505 "optional" : 1,
18506 "type" : "boolean"
18507 },
18508 "mbps" : {
18509 "description" : "Maximum r/w speed in megabytes per second.",
18510 "format_description" : "mbps",
18511 "optional" : 1,
18512 "type" : "number"
18513 },
18514 "mbps_max" : {
18515 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
18516 "format_description" : "mbps",
18517 "optional" : 1,
18518 "type" : "number"
18519 },
18520 "mbps_rd" : {
18521 "description" : "Maximum read speed in megabytes per second.",
18522 "format_description" : "mbps",
18523 "optional" : 1,
18524 "type" : "number"
18525 },
18526 "mbps_rd_max" : {
18527 "description" : "Maximum unthrottled read pool in megabytes per second.",
18528 "format_description" : "mbps",
18529 "optional" : 1,
18530 "type" : "number"
18531 },
18532 "mbps_wr" : {
18533 "description" : "Maximum write speed in megabytes per second.",
18534 "format_description" : "mbps",
18535 "optional" : 1,
18536 "type" : "number"
18537 },
18538 "mbps_wr_max" : {
18539 "description" : "Maximum unthrottled write pool in megabytes per second.",
18540 "format_description" : "mbps",
18541 "optional" : 1,
18542 "type" : "number"
18543 },
18544 "media" : {
18545 "default" : "disk",
18546 "description" : "The drive's media type.",
18547 "enum" : [
18548 "cdrom",
18549 "disk"
18550 ],
18551 "optional" : 1,
18552 "type" : "string"
18553 },
18554 "queues" : {
18555 "description" : "Number of queues.",
18556 "minimum" : 2,
18557 "optional" : 1,
18558 "type" : "integer"
18559 },
18560 "replicate" : {
18561 "default" : 1,
18562 "description" : "Whether the drive should considered for replication jobs.",
18563 "optional" : 1,
18564 "type" : "boolean"
18565 },
18566 "rerror" : {
18567 "description" : "Read error action.",
18568 "enum" : [
18569 "ignore",
18570 "report",
18571 "stop"
18572 ],
18573 "optional" : 1,
18574 "type" : "string"
18575 },
5370fa8c
TL
18576 "ro" : {
18577 "description" : "Whether the drive is read-only.",
18578 "optional" : 1,
18579 "type" : "boolean"
18580 },
4d47f125
TL
18581 "scsiblock" : {
18582 "default" : 0,
18583 "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",
18584 "optional" : 1,
18585 "type" : "boolean"
18586 },
18587 "secs" : {
18588 "description" : "Force the drive's physical geometry to have a specific sector count.",
18589 "optional" : 1,
18590 "type" : "integer"
18591 },
18592 "serial" : {
18593 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18594 "format" : "urlencoded",
18595 "format_description" : "serial",
18596 "maxLength" : 60,
18597 "optional" : 1,
18598 "type" : "string"
18599 },
18600 "shared" : {
18601 "default" : 0,
18602 "description" : "Mark this locally-managed volume as available on all nodes",
18603 "optional" : 1,
18604 "type" : "boolean",
18605 "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!"
18606 },
18607 "size" : {
18608 "description" : "Disk size. This is purely informational and has no effect.",
18609 "format" : "disk-size",
18610 "format_description" : "DiskSize",
18611 "optional" : 1,
18612 "type" : "string"
18613 },
18614 "snapshot" : {
18615 "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.",
18616 "optional" : 1,
18617 "type" : "boolean"
18618 },
25203dc1
NC
18619 "ssd" : {
18620 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18621 "optional" : 1,
18622 "type" : "boolean"
18623 },
4d47f125
TL
18624 "trans" : {
18625 "description" : "Force disk geometry bios translation mode.",
18626 "enum" : [
18627 "none",
18628 "lba",
18629 "auto"
18630 ],
18631 "optional" : 1,
18632 "type" : "string"
18633 },
18634 "volume" : {
18635 "alias" : "file"
18636 },
18637 "werror" : {
18638 "description" : "Write error action.",
18639 "enum" : [
18640 "enospc",
18641 "ignore",
18642 "report",
18643 "stop"
18644 ],
18645 "optional" : 1,
18646 "type" : "string"
95895385
TL
18647 },
18648 "wwn" : {
18649 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
18650 "format_description" : "wwn",
18651 "optional" : 1,
18652 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
18653 "type" : "string"
4d47f125
TL
18654 }
18655 },
18656 "optional" : 1,
18657 "type" : "string",
5370fa8c 18658 "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>] [,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
18659 },
18660 "scsihw" : {
18661 "default" : "lsi",
18662 "description" : "SCSI controller model",
18663 "enum" : [
18664 "lsi",
18665 "lsi53c810",
18666 "virtio-scsi-pci",
18667 "virtio-scsi-single",
18668 "megasas",
18669 "pvscsi"
18670 ],
18671 "optional" : 1,
18672 "type" : "string"
18673 },
18674 "searchdomain" : {
4772952b 18675 "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
18676 "optional" : 1,
18677 "type" : "string",
18678 "typetext" : "<string>"
18679 },
18680 "serial[n]" : {
18681 "description" : "Create a serial device inside the VM (n is 0 to 3)",
18682 "optional" : 1,
18683 "pattern" : "(/dev/.+|socket)",
18684 "type" : "string",
4772952b 18685 "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
18686 },
18687 "shares" : {
18688 "default" : 1000,
18689 "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.",
18690 "maximum" : 50000,
18691 "minimum" : 0,
18692 "optional" : 1,
18693 "type" : "integer",
18694 "typetext" : "<integer> (0 - 50000)"
18695 },
18696 "skiplock" : {
18697 "description" : "Ignore locks - only root is allowed to use this option.",
18698 "optional" : 1,
18699 "type" : "boolean",
18700 "typetext" : "<boolean>"
18701 },
18702 "smbios1" : {
18703 "description" : "Specify SMBIOS type 1 fields.",
18704 "format" : "pve-qm-smbios1",
1e3f8156 18705 "maxLength" : 512,
4d47f125
TL
18706 "optional" : 1,
18707 "type" : "string",
1e3f8156 18708 "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
18709 },
18710 "smp" : {
18711 "default" : 1,
18712 "description" : "The number of CPUs. Please use option -sockets instead.",
18713 "minimum" : 1,
18714 "optional" : 1,
18715 "type" : "integer",
18716 "typetext" : "<integer> (1 - N)"
18717 },
18718 "sockets" : {
18719 "default" : 1,
18720 "description" : "The number of CPU sockets.",
18721 "minimum" : 1,
18722 "optional" : 1,
18723 "type" : "integer",
18724 "typetext" : "<integer> (1 - N)"
18725 },
1c532546
TL
18726 "spice_enhancements" : {
18727 "description" : "Configure additional enhancements for SPICE.",
18728 "format" : {
18729 "foldersharing" : {
18730 "default" : "0",
18731 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
18732 "optional" : 1,
18733 "type" : "boolean"
18734 },
18735 "videostreaming" : {
18736 "default" : "off",
18737 "description" : "Enable video streaming. Uses compression for detected video streams.",
18738 "enum" : [
18739 "off",
18740 "all",
18741 "filter"
18742 ],
18743 "optional" : 1,
18744 "type" : "string"
18745 }
18746 },
18747 "optional" : 1,
18748 "type" : "string",
18749 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
18750 },
4d47f125
TL
18751 "sshkeys" : {
18752 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
18753 "format" : "urlencoded",
18754 "optional" : 1,
18755 "type" : "string",
18756 "typetext" : "<string>"
18757 },
18758 "startdate" : {
18759 "default" : "now",
4772952b 18760 "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
18761 "optional" : 1,
18762 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
18763 "type" : "string",
18764 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
18765 },
18766 "startup" : {
18767 "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.",
18768 "format" : "pve-startup-order",
18769 "optional" : 1,
18770 "type" : "string",
18771 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
18772 },
18773 "tablet" : {
18774 "default" : 1,
18775 "description" : "Enable/disable the USB tablet device.",
18776 "optional" : 1,
18777 "type" : "boolean",
18778 "typetext" : "<boolean>",
4772952b 18779 "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 18780 },
5c1699e5
TL
18781 "tags" : {
18782 "description" : "Tags of the VM. This is only meta information.",
18783 "format" : "pve-tag-list",
18784 "optional" : 1,
18785 "type" : "string",
18786 "typetext" : "<string>"
18787 },
4d47f125
TL
18788 "tdf" : {
18789 "default" : 0,
18790 "description" : "Enable/disable time drift fix.",
18791 "optional" : 1,
18792 "type" : "boolean",
18793 "typetext" : "<boolean>"
18794 },
18795 "template" : {
18796 "default" : 0,
18797 "description" : "Enable/disable Template.",
18798 "optional" : 1,
18799 "type" : "boolean",
18800 "typetext" : "<boolean>"
18801 },
5370fa8c
TL
18802 "tpmstate0" : {
18803 "description" : "Configure a Disk for storing TPM state. 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 size of 4 MiB will always be used instead. The format is also fixed to 'raw'.",
18804 "format" : {
18805 "file" : {
18806 "default_key" : 1,
18807 "description" : "The drive's backing volume.",
18808 "format" : "pve-volume-id-or-qm-path",
18809 "format_description" : "volume",
18810 "type" : "string"
18811 },
18812 "size" : {
18813 "description" : "Disk size. This is purely informational and has no effect.",
18814 "format" : "disk-size",
18815 "format_description" : "DiskSize",
18816 "optional" : 1,
18817 "type" : "string"
18818 },
18819 "version" : {
18820 "default" : "v2.0",
18821 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
18822 "enum" : [
18823 "v1.2",
18824 "v2.0"
18825 ],
18826 "optional" : 1,
18827 "type" : "string"
18828 },
18829 "volume" : {
18830 "alias" : "file"
18831 }
18832 },
18833 "optional" : 1,
18834 "type" : "string",
18835 "typetext" : "[file=]<volume> [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
18836 },
4d47f125
TL
18837 "unused[n]" : {
18838 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
18839 "format" : {
18840 "file" : {
18841 "default_key" : 1,
18842 "description" : "The drive's backing volume.",
18843 "format" : "pve-volume-id",
18844 "format_description" : "volume",
18845 "type" : "string"
18846 },
18847 "volume" : {
18848 "alias" : "file"
18849 }
18850 },
4d47f125
TL
18851 "optional" : 1,
18852 "type" : "string",
c5aa7e14 18853 "typetext" : "[file=]<volume>"
4d47f125
TL
18854 },
18855 "usb[n]" : {
18856 "description" : "Configure an USB device (n is 0 to 4).",
18857 "format" : {
18858 "host" : {
18859 "default_key" : 1,
4772952b 18860 "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
18861 "format" : "pve-qm-usb-device",
18862 "format_description" : "HOSTUSBDEVICE|spice",
18863 "type" : "string"
18864 },
18865 "usb3" : {
18866 "default" : 0,
1c532546 18867 "description" : "Specifies whether if given host option is a USB3 device or port.",
4d47f125
TL
18868 "optional" : 1,
18869 "type" : "boolean"
18870 }
18871 },
18872 "optional" : 1,
18873 "type" : "string",
18874 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
18875 },
18876 "vcpus" : {
18877 "default" : 0,
18878 "description" : "Number of hotplugged vcpus.",
18879 "minimum" : 1,
18880 "optional" : 1,
18881 "type" : "integer",
18882 "typetext" : "<integer> (1 - N)"
18883 },
18884 "vga" : {
e2d681b3
TL
18885 "description" : "Configure the VGA hardware.",
18886 "format" : {
18887 "memory" : {
18888 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
18889 "maximum" : 512,
18890 "minimum" : 4,
18891 "optional" : 1,
18892 "type" : "integer"
18893 },
18894 "type" : {
18895 "default" : "std",
18896 "default_key" : 1,
18897 "description" : "Select the VGA type.",
18898 "enum" : [
18899 "cirrus",
18900 "qxl",
18901 "qxl2",
18902 "qxl3",
18903 "qxl4",
5f26e15b 18904 "none",
e2d681b3
TL
18905 "serial0",
18906 "serial1",
18907 "serial2",
18908 "serial3",
18909 "std",
18910 "virtio",
18911 "vmware"
18912 ],
18913 "optional" : 1,
18914 "type" : "string"
18915 }
18916 },
4d47f125
TL
18917 "optional" : 1,
18918 "type" : "string",
e2d681b3
TL
18919 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
18920 "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
18921 },
18922 "virtio[n]" : {
d2656385 18923 "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.",
4d47f125
TL
18924 "format" : {
18925 "aio" : {
18926 "description" : "AIO type to use.",
18927 "enum" : [
18928 "native",
8f4d9c87
TL
18929 "threads",
18930 "io_uring"
4d47f125
TL
18931 ],
18932 "optional" : 1,
18933 "type" : "string"
18934 },
18935 "backup" : {
18936 "description" : "Whether the drive should be included when making backups.",
18937 "optional" : 1,
18938 "type" : "boolean"
18939 },
18940 "bps" : {
18941 "description" : "Maximum r/w speed in bytes per second.",
18942 "format_description" : "bps",
18943 "optional" : 1,
18944 "type" : "integer"
18945 },
18946 "bps_max_length" : {
18947 "description" : "Maximum length of I/O bursts in seconds.",
18948 "format_description" : "seconds",
18949 "minimum" : 1,
18950 "optional" : 1,
18951 "type" : "integer"
18952 },
18953 "bps_rd" : {
18954 "description" : "Maximum read speed in bytes per second.",
18955 "format_description" : "bps",
18956 "optional" : 1,
18957 "type" : "integer"
18958 },
18959 "bps_rd_length" : {
18960 "alias" : "bps_rd_max_length"
18961 },
18962 "bps_rd_max_length" : {
18963 "description" : "Maximum length of read I/O bursts in seconds.",
18964 "format_description" : "seconds",
18965 "minimum" : 1,
18966 "optional" : 1,
18967 "type" : "integer"
18968 },
18969 "bps_wr" : {
18970 "description" : "Maximum write speed in bytes per second.",
18971 "format_description" : "bps",
18972 "optional" : 1,
18973 "type" : "integer"
18974 },
18975 "bps_wr_length" : {
18976 "alias" : "bps_wr_max_length"
18977 },
18978 "bps_wr_max_length" : {
18979 "description" : "Maximum length of write I/O bursts in seconds.",
18980 "format_description" : "seconds",
18981 "minimum" : 1,
18982 "optional" : 1,
18983 "type" : "integer"
18984 },
18985 "cache" : {
18986 "description" : "The drive's cache mode",
18987 "enum" : [
18988 "none",
18989 "writethrough",
18990 "writeback",
18991 "unsafe",
18992 "directsync"
18993 ],
18994 "optional" : 1,
18995 "type" : "string"
18996 },
18997 "cyls" : {
18998 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
18999 "optional" : 1,
19000 "type" : "integer"
19001 },
19002 "detect_zeroes" : {
19003 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
19004 "optional" : 1,
19005 "type" : "boolean"
19006 },
19007 "discard" : {
19008 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
19009 "enum" : [
19010 "ignore",
19011 "on"
19012 ],
19013 "optional" : 1,
19014 "type" : "string"
19015 },
19016 "file" : {
19017 "default_key" : 1,
19018 "description" : "The drive's backing volume.",
19019 "format" : "pve-volume-id-or-qm-path",
19020 "format_description" : "volume",
19021 "type" : "string"
19022 },
19023 "format" : {
19024 "description" : "The drive's backing file's data format.",
19025 "enum" : [
19026 "raw",
19027 "cow",
19028 "qcow",
19029 "qed",
19030 "qcow2",
19031 "vmdk",
19032 "cloop"
19033 ],
19034 "optional" : 1,
19035 "type" : "string"
19036 },
19037 "heads" : {
19038 "description" : "Force the drive's physical geometry to have a specific head count.",
19039 "optional" : 1,
19040 "type" : "integer"
19041 },
19042 "iops" : {
19043 "description" : "Maximum r/w I/O in operations per second.",
19044 "format_description" : "iops",
19045 "optional" : 1,
19046 "type" : "integer"
19047 },
19048 "iops_max" : {
19049 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
19050 "format_description" : "iops",
19051 "optional" : 1,
19052 "type" : "integer"
19053 },
19054 "iops_max_length" : {
19055 "description" : "Maximum length of I/O bursts in seconds.",
19056 "format_description" : "seconds",
19057 "minimum" : 1,
19058 "optional" : 1,
19059 "type" : "integer"
19060 },
19061 "iops_rd" : {
19062 "description" : "Maximum read I/O in operations per second.",
19063 "format_description" : "iops",
19064 "optional" : 1,
19065 "type" : "integer"
19066 },
19067 "iops_rd_length" : {
19068 "alias" : "iops_rd_max_length"
19069 },
19070 "iops_rd_max" : {
19071 "description" : "Maximum unthrottled read I/O pool in operations per second.",
19072 "format_description" : "iops",
19073 "optional" : 1,
19074 "type" : "integer"
19075 },
19076 "iops_rd_max_length" : {
19077 "description" : "Maximum length of read I/O bursts in seconds.",
19078 "format_description" : "seconds",
19079 "minimum" : 1,
19080 "optional" : 1,
19081 "type" : "integer"
19082 },
19083 "iops_wr" : {
19084 "description" : "Maximum write I/O in operations per second.",
19085 "format_description" : "iops",
19086 "optional" : 1,
19087 "type" : "integer"
19088 },
19089 "iops_wr_length" : {
19090 "alias" : "iops_wr_max_length"
19091 },
19092 "iops_wr_max" : {
19093 "description" : "Maximum unthrottled write I/O pool in operations per second.",
19094 "format_description" : "iops",
19095 "optional" : 1,
19096 "type" : "integer"
19097 },
19098 "iops_wr_max_length" : {
19099 "description" : "Maximum length of write I/O bursts in seconds.",
19100 "format_description" : "seconds",
19101 "minimum" : 1,
19102 "optional" : 1,
19103 "type" : "integer"
19104 },
19105 "iothread" : {
19106 "description" : "Whether to use iothreads for this drive",
19107 "optional" : 1,
19108 "type" : "boolean"
19109 },
19110 "mbps" : {
19111 "description" : "Maximum r/w speed in megabytes per second.",
19112 "format_description" : "mbps",
19113 "optional" : 1,
19114 "type" : "number"
19115 },
19116 "mbps_max" : {
19117 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
19118 "format_description" : "mbps",
19119 "optional" : 1,
19120 "type" : "number"
19121 },
19122 "mbps_rd" : {
19123 "description" : "Maximum read speed in megabytes per second.",
19124 "format_description" : "mbps",
19125 "optional" : 1,
19126 "type" : "number"
19127 },
19128 "mbps_rd_max" : {
19129 "description" : "Maximum unthrottled read pool in megabytes per second.",
19130 "format_description" : "mbps",
19131 "optional" : 1,
19132 "type" : "number"
19133 },
19134 "mbps_wr" : {
19135 "description" : "Maximum write speed in megabytes per second.",
19136 "format_description" : "mbps",
19137 "optional" : 1,
19138 "type" : "number"
19139 },
19140 "mbps_wr_max" : {
19141 "description" : "Maximum unthrottled write pool in megabytes per second.",
19142 "format_description" : "mbps",
19143 "optional" : 1,
19144 "type" : "number"
19145 },
19146 "media" : {
19147 "default" : "disk",
19148 "description" : "The drive's media type.",
19149 "enum" : [
19150 "cdrom",
19151 "disk"
19152 ],
19153 "optional" : 1,
19154 "type" : "string"
19155 },
19156 "replicate" : {
19157 "default" : 1,
19158 "description" : "Whether the drive should considered for replication jobs.",
19159 "optional" : 1,
19160 "type" : "boolean"
19161 },
19162 "rerror" : {
19163 "description" : "Read error action.",
19164 "enum" : [
19165 "ignore",
19166 "report",
19167 "stop"
19168 ],
19169 "optional" : 1,
19170 "type" : "string"
19171 },
5370fa8c
TL
19172 "ro" : {
19173 "description" : "Whether the drive is read-only.",
19174 "optional" : 1,
19175 "type" : "boolean"
19176 },
4d47f125
TL
19177 "secs" : {
19178 "description" : "Force the drive's physical geometry to have a specific sector count.",
19179 "optional" : 1,
19180 "type" : "integer"
19181 },
19182 "serial" : {
19183 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
19184 "format" : "urlencoded",
19185 "format_description" : "serial",
19186 "maxLength" : 60,
19187 "optional" : 1,
19188 "type" : "string"
19189 },
19190 "shared" : {
19191 "default" : 0,
19192 "description" : "Mark this locally-managed volume as available on all nodes",
19193 "optional" : 1,
19194 "type" : "boolean",
19195 "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!"
19196 },
19197 "size" : {
19198 "description" : "Disk size. This is purely informational and has no effect.",
19199 "format" : "disk-size",
19200 "format_description" : "DiskSize",
19201 "optional" : 1,
19202 "type" : "string"
19203 },
19204 "snapshot" : {
19205 "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.",
19206 "optional" : 1,
19207 "type" : "boolean"
19208 },
19209 "trans" : {
19210 "description" : "Force disk geometry bios translation mode.",
19211 "enum" : [
19212 "none",
19213 "lba",
19214 "auto"
19215 ],
19216 "optional" : 1,
19217 "type" : "string"
19218 },
19219 "volume" : {
19220 "alias" : "file"
19221 },
19222 "werror" : {
19223 "description" : "Write error action.",
19224 "enum" : [
19225 "enospc",
19226 "ignore",
19227 "report",
19228 "stop"
19229 ],
19230 "optional" : 1,
19231 "type" : "string"
19232 }
19233 },
19234 "optional" : 1,
19235 "type" : "string",
5370fa8c 19236 "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>] [,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
19237 },
19238 "vmgenid" : {
19239 "default" : "1 (autogenerated)",
19240 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
19241 "format_description" : "UUID",
19242 "optional" : 1,
19243 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
19244 "type" : "string",
4772952b 19245 "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
19246 },
19247 "vmid" : {
19248 "description" : "The (unique) ID of the VM.",
19249 "format" : "pve-vmid",
19250 "minimum" : 1,
19251 "type" : "integer",
19252 "typetext" : "<integer> (1 - N)"
19253 },
19254 "vmstatestorage" : {
19255 "description" : "Default storage for VM state volumes/files.",
19256 "format" : "pve-storage-id",
19257 "optional" : 1,
19258 "type" : "string",
19259 "typetext" : "<string>"
19260 },
19261 "watchdog" : {
19262 "description" : "Create a virtual hardware watchdog device.",
19263 "format" : "pve-qm-watchdog",
19264 "optional" : 1,
19265 "type" : "string",
19266 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
19267 "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)"
19268 }
19269 }
19270 },
19271 "permissions" : {
19272 "check" : [
19273 "perm",
19274 "/vms/{vmid}",
19275 [
19276 "VM.Config.Disk",
19277 "VM.Config.CDROM",
19278 "VM.Config.CPU",
19279 "VM.Config.Memory",
19280 "VM.Config.Network",
19281 "VM.Config.HWType",
ac70d7d1
TL
19282 "VM.Config.Options",
19283 "VM.Config.Cloudinit"
4d47f125
TL
19284 ],
19285 "any",
19286 1
19287 ]
19288 },
19289 "protected" : 1,
19290 "proxyto" : "node",
19291 "returns" : {
19292 "type" : "null"
19293 }
19294 }
19295 },
19296 "leaf" : 1,
19297 "path" : "/nodes/{node}/qemu/{vmid}/config",
19298 "text" : "config"
19299 },
19300 {
19301 "info" : {
19302 "GET" : {
e9cd3bd4
TL
19303 "allowtoken" : 1,
19304 "description" : "Get the virtual machine configuration with both current and pending values.",
4d47f125
TL
19305 "method" : "GET",
19306 "name" : "vm_pending",
19307 "parameters" : {
19308 "additionalProperties" : 0,
19309 "properties" : {
19310 "node" : {
19311 "description" : "The cluster node name.",
19312 "format" : "pve-node",
19313 "type" : "string",
19314 "typetext" : "<string>"
19315 },
19316 "vmid" : {
19317 "description" : "The (unique) ID of the VM.",
19318 "format" : "pve-vmid",
19319 "minimum" : 1,
19320 "type" : "integer",
19321 "typetext" : "<integer> (1 - N)"
19322 }
19323 }
19324 },
19325 "permissions" : {
19326 "check" : [
19327 "perm",
19328 "/vms/{vmid}",
19329 [
19330 "VM.Audit"
19331 ]
19332 ]
19333 },
19334 "proxyto" : "node",
19335 "returns" : {
19336 "items" : {
19337 "properties" : {
19338 "delete" : {
19339 "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
19340 "maximum" : 2,
19341 "minimum" : 0,
19342 "optional" : 1,
19343 "type" : "integer"
19344 },
19345 "key" : {
19346 "description" : "Configuration option name.",
19347 "type" : "string"
19348 },
19349 "pending" : {
19350 "description" : "Pending value.",
19351 "optional" : 1,
19352 "type" : "string"
19353 },
19354 "value" : {
19355 "description" : "Current value.",
19356 "optional" : 1,
19357 "type" : "string"
19358 }
19359 },
19360 "type" : "object"
19361 },
19362 "type" : "array"
19363 }
19364 }
19365 },
19366 "leaf" : 1,
19367 "path" : "/nodes/{node}/qemu/{vmid}/pending",
19368 "text" : "pending"
19369 },
19370 {
19371 "info" : {
19372 "PUT" : {
e9cd3bd4 19373 "allowtoken" : 1,
4d47f125
TL
19374 "description" : "Unlink/delete disk images.",
19375 "method" : "PUT",
19376 "name" : "unlink",
19377 "parameters" : {
19378 "additionalProperties" : 0,
19379 "properties" : {
19380 "force" : {
19381 "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.",
19382 "optional" : 1,
19383 "type" : "boolean",
19384 "typetext" : "<boolean>"
19385 },
19386 "idlist" : {
19387 "description" : "A list of disk IDs you want to delete.",
19388 "format" : "pve-configid-list",
19389 "type" : "string",
19390 "typetext" : "<string>"
19391 },
19392 "node" : {
19393 "description" : "The cluster node name.",
19394 "format" : "pve-node",
19395 "type" : "string",
19396 "typetext" : "<string>"
19397 },
19398 "vmid" : {
19399 "description" : "The (unique) ID of the VM.",
19400 "format" : "pve-vmid",
19401 "minimum" : 1,
19402 "type" : "integer",
19403 "typetext" : "<integer> (1 - N)"
19404 }
19405 }
19406 },
19407 "permissions" : {
19408 "check" : [
19409 "perm",
19410 "/vms/{vmid}",
19411 [
19412 "VM.Config.Disk"
19413 ]
19414 ]
19415 },
19416 "protected" : 1,
19417 "proxyto" : "node",
19418 "returns" : {
19419 "type" : "null"
19420 }
19421 }
19422 },
19423 "leaf" : 1,
19424 "path" : "/nodes/{node}/qemu/{vmid}/unlink",
19425 "text" : "unlink"
19426 },
19427 {
19428 "info" : {
19429 "POST" : {
e9cd3bd4 19430 "allowtoken" : 1,
4d47f125
TL
19431 "description" : "Creates a TCP VNC proxy connections.",
19432 "method" : "POST",
19433 "name" : "vncproxy",
19434 "parameters" : {
19435 "additionalProperties" : 0,
19436 "properties" : {
ac70d7d1
TL
19437 "generate-password" : {
19438 "default" : 0,
19439 "description" : "Generates a random password to be used as ticket instead of the API ticket.",
19440 "optional" : 1,
19441 "type" : "boolean",
19442 "typetext" : "<boolean>"
19443 },
4d47f125
TL
19444 "node" : {
19445 "description" : "The cluster node name.",
19446 "format" : "pve-node",
19447 "type" : "string",
19448 "typetext" : "<string>"
19449 },
19450 "vmid" : {
19451 "description" : "The (unique) ID of the VM.",
19452 "format" : "pve-vmid",
19453 "minimum" : 1,
19454 "type" : "integer",
19455 "typetext" : "<integer> (1 - N)"
19456 },
19457 "websocket" : {
19458 "description" : "starts websockify instead of vncproxy",
19459 "optional" : 1,
19460 "type" : "boolean",
19461 "typetext" : "<boolean>"
19462 }
19463 }
19464 },
19465 "permissions" : {
19466 "check" : [
19467 "perm",
19468 "/vms/{vmid}",
19469 [
19470 "VM.Console"
19471 ]
19472 ]
19473 },
19474 "protected" : 1,
19475 "returns" : {
19476 "additionalProperties" : 0,
19477 "properties" : {
19478 "cert" : {
19479 "type" : "string"
19480 },
ac70d7d1
TL
19481 "password" : {
19482 "description" : "Returned if requested with 'generate-password' param. Consists of printable ASCII characters ('!' .. '~').",
19483 "optional" : 1,
19484 "type" : "string"
19485 },
4d47f125
TL
19486 "port" : {
19487 "type" : "integer"
19488 },
19489 "ticket" : {
19490 "type" : "string"
19491 },
19492 "upid" : {
19493 "type" : "string"
19494 },
19495 "user" : {
19496 "type" : "string"
19497 }
19498 }
19499 }
19500 }
19501 },
19502 "leaf" : 1,
19503 "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
19504 "text" : "vncproxy"
19505 },
19506 {
19507 "info" : {
19508 "POST" : {
e9cd3bd4 19509 "allowtoken" : 1,
4d47f125
TL
19510 "description" : "Creates a TCP proxy connections.",
19511 "method" : "POST",
19512 "name" : "termproxy",
19513 "parameters" : {
19514 "additionalProperties" : 0,
19515 "properties" : {
19516 "node" : {
19517 "description" : "The cluster node name.",
19518 "format" : "pve-node",
19519 "type" : "string",
19520 "typetext" : "<string>"
19521 },
19522 "serial" : {
19523 "description" : "opens a serial terminal (defaults to display)",
19524 "enum" : [
19525 "serial0",
19526 "serial1",
19527 "serial2",
19528 "serial3"
19529 ],
19530 "optional" : 1,
19531 "type" : "string"
19532 },
19533 "vmid" : {
19534 "description" : "The (unique) ID of the VM.",
19535 "format" : "pve-vmid",
19536 "minimum" : 1,
19537 "type" : "integer",
19538 "typetext" : "<integer> (1 - N)"
19539 }
19540 }
19541 },
19542 "permissions" : {
19543 "check" : [
19544 "perm",
19545 "/vms/{vmid}",
19546 [
19547 "VM.Console"
19548 ]
19549 ]
19550 },
19551 "protected" : 1,
19552 "returns" : {
19553 "additionalProperties" : 0,
19554 "properties" : {
19555 "port" : {
19556 "type" : "integer"
19557 },
19558 "ticket" : {
19559 "type" : "string"
19560 },
19561 "upid" : {
19562 "type" : "string"
19563 },
19564 "user" : {
19565 "type" : "string"
19566 }
19567 }
19568 }
19569 }
19570 },
19571 "leaf" : 1,
19572 "path" : "/nodes/{node}/qemu/{vmid}/termproxy",
19573 "text" : "termproxy"
19574 },
19575 {
19576 "info" : {
19577 "GET" : {
e9cd3bd4 19578 "allowtoken" : 1,
4d47f125
TL
19579 "description" : "Opens a weksocket for VNC traffic.",
19580 "method" : "GET",
19581 "name" : "vncwebsocket",
19582 "parameters" : {
19583 "additionalProperties" : 0,
19584 "properties" : {
19585 "node" : {
19586 "description" : "The cluster node name.",
19587 "format" : "pve-node",
19588 "type" : "string",
19589 "typetext" : "<string>"
19590 },
19591 "port" : {
19592 "description" : "Port number returned by previous vncproxy call.",
19593 "maximum" : 5999,
19594 "minimum" : 5900,
19595 "type" : "integer",
19596 "typetext" : "<integer> (5900 - 5999)"
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 "vncticket" : {
19606 "description" : "Ticket from previous call to vncproxy.",
19607 "maxLength" : 512,
19608 "type" : "string",
19609 "typetext" : "<string>"
19610 }
19611 }
19612 },
19613 "permissions" : {
19614 "check" : [
19615 "perm",
19616 "/vms/{vmid}",
19617 [
19618 "VM.Console"
19619 ]
19620 ],
19621 "description" : "You also need to pass a valid ticket (vncticket)."
19622 },
19623 "returns" : {
19624 "properties" : {
19625 "port" : {
19626 "type" : "string"
19627 }
19628 },
19629 "type" : "object"
19630 }
19631 }
19632 },
19633 "leaf" : 1,
19634 "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
19635 "text" : "vncwebsocket"
19636 },
19637 {
19638 "info" : {
19639 "POST" : {
e9cd3bd4 19640 "allowtoken" : 1,
4d47f125
TL
19641 "description" : "Returns a SPICE configuration to connect to the VM.",
19642 "method" : "POST",
19643 "name" : "spiceproxy",
19644 "parameters" : {
19645 "additionalProperties" : 0,
19646 "properties" : {
19647 "node" : {
19648 "description" : "The cluster node name.",
19649 "format" : "pve-node",
19650 "type" : "string",
19651 "typetext" : "<string>"
19652 },
19653 "proxy" : {
19654 "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).",
19655 "format" : "address",
19656 "optional" : 1,
19657 "type" : "string",
19658 "typetext" : "<string>"
19659 },
19660 "vmid" : {
19661 "description" : "The (unique) ID of the VM.",
19662 "format" : "pve-vmid",
19663 "minimum" : 1,
19664 "type" : "integer",
19665 "typetext" : "<integer> (1 - N)"
19666 }
19667 }
19668 },
19669 "permissions" : {
19670 "check" : [
19671 "perm",
19672 "/vms/{vmid}",
19673 [
19674 "VM.Console"
19675 ]
19676 ]
19677 },
19678 "protected" : 1,
19679 "proxyto" : "node",
19680 "returns" : {
19681 "additionalProperties" : 1,
19682 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
19683 "properties" : {
19684 "host" : {
19685 "type" : "string"
19686 },
19687 "password" : {
19688 "type" : "string"
19689 },
19690 "proxy" : {
19691 "type" : "string"
19692 },
19693 "tls-port" : {
19694 "type" : "integer"
19695 },
19696 "type" : {
19697 "type" : "string"
19698 }
19699 }
19700 }
19701 }
19702 },
19703 "leaf" : 1,
19704 "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
19705 "text" : "spiceproxy"
19706 },
19707 {
19708 "children" : [
19709 {
19710 "info" : {
19711 "GET" : {
e9cd3bd4 19712 "allowtoken" : 1,
4d47f125
TL
19713 "description" : "Get virtual machine status.",
19714 "method" : "GET",
19715 "name" : "vm_status",
19716 "parameters" : {
19717 "additionalProperties" : 0,
19718 "properties" : {
19719 "node" : {
19720 "description" : "The cluster node name.",
19721 "format" : "pve-node",
19722 "type" : "string",
19723 "typetext" : "<string>"
19724 },
19725 "vmid" : {
19726 "description" : "The (unique) ID of the VM.",
19727 "format" : "pve-vmid",
19728 "minimum" : 1,
19729 "type" : "integer",
19730 "typetext" : "<integer> (1 - N)"
19731 }
19732 }
19733 },
19734 "permissions" : {
19735 "check" : [
19736 "perm",
19737 "/vms/{vmid}",
19738 [
19739 "VM.Audit"
19740 ]
19741 ]
19742 },
19743 "protected" : 1,
19744 "proxyto" : "node",
19745 "returns" : {
19746 "properties" : {
19747 "agent" : {
19748 "description" : "Qemu GuestAgent enabled in config.",
19749 "optional" : 1,
19750 "type" : "boolean"
19751 },
19752 "cpus" : {
19753 "description" : "Maximum usable CPUs.",
19754 "optional" : 1,
19755 "type" : "number"
19756 },
19757 "ha" : {
19758 "description" : "HA manager service status.",
19759 "type" : "object"
19760 },
95895385
TL
19761 "lock" : {
19762 "description" : "The current config lock, if any.",
19763 "optional" : 1,
19764 "type" : "string"
19765 },
4d47f125
TL
19766 "maxdisk" : {
19767 "description" : "Root disk size in bytes.",
19768 "optional" : 1,
19769 "renderer" : "bytes",
19770 "type" : "integer"
19771 },
19772 "maxmem" : {
19773 "description" : "Maximum memory in bytes.",
19774 "optional" : 1,
19775 "renderer" : "bytes",
19776 "type" : "integer"
19777 },
19778 "name" : {
19779 "description" : "VM name.",
19780 "optional" : 1,
19781 "type" : "string"
19782 },
19783 "pid" : {
19784 "description" : "PID of running qemu process.",
19785 "optional" : 1,
19786 "type" : "integer"
19787 },
19788 "qmpstatus" : {
19789 "description" : "Qemu QMP agent status.",
19790 "optional" : 1,
19791 "type" : "string"
19792 },
d2656385
TL
19793 "running-machine" : {
19794 "description" : "The currently running machine type (if running).",
19795 "optional" : 1,
19796 "type" : "string"
19797 },
19798 "running-qemu" : {
19799 "description" : "The currently running QEMU version (if running).",
19800 "optional" : 1,
19801 "type" : "string"
19802 },
4d47f125
TL
19803 "spice" : {
19804 "description" : "Qemu VGA configuration supports spice.",
19805 "optional" : 1,
19806 "type" : "boolean"
19807 },
19808 "status" : {
19809 "description" : "Qemu process status.",
19810 "enum" : [
19811 "stopped",
19812 "running"
19813 ],
19814 "type" : "string"
19815 },
5c1699e5
TL
19816 "tags" : {
19817 "description" : "The current configured tags, if any",
19818 "optional" : 1,
19819 "type" : "string"
19820 },
4d47f125
TL
19821 "uptime" : {
19822 "description" : "Uptime.",
19823 "optional" : 1,
19824 "renderer" : "duration",
19825 "type" : "integer"
19826 },
19827 "vmid" : {
19828 "description" : "The (unique) ID of the VM.",
19829 "format" : "pve-vmid",
19830 "minimum" : 1,
19831 "type" : "integer"
19832 }
19833 },
19834 "type" : "object"
19835 }
19836 }
19837 },
19838 "leaf" : 1,
19839 "path" : "/nodes/{node}/qemu/{vmid}/status/current",
19840 "text" : "current"
19841 },
19842 {
19843 "info" : {
19844 "POST" : {
e9cd3bd4 19845 "allowtoken" : 1,
4d47f125
TL
19846 "description" : "Start virtual machine.",
19847 "method" : "POST",
19848 "name" : "vm_start",
19849 "parameters" : {
19850 "additionalProperties" : 0,
19851 "properties" : {
c5aa7e14
TL
19852 "force-cpu" : {
19853 "description" : "Override QEMU's -cpu argument with the given string.",
19854 "optional" : 1,
19855 "type" : "string",
19856 "typetext" : "<string>"
19857 },
4d47f125
TL
19858 "machine" : {
19859 "description" : "Specifies the Qemu machine type.",
19860 "maxLength" : 40,
19861 "optional" : 1,
5c1699e5 19862 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
19863 "type" : "string"
19864 },
19865 "migratedfrom" : {
19866 "description" : "The cluster node name.",
19867 "format" : "pve-node",
19868 "optional" : 1,
19869 "type" : "string",
19870 "typetext" : "<string>"
19871 },
19872 "migration_network" : {
19873 "description" : "CIDR of the (sub) network that is used for migration.",
19874 "format" : "CIDR",
19875 "optional" : 1,
19876 "type" : "string",
19877 "typetext" : "<string>"
19878 },
19879 "migration_type" : {
19880 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
19881 "enum" : [
19882 "secure",
19883 "insecure"
19884 ],
19885 "optional" : 1,
19886 "type" : "string"
19887 },
19888 "node" : {
19889 "description" : "The cluster node name.",
19890 "format" : "pve-node",
19891 "type" : "string",
19892 "typetext" : "<string>"
19893 },
19894 "skiplock" : {
19895 "description" : "Ignore locks - only root is allowed to use this option.",
19896 "optional" : 1,
19897 "type" : "boolean",
19898 "typetext" : "<boolean>"
19899 },
19900 "stateuri" : {
19901 "description" : "Some command save/restore state from this location.",
19902 "maxLength" : 128,
19903 "optional" : 1,
19904 "type" : "string",
19905 "typetext" : "<string>"
19906 },
19907 "targetstorage" : {
c5aa7e14 19908 "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 19909 "format" : "storage-pair-list",
4d47f125
TL
19910 "optional" : 1,
19911 "type" : "string",
19912 "typetext" : "<string>"
19913 },
e9cd3bd4
TL
19914 "timeout" : {
19915 "default" : "max(30, vm memory in GiB)",
19916 "description" : "Wait maximal timeout seconds.",
19917 "minimum" : 0,
19918 "optional" : 1,
19919 "type" : "integer",
19920 "typetext" : "<integer> (0 - N)"
19921 },
4d47f125
TL
19922 "vmid" : {
19923 "description" : "The (unique) ID of the VM.",
19924 "format" : "pve-vmid",
19925 "minimum" : 1,
19926 "type" : "integer",
19927 "typetext" : "<integer> (1 - N)"
19928 }
19929 }
19930 },
19931 "permissions" : {
19932 "check" : [
19933 "perm",
19934 "/vms/{vmid}",
19935 [
19936 "VM.PowerMgmt"
19937 ]
19938 ]
19939 },
19940 "protected" : 1,
19941 "proxyto" : "node",
19942 "returns" : {
19943 "type" : "string"
19944 }
19945 }
19946 },
19947 "leaf" : 1,
19948 "path" : "/nodes/{node}/qemu/{vmid}/status/start",
19949 "text" : "start"
19950 },
19951 {
19952 "info" : {
19953 "POST" : {
e9cd3bd4 19954 "allowtoken" : 1,
4d47f125
TL
19955 "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",
19956 "method" : "POST",
19957 "name" : "vm_stop",
19958 "parameters" : {
19959 "additionalProperties" : 0,
19960 "properties" : {
19961 "keepActive" : {
19962 "default" : 0,
19963 "description" : "Do not deactivate storage volumes.",
19964 "optional" : 1,
19965 "type" : "boolean",
19966 "typetext" : "<boolean>"
19967 },
19968 "migratedfrom" : {
19969 "description" : "The cluster node name.",
19970 "format" : "pve-node",
19971 "optional" : 1,
19972 "type" : "string",
19973 "typetext" : "<string>"
19974 },
19975 "node" : {
19976 "description" : "The cluster node name.",
19977 "format" : "pve-node",
19978 "type" : "string",
19979 "typetext" : "<string>"
19980 },
19981 "skiplock" : {
19982 "description" : "Ignore locks - only root is allowed to use this option.",
19983 "optional" : 1,
19984 "type" : "boolean",
19985 "typetext" : "<boolean>"
19986 },
19987 "timeout" : {
19988 "description" : "Wait maximal timeout seconds.",
19989 "minimum" : 0,
19990 "optional" : 1,
19991 "type" : "integer",
19992 "typetext" : "<integer> (0 - N)"
19993 },
19994 "vmid" : {
19995 "description" : "The (unique) ID of the VM.",
19996 "format" : "pve-vmid",
19997 "minimum" : 1,
19998 "type" : "integer",
19999 "typetext" : "<integer> (1 - N)"
20000 }
20001 }
20002 },
20003 "permissions" : {
20004 "check" : [
20005 "perm",
20006 "/vms/{vmid}",
20007 [
20008 "VM.PowerMgmt"
20009 ]
20010 ]
20011 },
20012 "protected" : 1,
20013 "proxyto" : "node",
20014 "returns" : {
20015 "type" : "string"
20016 }
20017 }
20018 },
20019 "leaf" : 1,
20020 "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
20021 "text" : "stop"
20022 },
20023 {
20024 "info" : {
20025 "POST" : {
e9cd3bd4 20026 "allowtoken" : 1,
4d47f125
TL
20027 "description" : "Reset virtual machine.",
20028 "method" : "POST",
20029 "name" : "vm_reset",
20030 "parameters" : {
20031 "additionalProperties" : 0,
20032 "properties" : {
20033 "node" : {
20034 "description" : "The cluster node name.",
20035 "format" : "pve-node",
20036 "type" : "string",
20037 "typetext" : "<string>"
20038 },
20039 "skiplock" : {
20040 "description" : "Ignore locks - only root is allowed to use this option.",
20041 "optional" : 1,
20042 "type" : "boolean",
20043 "typetext" : "<boolean>"
20044 },
20045 "vmid" : {
20046 "description" : "The (unique) ID of the VM.",
20047 "format" : "pve-vmid",
20048 "minimum" : 1,
20049 "type" : "integer",
20050 "typetext" : "<integer> (1 - N)"
20051 }
20052 }
20053 },
20054 "permissions" : {
20055 "check" : [
20056 "perm",
20057 "/vms/{vmid}",
20058 [
20059 "VM.PowerMgmt"
20060 ]
20061 ]
20062 },
20063 "protected" : 1,
20064 "proxyto" : "node",
20065 "returns" : {
20066 "type" : "string"
20067 }
20068 }
20069 },
20070 "leaf" : 1,
20071 "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
20072 "text" : "reset"
20073 },
20074 {
20075 "info" : {
20076 "POST" : {
e9cd3bd4 20077 "allowtoken" : 1,
4d47f125
TL
20078 "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.",
20079 "method" : "POST",
20080 "name" : "vm_shutdown",
20081 "parameters" : {
20082 "additionalProperties" : 0,
20083 "properties" : {
20084 "forceStop" : {
20085 "default" : 0,
20086 "description" : "Make sure the VM stops.",
20087 "optional" : 1,
20088 "type" : "boolean",
20089 "typetext" : "<boolean>"
20090 },
20091 "keepActive" : {
20092 "default" : 0,
20093 "description" : "Do not deactivate storage volumes.",
20094 "optional" : 1,
20095 "type" : "boolean",
20096 "typetext" : "<boolean>"
20097 },
20098 "node" : {
20099 "description" : "The cluster node name.",
20100 "format" : "pve-node",
20101 "type" : "string",
20102 "typetext" : "<string>"
20103 },
20104 "skiplock" : {
20105 "description" : "Ignore locks - only root is allowed to use this option.",
20106 "optional" : 1,
20107 "type" : "boolean",
20108 "typetext" : "<boolean>"
20109 },
20110 "timeout" : {
20111 "description" : "Wait maximal timeout seconds.",
20112 "minimum" : 0,
20113 "optional" : 1,
20114 "type" : "integer",
20115 "typetext" : "<integer> (0 - N)"
20116 },
20117 "vmid" : {
20118 "description" : "The (unique) ID of the VM.",
20119 "format" : "pve-vmid",
20120 "minimum" : 1,
20121 "type" : "integer",
20122 "typetext" : "<integer> (1 - N)"
20123 }
20124 }
20125 },
20126 "permissions" : {
20127 "check" : [
20128 "perm",
20129 "/vms/{vmid}",
20130 [
20131 "VM.PowerMgmt"
20132 ]
20133 ]
20134 },
20135 "protected" : 1,
20136 "proxyto" : "node",
20137 "returns" : {
20138 "type" : "string"
20139 }
20140 }
20141 },
20142 "leaf" : 1,
20143 "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
20144 "text" : "shutdown"
20145 },
1c532546
TL
20146 {
20147 "info" : {
20148 "POST" : {
e9cd3bd4 20149 "allowtoken" : 1,
1c532546
TL
20150 "description" : "Reboot the VM by shutting it down, and starting it again. Applies pending changes.",
20151 "method" : "POST",
20152 "name" : "vm_reboot",
20153 "parameters" : {
20154 "additionalProperties" : 0,
20155 "properties" : {
20156 "node" : {
20157 "description" : "The cluster node name.",
20158 "format" : "pve-node",
20159 "type" : "string",
20160 "typetext" : "<string>"
20161 },
20162 "timeout" : {
20163 "description" : "Wait maximal timeout seconds for the shutdown.",
20164 "minimum" : 0,
20165 "optional" : 1,
20166 "type" : "integer",
20167 "typetext" : "<integer> (0 - N)"
20168 },
20169 "vmid" : {
20170 "description" : "The (unique) ID of the VM.",
20171 "format" : "pve-vmid",
20172 "minimum" : 1,
20173 "type" : "integer",
20174 "typetext" : "<integer> (1 - N)"
20175 }
20176 }
20177 },
20178 "permissions" : {
20179 "check" : [
20180 "perm",
20181 "/vms/{vmid}",
20182 [
20183 "VM.PowerMgmt"
20184 ]
20185 ]
20186 },
20187 "protected" : 1,
20188 "proxyto" : "node",
20189 "returns" : {
20190 "type" : "string"
20191 }
20192 }
20193 },
20194 "leaf" : 1,
20195 "path" : "/nodes/{node}/qemu/{vmid}/status/reboot",
20196 "text" : "reboot"
20197 },
4d47f125
TL
20198 {
20199 "info" : {
20200 "POST" : {
e9cd3bd4 20201 "allowtoken" : 1,
4d47f125
TL
20202 "description" : "Suspend virtual machine.",
20203 "method" : "POST",
20204 "name" : "vm_suspend",
20205 "parameters" : {
20206 "additionalProperties" : 0,
20207 "properties" : {
20208 "node" : {
20209 "description" : "The cluster node name.",
20210 "format" : "pve-node",
20211 "type" : "string",
20212 "typetext" : "<string>"
20213 },
20214 "skiplock" : {
20215 "description" : "Ignore locks - only root is allowed to use this option.",
20216 "optional" : 1,
20217 "type" : "boolean",
20218 "typetext" : "<boolean>"
20219 },
95895385
TL
20220 "statestorage" : {
20221 "description" : "The storage for the VM state",
20222 "format" : "pve-storage-id",
20223 "optional" : 1,
20224 "requires" : "todisk",
20225 "type" : "string",
20226 "typetext" : "<string>"
20227 },
20228 "todisk" : {
20229 "default" : 0,
20230 "description" : "If set, suspends the VM to disk. Will be resumed on next VM start.",
20231 "optional" : 1,
20232 "type" : "boolean",
20233 "typetext" : "<boolean>"
20234 },
4d47f125
TL
20235 "vmid" : {
20236 "description" : "The (unique) ID of the VM.",
20237 "format" : "pve-vmid",
20238 "minimum" : 1,
20239 "type" : "integer",
20240 "typetext" : "<integer> (1 - N)"
20241 }
20242 }
20243 },
20244 "permissions" : {
20245 "check" : [
20246 "perm",
20247 "/vms/{vmid}",
20248 [
20249 "VM.PowerMgmt"
20250 ]
e9cd3bd4
TL
20251 ],
20252 "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
20253 },
20254 "protected" : 1,
20255 "proxyto" : "node",
20256 "returns" : {
20257 "type" : "string"
20258 }
20259 }
20260 },
20261 "leaf" : 1,
20262 "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
20263 "text" : "suspend"
20264 },
20265 {
20266 "info" : {
20267 "POST" : {
e9cd3bd4 20268 "allowtoken" : 1,
4d47f125
TL
20269 "description" : "Resume virtual machine.",
20270 "method" : "POST",
20271 "name" : "vm_resume",
20272 "parameters" : {
20273 "additionalProperties" : 0,
20274 "properties" : {
20275 "nocheck" : {
20276 "optional" : 1,
20277 "type" : "boolean",
20278 "typetext" : "<boolean>"
20279 },
20280 "node" : {
20281 "description" : "The cluster node name.",
20282 "format" : "pve-node",
20283 "type" : "string",
20284 "typetext" : "<string>"
20285 },
20286 "skiplock" : {
20287 "description" : "Ignore locks - only root is allowed to use this option.",
20288 "optional" : 1,
20289 "type" : "boolean",
20290 "typetext" : "<boolean>"
20291 },
20292 "vmid" : {
20293 "description" : "The (unique) ID of the VM.",
20294 "format" : "pve-vmid",
20295 "minimum" : 1,
20296 "type" : "integer",
20297 "typetext" : "<integer> (1 - N)"
20298 }
20299 }
20300 },
20301 "permissions" : {
20302 "check" : [
20303 "perm",
20304 "/vms/{vmid}",
20305 [
20306 "VM.PowerMgmt"
20307 ]
20308 ]
20309 },
20310 "protected" : 1,
20311 "proxyto" : "node",
20312 "returns" : {
20313 "type" : "string"
20314 }
20315 }
20316 },
20317 "leaf" : 1,
20318 "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
20319 "text" : "resume"
20320 }
20321 ],
20322 "info" : {
20323 "GET" : {
e9cd3bd4 20324 "allowtoken" : 1,
4d47f125
TL
20325 "description" : "Directory index",
20326 "method" : "GET",
20327 "name" : "vmcmdidx",
20328 "parameters" : {
20329 "additionalProperties" : 0,
20330 "properties" : {
20331 "node" : {
20332 "description" : "The cluster node name.",
20333 "format" : "pve-node",
20334 "type" : "string",
20335 "typetext" : "<string>"
20336 },
20337 "vmid" : {
20338 "description" : "The (unique) ID of the VM.",
20339 "format" : "pve-vmid",
20340 "minimum" : 1,
20341 "type" : "integer",
20342 "typetext" : "<integer> (1 - N)"
20343 }
20344 }
20345 },
20346 "permissions" : {
20347 "user" : "all"
20348 },
20349 "proxyto" : "node",
20350 "returns" : {
20351 "items" : {
20352 "properties" : {
20353 "subdir" : {
20354 "type" : "string"
20355 }
20356 },
20357 "type" : "object"
20358 },
20359 "links" : [
20360 {
20361 "href" : "{subdir}",
20362 "rel" : "child"
20363 }
20364 ],
20365 "type" : "array"
20366 }
20367 }
20368 },
20369 "leaf" : 0,
20370 "path" : "/nodes/{node}/qemu/{vmid}/status",
20371 "text" : "status"
20372 },
20373 {
20374 "info" : {
20375 "PUT" : {
e9cd3bd4 20376 "allowtoken" : 1,
4d47f125
TL
20377 "description" : "Send key event to virtual machine.",
20378 "method" : "PUT",
20379 "name" : "vm_sendkey",
20380 "parameters" : {
20381 "additionalProperties" : 0,
20382 "properties" : {
20383 "key" : {
20384 "description" : "The key (qemu monitor encoding).",
20385 "type" : "string",
20386 "typetext" : "<string>"
20387 },
20388 "node" : {
20389 "description" : "The cluster node name.",
20390 "format" : "pve-node",
20391 "type" : "string",
20392 "typetext" : "<string>"
20393 },
20394 "skiplock" : {
20395 "description" : "Ignore locks - only root is allowed to use this option.",
20396 "optional" : 1,
20397 "type" : "boolean",
20398 "typetext" : "<boolean>"
20399 },
20400 "vmid" : {
20401 "description" : "The (unique) ID of the VM.",
20402 "format" : "pve-vmid",
20403 "minimum" : 1,
20404 "type" : "integer",
20405 "typetext" : "<integer> (1 - N)"
20406 }
20407 }
20408 },
20409 "permissions" : {
20410 "check" : [
20411 "perm",
20412 "/vms/{vmid}",
20413 [
20414 "VM.Console"
20415 ]
20416 ]
20417 },
20418 "protected" : 1,
20419 "proxyto" : "node",
20420 "returns" : {
20421 "type" : "null"
20422 }
20423 }
20424 },
20425 "leaf" : 1,
20426 "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
20427 "text" : "sendkey"
20428 },
20429 {
20430 "info" : {
20431 "GET" : {
e9cd3bd4 20432 "allowtoken" : 1,
4d47f125
TL
20433 "description" : "Check if feature for virtual machine is available.",
20434 "method" : "GET",
20435 "name" : "vm_feature",
20436 "parameters" : {
20437 "additionalProperties" : 0,
20438 "properties" : {
20439 "feature" : {
20440 "description" : "Feature to check.",
20441 "enum" : [
20442 "snapshot",
20443 "clone",
20444 "copy"
20445 ],
20446 "type" : "string"
20447 },
20448 "node" : {
20449 "description" : "The cluster node name.",
20450 "format" : "pve-node",
20451 "type" : "string",
20452 "typetext" : "<string>"
20453 },
20454 "snapname" : {
20455 "description" : "The name of the snapshot.",
20456 "format" : "pve-configid",
20457 "maxLength" : 40,
20458 "optional" : 1,
20459 "type" : "string",
20460 "typetext" : "<string>"
20461 },
20462 "vmid" : {
20463 "description" : "The (unique) ID of the VM.",
20464 "format" : "pve-vmid",
20465 "minimum" : 1,
20466 "type" : "integer",
20467 "typetext" : "<integer> (1 - N)"
20468 }
20469 }
20470 },
20471 "permissions" : {
20472 "check" : [
20473 "perm",
20474 "/vms/{vmid}",
20475 [
20476 "VM.Audit"
20477 ]
20478 ]
20479 },
20480 "protected" : 1,
20481 "proxyto" : "node",
20482 "returns" : {
20483 "properties" : {
20484 "hasFeature" : {
20485 "type" : "boolean"
20486 },
20487 "nodes" : {
20488 "items" : {
20489 "type" : "string"
20490 },
20491 "type" : "array"
20492 }
20493 },
20494 "type" : "object"
20495 }
20496 }
20497 },
20498 "leaf" : 1,
20499 "path" : "/nodes/{node}/qemu/{vmid}/feature",
20500 "text" : "feature"
20501 },
20502 {
20503 "info" : {
20504 "POST" : {
e9cd3bd4 20505 "allowtoken" : 1,
4d47f125
TL
20506 "description" : "Create a copy of virtual machine/template.",
20507 "method" : "POST",
20508 "name" : "clone_vm",
20509 "parameters" : {
20510 "additionalProperties" : 0,
20511 "properties" : {
95895385
TL
20512 "bwlimit" : {
20513 "default" : "clone limit from datacenter or storage config",
20514 "description" : "Override I/O bandwidth limit (in KiB/s).",
20515 "minimum" : "0",
20516 "optional" : 1,
20517 "type" : "integer",
20518 "typetext" : "<integer> (0 - N)"
20519 },
4d47f125
TL
20520 "description" : {
20521 "description" : "Description for the new VM.",
20522 "optional" : 1,
20523 "type" : "string",
20524 "typetext" : "<string>"
20525 },
20526 "format" : {
20527 "description" : "Target format for file storage. Only valid for full clone.",
20528 "enum" : [
20529 "raw",
20530 "qcow2",
20531 "vmdk"
20532 ],
20533 "optional" : 1,
20534 "type" : "string"
20535 },
20536 "full" : {
20537 "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.",
20538 "optional" : 1,
20539 "type" : "boolean",
20540 "typetext" : "<boolean>"
20541 },
20542 "name" : {
20543 "description" : "Set a name for the new VM.",
20544 "format" : "dns-name",
20545 "optional" : 1,
20546 "type" : "string",
20547 "typetext" : "<string>"
20548 },
20549 "newid" : {
20550 "description" : "VMID for the clone.",
20551 "format" : "pve-vmid",
20552 "minimum" : 1,
20553 "type" : "integer",
20554 "typetext" : "<integer> (1 - N)"
20555 },
20556 "node" : {
20557 "description" : "The cluster node name.",
20558 "format" : "pve-node",
20559 "type" : "string",
20560 "typetext" : "<string>"
20561 },
20562 "pool" : {
20563 "description" : "Add the new VM to the specified pool.",
20564 "format" : "pve-poolid",
20565 "optional" : 1,
20566 "type" : "string",
20567 "typetext" : "<string>"
20568 },
20569 "snapname" : {
20570 "description" : "The name of the snapshot.",
20571 "format" : "pve-configid",
20572 "maxLength" : 40,
20573 "optional" : 1,
20574 "type" : "string",
20575 "typetext" : "<string>"
20576 },
20577 "storage" : {
20578 "description" : "Target storage for full clone.",
20579 "format" : "pve-storage-id",
20580 "optional" : 1,
20581 "type" : "string",
20582 "typetext" : "<string>"
20583 },
20584 "target" : {
20585 "description" : "Target node. Only allowed if the original VM is on shared storage.",
20586 "format" : "pve-node",
20587 "optional" : 1,
20588 "type" : "string",
20589 "typetext" : "<string>"
20590 },
20591 "vmid" : {
20592 "description" : "The (unique) ID of the VM.",
20593 "format" : "pve-vmid",
20594 "minimum" : 1,
20595 "type" : "integer",
20596 "typetext" : "<integer> (1 - N)"
20597 }
20598 }
20599 },
20600 "permissions" : {
20601 "check" : [
20602 "and",
20603 [
20604 "perm",
20605 "/vms/{vmid}",
20606 [
20607 "VM.Clone"
20608 ]
20609 ],
20610 [
20611 "or",
20612 [
20613 "perm",
20614 "/vms/{newid}",
20615 [
20616 "VM.Allocate"
20617 ]
20618 ],
20619 [
20620 "perm",
20621 "/pool/{pool}",
20622 [
20623 "VM.Allocate"
20624 ],
20625 "require_param",
20626 "pool"
20627 ]
20628 ]
20629 ],
20630 "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."
20631 },
20632 "protected" : 1,
20633 "proxyto" : "node",
20634 "returns" : {
20635 "type" : "string"
20636 }
20637 }
20638 },
20639 "leaf" : 1,
20640 "path" : "/nodes/{node}/qemu/{vmid}/clone",
20641 "text" : "clone"
20642 },
20643 {
20644 "info" : {
20645 "POST" : {
e9cd3bd4 20646 "allowtoken" : 1,
5370fa8c 20647 "description" : "Move volume to different storage or to a different VM.",
4d47f125
TL
20648 "method" : "POST",
20649 "name" : "move_vm_disk",
20650 "parameters" : {
20651 "additionalProperties" : 0,
20652 "properties" : {
95895385
TL
20653 "bwlimit" : {
20654 "default" : "move limit from datacenter or storage config",
20655 "description" : "Override I/O bandwidth limit (in KiB/s).",
20656 "minimum" : "0",
20657 "optional" : 1,
20658 "type" : "integer",
20659 "typetext" : "<integer> (0 - N)"
20660 },
4d47f125
TL
20661 "delete" : {
20662 "default" : 0,
20663 "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
20664 "optional" : 1,
20665 "type" : "boolean",
20666 "typetext" : "<boolean>"
20667 },
20668 "digest" : {
5370fa8c 20669 "description" : "Prevent changes if current configuration file has different SHA1\"\n\t\t .\" digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
20670 "maxLength" : 40,
20671 "optional" : 1,
20672 "type" : "string",
20673 "typetext" : "<string>"
20674 },
20675 "disk" : {
20676 "description" : "The disk you want to move.",
20677 "enum" : [
20678 "ide0",
20679 "ide1",
20680 "ide2",
20681 "ide3",
20682 "scsi0",
20683 "scsi1",
20684 "scsi2",
20685 "scsi3",
20686 "scsi4",
20687 "scsi5",
20688 "scsi6",
20689 "scsi7",
20690 "scsi8",
20691 "scsi9",
20692 "scsi10",
20693 "scsi11",
20694 "scsi12",
20695 "scsi13",
e9cd3bd4
TL
20696 "scsi14",
20697 "scsi15",
20698 "scsi16",
20699 "scsi17",
20700 "scsi18",
20701 "scsi19",
20702 "scsi20",
20703 "scsi21",
20704 "scsi22",
20705 "scsi23",
20706 "scsi24",
20707 "scsi25",
20708 "scsi26",
20709 "scsi27",
20710 "scsi28",
20711 "scsi29",
20712 "scsi30",
4d47f125
TL
20713 "virtio0",
20714 "virtio1",
20715 "virtio2",
20716 "virtio3",
20717 "virtio4",
20718 "virtio5",
20719 "virtio6",
20720 "virtio7",
20721 "virtio8",
20722 "virtio9",
20723 "virtio10",
20724 "virtio11",
20725 "virtio12",
20726 "virtio13",
20727 "virtio14",
20728 "virtio15",
20729 "sata0",
20730 "sata1",
20731 "sata2",
20732 "sata3",
20733 "sata4",
20734 "sata5",
5370fa8c
TL
20735 "efidisk0",
20736 "tpmstate0",
20737 "unused0",
20738 "unused1",
20739 "unused2",
20740 "unused3",
20741 "unused4",
20742 "unused5",
20743 "unused6",
20744 "unused7",
20745 "unused8",
20746 "unused9",
20747 "unused10",
20748 "unused11",
20749 "unused12",
20750 "unused13",
20751 "unused14",
20752 "unused15",
20753 "unused16",
20754 "unused17",
20755 "unused18",
20756 "unused19",
20757 "unused20",
20758 "unused21",
20759 "unused22",
20760 "unused23",
20761 "unused24",
20762 "unused25",
20763 "unused26",
20764 "unused27",
20765 "unused28",
20766 "unused29",
20767 "unused30",
20768 "unused31",
20769 "unused32",
20770 "unused33",
20771 "unused34",
20772 "unused35",
20773 "unused36",
20774 "unused37",
20775 "unused38",
20776 "unused39",
20777 "unused40",
20778 "unused41",
20779 "unused42",
20780 "unused43",
20781 "unused44",
20782 "unused45",
20783 "unused46",
20784 "unused47",
20785 "unused48",
20786 "unused49",
20787 "unused50",
20788 "unused51",
20789 "unused52",
20790 "unused53",
20791 "unused54",
20792 "unused55",
20793 "unused56",
20794 "unused57",
20795 "unused58",
20796 "unused59",
20797 "unused60",
20798 "unused61",
20799 "unused62",
20800 "unused63",
20801 "unused64",
20802 "unused65",
20803 "unused66",
20804 "unused67",
20805 "unused68",
20806 "unused69",
20807 "unused70",
20808 "unused71",
20809 "unused72",
20810 "unused73",
20811 "unused74",
20812 "unused75",
20813 "unused76",
20814 "unused77",
20815 "unused78",
20816 "unused79",
20817 "unused80",
20818 "unused81",
20819 "unused82",
20820 "unused83",
20821 "unused84",
20822 "unused85",
20823 "unused86",
20824 "unused87",
20825 "unused88",
20826 "unused89",
20827 "unused90",
20828 "unused91",
20829 "unused92",
20830 "unused93",
20831 "unused94",
20832 "unused95",
20833 "unused96",
20834 "unused97",
20835 "unused98",
20836 "unused99",
20837 "unused100",
20838 "unused101",
20839 "unused102",
20840 "unused103",
20841 "unused104",
20842 "unused105",
20843 "unused106",
20844 "unused107",
20845 "unused108",
20846 "unused109",
20847 "unused110",
20848 "unused111",
20849 "unused112",
20850 "unused113",
20851 "unused114",
20852 "unused115",
20853 "unused116",
20854 "unused117",
20855 "unused118",
20856 "unused119",
20857 "unused120",
20858 "unused121",
20859 "unused122",
20860 "unused123",
20861 "unused124",
20862 "unused125",
20863 "unused126",
20864 "unused127",
20865 "unused128",
20866 "unused129",
20867 "unused130",
20868 "unused131",
20869 "unused132",
20870 "unused133",
20871 "unused134",
20872 "unused135",
20873 "unused136",
20874 "unused137",
20875 "unused138",
20876 "unused139",
20877 "unused140",
20878 "unused141",
20879 "unused142",
20880 "unused143",
20881 "unused144",
20882 "unused145",
20883 "unused146",
20884 "unused147",
20885 "unused148",
20886 "unused149",
20887 "unused150",
20888 "unused151",
20889 "unused152",
20890 "unused153",
20891 "unused154",
20892 "unused155",
20893 "unused156",
20894 "unused157",
20895 "unused158",
20896 "unused159",
20897 "unused160",
20898 "unused161",
20899 "unused162",
20900 "unused163",
20901 "unused164",
20902 "unused165",
20903 "unused166",
20904 "unused167",
20905 "unused168",
20906 "unused169",
20907 "unused170",
20908 "unused171",
20909 "unused172",
20910 "unused173",
20911 "unused174",
20912 "unused175",
20913 "unused176",
20914 "unused177",
20915 "unused178",
20916 "unused179",
20917 "unused180",
20918 "unused181",
20919 "unused182",
20920 "unused183",
20921 "unused184",
20922 "unused185",
20923 "unused186",
20924 "unused187",
20925 "unused188",
20926 "unused189",
20927 "unused190",
20928 "unused191",
20929 "unused192",
20930 "unused193",
20931 "unused194",
20932 "unused195",
20933 "unused196",
20934 "unused197",
20935 "unused198",
20936 "unused199",
20937 "unused200",
20938 "unused201",
20939 "unused202",
20940 "unused203",
20941 "unused204",
20942 "unused205",
20943 "unused206",
20944 "unused207",
20945 "unused208",
20946 "unused209",
20947 "unused210",
20948 "unused211",
20949 "unused212",
20950 "unused213",
20951 "unused214",
20952 "unused215",
20953 "unused216",
20954 "unused217",
20955 "unused218",
20956 "unused219",
20957 "unused220",
20958 "unused221",
20959 "unused222",
20960 "unused223",
20961 "unused224",
20962 "unused225",
20963 "unused226",
20964 "unused227",
20965 "unused228",
20966 "unused229",
20967 "unused230",
20968 "unused231",
20969 "unused232",
20970 "unused233",
20971 "unused234",
20972 "unused235",
20973 "unused236",
20974 "unused237",
20975 "unused238",
20976 "unused239",
20977 "unused240",
20978 "unused241",
20979 "unused242",
20980 "unused243",
20981 "unused244",
20982 "unused245",
20983 "unused246",
20984 "unused247",
20985 "unused248",
20986 "unused249",
20987 "unused250",
20988 "unused251",
20989 "unused252",
20990 "unused253",
20991 "unused254",
20992 "unused255"
4d47f125
TL
20993 ],
20994 "type" : "string"
20995 },
20996 "format" : {
20997 "description" : "Target Format.",
20998 "enum" : [
20999 "raw",
21000 "qcow2",
21001 "vmdk"
21002 ],
21003 "optional" : 1,
21004 "type" : "string"
21005 },
21006 "node" : {
21007 "description" : "The cluster node name.",
21008 "format" : "pve-node",
21009 "type" : "string",
21010 "typetext" : "<string>"
21011 },
21012 "storage" : {
21013 "description" : "Target storage.",
21014 "format" : "pve-storage-id",
5370fa8c 21015 "optional" : 1,
4d47f125
TL
21016 "type" : "string",
21017 "typetext" : "<string>"
21018 },
5370fa8c
TL
21019 "target-digest" : {
21020 "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.",
21021 "maxLength" : 40,
21022 "optional" : 1,
21023 "type" : "string",
21024 "typetext" : "<string>"
21025 },
21026 "target-disk" : {
21027 "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.",
21028 "enum" : [
21029 "ide0",
21030 "ide1",
21031 "ide2",
21032 "ide3",
21033 "scsi0",
21034 "scsi1",
21035 "scsi2",
21036 "scsi3",
21037 "scsi4",
21038 "scsi5",
21039 "scsi6",
21040 "scsi7",
21041 "scsi8",
21042 "scsi9",
21043 "scsi10",
21044 "scsi11",
21045 "scsi12",
21046 "scsi13",
21047 "scsi14",
21048 "scsi15",
21049 "scsi16",
21050 "scsi17",
21051 "scsi18",
21052 "scsi19",
21053 "scsi20",
21054 "scsi21",
21055 "scsi22",
21056 "scsi23",
21057 "scsi24",
21058 "scsi25",
21059 "scsi26",
21060 "scsi27",
21061 "scsi28",
21062 "scsi29",
21063 "scsi30",
21064 "virtio0",
21065 "virtio1",
21066 "virtio2",
21067 "virtio3",
21068 "virtio4",
21069 "virtio5",
21070 "virtio6",
21071 "virtio7",
21072 "virtio8",
21073 "virtio9",
21074 "virtio10",
21075 "virtio11",
21076 "virtio12",
21077 "virtio13",
21078 "virtio14",
21079 "virtio15",
21080 "sata0",
21081 "sata1",
21082 "sata2",
21083 "sata3",
21084 "sata4",
21085 "sata5",
21086 "efidisk0",
21087 "tpmstate0",
21088 "unused0",
21089 "unused1",
21090 "unused2",
21091 "unused3",
21092 "unused4",
21093 "unused5",
21094 "unused6",
21095 "unused7",
21096 "unused8",
21097 "unused9",
21098 "unused10",
21099 "unused11",
21100 "unused12",
21101 "unused13",
21102 "unused14",
21103 "unused15",
21104 "unused16",
21105 "unused17",
21106 "unused18",
21107 "unused19",
21108 "unused20",
21109 "unused21",
21110 "unused22",
21111 "unused23",
21112 "unused24",
21113 "unused25",
21114 "unused26",
21115 "unused27",
21116 "unused28",
21117 "unused29",
21118 "unused30",
21119 "unused31",
21120 "unused32",
21121 "unused33",
21122 "unused34",
21123 "unused35",
21124 "unused36",
21125 "unused37",
21126 "unused38",
21127 "unused39",
21128 "unused40",
21129 "unused41",
21130 "unused42",
21131 "unused43",
21132 "unused44",
21133 "unused45",
21134 "unused46",
21135 "unused47",
21136 "unused48",
21137 "unused49",
21138 "unused50",
21139 "unused51",
21140 "unused52",
21141 "unused53",
21142 "unused54",
21143 "unused55",
21144 "unused56",
21145 "unused57",
21146 "unused58",
21147 "unused59",
21148 "unused60",
21149 "unused61",
21150 "unused62",
21151 "unused63",
21152 "unused64",
21153 "unused65",
21154 "unused66",
21155 "unused67",
21156 "unused68",
21157 "unused69",
21158 "unused70",
21159 "unused71",
21160 "unused72",
21161 "unused73",
21162 "unused74",
21163 "unused75",
21164 "unused76",
21165 "unused77",
21166 "unused78",
21167 "unused79",
21168 "unused80",
21169 "unused81",
21170 "unused82",
21171 "unused83",
21172 "unused84",
21173 "unused85",
21174 "unused86",
21175 "unused87",
21176 "unused88",
21177 "unused89",
21178 "unused90",
21179 "unused91",
21180 "unused92",
21181 "unused93",
21182 "unused94",
21183 "unused95",
21184 "unused96",
21185 "unused97",
21186 "unused98",
21187 "unused99",
21188 "unused100",
21189 "unused101",
21190 "unused102",
21191 "unused103",
21192 "unused104",
21193 "unused105",
21194 "unused106",
21195 "unused107",
21196 "unused108",
21197 "unused109",
21198 "unused110",
21199 "unused111",
21200 "unused112",
21201 "unused113",
21202 "unused114",
21203 "unused115",
21204 "unused116",
21205 "unused117",
21206 "unused118",
21207 "unused119",
21208 "unused120",
21209 "unused121",
21210 "unused122",
21211 "unused123",
21212 "unused124",
21213 "unused125",
21214 "unused126",
21215 "unused127",
21216 "unused128",
21217 "unused129",
21218 "unused130",
21219 "unused131",
21220 "unused132",
21221 "unused133",
21222 "unused134",
21223 "unused135",
21224 "unused136",
21225 "unused137",
21226 "unused138",
21227 "unused139",
21228 "unused140",
21229 "unused141",
21230 "unused142",
21231 "unused143",
21232 "unused144",
21233 "unused145",
21234 "unused146",
21235 "unused147",
21236 "unused148",
21237 "unused149",
21238 "unused150",
21239 "unused151",
21240 "unused152",
21241 "unused153",
21242 "unused154",
21243 "unused155",
21244 "unused156",
21245 "unused157",
21246 "unused158",
21247 "unused159",
21248 "unused160",
21249 "unused161",
21250 "unused162",
21251 "unused163",
21252 "unused164",
21253 "unused165",
21254 "unused166",
21255 "unused167",
21256 "unused168",
21257 "unused169",
21258 "unused170",
21259 "unused171",
21260 "unused172",
21261 "unused173",
21262 "unused174",
21263 "unused175",
21264 "unused176",
21265 "unused177",
21266 "unused178",
21267 "unused179",
21268 "unused180",
21269 "unused181",
21270 "unused182",
21271 "unused183",
21272 "unused184",
21273 "unused185",
21274 "unused186",
21275 "unused187",
21276 "unused188",
21277 "unused189",
21278 "unused190",
21279 "unused191",
21280 "unused192",
21281 "unused193",
21282 "unused194",
21283 "unused195",
21284 "unused196",
21285 "unused197",
21286 "unused198",
21287 "unused199",
21288 "unused200",
21289 "unused201",
21290 "unused202",
21291 "unused203",
21292 "unused204",
21293 "unused205",
21294 "unused206",
21295 "unused207",
21296 "unused208",
21297 "unused209",
21298 "unused210",
21299 "unused211",
21300 "unused212",
21301 "unused213",
21302 "unused214",
21303 "unused215",
21304 "unused216",
21305 "unused217",
21306 "unused218",
21307 "unused219",
21308 "unused220",
21309 "unused221",
21310 "unused222",
21311 "unused223",
21312 "unused224",
21313 "unused225",
21314 "unused226",
21315 "unused227",
21316 "unused228",
21317 "unused229",
21318 "unused230",
21319 "unused231",
21320 "unused232",
21321 "unused233",
21322 "unused234",
21323 "unused235",
21324 "unused236",
21325 "unused237",
21326 "unused238",
21327 "unused239",
21328 "unused240",
21329 "unused241",
21330 "unused242",
21331 "unused243",
21332 "unused244",
21333 "unused245",
21334 "unused246",
21335 "unused247",
21336 "unused248",
21337 "unused249",
21338 "unused250",
21339 "unused251",
21340 "unused252",
21341 "unused253",
21342 "unused254",
21343 "unused255"
21344 ],
21345 "optional" : 1,
21346 "type" : "string"
21347 },
21348 "target-vmid" : {
21349 "description" : "The (unique) ID of the VM.",
21350 "format" : "pve-vmid",
21351 "minimum" : 1,
21352 "optional" : 1,
21353 "type" : "integer",
21354 "typetext" : "<integer> (1 - N)"
21355 },
4d47f125
TL
21356 "vmid" : {
21357 "description" : "The (unique) ID of the VM.",
21358 "format" : "pve-vmid",
21359 "minimum" : 1,
21360 "type" : "integer",
21361 "typetext" : "<integer> (1 - N)"
21362 }
21363 }
21364 },
21365 "permissions" : {
21366 "check" : [
5370fa8c
TL
21367 "perm",
21368 "/vms/{vmid}",
4d47f125 21369 [
5370fa8c 21370 "VM.Config.Disk"
4d47f125
TL
21371 ]
21372 ],
5370fa8c 21373 "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
21374 },
21375 "protected" : 1,
21376 "proxyto" : "node",
21377 "returns" : {
21378 "description" : "the task ID.",
21379 "type" : "string"
21380 }
21381 }
21382 },
21383 "leaf" : 1,
21384 "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
21385 "text" : "move_disk"
21386 },
21387 {
21388 "info" : {
1e3f8156 21389 "GET" : {
e9cd3bd4 21390 "allowtoken" : 1,
1e3f8156
TL
21391 "description" : "Get preconditions for migration.",
21392 "method" : "GET",
21393 "name" : "migrate_vm_precondition",
21394 "parameters" : {
21395 "additionalProperties" : 0,
21396 "properties" : {
21397 "node" : {
21398 "description" : "The cluster node name.",
21399 "format" : "pve-node",
21400 "type" : "string",
21401 "typetext" : "<string>"
21402 },
21403 "target" : {
21404 "description" : "Target node.",
21405 "format" : "pve-node",
21406 "optional" : 1,
21407 "type" : "string",
21408 "typetext" : "<string>"
21409 },
21410 "vmid" : {
21411 "description" : "The (unique) ID of the VM.",
21412 "format" : "pve-vmid",
21413 "minimum" : 1,
21414 "type" : "integer",
21415 "typetext" : "<integer> (1 - N)"
21416 }
21417 }
21418 },
21419 "permissions" : {
21420 "check" : [
21421 "perm",
21422 "/vms/{vmid}",
21423 [
21424 "VM.Migrate"
21425 ]
21426 ]
21427 },
21428 "protected" : 1,
21429 "proxyto" : "node",
21430 "returns" : {
21431 "properties" : {
21432 "allowed_nodes" : {
9226ccbc 21433 "description" : "List nodes allowed for offline migration, only passed if VM is offline",
1e3f8156
TL
21434 "optional" : 1,
21435 "type" : "array"
21436 },
21437 "local_disks" : {
21438 "description" : "List local disks including CD-Rom, unsused and not referenced disks",
21439 "type" : "array"
21440 },
21441 "local_resources" : {
21442 "description" : "List local resources e.g. pci, usb",
21443 "type" : "array"
21444 },
9226ccbc
TL
21445 "not_allowed_nodes" : {
21446 "description" : "List not allowed nodes with additional informations, only passed if VM is offline",
21447 "optional" : 1,
21448 "type" : "object"
21449 },
1e3f8156
TL
21450 "running" : {
21451 "type" : "boolean"
21452 }
21453 },
21454 "type" : "object"
21455 }
21456 },
4d47f125 21457 "POST" : {
e9cd3bd4 21458 "allowtoken" : 1,
4d47f125
TL
21459 "description" : "Migrate virtual machine. Creates a new migration task.",
21460 "method" : "POST",
21461 "name" : "migrate_vm",
21462 "parameters" : {
21463 "additionalProperties" : 0,
21464 "properties" : {
95895385
TL
21465 "bwlimit" : {
21466 "default" : "migrate limit from datacenter or storage config",
21467 "description" : "Override I/O bandwidth limit (in KiB/s).",
21468 "minimum" : "0",
21469 "optional" : 1,
21470 "type" : "integer",
21471 "typetext" : "<integer> (0 - N)"
21472 },
4d47f125
TL
21473 "force" : {
21474 "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
21475 "optional" : 1,
21476 "type" : "boolean",
21477 "typetext" : "<boolean>"
21478 },
21479 "migration_network" : {
21480 "description" : "CIDR of the (sub) network that is used for migration.",
21481 "format" : "CIDR",
21482 "optional" : 1,
21483 "type" : "string",
21484 "typetext" : "<string>"
21485 },
21486 "migration_type" : {
21487 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
21488 "enum" : [
21489 "secure",
21490 "insecure"
21491 ],
21492 "optional" : 1,
21493 "type" : "string"
21494 },
21495 "node" : {
21496 "description" : "The cluster node name.",
21497 "format" : "pve-node",
21498 "type" : "string",
21499 "typetext" : "<string>"
21500 },
21501 "online" : {
1c532546 21502 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
4d47f125
TL
21503 "optional" : 1,
21504 "type" : "boolean",
21505 "typetext" : "<boolean>"
21506 },
21507 "target" : {
21508 "description" : "Target node.",
21509 "format" : "pve-node",
21510 "type" : "string",
21511 "typetext" : "<string>"
21512 },
21513 "targetstorage" : {
c5aa7e14 21514 "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 21515 "format" : "storage-pair-list",
4d47f125 21516 "optional" : 1,
52e44c50
FG
21517 "type" : "string",
21518 "typetext" : "<string>"
21519 },
7aacca6f 21520 "vmid" : {
7aacca6f 21521 "description" : "The (unique) ID of the VM.",
44660702 21522 "format" : "pve-vmid",
7aacca6f 21523 "minimum" : 1,
4bd7df8b 21524 "type" : "integer",
013dc89f 21525 "typetext" : "<integer> (1 - N)"
52e44c50
FG
21526 },
21527 "with-local-disks" : {
21528 "description" : "Enable live storage migration for local disk",
21529 "optional" : 1,
21530 "type" : "boolean",
21531 "typetext" : "<boolean>"
56122987 21532 }
44660702
DM
21533 }
21534 },
21535 "permissions" : {
21536 "check" : [
21537 "perm",
21538 "/vms/{vmid}",
21539 [
21540 "VM.Migrate"
21541 ]
21542 ]
56122987
DM
21543 },
21544 "protected" : 1,
44660702
DM
21545 "proxyto" : "node",
21546 "returns" : {
21547 "description" : "the task ID.",
21548 "type" : "string"
21549 }
56122987 21550 }
7aacca6f 21551 },
44660702
DM
21552 "leaf" : 1,
21553 "path" : "/nodes/{node}/qemu/{vmid}/migrate",
7aacca6f 21554 "text" : "migrate"
56122987
DM
21555 },
21556 {
21557 "info" : {
21558 "POST" : {
e9cd3bd4 21559 "allowtoken" : 1,
44660702 21560 "description" : "Execute Qemu monitor commands.",
56122987 21561 "method" : "POST",
44660702 21562 "name" : "monitor",
56122987 21563 "parameters" : {
7aacca6f 21564 "additionalProperties" : 0,
56122987 21565 "properties" : {
44660702
DM
21566 "command" : {
21567 "description" : "The monitor command.",
013dc89f
DM
21568 "type" : "string",
21569 "typetext" : "<string>"
44660702 21570 },
56122987 21571 "node" : {
44660702 21572 "description" : "The cluster node name.",
7aacca6f 21573 "format" : "pve-node",
013dc89f
DM
21574 "type" : "string",
21575 "typetext" : "<string>"
56122987
DM
21576 },
21577 "vmid" : {
44660702 21578 "description" : "The (unique) ID of the VM.",
56122987 21579 "format" : "pve-vmid",
7aacca6f 21580 "minimum" : 1,
4bd7df8b 21581 "type" : "integer",
013dc89f 21582 "typetext" : "<integer> (1 - N)"
56122987 21583 }
7aacca6f 21584 }
56122987 21585 },
56122987
DM
21586 "permissions" : {
21587 "check" : [
21588 "perm",
21589 "/vms/{vmid}",
21590 [
21591 "VM.Monitor"
21592 ]
32d876b5
DM
21593 ],
21594 "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
7aacca6f 21595 },
44660702
DM
21596 "protected" : 1,
21597 "proxyto" : "node",
21598 "returns" : {
21599 "type" : "string"
21600 }
56122987 21601 }
44660702
DM
21602 },
21603 "leaf" : 1,
21604 "path" : "/nodes/{node}/qemu/{vmid}/monitor",
21605 "text" : "monitor"
56122987
DM
21606 },
21607 {
56122987
DM
21608 "info" : {
21609 "PUT" : {
e9cd3bd4 21610 "allowtoken" : 1,
44660702
DM
21611 "description" : "Extend volume size.",
21612 "method" : "PUT",
21613 "name" : "resize_vm",
56122987 21614 "parameters" : {
44660702 21615 "additionalProperties" : 0,
56122987 21616 "properties" : {
44660702
DM
21617 "digest" : {
21618 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
21619 "maxLength" : 40,
21620 "optional" : 1,
013dc89f
DM
21621 "type" : "string",
21622 "typetext" : "<string>"
56122987 21623 },
56122987
DM
21624 "disk" : {
21625 "description" : "The disk you want to resize.",
21626 "enum" : [
21627 "ide0",
21628 "ide1",
21629 "ide2",
21630 "ide3",
21631 "scsi0",
21632 "scsi1",
21633 "scsi2",
21634 "scsi3",
21635 "scsi4",
21636 "scsi5",
21637 "scsi6",
21638 "scsi7",
21639 "scsi8",
21640 "scsi9",
21641 "scsi10",
21642 "scsi11",
21643 "scsi12",
21644 "scsi13",
e9cd3bd4
TL
21645 "scsi14",
21646 "scsi15",
21647 "scsi16",
21648 "scsi17",
21649 "scsi18",
21650 "scsi19",
21651 "scsi20",
21652 "scsi21",
21653 "scsi22",
21654 "scsi23",
21655 "scsi24",
21656 "scsi25",
21657 "scsi26",
21658 "scsi27",
21659 "scsi28",
21660 "scsi29",
21661 "scsi30",
56122987
DM
21662 "virtio0",
21663 "virtio1",
21664 "virtio2",
21665 "virtio3",
21666 "virtio4",
21667 "virtio5",
21668 "virtio6",
21669 "virtio7",
21670 "virtio8",
21671 "virtio9",
21672 "virtio10",
21673 "virtio11",
21674 "virtio12",
21675 "virtio13",
21676 "virtio14",
21677 "virtio15",
21678 "sata0",
21679 "sata1",
21680 "sata2",
21681 "sata3",
21682 "sata4",
2c0dde61 21683 "sata5",
5370fa8c
TL
21684 "efidisk0",
21685 "tpmstate0"
44660702
DM
21686 ],
21687 "type" : "string"
56122987 21688 },
44660702
DM
21689 "node" : {
21690 "description" : "The cluster node name.",
21691 "format" : "pve-node",
013dc89f
DM
21692 "type" : "string",
21693 "typetext" : "<string>"
7aacca6f 21694 },
44660702 21695 "size" : {
5d9c884c 21696 "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
21697 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
21698 "type" : "string"
56122987
DM
21699 },
21700 "skiplock" : {
21701 "description" : "Ignore locks - only root is allowed to use this option.",
21702 "optional" : 1,
013dc89f
DM
21703 "type" : "boolean",
21704 "typetext" : "<boolean>"
56122987
DM
21705 },
21706 "vmid" : {
7aacca6f 21707 "description" : "The (unique) ID of the VM.",
56122987 21708 "format" : "pve-vmid",
44660702 21709 "minimum" : 1,
4bd7df8b 21710 "type" : "integer",
013dc89f 21711 "typetext" : "<integer> (1 - N)"
56122987
DM
21712 }
21713 }
21714 },
21715 "permissions" : {
21716 "check" : [
21717 "perm",
21718 "/vms/{vmid}",
21719 [
44660702 21720 "VM.Config.Disk"
56122987
DM
21721 ]
21722 ]
21723 },
7aacca6f 21724 "protected" : 1,
7aacca6f 21725 "proxyto" : "node",
44660702
DM
21726 "returns" : {
21727 "type" : "null"
21728 }
7aacca6f
DM
21729 }
21730 },
44660702
DM
21731 "leaf" : 1,
21732 "path" : "/nodes/{node}/qemu/{vmid}/resize",
21733 "text" : "resize"
21734 },
21735 {
56122987
DM
21736 "children" : [
21737 {
21738 "children" : [
21739 {
56122987 21740 "info" : {
44660702 21741 "GET" : {
e9cd3bd4 21742 "allowtoken" : 1,
44660702
DM
21743 "description" : "Get snapshot configuration",
21744 "method" : "GET",
21745 "name" : "get_snapshot_config",
56122987 21746 "parameters" : {
44660702 21747 "additionalProperties" : 0,
56122987 21748 "properties" : {
56122987 21749 "node" : {
44660702 21750 "description" : "The cluster node name.",
56122987 21751 "format" : "pve-node",
013dc89f
DM
21752 "type" : "string",
21753 "typetext" : "<string>"
7aacca6f
DM
21754 },
21755 "snapname" : {
44660702 21756 "description" : "The name of the snapshot.",
7aacca6f 21757 "format" : "pve-configid",
44660702 21758 "maxLength" : 40,
013dc89f
DM
21759 "type" : "string",
21760 "typetext" : "<string>"
7aacca6f
DM
21761 },
21762 "vmid" : {
44660702 21763 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
21764 "format" : "pve-vmid",
21765 "minimum" : 1,
4bd7df8b 21766 "type" : "integer",
013dc89f 21767 "typetext" : "<integer> (1 - N)"
56122987 21768 }
44660702 21769 }
56122987
DM
21770 },
21771 "permissions" : {
21772 "check" : [
21773 "perm",
21774 "/vms/{vmid}",
21775 [
2489d6df 21776 "VM.Snapshot",
e9cd3bd4
TL
21777 "VM.Snapshot.Rollback",
21778 "VM.Audit"
2489d6df
WB
21779 ],
21780 "any",
21781 1
56122987
DM
21782 ]
21783 },
44660702 21784 "proxyto" : "node",
56122987 21785 "returns" : {
44660702 21786 "type" : "object"
7aacca6f
DM
21787 }
21788 },
44660702 21789 "PUT" : {
e9cd3bd4 21790 "allowtoken" : 1,
44660702
DM
21791 "description" : "Update snapshot metadata.",
21792 "method" : "PUT",
21793 "name" : "update_snapshot_config",
56122987 21794 "parameters" : {
44660702 21795 "additionalProperties" : 0,
56122987 21796 "properties" : {
44660702
DM
21797 "description" : {
21798 "description" : "A textual description or comment.",
21799 "optional" : 1,
013dc89f
DM
21800 "type" : "string",
21801 "typetext" : "<string>"
44660702 21802 },
56122987 21803 "node" : {
7aacca6f 21804 "description" : "The cluster node name.",
44660702 21805 "format" : "pve-node",
013dc89f
DM
21806 "type" : "string",
21807 "typetext" : "<string>"
56122987 21808 },
56122987
DM
21809 "snapname" : {
21810 "description" : "The name of the snapshot.",
44660702 21811 "format" : "pve-configid",
7aacca6f 21812 "maxLength" : 40,
013dc89f
DM
21813 "type" : "string",
21814 "typetext" : "<string>"
7aacca6f
DM
21815 },
21816 "vmid" : {
21817 "description" : "The (unique) ID of the VM.",
44660702 21818 "format" : "pve-vmid",
7aacca6f 21819 "minimum" : 1,
4bd7df8b 21820 "type" : "integer",
013dc89f 21821 "typetext" : "<integer> (1 - N)"
56122987 21822 }
44660702 21823 }
56122987 21824 },
7aacca6f
DM
21825 "permissions" : {
21826 "check" : [
21827 "perm",
21828 "/vms/{vmid}",
21829 [
21830 "VM.Snapshot"
21831 ]
21832 ]
44660702
DM
21833 },
21834 "protected" : 1,
21835 "proxyto" : "node",
21836 "returns" : {
21837 "type" : "null"
7aacca6f 21838 }
56122987
DM
21839 }
21840 },
44660702 21841 "leaf" : 1,
7aacca6f 21842 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
44660702 21843 "text" : "config"
56122987
DM
21844 },
21845 {
56122987
DM
21846 "info" : {
21847 "POST" : {
e9cd3bd4 21848 "allowtoken" : 1,
44660702 21849 "description" : "Rollback VM state to specified snapshot.",
7aacca6f 21850 "method" : "POST",
44660702 21851 "name" : "rollback",
56122987
DM
21852 "parameters" : {
21853 "additionalProperties" : 0,
21854 "properties" : {
44660702
DM
21855 "node" : {
21856 "description" : "The cluster node name.",
21857 "format" : "pve-node",
013dc89f
DM
21858 "type" : "string",
21859 "typetext" : "<string>"
44660702 21860 },
56122987 21861 "snapname" : {
44660702 21862 "description" : "The name of the snapshot.",
56122987
DM
21863 "format" : "pve-configid",
21864 "maxLength" : 40,
013dc89f
DM
21865 "type" : "string",
21866 "typetext" : "<string>"
7aacca6f 21867 },
56122987 21868 "vmid" : {
7aacca6f 21869 "description" : "The (unique) ID of the VM.",
44660702 21870 "format" : "pve-vmid",
56122987 21871 "minimum" : 1,
4bd7df8b 21872 "type" : "integer",
013dc89f 21873 "typetext" : "<integer> (1 - N)"
56122987
DM
21874 }
21875 }
21876 },
7aacca6f 21877 "permissions" : {
56122987
DM
21878 "check" : [
21879 "perm",
21880 "/vms/{vmid}",
21881 [
2489d6df
WB
21882 "VM.Snapshot",
21883 "VM.Snapshot.Rollback"
21884 ],
21885 "any",
21886 1
56122987
DM
21887 ]
21888 },
44660702 21889 "protected" : 1,
7aacca6f 21890 "proxyto" : "node",
44660702
DM
21891 "returns" : {
21892 "description" : "the task ID.",
21893 "type" : "string"
21894 }
56122987
DM
21895 }
21896 },
44660702
DM
21897 "leaf" : 1,
21898 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
7aacca6f 21899 "text" : "rollback"
56122987 21900 }
44660702
DM
21901 ],
21902 "info" : {
21903 "DELETE" : {
e9cd3bd4 21904 "allowtoken" : 1,
44660702
DM
21905 "description" : "Delete a VM snapshot.",
21906 "method" : "DELETE",
21907 "name" : "delsnapshot",
21908 "parameters" : {
21909 "additionalProperties" : 0,
21910 "properties" : {
21911 "force" : {
21912 "description" : "For removal from config file, even if removing disk snapshots fails.",
21913 "optional" : 1,
013dc89f
DM
21914 "type" : "boolean",
21915 "typetext" : "<boolean>"
44660702
DM
21916 },
21917 "node" : {
21918 "description" : "The cluster node name.",
21919 "format" : "pve-node",
013dc89f
DM
21920 "type" : "string",
21921 "typetext" : "<string>"
44660702
DM
21922 },
21923 "snapname" : {
21924 "description" : "The name of the snapshot.",
21925 "format" : "pve-configid",
21926 "maxLength" : 40,
013dc89f
DM
21927 "type" : "string",
21928 "typetext" : "<string>"
44660702
DM
21929 },
21930 "vmid" : {
21931 "description" : "The (unique) ID of the VM.",
21932 "format" : "pve-vmid",
21933 "minimum" : 1,
4bd7df8b 21934 "type" : "integer",
013dc89f 21935 "typetext" : "<integer> (1 - N)"
44660702
DM
21936 }
21937 }
21938 },
21939 "permissions" : {
21940 "check" : [
21941 "perm",
21942 "/vms/{vmid}",
21943 [
21944 "VM.Snapshot"
21945 ]
21946 ]
21947 },
21948 "protected" : 1,
21949 "proxyto" : "node",
21950 "returns" : {
21951 "description" : "the task ID.",
21952 "type" : "string"
21953 }
21954 },
21955 "GET" : {
e9cd3bd4 21956 "allowtoken" : 1,
44660702
DM
21957 "description" : "",
21958 "method" : "GET",
21959 "name" : "snapshot_cmd_idx",
21960 "parameters" : {
21961 "additionalProperties" : 0,
21962 "properties" : {
21963 "node" : {
21964 "description" : "The cluster node name.",
21965 "format" : "pve-node",
013dc89f
DM
21966 "type" : "string",
21967 "typetext" : "<string>"
44660702
DM
21968 },
21969 "snapname" : {
21970 "description" : "The name of the snapshot.",
21971 "format" : "pve-configid",
21972 "maxLength" : 40,
013dc89f
DM
21973 "type" : "string",
21974 "typetext" : "<string>"
44660702
DM
21975 },
21976 "vmid" : {
21977 "description" : "The (unique) ID of the VM.",
21978 "format" : "pve-vmid",
21979 "minimum" : 1,
4bd7df8b 21980 "type" : "integer",
013dc89f 21981 "typetext" : "<integer> (1 - N)"
44660702
DM
21982 }
21983 }
21984 },
21985 "permissions" : {
21986 "user" : "all"
21987 },
21988 "returns" : {
21989 "items" : {
21990 "properties" : {},
21991 "type" : "object"
21992 },
21993 "links" : [
21994 {
21995 "href" : "{cmd}",
21996 "rel" : "child"
21997 }
21998 ],
21999 "type" : "array"
22000 }
22001 }
22002 },
22003 "leaf" : 0,
22004 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
22005 "text" : "{snapname}"
56122987
DM
22006 }
22007 ],
44660702
DM
22008 "info" : {
22009 "GET" : {
e9cd3bd4 22010 "allowtoken" : 1,
44660702
DM
22011 "description" : "List all snapshots.",
22012 "method" : "GET",
22013 "name" : "snapshot_list",
22014 "parameters" : {
22015 "additionalProperties" : 0,
22016 "properties" : {
22017 "node" : {
22018 "description" : "The cluster node name.",
22019 "format" : "pve-node",
013dc89f
DM
22020 "type" : "string",
22021 "typetext" : "<string>"
44660702
DM
22022 },
22023 "vmid" : {
22024 "description" : "The (unique) ID of the VM.",
22025 "format" : "pve-vmid",
22026 "minimum" : 1,
4bd7df8b 22027 "type" : "integer",
013dc89f 22028 "typetext" : "<integer> (1 - N)"
44660702
DM
22029 }
22030 }
22031 },
22032 "permissions" : {
22033 "check" : [
22034 "perm",
22035 "/vms/{vmid}",
22036 [
22037 "VM.Audit"
22038 ]
22039 ]
22040 },
22041 "protected" : 1,
22042 "proxyto" : "node",
22043 "returns" : {
22044 "items" : {
4d47f125
TL
22045 "properties" : {
22046 "description" : {
22047 "description" : "Snapshot description.",
22048 "type" : "string"
22049 },
22050 "name" : {
22051 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
22052 "type" : "string"
22053 },
22054 "parent" : {
22055 "description" : "Parent snapshot identifier.",
22056 "optional" : 1,
22057 "type" : "string"
22058 },
22059 "snaptime" : {
22060 "description" : "Snapshot creation time",
22061 "optional" : 1,
22062 "renderer" : "timestamp",
22063 "type" : "integer"
22064 },
22065 "vmstate" : {
22066 "description" : "Snapshot includes RAM.",
22067 "optional" : 1,
22068 "type" : "boolean"
22069 }
22070 },
44660702
DM
22071 "type" : "object"
22072 },
22073 "links" : [
22074 {
22075 "href" : "{name}",
22076 "rel" : "child"
22077 }
22078 ],
22079 "type" : "array"
22080 }
22081 },
22082 "POST" : {
e9cd3bd4 22083 "allowtoken" : 1,
44660702
DM
22084 "description" : "Snapshot a VM.",
22085 "method" : "POST",
22086 "name" : "snapshot",
22087 "parameters" : {
22088 "additionalProperties" : 0,
22089 "properties" : {
22090 "description" : {
22091 "description" : "A textual description or comment.",
22092 "optional" : 1,
013dc89f
DM
22093 "type" : "string",
22094 "typetext" : "<string>"
44660702
DM
22095 },
22096 "node" : {
22097 "description" : "The cluster node name.",
22098 "format" : "pve-node",
013dc89f
DM
22099 "type" : "string",
22100 "typetext" : "<string>"
44660702
DM
22101 },
22102 "snapname" : {
22103 "description" : "The name of the snapshot.",
22104 "format" : "pve-configid",
22105 "maxLength" : 40,
013dc89f
DM
22106 "type" : "string",
22107 "typetext" : "<string>"
44660702
DM
22108 },
22109 "vmid" : {
22110 "description" : "The (unique) ID of the VM.",
22111 "format" : "pve-vmid",
22112 "minimum" : 1,
4bd7df8b 22113 "type" : "integer",
013dc89f 22114 "typetext" : "<integer> (1 - N)"
44660702
DM
22115 },
22116 "vmstate" : {
22117 "description" : "Save the vmstate",
22118 "optional" : 1,
013dc89f
DM
22119 "type" : "boolean",
22120 "typetext" : "<boolean>"
44660702
DM
22121 }
22122 }
22123 },
22124 "permissions" : {
22125 "check" : [
22126 "perm",
22127 "/vms/{vmid}",
22128 [
22129 "VM.Snapshot"
22130 ]
22131 ]
22132 },
22133 "protected" : 1,
22134 "proxyto" : "node",
22135 "returns" : {
22136 "description" : "the task ID.",
22137 "type" : "string"
22138 }
22139 }
22140 },
22141 "leaf" : 0,
22142 "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
7aacca6f 22143 "text" : "snapshot"
56122987
DM
22144 },
22145 {
56122987
DM
22146 "info" : {
22147 "POST" : {
e9cd3bd4 22148 "allowtoken" : 1,
44660702
DM
22149 "description" : "Create a Template.",
22150 "method" : "POST",
56122987 22151 "name" : "template",
56122987 22152 "parameters" : {
7aacca6f 22153 "additionalProperties" : 0,
56122987 22154 "properties" : {
56122987 22155 "disk" : {
56122987
DM
22156 "description" : "If you want to convert only 1 disk to base image.",
22157 "enum" : [
22158 "ide0",
22159 "ide1",
22160 "ide2",
22161 "ide3",
22162 "scsi0",
22163 "scsi1",
22164 "scsi2",
22165 "scsi3",
22166 "scsi4",
22167 "scsi5",
22168 "scsi6",
22169 "scsi7",
22170 "scsi8",
22171 "scsi9",
22172 "scsi10",
22173 "scsi11",
22174 "scsi12",
22175 "scsi13",
e9cd3bd4
TL
22176 "scsi14",
22177 "scsi15",
22178 "scsi16",
22179 "scsi17",
22180 "scsi18",
22181 "scsi19",
22182 "scsi20",
22183 "scsi21",
22184 "scsi22",
22185 "scsi23",
22186 "scsi24",
22187 "scsi25",
22188 "scsi26",
22189 "scsi27",
22190 "scsi28",
22191 "scsi29",
22192 "scsi30",
56122987
DM
22193 "virtio0",
22194 "virtio1",
22195 "virtio2",
22196 "virtio3",
22197 "virtio4",
22198 "virtio5",
22199 "virtio6",
22200 "virtio7",
22201 "virtio8",
22202 "virtio9",
22203 "virtio10",
22204 "virtio11",
22205 "virtio12",
22206 "virtio13",
22207 "virtio14",
22208 "virtio15",
22209 "sata0",
22210 "sata1",
22211 "sata2",
22212 "sata3",
22213 "sata4",
2c0dde61 22214 "sata5",
5370fa8c
TL
22215 "efidisk0",
22216 "tpmstate0"
56122987 22217 ],
7aacca6f 22218 "optional" : 1,
56122987
DM
22219 "type" : "string"
22220 },
44660702
DM
22221 "node" : {
22222 "description" : "The cluster node name.",
22223 "format" : "pve-node",
013dc89f
DM
22224 "type" : "string",
22225 "typetext" : "<string>"
44660702
DM
22226 },
22227 "vmid" : {
22228 "description" : "The (unique) ID of the VM.",
7aacca6f 22229 "format" : "pve-vmid",
44660702 22230 "minimum" : 1,
4bd7df8b 22231 "type" : "integer",
013dc89f 22232 "typetext" : "<integer> (1 - N)"
56122987 22233 }
7aacca6f 22234 }
56122987 22235 },
7aacca6f
DM
22236 "permissions" : {
22237 "check" : [
22238 "perm",
22239 "/vms/{vmid}",
22240 [
22241 "VM.Allocate"
22242 ]
22243 ],
22244 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
22245 },
44660702 22246 "protected" : 1,
7aacca6f 22247 "proxyto" : "node",
7aacca6f 22248 "returns" : {
5370fa8c
TL
22249 "description" : "the task ID.",
22250 "type" : "string"
7aacca6f 22251 }
56122987
DM
22252 }
22253 },
44660702 22254 "leaf" : 1,
7aacca6f 22255 "path" : "/nodes/{node}/qemu/{vmid}/template",
44660702 22256 "text" : "template"
1e3f8156
TL
22257 },
22258 {
22259 "children" : [
22260 {
22261 "info" : {
22262 "GET" : {
e9cd3bd4 22263 "allowtoken" : 1,
1e3f8156
TL
22264 "description" : "Get automatically generated cloudinit config.",
22265 "method" : "GET",
22266 "name" : "cloudinit_generated_config_dump",
22267 "parameters" : {
22268 "additionalProperties" : 0,
22269 "properties" : {
22270 "node" : {
22271 "description" : "The cluster node name.",
22272 "format" : "pve-node",
22273 "type" : "string",
22274 "typetext" : "<string>"
22275 },
22276 "type" : {
22277 "description" : "Config type.",
22278 "enum" : [
22279 "user",
22280 "network",
22281 "meta"
22282 ],
22283 "type" : "string"
22284 },
22285 "vmid" : {
22286 "description" : "The (unique) ID of the VM.",
22287 "format" : "pve-vmid",
22288 "minimum" : 1,
22289 "type" : "integer",
22290 "typetext" : "<integer> (1 - N)"
22291 }
22292 }
22293 },
22294 "permissions" : {
22295 "check" : [
22296 "perm",
22297 "/vms/{vmid}",
22298 [
22299 "VM.Audit"
22300 ]
22301 ]
22302 },
22303 "proxyto" : "node",
22304 "returns" : {
22305 "type" : "string"
22306 }
22307 }
22308 },
22309 "leaf" : 1,
22310 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit/dump",
22311 "text" : "dump"
22312 }
22313 ],
22314 "leaf" : 0,
22315 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit",
22316 "text" : "cloudinit"
56122987
DM
22317 }
22318 ],
7aacca6f 22319 "info" : {
44660702 22320 "DELETE" : {
e9cd3bd4 22321 "allowtoken" : 1,
d2656385 22322 "description" : "Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules",
44660702
DM
22323 "method" : "DELETE",
22324 "name" : "destroy_vm",
7aacca6f 22325 "parameters" : {
44660702 22326 "additionalProperties" : 0,
7aacca6f 22327 "properties" : {
d2656385 22328 "destroy-unreferenced-disks" : {
8f4d9c87 22329 "default" : 0,
d2656385
TL
22330 "description" : "If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages.",
22331 "optional" : 1,
22332 "type" : "boolean",
22333 "typetext" : "<boolean>"
22334 },
7aacca6f 22335 "node" : {
44660702 22336 "description" : "The cluster node name.",
7aacca6f 22337 "format" : "pve-node",
013dc89f
DM
22338 "type" : "string",
22339 "typetext" : "<string>"
44660702 22340 },
1c532546 22341 "purge" : {
d2656385 22342 "description" : "Remove VMID from configurations, like backup & replication jobs and HA.",
1c532546
TL
22343 "optional" : 1,
22344 "type" : "boolean",
22345 "typetext" : "<boolean>"
22346 },
44660702
DM
22347 "skiplock" : {
22348 "description" : "Ignore locks - only root is allowed to use this option.",
22349 "optional" : 1,
013dc89f
DM
22350 "type" : "boolean",
22351 "typetext" : "<boolean>"
7aacca6f
DM
22352 },
22353 "vmid" : {
44660702 22354 "description" : "The (unique) ID of the VM.",
7aacca6f 22355 "format" : "pve-vmid",
44660702 22356 "minimum" : 1,
4bd7df8b 22357 "type" : "integer",
013dc89f 22358 "typetext" : "<integer> (1 - N)"
7aacca6f 22359 }
44660702 22360 }
7aacca6f 22361 },
7aacca6f
DM
22362 "permissions" : {
22363 "check" : [
22364 "perm",
22365 "/vms/{vmid}",
22366 [
22367 "VM.Allocate"
22368 ]
22369 ]
22370 },
44660702
DM
22371 "protected" : 1,
22372 "proxyto" : "node",
7aacca6f
DM
22373 "returns" : {
22374 "type" : "string"
44660702
DM
22375 }
22376 },
22377 "GET" : {
e9cd3bd4 22378 "allowtoken" : 1,
44660702
DM
22379 "description" : "Directory index",
22380 "method" : "GET",
22381 "name" : "vmdiridx",
7aacca6f 22382 "parameters" : {
44660702 22383 "additionalProperties" : 0,
7aacca6f 22384 "properties" : {
7aacca6f 22385 "node" : {
7aacca6f 22386 "description" : "The cluster node name.",
44660702 22387 "format" : "pve-node",
013dc89f
DM
22388 "type" : "string",
22389 "typetext" : "<string>"
44660702
DM
22390 },
22391 "vmid" : {
22392 "description" : "The (unique) ID of the VM.",
22393 "format" : "pve-vmid",
22394 "minimum" : 1,
4bd7df8b 22395 "type" : "integer",
013dc89f 22396 "typetext" : "<integer> (1 - N)"
7aacca6f 22397 }
44660702 22398 }
7aacca6f 22399 },
44660702
DM
22400 "permissions" : {
22401 "user" : "all"
22402 },
22403 "proxyto" : "node",
22404 "returns" : {
22405 "items" : {
22406 "properties" : {
22407 "subdir" : {
22408 "type" : "string"
22409 }
22410 },
22411 "type" : "object"
22412 },
22413 "links" : [
22414 {
22415 "href" : "{subdir}",
22416 "rel" : "child"
22417 }
22418 ],
22419 "type" : "array"
22420 }
7aacca6f 22421 }
44660702
DM
22422 },
22423 "leaf" : 0,
22424 "path" : "/nodes/{node}/qemu/{vmid}",
22425 "text" : "{vmid}"
56122987
DM
22426 }
22427 ],
22428 "info" : {
44660702 22429 "GET" : {
e9cd3bd4 22430 "allowtoken" : 1,
44660702
DM
22431 "description" : "Virtual machine index (per node).",
22432 "method" : "GET",
22433 "name" : "vmlist",
56122987 22434 "parameters" : {
44660702 22435 "additionalProperties" : 0,
56122987 22436 "properties" : {
44660702
DM
22437 "full" : {
22438 "description" : "Determine the full status of active VMs.",
56122987 22439 "optional" : 1,
013dc89f
DM
22440 "type" : "boolean",
22441 "typetext" : "<boolean>"
56122987 22442 },
44660702
DM
22443 "node" : {
22444 "description" : "The cluster node name.",
22445 "format" : "pve-node",
013dc89f
DM
22446 "type" : "string",
22447 "typetext" : "<string>"
44660702
DM
22448 }
22449 }
22450 },
22451 "permissions" : {
22452 "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
22453 "user" : "all"
22454 },
22455 "protected" : 1,
22456 "proxyto" : "node",
22457 "returns" : {
22458 "items" : {
4d47f125
TL
22459 "properties" : {
22460 "cpus" : {
22461 "description" : "Maximum usable CPUs.",
22462 "optional" : 1,
22463 "type" : "number"
22464 },
95895385
TL
22465 "lock" : {
22466 "description" : "The current config lock, if any.",
22467 "optional" : 1,
22468 "type" : "string"
22469 },
4d47f125
TL
22470 "maxdisk" : {
22471 "description" : "Root disk size in bytes.",
22472 "optional" : 1,
22473 "renderer" : "bytes",
22474 "type" : "integer"
22475 },
22476 "maxmem" : {
22477 "description" : "Maximum memory in bytes.",
22478 "optional" : 1,
22479 "renderer" : "bytes",
22480 "type" : "integer"
22481 },
22482 "name" : {
22483 "description" : "VM name.",
22484 "optional" : 1,
22485 "type" : "string"
22486 },
22487 "pid" : {
22488 "description" : "PID of running qemu process.",
22489 "optional" : 1,
22490 "type" : "integer"
22491 },
22492 "qmpstatus" : {
22493 "description" : "Qemu QMP agent status.",
22494 "optional" : 1,
22495 "type" : "string"
22496 },
d2656385
TL
22497 "running-machine" : {
22498 "description" : "The currently running machine type (if running).",
22499 "optional" : 1,
22500 "type" : "string"
22501 },
22502 "running-qemu" : {
22503 "description" : "The currently running QEMU version (if running).",
22504 "optional" : 1,
22505 "type" : "string"
22506 },
4d47f125
TL
22507 "status" : {
22508 "description" : "Qemu process status.",
22509 "enum" : [
22510 "stopped",
22511 "running"
22512 ],
22513 "type" : "string"
22514 },
5c1699e5
TL
22515 "tags" : {
22516 "description" : "The current configured tags, if any",
22517 "optional" : 1,
22518 "type" : "string"
22519 },
4d47f125
TL
22520 "uptime" : {
22521 "description" : "Uptime.",
22522 "optional" : 1,
22523 "renderer" : "duration",
22524 "type" : "integer"
22525 },
22526 "vmid" : {
22527 "description" : "The (unique) ID of the VM.",
22528 "format" : "pve-vmid",
22529 "minimum" : 1,
22530 "type" : "integer"
22531 }
22532 },
44660702
DM
22533 "type" : "object"
22534 },
22535 "links" : [
22536 {
22537 "href" : "{vmid}",
22538 "rel" : "child"
22539 }
22540 ],
22541 "type" : "array"
22542 }
22543 },
22544 "POST" : {
e9cd3bd4 22545 "allowtoken" : 1,
44660702
DM
22546 "description" : "Create or restore a virtual machine.",
22547 "method" : "POST",
22548 "name" : "create_vm",
22549 "parameters" : {
22550 "additionalProperties" : 0,
22551 "properties" : {
7aacca6f 22552 "acpi" : {
7aacca6f 22553 "default" : 1,
44660702 22554 "description" : "Enable/disable ACPI.",
56122987 22555 "optional" : 1,
013dc89f
DM
22556 "type" : "boolean",
22557 "typetext" : "<boolean>"
56122987 22558 },
44660702 22559 "agent" : {
5370fa8c 22560 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
22561 "format" : {
22562 "enabled" : {
22563 "default" : 0,
22564 "default_key" : 1,
5370fa8c 22565 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
22566 "type" : "boolean"
22567 },
22568 "fstrim_cloned_disks" : {
22569 "default" : 0,
d2656385 22570 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
22571 "optional" : 1,
22572 "type" : "boolean"
5c1699e5
TL
22573 },
22574 "type" : {
22575 "default" : "virtio",
22576 "description" : "Select the agent type",
22577 "enum" : [
22578 "virtio",
22579 "isa"
22580 ],
22581 "optional" : 1,
22582 "type" : "string"
4d47f125
TL
22583 }
22584 },
7aacca6f 22585 "optional" : 1,
4d47f125 22586 "type" : "string",
5c1699e5 22587 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 22588 },
e2d681b3
TL
22589 "arch" : {
22590 "description" : "Virtual processor architecture. Defaults to the host.",
22591 "enum" : [
22592 "x86_64",
22593 "aarch64"
22594 ],
22595 "optional" : 1,
22596 "type" : "string"
22597 },
44660702 22598 "archive" : {
c5aa7e14 22599 "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 22600 "maxLength" : 255,
56122987 22601 "optional" : 1,
013dc89f
DM
22602 "type" : "string",
22603 "typetext" : "<string>"
56122987 22604 },
44660702 22605 "args" : {
c2993fe5 22606 "description" : "Arbitrary arguments passed to kvm.",
56122987 22607 "optional" : 1,
c2993fe5 22608 "type" : "string",
013dc89f 22609 "typetext" : "<string>",
c2993fe5 22610 "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 22611 },
1c532546
TL
22612 "audio0" : {
22613 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
22614 "format" : {
22615 "device" : {
22616 "description" : "Configure an audio device.",
22617 "enum" : [
22618 "ich9-intel-hda",
22619 "intel-hda",
22620 "AC97"
22621 ],
22622 "type" : "string"
22623 },
22624 "driver" : {
22625 "default" : "spice",
22626 "description" : "Driver backend for the audio device.",
22627 "enum" : [
d2656385
TL
22628 "spice",
22629 "none"
1c532546
TL
22630 ],
22631 "optional" : 1,
22632 "type" : "string"
22633 }
22634 },
22635 "optional" : 1,
22636 "type" : "string",
d2656385 22637 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 22638 },
44660702 22639 "autostart" : {
7aacca6f 22640 "default" : 0,
44660702
DM
22641 "description" : "Automatic restart after crash (currently ignored).",
22642 "optional" : 1,
013dc89f
DM
22643 "type" : "boolean",
22644 "typetext" : "<boolean>"
7aacca6f 22645 },
44660702
DM
22646 "balloon" : {
22647 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
22648 "minimum" : 0,
56122987 22649 "optional" : 1,
4bd7df8b 22650 "type" : "integer",
013dc89f 22651 "typetext" : "<integer> (0 - N)"
56122987 22652 },
44660702
DM
22653 "bios" : {
22654 "default" : "seabios",
22655 "description" : "Select BIOS implementation.",
22656 "enum" : [
22657 "seabios",
22658 "ovmf"
22659 ],
56122987 22660 "optional" : 1,
44660702 22661 "type" : "string"
56122987 22662 },
44660702 22663 "boot" : {
5370fa8c 22664 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 22665 "format" : "pve-qm-boot",
56122987 22666 "optional" : 1,
4772952b
TL
22667 "type" : "string",
22668 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 22669 },
7aacca6f 22670 "bootdisk" : {
4772952b 22671 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
22672 "format" : "pve-qm-bootdisk",
22673 "optional" : 1,
7aacca6f 22674 "pattern" : "(ide|sata|scsi|virtio)\\d+",
44660702
DM
22675 "type" : "string"
22676 },
27a7acb2 22677 "bwlimit" : {
95895385
TL
22678 "default" : "restore limit from datacenter or storage config",
22679 "description" : "Override I/O bandwidth limit (in KiB/s).",
27a7acb2
DM
22680 "minimum" : "0",
22681 "optional" : 1,
22682 "type" : "integer",
22683 "typetext" : "<integer> (0 - N)"
22684 },
44660702
DM
22685 "cdrom" : {
22686 "description" : "This is an alias for option -ide2",
de0983cb 22687 "format" : "pve-qm-ide",
56122987 22688 "optional" : 1,
44660702 22689 "type" : "string",
013dc89f 22690 "typetext" : "<volume>"
56122987 22691 },
95895385
TL
22692 "cicustom" : {
22693 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
22694 "format" : "pve-qm-cicustom",
22695 "optional" : 1,
22696 "type" : "string",
5370fa8c 22697 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 22698 },
27a7acb2
DM
22699 "cipassword" : {
22700 "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.",
22701 "optional" : 1,
22702 "type" : "string",
22703 "typetext" : "<string>"
22704 },
22705 "citype" : {
22706 "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.",
22707 "enum" : [
22708 "configdrive2",
d2656385
TL
22709 "nocloud",
22710 "opennebula"
27a7acb2
DM
22711 ],
22712 "optional" : 1,
22713 "type" : "string"
22714 },
22715 "ciuser" : {
22716 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
22717 "optional" : 1,
22718 "type" : "string",
22719 "typetext" : "<string>"
22720 },
44660702
DM
22721 "cores" : {
22722 "default" : 1,
22723 "description" : "The number of cores per socket.",
7aacca6f 22724 "minimum" : 1,
44660702 22725 "optional" : 1,
4bd7df8b 22726 "type" : "integer",
013dc89f 22727 "typetext" : "<integer> (1 - N)"
7aacca6f 22728 },
44660702
DM
22729 "cpu" : {
22730 "description" : "Emulated CPU type.",
c5aa7e14 22731 "format" : "pve-vm-cpu-conf",
56122987 22732 "optional" : 1,
4bd7df8b 22733 "type" : "string",
04d22a9f 22734 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
56122987 22735 },
44660702 22736 "cpulimit" : {
7aacca6f 22737 "default" : 0,
c2993fe5 22738 "description" : "Limit of CPU usage.",
44660702
DM
22739 "maximum" : 128,
22740 "minimum" : 0,
7aacca6f 22741 "optional" : 1,
c2993fe5 22742 "type" : "number",
013dc89f 22743 "typetext" : "<number> (0 - 128)",
c2993fe5 22744 "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
22745 },
22746 "cpuunits" : {
5370fa8c
TL
22747 "default" : "cgroup v1: 1024, cgroup v2: 100",
22748 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df
WB
22749 "maximum" : 262144,
22750 "minimum" : 2,
44660702 22751 "optional" : 1,
c2993fe5 22752 "type" : "integer",
2489d6df
WB
22753 "typetext" : "<integer> (2 - 262144)",
22754 "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
22755 },
22756 "description" : {
8f4d9c87
TL
22757 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
22758 "maxLength" : 8192,
56122987 22759 "optional" : 1,
013dc89f
DM
22760 "type" : "string",
22761 "typetext" : "<string>"
44660702 22762 },
4d47f125 22763 "efidisk0" : {
d2656385 22764 "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.",
4d47f125 22765 "format" : {
5370fa8c
TL
22766 "efitype" : {
22767 "default" : "2m",
22768 "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.",
22769 "enum" : [
22770 "2m",
22771 "4m"
22772 ],
22773 "optional" : 1,
22774 "type" : "string"
22775 },
4d47f125
TL
22776 "file" : {
22777 "default_key" : 1,
22778 "description" : "The drive's backing volume.",
22779 "format" : "pve-volume-id-or-qm-path",
22780 "format_description" : "volume",
22781 "type" : "string"
22782 },
22783 "format" : {
22784 "description" : "The drive's backing file's data format.",
22785 "enum" : [
22786 "raw",
22787 "cow",
22788 "qcow",
22789 "qed",
22790 "qcow2",
22791 "vmdk",
22792 "cloop"
22793 ],
22794 "optional" : 1,
22795 "type" : "string"
22796 },
5370fa8c
TL
22797 "pre-enrolled-keys" : {
22798 "default" : 0,
22799 "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.",
22800 "optional" : 1,
22801 "type" : "boolean"
22802 },
4d47f125
TL
22803 "size" : {
22804 "description" : "Disk size. This is purely informational and has no effect.",
22805 "format" : "disk-size",
22806 "format_description" : "DiskSize",
22807 "optional" : 1,
22808 "type" : "string"
22809 },
22810 "volume" : {
22811 "alias" : "file"
22812 }
22813 },
22814 "optional" : 1,
22815 "type" : "string",
5370fa8c 22816 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 22817 },
44660702
DM
22818 "force" : {
22819 "description" : "Allow to overwrite existing VM.",
22820 "optional" : 1,
22821 "requires" : "archive",
013dc89f
DM
22822 "type" : "boolean",
22823 "typetext" : "<boolean>"
44660702
DM
22824 },
22825 "freeze" : {
22826 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
22827 "optional" : 1,
013dc89f
DM
22828 "type" : "boolean",
22829 "typetext" : "<boolean>"
44660702 22830 },
5f26e15b
TL
22831 "hookscript" : {
22832 "description" : "Script that will be executed during various steps in the vms lifetime.",
22833 "format" : "pve-volume-id",
22834 "optional" : 1,
22835 "type" : "string",
22836 "typetext" : "<string>"
22837 },
44660702 22838 "hostpci[n]" : {
c2993fe5 22839 "description" : "Map host PCI devices into guest.",
44660702
DM
22840 "format" : "pve-qm-hostpci",
22841 "optional" : 1,
57b78691 22842 "type" : "string",
ac70d7d1 22843 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,x-vga=<1|0>]",
bb4c8cf8 22844 "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
22845 },
22846 "hotplug" : {
22847 "default" : "network,disk,usb",
5370fa8c 22848 "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
22849 "format" : "pve-hotplug-features",
22850 "optional" : 1,
013dc89f
DM
22851 "type" : "string",
22852 "typetext" : "<string>"
7aacca6f 22853 },
4bd7df8b
DM
22854 "hugepages" : {
22855 "description" : "Enable/disable hugepages memory.",
22856 "enum" : [
22857 "any",
22858 "2",
22859 "1024"
22860 ],
22861 "optional" : 1,
22862 "type" : "string"
22863 },
7aacca6f 22864 "ide[n]" : {
d2656385 22865 "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.",
56122987 22866 "format" : {
44660702
DM
22867 "aio" : {
22868 "description" : "AIO type to use.",
22869 "enum" : [
22870 "native",
8f4d9c87
TL
22871 "threads",
22872 "io_uring"
44660702 22873 ],
44660702
DM
22874 "optional" : 1,
22875 "type" : "string"
22876 },
22877 "backup" : {
22878 "description" : "Whether the drive should be included when making backups.",
44660702
DM
22879 "optional" : 1,
22880 "type" : "boolean"
22881 },
22882 "bps" : {
de0983cb 22883 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 22884 "format_description" : "bps",
56122987 22885 "optional" : 1,
44660702 22886 "type" : "integer"
56122987 22887 },
de0983cb
DM
22888 "bps_max_length" : {
22889 "description" : "Maximum length of I/O bursts in seconds.",
22890 "format_description" : "seconds",
22891 "minimum" : 1,
22892 "optional" : 1,
22893 "type" : "integer"
22894 },
44660702 22895 "bps_rd" : {
de0983cb 22896 "description" : "Maximum read speed in bytes per second.",
44660702 22897 "format_description" : "bps",
56122987 22898 "optional" : 1,
44660702 22899 "type" : "integer"
56122987 22900 },
de0983cb 22901 "bps_rd_length" : {
5d9c884c
DM
22902 "alias" : "bps_rd_max_length"
22903 },
22904 "bps_rd_max_length" : {
de0983cb
DM
22905 "description" : "Maximum length of read I/O bursts in seconds.",
22906 "format_description" : "seconds",
22907 "minimum" : 1,
22908 "optional" : 1,
22909 "type" : "integer"
22910 },
44660702 22911 "bps_wr" : {
de0983cb 22912 "description" : "Maximum write speed in bytes per second.",
44660702 22913 "format_description" : "bps",
56122987 22914 "optional" : 1,
44660702 22915 "type" : "integer"
56122987 22916 },
de0983cb 22917 "bps_wr_length" : {
5d9c884c
DM
22918 "alias" : "bps_wr_max_length"
22919 },
22920 "bps_wr_max_length" : {
de0983cb
DM
22921 "description" : "Maximum length of write I/O bursts in seconds.",
22922 "format_description" : "seconds",
22923 "minimum" : 1,
22924 "optional" : 1,
22925 "type" : "integer"
22926 },
44660702
DM
22927 "cache" : {
22928 "description" : "The drive's cache mode",
56122987 22929 "enum" : [
7aacca6f 22930 "none",
44660702
DM
22931 "writethrough",
22932 "writeback",
22933 "unsafe",
22934 "directsync"
56122987 22935 ],
56122987 22936 "optional" : 1,
44660702 22937 "type" : "string"
56122987 22938 },
44660702
DM
22939 "cyls" : {
22940 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
22941 "optional" : 1,
22942 "type" : "integer"
7aacca6f 22943 },
44660702
DM
22944 "detect_zeroes" : {
22945 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 22946 "optional" : 1,
44660702 22947 "type" : "boolean"
56122987 22948 },
44660702
DM
22949 "discard" : {
22950 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
22951 "enum" : [
22952 "ignore",
22953 "on"
22954 ],
56122987 22955 "optional" : 1,
44660702 22956 "type" : "string"
56122987 22957 },
7aacca6f 22958 "file" : {
44660702 22959 "default_key" : 1,
7aacca6f 22960 "description" : "The drive's backing volume.",
7aacca6f
DM
22961 "format" : "pve-volume-id-or-qm-path",
22962 "format_description" : "volume",
7aacca6f 22963 "type" : "string"
56122987 22964 },
44660702
DM
22965 "format" : {
22966 "description" : "The drive's backing file's data format.",
56122987 22967 "enum" : [
44660702
DM
22968 "raw",
22969 "cow",
22970 "qcow",
22971 "qed",
22972 "qcow2",
22973 "vmdk",
22974 "cloop"
7aacca6f 22975 ],
7aacca6f
DM
22976 "optional" : 1,
22977 "type" : "string"
56122987 22978 },
44660702
DM
22979 "heads" : {
22980 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 22981 "optional" : 1,
44660702 22982 "type" : "integer"
56122987 22983 },
44660702 22984 "iops" : {
de0983cb 22985 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 22986 "format_description" : "iops",
56122987 22987 "optional" : 1,
44660702 22988 "type" : "integer"
56122987 22989 },
44660702 22990 "iops_max" : {
de0983cb 22991 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 22992 "format_description" : "iops",
56122987 22993 "optional" : 1,
44660702 22994 "type" : "integer"
56122987 22995 },
de0983cb
DM
22996 "iops_max_length" : {
22997 "description" : "Maximum length of I/O bursts in seconds.",
22998 "format_description" : "seconds",
22999 "minimum" : 1,
23000 "optional" : 1,
23001 "type" : "integer"
23002 },
7aacca6f 23003 "iops_rd" : {
de0983cb 23004 "description" : "Maximum read I/O in operations per second.",
44660702
DM
23005 "format_description" : "iops",
23006 "optional" : 1,
23007 "type" : "integer"
7aacca6f 23008 },
de0983cb 23009 "iops_rd_length" : {
5d9c884c 23010 "alias" : "iops_rd_max_length"
de0983cb 23011 },
44660702 23012 "iops_rd_max" : {
de0983cb 23013 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 23014 "format_description" : "iops",
56122987 23015 "optional" : 1,
44660702 23016 "type" : "integer"
56122987 23017 },
5d9c884c
DM
23018 "iops_rd_max_length" : {
23019 "description" : "Maximum length of read I/O bursts in seconds.",
23020 "format_description" : "seconds",
23021 "minimum" : 1,
23022 "optional" : 1,
23023 "type" : "integer"
23024 },
44660702 23025 "iops_wr" : {
de0983cb 23026 "description" : "Maximum write I/O in operations per second.",
44660702 23027 "format_description" : "iops",
56122987 23028 "optional" : 1,
44660702 23029 "type" : "integer"
7aacca6f 23030 },
de0983cb 23031 "iops_wr_length" : {
5d9c884c 23032 "alias" : "iops_wr_max_length"
de0983cb 23033 },
44660702 23034 "iops_wr_max" : {
de0983cb 23035 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 23036 "format_description" : "iops",
7aacca6f 23037 "optional" : 1,
44660702 23038 "type" : "integer"
56122987 23039 },
5d9c884c
DM
23040 "iops_wr_max_length" : {
23041 "description" : "Maximum length of write I/O bursts in seconds.",
23042 "format_description" : "seconds",
23043 "minimum" : 1,
23044 "optional" : 1,
23045 "type" : "integer"
23046 },
44660702 23047 "mbps" : {
de0983cb 23048 "description" : "Maximum r/w speed in megabytes per second.",
44660702 23049 "format_description" : "mbps",
7aacca6f 23050 "optional" : 1,
44660702 23051 "type" : "number"
56122987 23052 },
44660702 23053 "mbps_max" : {
de0983cb 23054 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
7aacca6f 23055 "format_description" : "mbps",
56122987 23056 "optional" : 1,
44660702 23057 "type" : "number"
56122987 23058 },
44660702 23059 "mbps_rd" : {
de0983cb 23060 "description" : "Maximum read speed in megabytes per second.",
44660702 23061 "format_description" : "mbps",
7aacca6f 23062 "optional" : 1,
44660702 23063 "type" : "number"
7aacca6f 23064 },
44660702 23065 "mbps_rd_max" : {
de0983cb 23066 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 23067 "format_description" : "mbps",
56122987 23068 "optional" : 1,
44660702 23069 "type" : "number"
56122987 23070 },
44660702 23071 "mbps_wr" : {
de0983cb 23072 "description" : "Maximum write speed in megabytes per second.",
44660702 23073 "format_description" : "mbps",
7aacca6f 23074 "optional" : 1,
44660702 23075 "type" : "number"
56122987 23076 },
44660702 23077 "mbps_wr_max" : {
de0983cb 23078 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 23079 "format_description" : "mbps",
56122987 23080 "optional" : 1,
44660702 23081 "type" : "number"
7aacca6f
DM
23082 },
23083 "media" : {
44660702
DM
23084 "default" : "disk",
23085 "description" : "The drive's media type.",
56122987 23086 "enum" : [
7aacca6f
DM
23087 "cdrom",
23088 "disk"
56122987 23089 ],
56122987 23090 "optional" : 1,
44660702 23091 "type" : "string"
56122987 23092 },
44660702
DM
23093 "model" : {
23094 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
23095 "format" : "urlencoded",
23096 "format_description" : "model",
23097 "maxLength" : 120,
56122987 23098 "optional" : 1,
44660702 23099 "type" : "string"
56122987 23100 },
5d9c884c
DM
23101 "replicate" : {
23102 "default" : 1,
23103 "description" : "Whether the drive should considered for replication jobs.",
23104 "optional" : 1,
23105 "type" : "boolean"
23106 },
7aacca6f 23107 "rerror" : {
7aacca6f
DM
23108 "description" : "Read error action.",
23109 "enum" : [
23110 "ignore",
23111 "report",
23112 "stop"
44660702 23113 ],
44660702
DM
23114 "optional" : 1,
23115 "type" : "string"
56122987 23116 },
44660702
DM
23117 "secs" : {
23118 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 23119 "optional" : 1,
44660702
DM
23120 "type" : "integer"
23121 },
23122 "serial" : {
23123 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
23124 "format" : "urlencoded",
23125 "format_description" : "serial",
23126 "maxLength" : 60,
23127 "optional" : 1,
23128 "type" : "string"
23129 },
27a7acb2
DM
23130 "shared" : {
23131 "default" : 0,
23132 "description" : "Mark this locally-managed volume as available on all nodes",
23133 "optional" : 1,
23134 "type" : "boolean",
23135 "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!"
23136 },
44660702
DM
23137 "size" : {
23138 "description" : "Disk size. This is purely informational and has no effect.",
23139 "format" : "disk-size",
f004f5b9 23140 "format_description" : "DiskSize",
44660702
DM
23141 "optional" : 1,
23142 "type" : "string"
7aacca6f
DM
23143 },
23144 "snapshot" : {
27a7acb2 23145 "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 23146 "optional" : 1,
44660702 23147 "type" : "boolean"
7aacca6f 23148 },
25203dc1
NC
23149 "ssd" : {
23150 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
23151 "optional" : 1,
23152 "type" : "boolean"
23153 },
44660702
DM
23154 "trans" : {
23155 "description" : "Force disk geometry bios translation mode.",
23156 "enum" : [
23157 "none",
23158 "lba",
23159 "auto"
23160 ],
7aacca6f 23161 "optional" : 1,
44660702
DM
23162 "type" : "string"
23163 },
23164 "volume" : {
23165 "alias" : "file"
23166 },
23167 "werror" : {
23168 "description" : "Write error action.",
23169 "enum" : [
23170 "enospc",
23171 "ignore",
23172 "report",
23173 "stop"
23174 ],
44660702
DM
23175 "optional" : 1,
23176 "type" : "string"
95895385
TL
23177 },
23178 "wwn" : {
23179 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
23180 "format_description" : "wwn",
23181 "optional" : 1,
23182 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
23183 "type" : "string"
56122987
DM
23184 }
23185 },
56122987 23186 "optional" : 1,
4bd7df8b 23187 "type" : "string",
8f4d9c87 23188 "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>] [,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
23189 },
23190 "ipconfig[n]" : {
d2656385 23191 "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
23192 "format" : "pve-qm-ipconfig",
23193 "optional" : 1,
23194 "type" : "string",
23195 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
56122987 23196 },
95895385
TL
23197 "ivshmem" : {
23198 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
23199 "format" : {
23200 "name" : {
23201 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
23202 "format_description" : "string",
23203 "optional" : 1,
23204 "pattern" : "[a-zA-Z0-9\\-]+",
23205 "type" : "string"
23206 },
23207 "size" : {
23208 "description" : "The size of the file in MB.",
23209 "minimum" : 1,
23210 "type" : "integer"
23211 }
23212 },
23213 "optional" : 1,
23214 "type" : "string",
23215 "typetext" : "size=<integer> [,name=<string>]"
23216 },
4772952b
TL
23217 "keephugepages" : {
23218 "default" : 0,
23219 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
23220 "optional" : 1,
23221 "type" : "boolean",
23222 "typetext" : "<boolean>"
23223 },
56122987 23224 "keyboard" : {
35a75dd3 23225 "default" : null,
5370fa8c 23226 "description" : "Keyboard layout for VNC server. The default is read from the'/etc/pve/datacenter.cfg' configuration file. It should not be necessary to set it.",
56122987 23227 "enum" : [
44660702
DM
23228 "de",
23229 "de-ch",
7aacca6f 23230 "da",
56122987 23231 "en-gb",
44660702
DM
23232 "en-us",
23233 "es",
23234 "fi",
23235 "fr",
23236 "fr-be",
23237 "fr-ca",
23238 "fr-ch",
23239 "hu",
7aacca6f 23240 "is",
44660702
DM
23241 "it",
23242 "ja",
23243 "lt",
56122987 23244 "mk",
7aacca6f 23245 "nl",
56122987 23246 "no",
44660702 23247 "pl",
7aacca6f 23248 "pt",
44660702
DM
23249 "pt-br",
23250 "sv",
23251 "sl",
23252 "tr"
56122987 23253 ],
44660702
DM
23254 "optional" : 1,
23255 "type" : "string"
56122987 23256 },
44660702
DM
23257 "kvm" : {
23258 "default" : 1,
23259 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 23260 "optional" : 1,
013dc89f
DM
23261 "type" : "boolean",
23262 "typetext" : "<boolean>"
7aacca6f 23263 },
d2656385
TL
23264 "live-restore" : {
23265 "description" : "Start the VM immediately from the backup and restore in background. PBS only.",
23266 "optional" : 1,
23267 "requires" : "archive",
23268 "type" : "boolean",
23269 "typetext" : "<boolean>"
23270 },
44660702 23271 "localtime" : {
5370fa8c 23272 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 23273 "optional" : 1,
013dc89f
DM
23274 "type" : "boolean",
23275 "typetext" : "<boolean>"
44660702
DM
23276 },
23277 "lock" : {
23278 "description" : "Lock/unlock the VM.",
7aacca6f 23279 "enum" : [
7aacca6f 23280 "backup",
5f26e15b
TL
23281 "clone",
23282 "create",
23283 "migrate",
23284 "rollback",
7aacca6f 23285 "snapshot",
95895385
TL
23286 "snapshot-delete",
23287 "suspending",
23288 "suspended"
7aacca6f 23289 ],
44660702
DM
23290 "optional" : 1,
23291 "type" : "string"
56122987 23292 },
44660702 23293 "machine" : {
4d47f125 23294 "description" : "Specifies the Qemu machine type.",
44660702
DM
23295 "maxLength" : 40,
23296 "optional" : 1,
5c1699e5 23297 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
23298 "type" : "string"
23299 },
23300 "memory" : {
23301 "default" : 512,
23302 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
23303 "minimum" : 16,
23304 "optional" : 1,
4bd7df8b 23305 "type" : "integer",
013dc89f 23306 "typetext" : "<integer> (16 - N)"
44660702
DM
23307 },
23308 "migrate_downtime" : {
23309 "default" : 0.1,
23310 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
23311 "minimum" : 0,
23312 "optional" : 1,
4bd7df8b 23313 "type" : "number",
013dc89f 23314 "typetext" : "<number> (0 - N)"
44660702
DM
23315 },
23316 "migrate_speed" : {
56122987 23317 "default" : 0,
44660702
DM
23318 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
23319 "minimum" : 0,
56122987 23320 "optional" : 1,
4bd7df8b 23321 "type" : "integer",
013dc89f 23322 "typetext" : "<integer> (0 - N)"
56122987 23323 },
27a7acb2
DM
23324 "name" : {
23325 "description" : "Set a name for the VM. Only used on the configuration web interface.",
23326 "format" : "dns-name",
23327 "optional" : 1,
23328 "type" : "string",
23329 "typetext" : "<string>"
23330 },
23331 "nameserver" : {
4772952b 23332 "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 23333 "format" : "address-list",
44660702 23334 "optional" : 1,
013dc89f
DM
23335 "type" : "string",
23336 "typetext" : "<string>"
44660702
DM
23337 },
23338 "net[n]" : {
c2993fe5 23339 "description" : "Specify network devices.",
f004f5b9
DM
23340 "format" : {
23341 "bridge" : {
c2993fe5 23342 "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",
f004f5b9
DM
23343 "format_description" : "bridge",
23344 "optional" : 1,
c5aa7e14 23345 "pattern" : "[-_.\\w\\d]+",
f004f5b9
DM
23346 "type" : "string"
23347 },
23348 "e1000" : {
23349 "alias" : "macaddr",
23350 "keyAlias" : "model"
23351 },
23352 "e1000-82540em" : {
23353 "alias" : "macaddr",
23354 "keyAlias" : "model"
23355 },
23356 "e1000-82544gc" : {
23357 "alias" : "macaddr",
23358 "keyAlias" : "model"
23359 },
23360 "e1000-82545em" : {
23361 "alias" : "macaddr",
23362 "keyAlias" : "model"
23363 },
5370fa8c
TL
23364 "e1000e" : {
23365 "alias" : "macaddr",
23366 "keyAlias" : "model"
23367 },
f004f5b9
DM
23368 "firewall" : {
23369 "description" : "Whether this interface should be protected by the firewall.",
23370 "optional" : 1,
23371 "type" : "boolean"
23372 },
23373 "i82551" : {
23374 "alias" : "macaddr",
23375 "keyAlias" : "model"
23376 },
23377 "i82557b" : {
23378 "alias" : "macaddr",
23379 "keyAlias" : "model"
23380 },
23381 "i82559er" : {
23382 "alias" : "macaddr",
23383 "keyAlias" : "model"
23384 },
23385 "link_down" : {
c2993fe5 23386 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
23387 "optional" : 1,
23388 "type" : "boolean"
23389 },
23390 "macaddr" : {
c2993fe5 23391 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 23392 "format" : "mac-addr",
f004f5b9 23393 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 23394 "optional" : 1,
95895385
TL
23395 "type" : "string",
23396 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
23397 },
23398 "model" : {
23399 "default_key" : 1,
c2993fe5 23400 "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 23401 "enum" : [
f004f5b9 23402 "e1000",
5370fa8c
TL
23403 "e1000-82540em",
23404 "e1000-82544gc",
23405 "e1000-82545em",
23406 "e1000e",
f004f5b9
DM
23407 "i82551",
23408 "i82557b",
23409 "i82559er",
5370fa8c
TL
23410 "ne2k_isa",
23411 "ne2k_pci",
23412 "pcnet",
23413 "rtl8139",
23414 "virtio",
23415 "vmxnet3"
f004f5b9 23416 ],
f004f5b9
DM
23417 "type" : "string"
23418 },
ac70d7d1
TL
23419 "mtu" : {
23420 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
23421 "maximum" : 65520,
23422 "minimum" : 1,
23423 "optional" : 1,
23424 "type" : "integer"
23425 },
f004f5b9
DM
23426 "ne2k_isa" : {
23427 "alias" : "macaddr",
23428 "keyAlias" : "model"
23429 },
23430 "ne2k_pci" : {
23431 "alias" : "macaddr",
23432 "keyAlias" : "model"
23433 },
23434 "pcnet" : {
23435 "alias" : "macaddr",
23436 "keyAlias" : "model"
23437 },
23438 "queues" : {
23439 "description" : "Number of packet queues to be used on the device.",
23440 "maximum" : 16,
23441 "minimum" : 0,
23442 "optional" : 1,
23443 "type" : "integer"
23444 },
23445 "rate" : {
c2993fe5 23446 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
23447 "minimum" : 0,
23448 "optional" : 1,
23449 "type" : "number"
23450 },
23451 "rtl8139" : {
23452 "alias" : "macaddr",
23453 "keyAlias" : "model"
23454 },
23455 "tag" : {
23456 "description" : "VLAN tag to apply to packets on this interface.",
23457 "maximum" : 4094,
c2993fe5 23458 "minimum" : 1,
f004f5b9
DM
23459 "optional" : 1,
23460 "type" : "integer"
23461 },
23462 "trunks" : {
23463 "description" : "VLAN trunks to pass through this interface.",
23464 "format_description" : "vlanid[;vlanid...]",
23465 "optional" : 1,
23466 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
23467 "type" : "string"
23468 },
23469 "virtio" : {
23470 "alias" : "macaddr",
23471 "keyAlias" : "model"
23472 },
23473 "vmxnet3" : {
23474 "alias" : "macaddr",
23475 "keyAlias" : "model"
23476 }
23477 },
44660702 23478 "optional" : 1,
4bd7df8b 23479 "type" : "string",
ac70d7d1 23480 "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
23481 },
23482 "node" : {
23483 "description" : "The cluster node name.",
23484 "format" : "pve-node",
013dc89f
DM
23485 "type" : "string",
23486 "typetext" : "<string>"
44660702
DM
23487 },
23488 "numa" : {
7aacca6f 23489 "default" : 0,
44660702
DM
23490 "description" : "Enable/disable NUMA.",
23491 "optional" : 1,
013dc89f
DM
23492 "type" : "boolean",
23493 "typetext" : "<boolean>"
56122987 23494 },
7aacca6f 23495 "numa[n]" : {
c2993fe5 23496 "description" : "NUMA topology.",
7aacca6f 23497 "format" : {
44660702 23498 "cpus" : {
c2993fe5 23499 "description" : "CPUs accessing this NUMA node.",
44660702
DM
23500 "format_description" : "id[-id];...",
23501 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
23502 "type" : "string"
23503 },
7aacca6f 23504 "hostnodes" : {
c2993fe5 23505 "description" : "Host NUMA nodes to use.",
44660702 23506 "format_description" : "id[-id];...",
7aacca6f 23507 "optional" : 1,
44660702
DM
23508 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
23509 "type" : "string"
7aacca6f 23510 },
44660702 23511 "memory" : {
c2993fe5 23512 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
23513 "optional" : 1,
23514 "type" : "number"
7aacca6f
DM
23515 },
23516 "policy" : {
c2993fe5 23517 "description" : "NUMA allocation policy.",
7aacca6f
DM
23518 "enum" : [
23519 "preferred",
23520 "bind",
23521 "interleave"
23522 ],
7aacca6f 23523 "optional" : 1,
44660702 23524 "type" : "string"
7aacca6f
DM
23525 }
23526 },
56122987 23527 "optional" : 1,
4bd7df8b
DM
23528 "type" : "string",
23529 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 23530 },
44660702
DM
23531 "onboot" : {
23532 "default" : 0,
23533 "description" : "Specifies whether a VM will be started during system bootup.",
56122987 23534 "optional" : 1,
013dc89f
DM
23535 "type" : "boolean",
23536 "typetext" : "<boolean>"
56122987
DM
23537 },
23538 "ostype" : {
c2993fe5 23539 "description" : "Specify guest operating system.",
56122987
DM
23540 "enum" : [
23541 "other",
23542 "wxp",
23543 "w2k",
23544 "w2k3",
23545 "w2k8",
23546 "wvista",
23547 "win7",
23548 "win8",
32d876b5 23549 "win10",
5370fa8c 23550 "win11",
56122987
DM
23551 "l24",
23552 "l26",
23553 "solaris"
44660702 23554 ],
56122987 23555 "optional" : 1,
c2993fe5 23556 "type" : "string",
5370fa8c 23557 "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 23558 },
44660702 23559 "parallel[n]" : {
c2993fe5 23560 "description" : "Map host parallel devices (n is 0 to 2).",
56122987 23561 "optional" : 1,
44660702 23562 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 23563 "type" : "string",
4772952b 23564 "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 23565 },
44660702
DM
23566 "pool" : {
23567 "description" : "Add the VM to the specified pool.",
23568 "format" : "pve-poolid",
56122987 23569 "optional" : 1,
013dc89f
DM
23570 "type" : "string",
23571 "typetext" : "<string>"
56122987 23572 },
44660702
DM
23573 "protection" : {
23574 "default" : 0,
c2993fe5 23575 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
56122987 23576 "optional" : 1,
013dc89f
DM
23577 "type" : "boolean",
23578 "typetext" : "<boolean>"
56122987 23579 },
44660702 23580 "reboot" : {
7aacca6f 23581 "default" : 1,
44660702
DM
23582 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
23583 "optional" : 1,
013dc89f
DM
23584 "type" : "boolean",
23585 "typetext" : "<boolean>"
56122987 23586 },
c5aa7e14
TL
23587 "rng0" : {
23588 "description" : "Configure a VirtIO-based Random Number Generator.",
23589 "format" : {
23590 "max_bytes" : {
23591 "default" : 1024,
5370fa8c 23592 "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
23593 "optional" : 1,
23594 "type" : "integer"
23595 },
23596 "period" : {
23597 "default" : 1000,
23598 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
23599 "optional" : 1,
23600 "type" : "integer"
23601 },
23602 "source" : {
23603 "default_key" : 1,
5370fa8c 23604 "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
23605 "enum" : [
23606 "/dev/urandom",
23607 "/dev/random",
23608 "/dev/hwrng"
23609 ],
23610 "type" : "string"
23611 }
23612 },
23613 "optional" : 1,
23614 "type" : "string",
23615 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
23616 },
56122987 23617 "sata[n]" : {
d2656385 23618 "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.",
56122987 23619 "format" : {
7aacca6f 23620 "aio" : {
44660702 23621 "description" : "AIO type to use.",
56122987 23622 "enum" : [
7aacca6f 23623 "native",
8f4d9c87
TL
23624 "threads",
23625 "io_uring"
56122987 23626 ],
7aacca6f 23627 "optional" : 1,
44660702 23628 "type" : "string"
7aacca6f
DM
23629 },
23630 "backup" : {
7aacca6f 23631 "description" : "Whether the drive should be included when making backups.",
7aacca6f 23632 "optional" : 1,
44660702 23633 "type" : "boolean"
56122987 23634 },
44660702 23635 "bps" : {
de0983cb 23636 "description" : "Maximum r/w speed in bytes per second.",
44660702 23637 "format_description" : "bps",
7aacca6f 23638 "optional" : 1,
44660702 23639 "type" : "integer"
56122987 23640 },
de0983cb
DM
23641 "bps_max_length" : {
23642 "description" : "Maximum length of I/O bursts in seconds.",
23643 "format_description" : "seconds",
23644 "minimum" : 1,
23645 "optional" : 1,
23646 "type" : "integer"
23647 },
44660702 23648 "bps_rd" : {
de0983cb 23649 "description" : "Maximum read speed in bytes per second.",
44660702 23650 "format_description" : "bps",
56122987 23651 "optional" : 1,
44660702 23652 "type" : "integer"
7aacca6f 23653 },
de0983cb 23654 "bps_rd_length" : {
5d9c884c
DM
23655 "alias" : "bps_rd_max_length"
23656 },
23657 "bps_rd_max_length" : {
de0983cb
DM
23658 "description" : "Maximum length of read I/O bursts in seconds.",
23659 "format_description" : "seconds",
23660 "minimum" : 1,
23661 "optional" : 1,
23662 "type" : "integer"
23663 },
44660702 23664 "bps_wr" : {
de0983cb 23665 "description" : "Maximum write speed in bytes per second.",
44660702 23666 "format_description" : "bps",
56122987 23667 "optional" : 1,
44660702 23668 "type" : "integer"
56122987 23669 },
de0983cb 23670 "bps_wr_length" : {
5d9c884c
DM
23671 "alias" : "bps_wr_max_length"
23672 },
23673 "bps_wr_max_length" : {
de0983cb
DM
23674 "description" : "Maximum length of write I/O bursts in seconds.",
23675 "format_description" : "seconds",
23676 "minimum" : 1,
23677 "optional" : 1,
23678 "type" : "integer"
23679 },
7aacca6f 23680 "cache" : {
7aacca6f
DM
23681 "description" : "The drive's cache mode",
23682 "enum" : [
23683 "none",
23684 "writethrough",
23685 "writeback",
23686 "unsafe",
23687 "directsync"
23688 ],
44660702
DM
23689 "optional" : 1,
23690 "type" : "string"
56122987 23691 },
44660702
DM
23692 "cyls" : {
23693 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 23694 "optional" : 1,
7aacca6f 23695 "type" : "integer"
56122987 23696 },
7aacca6f
DM
23697 "detect_zeroes" : {
23698 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 23699 "optional" : 1,
7aacca6f 23700 "type" : "boolean"
56122987 23701 },
44660702
DM
23702 "discard" : {
23703 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
23704 "enum" : [
23705 "ignore",
23706 "on"
23707 ],
56122987 23708 "optional" : 1,
44660702 23709 "type" : "string"
56122987 23710 },
44660702
DM
23711 "file" : {
23712 "default_key" : 1,
23713 "description" : "The drive's backing volume.",
23714 "format" : "pve-volume-id-or-qm-path",
23715 "format_description" : "volume",
23716 "type" : "string"
56122987
DM
23717 },
23718 "format" : {
44660702 23719 "description" : "The drive's backing file's data format.",
56122987
DM
23720 "enum" : [
23721 "raw",
23722 "cow",
23723 "qcow",
23724 "qed",
23725 "qcow2",
23726 "vmdk",
23727 "cloop"
23728 ],
56122987 23729 "optional" : 1,
44660702 23730 "type" : "string"
56122987 23731 },
7aacca6f 23732 "heads" : {
7aacca6f 23733 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
23734 "optional" : 1,
23735 "type" : "integer"
56122987 23736 },
44660702 23737 "iops" : {
de0983cb 23738 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
23739 "format_description" : "iops",
23740 "optional" : 1,
23741 "type" : "integer"
56122987 23742 },
44660702 23743 "iops_max" : {
de0983cb 23744 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 23745 "format_description" : "iops",
56122987 23746 "optional" : 1,
44660702 23747 "type" : "integer"
56122987 23748 },
de0983cb
DM
23749 "iops_max_length" : {
23750 "description" : "Maximum length of I/O bursts in seconds.",
23751 "format_description" : "seconds",
23752 "minimum" : 1,
23753 "optional" : 1,
23754 "type" : "integer"
23755 },
44660702 23756 "iops_rd" : {
de0983cb 23757 "description" : "Maximum read I/O in operations per second.",
44660702 23758 "format_description" : "iops",
56122987 23759 "optional" : 1,
44660702 23760 "type" : "integer"
56122987 23761 },
de0983cb 23762 "iops_rd_length" : {
5d9c884c 23763 "alias" : "iops_rd_max_length"
de0983cb 23764 },
44660702 23765 "iops_rd_max" : {
de0983cb 23766 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 23767 "format_description" : "iops",
56122987 23768 "optional" : 1,
44660702 23769 "type" : "integer"
56122987 23770 },
5d9c884c
DM
23771 "iops_rd_max_length" : {
23772 "description" : "Maximum length of read I/O bursts in seconds.",
23773 "format_description" : "seconds",
23774 "minimum" : 1,
23775 "optional" : 1,
23776 "type" : "integer"
23777 },
44660702 23778 "iops_wr" : {
de0983cb 23779 "description" : "Maximum write I/O in operations per second.",
44660702 23780 "format_description" : "iops",
7aacca6f 23781 "optional" : 1,
44660702 23782 "type" : "integer"
7aacca6f 23783 },
de0983cb 23784 "iops_wr_length" : {
5d9c884c 23785 "alias" : "iops_wr_max_length"
de0983cb 23786 },
44660702 23787 "iops_wr_max" : {
de0983cb 23788 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 23789 "format_description" : "iops",
56122987 23790 "optional" : 1,
7aacca6f 23791 "type" : "integer"
56122987 23792 },
5d9c884c
DM
23793 "iops_wr_max_length" : {
23794 "description" : "Maximum length of write I/O bursts in seconds.",
23795 "format_description" : "seconds",
23796 "minimum" : 1,
23797 "optional" : 1,
23798 "type" : "integer"
23799 },
44660702 23800 "mbps" : {
de0983cb 23801 "description" : "Maximum r/w speed in megabytes per second.",
44660702 23802 "format_description" : "mbps",
56122987 23803 "optional" : 1,
44660702 23804 "type" : "number"
56122987 23805 },
44660702 23806 "mbps_max" : {
de0983cb 23807 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 23808 "format_description" : "mbps",
7aacca6f 23809 "optional" : 1,
44660702 23810 "type" : "number"
7aacca6f 23811 },
44660702 23812 "mbps_rd" : {
de0983cb 23813 "description" : "Maximum read speed in megabytes per second.",
44660702 23814 "format_description" : "mbps",
7aacca6f 23815 "optional" : 1,
44660702 23816 "type" : "number"
7aacca6f 23817 },
44660702 23818 "mbps_rd_max" : {
de0983cb 23819 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 23820 "format_description" : "mbps",
7aacca6f 23821 "optional" : 1,
44660702 23822 "type" : "number"
7aacca6f 23823 },
44660702 23824 "mbps_wr" : {
de0983cb 23825 "description" : "Maximum write speed in megabytes per second.",
44660702 23826 "format_description" : "mbps",
7aacca6f 23827 "optional" : 1,
44660702 23828 "type" : "number"
7aacca6f
DM
23829 },
23830 "mbps_wr_max" : {
de0983cb 23831 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 23832 "format_description" : "mbps",
7aacca6f 23833 "optional" : 1,
44660702 23834 "type" : "number"
7aacca6f 23835 },
44660702
DM
23836 "media" : {
23837 "default" : "disk",
23838 "description" : "The drive's media type.",
56122987 23839 "enum" : [
44660702
DM
23840 "cdrom",
23841 "disk"
56122987 23842 ],
56122987 23843 "optional" : 1,
44660702 23844 "type" : "string"
56122987 23845 },
5d9c884c
DM
23846 "replicate" : {
23847 "default" : 1,
23848 "description" : "Whether the drive should considered for replication jobs.",
23849 "optional" : 1,
23850 "type" : "boolean"
23851 },
44660702
DM
23852 "rerror" : {
23853 "description" : "Read error action.",
7aacca6f
DM
23854 "enum" : [
23855 "ignore",
44660702
DM
23856 "report",
23857 "stop"
7aacca6f 23858 ],
56122987 23859 "optional" : 1,
44660702 23860 "type" : "string"
56122987 23861 },
44660702
DM
23862 "secs" : {
23863 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 23864 "optional" : 1,
44660702 23865 "type" : "integer"
56122987 23866 },
44660702
DM
23867 "serial" : {
23868 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
23869 "format" : "urlencoded",
23870 "format_description" : "serial",
23871 "maxLength" : 60,
23872 "optional" : 1,
23873 "type" : "string"
7aacca6f 23874 },
27a7acb2
DM
23875 "shared" : {
23876 "default" : 0,
23877 "description" : "Mark this locally-managed volume as available on all nodes",
23878 "optional" : 1,
23879 "type" : "boolean",
23880 "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!"
23881 },
7aacca6f
DM
23882 "size" : {
23883 "description" : "Disk size. This is purely informational and has no effect.",
44660702 23884 "format" : "disk-size",
f004f5b9 23885 "format_description" : "DiskSize",
56122987 23886 "optional" : 1,
44660702 23887 "type" : "string"
56122987 23888 },
44660702 23889 "snapshot" : {
27a7acb2 23890 "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 23891 "optional" : 1,
44660702 23892 "type" : "boolean"
56122987 23893 },
25203dc1
NC
23894 "ssd" : {
23895 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
23896 "optional" : 1,
23897 "type" : "boolean"
23898 },
44660702
DM
23899 "trans" : {
23900 "description" : "Force disk geometry bios translation mode.",
56122987 23901 "enum" : [
44660702
DM
23902 "none",
23903 "lba",
23904 "auto"
7aacca6f 23905 ],
44660702
DM
23906 "optional" : 1,
23907 "type" : "string"
23908 },
23909 "volume" : {
23910 "alias" : "file"
56122987
DM
23911 },
23912 "werror" : {
56122987
DM
23913 "description" : "Write error action.",
23914 "enum" : [
23915 "enospc",
23916 "ignore",
23917 "report",
23918 "stop"
23919 ],
56122987 23920 "optional" : 1,
44660702 23921 "type" : "string"
95895385
TL
23922 },
23923 "wwn" : {
23924 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
23925 "format_description" : "wwn",
23926 "optional" : 1,
23927 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
23928 "type" : "string"
44660702
DM
23929 }
23930 },
23931 "optional" : 1,
4bd7df8b 23932 "type" : "string",
8f4d9c87 23933 "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>] [,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
23934 },
23935 "scsi[n]" : {
d2656385 23936 "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.",
44660702
DM
23937 "format" : {
23938 "aio" : {
23939 "description" : "AIO type to use.",
23940 "enum" : [
23941 "native",
8f4d9c87
TL
23942 "threads",
23943 "io_uring"
44660702 23944 ],
44660702
DM
23945 "optional" : 1,
23946 "type" : "string"
56122987 23947 },
7aacca6f 23948 "backup" : {
44660702 23949 "description" : "Whether the drive should be included when making backups.",
7aacca6f 23950 "optional" : 1,
44660702 23951 "type" : "boolean"
7aacca6f 23952 },
44660702 23953 "bps" : {
de0983cb 23954 "description" : "Maximum r/w speed in bytes per second.",
44660702 23955 "format_description" : "bps",
7aacca6f 23956 "optional" : 1,
44660702 23957 "type" : "integer"
7aacca6f 23958 },
de0983cb
DM
23959 "bps_max_length" : {
23960 "description" : "Maximum length of I/O bursts in seconds.",
23961 "format_description" : "seconds",
23962 "minimum" : 1,
23963 "optional" : 1,
23964 "type" : "integer"
23965 },
44660702 23966 "bps_rd" : {
de0983cb 23967 "description" : "Maximum read speed in bytes per second.",
44660702 23968 "format_description" : "bps",
56122987 23969 "optional" : 1,
44660702 23970 "type" : "integer"
56122987 23971 },
de0983cb 23972 "bps_rd_length" : {
5d9c884c
DM
23973 "alias" : "bps_rd_max_length"
23974 },
23975 "bps_rd_max_length" : {
de0983cb
DM
23976 "description" : "Maximum length of read I/O bursts in seconds.",
23977 "format_description" : "seconds",
23978 "minimum" : 1,
23979 "optional" : 1,
23980 "type" : "integer"
23981 },
44660702 23982 "bps_wr" : {
de0983cb 23983 "description" : "Maximum write speed in bytes per second.",
44660702 23984 "format_description" : "bps",
7aacca6f 23985 "optional" : 1,
44660702 23986 "type" : "integer"
56122987 23987 },
de0983cb 23988 "bps_wr_length" : {
5d9c884c
DM
23989 "alias" : "bps_wr_max_length"
23990 },
23991 "bps_wr_max_length" : {
de0983cb
DM
23992 "description" : "Maximum length of write I/O bursts in seconds.",
23993 "format_description" : "seconds",
23994 "minimum" : 1,
23995 "optional" : 1,
23996 "type" : "integer"
23997 },
44660702
DM
23998 "cache" : {
23999 "description" : "The drive's cache mode",
7aacca6f
DM
24000 "enum" : [
24001 "none",
44660702
DM
24002 "writethrough",
24003 "writeback",
24004 "unsafe",
24005 "directsync"
7aacca6f 24006 ],
56122987 24007 "optional" : 1,
44660702 24008 "type" : "string"
56122987 24009 },
7aacca6f
DM
24010 "cyls" : {
24011 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
24012 "optional" : 1,
44660702 24013 "type" : "integer"
7aacca6f 24014 },
44660702
DM
24015 "detect_zeroes" : {
24016 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 24017 "optional" : 1,
44660702 24018 "type" : "boolean"
56122987 24019 },
44660702
DM
24020 "discard" : {
24021 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
7aacca6f 24022 "enum" : [
44660702
DM
24023 "ignore",
24024 "on"
7aacca6f 24025 ],
7aacca6f 24026 "optional" : 1,
44660702 24027 "type" : "string"
56122987
DM
24028 },
24029 "file" : {
7aacca6f
DM
24030 "default_key" : 1,
24031 "description" : "The drive's backing volume.",
44660702
DM
24032 "format" : "pve-volume-id-or-qm-path",
24033 "format_description" : "volume",
7aacca6f 24034 "type" : "string"
56122987 24035 },
7aacca6f 24036 "format" : {
44660702 24037 "description" : "The drive's backing file's data format.",
56122987 24038 "enum" : [
7aacca6f
DM
24039 "raw",
24040 "cow",
24041 "qcow",
24042 "qed",
24043 "qcow2",
24044 "vmdk",
24045 "cloop"
56122987 24046 ],
44660702
DM
24047 "optional" : 1,
24048 "type" : "string"
56122987 24049 },
44660702
DM
24050 "heads" : {
24051 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
24052 "optional" : 1,
24053 "type" : "integer"
24054 },
24055 "iops" : {
de0983cb 24056 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 24057 "format_description" : "iops",
56122987 24058 "optional" : 1,
44660702 24059 "type" : "integer"
56122987 24060 },
44660702 24061 "iops_max" : {
de0983cb 24062 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 24063 "format_description" : "iops",
7aacca6f 24064 "optional" : 1,
44660702 24065 "type" : "integer"
56122987 24066 },
de0983cb
DM
24067 "iops_max_length" : {
24068 "description" : "Maximum length of I/O bursts in seconds.",
24069 "format_description" : "seconds",
24070 "minimum" : 1,
24071 "optional" : 1,
24072 "type" : "integer"
24073 },
44660702 24074 "iops_rd" : {
de0983cb 24075 "description" : "Maximum read I/O in operations per second.",
44660702 24076 "format_description" : "iops",
56122987 24077 "optional" : 1,
44660702 24078 "type" : "integer"
56122987 24079 },
de0983cb 24080 "iops_rd_length" : {
5d9c884c 24081 "alias" : "iops_rd_max_length"
de0983cb 24082 },
44660702 24083 "iops_rd_max" : {
de0983cb 24084 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
24085 "format_description" : "iops",
24086 "optional" : 1,
24087 "type" : "integer"
56122987 24088 },
5d9c884c
DM
24089 "iops_rd_max_length" : {
24090 "description" : "Maximum length of read I/O bursts in seconds.",
24091 "format_description" : "seconds",
24092 "minimum" : 1,
24093 "optional" : 1,
24094 "type" : "integer"
24095 },
44660702 24096 "iops_wr" : {
de0983cb 24097 "description" : "Maximum write I/O in operations per second.",
44660702 24098 "format_description" : "iops",
56122987 24099 "optional" : 1,
44660702 24100 "type" : "integer"
56122987 24101 },
de0983cb 24102 "iops_wr_length" : {
5d9c884c 24103 "alias" : "iops_wr_max_length"
de0983cb 24104 },
44660702 24105 "iops_wr_max" : {
de0983cb 24106 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 24107 "format_description" : "iops",
56122987 24108 "optional" : 1,
56122987
DM
24109 "type" : "integer"
24110 },
5d9c884c
DM
24111 "iops_wr_max_length" : {
24112 "description" : "Maximum length of write I/O bursts in seconds.",
24113 "format_description" : "seconds",
24114 "minimum" : 1,
24115 "optional" : 1,
24116 "type" : "integer"
24117 },
44660702
DM
24118 "iothread" : {
24119 "description" : "Whether to use iothreads for this drive",
44660702
DM
24120 "optional" : 1,
24121 "type" : "boolean"
24122 },
24123 "mbps" : {
de0983cb 24124 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
24125 "format_description" : "mbps",
24126 "optional" : 1,
24127 "type" : "number"
24128 },
7aacca6f 24129 "mbps_max" : {
de0983cb 24130 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 24131 "format_description" : "mbps",
56122987 24132 "optional" : 1,
44660702 24133 "type" : "number"
56122987 24134 },
44660702 24135 "mbps_rd" : {
de0983cb 24136 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
24137 "format_description" : "mbps",
24138 "optional" : 1,
24139 "type" : "number"
56122987 24140 },
44660702 24141 "mbps_rd_max" : {
de0983cb 24142 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 24143 "format_description" : "mbps",
56122987 24144 "optional" : 1,
44660702 24145 "type" : "number"
56122987 24146 },
44660702 24147 "mbps_wr" : {
de0983cb 24148 "description" : "Maximum write speed in megabytes per second.",
44660702 24149 "format_description" : "mbps",
56122987 24150 "optional" : 1,
44660702 24151 "type" : "number"
56122987 24152 },
44660702 24153 "mbps_wr_max" : {
de0983cb 24154 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 24155 "format_description" : "mbps",
7aacca6f 24156 "optional" : 1,
44660702 24157 "type" : "number"
56122987 24158 },
7aacca6f 24159 "media" : {
44660702 24160 "default" : "disk",
7aacca6f
DM
24161 "description" : "The drive's media type.",
24162 "enum" : [
24163 "cdrom",
24164 "disk"
24165 ],
56122987 24166 "optional" : 1,
44660702 24167 "type" : "string"
56122987 24168 },
44660702
DM
24169 "queues" : {
24170 "description" : "Number of queues.",
44660702
DM
24171 "minimum" : 2,
24172 "optional" : 1,
24173 "type" : "integer"
56122987 24174 },
5d9c884c
DM
24175 "replicate" : {
24176 "default" : 1,
24177 "description" : "Whether the drive should considered for replication jobs.",
24178 "optional" : 1,
24179 "type" : "boolean"
24180 },
24181 "rerror" : {
24182 "description" : "Read error action.",
24183 "enum" : [
24184 "ignore",
24185 "report",
24186 "stop"
24187 ],
24188 "optional" : 1,
24189 "type" : "string"
24190 },
5370fa8c
TL
24191 "ro" : {
24192 "description" : "Whether the drive is read-only.",
24193 "optional" : 1,
24194 "type" : "boolean"
24195 },
52e44c50
FG
24196 "scsiblock" : {
24197 "default" : 0,
24198 "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",
24199 "optional" : 1,
24200 "type" : "boolean"
24201 },
7aacca6f 24202 "secs" : {
7aacca6f 24203 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
24204 "optional" : 1,
24205 "type" : "integer"
24206 },
24207 "serial" : {
24208 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
24209 "format" : "urlencoded",
24210 "format_description" : "serial",
24211 "maxLength" : 60,
24212 "optional" : 1,
24213 "type" : "string"
24214 },
27a7acb2
DM
24215 "shared" : {
24216 "default" : 0,
24217 "description" : "Mark this locally-managed volume as available on all nodes",
24218 "optional" : 1,
24219 "type" : "boolean",
24220 "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!"
24221 },
44660702
DM
24222 "size" : {
24223 "description" : "Disk size. This is purely informational and has no effect.",
24224 "format" : "disk-size",
f004f5b9 24225 "format_description" : "DiskSize",
44660702
DM
24226 "optional" : 1,
24227 "type" : "string"
24228 },
24229 "snapshot" : {
27a7acb2 24230 "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
24231 "optional" : 1,
24232 "type" : "boolean"
24233 },
25203dc1
NC
24234 "ssd" : {
24235 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
24236 "optional" : 1,
24237 "type" : "boolean"
24238 },
44660702
DM
24239 "trans" : {
24240 "description" : "Force disk geometry bios translation mode.",
24241 "enum" : [
24242 "none",
24243 "lba",
24244 "auto"
24245 ],
44660702
DM
24246 "optional" : 1,
24247 "type" : "string"
24248 },
24249 "volume" : {
24250 "alias" : "file"
24251 },
24252 "werror" : {
24253 "description" : "Write error action.",
24254 "enum" : [
24255 "enospc",
24256 "ignore",
24257 "report",
24258 "stop"
24259 ],
44660702
DM
24260 "optional" : 1,
24261 "type" : "string"
95895385
TL
24262 },
24263 "wwn" : {
24264 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
24265 "format_description" : "wwn",
24266 "optional" : 1,
24267 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
24268 "type" : "string"
56122987
DM
24269 }
24270 },
7aacca6f 24271 "optional" : 1,
4bd7df8b 24272 "type" : "string",
5370fa8c 24273 "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>] [,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 24274 },
44660702
DM
24275 "scsihw" : {
24276 "default" : "lsi",
c2993fe5 24277 "description" : "SCSI controller model",
44660702
DM
24278 "enum" : [
24279 "lsi",
24280 "lsi53c810",
24281 "virtio-scsi-pci",
24282 "virtio-scsi-single",
24283 "megasas",
24284 "pvscsi"
24285 ],
7aacca6f 24286 "optional" : 1,
44660702 24287 "type" : "string"
7aacca6f 24288 },
27a7acb2 24289 "searchdomain" : {
4772952b 24290 "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
24291 "optional" : 1,
24292 "type" : "string",
24293 "typetext" : "<string>"
24294 },
44660702 24295 "serial[n]" : {
c2993fe5 24296 "description" : "Create a serial device inside the VM (n is 0 to 3)",
44660702
DM
24297 "optional" : 1,
24298 "pattern" : "(/dev/.+|socket)",
c2993fe5 24299 "type" : "string",
4772952b 24300 "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
24301 },
24302 "shares" : {
24303 "default" : 1000,
5da3d723 24304 "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
24305 "maximum" : 50000,
24306 "minimum" : 0,
24307 "optional" : 1,
4bd7df8b 24308 "type" : "integer",
013dc89f 24309 "typetext" : "<integer> (0 - 50000)"
44660702
DM
24310 },
24311 "smbios1" : {
24312 "description" : "Specify SMBIOS type 1 fields.",
24313 "format" : "pve-qm-smbios1",
1e3f8156 24314 "maxLength" : 512,
7aacca6f 24315 "optional" : 1,
4bd7df8b 24316 "type" : "string",
1e3f8156 24317 "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
24318 },
24319 "smp" : {
44660702 24320 "default" : 1,
7aacca6f 24321 "description" : "The number of CPUs. Please use option -sockets instead.",
44660702 24322 "minimum" : 1,
56122987 24323 "optional" : 1,
4bd7df8b 24324 "type" : "integer",
013dc89f 24325 "typetext" : "<integer> (1 - N)"
44660702
DM
24326 },
24327 "sockets" : {
7aacca6f 24328 "default" : 1,
44660702
DM
24329 "description" : "The number of CPU sockets.",
24330 "minimum" : 1,
24331 "optional" : 1,
4bd7df8b 24332 "type" : "integer",
013dc89f 24333 "typetext" : "<integer> (1 - N)"
7aacca6f 24334 },
1c532546
TL
24335 "spice_enhancements" : {
24336 "description" : "Configure additional enhancements for SPICE.",
24337 "format" : {
24338 "foldersharing" : {
24339 "default" : "0",
24340 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
24341 "optional" : 1,
24342 "type" : "boolean"
24343 },
24344 "videostreaming" : {
24345 "default" : "off",
24346 "description" : "Enable video streaming. Uses compression for detected video streams.",
24347 "enum" : [
24348 "off",
24349 "all",
24350 "filter"
24351 ],
24352 "optional" : 1,
24353 "type" : "string"
24354 }
24355 },
24356 "optional" : 1,
24357 "type" : "string",
24358 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
24359 },
27a7acb2
DM
24360 "sshkeys" : {
24361 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
24362 "format" : "urlencoded",
24363 "optional" : 1,
24364 "type" : "string",
24365 "typetext" : "<string>"
24366 },
5da3d723
TL
24367 "start" : {
24368 "default" : 0,
24369 "description" : "Start VM after it was created successfully.",
24370 "optional" : 1,
24371 "type" : "boolean",
24372 "typetext" : "<boolean>"
24373 },
44660702
DM
24374 "startdate" : {
24375 "default" : "now",
4772952b 24376 "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
24377 "optional" : 1,
24378 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
24379 "type" : "string",
24380 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
24381 },
24382 "startup" : {
24383 "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.",
24384 "format" : "pve-startup-order",
24385 "optional" : 1,
24386 "type" : "string",
24387 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
24388 },
24389 "storage" : {
24390 "description" : "Default storage.",
24391 "format" : "pve-storage-id",
7aacca6f 24392 "optional" : 1,
013dc89f
DM
24393 "type" : "string",
24394 "typetext" : "<string>"
56122987 24395 },
44660702
DM
24396 "tablet" : {
24397 "default" : 1,
c2993fe5 24398 "description" : "Enable/disable the USB tablet device.",
56122987 24399 "optional" : 1,
c2993fe5 24400 "type" : "boolean",
013dc89f 24401 "typetext" : "<boolean>",
4772952b 24402 "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 24403 },
5c1699e5
TL
24404 "tags" : {
24405 "description" : "Tags of the VM. This is only meta information.",
24406 "format" : "pve-tag-list",
24407 "optional" : 1,
24408 "type" : "string",
24409 "typetext" : "<string>"
24410 },
44660702
DM
24411 "tdf" : {
24412 "default" : 0,
24413 "description" : "Enable/disable time drift fix.",
24414 "optional" : 1,
013dc89f
DM
24415 "type" : "boolean",
24416 "typetext" : "<boolean>"
7aacca6f
DM
24417 },
24418 "template" : {
7aacca6f 24419 "default" : 0,
44660702 24420 "description" : "Enable/disable Template.",
7aacca6f 24421 "optional" : 1,
013dc89f
DM
24422 "type" : "boolean",
24423 "typetext" : "<boolean>"
7aacca6f 24424 },
5370fa8c
TL
24425 "tpmstate0" : {
24426 "description" : "Configure a Disk for storing TPM state. 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 size of 4 MiB will always be used instead. The format is also fixed to 'raw'.",
24427 "format" : {
24428 "file" : {
24429 "default_key" : 1,
24430 "description" : "The drive's backing volume.",
24431 "format" : "pve-volume-id-or-qm-path",
24432 "format_description" : "volume",
24433 "type" : "string"
24434 },
24435 "size" : {
24436 "description" : "Disk size. This is purely informational and has no effect.",
24437 "format" : "disk-size",
24438 "format_description" : "DiskSize",
24439 "optional" : 1,
24440 "type" : "string"
24441 },
24442 "version" : {
24443 "default" : "v2.0",
24444 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
24445 "enum" : [
24446 "v1.2",
24447 "v2.0"
24448 ],
24449 "optional" : 1,
24450 "type" : "string"
24451 },
24452 "volume" : {
24453 "alias" : "file"
24454 }
24455 },
24456 "optional" : 1,
24457 "type" : "string",
24458 "typetext" : "[file=]<volume> [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
24459 },
44660702
DM
24460 "unique" : {
24461 "description" : "Assign a unique random ethernet address.",
7aacca6f 24462 "optional" : 1,
44660702 24463 "requires" : "archive",
013dc89f
DM
24464 "type" : "boolean",
24465 "typetext" : "<boolean>"
56122987 24466 },
44660702 24467 "unused[n]" : {
c2993fe5 24468 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
24469 "format" : {
24470 "file" : {
24471 "default_key" : 1,
24472 "description" : "The drive's backing volume.",
24473 "format" : "pve-volume-id",
24474 "format_description" : "volume",
24475 "type" : "string"
24476 },
24477 "volume" : {
24478 "alias" : "file"
24479 }
24480 },
7aacca6f 24481 "optional" : 1,
013dc89f 24482 "type" : "string",
c5aa7e14 24483 "typetext" : "[file=]<volume>"
44660702
DM
24484 },
24485 "usb[n]" : {
c2993fe5 24486 "description" : "Configure an USB device (n is 0 to 4).",
56122987 24487 "format" : {
7aacca6f
DM
24488 "host" : {
24489 "default_key" : 1,
4772952b 24490 "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 24491 "format" : "pve-qm-usb-device",
44660702
DM
24492 "format_description" : "HOSTUSBDEVICE|spice",
24493 "type" : "string"
7aacca6f 24494 },
56122987 24495 "usb3" : {
c2993fe5 24496 "default" : 0,
1c532546 24497 "description" : "Specifies whether if given host option is a USB3 device or port.",
56122987 24498 "optional" : 1,
56122987 24499 "type" : "boolean"
7aacca6f 24500 }
56122987 24501 },
56122987 24502 "optional" : 1,
4bd7df8b
DM
24503 "type" : "string",
24504 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
56122987 24505 },
44660702
DM
24506 "vcpus" : {
24507 "default" : 0,
24508 "description" : "Number of hotplugged vcpus.",
24509 "minimum" : 1,
56122987 24510 "optional" : 1,
4bd7df8b 24511 "type" : "integer",
013dc89f 24512 "typetext" : "<integer> (1 - N)"
7aacca6f 24513 },
44660702 24514 "vga" : {
e2d681b3
TL
24515 "description" : "Configure the VGA hardware.",
24516 "format" : {
24517 "memory" : {
24518 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
24519 "maximum" : 512,
24520 "minimum" : 4,
24521 "optional" : 1,
24522 "type" : "integer"
24523 },
24524 "type" : {
24525 "default" : "std",
24526 "default_key" : 1,
24527 "description" : "Select the VGA type.",
24528 "enum" : [
24529 "cirrus",
24530 "qxl",
24531 "qxl2",
24532 "qxl3",
24533 "qxl4",
5f26e15b 24534 "none",
e2d681b3
TL
24535 "serial0",
24536 "serial1",
24537 "serial2",
24538 "serial3",
24539 "std",
24540 "virtio",
24541 "vmware"
24542 ],
24543 "optional" : 1,
24544 "type" : "string"
24545 }
24546 },
44660702 24547 "optional" : 1,
c2993fe5 24548 "type" : "string",
e2d681b3
TL
24549 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
24550 "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 24551 },
44660702 24552 "virtio[n]" : {
d2656385 24553 "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.",
44660702
DM
24554 "format" : {
24555 "aio" : {
24556 "description" : "AIO type to use.",
24557 "enum" : [
24558 "native",
8f4d9c87
TL
24559 "threads",
24560 "io_uring"
44660702 24561 ],
44660702
DM
24562 "optional" : 1,
24563 "type" : "string"
24564 },
24565 "backup" : {
24566 "description" : "Whether the drive should be included when making backups.",
44660702
DM
24567 "optional" : 1,
24568 "type" : "boolean"
24569 },
24570 "bps" : {
de0983cb 24571 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
24572 "format_description" : "bps",
24573 "optional" : 1,
24574 "type" : "integer"
24575 },
de0983cb
DM
24576 "bps_max_length" : {
24577 "description" : "Maximum length of I/O bursts in seconds.",
24578 "format_description" : "seconds",
24579 "minimum" : 1,
24580 "optional" : 1,
24581 "type" : "integer"
24582 },
44660702 24583 "bps_rd" : {
de0983cb 24584 "description" : "Maximum read speed in bytes per second.",
44660702
DM
24585 "format_description" : "bps",
24586 "optional" : 1,
24587 "type" : "integer"
24588 },
de0983cb 24589 "bps_rd_length" : {
5d9c884c
DM
24590 "alias" : "bps_rd_max_length"
24591 },
24592 "bps_rd_max_length" : {
de0983cb
DM
24593 "description" : "Maximum length of read I/O bursts in seconds.",
24594 "format_description" : "seconds",
24595 "minimum" : 1,
24596 "optional" : 1,
24597 "type" : "integer"
24598 },
44660702 24599 "bps_wr" : {
de0983cb 24600 "description" : "Maximum write speed in bytes per second.",
44660702
DM
24601 "format_description" : "bps",
24602 "optional" : 1,
24603 "type" : "integer"
24604 },
de0983cb 24605 "bps_wr_length" : {
5d9c884c
DM
24606 "alias" : "bps_wr_max_length"
24607 },
24608 "bps_wr_max_length" : {
de0983cb
DM
24609 "description" : "Maximum length of write I/O bursts in seconds.",
24610 "format_description" : "seconds",
24611 "minimum" : 1,
24612 "optional" : 1,
24613 "type" : "integer"
24614 },
44660702
DM
24615 "cache" : {
24616 "description" : "The drive's cache mode",
24617 "enum" : [
24618 "none",
24619 "writethrough",
24620 "writeback",
24621 "unsafe",
24622 "directsync"
24623 ],
44660702
DM
24624 "optional" : 1,
24625 "type" : "string"
24626 },
24627 "cyls" : {
24628 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
24629 "optional" : 1,
24630 "type" : "integer"
24631 },
24632 "detect_zeroes" : {
24633 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
24634 "optional" : 1,
24635 "type" : "boolean"
24636 },
24637 "discard" : {
24638 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
24639 "enum" : [
24640 "ignore",
24641 "on"
24642 ],
44660702
DM
24643 "optional" : 1,
24644 "type" : "string"
24645 },
24646 "file" : {
24647 "default_key" : 1,
24648 "description" : "The drive's backing volume.",
24649 "format" : "pve-volume-id-or-qm-path",
24650 "format_description" : "volume",
24651 "type" : "string"
24652 },
24653 "format" : {
24654 "description" : "The drive's backing file's data format.",
24655 "enum" : [
24656 "raw",
24657 "cow",
24658 "qcow",
24659 "qed",
24660 "qcow2",
24661 "vmdk",
24662 "cloop"
24663 ],
44660702
DM
24664 "optional" : 1,
24665 "type" : "string"
24666 },
24667 "heads" : {
24668 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
24669 "optional" : 1,
24670 "type" : "integer"
24671 },
24672 "iops" : {
de0983cb 24673 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
24674 "format_description" : "iops",
24675 "optional" : 1,
24676 "type" : "integer"
24677 },
24678 "iops_max" : {
de0983cb 24679 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
24680 "format_description" : "iops",
24681 "optional" : 1,
24682 "type" : "integer"
24683 },
de0983cb
DM
24684 "iops_max_length" : {
24685 "description" : "Maximum length of I/O bursts in seconds.",
24686 "format_description" : "seconds",
24687 "minimum" : 1,
24688 "optional" : 1,
24689 "type" : "integer"
24690 },
44660702 24691 "iops_rd" : {
de0983cb 24692 "description" : "Maximum read I/O in operations per second.",
44660702
DM
24693 "format_description" : "iops",
24694 "optional" : 1,
24695 "type" : "integer"
24696 },
de0983cb 24697 "iops_rd_length" : {
5d9c884c 24698 "alias" : "iops_rd_max_length"
de0983cb 24699 },
44660702 24700 "iops_rd_max" : {
de0983cb 24701 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
24702 "format_description" : "iops",
24703 "optional" : 1,
24704 "type" : "integer"
24705 },
5d9c884c
DM
24706 "iops_rd_max_length" : {
24707 "description" : "Maximum length of read I/O bursts in seconds.",
24708 "format_description" : "seconds",
24709 "minimum" : 1,
24710 "optional" : 1,
24711 "type" : "integer"
24712 },
44660702 24713 "iops_wr" : {
de0983cb 24714 "description" : "Maximum write I/O in operations per second.",
44660702
DM
24715 "format_description" : "iops",
24716 "optional" : 1,
24717 "type" : "integer"
24718 },
de0983cb 24719 "iops_wr_length" : {
5d9c884c 24720 "alias" : "iops_wr_max_length"
de0983cb 24721 },
44660702 24722 "iops_wr_max" : {
de0983cb 24723 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
24724 "format_description" : "iops",
24725 "optional" : 1,
24726 "type" : "integer"
24727 },
5d9c884c
DM
24728 "iops_wr_max_length" : {
24729 "description" : "Maximum length of write I/O bursts in seconds.",
24730 "format_description" : "seconds",
24731 "minimum" : 1,
24732 "optional" : 1,
24733 "type" : "integer"
24734 },
44660702
DM
24735 "iothread" : {
24736 "description" : "Whether to use iothreads for this drive",
44660702
DM
24737 "optional" : 1,
24738 "type" : "boolean"
24739 },
24740 "mbps" : {
de0983cb 24741 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
24742 "format_description" : "mbps",
24743 "optional" : 1,
24744 "type" : "number"
24745 },
24746 "mbps_max" : {
de0983cb 24747 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
24748 "format_description" : "mbps",
24749 "optional" : 1,
24750 "type" : "number"
24751 },
24752 "mbps_rd" : {
de0983cb 24753 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
24754 "format_description" : "mbps",
24755 "optional" : 1,
24756 "type" : "number"
24757 },
24758 "mbps_rd_max" : {
de0983cb 24759 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
24760 "format_description" : "mbps",
24761 "optional" : 1,
24762 "type" : "number"
24763 },
24764 "mbps_wr" : {
de0983cb 24765 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
24766 "format_description" : "mbps",
24767 "optional" : 1,
24768 "type" : "number"
24769 },
24770 "mbps_wr_max" : {
de0983cb 24771 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
24772 "format_description" : "mbps",
24773 "optional" : 1,
24774 "type" : "number"
24775 },
24776 "media" : {
24777 "default" : "disk",
24778 "description" : "The drive's media type.",
24779 "enum" : [
24780 "cdrom",
24781 "disk"
24782 ],
44660702
DM
24783 "optional" : 1,
24784 "type" : "string"
24785 },
5d9c884c
DM
24786 "replicate" : {
24787 "default" : 1,
24788 "description" : "Whether the drive should considered for replication jobs.",
24789 "optional" : 1,
24790 "type" : "boolean"
24791 },
44660702
DM
24792 "rerror" : {
24793 "description" : "Read error action.",
24794 "enum" : [
24795 "ignore",
24796 "report",
24797 "stop"
24798 ],
44660702
DM
24799 "optional" : 1,
24800 "type" : "string"
24801 },
5370fa8c
TL
24802 "ro" : {
24803 "description" : "Whether the drive is read-only.",
24804 "optional" : 1,
24805 "type" : "boolean"
24806 },
44660702
DM
24807 "secs" : {
24808 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
24809 "optional" : 1,
24810 "type" : "integer"
24811 },
24812 "serial" : {
24813 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
24814 "format" : "urlencoded",
24815 "format_description" : "serial",
24816 "maxLength" : 60,
24817 "optional" : 1,
24818 "type" : "string"
24819 },
27a7acb2
DM
24820 "shared" : {
24821 "default" : 0,
24822 "description" : "Mark this locally-managed volume as available on all nodes",
24823 "optional" : 1,
24824 "type" : "boolean",
24825 "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!"
24826 },
44660702
DM
24827 "size" : {
24828 "description" : "Disk size. This is purely informational and has no effect.",
24829 "format" : "disk-size",
f004f5b9 24830 "format_description" : "DiskSize",
44660702
DM
24831 "optional" : 1,
24832 "type" : "string"
24833 },
24834 "snapshot" : {
27a7acb2 24835 "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
24836 "optional" : 1,
24837 "type" : "boolean"
24838 },
24839 "trans" : {
24840 "description" : "Force disk geometry bios translation mode.",
24841 "enum" : [
24842 "none",
24843 "lba",
24844 "auto"
24845 ],
44660702
DM
24846 "optional" : 1,
24847 "type" : "string"
24848 },
24849 "volume" : {
24850 "alias" : "file"
24851 },
24852 "werror" : {
24853 "description" : "Write error action.",
24854 "enum" : [
24855 "enospc",
24856 "ignore",
24857 "report",
24858 "stop"
24859 ],
44660702
DM
24860 "optional" : 1,
24861 "type" : "string"
24862 }
24863 },
24864 "optional" : 1,
4bd7df8b 24865 "type" : "string",
5370fa8c 24866 "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>] [,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 24867 },
4d47f125
TL
24868 "vmgenid" : {
24869 "default" : "1 (autogenerated)",
24870 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
24871 "format_description" : "UUID",
24872 "optional" : 1,
24873 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
24874 "type" : "string",
4772952b 24875 "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 24876 },
44660702
DM
24877 "vmid" : {
24878 "description" : "The (unique) ID of the VM.",
24879 "format" : "pve-vmid",
24880 "minimum" : 1,
4bd7df8b 24881 "type" : "integer",
013dc89f 24882 "typetext" : "<integer> (1 - N)"
44660702 24883 },
2489d6df
WB
24884 "vmstatestorage" : {
24885 "description" : "Default storage for VM state volumes/files.",
24886 "format" : "pve-storage-id",
24887 "optional" : 1,
24888 "type" : "string",
24889 "typetext" : "<string>"
24890 },
44660702 24891 "watchdog" : {
c2993fe5 24892 "description" : "Create a virtual hardware watchdog device.",
44660702 24893 "format" : "pve-qm-watchdog",
7aacca6f 24894 "optional" : 1,
c2993fe5 24895 "type" : "string",
013dc89f 24896 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 24897 "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 24898 }
44660702 24899 }
56122987 24900 },
56122987 24901 "permissions" : {
44660702
DM
24902 "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.",
24903 "user" : "all"
56122987 24904 },
44660702
DM
24905 "protected" : 1,
24906 "proxyto" : "node",
56122987 24907 "returns" : {
44660702 24908 "type" : "string"
7aacca6f 24909 }
56122987 24910 }
7aacca6f 24911 },
44660702 24912 "leaf" : 0,
7aacca6f 24913 "path" : "/nodes/{node}/qemu",
44660702 24914 "text" : "qemu"
56122987
DM
24915 },
24916 {
24917 "children" : [
24918 {
56122987
DM
24919 "children" : [
24920 {
56122987 24921 "info" : {
44660702 24922 "GET" : {
e9cd3bd4 24923 "allowtoken" : 1,
44660702
DM
24924 "description" : "Get container configuration.",
24925 "method" : "GET",
24926 "name" : "vm_config",
24927 "parameters" : {
24928 "additionalProperties" : 0,
24929 "properties" : {
1c532546
TL
24930 "current" : {
24931 "default" : 0,
24932 "description" : "Get current values (instead of pending values).",
24933 "optional" : 1,
24934 "type" : "boolean",
24935 "typetext" : "<boolean>"
24936 },
44660702
DM
24937 "node" : {
24938 "description" : "The cluster node name.",
24939 "format" : "pve-node",
013dc89f 24940 "type" : "string",
4d47f125
TL
24941 "typetext" : "<string>"
24942 },
5f26e15b
TL
24943 "snapshot" : {
24944 "description" : "Fetch config values from given snapshot.",
24945 "format" : "pve-configid",
24946 "maxLength" : 40,
24947 "optional" : 1,
24948 "type" : "string",
24949 "typetext" : "<string>"
24950 },
4d47f125
TL
24951 "vmid" : {
24952 "description" : "The (unique) ID of the VM.",
24953 "format" : "pve-vmid",
24954 "minimum" : 1,
24955 "type" : "integer",
24956 "typetext" : "<integer> (1 - N)"
24957 }
24958 }
24959 },
24960 "permissions" : {
24961 "check" : [
24962 "perm",
24963 "/vms/{vmid}",
24964 [
24965 "VM.Audit"
24966 ]
24967 ]
24968 },
24969 "proxyto" : "node",
24970 "returns" : {
24971 "properties" : {
24972 "arch" : {
24973 "default" : "amd64",
24974 "description" : "OS architecture type.",
24975 "enum" : [
24976 "amd64",
24977 "i386",
24978 "arm64",
24979 "armhf"
24980 ],
24981 "optional" : 1,
24982 "type" : "string"
24983 },
24984 "cmode" : {
24985 "default" : "tty",
24986 "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).",
24987 "enum" : [
24988 "shell",
24989 "console",
24990 "tty"
24991 ],
24992 "optional" : 1,
24993 "type" : "string"
24994 },
24995 "console" : {
24996 "default" : 1,
24997 "description" : "Attach a console device (/dev/console) to the container.",
24998 "optional" : 1,
24999 "type" : "boolean"
25000 },
25001 "cores" : {
25002 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 25003 "maximum" : 8192,
4d47f125
TL
25004 "minimum" : 1,
25005 "optional" : 1,
25006 "type" : "integer"
25007 },
25008 "cpulimit" : {
25009 "default" : 0,
25010 "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 25011 "maximum" : 8192,
4d47f125
TL
25012 "minimum" : 0,
25013 "optional" : 1,
25014 "type" : "number"
25015 },
25016 "cpuunits" : {
25017 "default" : 1024,
25018 "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.",
25019 "maximum" : 500000,
25020 "minimum" : 0,
25021 "optional" : 1,
25022 "type" : "integer"
25023 },
739d4d64
TL
25024 "debug" : {
25025 "default" : 0,
25026 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
25027 "optional" : 1,
25028 "type" : "boolean"
25029 },
4d47f125 25030 "description" : {
8f4d9c87
TL
25031 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
25032 "maxLength" : 8192,
4d47f125
TL
25033 "optional" : 1,
25034 "type" : "string"
25035 },
25036 "digest" : {
25037 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
25038 "type" : "string"
25039 },
25040 "features" : {
25041 "description" : "Allow containers access to advanced features.",
25042 "format" : {
c5aa7e14
TL
25043 "force_rw_sys" : {
25044 "default" : 0,
25045 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
25046 "optional" : 1,
25047 "type" : "boolean"
25048 },
e2d681b3
TL
25049 "fuse" : {
25050 "default" : 0,
25051 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
25052 "optional" : 1,
25053 "type" : "boolean"
25054 },
4d47f125
TL
25055 "keyctl" : {
25056 "default" : 0,
25057 "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.",
25058 "optional" : 1,
25059 "type" : "boolean"
25060 },
c5aa7e14
TL
25061 "mknod" : {
25062 "default" : 0,
25063 "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.",
25064 "optional" : 1,
25065 "type" : "boolean"
25066 },
4d47f125
TL
25067 "mount" : {
25068 "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.",
25069 "format_description" : "fstype;fstype;...",
25070 "optional" : 1,
95895385 25071 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
25072 "type" : "string"
25073 },
25074 "nesting" : {
25075 "default" : 0,
25076 "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.",
25077 "optional" : 1,
25078 "type" : "boolean"
25079 }
25080 },
25081 "optional" : 1,
25082 "type" : "string"
25083 },
5f26e15b
TL
25084 "hookscript" : {
25085 "description" : "Script that will be exectued during various steps in the containers lifetime.",
25086 "format" : "pve-volume-id",
25087 "optional" : 1,
25088 "type" : "string"
25089 },
4d47f125
TL
25090 "hostname" : {
25091 "description" : "Set a host name for the container.",
25092 "format" : "dns-name",
25093 "maxLength" : 255,
25094 "optional" : 1,
25095 "type" : "string"
25096 },
25097 "lock" : {
25098 "description" : "Lock/unlock the VM.",
25099 "enum" : [
25100 "backup",
bb4c8cf8 25101 "create",
1c532546 25102 "destroyed",
4d47f125 25103 "disk",
bb4c8cf8 25104 "fstrim",
4d47f125
TL
25105 "migrate",
25106 "mounted",
25107 "rollback",
25108 "snapshot",
25109 "snapshot-delete"
25110 ],
25111 "optional" : 1,
25112 "type" : "string"
25113 },
25114 "lxc" : {
25115 "description" : "Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).",
25116 "items" : {
25117 "items" : {
25118 "type" : "string"
25119 },
25120 "type" : "array"
25121 },
25122 "optional" : 1,
25123 "type" : "array"
25124 },
25125 "memory" : {
25126 "default" : 512,
25127 "description" : "Amount of RAM for the VM in MB.",
25128 "minimum" : 16,
25129 "optional" : 1,
25130 "type" : "integer"
25131 },
25132 "mp[n]" : {
d2656385 25133 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
25134 "format" : {
25135 "acl" : {
25136 "description" : "Explicitly enable or disable ACL support.",
25137 "optional" : 1,
25138 "type" : "boolean"
25139 },
25140 "backup" : {
25141 "description" : "Whether to include the mount point in backups.",
25142 "optional" : 1,
25143 "type" : "boolean",
25144 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
25145 },
7cbed89a
TL
25146 "mountoptions" : {
25147 "description" : "Extra mount options for rootfs/mps.",
25148 "format_description" : "opt[;opt...]",
25149 "optional" : 1,
25150 "pattern" : "(?^:(?^:(noatime|nodev|nosuid|noexec))(;(?^:(noatime|nodev|nosuid|noexec)))*)",
25151 "type" : "string"
25152 },
4d47f125
TL
25153 "mp" : {
25154 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
25155 "format" : "pve-lxc-mp-string",
25156 "format_description" : "Path",
25157 "type" : "string",
25158 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
25159 },
25160 "quota" : {
25161 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
25162 "optional" : 1,
25163 "type" : "boolean"
25164 },
25165 "replicate" : {
25166 "default" : 1,
25167 "description" : "Will include this volume to a storage replica job.",
25168 "optional" : 1,
25169 "type" : "boolean"
25170 },
25171 "ro" : {
25172 "description" : "Read-only mount point",
25173 "optional" : 1,
25174 "type" : "boolean"
25175 },
25176 "shared" : {
25177 "default" : 0,
25178 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
25179 "optional" : 1,
25180 "type" : "boolean",
25181 "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!"
25182 },
25183 "size" : {
25184 "description" : "Volume size (read only value).",
25185 "format" : "disk-size",
25186 "format_description" : "DiskSize",
25187 "optional" : 1,
25188 "type" : "string"
25189 },
25190 "volume" : {
25191 "default_key" : 1,
25192 "description" : "Volume, device or directory to mount into the container.",
25193 "format" : "pve-lxc-mp-string",
25194 "format_description" : "volume",
25195 "type" : "string"
25196 }
25197 },
25198 "optional" : 1,
25199 "type" : "string"
25200 },
25201 "nameserver" : {
25202 "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 25203 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
25204 "optional" : 1,
25205 "type" : "string"
25206 },
25207 "net[n]" : {
25208 "description" : "Specifies network interfaces for the container.",
25209 "format" : {
25210 "bridge" : {
25211 "description" : "Bridge to attach the network device to.",
25212 "format_description" : "bridge",
25213 "optional" : 1,
25214 "pattern" : "[-_.\\w\\d]+",
25215 "type" : "string"
25216 },
25217 "firewall" : {
25218 "description" : "Controls whether this interface's firewall rules should be used.",
25219 "optional" : 1,
25220 "type" : "boolean"
25221 },
25222 "gw" : {
25223 "description" : "Default gateway for IPv4 traffic.",
25224 "format" : "ipv4",
25225 "format_description" : "GatewayIPv4",
25226 "optional" : 1,
25227 "type" : "string"
25228 },
25229 "gw6" : {
25230 "description" : "Default gateway for IPv6 traffic.",
25231 "format" : "ipv6",
25232 "format_description" : "GatewayIPv6",
25233 "optional" : 1,
25234 "type" : "string"
25235 },
25236 "hwaddr" : {
25237 "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 25238 "format" : "mac-addr",
4d47f125
TL
25239 "format_description" : "XX:XX:XX:XX:XX:XX",
25240 "optional" : 1,
95895385
TL
25241 "type" : "string",
25242 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
25243 },
25244 "ip" : {
25245 "description" : "IPv4 address in CIDR format.",
25246 "format" : "pve-ipv4-config",
25247 "format_description" : "(IPv4/CIDR|dhcp|manual)",
25248 "optional" : 1,
25249 "type" : "string"
25250 },
25251 "ip6" : {
25252 "description" : "IPv6 address in CIDR format.",
25253 "format" : "pve-ipv6-config",
25254 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
25255 "optional" : 1,
25256 "type" : "string"
25257 },
25258 "mtu" : {
25259 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
25260 "minimum" : 64,
25261 "optional" : 1,
25262 "type" : "integer"
25263 },
25264 "name" : {
25265 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
25266 "format_description" : "string",
25267 "pattern" : "[-_.\\w\\d]+",
25268 "type" : "string"
25269 },
25270 "rate" : {
25271 "description" : "Apply rate limiting to the interface",
25272 "format_description" : "mbps",
25273 "optional" : 1,
25274 "type" : "number"
25275 },
25276 "tag" : {
25277 "description" : "VLAN tag for this interface.",
25278 "maximum" : 4094,
25279 "minimum" : 1,
25280 "optional" : 1,
25281 "type" : "integer"
25282 },
25283 "trunks" : {
25284 "description" : "VLAN ids to pass through the interface",
25285 "format_description" : "vlanid[;vlanid...]",
25286 "optional" : 1,
25287 "pattern" : "(?^:\\d+(?:;\\d+)*)",
25288 "type" : "string"
25289 },
25290 "type" : {
25291 "description" : "Network interface type.",
25292 "enum" : [
25293 "veth"
25294 ],
25295 "optional" : 1,
25296 "type" : "string"
25297 }
25298 },
25299 "optional" : 1,
25300 "type" : "string"
25301 },
25302 "onboot" : {
25303 "default" : 0,
25304 "description" : "Specifies whether a VM will be started during system bootup.",
25305 "optional" : 1,
25306 "type" : "boolean"
25307 },
25308 "ostype" : {
25309 "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.",
25310 "enum" : [
25311 "debian",
d2656385 25312 "devuan",
4d47f125
TL
25313 "ubuntu",
25314 "centos",
25315 "fedora",
25316 "opensuse",
25317 "archlinux",
25318 "alpine",
25319 "gentoo",
25320 "unmanaged"
25321 ],
25322 "optional" : 1,
25323 "type" : "string"
25324 },
25325 "protection" : {
25326 "default" : 0,
25327 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
25328 "optional" : 1,
25329 "type" : "boolean"
25330 },
25331 "rootfs" : {
25332 "description" : "Use volume as container root.",
25333 "format" : {
25334 "acl" : {
25335 "description" : "Explicitly enable or disable ACL support.",
25336 "optional" : 1,
25337 "type" : "boolean"
25338 },
7cbed89a
TL
25339 "mountoptions" : {
25340 "description" : "Extra mount options for rootfs/mps.",
25341 "format_description" : "opt[;opt...]",
25342 "optional" : 1,
25343 "pattern" : "(?^:(?^:(noatime|nodev|nosuid|noexec))(;(?^:(noatime|nodev|nosuid|noexec)))*)",
25344 "type" : "string"
25345 },
4d47f125
TL
25346 "quota" : {
25347 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
25348 "optional" : 1,
25349 "type" : "boolean"
25350 },
25351 "replicate" : {
25352 "default" : 1,
25353 "description" : "Will include this volume to a storage replica job.",
25354 "optional" : 1,
25355 "type" : "boolean"
25356 },
25357 "ro" : {
25358 "description" : "Read-only mount point",
25359 "optional" : 1,
25360 "type" : "boolean"
25361 },
25362 "shared" : {
25363 "default" : 0,
25364 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
25365 "optional" : 1,
25366 "type" : "boolean",
25367 "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!"
25368 },
25369 "size" : {
25370 "description" : "Volume size (read only value).",
25371 "format" : "disk-size",
25372 "format_description" : "DiskSize",
25373 "optional" : 1,
25374 "type" : "string"
25375 },
25376 "volume" : {
25377 "default_key" : 1,
25378 "description" : "Volume, device or directory to mount into the container.",
25379 "format" : "pve-lxc-mp-string",
25380 "format_description" : "volume",
25381 "type" : "string"
25382 }
25383 },
25384 "optional" : 1,
25385 "type" : "string"
25386 },
25387 "searchdomain" : {
25388 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
25389 "format" : "dns-name-list",
25390 "optional" : 1,
25391 "type" : "string"
25392 },
25393 "startup" : {
25394 "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.",
25395 "format" : "pve-startup-order",
25396 "optional" : 1,
25397 "type" : "string",
25398 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
25399 },
25400 "swap" : {
25401 "default" : 512,
25402 "description" : "Amount of SWAP for the VM in MB.",
25403 "minimum" : 0,
25404 "optional" : 1,
25405 "type" : "integer"
25406 },
5c1699e5
TL
25407 "tags" : {
25408 "description" : "Tags of the Container. This is only meta information.",
25409 "format" : "pve-tag-list",
25410 "optional" : 1,
25411 "type" : "string"
25412 },
4d47f125
TL
25413 "template" : {
25414 "default" : 0,
25415 "description" : "Enable/disable Template.",
25416 "optional" : 1,
25417 "type" : "boolean"
44660702 25418 },
04d22a9f
TL
25419 "timezone" : {
25420 "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",
25421 "format" : "pve-ct-timezone",
25422 "optional" : 1,
25423 "type" : "string"
25424 },
4d47f125
TL
25425 "tty" : {
25426 "default" : 2,
25427 "description" : "Specify the number of tty available to the container",
25428 "maximum" : 6,
25429 "minimum" : 0,
25430 "optional" : 1,
25431 "type" : "integer"
25432 },
25433 "unprivileged" : {
25434 "default" : 0,
25435 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
25436 "optional" : 1,
25437 "type" : "boolean"
25438 },
25439 "unused[n]" : {
25440 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
25441 "format" : {
25442 "volume" : {
25443 "default_key" : 1,
25444 "description" : "The volume that is not used currently.",
25445 "format" : "pve-volume-id",
25446 "format_description" : "volume",
25447 "type" : "string"
25448 }
25449 },
4d47f125 25450 "optional" : 1,
44660702
DM
25451 "type" : "string"
25452 }
25453 },
25454 "type" : "object"
25455 }
25456 },
56122987 25457 "PUT" : {
e9cd3bd4 25458 "allowtoken" : 1,
44660702
DM
25459 "description" : "Set container options.",
25460 "method" : "PUT",
25461 "name" : "update_vm",
56122987 25462 "parameters" : {
44660702 25463 "additionalProperties" : 0,
56122987 25464 "properties" : {
44660702
DM
25465 "arch" : {
25466 "default" : "amd64",
25467 "description" : "OS architecture type.",
25468 "enum" : [
25469 "amd64",
4d47f125
TL
25470 "i386",
25471 "arm64",
25472 "armhf"
44660702 25473 ],
7aacca6f 25474 "optional" : 1,
44660702
DM
25475 "type" : "string"
25476 },
25477 "cmode" : {
7aacca6f 25478 "default" : "tty",
44660702 25479 "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
25480 "enum" : [
25481 "shell",
25482 "console",
25483 "tty"
25484 ],
44660702
DM
25485 "optional" : 1,
25486 "type" : "string"
7aacca6f 25487 },
44660702
DM
25488 "console" : {
25489 "default" : 1,
25490 "description" : "Attach a console device (/dev/console) to the container.",
7aacca6f 25491 "optional" : 1,
013dc89f
DM
25492 "type" : "boolean",
25493 "typetext" : "<boolean>"
7aacca6f 25494 },
de0983cb
DM
25495 "cores" : {
25496 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 25497 "maximum" : 8192,
de0983cb
DM
25498 "minimum" : 1,
25499 "optional" : 1,
25500 "type" : "integer",
4772952b 25501 "typetext" : "<integer> (1 - 8192)"
de0983cb 25502 },
44660702
DM
25503 "cpulimit" : {
25504 "default" : 0,
25505 "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 25506 "maximum" : 8192,
7aacca6f 25507 "minimum" : 0,
7aacca6f 25508 "optional" : 1,
4bd7df8b 25509 "type" : "number",
4772952b 25510 "typetext" : "<number> (0 - 8192)"
7aacca6f 25511 },
44660702
DM
25512 "cpuunits" : {
25513 "default" : 1024,
25514 "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.",
25515 "maximum" : 500000,
25516 "minimum" : 0,
25517 "optional" : 1,
4bd7df8b 25518 "type" : "integer",
013dc89f 25519 "typetext" : "<integer> (0 - 500000)"
7aacca6f 25520 },
739d4d64
TL
25521 "debug" : {
25522 "default" : 0,
25523 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
25524 "optional" : 1,
25525 "type" : "boolean",
25526 "typetext" : "<boolean>"
25527 },
44660702
DM
25528 "delete" : {
25529 "description" : "A list of settings you want to delete.",
25530 "format" : "pve-configid-list",
7aacca6f 25531 "optional" : 1,
013dc89f
DM
25532 "type" : "string",
25533 "typetext" : "<string>"
7aacca6f 25534 },
44660702 25535 "description" : {
8f4d9c87
TL
25536 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
25537 "maxLength" : 8192,
7aacca6f 25538 "optional" : 1,
013dc89f
DM
25539 "type" : "string",
25540 "typetext" : "<string>"
7aacca6f 25541 },
44660702
DM
25542 "digest" : {
25543 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
25544 "maxLength" : 40,
7aacca6f 25545 "optional" : 1,
013dc89f
DM
25546 "type" : "string",
25547 "typetext" : "<string>"
7aacca6f 25548 },
4d47f125
TL
25549 "features" : {
25550 "description" : "Allow containers access to advanced features.",
25551 "format" : {
c5aa7e14
TL
25552 "force_rw_sys" : {
25553 "default" : 0,
25554 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
25555 "optional" : 1,
25556 "type" : "boolean"
25557 },
e2d681b3
TL
25558 "fuse" : {
25559 "default" : 0,
25560 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
25561 "optional" : 1,
25562 "type" : "boolean"
25563 },
4d47f125
TL
25564 "keyctl" : {
25565 "default" : 0,
25566 "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.",
25567 "optional" : 1,
25568 "type" : "boolean"
25569 },
c5aa7e14
TL
25570 "mknod" : {
25571 "default" : 0,
25572 "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.",
25573 "optional" : 1,
25574 "type" : "boolean"
25575 },
4d47f125
TL
25576 "mount" : {
25577 "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.",
25578 "format_description" : "fstype;fstype;...",
25579 "optional" : 1,
95895385 25580 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
25581 "type" : "string"
25582 },
25583 "nesting" : {
25584 "default" : 0,
25585 "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.",
25586 "optional" : 1,
25587 "type" : "boolean"
25588 }
25589 },
25590 "optional" : 1,
25591 "type" : "string",
c5aa7e14 25592 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
4d47f125 25593 },
5f26e15b
TL
25594 "hookscript" : {
25595 "description" : "Script that will be exectued during various steps in the containers lifetime.",
25596 "format" : "pve-volume-id",
25597 "optional" : 1,
25598 "type" : "string",
25599 "typetext" : "<string>"
25600 },
44660702
DM
25601 "hostname" : {
25602 "description" : "Set a host name for the container.",
25603 "format" : "dns-name",
25604 "maxLength" : 255,
56122987 25605 "optional" : 1,
013dc89f
DM
25606 "type" : "string",
25607 "typetext" : "<string>"
44660702
DM
25608 },
25609 "lock" : {
25610 "description" : "Lock/unlock the VM.",
25611 "enum" : [
44660702 25612 "backup",
bb4c8cf8 25613 "create",
1c532546 25614 "destroyed",
4d47f125 25615 "disk",
bb4c8cf8 25616 "fstrim",
4d47f125
TL
25617 "migrate",
25618 "mounted",
25619 "rollback",
44660702 25620 "snapshot",
4d47f125 25621 "snapshot-delete"
44660702
DM
25622 ],
25623 "optional" : 1,
25624 "type" : "string"
25625 },
25626 "memory" : {
25627 "default" : 512,
25628 "description" : "Amount of RAM for the VM in MB.",
25629 "minimum" : 16,
25630 "optional" : 1,
4bd7df8b 25631 "type" : "integer",
013dc89f 25632 "typetext" : "<integer> (16 - N)"
7aacca6f
DM
25633 },
25634 "mp[n]" : {
d2656385 25635 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
7aacca6f 25636 "format" : {
7aacca6f
DM
25637 "acl" : {
25638 "description" : "Explicitly enable or disable ACL support.",
7aacca6f 25639 "optional" : 1,
44660702 25640 "type" : "boolean"
7aacca6f
DM
25641 },
25642 "backup" : {
de0983cb 25643 "description" : "Whether to include the mount point in backups.",
7aacca6f 25644 "optional" : 1,
4bd7df8b 25645 "type" : "boolean",
de0983cb 25646 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
7aacca6f 25647 },
7cbed89a
TL
25648 "mountoptions" : {
25649 "description" : "Extra mount options for rootfs/mps.",
25650 "format_description" : "opt[;opt...]",
25651 "optional" : 1,
25652 "pattern" : "(?^:(?^:(noatime|nodev|nosuid|noexec))(;(?^:(noatime|nodev|nosuid|noexec)))*)",
25653 "type" : "string"
25654 },
7aacca6f 25655 "mp" : {
de0983cb 25656 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
7aacca6f 25657 "format" : "pve-lxc-mp-string",
44660702 25658 "format_description" : "Path",
4bd7df8b 25659 "type" : "string",
de0983cb 25660 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
44660702 25661 },
5d9c884c
DM
25662 "quota" : {
25663 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
25664 "optional" : 1,
25665 "type" : "boolean"
25666 },
25667 "replicate" : {
25668 "default" : 1,
25669 "description" : "Will include this volume to a storage replica job.",
44660702
DM
25670 "optional" : 1,
25671 "type" : "boolean"
25672 },
25673 "ro" : {
de0983cb 25674 "description" : "Read-only mount point",
44660702
DM
25675 "optional" : 1,
25676 "type" : "boolean"
25677 },
de0983cb
DM
25678 "shared" : {
25679 "default" : 0,
25680 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
25681 "optional" : 1,
25682 "type" : "boolean",
25683 "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!"
25684 },
44660702
DM
25685 "size" : {
25686 "description" : "Volume size (read only value).",
25687 "format" : "disk-size",
25688 "format_description" : "DiskSize",
25689 "optional" : 1,
25690 "type" : "string"
25691 },
25692 "volume" : {
25693 "default_key" : 1,
25694 "description" : "Volume, device or directory to mount into the container.",
25695 "format" : "pve-lxc-mp-string",
25696 "format_description" : "volume",
25697 "type" : "string"
25698 }
25699 },
7aacca6f 25700 "optional" : 1,
4bd7df8b 25701 "type" : "string",
7cbed89a 25702 "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 25703 },
44660702
DM
25704 "nameserver" : {
25705 "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 25706 "format" : "lxc-ip-with-ll-iface-list",
56122987 25707 "optional" : 1,
013dc89f
DM
25708 "type" : "string",
25709 "typetext" : "<string>"
56122987
DM
25710 },
25711 "net[n]" : {
44660702 25712 "description" : "Specifies network interfaces for the container.",
56122987 25713 "format" : {
44660702
DM
25714 "bridge" : {
25715 "description" : "Bridge to attach the network device to.",
f004f5b9 25716 "format_description" : "bridge",
56122987 25717 "optional" : 1,
44660702
DM
25718 "pattern" : "[-_.\\w\\d]+",
25719 "type" : "string"
56122987 25720 },
44660702
DM
25721 "firewall" : {
25722 "description" : "Controls whether this interface's firewall rules should be used.",
56122987 25723 "optional" : 1,
44660702 25724 "type" : "boolean"
56122987 25725 },
44660702
DM
25726 "gw" : {
25727 "description" : "Default gateway for IPv4 traffic.",
25728 "format" : "ipv4",
25729 "format_description" : "GatewayIPv4",
56122987 25730 "optional" : 1,
44660702 25731 "type" : "string"
56122987
DM
25732 },
25733 "gw6" : {
7aacca6f 25734 "description" : "Default gateway for IPv6 traffic.",
44660702
DM
25735 "format" : "ipv6",
25736 "format_description" : "GatewayIPv6",
7aacca6f 25737 "optional" : 1,
56122987
DM
25738 "type" : "string"
25739 },
44660702 25740 "hwaddr" : {
f004f5b9 25741 "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 25742 "format" : "mac-addr",
f004f5b9 25743 "format_description" : "XX:XX:XX:XX:XX:XX",
44660702 25744 "optional" : 1,
95895385
TL
25745 "type" : "string",
25746 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
44660702
DM
25747 },
25748 "ip" : {
25749 "description" : "IPv4 address in CIDR format.",
25750 "format" : "pve-ipv4-config",
2489d6df 25751 "format_description" : "(IPv4/CIDR|dhcp|manual)",
56122987 25752 "optional" : 1,
44660702 25753 "type" : "string"
56122987 25754 },
7aacca6f 25755 "ip6" : {
7aacca6f
DM
25756 "description" : "IPv6 address in CIDR format.",
25757 "format" : "pve-ipv6-config",
2489d6df 25758 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
7aacca6f 25759 "optional" : 1,
44660702 25760 "type" : "string"
56122987 25761 },
44660702
DM
25762 "mtu" : {
25763 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
44660702 25764 "minimum" : 64,
56122987 25765 "optional" : 1,
44660702 25766 "type" : "integer"
56122987
DM
25767 },
25768 "name" : {
44660702 25769 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
f004f5b9 25770 "format_description" : "string",
56122987 25771 "pattern" : "[-_.\\w\\d]+",
44660702 25772 "type" : "string"
56122987 25773 },
44660702
DM
25774 "rate" : {
25775 "description" : "Apply rate limiting to the interface",
25776 "format_description" : "mbps",
56122987 25777 "optional" : 1,
44660702 25778 "type" : "number"
7aacca6f 25779 },
44660702
DM
25780 "tag" : {
25781 "description" : "VLAN tag for this interface.",
4bd7df8b
DM
25782 "maximum" : 4094,
25783 "minimum" : 1,
56122987 25784 "optional" : 1,
7aacca6f 25785 "type" : "integer"
56122987 25786 },
44660702
DM
25787 "trunks" : {
25788 "description" : "VLAN ids to pass through the interface",
25789 "format_description" : "vlanid[;vlanid...]",
25790 "optional" : 1,
25791 "pattern" : "(?^:\\d+(?:;\\d+)*)",
25792 "type" : "string"
25793 },
25794 "type" : {
25795 "description" : "Network interface type.",
25796 "enum" : [
25797 "veth"
25798 ],
56122987 25799 "optional" : 1,
44660702 25800 "type" : "string"
56122987
DM
25801 }
25802 },
7aacca6f 25803 "optional" : 1,
4bd7df8b 25804 "type" : "string",
2489d6df 25805 "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 25806 },
44660702
DM
25807 "node" : {
25808 "description" : "The cluster node name.",
25809 "format" : "pve-node",
013dc89f
DM
25810 "type" : "string",
25811 "typetext" : "<string>"
56122987 25812 },
44660702
DM
25813 "onboot" : {
25814 "default" : 0,
25815 "description" : "Specifies whether a VM will be started during system bootup.",
56122987 25816 "optional" : 1,
013dc89f
DM
25817 "type" : "boolean",
25818 "typetext" : "<boolean>"
56122987 25819 },
44660702
DM
25820 "ostype" : {
25821 "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.",
25822 "enum" : [
25823 "debian",
d2656385 25824 "devuan",
44660702
DM
25825 "ubuntu",
25826 "centos",
25827 "fedora",
25828 "opensuse",
25829 "archlinux",
25830 "alpine",
57b78691 25831 "gentoo",
44660702
DM
25832 "unmanaged"
25833 ],
56122987 25834 "optional" : 1,
44660702 25835 "type" : "string"
56122987 25836 },
44660702
DM
25837 "protection" : {
25838 "default" : 0,
25839 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
56122987 25840 "optional" : 1,
013dc89f
DM
25841 "type" : "boolean",
25842 "typetext" : "<boolean>"
56122987 25843 },
1c532546
TL
25844 "revert" : {
25845 "description" : "Revert a pending change.",
25846 "format" : "pve-configid-list",
25847 "optional" : 1,
25848 "type" : "string",
25849 "typetext" : "<string>"
25850 },
7aacca6f
DM
25851 "rootfs" : {
25852 "description" : "Use volume as container root.",
56122987
DM
25853 "format" : {
25854 "acl" : {
44660702 25855 "description" : "Explicitly enable or disable ACL support.",
7aacca6f
DM
25856 "optional" : 1,
25857 "type" : "boolean"
56122987 25858 },
7cbed89a
TL
25859 "mountoptions" : {
25860 "description" : "Extra mount options for rootfs/mps.",
25861 "format_description" : "opt[;opt...]",
25862 "optional" : 1,
25863 "pattern" : "(?^:(?^:(noatime|nodev|nosuid|noexec))(;(?^:(noatime|nodev|nosuid|noexec)))*)",
25864 "type" : "string"
25865 },
44660702
DM
25866 "quota" : {
25867 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
44660702
DM
25868 "optional" : 1,
25869 "type" : "boolean"
25870 },
5d9c884c
DM
25871 "replicate" : {
25872 "default" : 1,
25873 "description" : "Will include this volume to a storage replica job.",
25874 "optional" : 1,
25875 "type" : "boolean"
25876 },
44660702 25877 "ro" : {
de0983cb 25878 "description" : "Read-only mount point",
56122987 25879 "optional" : 1,
44660702
DM
25880 "type" : "boolean"
25881 },
de0983cb
DM
25882 "shared" : {
25883 "default" : 0,
25884 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
25885 "optional" : 1,
25886 "type" : "boolean",
25887 "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!"
25888 },
44660702 25889 "size" : {
7aacca6f 25890 "description" : "Volume size (read only value).",
44660702 25891 "format" : "disk-size",
56122987 25892 "format_description" : "DiskSize",
56122987 25893 "optional" : 1,
44660702 25894 "type" : "string"
7aacca6f
DM
25895 },
25896 "volume" : {
7aacca6f
DM
25897 "default_key" : 1,
25898 "description" : "Volume, device or directory to mount into the container.",
44660702
DM
25899 "format" : "pve-lxc-mp-string",
25900 "format_description" : "volume",
7aacca6f 25901 "type" : "string"
56122987 25902 }
44660702
DM
25903 },
25904 "optional" : 1,
4bd7df8b 25905 "type" : "string",
7cbed89a 25906 "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
25907 },
25908 "searchdomain" : {
25909 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
25910 "format" : "dns-name-list",
25911 "optional" : 1,
013dc89f
DM
25912 "type" : "string",
25913 "typetext" : "<string>"
44660702
DM
25914 },
25915 "startup" : {
25916 "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.",
25917 "format" : "pve-startup-order",
25918 "optional" : 1,
25919 "type" : "string",
25920 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
25921 },
25922 "swap" : {
25923 "default" : 512,
25924 "description" : "Amount of SWAP for the VM in MB.",
25925 "minimum" : 0,
25926 "optional" : 1,
4bd7df8b 25927 "type" : "integer",
013dc89f 25928 "typetext" : "<integer> (0 - N)"
56122987 25929 },
5c1699e5
TL
25930 "tags" : {
25931 "description" : "Tags of the Container. This is only meta information.",
25932 "format" : "pve-tag-list",
25933 "optional" : 1,
25934 "type" : "string",
25935 "typetext" : "<string>"
25936 },
56122987 25937 "template" : {
44660702 25938 "default" : 0,
7aacca6f 25939 "description" : "Enable/disable Template.",
56122987 25940 "optional" : 1,
013dc89f
DM
25941 "type" : "boolean",
25942 "typetext" : "<boolean>"
56122987 25943 },
04d22a9f
TL
25944 "timezone" : {
25945 "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",
25946 "format" : "pve-ct-timezone",
25947 "optional" : 1,
25948 "type" : "string",
25949 "typetext" : "<string>"
25950 },
44660702
DM
25951 "tty" : {
25952 "default" : 2,
25953 "description" : "Specify the number of tty available to the container",
25954 "maximum" : 6,
25955 "minimum" : 0,
25956 "optional" : 1,
4bd7df8b 25957 "type" : "integer",
013dc89f 25958 "typetext" : "<integer> (0 - 6)"
56122987 25959 },
44660702
DM
25960 "unprivileged" : {
25961 "default" : 0,
25962 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
56122987 25963 "optional" : 1,
013dc89f
DM
25964 "type" : "boolean",
25965 "typetext" : "<boolean>"
56122987 25966 },
44660702 25967 "unused[n]" : {
c2993fe5 25968 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
25969 "format" : {
25970 "volume" : {
25971 "default_key" : 1,
25972 "description" : "The volume that is not used currently.",
25973 "format" : "pve-volume-id",
25974 "format_description" : "volume",
25975 "type" : "string"
25976 }
25977 },
56122987 25978 "optional" : 1,
013dc89f 25979 "type" : "string",
c5aa7e14 25980 "typetext" : "[volume=]<volume>"
44660702
DM
25981 },
25982 "vmid" : {
25983 "description" : "The (unique) ID of the VM.",
25984 "format" : "pve-vmid",
25985 "minimum" : 1,
4bd7df8b 25986 "type" : "integer",
013dc89f 25987 "typetext" : "<integer> (1 - N)"
56122987 25988 }
44660702 25989 }
56122987 25990 },
56122987
DM
25991 "permissions" : {
25992 "check" : [
25993 "perm",
25994 "/vms/{vmid}",
25995 [
25996 "VM.Config.Disk",
25997 "VM.Config.CPU",
25998 "VM.Config.Memory",
25999 "VM.Config.Network",
26000 "VM.Config.Options"
26001 ],
26002 "any",
26003 1
52e44c50
FG
26004 ],
26005 "description" : "non-volume mount points in rootfs and mp[n] are restricted to root@pam"
56122987 26006 },
44660702
DM
26007 "protected" : 1,
26008 "proxyto" : "node",
56122987
DM
26009 "returns" : {
26010 "type" : "null"
7aacca6f 26011 }
56122987 26012 }
7aacca6f 26013 },
44660702 26014 "leaf" : 1,
7aacca6f 26015 "path" : "/nodes/{node}/lxc/{vmid}/config",
44660702 26016 "text" : "config"
56122987
DM
26017 },
26018 {
56122987
DM
26019 "children" : [
26020 {
26021 "info" : {
26022 "GET" : {
e9cd3bd4 26023 "allowtoken" : 1,
44660702 26024 "description" : "Get virtual machine status.",
7aacca6f 26025 "method" : "GET",
44660702 26026 "name" : "vm_status",
56122987 26027 "parameters" : {
44660702 26028 "additionalProperties" : 0,
56122987 26029 "properties" : {
56122987 26030 "node" : {
44660702 26031 "description" : "The cluster node name.",
56122987 26032 "format" : "pve-node",
013dc89f
DM
26033 "type" : "string",
26034 "typetext" : "<string>"
7aacca6f
DM
26035 },
26036 "vmid" : {
26037 "description" : "The (unique) ID of the VM.",
44660702 26038 "format" : "pve-vmid",
7aacca6f 26039 "minimum" : 1,
4bd7df8b 26040 "type" : "integer",
013dc89f 26041 "typetext" : "<integer> (1 - N)"
56122987 26042 }
44660702 26043 }
7aacca6f
DM
26044 },
26045 "permissions" : {
26046 "check" : [
26047 "perm",
26048 "/vms/{vmid}",
26049 [
4d47f125
TL
26050 "VM.Audit"
26051 ]
26052 ]
26053 },
26054 "protected" : 1,
26055 "proxyto" : "node",
26056 "returns" : {
26057 "properties" : {
26058 "cpus" : {
26059 "description" : "Maximum usable CPUs.",
26060 "optional" : 1,
26061 "type" : "number"
26062 },
26063 "ha" : {
26064 "description" : "HA manager service status.",
26065 "type" : "object"
26066 },
95895385
TL
26067 "lock" : {
26068 "description" : "The current config lock, if any.",
26069 "optional" : 1,
26070 "type" : "string"
26071 },
4d47f125
TL
26072 "maxdisk" : {
26073 "description" : "Root disk size in bytes.",
26074 "optional" : 1,
26075 "renderer" : "bytes",
26076 "type" : "integer"
26077 },
26078 "maxmem" : {
26079 "description" : "Maximum memory in bytes.",
26080 "optional" : 1,
26081 "renderer" : "bytes",
26082 "type" : "integer"
26083 },
26084 "maxswap" : {
26085 "description" : "Maximum SWAP memory in bytes.",
26086 "optional" : 1,
26087 "renderer" : "bytes",
26088 "type" : "integer"
26089 },
26090 "name" : {
26091 "description" : "Container name.",
26092 "optional" : 1,
26093 "type" : "string"
26094 },
26095 "status" : {
26096 "description" : "LXC Container status.",
26097 "enum" : [
26098 "stopped",
26099 "running"
26100 ],
26101 "type" : "string"
26102 },
5c1699e5
TL
26103 "tags" : {
26104 "description" : "The current configured tags, if any.",
26105 "optional" : 1,
26106 "type" : "string"
26107 },
4d47f125
TL
26108 "uptime" : {
26109 "description" : "Uptime.",
26110 "optional" : 1,
26111 "renderer" : "duration",
26112 "type" : "integer"
26113 },
26114 "vmid" : {
26115 "description" : "The (unique) ID of the VM.",
26116 "format" : "pve-vmid",
26117 "minimum" : 1,
26118 "type" : "integer"
26119 }
26120 },
26121 "type" : "object"
26122 }
26123 }
26124 },
26125 "leaf" : 1,
26126 "path" : "/nodes/{node}/lxc/{vmid}/status/current",
26127 "text" : "current"
26128 },
26129 {
26130 "info" : {
26131 "POST" : {
e9cd3bd4 26132 "allowtoken" : 1,
4d47f125
TL
26133 "description" : "Start the container.",
26134 "method" : "POST",
26135 "name" : "vm_start",
26136 "parameters" : {
26137 "additionalProperties" : 0,
26138 "properties" : {
739d4d64
TL
26139 "debug" : {
26140 "default" : 0,
26141 "description" : "If set, enables very verbose debug log-level on start.",
26142 "optional" : 1,
26143 "type" : "boolean",
26144 "typetext" : "<boolean>"
26145 },
4d47f125
TL
26146 "node" : {
26147 "description" : "The cluster node name.",
26148 "format" : "pve-node",
26149 "type" : "string",
26150 "typetext" : "<string>"
26151 },
26152 "skiplock" : {
26153 "description" : "Ignore locks - only root is allowed to use this option.",
26154 "optional" : 1,
26155 "type" : "boolean",
26156 "typetext" : "<boolean>"
26157 },
26158 "vmid" : {
26159 "description" : "The (unique) ID of the VM.",
26160 "format" : "pve-vmid",
26161 "minimum" : 1,
26162 "type" : "integer",
26163 "typetext" : "<integer> (1 - N)"
26164 }
26165 }
26166 },
26167 "permissions" : {
26168 "check" : [
26169 "perm",
26170 "/vms/{vmid}",
26171 [
26172 "VM.PowerMgmt"
26173 ]
26174 ]
26175 },
26176 "protected" : 1,
26177 "proxyto" : "node",
26178 "returns" : {
26179 "type" : "string"
26180 }
26181 }
26182 },
26183 "leaf" : 1,
26184 "path" : "/nodes/{node}/lxc/{vmid}/status/start",
26185 "text" : "start"
26186 },
26187 {
26188 "info" : {
26189 "POST" : {
e9cd3bd4 26190 "allowtoken" : 1,
4d47f125
TL
26191 "description" : "Stop the container. This will abruptly stop all processes running in the container.",
26192 "method" : "POST",
26193 "name" : "vm_stop",
26194 "parameters" : {
26195 "additionalProperties" : 0,
26196 "properties" : {
26197 "node" : {
26198 "description" : "The cluster node name.",
26199 "format" : "pve-node",
26200 "type" : "string",
26201 "typetext" : "<string>"
26202 },
26203 "skiplock" : {
26204 "description" : "Ignore locks - only root is allowed to use this option.",
26205 "optional" : 1,
26206 "type" : "boolean",
26207 "typetext" : "<boolean>"
26208 },
26209 "vmid" : {
26210 "description" : "The (unique) ID of the VM.",
26211 "format" : "pve-vmid",
26212 "minimum" : 1,
26213 "type" : "integer",
26214 "typetext" : "<integer> (1 - N)"
26215 }
26216 }
26217 },
26218 "permissions" : {
26219 "check" : [
26220 "perm",
26221 "/vms/{vmid}",
26222 [
26223 "VM.PowerMgmt"
26224 ]
26225 ]
26226 },
26227 "protected" : 1,
26228 "proxyto" : "node",
26229 "returns" : {
26230 "type" : "string"
26231 }
26232 }
26233 },
26234 "leaf" : 1,
26235 "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
26236 "text" : "stop"
26237 },
26238 {
26239 "info" : {
26240 "POST" : {
e9cd3bd4 26241 "allowtoken" : 1,
4d47f125
TL
26242 "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
26243 "method" : "POST",
26244 "name" : "vm_shutdown",
26245 "parameters" : {
26246 "additionalProperties" : 0,
26247 "properties" : {
26248 "forceStop" : {
26249 "default" : 0,
26250 "description" : "Make sure the Container stops.",
26251 "optional" : 1,
26252 "type" : "boolean",
26253 "typetext" : "<boolean>"
26254 },
26255 "node" : {
26256 "description" : "The cluster node name.",
26257 "format" : "pve-node",
26258 "type" : "string",
26259 "typetext" : "<string>"
26260 },
26261 "timeout" : {
26262 "default" : 60,
26263 "description" : "Wait maximal timeout seconds.",
26264 "minimum" : 0,
26265 "optional" : 1,
26266 "type" : "integer",
26267 "typetext" : "<integer> (0 - N)"
26268 },
26269 "vmid" : {
26270 "description" : "The (unique) ID of the VM.",
26271 "format" : "pve-vmid",
26272 "minimum" : 1,
26273 "type" : "integer",
26274 "typetext" : "<integer> (1 - N)"
26275 }
26276 }
26277 },
26278 "permissions" : {
26279 "check" : [
26280 "perm",
26281 "/vms/{vmid}",
26282 [
26283 "VM.PowerMgmt"
7aacca6f
DM
26284 ]
26285 ]
26286 },
44660702 26287 "protected" : 1,
7aacca6f 26288 "proxyto" : "node",
44660702 26289 "returns" : {
4d47f125 26290 "type" : "string"
44660702 26291 }
56122987
DM
26292 }
26293 },
44660702 26294 "leaf" : 1,
4d47f125
TL
26295 "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
26296 "text" : "shutdown"
56122987
DM
26297 },
26298 {
56122987
DM
26299 "info" : {
26300 "POST" : {
e9cd3bd4 26301 "allowtoken" : 1,
5370fa8c 26302 "description" : "Suspend the container. This is experimental.",
44660702 26303 "method" : "POST",
4d47f125 26304 "name" : "vm_suspend",
56122987
DM
26305 "parameters" : {
26306 "additionalProperties" : 0,
26307 "properties" : {
56122987 26308 "node" : {
7aacca6f 26309 "description" : "The cluster node name.",
44660702 26310 "format" : "pve-node",
013dc89f
DM
26311 "type" : "string",
26312 "typetext" : "<string>"
56122987
DM
26313 },
26314 "vmid" : {
7aacca6f 26315 "description" : "The (unique) ID of the VM.",
44660702 26316 "format" : "pve-vmid",
56122987 26317 "minimum" : 1,
4bd7df8b 26318 "type" : "integer",
013dc89f 26319 "typetext" : "<integer> (1 - N)"
56122987
DM
26320 }
26321 }
26322 },
26323 "permissions" : {
26324 "check" : [
26325 "perm",
26326 "/vms/{vmid}",
26327 [
26328 "VM.PowerMgmt"
26329 ]
26330 ]
26331 },
44660702 26332 "protected" : 1,
7aacca6f 26333 "proxyto" : "node",
44660702
DM
26334 "returns" : {
26335 "type" : "string"
26336 }
26337 }
26338 },
26339 "leaf" : 1,
4d47f125
TL
26340 "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
26341 "text" : "suspend"
44660702
DM
26342 },
26343 {
26344 "info" : {
26345 "POST" : {
e9cd3bd4 26346 "allowtoken" : 1,
4d47f125 26347 "description" : "Resume the container.",
7aacca6f 26348 "method" : "POST",
4d47f125 26349 "name" : "vm_resume",
7aacca6f 26350 "parameters" : {
44660702 26351 "additionalProperties" : 0,
7aacca6f 26352 "properties" : {
44660702
DM
26353 "node" : {
26354 "description" : "The cluster node name.",
26355 "format" : "pve-node",
013dc89f
DM
26356 "type" : "string",
26357 "typetext" : "<string>"
44660702 26358 },
7aacca6f 26359 "vmid" : {
44660702 26360 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
26361 "format" : "pve-vmid",
26362 "minimum" : 1,
4bd7df8b 26363 "type" : "integer",
013dc89f 26364 "typetext" : "<integer> (1 - N)"
7aacca6f 26365 }
44660702
DM
26366 }
26367 },
26368 "permissions" : {
26369 "check" : [
26370 "perm",
26371 "/vms/{vmid}",
26372 [
26373 "VM.PowerMgmt"
26374 ]
26375 ]
7aacca6f 26376 },
44660702
DM
26377 "protected" : 1,
26378 "proxyto" : "node",
26379 "returns" : {
26380 "type" : "string"
26381 }
56122987 26382 }
7aacca6f 26383 },
7aacca6f 26384 "leaf" : 1,
4d47f125
TL
26385 "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
26386 "text" : "resume"
5c1699e5
TL
26387 },
26388 {
26389 "info" : {
26390 "POST" : {
e9cd3bd4 26391 "allowtoken" : 1,
5c1699e5
TL
26392 "description" : "Reboot the container by shutting it down, and starting it again. Applies pending changes.",
26393 "method" : "POST",
26394 "name" : "vm_reboot",
26395 "parameters" : {
26396 "additionalProperties" : 0,
26397 "properties" : {
26398 "node" : {
26399 "description" : "The cluster node name.",
26400 "format" : "pve-node",
26401 "type" : "string",
26402 "typetext" : "<string>"
26403 },
26404 "timeout" : {
26405 "description" : "Wait maximal timeout seconds for the shutdown.",
26406 "minimum" : 0,
26407 "optional" : 1,
26408 "type" : "integer",
26409 "typetext" : "<integer> (0 - N)"
26410 },
26411 "vmid" : {
26412 "description" : "The (unique) ID of the VM.",
26413 "format" : "pve-vmid",
26414 "minimum" : 1,
26415 "type" : "integer",
26416 "typetext" : "<integer> (1 - N)"
26417 }
26418 }
26419 },
26420 "permissions" : {
26421 "check" : [
26422 "perm",
26423 "/vms/{vmid}",
26424 [
26425 "VM.PowerMgmt"
26426 ]
26427 ]
26428 },
26429 "protected" : 1,
26430 "proxyto" : "node",
26431 "returns" : {
26432 "type" : "string"
26433 }
26434 }
26435 },
26436 "leaf" : 1,
26437 "path" : "/nodes/{node}/lxc/{vmid}/status/reboot",
26438 "text" : "reboot"
4d47f125
TL
26439 }
26440 ],
26441 "info" : {
26442 "GET" : {
e9cd3bd4 26443 "allowtoken" : 1,
4d47f125
TL
26444 "description" : "Directory index",
26445 "method" : "GET",
26446 "name" : "vmcmdidx",
26447 "parameters" : {
26448 "additionalProperties" : 0,
26449 "properties" : {
26450 "node" : {
26451 "description" : "The cluster node name.",
26452 "format" : "pve-node",
26453 "type" : "string",
26454 "typetext" : "<string>"
26455 },
26456 "vmid" : {
26457 "description" : "The (unique) ID of the VM.",
26458 "format" : "pve-vmid",
26459 "minimum" : 1,
26460 "type" : "integer",
26461 "typetext" : "<integer> (1 - N)"
26462 }
26463 }
26464 },
26465 "permissions" : {
26466 "user" : "all"
26467 },
26468 "proxyto" : "node",
26469 "returns" : {
26470 "items" : {
26471 "properties" : {
26472 "subdir" : {
26473 "type" : "string"
26474 }
26475 },
26476 "type" : "object"
26477 },
26478 "links" : [
26479 {
26480 "href" : "{subdir}",
26481 "rel" : "child"
26482 }
26483 ],
26484 "type" : "array"
26485 }
26486 }
26487 },
26488 "leaf" : 0,
26489 "path" : "/nodes/{node}/lxc/{vmid}/status",
26490 "text" : "status"
26491 },
26492 {
26493 "children" : [
56122987 26494 {
4d47f125
TL
26495 "children" : [
26496 {
26497 "info" : {
26498 "POST" : {
e9cd3bd4 26499 "allowtoken" : 1,
4d47f125
TL
26500 "description" : "Rollback LXC state to specified snapshot.",
26501 "method" : "POST",
26502 "name" : "rollback",
26503 "parameters" : {
26504 "additionalProperties" : 0,
26505 "properties" : {
26506 "node" : {
26507 "description" : "The cluster node name.",
26508 "format" : "pve-node",
26509 "type" : "string",
26510 "typetext" : "<string>"
26511 },
26512 "snapname" : {
26513 "description" : "The name of the snapshot.",
26514 "format" : "pve-configid",
26515 "maxLength" : 40,
26516 "type" : "string",
26517 "typetext" : "<string>"
26518 },
26519 "vmid" : {
26520 "description" : "The (unique) ID of the VM.",
26521 "format" : "pve-vmid",
26522 "minimum" : 1,
26523 "type" : "integer",
26524 "typetext" : "<integer> (1 - N)"
26525 }
26526 }
26527 },
26528 "permissions" : {
26529 "check" : [
26530 "perm",
26531 "/vms/{vmid}",
26532 [
26533 "VM.Snapshot",
26534 "VM.Snapshot.Rollback"
26535 ],
26536 "any",
26537 1
26538 ]
26539 },
26540 "protected" : 1,
26541 "proxyto" : "node",
26542 "returns" : {
26543 "description" : "the task ID.",
26544 "type" : "string"
26545 }
26546 }
26547 },
26548 "leaf" : 1,
26549 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
26550 "text" : "rollback"
26551 },
26552 {
26553 "info" : {
26554 "GET" : {
e9cd3bd4 26555 "allowtoken" : 1,
4d47f125
TL
26556 "description" : "Get snapshot configuration",
26557 "method" : "GET",
26558 "name" : "get_snapshot_config",
26559 "parameters" : {
26560 "additionalProperties" : 0,
26561 "properties" : {
26562 "node" : {
26563 "description" : "The cluster node name.",
26564 "format" : "pve-node",
26565 "type" : "string",
26566 "typetext" : "<string>"
26567 },
26568 "snapname" : {
26569 "description" : "The name of the snapshot.",
26570 "format" : "pve-configid",
26571 "maxLength" : 40,
26572 "type" : "string",
26573 "typetext" : "<string>"
26574 },
26575 "vmid" : {
26576 "description" : "The (unique) ID of the VM.",
26577 "format" : "pve-vmid",
26578 "minimum" : 1,
26579 "type" : "integer",
26580 "typetext" : "<integer> (1 - N)"
26581 }
26582 }
26583 },
26584 "permissions" : {
26585 "check" : [
26586 "perm",
26587 "/vms/{vmid}",
26588 [
26589 "VM.Snapshot",
c5aa7e14
TL
26590 "VM.Snapshot.Rollback",
26591 "VM.Audit"
4d47f125
TL
26592 ],
26593 "any",
26594 1
26595 ]
26596 },
26597 "proxyto" : "node",
26598 "returns" : {
26599 "type" : "object"
26600 }
26601 },
26602 "PUT" : {
e9cd3bd4 26603 "allowtoken" : 1,
4d47f125
TL
26604 "description" : "Update snapshot metadata.",
26605 "method" : "PUT",
26606 "name" : "update_snapshot_config",
26607 "parameters" : {
26608 "additionalProperties" : 0,
26609 "properties" : {
26610 "description" : {
26611 "description" : "A textual description or comment.",
26612 "optional" : 1,
26613 "type" : "string",
26614 "typetext" : "<string>"
26615 },
26616 "node" : {
26617 "description" : "The cluster node name.",
26618 "format" : "pve-node",
26619 "type" : "string",
26620 "typetext" : "<string>"
26621 },
26622 "snapname" : {
26623 "description" : "The name of the snapshot.",
26624 "format" : "pve-configid",
26625 "maxLength" : 40,
26626 "type" : "string",
26627 "typetext" : "<string>"
26628 },
26629 "vmid" : {
26630 "description" : "The (unique) ID of the VM.",
26631 "format" : "pve-vmid",
26632 "minimum" : 1,
26633 "type" : "integer",
26634 "typetext" : "<integer> (1 - N)"
26635 }
26636 }
26637 },
26638 "permissions" : {
26639 "check" : [
26640 "perm",
26641 "/vms/{vmid}",
26642 [
26643 "VM.Snapshot"
26644 ]
26645 ]
26646 },
26647 "protected" : 1,
26648 "proxyto" : "node",
26649 "returns" : {
26650 "type" : "null"
26651 }
26652 }
26653 },
26654 "leaf" : 1,
26655 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
26656 "text" : "config"
26657 }
26658 ],
56122987 26659 "info" : {
4d47f125 26660 "DELETE" : {
e9cd3bd4 26661 "allowtoken" : 1,
4d47f125
TL
26662 "description" : "Delete a LXC snapshot.",
26663 "method" : "DELETE",
26664 "name" : "delsnapshot",
56122987 26665 "parameters" : {
44660702 26666 "additionalProperties" : 0,
56122987 26667 "properties" : {
4d47f125
TL
26668 "force" : {
26669 "description" : "For removal from config file, even if removing disk snapshots fails.",
7aacca6f 26670 "optional" : 1,
013dc89f
DM
26671 "type" : "boolean",
26672 "typetext" : "<boolean>"
44660702
DM
26673 },
26674 "node" : {
26675 "description" : "The cluster node name.",
26676 "format" : "pve-node",
013dc89f
DM
26677 "type" : "string",
26678 "typetext" : "<string>"
7aacca6f 26679 },
4d47f125
TL
26680 "snapname" : {
26681 "description" : "The name of the snapshot.",
26682 "format" : "pve-configid",
26683 "maxLength" : 40,
26684 "type" : "string",
26685 "typetext" : "<string>"
56122987
DM
26686 },
26687 "vmid" : {
7aacca6f 26688 "description" : "The (unique) ID of the VM.",
44660702
DM
26689 "format" : "pve-vmid",
26690 "minimum" : 1,
4bd7df8b 26691 "type" : "integer",
013dc89f 26692 "typetext" : "<integer> (1 - N)"
56122987 26693 }
44660702 26694 }
56122987
DM
26695 },
26696 "permissions" : {
26697 "check" : [
26698 "perm",
26699 "/vms/{vmid}",
26700 [
4d47f125 26701 "VM.Snapshot"
56122987
DM
26702 ]
26703 ]
26704 },
44660702
DM
26705 "protected" : 1,
26706 "proxyto" : "node",
7aacca6f 26707 "returns" : {
4d47f125 26708 "description" : "the task ID.",
7aacca6f
DM
26709 "type" : "string"
26710 }
4d47f125
TL
26711 },
26712 "GET" : {
e9cd3bd4 26713 "allowtoken" : 1,
4d47f125
TL
26714 "description" : "",
26715 "method" : "GET",
26716 "name" : "snapshot_cmd_idx",
56122987
DM
26717 "parameters" : {
26718 "additionalProperties" : 0,
26719 "properties" : {
44660702
DM
26720 "node" : {
26721 "description" : "The cluster node name.",
26722 "format" : "pve-node",
013dc89f
DM
26723 "type" : "string",
26724 "typetext" : "<string>"
44660702 26725 },
4d47f125
TL
26726 "snapname" : {
26727 "description" : "The name of the snapshot.",
26728 "format" : "pve-configid",
26729 "maxLength" : 40,
013dc89f
DM
26730 "type" : "string",
26731 "typetext" : "<string>"
56122987
DM
26732 },
26733 "vmid" : {
7aacca6f 26734 "description" : "The (unique) ID of the VM.",
56122987 26735 "format" : "pve-vmid",
44660702 26736 "minimum" : 1,
4bd7df8b 26737 "type" : "integer",
013dc89f 26738 "typetext" : "<integer> (1 - N)"
56122987 26739 }
44660702
DM
26740 }
26741 },
26742 "permissions" : {
4d47f125 26743 "user" : "all"
56122987 26744 },
44660702 26745 "returns" : {
4d47f125
TL
26746 "items" : {
26747 "properties" : {},
26748 "type" : "object"
26749 },
26750 "links" : [
26751 {
26752 "href" : "{cmd}",
26753 "rel" : "child"
26754 }
26755 ],
26756 "type" : "array"
44660702 26757 }
7aacca6f
DM
26758 }
26759 },
4d47f125
TL
26760 "leaf" : 0,
26761 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
26762 "text" : "{snapname}"
7aacca6f
DM
26763 }
26764 ],
26765 "info" : {
26766 "GET" : {
e9cd3bd4 26767 "allowtoken" : 1,
4d47f125 26768 "description" : "List all snapshots.",
44660702 26769 "method" : "GET",
4d47f125 26770 "name" : "list",
7aacca6f
DM
26771 "parameters" : {
26772 "additionalProperties" : 0,
26773 "properties" : {
26774 "node" : {
26775 "description" : "The cluster node name.",
44660702 26776 "format" : "pve-node",
013dc89f
DM
26777 "type" : "string",
26778 "typetext" : "<string>"
56122987 26779 },
7aacca6f 26780 "vmid" : {
44660702 26781 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
26782 "format" : "pve-vmid",
26783 "minimum" : 1,
4bd7df8b 26784 "type" : "integer",
013dc89f 26785 "typetext" : "<integer> (1 - N)"
7aacca6f 26786 }
56122987
DM
26787 }
26788 },
44660702 26789 "permissions" : {
4d47f125
TL
26790 "check" : [
26791 "perm",
26792 "/vms/{vmid}",
26793 [
26794 "VM.Audit"
26795 ]
26796 ]
44660702 26797 },
4d47f125 26798 "protected" : 1,
44660702 26799 "proxyto" : "node",
7aacca6f 26800 "returns" : {
7aacca6f
DM
26801 "items" : {
26802 "properties" : {
4d47f125
TL
26803 "description" : {
26804 "description" : "Snapshot description.",
7aacca6f 26805 "type" : "string"
4d47f125
TL
26806 },
26807 "name" : {
26808 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
26809 "type" : "string"
26810 },
26811 "parent" : {
26812 "description" : "Parent snapshot identifier.",
26813 "optional" : 1,
26814 "type" : "string"
26815 },
26816 "snaptime" : {
26817 "description" : "Snapshot creation time",
26818 "optional" : 1,
26819 "renderer" : "timestamp",
26820 "type" : "integer"
7aacca6f
DM
26821 }
26822 },
26823 "type" : "object"
26824 },
26825 "links" : [
26826 {
4d47f125 26827 "href" : "{name}",
44660702 26828 "rel" : "child"
7aacca6f 26829 }
44660702
DM
26830 ],
26831 "type" : "array"
7aacca6f 26832 }
4d47f125
TL
26833 },
26834 "POST" : {
e9cd3bd4 26835 "allowtoken" : 1,
4d47f125
TL
26836 "description" : "Snapshot a container.",
26837 "method" : "POST",
26838 "name" : "snapshot",
26839 "parameters" : {
26840 "additionalProperties" : 0,
26841 "properties" : {
26842 "description" : {
26843 "description" : "A textual description or comment.",
26844 "optional" : 1,
26845 "type" : "string",
26846 "typetext" : "<string>"
26847 },
26848 "node" : {
26849 "description" : "The cluster node name.",
26850 "format" : "pve-node",
26851 "type" : "string",
26852 "typetext" : "<string>"
26853 },
26854 "snapname" : {
26855 "description" : "The name of the snapshot.",
26856 "format" : "pve-configid",
26857 "maxLength" : 40,
26858 "type" : "string",
26859 "typetext" : "<string>"
26860 },
26861 "vmid" : {
26862 "description" : "The (unique) ID of the VM.",
26863 "format" : "pve-vmid",
26864 "minimum" : 1,
26865 "type" : "integer",
26866 "typetext" : "<integer> (1 - N)"
26867 }
26868 }
26869 },
26870 "permissions" : {
26871 "check" : [
26872 "perm",
26873 "/vms/{vmid}",
26874 [
26875 "VM.Snapshot"
26876 ]
26877 ]
26878 },
26879 "protected" : 1,
26880 "proxyto" : "node",
26881 "returns" : {
26882 "description" : "the task ID.",
26883 "type" : "string"
26884 }
7aacca6f 26885 }
44660702
DM
26886 },
26887 "leaf" : 0,
4d47f125
TL
26888 "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
26889 "text" : "snapshot"
7aacca6f
DM
26890 },
26891 {
7aacca6f 26892 "children" : [
56122987 26893 {
7aacca6f
DM
26894 "children" : [
26895 {
26896 "info" : {
4d47f125 26897 "DELETE" : {
e9cd3bd4 26898 "allowtoken" : 1,
4d47f125
TL
26899 "description" : "Delete rule.",
26900 "method" : "DELETE",
26901 "name" : "delete_rule",
7aacca6f 26902 "parameters" : {
44660702 26903 "additionalProperties" : 0,
7aacca6f 26904 "properties" : {
4d47f125
TL
26905 "digest" : {
26906 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
26907 "maxLength" : 40,
26908 "optional" : 1,
26909 "type" : "string",
26910 "typetext" : "<string>"
26911 },
44660702
DM
26912 "node" : {
26913 "description" : "The cluster node name.",
26914 "format" : "pve-node",
013dc89f
DM
26915 "type" : "string",
26916 "typetext" : "<string>"
44660702 26917 },
4d47f125
TL
26918 "pos" : {
26919 "description" : "Update rule at position <pos>.",
26920 "minimum" : 0,
26921 "optional" : 1,
26922 "type" : "integer",
26923 "typetext" : "<integer> (0 - N)"
7aacca6f 26924 },
7aacca6f 26925 "vmid" : {
44660702 26926 "description" : "The (unique) ID of the VM.",
7aacca6f 26927 "format" : "pve-vmid",
44660702 26928 "minimum" : 1,
4bd7df8b 26929 "type" : "integer",
013dc89f 26930 "typetext" : "<integer> (1 - N)"
7aacca6f 26931 }
44660702
DM
26932 }
26933 },
26934 "permissions" : {
26935 "check" : [
26936 "perm",
26937 "/vms/{vmid}",
26938 [
4d47f125
TL
26939 "VM.Config.Network"
26940 ]
44660702 26941 ]
7aacca6f 26942 },
44660702 26943 "protected" : 1,
4d47f125 26944 "proxyto" : null,
44660702 26945 "returns" : {
4d47f125 26946 "type" : "null"
44660702 26947 }
4d47f125 26948 },
7aacca6f 26949 "GET" : {
e9cd3bd4 26950 "allowtoken" : 1,
4d47f125 26951 "description" : "Get single rule data.",
44660702 26952 "method" : "GET",
4d47f125 26953 "name" : "get_rule",
7aacca6f
DM
26954 "parameters" : {
26955 "additionalProperties" : 0,
4d47f125
TL
26956 "properties" : {
26957 "node" : {
26958 "description" : "The cluster node name.",
26959 "format" : "pve-node",
013dc89f
DM
26960 "type" : "string",
26961 "typetext" : "<string>"
44660702 26962 },
4d47f125
TL
26963 "pos" : {
26964 "description" : "Update rule at position <pos>.",
26965 "minimum" : 0,
26966 "optional" : 1,
26967 "type" : "integer",
26968 "typetext" : "<integer> (0 - N)"
26969 },
44660702
DM
26970 "vmid" : {
26971 "description" : "The (unique) ID of the VM.",
26972 "format" : "pve-vmid",
26973 "minimum" : 1,
4bd7df8b 26974 "type" : "integer",
013dc89f 26975 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
26976 }
26977 }
26978 },
26979 "permissions" : {
26980 "check" : [
26981 "perm",
26982 "/vms/{vmid}",
26983 [
4d47f125
TL
26984 "VM.Audit"
26985 ]
7aacca6f
DM
26986 ]
26987 },
4d47f125 26988 "proxyto" : null,
44660702 26989 "returns" : {
4d47f125 26990 "properties" : {
e2d681b3
TL
26991 "action" : {
26992 "type" : "string"
26993 },
26994 "comment" : {
26995 "optional" : 1,
26996 "type" : "string"
26997 },
26998 "dest" : {
26999 "optional" : 1,
27000 "type" : "string"
27001 },
27002 "dport" : {
27003 "optional" : 1,
27004 "type" : "string"
27005 },
27006 "enable" : {
27007 "optional" : 1,
27008 "type" : "integer"
27009 },
4772952b
TL
27010 "icmp-type" : {
27011 "optional" : 1,
27012 "type" : "string"
27013 },
e2d681b3
TL
27014 "iface" : {
27015 "optional" : 1,
27016 "type" : "string"
27017 },
27018 "ipversion" : {
27019 "optional" : 1,
27020 "type" : "integer"
27021 },
95895385
TL
27022 "log" : {
27023 "description" : "Log level for firewall rule",
27024 "enum" : [
27025 "emerg",
27026 "alert",
27027 "crit",
27028 "err",
27029 "warning",
27030 "notice",
27031 "info",
27032 "debug",
27033 "nolog"
27034 ],
27035 "optional" : 1,
27036 "type" : "string"
27037 },
e2d681b3
TL
27038 "macro" : {
27039 "optional" : 1,
5f26e15b 27040 "type" : "string"
e2d681b3 27041 },
4d47f125
TL
27042 "pos" : {
27043 "type" : "integer"
e2d681b3
TL
27044 },
27045 "proto" : {
27046 "optional" : 1,
27047 "type" : "string"
27048 },
27049 "source" : {
27050 "optional" : 1,
27051 "type" : "string"
27052 },
27053 "sport" : {
27054 "optional" : 1,
27055 "type" : "string"
27056 },
27057 "type" : {
27058 "type" : "string"
4d47f125
TL
27059 }
27060 },
44660702
DM
27061 "type" : "object"
27062 }
7aacca6f
DM
27063 },
27064 "PUT" : {
e9cd3bd4 27065 "allowtoken" : 1,
4d47f125 27066 "description" : "Modify rule data.",
44660702 27067 "method" : "PUT",
4d47f125 27068 "name" : "update_rule",
7aacca6f
DM
27069 "parameters" : {
27070 "additionalProperties" : 0,
27071 "properties" : {
4d47f125
TL
27072 "action" : {
27073 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
27074 "maxLength" : 20,
27075 "minLength" : 2,
27076 "optional" : 1,
27077 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27078 "type" : "string"
27079 },
27080 "comment" : {
27081 "description" : "Descriptive comment.",
27082 "optional" : 1,
27083 "type" : "string",
27084 "typetext" : "<string>"
27085 },
27086 "delete" : {
27087 "description" : "A list of settings you want to delete.",
27088 "format" : "pve-configid-list",
27089 "optional" : 1,
27090 "type" : "string",
27091 "typetext" : "<string>"
27092 },
27093 "dest" : {
27094 "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.",
27095 "format" : "pve-fw-addr-spec",
0695fdaf 27096 "maxLength" : 512,
4d47f125
TL
27097 "optional" : 1,
27098 "type" : "string",
27099 "typetext" : "<string>"
27100 },
27101 "digest" : {
27102 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27103 "maxLength" : 40,
27104 "optional" : 1,
27105 "type" : "string",
27106 "typetext" : "<string>"
27107 },
27108 "dport" : {
27109 "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.",
27110 "format" : "pve-fw-dport-spec",
27111 "optional" : 1,
27112 "type" : "string",
27113 "typetext" : "<string>"
27114 },
27115 "enable" : {
27116 "description" : "Flag to enable/disable a rule.",
27117 "minimum" : 0,
27118 "optional" : 1,
27119 "type" : "integer",
27120 "typetext" : "<integer> (0 - N)"
27121 },
4772952b
TL
27122 "icmp-type" : {
27123 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
27124 "format" : "pve-fw-icmp-type-spec",
27125 "optional" : 1,
27126 "type" : "string",
27127 "typetext" : "<string>"
27128 },
4d47f125
TL
27129 "iface" : {
27130 "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.",
27131 "format" : "pve-iface",
27132 "maxLength" : 20,
27133 "minLength" : 2,
27134 "optional" : 1,
27135 "type" : "string",
27136 "typetext" : "<string>"
27137 },
95895385
TL
27138 "log" : {
27139 "description" : "Log level for firewall rule.",
27140 "enum" : [
27141 "emerg",
27142 "alert",
27143 "crit",
27144 "err",
27145 "warning",
27146 "notice",
27147 "info",
27148 "debug",
27149 "nolog"
27150 ],
27151 "optional" : 1,
27152 "type" : "string"
27153 },
4d47f125
TL
27154 "macro" : {
27155 "description" : "Use predefined standard macro.",
27156 "maxLength" : 128,
44660702 27157 "optional" : 1,
013dc89f
DM
27158 "type" : "string",
27159 "typetext" : "<string>"
44660702 27160 },
4d47f125
TL
27161 "moveto" : {
27162 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
27163 "minimum" : 0,
27164 "optional" : 1,
27165 "type" : "integer",
27166 "typetext" : "<integer> (0 - N)"
27167 },
7aacca6f 27168 "node" : {
7aacca6f 27169 "description" : "The cluster node name.",
44660702 27170 "format" : "pve-node",
013dc89f
DM
27171 "type" : "string",
27172 "typetext" : "<string>"
7aacca6f 27173 },
4d47f125
TL
27174 "pos" : {
27175 "description" : "Update rule at position <pos>.",
27176 "minimum" : 0,
27177 "optional" : 1,
27178 "type" : "integer",
27179 "typetext" : "<integer> (0 - N)"
27180 },
27181 "proto" : {
27182 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
27183 "format" : "pve-fw-protocol-spec",
27184 "optional" : 1,
27185 "type" : "string",
27186 "typetext" : "<string>"
27187 },
27188 "source" : {
27189 "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.",
27190 "format" : "pve-fw-addr-spec",
0695fdaf 27191 "maxLength" : 512,
4d47f125
TL
27192 "optional" : 1,
27193 "type" : "string",
27194 "typetext" : "<string>"
27195 },
27196 "sport" : {
27197 "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.",
27198 "format" : "pve-fw-sport-spec",
27199 "optional" : 1,
013dc89f
DM
27200 "type" : "string",
27201 "typetext" : "<string>"
7aacca6f 27202 },
4d47f125
TL
27203 "type" : {
27204 "description" : "Rule type.",
27205 "enum" : [
27206 "in",
27207 "out",
27208 "group"
27209 ],
27210 "optional" : 1,
27211 "type" : "string"
27212 },
7aacca6f 27213 "vmid" : {
44660702 27214 "description" : "The (unique) ID of the VM.",
7aacca6f 27215 "format" : "pve-vmid",
44660702 27216 "minimum" : 1,
4bd7df8b 27217 "type" : "integer",
013dc89f 27218 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
27219 }
27220 }
27221 },
7aacca6f
DM
27222 "permissions" : {
27223 "check" : [
27224 "perm",
27225 "/vms/{vmid}",
27226 [
4d47f125 27227 "VM.Config.Network"
7aacca6f
DM
27228 ]
27229 ]
27230 },
4d47f125
TL
27231 "protected" : 1,
27232 "proxyto" : null,
27233 "returns" : {
27234 "type" : "null"
27235 }
27236 }
27237 },
27238 "leaf" : 1,
27239 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
27240 "text" : "{pos}"
27241 }
27242 ],
27243 "info" : {
27244 "GET" : {
e9cd3bd4 27245 "allowtoken" : 1,
4d47f125
TL
27246 "description" : "List rules.",
27247 "method" : "GET",
27248 "name" : "get_rules",
27249 "parameters" : {
27250 "additionalProperties" : 0,
27251 "properties" : {
27252 "node" : {
27253 "description" : "The cluster node name.",
27254 "format" : "pve-node",
27255 "type" : "string",
27256 "typetext" : "<string>"
27257 },
27258 "vmid" : {
27259 "description" : "The (unique) ID of the VM.",
27260 "format" : "pve-vmid",
27261 "minimum" : 1,
27262 "type" : "integer",
27263 "typetext" : "<integer> (1 - N)"
27264 }
27265 }
27266 },
27267 "permissions" : {
27268 "check" : [
27269 "perm",
27270 "/vms/{vmid}",
27271 [
27272 "VM.Audit"
27273 ]
27274 ]
27275 },
27276 "proxyto" : null,
27277 "returns" : {
27278 "items" : {
27279 "properties" : {
27280 "pos" : {
27281 "type" : "integer"
27282 }
27283 },
27284 "type" : "object"
27285 },
27286 "links" : [
27287 {
27288 "href" : "{pos}",
27289 "rel" : "child"
27290 }
27291 ],
27292 "type" : "array"
27293 }
27294 },
27295 "POST" : {
e9cd3bd4 27296 "allowtoken" : 1,
4d47f125
TL
27297 "description" : "Create new rule.",
27298 "method" : "POST",
27299 "name" : "create_rule",
27300 "parameters" : {
27301 "additionalProperties" : 0,
27302 "properties" : {
27303 "action" : {
27304 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
27305 "maxLength" : 20,
27306 "minLength" : 2,
27307 "optional" : 0,
27308 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27309 "type" : "string"
27310 },
27311 "comment" : {
27312 "description" : "Descriptive comment.",
27313 "optional" : 1,
27314 "type" : "string",
27315 "typetext" : "<string>"
27316 },
27317 "dest" : {
27318 "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.",
27319 "format" : "pve-fw-addr-spec",
0695fdaf 27320 "maxLength" : 512,
4d47f125
TL
27321 "optional" : 1,
27322 "type" : "string",
27323 "typetext" : "<string>"
27324 },
27325 "digest" : {
27326 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27327 "maxLength" : 40,
27328 "optional" : 1,
27329 "type" : "string",
27330 "typetext" : "<string>"
27331 },
27332 "dport" : {
27333 "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.",
27334 "format" : "pve-fw-dport-spec",
27335 "optional" : 1,
27336 "type" : "string",
27337 "typetext" : "<string>"
27338 },
27339 "enable" : {
27340 "description" : "Flag to enable/disable a rule.",
27341 "minimum" : 0,
27342 "optional" : 1,
27343 "type" : "integer",
27344 "typetext" : "<integer> (0 - N)"
27345 },
4772952b
TL
27346 "icmp-type" : {
27347 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
27348 "format" : "pve-fw-icmp-type-spec",
27349 "optional" : 1,
27350 "type" : "string",
27351 "typetext" : "<string>"
27352 },
4d47f125
TL
27353 "iface" : {
27354 "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.",
27355 "format" : "pve-iface",
27356 "maxLength" : 20,
27357 "minLength" : 2,
27358 "optional" : 1,
27359 "type" : "string",
27360 "typetext" : "<string>"
27361 },
95895385
TL
27362 "log" : {
27363 "description" : "Log level for firewall rule.",
27364 "enum" : [
27365 "emerg",
27366 "alert",
27367 "crit",
27368 "err",
27369 "warning",
27370 "notice",
27371 "info",
27372 "debug",
27373 "nolog"
27374 ],
27375 "optional" : 1,
27376 "type" : "string"
27377 },
4d47f125
TL
27378 "macro" : {
27379 "description" : "Use predefined standard macro.",
27380 "maxLength" : 128,
44660702 27381 "optional" : 1,
4d47f125
TL
27382 "type" : "string",
27383 "typetext" : "<string>"
44660702
DM
27384 },
27385 "node" : {
27386 "description" : "The cluster node name.",
27387 "format" : "pve-node",
013dc89f
DM
27388 "type" : "string",
27389 "typetext" : "<string>"
7aacca6f 27390 },
4d47f125
TL
27391 "pos" : {
27392 "description" : "Update rule at position <pos>.",
27393 "minimum" : 0,
27394 "optional" : 1,
27395 "type" : "integer",
27396 "typetext" : "<integer> (0 - N)"
27397 },
27398 "proto" : {
27399 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
27400 "format" : "pve-fw-protocol-spec",
27401 "optional" : 1,
27402 "type" : "string",
27403 "typetext" : "<string>"
27404 },
27405 "source" : {
27406 "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.",
27407 "format" : "pve-fw-addr-spec",
0695fdaf 27408 "maxLength" : 512,
4d47f125 27409 "optional" : 1,
013dc89f
DM
27410 "type" : "string",
27411 "typetext" : "<string>"
44660702 27412 },
4d47f125
TL
27413 "sport" : {
27414 "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.",
27415 "format" : "pve-fw-sport-spec",
27416 "optional" : 1,
27417 "type" : "string",
27418 "typetext" : "<string>"
27419 },
27420 "type" : {
27421 "description" : "Rule type.",
27422 "enum" : [
27423 "in",
27424 "out",
27425 "group"
27426 ],
27427 "optional" : 0,
27428 "type" : "string"
27429 },
44660702
DM
27430 "vmid" : {
27431 "description" : "The (unique) ID of the VM.",
27432 "format" : "pve-vmid",
27433 "minimum" : 1,
4bd7df8b 27434 "type" : "integer",
013dc89f 27435 "typetext" : "<integer> (1 - N)"
56122987 27436 }
44660702 27437 }
7aacca6f 27438 },
56122987
DM
27439 "permissions" : {
27440 "check" : [
27441 "perm",
27442 "/vms/{vmid}",
27443 [
4d47f125 27444 "VM.Config.Network"
56122987
DM
27445 ]
27446 ]
27447 },
44660702 27448 "protected" : 1,
4d47f125 27449 "proxyto" : null,
44660702 27450 "returns" : {
4d47f125 27451 "type" : "null"
44660702
DM
27452 }
27453 }
27454 },
27455 "leaf" : 0,
4d47f125
TL
27456 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
27457 "text" : "rules"
7aacca6f 27458 },
56122987 27459 {
56122987
DM
27460 "children" : [
27461 {
56122987 27462 "info" : {
44660702 27463 "DELETE" : {
e9cd3bd4 27464 "allowtoken" : 1,
4d47f125 27465 "description" : "Remove IP or Network alias.",
44660702 27466 "method" : "DELETE",
4d47f125 27467 "name" : "remove_alias",
56122987 27468 "parameters" : {
44660702 27469 "additionalProperties" : 0,
56122987 27470 "properties" : {
44660702
DM
27471 "digest" : {
27472 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27473 "maxLength" : 40,
7aacca6f 27474 "optional" : 1,
013dc89f
DM
27475 "type" : "string",
27476 "typetext" : "<string>"
7aacca6f 27477 },
4d47f125
TL
27478 "name" : {
27479 "description" : "Alias name.",
27480 "maxLength" : 64,
27481 "minLength" : 2,
27482 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27483 "type" : "string"
27484 },
7aacca6f 27485 "node" : {
44660702 27486 "description" : "The cluster node name.",
7aacca6f 27487 "format" : "pve-node",
013dc89f
DM
27488 "type" : "string",
27489 "typetext" : "<string>"
44660702 27490 },
44660702
DM
27491 "vmid" : {
27492 "description" : "The (unique) ID of the VM.",
27493 "format" : "pve-vmid",
27494 "minimum" : 1,
4bd7df8b 27495 "type" : "integer",
013dc89f 27496 "typetext" : "<integer> (1 - N)"
56122987 27497 }
44660702 27498 }
56122987 27499 },
56122987
DM
27500 "permissions" : {
27501 "check" : [
27502 "perm",
27503 "/vms/{vmid}",
27504 [
44660702 27505 "VM.Config.Network"
56122987
DM
27506 ]
27507 ]
27508 },
44660702 27509 "protected" : 1,
44660702
DM
27510 "returns" : {
27511 "type" : "null"
27512 }
7aacca6f 27513 },
44660702 27514 "GET" : {
e9cd3bd4 27515 "allowtoken" : 1,
4d47f125 27516 "description" : "Read alias.",
44660702 27517 "method" : "GET",
4d47f125 27518 "name" : "read_alias",
56122987 27519 "parameters" : {
44660702 27520 "additionalProperties" : 0,
56122987 27521 "properties" : {
4d47f125
TL
27522 "name" : {
27523 "description" : "Alias name.",
27524 "maxLength" : 64,
27525 "minLength" : 2,
27526 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27527 "type" : "string"
27528 },
7aacca6f 27529 "node" : {
7aacca6f 27530 "description" : "The cluster node name.",
44660702 27531 "format" : "pve-node",
013dc89f
DM
27532 "type" : "string",
27533 "typetext" : "<string>"
56122987 27534 },
7aacca6f 27535 "vmid" : {
44660702 27536 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
27537 "format" : "pve-vmid",
27538 "minimum" : 1,
4bd7df8b 27539 "type" : "integer",
013dc89f 27540 "typetext" : "<integer> (1 - N)"
56122987 27541 }
44660702 27542 }
56122987 27543 },
7aacca6f
DM
27544 "permissions" : {
27545 "check" : [
27546 "perm",
27547 "/vms/{vmid}",
27548 [
44660702 27549 "VM.Audit"
7aacca6f
DM
27550 ]
27551 ]
27552 },
7aacca6f 27553 "returns" : {
44660702 27554 "type" : "object"
7aacca6f 27555 }
56122987 27556 },
44660702 27557 "PUT" : {
e9cd3bd4 27558 "allowtoken" : 1,
4d47f125 27559 "description" : "Update IP or Network alias.",
44660702 27560 "method" : "PUT",
4d47f125 27561 "name" : "update_alias",
56122987
DM
27562 "parameters" : {
27563 "additionalProperties" : 0,
27564 "properties" : {
4d47f125
TL
27565 "cidr" : {
27566 "description" : "Network/IP specification in CIDR format.",
27567 "format" : "IPorCIDR",
013dc89f
DM
27568 "type" : "string",
27569 "typetext" : "<string>"
44660702 27570 },
4d47f125 27571 "comment" : {
44660702 27572 "optional" : 1,
013dc89f
DM
27573 "type" : "string",
27574 "typetext" : "<string>"
44660702
DM
27575 },
27576 "digest" : {
27577 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27578 "maxLength" : 40,
27579 "optional" : 1,
013dc89f
DM
27580 "type" : "string",
27581 "typetext" : "<string>"
44660702 27582 },
4d47f125
TL
27583 "name" : {
27584 "description" : "Alias name.",
27585 "maxLength" : 64,
44660702 27586 "minLength" : 2,
4d47f125
TL
27587 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27588 "type" : "string"
44660702 27589 },
7aacca6f
DM
27590 "node" : {
27591 "description" : "The cluster node name.",
44660702 27592 "format" : "pve-node",
013dc89f
DM
27593 "type" : "string",
27594 "typetext" : "<string>"
56122987 27595 },
4d47f125
TL
27596 "rename" : {
27597 "description" : "Rename an existing alias.",
27598 "maxLength" : 64,
27599 "minLength" : 2,
7aacca6f 27600 "optional" : 1,
4d47f125 27601 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
27602 "type" : "string"
27603 },
27604 "vmid" : {
27605 "description" : "The (unique) ID of the VM.",
27606 "format" : "pve-vmid",
27607 "minimum" : 1,
4bd7df8b 27608 "type" : "integer",
013dc89f 27609 "typetext" : "<integer> (1 - N)"
56122987
DM
27610 }
27611 }
27612 },
56122987
DM
27613 "permissions" : {
27614 "check" : [
27615 "perm",
27616 "/vms/{vmid}",
27617 [
7aacca6f 27618 "VM.Config.Network"
56122987
DM
27619 ]
27620 ]
27621 },
44660702 27622 "protected" : 1,
56122987 27623 "returns" : {
7aacca6f
DM
27624 "type" : "null"
27625 }
56122987 27626 }
44660702
DM
27627 },
27628 "leaf" : 1,
4d47f125
TL
27629 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
27630 "text" : "{name}"
56122987
DM
27631 }
27632 ],
27633 "info" : {
7aacca6f 27634 "GET" : {
e9cd3bd4 27635 "allowtoken" : 1,
4d47f125 27636 "description" : "List aliases",
44660702 27637 "method" : "GET",
4d47f125 27638 "name" : "get_aliases",
7aacca6f 27639 "parameters" : {
44660702 27640 "additionalProperties" : 0,
7aacca6f
DM
27641 "properties" : {
27642 "node" : {
7aacca6f 27643 "description" : "The cluster node name.",
44660702 27644 "format" : "pve-node",
013dc89f
DM
27645 "type" : "string",
27646 "typetext" : "<string>"
7aacca6f
DM
27647 },
27648 "vmid" : {
27649 "description" : "The (unique) ID of the VM.",
44660702 27650 "format" : "pve-vmid",
7aacca6f 27651 "minimum" : 1,
4bd7df8b 27652 "type" : "integer",
013dc89f 27653 "typetext" : "<integer> (1 - N)"
7aacca6f 27654 }
44660702 27655 }
56122987 27656 },
56122987
DM
27657 "permissions" : {
27658 "check" : [
27659 "perm",
27660 "/vms/{vmid}",
27661 [
7aacca6f 27662 "VM.Audit"
56122987
DM
27663 ]
27664 ]
27665 },
7aacca6f 27666 "returns" : {
7aacca6f
DM
27667 "items" : {
27668 "properties" : {
4d47f125
TL
27669 "cidr" : {
27670 "type" : "string"
27671 },
27672 "comment" : {
27673 "optional" : 1,
27674 "type" : "string"
27675 },
27676 "digest" : {
27677 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27678 "maxLength" : 40,
27679 "optional" : 0,
27680 "type" : "string"
27681 },
27682 "name" : {
27683 "type" : "string"
7aacca6f
DM
27684 }
27685 },
27686 "type" : "object"
27687 },
27688 "links" : [
27689 {
4d47f125 27690 "href" : "{name}",
44660702 27691 "rel" : "child"
7aacca6f 27692 }
44660702
DM
27693 ],
27694 "type" : "array"
27695 }
7aacca6f
DM
27696 },
27697 "POST" : {
e9cd3bd4 27698 "allowtoken" : 1,
4d47f125 27699 "description" : "Create IP or Network Alias.",
44660702 27700 "method" : "POST",
4d47f125 27701 "name" : "create_alias",
56122987 27702 "parameters" : {
44660702 27703 "additionalProperties" : 0,
56122987 27704 "properties" : {
4d47f125
TL
27705 "cidr" : {
27706 "description" : "Network/IP specification in CIDR format.",
27707 "format" : "IPorCIDR",
013dc89f 27708 "type" : "string",
4d47f125
TL
27709 "typetext" : "<string>"
27710 },
27711 "comment" : {
44660702 27712 "optional" : 1,
013dc89f
DM
27713 "type" : "string",
27714 "typetext" : "<string>"
7aacca6f 27715 },
4d47f125
TL
27716 "name" : {
27717 "description" : "Alias name.",
27718 "maxLength" : 64,
27719 "minLength" : 2,
27720 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
27721 "type" : "string"
27722 },
4d47f125
TL
27723 "node" : {
27724 "description" : "The cluster node name.",
27725 "format" : "pve-node",
27726 "type" : "string",
27727 "typetext" : "<string>"
27728 },
44660702
DM
27729 "vmid" : {
27730 "description" : "The (unique) ID of the VM.",
27731 "format" : "pve-vmid",
27732 "minimum" : 1,
4bd7df8b 27733 "type" : "integer",
013dc89f 27734 "typetext" : "<integer> (1 - N)"
44660702
DM
27735 }
27736 }
27737 },
27738 "permissions" : {
27739 "check" : [
27740 "perm",
27741 "/vms/{vmid}",
27742 [
27743 "VM.Config.Network"
27744 ]
27745 ]
27746 },
27747 "protected" : 1,
44660702
DM
27748 "returns" : {
27749 "type" : "null"
27750 }
27751 }
27752 },
27753 "leaf" : 0,
4d47f125
TL
27754 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
27755 "text" : "aliases"
44660702
DM
27756 },
27757 {
27758 "children" : [
27759 {
4d47f125
TL
27760 "children" : [
27761 {
27762 "info" : {
27763 "DELETE" : {
e9cd3bd4 27764 "allowtoken" : 1,
4d47f125
TL
27765 "description" : "Remove IP or Network from IPSet.",
27766 "method" : "DELETE",
27767 "name" : "remove_ip",
27768 "parameters" : {
27769 "additionalProperties" : 0,
27770 "properties" : {
27771 "cidr" : {
27772 "description" : "Network/IP specification in CIDR format.",
27773 "format" : "IPorCIDRorAlias",
27774 "type" : "string",
27775 "typetext" : "<string>"
27776 },
27777 "digest" : {
27778 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27779 "maxLength" : 40,
27780 "optional" : 1,
27781 "type" : "string",
27782 "typetext" : "<string>"
27783 },
27784 "name" : {
27785 "description" : "IP set name.",
27786 "maxLength" : 64,
27787 "minLength" : 2,
27788 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27789 "type" : "string"
27790 },
27791 "node" : {
27792 "description" : "The cluster node name.",
27793 "format" : "pve-node",
27794 "type" : "string",
27795 "typetext" : "<string>"
27796 },
27797 "vmid" : {
27798 "description" : "The (unique) ID of the VM.",
27799 "format" : "pve-vmid",
27800 "minimum" : 1,
27801 "type" : "integer",
27802 "typetext" : "<integer> (1 - N)"
27803 }
27804 }
27805 },
27806 "permissions" : {
27807 "check" : [
27808 "perm",
27809 "/vms/{vmid}",
27810 [
27811 "VM.Config.Network"
27812 ]
27813 ]
27814 },
27815 "protected" : 1,
27816 "returns" : {
27817 "type" : "null"
27818 }
27819 },
27820 "GET" : {
e9cd3bd4 27821 "allowtoken" : 1,
4d47f125
TL
27822 "description" : "Read IP or Network settings from IPSet.",
27823 "method" : "GET",
27824 "name" : "read_ip",
27825 "parameters" : {
27826 "additionalProperties" : 0,
27827 "properties" : {
27828 "cidr" : {
27829 "description" : "Network/IP specification in CIDR format.",
27830 "format" : "IPorCIDRorAlias",
27831 "type" : "string",
27832 "typetext" : "<string>"
27833 },
27834 "name" : {
27835 "description" : "IP set name.",
27836 "maxLength" : 64,
27837 "minLength" : 2,
27838 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27839 "type" : "string"
27840 },
27841 "node" : {
27842 "description" : "The cluster node name.",
27843 "format" : "pve-node",
27844 "type" : "string",
27845 "typetext" : "<string>"
27846 },
27847 "vmid" : {
27848 "description" : "The (unique) ID of the VM.",
27849 "format" : "pve-vmid",
27850 "minimum" : 1,
27851 "type" : "integer",
27852 "typetext" : "<integer> (1 - N)"
27853 }
27854 }
27855 },
27856 "permissions" : {
27857 "check" : [
27858 "perm",
27859 "/vms/{vmid}",
27860 [
27861 "VM.Audit"
27862 ]
27863 ]
27864 },
27865 "protected" : 1,
27866 "returns" : {
27867 "type" : "object"
27868 }
27869 },
27870 "PUT" : {
e9cd3bd4 27871 "allowtoken" : 1,
4d47f125
TL
27872 "description" : "Update IP or Network settings",
27873 "method" : "PUT",
27874 "name" : "update_ip",
27875 "parameters" : {
27876 "additionalProperties" : 0,
27877 "properties" : {
27878 "cidr" : {
27879 "description" : "Network/IP specification in CIDR format.",
27880 "format" : "IPorCIDRorAlias",
27881 "type" : "string",
27882 "typetext" : "<string>"
27883 },
27884 "comment" : {
27885 "optional" : 1,
27886 "type" : "string",
27887 "typetext" : "<string>"
27888 },
27889 "digest" : {
27890 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27891 "maxLength" : 40,
27892 "optional" : 1,
27893 "type" : "string",
27894 "typetext" : "<string>"
27895 },
27896 "name" : {
27897 "description" : "IP set name.",
27898 "maxLength" : 64,
27899 "minLength" : 2,
27900 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27901 "type" : "string"
27902 },
27903 "node" : {
27904 "description" : "The cluster node name.",
27905 "format" : "pve-node",
27906 "type" : "string",
27907 "typetext" : "<string>"
27908 },
27909 "nomatch" : {
27910 "optional" : 1,
27911 "type" : "boolean",
27912 "typetext" : "<boolean>"
27913 },
27914 "vmid" : {
27915 "description" : "The (unique) ID of the VM.",
27916 "format" : "pve-vmid",
27917 "minimum" : 1,
27918 "type" : "integer",
27919 "typetext" : "<integer> (1 - N)"
27920 }
27921 }
27922 },
27923 "permissions" : {
27924 "check" : [
27925 "perm",
27926 "/vms/{vmid}",
27927 [
27928 "VM.Config.Network"
27929 ]
27930 ]
27931 },
27932 "protected" : 1,
27933 "returns" : {
27934 "type" : "null"
27935 }
27936 }
27937 },
27938 "leaf" : 1,
27939 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
27940 "text" : "{cidr}"
27941 }
27942 ],
44660702
DM
27943 "info" : {
27944 "DELETE" : {
e9cd3bd4 27945 "allowtoken" : 1,
4d47f125 27946 "description" : "Delete IPSet",
44660702 27947 "method" : "DELETE",
4d47f125 27948 "name" : "delete_ipset",
56122987 27949 "parameters" : {
44660702 27950 "additionalProperties" : 0,
56122987 27951 "properties" : {
7aacca6f 27952 "name" : {
4d47f125 27953 "description" : "IP set name.",
7aacca6f 27954 "maxLength" : 64,
7aacca6f
DM
27955 "minLength" : 2,
27956 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 27957 "type" : "string"
7aacca6f
DM
27958 },
27959 "node" : {
44660702 27960 "description" : "The cluster node name.",
56122987 27961 "format" : "pve-node",
013dc89f
DM
27962 "type" : "string",
27963 "typetext" : "<string>"
7aacca6f 27964 },
56122987 27965 "vmid" : {
44660702 27966 "description" : "The (unique) ID of the VM.",
56122987 27967 "format" : "pve-vmid",
44660702 27968 "minimum" : 1,
4bd7df8b 27969 "type" : "integer",
013dc89f 27970 "typetext" : "<integer> (1 - N)"
56122987 27971 }
44660702 27972 }
56122987 27973 },
56122987
DM
27974 "permissions" : {
27975 "check" : [
27976 "perm",
27977 "/vms/{vmid}",
27978 [
7aacca6f 27979 "VM.Config.Network"
56122987
DM
27980 ]
27981 ]
27982 },
44660702 27983 "protected" : 1,
56122987 27984 "returns" : {
7aacca6f 27985 "type" : "null"
44660702 27986 }
56122987 27987 },
44660702 27988 "GET" : {
e9cd3bd4 27989 "allowtoken" : 1,
4d47f125 27990 "description" : "List IPSet content",
44660702 27991 "method" : "GET",
4d47f125 27992 "name" : "get_ipset",
44660702
DM
27993 "parameters" : {
27994 "additionalProperties" : 0,
27995 "properties" : {
27996 "name" : {
4d47f125 27997 "description" : "IP set name.",
44660702
DM
27998 "maxLength" : 64,
27999 "minLength" : 2,
28000 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28001 "type" : "string"
28002 },
28003 "node" : {
28004 "description" : "The cluster node name.",
28005 "format" : "pve-node",
013dc89f
DM
28006 "type" : "string",
28007 "typetext" : "<string>"
44660702
DM
28008 },
28009 "vmid" : {
28010 "description" : "The (unique) ID of the VM.",
28011 "format" : "pve-vmid",
28012 "minimum" : 1,
4bd7df8b 28013 "type" : "integer",
013dc89f 28014 "typetext" : "<integer> (1 - N)"
44660702 28015 }
4d47f125
TL
28016 }
28017 },
28018 "permissions" : {
28019 "check" : [
28020 "perm",
28021 "/vms/{vmid}",
28022 [
28023 "VM.Audit"
28024 ]
28025 ]
28026 },
28027 "returns" : {
28028 "items" : {
28029 "properties" : {
28030 "cidr" : {
28031 "type" : "string"
28032 },
28033 "comment" : {
28034 "optional" : 1,
28035 "type" : "string"
28036 },
28037 "digest" : {
28038 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28039 "maxLength" : 40,
28040 "optional" : 0,
28041 "type" : "string"
28042 },
28043 "nomatch" : {
28044 "optional" : 1,
28045 "type" : "boolean"
28046 }
28047 },
28048 "type" : "object"
28049 },
28050 "links" : [
28051 {
28052 "href" : "{cidr}",
28053 "rel" : "child"
28054 }
28055 ],
28056 "type" : "array"
44660702
DM
28057 }
28058 },
4d47f125 28059 "POST" : {
e9cd3bd4 28060 "allowtoken" : 1,
4d47f125
TL
28061 "description" : "Add IP or Network to IPSet.",
28062 "method" : "POST",
28063 "name" : "create_ip",
56122987
DM
28064 "parameters" : {
28065 "additionalProperties" : 0,
28066 "properties" : {
44660702
DM
28067 "cidr" : {
28068 "description" : "Network/IP specification in CIDR format.",
4d47f125 28069 "format" : "IPorCIDRorAlias",
013dc89f
DM
28070 "type" : "string",
28071 "typetext" : "<string>"
44660702
DM
28072 },
28073 "comment" : {
28074 "optional" : 1,
013dc89f
DM
28075 "type" : "string",
28076 "typetext" : "<string>"
44660702 28077 },
56122987 28078 "name" : {
4d47f125 28079 "description" : "IP set name.",
44660702
DM
28080 "maxLength" : 64,
28081 "minLength" : 2,
7aacca6f 28082 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 28083 "type" : "string"
56122987
DM
28084 },
28085 "node" : {
28086 "description" : "The cluster node name.",
44660702 28087 "format" : "pve-node",
013dc89f
DM
28088 "type" : "string",
28089 "typetext" : "<string>"
44660702 28090 },
4d47f125 28091 "nomatch" : {
44660702 28092 "optional" : 1,
4d47f125
TL
28093 "type" : "boolean",
28094 "typetext" : "<boolean>"
56122987 28095 },
7aacca6f 28096 "vmid" : {
7aacca6f 28097 "description" : "The (unique) ID of the VM.",
44660702 28098 "format" : "pve-vmid",
7aacca6f 28099 "minimum" : 1,
4bd7df8b 28100 "type" : "integer",
013dc89f 28101 "typetext" : "<integer> (1 - N)"
56122987
DM
28102 }
28103 }
28104 },
44660702
DM
28105 "permissions" : {
28106 "check" : [
28107 "perm",
28108 "/vms/{vmid}",
28109 [
28110 "VM.Config.Network"
28111 ]
28112 ]
7aacca6f 28113 },
44660702
DM
28114 "protected" : 1,
28115 "returns" : {
28116 "type" : "null"
7aacca6f
DM
28117 }
28118 }
28119 },
4d47f125
TL
28120 "leaf" : 0,
28121 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
44660702
DM
28122 "text" : "{name}"
28123 }
28124 ],
28125 "info" : {
28126 "GET" : {
e9cd3bd4 28127 "allowtoken" : 1,
4d47f125 28128 "description" : "List IPSets",
44660702 28129 "method" : "GET",
4d47f125 28130 "name" : "ipset_index",
56122987
DM
28131 "parameters" : {
28132 "additionalProperties" : 0,
28133 "properties" : {
28134 "node" : {
44660702 28135 "description" : "The cluster node name.",
56122987 28136 "format" : "pve-node",
013dc89f
DM
28137 "type" : "string",
28138 "typetext" : "<string>"
56122987
DM
28139 },
28140 "vmid" : {
7aacca6f 28141 "description" : "The (unique) ID of the VM.",
44660702 28142 "format" : "pve-vmid",
7aacca6f 28143 "minimum" : 1,
4bd7df8b 28144 "type" : "integer",
013dc89f 28145 "typetext" : "<integer> (1 - N)"
56122987
DM
28146 }
28147 }
28148 },
44660702
DM
28149 "permissions" : {
28150 "check" : [
28151 "perm",
28152 "/vms/{vmid}",
28153 [
28154 "VM.Audit"
28155 ]
28156 ]
28157 },
56122987
DM
28158 "returns" : {
28159 "items" : {
56122987 28160 "properties" : {
44660702
DM
28161 "comment" : {
28162 "optional" : 1,
56122987
DM
28163 "type" : "string"
28164 },
56122987 28165 "digest" : {
56122987 28166 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
28167 "maxLength" : 40,
28168 "optional" : 0,
28169 "type" : "string"
28170 },
28171 "name" : {
4d47f125
TL
28172 "description" : "IP set name.",
28173 "maxLength" : 64,
28174 "minLength" : 2,
28175 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 28176 "type" : "string"
56122987 28177 }
44660702
DM
28178 },
28179 "type" : "object"
28180 },
28181 "links" : [
28182 {
28183 "href" : "{name}",
28184 "rel" : "child"
56122987 28185 }
4d47f125
TL
28186 ],
28187 "type" : "array"
28188 }
28189 },
28190 "POST" : {
e9cd3bd4 28191 "allowtoken" : 1,
4d47f125
TL
28192 "description" : "Create new IPSet",
28193 "method" : "POST",
28194 "name" : "create_ipset",
28195 "parameters" : {
28196 "additionalProperties" : 0,
28197 "properties" : {
28198 "comment" : {
28199 "optional" : 1,
28200 "type" : "string",
28201 "typetext" : "<string>"
28202 },
28203 "digest" : {
28204 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28205 "maxLength" : 40,
28206 "optional" : 1,
28207 "type" : "string",
28208 "typetext" : "<string>"
28209 },
28210 "name" : {
28211 "description" : "IP set name.",
28212 "maxLength" : 64,
28213 "minLength" : 2,
28214 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28215 "type" : "string"
28216 },
28217 "node" : {
28218 "description" : "The cluster node name.",
28219 "format" : "pve-node",
28220 "type" : "string",
28221 "typetext" : "<string>"
28222 },
28223 "rename" : {
28224 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
28225 "maxLength" : 64,
28226 "minLength" : 2,
28227 "optional" : 1,
28228 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28229 "type" : "string"
28230 },
28231 "vmid" : {
28232 "description" : "The (unique) ID of the VM.",
28233 "format" : "pve-vmid",
28234 "minimum" : 1,
28235 "type" : "integer",
28236 "typetext" : "<integer> (1 - N)"
28237 }
28238 }
28239 },
28240 "permissions" : {
28241 "check" : [
28242 "perm",
28243 "/vms/{vmid}",
28244 [
28245 "VM.Config.Network"
28246 ]
28247 ]
28248 },
28249 "protected" : 1,
28250 "returns" : {
28251 "type" : "null"
28252 }
28253 }
28254 },
28255 "leaf" : 0,
28256 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
28257 "text" : "ipset"
28258 },
28259 {
28260 "info" : {
28261 "GET" : {
e9cd3bd4 28262 "allowtoken" : 1,
4d47f125
TL
28263 "description" : "Get VM firewall options.",
28264 "method" : "GET",
28265 "name" : "get_options",
28266 "parameters" : {
28267 "additionalProperties" : 0,
28268 "properties" : {
28269 "node" : {
28270 "description" : "The cluster node name.",
28271 "format" : "pve-node",
28272 "type" : "string",
28273 "typetext" : "<string>"
28274 },
28275 "vmid" : {
28276 "description" : "The (unique) ID of the VM.",
28277 "format" : "pve-vmid",
28278 "minimum" : 1,
28279 "type" : "integer",
28280 "typetext" : "<integer> (1 - N)"
28281 }
28282 }
28283 },
28284 "permissions" : {
28285 "check" : [
28286 "perm",
28287 "/vms/{vmid}",
28288 [
28289 "VM.Audit"
28290 ]
28291 ]
28292 },
28293 "proxyto" : "node",
28294 "returns" : {
28295 "properties" : {
28296 "dhcp" : {
5c1699e5 28297 "default" : 0,
4d47f125
TL
28298 "description" : "Enable DHCP.",
28299 "optional" : 1,
28300 "type" : "boolean"
28301 },
28302 "enable" : {
5c1699e5 28303 "default" : 0,
4d47f125
TL
28304 "description" : "Enable/disable firewall rules.",
28305 "optional" : 1,
28306 "type" : "boolean"
28307 },
28308 "ipfilter" : {
28309 "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.",
28310 "optional" : 1,
28311 "type" : "boolean"
28312 },
28313 "log_level_in" : {
28314 "description" : "Log level for incoming traffic.",
28315 "enum" : [
28316 "emerg",
28317 "alert",
28318 "crit",
28319 "err",
28320 "warning",
28321 "notice",
28322 "info",
28323 "debug",
28324 "nolog"
28325 ],
28326 "optional" : 1,
28327 "type" : "string"
28328 },
28329 "log_level_out" : {
28330 "description" : "Log level for outgoing traffic.",
28331 "enum" : [
28332 "emerg",
28333 "alert",
28334 "crit",
28335 "err",
28336 "warning",
28337 "notice",
28338 "info",
28339 "debug",
28340 "nolog"
28341 ],
28342 "optional" : 1,
28343 "type" : "string"
28344 },
28345 "macfilter" : {
5c1699e5 28346 "default" : 0,
4d47f125
TL
28347 "description" : "Enable/disable MAC address filter.",
28348 "optional" : 1,
28349 "type" : "boolean"
28350 },
28351 "ndp" : {
5c1699e5
TL
28352 "default" : 0,
28353 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
28354 "optional" : 1,
28355 "type" : "boolean"
28356 },
28357 "policy_in" : {
28358 "description" : "Input policy.",
28359 "enum" : [
28360 "ACCEPT",
28361 "REJECT",
28362 "DROP"
28363 ],
28364 "optional" : 1,
28365 "type" : "string"
28366 },
28367 "policy_out" : {
28368 "description" : "Output policy.",
28369 "enum" : [
28370 "ACCEPT",
28371 "REJECT",
28372 "DROP"
28373 ],
28374 "optional" : 1,
28375 "type" : "string"
28376 },
28377 "radv" : {
28378 "description" : "Allow sending Router Advertisement.",
28379 "optional" : 1,
28380 "type" : "boolean"
28381 }
28382 },
28383 "type" : "object"
7aacca6f
DM
28384 }
28385 },
4d47f125 28386 "PUT" : {
e9cd3bd4 28387 "allowtoken" : 1,
4d47f125
TL
28388 "description" : "Set Firewall options.",
28389 "method" : "PUT",
28390 "name" : "set_options",
7aacca6f
DM
28391 "parameters" : {
28392 "additionalProperties" : 0,
28393 "properties" : {
4d47f125
TL
28394 "delete" : {
28395 "description" : "A list of settings you want to delete.",
28396 "format" : "pve-configid-list",
7aacca6f 28397 "optional" : 1,
013dc89f
DM
28398 "type" : "string",
28399 "typetext" : "<string>"
7aacca6f 28400 },
4d47f125 28401 "dhcp" : {
5c1699e5 28402 "default" : 0,
4d47f125
TL
28403 "description" : "Enable DHCP.",
28404 "optional" : 1,
28405 "type" : "boolean",
28406 "typetext" : "<boolean>"
7aacca6f 28407 },
4d47f125
TL
28408 "digest" : {
28409 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28410 "maxLength" : 40,
28411 "optional" : 1,
013dc89f
DM
28412 "type" : "string",
28413 "typetext" : "<string>"
7aacca6f 28414 },
4d47f125 28415 "enable" : {
5c1699e5 28416 "default" : 0,
4d47f125
TL
28417 "description" : "Enable/disable firewall rules.",
28418 "optional" : 1,
28419 "type" : "boolean",
28420 "typetext" : "<boolean>"
28421 },
28422 "ipfilter" : {
28423 "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.",
28424 "optional" : 1,
28425 "type" : "boolean",
28426 "typetext" : "<boolean>"
56122987 28427 },
4d47f125
TL
28428 "log_level_in" : {
28429 "description" : "Log level for incoming traffic.",
28430 "enum" : [
28431 "emerg",
28432 "alert",
28433 "crit",
28434 "err",
28435 "warning",
28436 "notice",
28437 "info",
28438 "debug",
28439 "nolog"
28440 ],
28441 "optional" : 1,
28442 "type" : "string"
44660702 28443 },
4d47f125
TL
28444 "log_level_out" : {
28445 "description" : "Log level for outgoing traffic.",
28446 "enum" : [
28447 "emerg",
28448 "alert",
28449 "crit",
28450 "err",
28451 "warning",
28452 "notice",
28453 "info",
28454 "debug",
28455 "nolog"
28456 ],
28457 "optional" : 1,
28458 "type" : "string"
44660702 28459 },
4d47f125 28460 "macfilter" : {
5c1699e5 28461 "default" : 0,
4d47f125
TL
28462 "description" : "Enable/disable MAC address filter.",
28463 "optional" : 1,
28464 "type" : "boolean",
28465 "typetext" : "<boolean>"
7aacca6f 28466 },
4d47f125 28467 "ndp" : {
5c1699e5
TL
28468 "default" : 0,
28469 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
28470 "optional" : 1,
28471 "type" : "boolean",
28472 "typetext" : "<boolean>"
7aacca6f 28473 },
4d47f125
TL
28474 "node" : {
28475 "description" : "The cluster node name.",
28476 "format" : "pve-node",
28477 "type" : "string",
28478 "typetext" : "<string>"
28479 },
28480 "policy_in" : {
28481 "description" : "Input policy.",
28482 "enum" : [
28483 "ACCEPT",
28484 "REJECT",
28485 "DROP"
44660702 28486 ],
4d47f125
TL
28487 "optional" : 1,
28488 "type" : "string"
28489 },
28490 "policy_out" : {
28491 "description" : "Output policy.",
28492 "enum" : [
28493 "ACCEPT",
28494 "REJECT",
28495 "DROP"
28496 ],
28497 "optional" : 1,
28498 "type" : "string"
28499 },
28500 "radv" : {
28501 "description" : "Allow sending Router Advertisement.",
28502 "optional" : 1,
28503 "type" : "boolean",
28504 "typetext" : "<boolean>"
28505 },
28506 "vmid" : {
28507 "description" : "The (unique) ID of the VM.",
28508 "format" : "pve-vmid",
28509 "minimum" : 1,
28510 "type" : "integer",
28511 "typetext" : "<integer> (1 - N)"
44660702 28512 }
4d47f125
TL
28513 }
28514 },
28515 "permissions" : {
28516 "check" : [
28517 "perm",
28518 "/vms/{vmid}",
28519 [
28520 "VM.Config.Network"
28521 ]
28522 ]
28523 },
28524 "protected" : 1,
28525 "proxyto" : "node",
28526 "returns" : {
28527 "type" : "null"
28528 }
28529 }
28530 },
28531 "leaf" : 1,
28532 "path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
28533 "text" : "options"
28534 },
28535 {
28536 "info" : {
28537 "GET" : {
e9cd3bd4 28538 "allowtoken" : 1,
4d47f125
TL
28539 "description" : "Read firewall log",
28540 "method" : "GET",
28541 "name" : "log",
28542 "parameters" : {
28543 "additionalProperties" : 0,
28544 "properties" : {
28545 "limit" : {
28546 "minimum" : 0,
28547 "optional" : 1,
28548 "type" : "integer",
28549 "typetext" : "<integer> (0 - N)"
44660702 28550 },
4d47f125
TL
28551 "node" : {
28552 "description" : "The cluster node name.",
28553 "format" : "pve-node",
28554 "type" : "string",
28555 "typetext" : "<string>"
44660702 28556 },
4d47f125
TL
28557 "start" : {
28558 "minimum" : 0,
28559 "optional" : 1,
28560 "type" : "integer",
28561 "typetext" : "<integer> (0 - N)"
28562 },
28563 "vmid" : {
28564 "description" : "The (unique) ID of the VM.",
28565 "format" : "pve-vmid",
28566 "minimum" : 1,
28567 "type" : "integer",
28568 "typetext" : "<integer> (1 - N)"
44660702
DM
28569 }
28570 }
28571 },
4d47f125
TL
28572 "permissions" : {
28573 "check" : [
28574 "perm",
28575 "/vms/{vmid}",
28576 [
28577 "VM.Console"
28578 ]
28579 ]
28580 },
28581 "protected" : 1,
28582 "proxyto" : "node",
28583 "returns" : {
28584 "items" : {
28585 "properties" : {
28586 "n" : {
28587 "description" : "Line number",
28588 "type" : "integer"
28589 },
28590 "t" : {
28591 "description" : "Line text",
28592 "type" : "string"
28593 }
28594 },
28595 "type" : "object"
28596 },
28597 "type" : "array"
28598 }
44660702 28599 }
4d47f125
TL
28600 },
28601 "leaf" : 1,
28602 "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
28603 "text" : "log"
28604 },
28605 {
44660702
DM
28606 "info" : {
28607 "GET" : {
e9cd3bd4 28608 "allowtoken" : 1,
4d47f125 28609 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702 28610 "method" : "GET",
4d47f125 28611 "name" : "refs",
44660702
DM
28612 "parameters" : {
28613 "additionalProperties" : 0,
28614 "properties" : {
28615 "node" : {
28616 "description" : "The cluster node name.",
28617 "format" : "pve-node",
013dc89f
DM
28618 "type" : "string",
28619 "typetext" : "<string>"
44660702 28620 },
4d47f125
TL
28621 "type" : {
28622 "description" : "Only list references of specified type.",
28623 "enum" : [
28624 "alias",
28625 "ipset"
28626 ],
28627 "optional" : 1,
28628 "type" : "string"
28629 },
44660702
DM
28630 "vmid" : {
28631 "description" : "The (unique) ID of the VM.",
28632 "format" : "pve-vmid",
28633 "minimum" : 1,
4bd7df8b 28634 "type" : "integer",
013dc89f 28635 "typetext" : "<integer> (1 - N)"
44660702
DM
28636 }
28637 }
28638 },
4d47f125
TL
28639 "permissions" : {
28640 "check" : [
28641 "perm",
28642 "/vms/{vmid}",
28643 [
28644 "VM.Audit"
28645 ]
28646 ]
28647 },
28648 "returns" : {
28649 "items" : {
28650 "properties" : {
28651 "comment" : {
28652 "optional" : 1,
28653 "type" : "string"
28654 },
28655 "name" : {
28656 "type" : "string"
28657 },
28658 "type" : {
28659 "enum" : [
28660 "alias",
28661 "ipset"
28662 ],
28663 "type" : "string"
28664 }
28665 },
28666 "type" : "object"
28667 },
28668 "type" : "array"
28669 }
28670 }
28671 },
28672 "leaf" : 1,
28673 "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
28674 "text" : "refs"
28675 }
28676 ],
28677 "info" : {
28678 "GET" : {
e9cd3bd4 28679 "allowtoken" : 1,
4d47f125
TL
28680 "description" : "Directory index.",
28681 "method" : "GET",
28682 "name" : "index",
28683 "parameters" : {
28684 "additionalProperties" : 0,
28685 "properties" : {
28686 "node" : {
28687 "description" : "The cluster node name.",
28688 "format" : "pve-node",
28689 "type" : "string",
28690 "typetext" : "<string>"
28691 },
28692 "vmid" : {
28693 "description" : "The (unique) ID of the VM.",
28694 "format" : "pve-vmid",
28695 "minimum" : 1,
28696 "type" : "integer",
28697 "typetext" : "<integer> (1 - N)"
28698 }
28699 }
28700 },
28701 "permissions" : {
28702 "user" : "all"
28703 },
28704 "returns" : {
28705 "items" : {
28706 "properties" : {},
28707 "type" : "object"
28708 },
28709 "links" : [
28710 {
28711 "href" : "{name}",
28712 "rel" : "child"
28713 }
28714 ],
28715 "type" : "array"
28716 }
28717 }
28718 },
28719 "leaf" : 0,
28720 "path" : "/nodes/{node}/lxc/{vmid}/firewall",
28721 "text" : "firewall"
28722 },
28723 {
28724 "info" : {
28725 "GET" : {
e9cd3bd4 28726 "allowtoken" : 1,
4d47f125
TL
28727 "description" : "Read VM RRD statistics (returns PNG)",
28728 "method" : "GET",
28729 "name" : "rrd",
28730 "parameters" : {
28731 "additionalProperties" : 0,
28732 "properties" : {
28733 "cf" : {
28734 "description" : "The RRD consolidation function",
28735 "enum" : [
28736 "AVERAGE",
28737 "MAX"
28738 ],
28739 "optional" : 1,
28740 "type" : "string"
28741 },
28742 "ds" : {
28743 "description" : "The list of datasources you want to display.",
28744 "format" : "pve-configid-list",
28745 "type" : "string",
28746 "typetext" : "<string>"
28747 },
28748 "node" : {
28749 "description" : "The cluster node name.",
28750 "format" : "pve-node",
28751 "type" : "string",
28752 "typetext" : "<string>"
28753 },
28754 "timeframe" : {
28755 "description" : "Specify the time frame you are interested in.",
28756 "enum" : [
28757 "hour",
28758 "day",
28759 "week",
28760 "month",
28761 "year"
28762 ],
28763 "type" : "string"
28764 },
28765 "vmid" : {
28766 "description" : "The (unique) ID of the VM.",
28767 "format" : "pve-vmid",
28768 "minimum" : 1,
28769 "type" : "integer",
28770 "typetext" : "<integer> (1 - N)"
28771 }
28772 }
28773 },
28774 "permissions" : {
28775 "check" : [
28776 "perm",
28777 "/vms/{vmid}",
28778 [
28779 "VM.Audit"
28780 ]
28781 ]
28782 },
28783 "protected" : 1,
28784 "returns" : {
28785 "properties" : {
28786 "filename" : {
28787 "type" : "string"
28788 }
28789 },
28790 "type" : "object"
28791 }
28792 }
28793 },
28794 "leaf" : 1,
28795 "path" : "/nodes/{node}/lxc/{vmid}/rrd",
28796 "text" : "rrd"
28797 },
28798 {
28799 "info" : {
28800 "GET" : {
e9cd3bd4 28801 "allowtoken" : 1,
4d47f125
TL
28802 "description" : "Read VM RRD statistics",
28803 "method" : "GET",
28804 "name" : "rrddata",
28805 "parameters" : {
28806 "additionalProperties" : 0,
28807 "properties" : {
28808 "cf" : {
28809 "description" : "The RRD consolidation function",
28810 "enum" : [
28811 "AVERAGE",
28812 "MAX"
28813 ],
28814 "optional" : 1,
28815 "type" : "string"
28816 },
28817 "node" : {
28818 "description" : "The cluster node name.",
28819 "format" : "pve-node",
28820 "type" : "string",
28821 "typetext" : "<string>"
44660702 28822 },
4d47f125
TL
28823 "timeframe" : {
28824 "description" : "Specify the time frame you are interested in.",
28825 "enum" : [
28826 "hour",
28827 "day",
28828 "week",
28829 "month",
28830 "year"
44660702 28831 ],
4d47f125
TL
28832 "type" : "string"
28833 },
28834 "vmid" : {
28835 "description" : "The (unique) ID of the VM.",
28836 "format" : "pve-vmid",
28837 "minimum" : 1,
28838 "type" : "integer",
28839 "typetext" : "<integer> (1 - N)"
44660702 28840 }
4d47f125
TL
28841 }
28842 },
28843 "permissions" : {
28844 "check" : [
28845 "perm",
28846 "/vms/{vmid}",
28847 [
28848 "VM.Audit"
28849 ]
28850 ]
28851 },
28852 "protected" : 1,
28853 "returns" : {
28854 "items" : {
28855 "properties" : {},
28856 "type" : "object"
44660702 28857 },
4d47f125
TL
28858 "type" : "array"
28859 }
28860 }
28861 },
28862 "leaf" : 1,
28863 "path" : "/nodes/{node}/lxc/{vmid}/rrddata",
28864 "text" : "rrddata"
28865 },
28866 {
28867 "info" : {
28868 "POST" : {
e9cd3bd4 28869 "allowtoken" : 1,
4d47f125
TL
28870 "description" : "Creates a TCP VNC proxy connections.",
28871 "method" : "POST",
28872 "name" : "vncproxy",
28873 "parameters" : {
28874 "additionalProperties" : 0,
28875 "properties" : {
28876 "height" : {
28877 "description" : "sets the height of the console in pixels.",
28878 "maximum" : 2160,
28879 "minimum" : 16,
28880 "optional" : 1,
28881 "type" : "integer",
28882 "typetext" : "<integer> (16 - 2160)"
44660702 28883 },
4d47f125
TL
28884 "node" : {
28885 "description" : "The cluster node name.",
28886 "format" : "pve-node",
28887 "type" : "string",
28888 "typetext" : "<string>"
44660702 28889 },
4d47f125
TL
28890 "vmid" : {
28891 "description" : "The (unique) ID of the VM.",
28892 "format" : "pve-vmid",
28893 "minimum" : 1,
28894 "type" : "integer",
28895 "typetext" : "<integer> (1 - N)"
28896 },
28897 "websocket" : {
28898 "description" : "use websocket instead of standard VNC.",
28899 "optional" : 1,
28900 "type" : "boolean",
28901 "typetext" : "<boolean>"
28902 },
28903 "width" : {
28904 "description" : "sets the width of the console in pixels.",
28905 "maximum" : 4096,
28906 "minimum" : 16,
28907 "optional" : 1,
28908 "type" : "integer",
28909 "typetext" : "<integer> (16 - 4096)"
56122987
DM
28910 }
28911 }
44660702 28912 },
4d47f125
TL
28913 "permissions" : {
28914 "check" : [
28915 "perm",
28916 "/vms/{vmid}",
28917 [
28918 "VM.Console"
28919 ]
28920 ]
28921 },
28922 "protected" : 1,
28923 "returns" : {
28924 "additionalProperties" : 0,
28925 "properties" : {
28926 "cert" : {
28927 "type" : "string"
44660702 28928 },
4d47f125
TL
28929 "port" : {
28930 "type" : "integer"
28931 },
28932 "ticket" : {
28933 "type" : "string"
28934 },
28935 "upid" : {
28936 "type" : "string"
28937 },
28938 "user" : {
28939 "type" : "string"
28940 }
28941 }
28942 }
28943 }
28944 },
28945 "leaf" : 1,
28946 "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
28947 "text" : "vncproxy"
28948 },
28949 {
28950 "info" : {
28951 "POST" : {
e9cd3bd4 28952 "allowtoken" : 1,
4d47f125
TL
28953 "description" : "Creates a TCP proxy connection.",
28954 "method" : "POST",
28955 "name" : "termproxy",
28956 "parameters" : {
28957 "additionalProperties" : 0,
28958 "properties" : {
28959 "node" : {
28960 "description" : "The cluster node name.",
28961 "format" : "pve-node",
28962 "type" : "string",
28963 "typetext" : "<string>"
44660702 28964 },
4d47f125
TL
28965 "vmid" : {
28966 "description" : "The (unique) ID of the VM.",
28967 "format" : "pve-vmid",
28968 "minimum" : 1,
28969 "type" : "integer",
28970 "typetext" : "<integer> (1 - N)"
44660702 28971 }
4d47f125
TL
28972 }
28973 },
28974 "permissions" : {
28975 "check" : [
28976 "perm",
28977 "/vms/{vmid}",
28978 [
28979 "VM.Console"
28980 ]
28981 ]
28982 },
28983 "protected" : 1,
28984 "returns" : {
28985 "additionalProperties" : 0,
28986 "properties" : {
28987 "port" : {
28988 "type" : "integer"
56122987 28989 },
4d47f125
TL
28990 "ticket" : {
28991 "type" : "string"
7aacca6f 28992 },
4d47f125
TL
28993 "upid" : {
28994 "type" : "string"
28995 },
28996 "user" : {
28997 "type" : "string"
28998 }
28999 }
29000 }
29001 }
29002 },
29003 "leaf" : 1,
29004 "path" : "/nodes/{node}/lxc/{vmid}/termproxy",
29005 "text" : "termproxy"
29006 },
29007 {
29008 "info" : {
29009 "GET" : {
e9cd3bd4 29010 "allowtoken" : 1,
4d47f125
TL
29011 "description" : "Opens a weksocket for VNC traffic.",
29012 "method" : "GET",
29013 "name" : "vncwebsocket",
29014 "parameters" : {
29015 "additionalProperties" : 0,
29016 "properties" : {
29017 "node" : {
29018 "description" : "The cluster node name.",
29019 "format" : "pve-node",
29020 "type" : "string",
29021 "typetext" : "<string>"
29022 },
29023 "port" : {
29024 "description" : "Port number returned by previous vncproxy call.",
29025 "maximum" : 5999,
29026 "minimum" : 5900,
29027 "type" : "integer",
29028 "typetext" : "<integer> (5900 - 5999)"
29029 },
29030 "vmid" : {
29031 "description" : "The (unique) ID of the VM.",
29032 "format" : "pve-vmid",
29033 "minimum" : 1,
29034 "type" : "integer",
29035 "typetext" : "<integer> (1 - N)"
29036 },
29037 "vncticket" : {
29038 "description" : "Ticket from previous call to vncproxy.",
29039 "maxLength" : 512,
29040 "type" : "string",
29041 "typetext" : "<string>"
56122987
DM
29042 }
29043 }
29044 },
4d47f125
TL
29045 "permissions" : {
29046 "check" : [
29047 "perm",
29048 "/vms/{vmid}",
29049 [
29050 "VM.Console"
29051 ]
29052 ],
29053 "description" : "You also need to pass a valid ticket (vncticket)."
29054 },
29055 "returns" : {
29056 "properties" : {
29057 "port" : {
29058 "type" : "string"
29059 }
29060 },
29061 "type" : "object"
29062 }
29063 }
29064 },
29065 "leaf" : 1,
29066 "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
29067 "text" : "vncwebsocket"
29068 },
29069 {
29070 "info" : {
29071 "POST" : {
e9cd3bd4 29072 "allowtoken" : 1,
4d47f125
TL
29073 "description" : "Returns a SPICE configuration to connect to the CT.",
29074 "method" : "POST",
29075 "name" : "spiceproxy",
29076 "parameters" : {
29077 "additionalProperties" : 0,
29078 "properties" : {
29079 "node" : {
29080 "description" : "The cluster node name.",
29081 "format" : "pve-node",
29082 "type" : "string",
29083 "typetext" : "<string>"
56122987 29084 },
4d47f125
TL
29085 "proxy" : {
29086 "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).",
29087 "format" : "address",
29088 "optional" : 1,
29089 "type" : "string",
29090 "typetext" : "<string>"
44660702 29091 },
4d47f125
TL
29092 "vmid" : {
29093 "description" : "The (unique) ID of the VM.",
29094 "format" : "pve-vmid",
29095 "minimum" : 1,
29096 "type" : "integer",
29097 "typetext" : "<integer> (1 - N)"
44660702 29098 }
56122987
DM
29099 }
29100 },
4d47f125
TL
29101 "permissions" : {
29102 "check" : [
29103 "perm",
29104 "/vms/{vmid}",
29105 [
29106 "VM.Console"
29107 ]
29108 ]
29109 },
29110 "protected" : 1,
29111 "proxyto" : "node",
29112 "returns" : {
29113 "additionalProperties" : 1,
29114 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
29115 "properties" : {
29116 "host" : {
29117 "type" : "string"
29118 },
29119 "password" : {
29120 "type" : "string"
29121 },
29122 "proxy" : {
29123 "type" : "string"
29124 },
29125 "tls-port" : {
29126 "type" : "integer"
29127 },
29128 "type" : {
29129 "type" : "string"
29130 }
29131 }
29132 }
29133 }
29134 },
29135 "leaf" : 1,
29136 "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
29137 "text" : "spiceproxy"
29138 },
29139 {
29140 "info" : {
29141 "POST" : {
e9cd3bd4 29142 "allowtoken" : 1,
4d47f125
TL
29143 "description" : "Migrate the container to another node. Creates a new migration task.",
29144 "method" : "POST",
29145 "name" : "migrate_vm",
29146 "parameters" : {
29147 "additionalProperties" : 0,
29148 "properties" : {
95895385
TL
29149 "bwlimit" : {
29150 "default" : "migrate limit from datacenter or storage config",
29151 "description" : "Override I/O bandwidth limit (in KiB/s).",
29152 "minimum" : "0",
29153 "optional" : 1,
29154 "type" : "number",
29155 "typetext" : "<number> (0 - N)"
29156 },
4d47f125
TL
29157 "node" : {
29158 "description" : "The cluster node name.",
29159 "format" : "pve-node",
29160 "type" : "string",
29161 "typetext" : "<string>"
44660702 29162 },
4d47f125
TL
29163 "online" : {
29164 "description" : "Use online/live migration.",
29165 "optional" : 1,
29166 "type" : "boolean",
29167 "typetext" : "<boolean>"
29168 },
29169 "restart" : {
29170 "description" : "Use restart migration",
29171 "optional" : 1,
29172 "type" : "boolean",
29173 "typetext" : "<boolean>"
29174 },
29175 "target" : {
29176 "description" : "Target node.",
29177 "format" : "pve-node",
29178 "type" : "string",
29179 "typetext" : "<string>"
29180 },
29181 "timeout" : {
29182 "default" : 180,
29183 "description" : "Timeout in seconds for shutdown for restart migration",
29184 "optional" : 1,
29185 "type" : "integer",
29186 "typetext" : "<integer>"
29187 },
29188 "vmid" : {
29189 "description" : "The (unique) ID of the VM.",
29190 "format" : "pve-vmid",
29191 "minimum" : 1,
29192 "type" : "integer",
29193 "typetext" : "<integer> (1 - N)"
56122987
DM
29194 }
29195 }
29196 },
4d47f125
TL
29197 "permissions" : {
29198 "check" : [
29199 "perm",
29200 "/vms/{vmid}",
29201 [
29202 "VM.Migrate"
29203 ]
29204 ]
29205 },
29206 "protected" : 1,
29207 "proxyto" : "node",
29208 "returns" : {
29209 "description" : "the task ID.",
29210 "type" : "string"
29211 }
56122987 29212 }
4d47f125
TL
29213 },
29214 "leaf" : 1,
29215 "path" : "/nodes/{node}/lxc/{vmid}/migrate",
29216 "text" : "migrate"
29217 },
29218 {
56122987
DM
29219 "info" : {
29220 "GET" : {
e9cd3bd4 29221 "allowtoken" : 1,
4d47f125 29222 "description" : "Check if feature for virtual machine is available.",
44660702 29223 "method" : "GET",
4d47f125 29224 "name" : "vm_feature",
56122987 29225 "parameters" : {
44660702 29226 "additionalProperties" : 0,
56122987 29227 "properties" : {
4d47f125
TL
29228 "feature" : {
29229 "description" : "Feature to check.",
29230 "enum" : [
29231 "snapshot",
29232 "clone",
29233 "copy"
29234 ],
29235 "type" : "string"
29236 },
56122987 29237 "node" : {
44660702 29238 "description" : "The cluster node name.",
56122987 29239 "format" : "pve-node",
013dc89f
DM
29240 "type" : "string",
29241 "typetext" : "<string>"
44660702 29242 },
4d47f125
TL
29243 "snapname" : {
29244 "description" : "The name of the snapshot.",
29245 "format" : "pve-configid",
29246 "maxLength" : 40,
29247 "optional" : 1,
29248 "type" : "string",
29249 "typetext" : "<string>"
29250 },
44660702
DM
29251 "vmid" : {
29252 "description" : "The (unique) ID of the VM.",
29253 "format" : "pve-vmid",
29254 "minimum" : 1,
4bd7df8b 29255 "type" : "integer",
013dc89f 29256 "typetext" : "<integer> (1 - N)"
56122987 29257 }
44660702
DM
29258 }
29259 },
29260 "permissions" : {
4d47f125
TL
29261 "check" : [
29262 "perm",
29263 "/vms/{vmid}",
29264 [
29265 "VM.Audit"
29266 ]
29267 ]
56122987 29268 },
4d47f125
TL
29269 "protected" : 1,
29270 "proxyto" : "node",
56122987 29271 "returns" : {
4d47f125
TL
29272 "properties" : {
29273 "hasFeature" : {
29274 "type" : "boolean"
29275 }
7aacca6f 29276 },
4d47f125
TL
29277 "type" : "object"
29278 }
29279 }
29280 },
29281 "leaf" : 1,
29282 "path" : "/nodes/{node}/lxc/{vmid}/feature",
29283 "text" : "feature"
29284 },
29285 {
29286 "info" : {
29287 "POST" : {
e9cd3bd4 29288 "allowtoken" : 1,
4d47f125
TL
29289 "description" : "Create a Template.",
29290 "method" : "POST",
29291 "name" : "template",
29292 "parameters" : {
29293 "additionalProperties" : 0,
29294 "properties" : {
29295 "node" : {
29296 "description" : "The cluster node name.",
29297 "format" : "pve-node",
29298 "type" : "string",
29299 "typetext" : "<string>"
29300 },
29301 "vmid" : {
29302 "description" : "The (unique) ID of the VM.",
29303 "format" : "pve-vmid",
29304 "minimum" : 1,
29305 "type" : "integer",
29306 "typetext" : "<integer> (1 - N)"
56122987 29307 }
4d47f125
TL
29308 }
29309 },
29310 "permissions" : {
29311 "check" : [
29312 "perm",
29313 "/vms/{vmid}",
29314 [
29315 "VM.Allocate"
29316 ]
44660702 29317 ],
4d47f125
TL
29318 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
29319 },
29320 "protected" : 1,
29321 "proxyto" : "node",
29322 "returns" : {
29323 "type" : "null"
56122987
DM
29324 }
29325 }
29326 },
4d47f125
TL
29327 "leaf" : 1,
29328 "path" : "/nodes/{node}/lxc/{vmid}/template",
29329 "text" : "template"
56122987
DM
29330 },
29331 {
56122987 29332 "info" : {
4d47f125 29333 "POST" : {
e9cd3bd4 29334 "allowtoken" : 1,
4d47f125
TL
29335 "description" : "Create a container clone/copy",
29336 "method" : "POST",
29337 "name" : "clone_vm",
56122987 29338 "parameters" : {
7aacca6f 29339 "additionalProperties" : 0,
56122987 29340 "properties" : {
95895385
TL
29341 "bwlimit" : {
29342 "default" : "clone limit from datacenter or storage config",
29343 "description" : "Override I/O bandwidth limit (in KiB/s).",
29344 "minimum" : "0",
29345 "optional" : 1,
29346 "type" : "number",
29347 "typetext" : "<number> (0 - N)"
29348 },
4d47f125
TL
29349 "description" : {
29350 "description" : "Description for the new CT.",
44660702 29351 "optional" : 1,
4d47f125
TL
29352 "type" : "string",
29353 "typetext" : "<string>"
44660702 29354 },
4d47f125
TL
29355 "full" : {
29356 "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.",
29357 "optional" : 1,
29358 "type" : "boolean",
29359 "typetext" : "<boolean>"
29360 },
29361 "hostname" : {
29362 "description" : "Set a hostname for the new CT.",
29363 "format" : "dns-name",
29364 "optional" : 1,
013dc89f
DM
29365 "type" : "string",
29366 "typetext" : "<string>"
44660702 29367 },
4d47f125
TL
29368 "newid" : {
29369 "description" : "VMID for the clone.",
29370 "format" : "pve-vmid",
29371 "minimum" : 1,
29372 "type" : "integer",
29373 "typetext" : "<integer> (1 - N)"
29374 },
7aacca6f
DM
29375 "node" : {
29376 "description" : "The cluster node name.",
44660702 29377 "format" : "pve-node",
013dc89f
DM
29378 "type" : "string",
29379 "typetext" : "<string>"
56122987 29380 },
4d47f125
TL
29381 "pool" : {
29382 "description" : "Add the new CT to the specified pool.",
29383 "format" : "pve-poolid",
29384 "optional" : 1,
29385 "type" : "string",
29386 "typetext" : "<string>"
29387 },
29388 "snapname" : {
29389 "description" : "The name of the snapshot.",
29390 "format" : "pve-configid",
29391 "maxLength" : 40,
29392 "optional" : 1,
29393 "type" : "string",
29394 "typetext" : "<string>"
29395 },
29396 "storage" : {
29397 "description" : "Target storage for full clone.",
29398 "format" : "pve-storage-id",
29399 "optional" : 1,
29400 "type" : "string",
29401 "typetext" : "<string>"
29402 },
29403 "target" : {
29404 "description" : "Target node. Only allowed if the original VM is on shared storage.",
29405 "format" : "pve-node",
29406 "optional" : 1,
29407 "type" : "string",
29408 "typetext" : "<string>"
29409 },
7aacca6f 29410 "vmid" : {
44660702 29411 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
29412 "format" : "pve-vmid",
29413 "minimum" : 1,
4bd7df8b 29414 "type" : "integer",
013dc89f 29415 "typetext" : "<integer> (1 - N)"
56122987 29416 }
7aacca6f
DM
29417 }
29418 },
29419 "permissions" : {
29420 "check" : [
4d47f125 29421 "and",
7aacca6f 29422 [
4d47f125
TL
29423 "perm",
29424 "/vms/{vmid}",
29425 [
29426 "VM.Clone"
29427 ]
29428 ],
29429 [
29430 "or",
29431 [
29432 "perm",
29433 "/vms/{newid}",
29434 [
29435 "VM.Allocate"
29436 ]
29437 ],
29438 [
29439 "perm",
29440 "/pool/{pool}",
29441 [
29442 "VM.Allocate"
29443 ],
29444 "require_param",
29445 "pool"
29446 ]
7aacca6f 29447 ]
4d47f125
TL
29448 ],
29449 "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 29450 },
44660702 29451 "protected" : 1,
4d47f125 29452 "proxyto" : "node",
7aacca6f 29453 "returns" : {
4d47f125 29454 "type" : "string"
7aacca6f 29455 }
56122987 29456 }
7aacca6f 29457 },
44660702 29458 "leaf" : 1,
4d47f125
TL
29459 "path" : "/nodes/{node}/lxc/{vmid}/clone",
29460 "text" : "clone"
56122987
DM
29461 },
29462 {
56122987 29463 "info" : {
4d47f125 29464 "PUT" : {
e9cd3bd4 29465 "allowtoken" : 1,
4d47f125
TL
29466 "description" : "Resize a container mount point.",
29467 "method" : "PUT",
29468 "name" : "resize_vm",
56122987 29469 "parameters" : {
7aacca6f 29470 "additionalProperties" : 0,
56122987 29471 "properties" : {
4d47f125
TL
29472 "digest" : {
29473 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29474 "maxLength" : 40,
29475 "optional" : 1,
29476 "type" : "string",
29477 "typetext" : "<string>"
29478 },
29479 "disk" : {
29480 "description" : "The disk you want to resize.",
44660702 29481 "enum" : [
4d47f125
TL
29482 "rootfs",
29483 "mp0",
29484 "mp1",
29485 "mp2",
29486 "mp3",
29487 "mp4",
29488 "mp5",
29489 "mp6",
29490 "mp7",
29491 "mp8",
29492 "mp9",
29493 "mp10",
29494 "mp11",
29495 "mp12",
29496 "mp13",
29497 "mp14",
29498 "mp15",
29499 "mp16",
29500 "mp17",
29501 "mp18",
29502 "mp19",
29503 "mp20",
29504 "mp21",
29505 "mp22",
29506 "mp23",
29507 "mp24",
29508 "mp25",
29509 "mp26",
29510 "mp27",
29511 "mp28",
29512 "mp29",
29513 "mp30",
29514 "mp31",
29515 "mp32",
29516 "mp33",
29517 "mp34",
29518 "mp35",
29519 "mp36",
29520 "mp37",
29521 "mp38",
29522 "mp39",
29523 "mp40",
29524 "mp41",
29525 "mp42",
29526 "mp43",
29527 "mp44",
29528 "mp45",
29529 "mp46",
29530 "mp47",
29531 "mp48",
29532 "mp49",
29533 "mp50",
29534 "mp51",
29535 "mp52",
29536 "mp53",
29537 "mp54",
29538 "mp55",
29539 "mp56",
29540 "mp57",
29541 "mp58",
29542 "mp59",
29543 "mp60",
29544 "mp61",
29545 "mp62",
29546 "mp63",
29547 "mp64",
29548 "mp65",
29549 "mp66",
29550 "mp67",
29551 "mp68",
29552 "mp69",
29553 "mp70",
29554 "mp71",
29555 "mp72",
29556 "mp73",
29557 "mp74",
29558 "mp75",
29559 "mp76",
29560 "mp77",
29561 "mp78",
29562 "mp79",
29563 "mp80",
29564 "mp81",
29565 "mp82",
29566 "mp83",
29567 "mp84",
29568 "mp85",
29569 "mp86",
29570 "mp87",
29571 "mp88",
29572 "mp89",
29573 "mp90",
29574 "mp91",
29575 "mp92",
29576 "mp93",
29577 "mp94",
29578 "mp95",
29579 "mp96",
29580 "mp97",
29581 "mp98",
29582 "mp99",
29583 "mp100",
29584 "mp101",
29585 "mp102",
29586 "mp103",
29587 "mp104",
29588 "mp105",
29589 "mp106",
29590 "mp107",
29591 "mp108",
29592 "mp109",
29593 "mp110",
29594 "mp111",
29595 "mp112",
29596 "mp113",
29597 "mp114",
29598 "mp115",
29599 "mp116",
29600 "mp117",
29601 "mp118",
29602 "mp119",
29603 "mp120",
29604 "mp121",
29605 "mp122",
29606 "mp123",
29607 "mp124",
29608 "mp125",
29609 "mp126",
29610 "mp127",
29611 "mp128",
29612 "mp129",
29613 "mp130",
29614 "mp131",
29615 "mp132",
29616 "mp133",
29617 "mp134",
29618 "mp135",
29619 "mp136",
29620 "mp137",
29621 "mp138",
29622 "mp139",
29623 "mp140",
29624 "mp141",
29625 "mp142",
29626 "mp143",
29627 "mp144",
29628 "mp145",
29629 "mp146",
29630 "mp147",
29631 "mp148",
29632 "mp149",
29633 "mp150",
29634 "mp151",
29635 "mp152",
29636 "mp153",
29637 "mp154",
29638 "mp155",
29639 "mp156",
29640 "mp157",
29641 "mp158",
29642 "mp159",
29643 "mp160",
29644 "mp161",
29645 "mp162",
29646 "mp163",
29647 "mp164",
29648 "mp165",
29649 "mp166",
29650 "mp167",
29651 "mp168",
29652 "mp169",
29653 "mp170",
29654 "mp171",
29655 "mp172",
29656 "mp173",
29657 "mp174",
29658 "mp175",
29659 "mp176",
29660 "mp177",
29661 "mp178",
29662 "mp179",
29663 "mp180",
29664 "mp181",
29665 "mp182",
29666 "mp183",
29667 "mp184",
29668 "mp185",
29669 "mp186",
29670 "mp187",
29671 "mp188",
29672 "mp189",
29673 "mp190",
29674 "mp191",
29675 "mp192",
29676 "mp193",
29677 "mp194",
29678 "mp195",
29679 "mp196",
29680 "mp197",
29681 "mp198",
29682 "mp199",
29683 "mp200",
29684 "mp201",
29685 "mp202",
29686 "mp203",
29687 "mp204",
29688 "mp205",
29689 "mp206",
29690 "mp207",
29691 "mp208",
29692 "mp209",
29693 "mp210",
29694 "mp211",
29695 "mp212",
29696 "mp213",
29697 "mp214",
29698 "mp215",
29699 "mp216",
29700 "mp217",
29701 "mp218",
29702 "mp219",
29703 "mp220",
29704 "mp221",
29705 "mp222",
29706 "mp223",
29707 "mp224",
29708 "mp225",
29709 "mp226",
29710 "mp227",
29711 "mp228",
29712 "mp229",
29713 "mp230",
29714 "mp231",
29715 "mp232",
29716 "mp233",
29717 "mp234",
29718 "mp235",
29719 "mp236",
29720 "mp237",
29721 "mp238",
29722 "mp239",
29723 "mp240",
29724 "mp241",
29725 "mp242",
29726 "mp243",
29727 "mp244",
29728 "mp245",
29729 "mp246",
29730 "mp247",
29731 "mp248",
29732 "mp249",
29733 "mp250",
29734 "mp251",
29735 "mp252",
29736 "mp253",
29737 "mp254",
29738 "mp255"
44660702 29739 ],
44660702
DM
29740 "type" : "string"
29741 },
7aacca6f 29742 "node" : {
44660702 29743 "description" : "The cluster node name.",
7aacca6f 29744 "format" : "pve-node",
013dc89f
DM
29745 "type" : "string",
29746 "typetext" : "<string>"
7aacca6f 29747 },
4d47f125
TL
29748 "size" : {
29749 "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.",
29750 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
44660702 29751 "type" : "string"
7aacca6f
DM
29752 },
29753 "vmid" : {
29754 "description" : "The (unique) ID of the VM.",
44660702 29755 "format" : "pve-vmid",
7aacca6f 29756 "minimum" : 1,
4bd7df8b 29757 "type" : "integer",
013dc89f 29758 "typetext" : "<integer> (1 - N)"
56122987 29759 }
56122987
DM
29760 }
29761 },
56122987
DM
29762 "permissions" : {
29763 "check" : [
29764 "perm",
29765 "/vms/{vmid}",
29766 [
4d47f125
TL
29767 "VM.Config.Disk"
29768 ],
29769 "any",
29770 1
56122987
DM
29771 ]
29772 },
7aacca6f 29773 "protected" : 1,
4d47f125 29774 "proxyto" : "node",
7aacca6f 29775 "returns" : {
4d47f125
TL
29776 "description" : "the task ID.",
29777 "type" : "string"
44660702 29778 }
56122987
DM
29779 }
29780 },
44660702 29781 "leaf" : 1,
4d47f125
TL
29782 "path" : "/nodes/{node}/lxc/{vmid}/resize",
29783 "text" : "resize"
56122987
DM
29784 },
29785 {
29786 "info" : {
29787 "POST" : {
e9cd3bd4 29788 "allowtoken" : 1,
5370fa8c 29789 "description" : "Move a rootfs-/mp-volume to a different storage or to a different container.",
44660702 29790 "method" : "POST",
4d47f125 29791 "name" : "move_volume",
7aacca6f 29792 "parameters" : {
44660702 29793 "additionalProperties" : 0,
7aacca6f 29794 "properties" : {
95895385
TL
29795 "bwlimit" : {
29796 "default" : "clone limit from datacenter or storage config",
29797 "description" : "Override I/O bandwidth limit (in KiB/s).",
29798 "minimum" : "0",
29799 "optional" : 1,
29800 "type" : "number",
29801 "typetext" : "<number> (0 - N)"
29802 },
4d47f125
TL
29803 "delete" : {
29804 "default" : 0,
29805 "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.",
5d9c884c 29806 "optional" : 1,
4d47f125
TL
29807 "type" : "boolean",
29808 "typetext" : "<boolean>"
29809 },
29810 "digest" : {
5370fa8c 29811 "description" : "Prevent changes if current configuration file has different SHA1 \" .\n\t\t \"digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
29812 "maxLength" : 40,
29813 "optional" : 1,
29814 "type" : "string",
29815 "typetext" : "<string>"
5d9c884c 29816 },
44660702
DM
29817 "node" : {
29818 "description" : "The cluster node name.",
29819 "format" : "pve-node",
013dc89f
DM
29820 "type" : "string",
29821 "typetext" : "<string>"
44660702 29822 },
4d47f125
TL
29823 "storage" : {
29824 "description" : "Target Storage.",
29825 "format" : "pve-storage-id",
5370fa8c 29826 "optional" : 1,
4d47f125
TL
29827 "type" : "string",
29828 "typetext" : "<string>"
29829 },
5370fa8c
TL
29830 "target-digest" : {
29831 "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.",
29832 "maxLength" : 40,
29833 "optional" : 1,
29834 "type" : "string",
29835 "typetext" : "<string>"
29836 },
29837 "target-vmid" : {
44660702 29838 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
29839 "format" : "pve-vmid",
29840 "minimum" : 1,
5370fa8c 29841 "optional" : 1,
4bd7df8b 29842 "type" : "integer",
013dc89f 29843 "typetext" : "<integer> (1 - N)"
7aacca6f 29844 },
5370fa8c
TL
29845 "target-volume" : {
29846 "description" : "The config key the volume will be moved to. Default is the source volume key.",
4d47f125
TL
29847 "enum" : [
29848 "rootfs",
29849 "mp0",
29850 "mp1",
29851 "mp2",
29852 "mp3",
29853 "mp4",
29854 "mp5",
29855 "mp6",
29856 "mp7",
29857 "mp8",
29858 "mp9",
29859 "mp10",
29860 "mp11",
29861 "mp12",
29862 "mp13",
29863 "mp14",
29864 "mp15",
29865 "mp16",
29866 "mp17",
29867 "mp18",
29868 "mp19",
29869 "mp20",
29870 "mp21",
29871 "mp22",
29872 "mp23",
29873 "mp24",
29874 "mp25",
29875 "mp26",
29876 "mp27",
29877 "mp28",
29878 "mp29",
29879 "mp30",
29880 "mp31",
29881 "mp32",
29882 "mp33",
29883 "mp34",
29884 "mp35",
29885 "mp36",
29886 "mp37",
29887 "mp38",
29888 "mp39",
29889 "mp40",
29890 "mp41",
29891 "mp42",
29892 "mp43",
29893 "mp44",
29894 "mp45",
29895 "mp46",
29896 "mp47",
29897 "mp48",
29898 "mp49",
29899 "mp50",
29900 "mp51",
29901 "mp52",
29902 "mp53",
29903 "mp54",
29904 "mp55",
29905 "mp56",
29906 "mp57",
29907 "mp58",
29908 "mp59",
29909 "mp60",
29910 "mp61",
29911 "mp62",
29912 "mp63",
29913 "mp64",
29914 "mp65",
29915 "mp66",
29916 "mp67",
29917 "mp68",
29918 "mp69",
29919 "mp70",
29920 "mp71",
29921 "mp72",
29922 "mp73",
29923 "mp74",
29924 "mp75",
29925 "mp76",
29926 "mp77",
29927 "mp78",
29928 "mp79",
29929 "mp80",
29930 "mp81",
29931 "mp82",
29932 "mp83",
29933 "mp84",
29934 "mp85",
29935 "mp86",
29936 "mp87",
29937 "mp88",
29938 "mp89",
29939 "mp90",
29940 "mp91",
29941 "mp92",
29942 "mp93",
29943 "mp94",
29944 "mp95",
29945 "mp96",
29946 "mp97",
29947 "mp98",
29948 "mp99",
29949 "mp100",
29950 "mp101",
29951 "mp102",
29952 "mp103",
29953 "mp104",
29954 "mp105",
29955 "mp106",
29956 "mp107",
29957 "mp108",
29958 "mp109",
29959 "mp110",
29960 "mp111",
29961 "mp112",
29962 "mp113",
29963 "mp114",
29964 "mp115",
29965 "mp116",
29966 "mp117",
29967 "mp118",
29968 "mp119",
29969 "mp120",
29970 "mp121",
29971 "mp122",
29972 "mp123",
29973 "mp124",
29974 "mp125",
29975 "mp126",
29976 "mp127",
29977 "mp128",
29978 "mp129",
29979 "mp130",
29980 "mp131",
29981 "mp132",
29982 "mp133",
29983 "mp134",
29984 "mp135",
29985 "mp136",
29986 "mp137",
29987 "mp138",
29988 "mp139",
29989 "mp140",
29990 "mp141",
29991 "mp142",
29992 "mp143",
29993 "mp144",
29994 "mp145",
29995 "mp146",
29996 "mp147",
29997 "mp148",
29998 "mp149",
29999 "mp150",
30000 "mp151",
30001 "mp152",
30002 "mp153",
30003 "mp154",
30004 "mp155",
30005 "mp156",
30006 "mp157",
30007 "mp158",
30008 "mp159",
30009 "mp160",
30010 "mp161",
30011 "mp162",
30012 "mp163",
30013 "mp164",
30014 "mp165",
30015 "mp166",
30016 "mp167",
30017 "mp168",
30018 "mp169",
30019 "mp170",
30020 "mp171",
30021 "mp172",
30022 "mp173",
30023 "mp174",
30024 "mp175",
30025 "mp176",
30026 "mp177",
30027 "mp178",
30028 "mp179",
30029 "mp180",
30030 "mp181",
30031 "mp182",
30032 "mp183",
30033 "mp184",
30034 "mp185",
30035 "mp186",
30036 "mp187",
30037 "mp188",
30038 "mp189",
30039 "mp190",
30040 "mp191",
30041 "mp192",
30042 "mp193",
30043 "mp194",
30044 "mp195",
30045 "mp196",
30046 "mp197",
30047 "mp198",
30048 "mp199",
30049 "mp200",
30050 "mp201",
30051 "mp202",
30052 "mp203",
30053 "mp204",
30054 "mp205",
30055 "mp206",
30056 "mp207",
30057 "mp208",
30058 "mp209",
30059 "mp210",
30060 "mp211",
30061 "mp212",
30062 "mp213",
30063 "mp214",
30064 "mp215",
30065 "mp216",
30066 "mp217",
30067 "mp218",
30068 "mp219",
30069 "mp220",
30070 "mp221",
30071 "mp222",
30072 "mp223",
30073 "mp224",
30074 "mp225",
30075 "mp226",
30076 "mp227",
30077 "mp228",
30078 "mp229",
30079 "mp230",
30080 "mp231",
30081 "mp232",
30082 "mp233",
30083 "mp234",
30084 "mp235",
30085 "mp236",
30086 "mp237",
30087 "mp238",
30088 "mp239",
30089 "mp240",
30090 "mp241",
30091 "mp242",
30092 "mp243",
30093 "mp244",
30094 "mp245",
30095 "mp246",
30096 "mp247",
30097 "mp248",
30098 "mp249",
30099 "mp250",
30100 "mp251",
30101 "mp252",
30102 "mp253",
30103 "mp254",
5370fa8c
TL
30104 "mp255",
30105 "unused0",
30106 "unused1",
30107 "unused2",
30108 "unused3",
30109 "unused4",
30110 "unused5",
30111 "unused6",
30112 "unused7",
30113 "unused8",
30114 "unused9",
30115 "unused10",
30116 "unused11",
30117 "unused12",
30118 "unused13",
30119 "unused14",
30120 "unused15",
30121 "unused16",
30122 "unused17",
30123 "unused18",
30124 "unused19",
30125 "unused20",
30126 "unused21",
30127 "unused22",
30128 "unused23",
30129 "unused24",
30130 "unused25",
30131 "unused26",
30132 "unused27",
30133 "unused28",
30134 "unused29",
30135 "unused30",
30136 "unused31",
30137 "unused32",
30138 "unused33",
30139 "unused34",
30140 "unused35",
30141 "unused36",
30142 "unused37",
30143 "unused38",
30144 "unused39",
30145 "unused40",
30146 "unused41",
30147 "unused42",
30148 "unused43",
30149 "unused44",
30150 "unused45",
30151 "unused46",
30152 "unused47",
30153 "unused48",
30154 "unused49",
30155 "unused50",
30156 "unused51",
30157 "unused52",
30158 "unused53",
30159 "unused54",
30160 "unused55",
30161 "unused56",
30162 "unused57",
30163 "unused58",
30164 "unused59",
30165 "unused60",
30166 "unused61",
30167 "unused62",
30168 "unused63",
30169 "unused64",
30170 "unused65",
30171 "unused66",
30172 "unused67",
30173 "unused68",
30174 "unused69",
30175 "unused70",
30176 "unused71",
30177 "unused72",
30178 "unused73",
30179 "unused74",
30180 "unused75",
30181 "unused76",
30182 "unused77",
30183 "unused78",
30184 "unused79",
30185 "unused80",
30186 "unused81",
30187 "unused82",
30188 "unused83",
30189 "unused84",
30190 "unused85",
30191 "unused86",
30192 "unused87",
30193 "unused88",
30194 "unused89",
30195 "unused90",
30196 "unused91",
30197 "unused92",
30198 "unused93",
30199 "unused94",
30200 "unused95",
30201 "unused96",
30202 "unused97",
30203 "unused98",
30204 "unused99",
30205 "unused100",
30206 "unused101",
30207 "unused102",
30208 "unused103",
30209 "unused104",
30210 "unused105",
30211 "unused106",
30212 "unused107",
30213 "unused108",
30214 "unused109",
30215 "unused110",
30216 "unused111",
30217 "unused112",
30218 "unused113",
30219 "unused114",
30220 "unused115",
30221 "unused116",
30222 "unused117",
30223 "unused118",
30224 "unused119",
30225 "unused120",
30226 "unused121",
30227 "unused122",
30228 "unused123",
30229 "unused124",
30230 "unused125",
30231 "unused126",
30232 "unused127",
30233 "unused128",
30234 "unused129",
30235 "unused130",
30236 "unused131",
30237 "unused132",
30238 "unused133",
30239 "unused134",
30240 "unused135",
30241 "unused136",
30242 "unused137",
30243 "unused138",
30244 "unused139",
30245 "unused140",
30246 "unused141",
30247 "unused142",
30248 "unused143",
30249 "unused144",
30250 "unused145",
30251 "unused146",
30252 "unused147",
30253 "unused148",
30254 "unused149",
30255 "unused150",
30256 "unused151",
30257 "unused152",
30258 "unused153",
30259 "unused154",
30260 "unused155",
30261 "unused156",
30262 "unused157",
30263 "unused158",
30264 "unused159",
30265 "unused160",
30266 "unused161",
30267 "unused162",
30268 "unused163",
30269 "unused164",
30270 "unused165",
30271 "unused166",
30272 "unused167",
30273 "unused168",
30274 "unused169",
30275 "unused170",
30276 "unused171",
30277 "unused172",
30278 "unused173",
30279 "unused174",
30280 "unused175",
30281 "unused176",
30282 "unused177",
30283 "unused178",
30284 "unused179",
30285 "unused180",
30286 "unused181",
30287 "unused182",
30288 "unused183",
30289 "unused184",
30290 "unused185",
30291 "unused186",
30292 "unused187",
30293 "unused188",
30294 "unused189",
30295 "unused190",
30296 "unused191",
30297 "unused192",
30298 "unused193",
30299 "unused194",
30300 "unused195",
30301 "unused196",
30302 "unused197",
30303 "unused198",
30304 "unused199",
30305 "unused200",
30306 "unused201",
30307 "unused202",
30308 "unused203",
30309 "unused204",
30310 "unused205",
30311 "unused206",
30312 "unused207",
30313 "unused208",
30314 "unused209",
30315 "unused210",
30316 "unused211",
30317 "unused212",
30318 "unused213",
30319 "unused214",
30320 "unused215",
30321 "unused216",
30322 "unused217",
30323 "unused218",
30324 "unused219",
30325 "unused220",
30326 "unused221",
30327 "unused222",
30328 "unused223",
30329 "unused224",
30330 "unused225",
30331 "unused226",
30332 "unused227",
30333 "unused228",
30334 "unused229",
30335 "unused230",
30336 "unused231",
30337 "unused232",
30338 "unused233",
30339 "unused234",
30340 "unused235",
30341 "unused236",
30342 "unused237",
30343 "unused238",
30344 "unused239",
30345 "unused240",
30346 "unused241",
30347 "unused242",
30348 "unused243",
30349 "unused244",
30350 "unused245",
30351 "unused246",
30352 "unused247",
30353 "unused248",
30354 "unused249",
30355 "unused250",
30356 "unused251",
30357 "unused252",
30358 "unused253",
30359 "unused254",
30360 "unused255"
30361 ],
30362 "optional" : 1,
30363 "type" : "string"
30364 },
30365 "vmid" : {
30366 "description" : "The (unique) ID of the VM.",
30367 "format" : "pve-vmid",
30368 "minimum" : 1,
30369 "type" : "integer",
30370 "typetext" : "<integer> (1 - N)"
30371 },
30372 "volume" : {
30373 "description" : "Volume which will be moved.",
30374 "enum" : [
30375 "rootfs",
30376 "mp0",
30377 "mp1",
30378 "mp2",
30379 "mp3",
30380 "mp4",
30381 "mp5",
30382 "mp6",
30383 "mp7",
30384 "mp8",
30385 "mp9",
30386 "mp10",
30387 "mp11",
30388 "mp12",
30389 "mp13",
30390 "mp14",
30391 "mp15",
30392 "mp16",
30393 "mp17",
30394 "mp18",
30395 "mp19",
30396 "mp20",
30397 "mp21",
30398 "mp22",
30399 "mp23",
30400 "mp24",
30401 "mp25",
30402 "mp26",
30403 "mp27",
30404 "mp28",
30405 "mp29",
30406 "mp30",
30407 "mp31",
30408 "mp32",
30409 "mp33",
30410 "mp34",
30411 "mp35",
30412 "mp36",
30413 "mp37",
30414 "mp38",
30415 "mp39",
30416 "mp40",
30417 "mp41",
30418 "mp42",
30419 "mp43",
30420 "mp44",
30421 "mp45",
30422 "mp46",
30423 "mp47",
30424 "mp48",
30425 "mp49",
30426 "mp50",
30427 "mp51",
30428 "mp52",
30429 "mp53",
30430 "mp54",
30431 "mp55",
30432 "mp56",
30433 "mp57",
30434 "mp58",
30435 "mp59",
30436 "mp60",
30437 "mp61",
30438 "mp62",
30439 "mp63",
30440 "mp64",
30441 "mp65",
30442 "mp66",
30443 "mp67",
30444 "mp68",
30445 "mp69",
30446 "mp70",
30447 "mp71",
30448 "mp72",
30449 "mp73",
30450 "mp74",
30451 "mp75",
30452 "mp76",
30453 "mp77",
30454 "mp78",
30455 "mp79",
30456 "mp80",
30457 "mp81",
30458 "mp82",
30459 "mp83",
30460 "mp84",
30461 "mp85",
30462 "mp86",
30463 "mp87",
30464 "mp88",
30465 "mp89",
30466 "mp90",
30467 "mp91",
30468 "mp92",
30469 "mp93",
30470 "mp94",
30471 "mp95",
30472 "mp96",
30473 "mp97",
30474 "mp98",
30475 "mp99",
30476 "mp100",
30477 "mp101",
30478 "mp102",
30479 "mp103",
30480 "mp104",
30481 "mp105",
30482 "mp106",
30483 "mp107",
30484 "mp108",
30485 "mp109",
30486 "mp110",
30487 "mp111",
30488 "mp112",
30489 "mp113",
30490 "mp114",
30491 "mp115",
30492 "mp116",
30493 "mp117",
30494 "mp118",
30495 "mp119",
30496 "mp120",
30497 "mp121",
30498 "mp122",
30499 "mp123",
30500 "mp124",
30501 "mp125",
30502 "mp126",
30503 "mp127",
30504 "mp128",
30505 "mp129",
30506 "mp130",
30507 "mp131",
30508 "mp132",
30509 "mp133",
30510 "mp134",
30511 "mp135",
30512 "mp136",
30513 "mp137",
30514 "mp138",
30515 "mp139",
30516 "mp140",
30517 "mp141",
30518 "mp142",
30519 "mp143",
30520 "mp144",
30521 "mp145",
30522 "mp146",
30523 "mp147",
30524 "mp148",
30525 "mp149",
30526 "mp150",
30527 "mp151",
30528 "mp152",
30529 "mp153",
30530 "mp154",
30531 "mp155",
30532 "mp156",
30533 "mp157",
30534 "mp158",
30535 "mp159",
30536 "mp160",
30537 "mp161",
30538 "mp162",
30539 "mp163",
30540 "mp164",
30541 "mp165",
30542 "mp166",
30543 "mp167",
30544 "mp168",
30545 "mp169",
30546 "mp170",
30547 "mp171",
30548 "mp172",
30549 "mp173",
30550 "mp174",
30551 "mp175",
30552 "mp176",
30553 "mp177",
30554 "mp178",
30555 "mp179",
30556 "mp180",
30557 "mp181",
30558 "mp182",
30559 "mp183",
30560 "mp184",
30561 "mp185",
30562 "mp186",
30563 "mp187",
30564 "mp188",
30565 "mp189",
30566 "mp190",
30567 "mp191",
30568 "mp192",
30569 "mp193",
30570 "mp194",
30571 "mp195",
30572 "mp196",
30573 "mp197",
30574 "mp198",
30575 "mp199",
30576 "mp200",
30577 "mp201",
30578 "mp202",
30579 "mp203",
30580 "mp204",
30581 "mp205",
30582 "mp206",
30583 "mp207",
30584 "mp208",
30585 "mp209",
30586 "mp210",
30587 "mp211",
30588 "mp212",
30589 "mp213",
30590 "mp214",
30591 "mp215",
30592 "mp216",
30593 "mp217",
30594 "mp218",
30595 "mp219",
30596 "mp220",
30597 "mp221",
30598 "mp222",
30599 "mp223",
30600 "mp224",
30601 "mp225",
30602 "mp226",
30603 "mp227",
30604 "mp228",
30605 "mp229",
30606 "mp230",
30607 "mp231",
30608 "mp232",
30609 "mp233",
30610 "mp234",
30611 "mp235",
30612 "mp236",
30613 "mp237",
30614 "mp238",
30615 "mp239",
30616 "mp240",
30617 "mp241",
30618 "mp242",
30619 "mp243",
30620 "mp244",
30621 "mp245",
30622 "mp246",
30623 "mp247",
30624 "mp248",
30625 "mp249",
30626 "mp250",
30627 "mp251",
30628 "mp252",
30629 "mp253",
30630 "mp254",
30631 "mp255",
30632 "unused0",
30633 "unused1",
30634 "unused2",
30635 "unused3",
30636 "unused4",
30637 "unused5",
30638 "unused6",
30639 "unused7",
30640 "unused8",
30641 "unused9",
30642 "unused10",
30643 "unused11",
30644 "unused12",
30645 "unused13",
30646 "unused14",
30647 "unused15",
30648 "unused16",
30649 "unused17",
30650 "unused18",
30651 "unused19",
30652 "unused20",
30653 "unused21",
30654 "unused22",
30655 "unused23",
30656 "unused24",
30657 "unused25",
30658 "unused26",
30659 "unused27",
30660 "unused28",
30661 "unused29",
30662 "unused30",
30663 "unused31",
30664 "unused32",
30665 "unused33",
30666 "unused34",
30667 "unused35",
30668 "unused36",
30669 "unused37",
30670 "unused38",
30671 "unused39",
30672 "unused40",
30673 "unused41",
30674 "unused42",
30675 "unused43",
30676 "unused44",
30677 "unused45",
30678 "unused46",
30679 "unused47",
30680 "unused48",
30681 "unused49",
30682 "unused50",
30683 "unused51",
30684 "unused52",
30685 "unused53",
30686 "unused54",
30687 "unused55",
30688 "unused56",
30689 "unused57",
30690 "unused58",
30691 "unused59",
30692 "unused60",
30693 "unused61",
30694 "unused62",
30695 "unused63",
30696 "unused64",
30697 "unused65",
30698 "unused66",
30699 "unused67",
30700 "unused68",
30701 "unused69",
30702 "unused70",
30703 "unused71",
30704 "unused72",
30705 "unused73",
30706 "unused74",
30707 "unused75",
30708 "unused76",
30709 "unused77",
30710 "unused78",
30711 "unused79",
30712 "unused80",
30713 "unused81",
30714 "unused82",
30715 "unused83",
30716 "unused84",
30717 "unused85",
30718 "unused86",
30719 "unused87",
30720 "unused88",
30721 "unused89",
30722 "unused90",
30723 "unused91",
30724 "unused92",
30725 "unused93",
30726 "unused94",
30727 "unused95",
30728 "unused96",
30729 "unused97",
30730 "unused98",
30731 "unused99",
30732 "unused100",
30733 "unused101",
30734 "unused102",
30735 "unused103",
30736 "unused104",
30737 "unused105",
30738 "unused106",
30739 "unused107",
30740 "unused108",
30741 "unused109",
30742 "unused110",
30743 "unused111",
30744 "unused112",
30745 "unused113",
30746 "unused114",
30747 "unused115",
30748 "unused116",
30749 "unused117",
30750 "unused118",
30751 "unused119",
30752 "unused120",
30753 "unused121",
30754 "unused122",
30755 "unused123",
30756 "unused124",
30757 "unused125",
30758 "unused126",
30759 "unused127",
30760 "unused128",
30761 "unused129",
30762 "unused130",
30763 "unused131",
30764 "unused132",
30765 "unused133",
30766 "unused134",
30767 "unused135",
30768 "unused136",
30769 "unused137",
30770 "unused138",
30771 "unused139",
30772 "unused140",
30773 "unused141",
30774 "unused142",
30775 "unused143",
30776 "unused144",
30777 "unused145",
30778 "unused146",
30779 "unused147",
30780 "unused148",
30781 "unused149",
30782 "unused150",
30783 "unused151",
30784 "unused152",
30785 "unused153",
30786 "unused154",
30787 "unused155",
30788 "unused156",
30789 "unused157",
30790 "unused158",
30791 "unused159",
30792 "unused160",
30793 "unused161",
30794 "unused162",
30795 "unused163",
30796 "unused164",
30797 "unused165",
30798 "unused166",
30799 "unused167",
30800 "unused168",
30801 "unused169",
30802 "unused170",
30803 "unused171",
30804 "unused172",
30805 "unused173",
30806 "unused174",
30807 "unused175",
30808 "unused176",
30809 "unused177",
30810 "unused178",
30811 "unused179",
30812 "unused180",
30813 "unused181",
30814 "unused182",
30815 "unused183",
30816 "unused184",
30817 "unused185",
30818 "unused186",
30819 "unused187",
30820 "unused188",
30821 "unused189",
30822 "unused190",
30823 "unused191",
30824 "unused192",
30825 "unused193",
30826 "unused194",
30827 "unused195",
30828 "unused196",
30829 "unused197",
30830 "unused198",
30831 "unused199",
30832 "unused200",
30833 "unused201",
30834 "unused202",
30835 "unused203",
30836 "unused204",
30837 "unused205",
30838 "unused206",
30839 "unused207",
30840 "unused208",
30841 "unused209",
30842 "unused210",
30843 "unused211",
30844 "unused212",
30845 "unused213",
30846 "unused214",
30847 "unused215",
30848 "unused216",
30849 "unused217",
30850 "unused218",
30851 "unused219",
30852 "unused220",
30853 "unused221",
30854 "unused222",
30855 "unused223",
30856 "unused224",
30857 "unused225",
30858 "unused226",
30859 "unused227",
30860 "unused228",
30861 "unused229",
30862 "unused230",
30863 "unused231",
30864 "unused232",
30865 "unused233",
30866 "unused234",
30867 "unused235",
30868 "unused236",
30869 "unused237",
30870 "unused238",
30871 "unused239",
30872 "unused240",
30873 "unused241",
30874 "unused242",
30875 "unused243",
30876 "unused244",
30877 "unused245",
30878 "unused246",
30879 "unused247",
30880 "unused248",
30881 "unused249",
30882 "unused250",
30883 "unused251",
30884 "unused252",
30885 "unused253",
30886 "unused254",
30887 "unused255"
4d47f125
TL
30888 ],
30889 "type" : "string"
7aacca6f 30890 }
44660702 30891 }
7aacca6f 30892 },
56122987
DM
30893 "permissions" : {
30894 "check" : [
5370fa8c
TL
30895 "perm",
30896 "/vms/{vmid}",
4d47f125 30897 [
5370fa8c 30898 "VM.Config.Disk"
56122987 30899 ]
4d47f125 30900 ],
5370fa8c 30901 "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
30902 },
30903 "protected" : 1,
30904 "proxyto" : "node",
30905 "returns" : {
30906 "type" : "string"
30907 }
30908 }
30909 },
30910 "leaf" : 1,
30911 "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
30912 "text" : "move_volume"
1c532546
TL
30913 },
30914 {
30915 "info" : {
30916 "GET" : {
e9cd3bd4 30917 "allowtoken" : 1,
1c532546
TL
30918 "description" : "Get container configuration, including pending changes.",
30919 "method" : "GET",
30920 "name" : "vm_pending",
30921 "parameters" : {
30922 "additionalProperties" : 0,
30923 "properties" : {
30924 "node" : {
30925 "description" : "The cluster node name.",
30926 "format" : "pve-node",
30927 "type" : "string",
30928 "typetext" : "<string>"
30929 },
30930 "vmid" : {
30931 "description" : "The (unique) ID of the VM.",
30932 "format" : "pve-vmid",
30933 "minimum" : 1,
30934 "type" : "integer",
30935 "typetext" : "<integer> (1 - N)"
30936 }
30937 }
30938 },
30939 "permissions" : {
30940 "check" : [
30941 "perm",
30942 "/vms/{vmid}",
30943 [
30944 "VM.Audit"
30945 ]
30946 ]
30947 },
30948 "proxyto" : "node",
30949 "returns" : {
30950 "items" : {
30951 "properties" : {
30952 "delete" : {
30953 "description" : "Indicates a pending delete request if present and not 0.",
30954 "maximum" : 2,
30955 "minimum" : 0,
30956 "optional" : 1,
30957 "type" : "integer"
30958 },
30959 "key" : {
30960 "description" : "Configuration option name.",
30961 "type" : "string"
30962 },
30963 "pending" : {
30964 "description" : "Pending value.",
30965 "optional" : 1,
30966 "type" : "string"
30967 },
30968 "value" : {
30969 "description" : "Current value.",
30970 "optional" : 1,
30971 "type" : "string"
30972 }
30973 },
30974 "type" : "object"
30975 },
30976 "type" : "array"
30977 }
30978 }
30979 },
30980 "leaf" : 1,
30981 "path" : "/nodes/{node}/lxc/{vmid}/pending",
30982 "text" : "pending"
4d47f125
TL
30983 }
30984 ],
30985 "info" : {
30986 "DELETE" : {
e9cd3bd4 30987 "allowtoken" : 1,
4d47f125
TL
30988 "description" : "Destroy the container (also delete all uses files).",
30989 "method" : "DELETE",
30990 "name" : "destroy_vm",
30991 "parameters" : {
30992 "additionalProperties" : 0,
30993 "properties" : {
d2656385
TL
30994 "destroy-unreferenced-disks" : {
30995 "description" : "If set, destroy additionally all disks with the VMID from all enabled storages which are not referenced in the config.",
30996 "optional" : 1,
30997 "type" : "boolean",
30998 "typetext" : "<boolean>"
30999 },
c5aa7e14
TL
31000 "force" : {
31001 "default" : 0,
31002 "description" : "Force destroy, even if running.",
31003 "optional" : 1,
31004 "type" : "boolean",
31005 "typetext" : "<boolean>"
31006 },
4d47f125
TL
31007 "node" : {
31008 "description" : "The cluster node name.",
31009 "format" : "pve-node",
31010 "type" : "string",
31011 "typetext" : "<string>"
31012 },
1c532546 31013 "purge" : {
c5aa7e14
TL
31014 "default" : 0,
31015 "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
31016 "optional" : 1,
31017 "type" : "boolean",
31018 "typetext" : "<boolean>"
31019 },
4d47f125
TL
31020 "vmid" : {
31021 "description" : "The (unique) ID of the VM.",
31022 "format" : "pve-vmid",
31023 "minimum" : 1,
31024 "type" : "integer",
31025 "typetext" : "<integer> (1 - N)"
31026 }
31027 }
31028 },
31029 "permissions" : {
31030 "check" : [
31031 "perm",
31032 "/vms/{vmid}",
31033 [
31034 "VM.Allocate"
31035 ]
31036 ]
31037 },
31038 "protected" : 1,
31039 "proxyto" : "node",
31040 "returns" : {
31041 "type" : "string"
31042 }
31043 },
31044 "GET" : {
e9cd3bd4 31045 "allowtoken" : 1,
4d47f125
TL
31046 "description" : "Directory index",
31047 "method" : "GET",
31048 "name" : "vmdiridx",
31049 "parameters" : {
31050 "additionalProperties" : 0,
31051 "properties" : {
31052 "node" : {
31053 "description" : "The cluster node name.",
31054 "format" : "pve-node",
31055 "type" : "string",
31056 "typetext" : "<string>"
56122987 31057 },
4d47f125
TL
31058 "vmid" : {
31059 "description" : "The (unique) ID of the VM.",
31060 "format" : "pve-vmid",
31061 "minimum" : 1,
31062 "type" : "integer",
31063 "typetext" : "<integer> (1 - N)"
56122987
DM
31064 }
31065 }
31066 },
4d47f125
TL
31067 "permissions" : {
31068 "user" : "all"
31069 },
31070 "proxyto" : "node",
31071 "returns" : {
31072 "items" : {
31073 "properties" : {
31074 "subdir" : {
31075 "type" : "string"
35a75dd3
DM
31076 }
31077 },
4d47f125
TL
31078 "type" : "object"
31079 },
31080 "links" : [
31081 {
31082 "href" : "{subdir}",
31083 "rel" : "child"
35a75dd3 31084 }
4d47f125
TL
31085 ],
31086 "type" : "array"
31087 }
31088 }
31089 },
31090 "leaf" : 0,
31091 "path" : "/nodes/{node}/lxc/{vmid}",
31092 "text" : "{vmid}"
31093 }
31094 ],
31095 "info" : {
31096 "GET" : {
e9cd3bd4 31097 "allowtoken" : 1,
4d47f125
TL
31098 "description" : "LXC container index (per node).",
31099 "method" : "GET",
31100 "name" : "vmlist",
31101 "parameters" : {
31102 "additionalProperties" : 0,
31103 "properties" : {
31104 "node" : {
31105 "description" : "The cluster node name.",
31106 "format" : "pve-node",
31107 "type" : "string",
31108 "typetext" : "<string>"
31109 }
31110 }
31111 },
31112 "permissions" : {
31113 "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
31114 "user" : "all"
31115 },
31116 "protected" : 1,
31117 "proxyto" : "node",
31118 "returns" : {
31119 "items" : {
31120 "properties" : {
31121 "cpus" : {
31122 "description" : "Maximum usable CPUs.",
31123 "optional" : 1,
31124 "type" : "number"
31125 },
95895385
TL
31126 "lock" : {
31127 "description" : "The current config lock, if any.",
31128 "optional" : 1,
31129 "type" : "string"
31130 },
4d47f125
TL
31131 "maxdisk" : {
31132 "description" : "Root disk size in bytes.",
31133 "optional" : 1,
31134 "renderer" : "bytes",
31135 "type" : "integer"
31136 },
31137 "maxmem" : {
31138 "description" : "Maximum memory in bytes.",
31139 "optional" : 1,
31140 "renderer" : "bytes",
31141 "type" : "integer"
31142 },
31143 "maxswap" : {
31144 "description" : "Maximum SWAP memory in bytes.",
31145 "optional" : 1,
31146 "renderer" : "bytes",
31147 "type" : "integer"
31148 },
31149 "name" : {
31150 "description" : "Container name.",
31151 "optional" : 1,
31152 "type" : "string"
31153 },
31154 "status" : {
31155 "description" : "LXC Container status.",
31156 "enum" : [
31157 "stopped",
31158 "running"
31159 ],
31160 "type" : "string"
31161 },
5c1699e5
TL
31162 "tags" : {
31163 "description" : "The current configured tags, if any.",
31164 "optional" : 1,
31165 "type" : "string"
31166 },
4d47f125
TL
31167 "uptime" : {
31168 "description" : "Uptime.",
31169 "optional" : 1,
31170 "renderer" : "duration",
31171 "type" : "integer"
31172 },
31173 "vmid" : {
31174 "description" : "The (unique) ID of the VM.",
31175 "format" : "pve-vmid",
31176 "minimum" : 1,
31177 "type" : "integer"
35a75dd3
DM
31178 }
31179 },
4d47f125 31180 "type" : "object"
35a75dd3 31181 },
4d47f125
TL
31182 "links" : [
31183 {
31184 "href" : "{vmid}",
31185 "rel" : "child"
31186 }
31187 ],
31188 "type" : "array"
31189 }
31190 },
31191 "POST" : {
e9cd3bd4 31192 "allowtoken" : 1,
4d47f125
TL
31193 "description" : "Create or restore a container.",
31194 "method" : "POST",
31195 "name" : "create_vm",
31196 "parameters" : {
31197 "additionalProperties" : 0,
31198 "properties" : {
31199 "arch" : {
31200 "default" : "amd64",
31201 "description" : "OS architecture type.",
31202 "enum" : [
31203 "amd64",
31204 "i386",
31205 "arm64",
31206 "armhf"
31207 ],
31208 "optional" : 1,
31209 "type" : "string"
31210 },
31211 "bwlimit" : {
95895385
TL
31212 "default" : "restore limit from datacenter or storage config",
31213 "description" : "Override I/O bandwidth limit (in KiB/s).",
4d47f125
TL
31214 "minimum" : "0",
31215 "optional" : 1,
31216 "type" : "number",
31217 "typetext" : "<number> (0 - N)"
31218 },
31219 "cmode" : {
31220 "default" : "tty",
31221 "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).",
31222 "enum" : [
31223 "shell",
31224 "console",
31225 "tty"
31226 ],
31227 "optional" : 1,
31228 "type" : "string"
31229 },
31230 "console" : {
31231 "default" : 1,
31232 "description" : "Attach a console device (/dev/console) to the container.",
31233 "optional" : 1,
31234 "type" : "boolean",
31235 "typetext" : "<boolean>"
31236 },
31237 "cores" : {
31238 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 31239 "maximum" : 8192,
4d47f125
TL
31240 "minimum" : 1,
31241 "optional" : 1,
31242 "type" : "integer",
4772952b 31243 "typetext" : "<integer> (1 - 8192)"
4d47f125
TL
31244 },
31245 "cpulimit" : {
31246 "default" : 0,
31247 "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 31248 "maximum" : 8192,
4d47f125
TL
31249 "minimum" : 0,
31250 "optional" : 1,
31251 "type" : "number",
4772952b 31252 "typetext" : "<number> (0 - 8192)"
4d47f125
TL
31253 },
31254 "cpuunits" : {
31255 "default" : 1024,
31256 "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.",
31257 "maximum" : 500000,
31258 "minimum" : 0,
31259 "optional" : 1,
31260 "type" : "integer",
31261 "typetext" : "<integer> (0 - 500000)"
31262 },
739d4d64
TL
31263 "debug" : {
31264 "default" : 0,
31265 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
31266 "optional" : 1,
31267 "type" : "boolean",
31268 "typetext" : "<boolean>"
31269 },
4d47f125 31270 "description" : {
8f4d9c87
TL
31271 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
31272 "maxLength" : 8192,
4d47f125
TL
31273 "optional" : 1,
31274 "type" : "string",
31275 "typetext" : "<string>"
31276 },
31277 "features" : {
31278 "description" : "Allow containers access to advanced features.",
31279 "format" : {
c5aa7e14
TL
31280 "force_rw_sys" : {
31281 "default" : 0,
31282 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
31283 "optional" : 1,
31284 "type" : "boolean"
31285 },
e2d681b3
TL
31286 "fuse" : {
31287 "default" : 0,
31288 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
31289 "optional" : 1,
31290 "type" : "boolean"
31291 },
4d47f125
TL
31292 "keyctl" : {
31293 "default" : 0,
31294 "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.",
31295 "optional" : 1,
31296 "type" : "boolean"
7aacca6f 31297 },
c5aa7e14
TL
31298 "mknod" : {
31299 "default" : 0,
31300 "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.",
31301 "optional" : 1,
31302 "type" : "boolean"
31303 },
4d47f125
TL
31304 "mount" : {
31305 "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.",
31306 "format_description" : "fstype;fstype;...",
31307 "optional" : 1,
95895385 31308 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125 31309 "type" : "string"
56122987 31310 },
4d47f125
TL
31311 "nesting" : {
31312 "default" : 0,
31313 "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.",
31314 "optional" : 1,
31315 "type" : "boolean"
44660702 31316 }
4d47f125
TL
31317 },
31318 "optional" : 1,
31319 "type" : "string",
c5aa7e14 31320 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
56122987 31321 },
4d47f125
TL
31322 "force" : {
31323 "description" : "Allow to overwrite existing container.",
31324 "optional" : 1,
31325 "type" : "boolean",
31326 "typetext" : "<boolean>"
31327 },
5f26e15b
TL
31328 "hookscript" : {
31329 "description" : "Script that will be exectued during various steps in the containers lifetime.",
31330 "format" : "pve-volume-id",
31331 "optional" : 1,
31332 "type" : "string",
31333 "typetext" : "<string>"
31334 },
4d47f125
TL
31335 "hostname" : {
31336 "description" : "Set a host name for the container.",
31337 "format" : "dns-name",
31338 "maxLength" : 255,
31339 "optional" : 1,
31340 "type" : "string",
31341 "typetext" : "<string>"
31342 },
31343 "ignore-unpack-errors" : {
31344 "description" : "Ignore errors when extracting the template.",
31345 "optional" : 1,
31346 "type" : "boolean",
31347 "typetext" : "<boolean>"
31348 },
31349 "lock" : {
31350 "description" : "Lock/unlock the VM.",
31351 "enum" : [
31352 "backup",
bb4c8cf8 31353 "create",
1c532546 31354 "destroyed",
4d47f125 31355 "disk",
bb4c8cf8 31356 "fstrim",
4d47f125
TL
31357 "migrate",
31358 "mounted",
31359 "rollback",
31360 "snapshot",
31361 "snapshot-delete"
31362 ],
31363 "optional" : 1,
31364 "type" : "string"
31365 },
31366 "memory" : {
31367 "default" : 512,
31368 "description" : "Amount of RAM for the VM in MB.",
31369 "minimum" : 16,
31370 "optional" : 1,
31371 "type" : "integer",
31372 "typetext" : "<integer> (16 - N)"
31373 },
31374 "mp[n]" : {
d2656385 31375 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
31376 "format" : {
31377 "acl" : {
31378 "description" : "Explicitly enable or disable ACL support.",
31379 "optional" : 1,
31380 "type" : "boolean"
56122987 31381 },
4d47f125
TL
31382 "backup" : {
31383 "description" : "Whether to include the mount point in backups.",
31384 "optional" : 1,
31385 "type" : "boolean",
31386 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
56122987 31387 },
7cbed89a
TL
31388 "mountoptions" : {
31389 "description" : "Extra mount options for rootfs/mps.",
31390 "format_description" : "opt[;opt...]",
31391 "optional" : 1,
31392 "pattern" : "(?^:(?^:(noatime|nodev|nosuid|noexec))(;(?^:(noatime|nodev|nosuid|noexec)))*)",
31393 "type" : "string"
31394 },
4d47f125
TL
31395 "mp" : {
31396 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
31397 "format" : "pve-lxc-mp-string",
31398 "format_description" : "Path",
31399 "type" : "string",
31400 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
7aacca6f 31401 },
4d47f125
TL
31402 "quota" : {
31403 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
31404 "optional" : 1,
31405 "type" : "boolean"
31406 },
31407 "replicate" : {
31408 "default" : 1,
31409 "description" : "Will include this volume to a storage replica job.",
31410 "optional" : 1,
31411 "type" : "boolean"
31412 },
31413 "ro" : {
31414 "description" : "Read-only mount point",
31415 "optional" : 1,
31416 "type" : "boolean"
31417 },
31418 "shared" : {
31419 "default" : 0,
31420 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
31421 "optional" : 1,
31422 "type" : "boolean",
31423 "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 31424 },
4d47f125
TL
31425 "size" : {
31426 "description" : "Volume size (read only value).",
31427 "format" : "disk-size",
31428 "format_description" : "DiskSize",
31429 "optional" : 1,
31430 "type" : "string"
31431 },
31432 "volume" : {
31433 "default_key" : 1,
31434 "description" : "Volume, device or directory to mount into the container.",
31435 "format" : "pve-lxc-mp-string",
31436 "format_description" : "volume",
44660702
DM
31437 "type" : "string"
31438 }
4d47f125
TL
31439 },
31440 "optional" : 1,
31441 "type" : "string",
7cbed89a 31442 "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 31443 },
4d47f125
TL
31444 "nameserver" : {
31445 "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 31446 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
31447 "optional" : 1,
31448 "type" : "string",
31449 "typetext" : "<string>"
31450 },
31451 "net[n]" : {
31452 "description" : "Specifies network interfaces for the container.",
31453 "format" : {
31454 "bridge" : {
31455 "description" : "Bridge to attach the network device to.",
31456 "format_description" : "bridge",
31457 "optional" : 1,
31458 "pattern" : "[-_.\\w\\d]+",
31459 "type" : "string"
56122987 31460 },
4d47f125
TL
31461 "firewall" : {
31462 "description" : "Controls whether this interface's firewall rules should be used.",
31463 "optional" : 1,
31464 "type" : "boolean"
56122987 31465 },
4d47f125
TL
31466 "gw" : {
31467 "description" : "Default gateway for IPv4 traffic.",
31468 "format" : "ipv4",
31469 "format_description" : "GatewayIPv4",
31470 "optional" : 1,
31471 "type" : "string"
31472 },
31473 "gw6" : {
31474 "description" : "Default gateway for IPv6 traffic.",
31475 "format" : "ipv6",
31476 "format_description" : "GatewayIPv6",
31477 "optional" : 1,
31478 "type" : "string"
31479 },
31480 "hwaddr" : {
31481 "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 31482 "format" : "mac-addr",
4d47f125
TL
31483 "format_description" : "XX:XX:XX:XX:XX:XX",
31484 "optional" : 1,
95895385
TL
31485 "type" : "string",
31486 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
31487 },
31488 "ip" : {
31489 "description" : "IPv4 address in CIDR format.",
31490 "format" : "pve-ipv4-config",
31491 "format_description" : "(IPv4/CIDR|dhcp|manual)",
31492 "optional" : 1,
31493 "type" : "string"
31494 },
31495 "ip6" : {
31496 "description" : "IPv6 address in CIDR format.",
31497 "format" : "pve-ipv6-config",
31498 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
31499 "optional" : 1,
31500 "type" : "string"
31501 },
31502 "mtu" : {
31503 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
31504 "minimum" : 64,
31505 "optional" : 1,
31506 "type" : "integer"
31507 },
31508 "name" : {
31509 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
31510 "format_description" : "string",
31511 "pattern" : "[-_.\\w\\d]+",
31512 "type" : "string"
31513 },
31514 "rate" : {
31515 "description" : "Apply rate limiting to the interface",
31516 "format_description" : "mbps",
31517 "optional" : 1,
31518 "type" : "number"
31519 },
31520 "tag" : {
31521 "description" : "VLAN tag for this interface.",
31522 "maximum" : 4094,
31523 "minimum" : 1,
31524 "optional" : 1,
31525 "type" : "integer"
31526 },
31527 "trunks" : {
31528 "description" : "VLAN ids to pass through the interface",
31529 "format_description" : "vlanid[;vlanid...]",
31530 "optional" : 1,
31531 "pattern" : "(?^:\\d+(?:;\\d+)*)",
31532 "type" : "string"
31533 },
31534 "type" : {
31535 "description" : "Network interface type.",
31536 "enum" : [
31537 "veth"
31538 ],
31539 "optional" : 1,
31540 "type" : "string"
7aacca6f 31541 }
4d47f125
TL
31542 },
31543 "optional" : 1,
31544 "type" : "string",
31545 "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 31546 },
4d47f125
TL
31547 "node" : {
31548 "description" : "The cluster node name.",
31549 "format" : "pve-node",
31550 "type" : "string",
31551 "typetext" : "<string>"
31552 },
31553 "onboot" : {
31554 "default" : 0,
31555 "description" : "Specifies whether a VM will be started during system bootup.",
31556 "optional" : 1,
31557 "type" : "boolean",
31558 "typetext" : "<boolean>"
31559 },
31560 "ostemplate" : {
31561 "description" : "The OS template or backup file.",
31562 "maxLength" : 255,
31563 "type" : "string",
31564 "typetext" : "<string>"
31565 },
31566 "ostype" : {
31567 "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.",
31568 "enum" : [
31569 "debian",
d2656385 31570 "devuan",
4d47f125
TL
31571 "ubuntu",
31572 "centos",
31573 "fedora",
31574 "opensuse",
31575 "archlinux",
31576 "alpine",
31577 "gentoo",
31578 "unmanaged"
31579 ],
31580 "optional" : 1,
31581 "type" : "string"
31582 },
31583 "password" : {
31584 "description" : "Sets root password inside container.",
31585 "minLength" : 5,
31586 "optional" : 1,
31587 "type" : "string",
31588 "typetext" : "<string>"
31589 },
31590 "pool" : {
31591 "description" : "Add the VM to the specified pool.",
31592 "format" : "pve-poolid",
31593 "optional" : 1,
31594 "type" : "string",
31595 "typetext" : "<string>"
31596 },
31597 "protection" : {
31598 "default" : 0,
31599 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
31600 "optional" : 1,
31601 "type" : "boolean",
31602 "typetext" : "<boolean>"
31603 },
31604 "restore" : {
31605 "description" : "Mark this as restore task.",
31606 "optional" : 1,
31607 "type" : "boolean",
31608 "typetext" : "<boolean>"
31609 },
31610 "rootfs" : {
31611 "description" : "Use volume as container root.",
31612 "format" : {
31613 "acl" : {
31614 "description" : "Explicitly enable or disable ACL support.",
31615 "optional" : 1,
31616 "type" : "boolean"
56122987 31617 },
7cbed89a
TL
31618 "mountoptions" : {
31619 "description" : "Extra mount options for rootfs/mps.",
31620 "format_description" : "opt[;opt...]",
31621 "optional" : 1,
31622 "pattern" : "(?^:(?^:(noatime|nodev|nosuid|noexec))(;(?^:(noatime|nodev|nosuid|noexec)))*)",
31623 "type" : "string"
31624 },
4d47f125
TL
31625 "quota" : {
31626 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
31627 "optional" : 1,
31628 "type" : "boolean"
7aacca6f 31629 },
4d47f125
TL
31630 "replicate" : {
31631 "default" : 1,
31632 "description" : "Will include this volume to a storage replica job.",
31633 "optional" : 1,
31634 "type" : "boolean"
31635 },
31636 "ro" : {
31637 "description" : "Read-only mount point",
31638 "optional" : 1,
31639 "type" : "boolean"
31640 },
31641 "shared" : {
31642 "default" : 0,
31643 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
31644 "optional" : 1,
31645 "type" : "boolean",
31646 "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!"
31647 },
31648 "size" : {
31649 "description" : "Volume size (read only value).",
31650 "format" : "disk-size",
31651 "format_description" : "DiskSize",
31652 "optional" : 1,
31653 "type" : "string"
31654 },
31655 "volume" : {
31656 "default_key" : 1,
31657 "description" : "Volume, device or directory to mount into the container.",
31658 "format" : "pve-lxc-mp-string",
31659 "format_description" : "volume",
31660 "type" : "string"
56122987 31661 }
4d47f125
TL
31662 },
31663 "optional" : 1,
31664 "type" : "string",
7cbed89a 31665 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
56122987 31666 },
4d47f125
TL
31667 "searchdomain" : {
31668 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
31669 "format" : "dns-name-list",
31670 "optional" : 1,
31671 "type" : "string",
31672 "typetext" : "<string>"
31673 },
31674 "ssh-public-keys" : {
31675 "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
31676 "optional" : 1,
31677 "type" : "string",
31678 "typetext" : "<string>"
31679 },
31680 "start" : {
31681 "default" : 0,
31682 "description" : "Start the CT after its creation finished successfully.",
31683 "optional" : 1,
31684 "type" : "boolean",
31685 "typetext" : "<boolean>"
31686 },
31687 "startup" : {
31688 "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.",
31689 "format" : "pve-startup-order",
31690 "optional" : 1,
31691 "type" : "string",
31692 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
31693 },
31694 "storage" : {
31695 "default" : "local",
31696 "description" : "Default Storage.",
31697 "format" : "pve-storage-id",
31698 "optional" : 1,
31699 "type" : "string",
31700 "typetext" : "<string>"
31701 },
31702 "swap" : {
31703 "default" : 512,
31704 "description" : "Amount of SWAP for the VM in MB.",
31705 "minimum" : 0,
31706 "optional" : 1,
31707 "type" : "integer",
31708 "typetext" : "<integer> (0 - N)"
31709 },
5c1699e5
TL
31710 "tags" : {
31711 "description" : "Tags of the Container. This is only meta information.",
31712 "format" : "pve-tag-list",
31713 "optional" : 1,
31714 "type" : "string",
31715 "typetext" : "<string>"
31716 },
4d47f125
TL
31717 "template" : {
31718 "default" : 0,
31719 "description" : "Enable/disable Template.",
31720 "optional" : 1,
31721 "type" : "boolean",
31722 "typetext" : "<boolean>"
31723 },
04d22a9f
TL
31724 "timezone" : {
31725 "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",
31726 "format" : "pve-ct-timezone",
31727 "optional" : 1,
31728 "type" : "string",
31729 "typetext" : "<string>"
31730 },
4d47f125
TL
31731 "tty" : {
31732 "default" : 2,
31733 "description" : "Specify the number of tty available to the container",
31734 "maximum" : 6,
31735 "minimum" : 0,
31736 "optional" : 1,
31737 "type" : "integer",
31738 "typetext" : "<integer> (0 - 6)"
31739 },
95895385
TL
31740 "unique" : {
31741 "description" : "Assign a unique random ethernet address.",
31742 "optional" : 1,
31743 "requires" : "restore",
31744 "type" : "boolean",
31745 "typetext" : "<boolean>"
31746 },
4d47f125
TL
31747 "unprivileged" : {
31748 "default" : 0,
31749 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
31750 "optional" : 1,
31751 "type" : "boolean",
31752 "typetext" : "<boolean>"
31753 },
31754 "unused[n]" : {
31755 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
31756 "format" : {
31757 "volume" : {
31758 "default_key" : 1,
31759 "description" : "The volume that is not used currently.",
31760 "format" : "pve-volume-id",
31761 "format_description" : "volume",
31762 "type" : "string"
31763 }
31764 },
4d47f125
TL
31765 "optional" : 1,
31766 "type" : "string",
c5aa7e14 31767 "typetext" : "[volume=]<volume>"
4d47f125
TL
31768 },
31769 "vmid" : {
31770 "description" : "The (unique) ID of the VM.",
31771 "format" : "pve-vmid",
31772 "minimum" : 1,
31773 "type" : "integer",
31774 "typetext" : "<integer> (1 - N)"
31775 }
31776 }
31777 },
31778 "permissions" : {
31779 "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.",
31780 "user" : "all"
31781 },
31782 "protected" : 1,
31783 "proxyto" : "node",
31784 "returns" : {
31785 "type" : "string"
31786 }
31787 }
31788 },
31789 "leaf" : 0,
31790 "path" : "/nodes/{node}/lxc",
31791 "text" : "lxc"
31792 },
31793 {
31794 "children" : [
31795 {
31796 "children" : [
56122987 31797 {
4d47f125
TL
31798 "children" : [
31799 {
31800 "info" : {
31801 "POST" : {
e9cd3bd4 31802 "allowtoken" : 1,
4d47f125
TL
31803 "description" : "ceph osd in",
31804 "method" : "POST",
31805 "name" : "in",
31806 "parameters" : {
31807 "additionalProperties" : 0,
31808 "properties" : {
31809 "node" : {
31810 "description" : "The cluster node name.",
31811 "format" : "pve-node",
31812 "type" : "string",
31813 "typetext" : "<string>"
31814 },
31815 "osdid" : {
31816 "description" : "OSD ID",
31817 "type" : "integer",
31818 "typetext" : "<integer>"
31819 }
31820 }
27a7acb2 31821 },
4d47f125
TL
31822 "permissions" : {
31823 "check" : [
31824 "perm",
31825 "/",
31826 [
31827 "Sys.Modify"
31828 ]
31829 ]
44660702 31830 },
4d47f125
TL
31831 "protected" : 1,
31832 "proxyto" : "node",
31833 "returns" : {
31834 "type" : "null"
7aacca6f
DM
31835 }
31836 }
56122987 31837 },
4d47f125
TL
31838 "leaf" : 1,
31839 "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
31840 "text" : "in"
31841 },
31842 {
31843 "info" : {
31844 "POST" : {
e9cd3bd4 31845 "allowtoken" : 1,
4d47f125
TL
31846 "description" : "ceph osd out",
31847 "method" : "POST",
31848 "name" : "out",
31849 "parameters" : {
31850 "additionalProperties" : 0,
31851 "properties" : {
31852 "node" : {
31853 "description" : "The cluster node name.",
31854 "format" : "pve-node",
31855 "type" : "string",
31856 "typetext" : "<string>"
31857 },
31858 "osdid" : {
31859 "description" : "OSD ID",
31860 "type" : "integer",
31861 "typetext" : "<integer>"
31862 }
31863 }
31864 },
31865 "permissions" : {
31866 "check" : [
56122987 31867 "perm",
4d47f125 31868 "/",
56122987 31869 [
4d47f125 31870 "Sys.Modify"
56122987 31871 ]
56122987 31872 ]
44660702 31873 },
4d47f125
TL
31874 "protected" : 1,
31875 "proxyto" : "node",
31876 "returns" : {
31877 "type" : "null"
56122987 31878 }
44660702 31879 }
56122987 31880 },
4d47f125
TL
31881 "leaf" : 1,
31882 "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
31883 "text" : "out"
7cbed89a
TL
31884 },
31885 {
31886 "info" : {
31887 "POST" : {
e9cd3bd4 31888 "allowtoken" : 1,
7cbed89a
TL
31889 "description" : "Instruct the OSD to scrub.",
31890 "method" : "POST",
31891 "name" : "scrub",
31892 "parameters" : {
31893 "additionalProperties" : 0,
31894 "properties" : {
31895 "deep" : {
31896 "default" : 0,
31897 "description" : "If set, instructs a deep scrub instead of a normal one.",
31898 "optional" : 1,
31899 "type" : "boolean",
31900 "typetext" : "<boolean>"
31901 },
31902 "node" : {
31903 "description" : "The cluster node name.",
31904 "format" : "pve-node",
31905 "type" : "string",
31906 "typetext" : "<string>"
31907 },
31908 "osdid" : {
31909 "description" : "OSD ID",
31910 "type" : "integer",
31911 "typetext" : "<integer>"
31912 }
31913 }
31914 },
31915 "permissions" : {
31916 "check" : [
31917 "perm",
31918 "/",
31919 [
31920 "Sys.Modify"
31921 ]
31922 ]
31923 },
31924 "protected" : 1,
31925 "proxyto" : "node",
31926 "returns" : {
31927 "type" : "null"
31928 }
31929 }
31930 },
31931 "leaf" : 1,
31932 "path" : "/nodes/{node}/ceph/osd/{osdid}/scrub",
31933 "text" : "scrub"
56122987 31934 }
4d47f125 31935 ],
27a7acb2 31936 "info" : {
4d47f125 31937 "DELETE" : {
e9cd3bd4 31938 "allowtoken" : 1,
4d47f125
TL
31939 "description" : "Destroy OSD",
31940 "method" : "DELETE",
31941 "name" : "destroyosd",
27a7acb2
DM
31942 "parameters" : {
31943 "additionalProperties" : 0,
31944 "properties" : {
4d47f125 31945 "cleanup" : {
27a7acb2 31946 "default" : 0,
4d47f125 31947 "description" : "If set, we remove partition table entries.",
27a7acb2 31948 "optional" : 1,
4d47f125
TL
31949 "type" : "boolean",
31950 "typetext" : "<boolean>"
31951 },
31952 "node" : {
31953 "description" : "The cluster node name.",
31954 "format" : "pve-node",
31955 "type" : "string",
31956 "typetext" : "<string>"
31957 },
31958 "osdid" : {
31959 "description" : "OSD ID",
31960 "type" : "integer",
31961 "typetext" : "<integer>"
31962 }
31963 }
27a7acb2
DM
31964 },
31965 "protected" : 1,
31966 "proxyto" : "node",
31967 "returns" : {
31968 "type" : "string"
31969 }
31970 }
31971 },
4d47f125
TL
31972 "leaf" : 0,
31973 "path" : "/nodes/{node}/ceph/osd/{osdid}",
31974 "text" : "{osdid}"
56122987
DM
31975 }
31976 ],
31977 "info" : {
4d47f125 31978 "GET" : {
e9cd3bd4 31979 "allowtoken" : 1,
4d47f125
TL
31980 "description" : "Get Ceph osd list/tree.",
31981 "method" : "GET",
31982 "name" : "index",
44660702
DM
31983 "parameters" : {
31984 "additionalProperties" : 0,
31985 "properties" : {
31986 "node" : {
31987 "description" : "The cluster node name.",
31988 "format" : "pve-node",
013dc89f
DM
31989 "type" : "string",
31990 "typetext" : "<string>"
44660702
DM
31991 }
31992 }
31993 },
7aacca6f
DM
31994 "permissions" : {
31995 "check" : [
31996 "perm",
4d47f125 31997 "/",
7aacca6f 31998 [
4d47f125
TL
31999 "Sys.Audit",
32000 "Datastore.Audit"
32001 ],
32002 "any",
32003 1
32004 ]
32005 },
32006 "protected" : 1,
32007 "proxyto" : "node",
32008 "returns" : {
32009 "type" : "object"
32010 }
32011 },
32012 "POST" : {
e9cd3bd4 32013 "allowtoken" : 1,
4d47f125
TL
32014 "description" : "Create OSD",
32015 "method" : "POST",
32016 "name" : "createosd",
32017 "parameters" : {
32018 "additionalProperties" : 0,
32019 "properties" : {
739d4d64
TL
32020 "crush-device-class" : {
32021 "description" : "Set the device class of the OSD in crush.",
32022 "optional" : 1,
32023 "type" : "string",
32024 "typetext" : "<string>"
32025 },
1e3f8156
TL
32026 "db_dev" : {
32027 "description" : "Block device name for block.db.",
44660702 32028 "optional" : 1,
4bd7df8b 32029 "type" : "string",
4d47f125 32030 "typetext" : "<string>"
44660702 32031 },
0695fdaf 32032 "db_dev_size" : {
1e3f8156
TL
32033 "default" : "bluestore_block_db_size or 10% of OSD size",
32034 "description" : "Size in GiB for block.db.",
32035 "minimum" : 1,
7aacca6f 32036 "optional" : 1,
1e3f8156
TL
32037 "requires" : "db_dev",
32038 "type" : "number",
32039 "typetext" : "<number> (1 - N)",
32040 "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 32041 },
1e3f8156
TL
32042 "dev" : {
32043 "description" : "Block device name.",
4d47f125
TL
32044 "type" : "string",
32045 "typetext" : "<string>"
5d9c884c 32046 },
1e3f8156
TL
32047 "encrypted" : {
32048 "default" : 0,
32049 "description" : "Enables encryption of the OSD.",
32050 "optional" : 1,
32051 "type" : "boolean",
32052 "typetext" : "<boolean>"
32053 },
4d47f125
TL
32054 "node" : {
32055 "description" : "The cluster node name.",
32056 "format" : "pve-node",
32057 "type" : "string",
32058 "typetext" : "<string>"
7aacca6f 32059 },
4d47f125 32060 "wal_dev" : {
1e3f8156 32061 "description" : "Block device name for block.wal.",
de0983cb 32062 "optional" : 1,
4d47f125
TL
32063 "type" : "string",
32064 "typetext" : "<string>"
1e3f8156 32065 },
0695fdaf 32066 "wal_dev_size" : {
1e3f8156
TL
32067 "default" : "bluestore_block_wal_size or 1% of OSD size",
32068 "description" : "Size in GiB for block.wal.",
32069 "minimum" : 0.5,
32070 "optional" : 1,
32071 "requires" : "wal_dev",
32072 "type" : "number",
32073 "typetext" : "<number> (0.5 - N)",
32074 "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
32075 }
32076 }
32077 },
32078 "protected" : 1,
32079 "proxyto" : "node",
32080 "returns" : {
32081 "type" : "string"
32082 }
32083 }
32084 },
32085 "leaf" : 0,
32086 "path" : "/nodes/{node}/ceph/osd",
32087 "text" : "osd"
32088 },
e2d681b3
TL
32089 {
32090 "children" : [
32091 {
32092 "info" : {
32093 "DELETE" : {
e9cd3bd4 32094 "allowtoken" : 1,
e2d681b3
TL
32095 "description" : "Destroy Ceph Metadata Server",
32096 "method" : "DELETE",
32097 "name" : "destroymds",
32098 "parameters" : {
32099 "additionalProperties" : 0,
32100 "properties" : {
32101 "name" : {
32102 "description" : "The name (ID) of the mds",
32103 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
32104 "type" : "string"
32105 },
32106 "node" : {
32107 "description" : "The cluster node name.",
32108 "format" : "pve-node",
32109 "type" : "string",
32110 "typetext" : "<string>"
32111 }
32112 }
32113 },
32114 "permissions" : {
32115 "check" : [
32116 "perm",
32117 "/",
32118 [
32119 "Sys.Modify"
32120 ]
32121 ]
32122 },
32123 "protected" : 1,
32124 "proxyto" : "node",
32125 "returns" : {
32126 "type" : "string"
32127 }
32128 },
32129 "POST" : {
e9cd3bd4 32130 "allowtoken" : 1,
e2d681b3
TL
32131 "description" : "Create Ceph Metadata Server (MDS)",
32132 "method" : "POST",
32133 "name" : "createmds",
32134 "parameters" : {
32135 "additionalProperties" : 0,
32136 "properties" : {
32137 "hotstandby" : {
32138 "default" : "0",
32139 "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.",
32140 "optional" : 1,
32141 "type" : "boolean",
32142 "typetext" : "<boolean>"
32143 },
32144 "name" : {
32145 "default" : "nodename",
32146 "description" : "The ID for the mds, when omitted the same as the nodename",
c5aa7e14 32147 "maxLength" : 200,
e2d681b3
TL
32148 "optional" : 1,
32149 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
32150 "type" : "string"
32151 },
32152 "node" : {
32153 "description" : "The cluster node name.",
32154 "format" : "pve-node",
32155 "type" : "string",
32156 "typetext" : "<string>"
32157 }
32158 }
32159 },
32160 "permissions" : {
32161 "check" : [
32162 "perm",
32163 "/",
32164 [
32165 "Sys.Modify"
32166 ]
32167 ]
32168 },
32169 "protected" : 1,
32170 "proxyto" : "node",
32171 "returns" : {
32172 "type" : "string"
32173 }
32174 }
32175 },
32176 "leaf" : 1,
32177 "path" : "/nodes/{node}/ceph/mds/{name}",
32178 "text" : "{name}"
32179 }
32180 ],
32181 "info" : {
32182 "GET" : {
e9cd3bd4 32183 "allowtoken" : 1,
e2d681b3
TL
32184 "description" : "MDS directory index.",
32185 "method" : "GET",
32186 "name" : "index",
32187 "parameters" : {
32188 "additionalProperties" : 0,
32189 "properties" : {
32190 "node" : {
32191 "description" : "The cluster node name.",
32192 "format" : "pve-node",
32193 "type" : "string",
32194 "typetext" : "<string>"
32195 }
32196 }
32197 },
32198 "permissions" : {
32199 "check" : [
32200 "perm",
32201 "/",
32202 [
32203 "Sys.Audit",
32204 "Datastore.Audit"
32205 ],
32206 "any",
32207 1
32208 ]
32209 },
32210 "protected" : 1,
32211 "proxyto" : "node",
32212 "returns" : {
32213 "items" : {
32214 "properties" : {
32215 "addr" : {
32216 "optional" : 1,
32217 "type" : "string"
32218 },
32219 "host" : {
32220 "optional" : 1,
32221 "type" : "string"
32222 },
32223 "name" : {
32224 "description" : "The name (ID) for the MDS"
32225 },
32226 "rank" : {
32227 "optional" : 1,
32228 "type" : "integer"
32229 },
32230 "standby_replay" : {
32231 "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
32232 "optional" : 1,
32233 "type" : "boolean"
32234 },
32235 "state" : {
32236 "description" : "State of the MDS",
32237 "type" : "string"
32238 }
32239 },
32240 "type" : "object"
32241 },
32242 "links" : [
32243 {
32244 "href" : "{name}",
32245 "rel" : "child"
32246 }
32247 ],
32248 "type" : "array"
32249 }
32250 }
32251 },
32252 "leaf" : 0,
32253 "path" : "/nodes/{node}/ceph/mds",
32254 "text" : "mds"
32255 },
32256 {
32257 "children" : [
32258 {
32259 "info" : {
5f26e15b 32260 "DELETE" : {
e9cd3bd4 32261 "allowtoken" : 1,
5f26e15b
TL
32262 "description" : "Destroy Ceph Manager.",
32263 "method" : "DELETE",
32264 "name" : "destroymgr",
e2d681b3
TL
32265 "parameters" : {
32266 "additionalProperties" : 0,
32267 "properties" : {
5f26e15b
TL
32268 "id" : {
32269 "description" : "The ID of the manager",
32270 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
32271 "type" : "string"
e2d681b3
TL
32272 },
32273 "node" : {
32274 "description" : "The cluster node name.",
32275 "format" : "pve-node",
32276 "type" : "string",
32277 "typetext" : "<string>"
e2d681b3
TL
32278 }
32279 }
32280 },
32281 "permissions" : {
32282 "check" : [
32283 "perm",
32284 "/",
32285 [
32286 "Sys.Modify"
32287 ]
32288 ]
32289 },
32290 "protected" : 1,
32291 "proxyto" : "node",
32292 "returns" : {
32293 "type" : "string"
32294 }
1e3f8156
TL
32295 },
32296 "POST" : {
e9cd3bd4 32297 "allowtoken" : 1,
1e3f8156
TL
32298 "description" : "Create Ceph Manager",
32299 "method" : "POST",
32300 "name" : "createmgr",
32301 "parameters" : {
32302 "additionalProperties" : 0,
32303 "properties" : {
32304 "id" : {
32305 "description" : "The ID for the manager, when omitted the same as the nodename",
c5aa7e14 32306 "maxLength" : 200,
1e3f8156
TL
32307 "optional" : 1,
32308 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
32309 "type" : "string"
32310 },
32311 "node" : {
32312 "description" : "The cluster node name.",
32313 "format" : "pve-node",
32314 "type" : "string",
32315 "typetext" : "<string>"
32316 }
32317 }
32318 },
32319 "permissions" : {
32320 "check" : [
32321 "perm",
32322 "/",
32323 [
32324 "Sys.Modify"
32325 ]
32326 ]
32327 },
32328 "protected" : 1,
32329 "proxyto" : "node",
32330 "returns" : {
32331 "type" : "string"
32332 }
e2d681b3
TL
32333 }
32334 },
32335 "leaf" : 1,
5f26e15b
TL
32336 "path" : "/nodes/{node}/ceph/mgr/{id}",
32337 "text" : "{id}"
e2d681b3
TL
32338 }
32339 ],
32340 "info" : {
1e3f8156 32341 "GET" : {
e9cd3bd4 32342 "allowtoken" : 1,
1e3f8156
TL
32343 "description" : "MGR directory index.",
32344 "method" : "GET",
32345 "name" : "index",
e2d681b3
TL
32346 "parameters" : {
32347 "additionalProperties" : 0,
32348 "properties" : {
32349 "node" : {
32350 "description" : "The cluster node name.",
32351 "format" : "pve-node",
32352 "type" : "string",
32353 "typetext" : "<string>"
32354 }
32355 }
32356 },
32357 "permissions" : {
32358 "check" : [
32359 "perm",
32360 "/",
32361 [
1e3f8156
TL
32362 "Sys.Audit",
32363 "Datastore.Audit"
32364 ],
32365 "any",
32366 1
e2d681b3
TL
32367 ]
32368 },
32369 "protected" : 1,
5f26e15b 32370 "proxyto" : "node",
e2d681b3 32371 "returns" : {
1e3f8156
TL
32372 "items" : {
32373 "properties" : {
32374 "addr" : {
32375 "optional" : 1,
32376 "type" : "string"
32377 },
32378 "host" : {
32379 "optional" : 1,
32380 "type" : "string"
32381 },
32382 "name" : {
32383 "description" : "The name (ID) for the MGR"
32384 },
32385 "state" : {
32386 "description" : "State of the MGR",
32387 "type" : "string"
32388 }
32389 },
32390 "type" : "object"
32391 },
32392 "links" : [
32393 {
32394 "href" : "{name}",
32395 "rel" : "child"
32396 }
32397 ],
32398 "type" : "array"
e2d681b3
TL
32399 }
32400 }
32401 },
32402 "leaf" : 0,
5f26e15b
TL
32403 "path" : "/nodes/{node}/ceph/mgr",
32404 "text" : "mgr"
e2d681b3 32405 },
4d47f125 32406 {
5f26e15b
TL
32407 "children" : [
32408 {
32409 "info" : {
32410 "DELETE" : {
e9cd3bd4 32411 "allowtoken" : 1,
5f26e15b
TL
32412 "description" : "Destroy Ceph Monitor and Manager.",
32413 "method" : "DELETE",
32414 "name" : "destroymon",
32415 "parameters" : {
32416 "additionalProperties" : 0,
32417 "properties" : {
1e3f8156
TL
32418 "monid" : {
32419 "description" : "Monitor ID",
32420 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
32421 "type" : "string"
32422 },
32423 "node" : {
32424 "description" : "The cluster node name.",
32425 "format" : "pve-node",
32426 "type" : "string",
32427 "typetext" : "<string>"
32428 }
32429 }
32430 },
32431 "permissions" : {
32432 "check" : [
32433 "perm",
32434 "/",
32435 [
32436 "Sys.Modify"
32437 ]
32438 ]
32439 },
32440 "protected" : 1,
32441 "proxyto" : "node",
32442 "returns" : {
32443 "type" : "string"
32444 }
32445 },
32446 "POST" : {
e9cd3bd4 32447 "allowtoken" : 1,
1e3f8156
TL
32448 "description" : "Create Ceph Monitor and Manager",
32449 "method" : "POST",
32450 "name" : "createmon",
32451 "parameters" : {
32452 "additionalProperties" : 0,
32453 "properties" : {
32454 "mon-address" : {
0695fdaf
TL
32455 "description" : "Overwrites autodetected monitor IP address(es). Must be in the public network(s) of Ceph.",
32456 "format" : "ip-list",
5f26e15b 32457 "optional" : 1,
1e3f8156
TL
32458 "type" : "string",
32459 "typetext" : "<string>"
5f26e15b
TL
32460 },
32461 "monid" : {
1e3f8156 32462 "description" : "The ID for the monitor, when omitted the same as the nodename",
c5aa7e14 32463 "maxLength" : 200,
1e3f8156 32464 "optional" : 1,
5f26e15b
TL
32465 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
32466 "type" : "string"
32467 },
32468 "node" : {
32469 "description" : "The cluster node name.",
32470 "format" : "pve-node",
32471 "type" : "string",
32472 "typetext" : "<string>"
32473 }
32474 }
32475 },
32476 "permissions" : {
32477 "check" : [
32478 "perm",
32479 "/",
32480 [
32481 "Sys.Modify"
32482 ]
32483 ]
32484 },
32485 "protected" : 1,
32486 "proxyto" : "node",
32487 "returns" : {
7aacca6f 32488 "type" : "string"
56122987 32489 }
4d47f125 32490 }
56122987 32491 },
5f26e15b
TL
32492 "leaf" : 1,
32493 "path" : "/nodes/{node}/ceph/mon/{monid}",
32494 "text" : "{monid}"
32495 }
32496 ],
32497 "info" : {
32498 "GET" : {
e9cd3bd4 32499 "allowtoken" : 1,
5f26e15b
TL
32500 "description" : "Get Ceph monitor list.",
32501 "method" : "GET",
32502 "name" : "listmon",
32503 "parameters" : {
32504 "additionalProperties" : 0,
32505 "properties" : {
32506 "node" : {
32507 "description" : "The cluster node name.",
32508 "format" : "pve-node",
32509 "type" : "string",
32510 "typetext" : "<string>"
32511 }
32512 }
32513 },
4d47f125
TL
32514 "permissions" : {
32515 "check" : [
32516 "perm",
32517 "/",
32518 [
32519 "Sys.Audit",
32520 "Datastore.Audit"
32521 ],
32522 "any",
32523 1
32524 ]
56122987 32525 },
4d47f125
TL
32526 "protected" : 1,
32527 "proxyto" : "node",
32528 "returns" : {
32529 "items" : {
32530 "properties" : {
5f26e15b 32531 "addr" : {
1e3f8156
TL
32532 "optional" : 1,
32533 "type" : "string"
32534 },
32535 "host" : {
32536 "optional" : 1,
4d47f125
TL
32537 "type" : "string"
32538 },
5f26e15b 32539 "name" : {
4d47f125
TL
32540 "type" : "string"
32541 }
7aacca6f 32542 },
4d47f125
TL
32543 "type" : "object"
32544 },
5f26e15b
TL
32545 "links" : [
32546 {
32547 "href" : "{name}",
32548 "rel" : "child"
32549 }
32550 ],
4d47f125
TL
32551 "type" : "array"
32552 }
4d47f125
TL
32553 }
32554 },
5f26e15b
TL
32555 "leaf" : 0,
32556 "path" : "/nodes/{node}/ceph/mon",
32557 "text" : "mon"
4d47f125
TL
32558 },
32559 {
32560 "children" : [
32561 {
32562 "info" : {
5f26e15b 32563 "POST" : {
e9cd3bd4 32564 "allowtoken" : 1,
5f26e15b
TL
32565 "description" : "Create a Ceph filesystem",
32566 "method" : "POST",
32567 "name" : "createfs",
4d47f125
TL
32568 "parameters" : {
32569 "additionalProperties" : 0,
32570 "properties" : {
5f26e15b 32571 "add-storage" : {
4d47f125 32572 "default" : 0,
5f26e15b 32573 "description" : "Configure the created CephFS as storage for this cluster.",
4d47f125
TL
32574 "optional" : 1,
32575 "type" : "boolean",
32576 "typetext" : "<boolean>"
32577 },
5f26e15b
TL
32578 "name" : {
32579 "default" : "cephfs",
32580 "description" : "The ceph filesystem name.",
32581 "optional" : 1,
32582 "type" : "string",
32583 "typetext" : "<string>"
4d47f125
TL
32584 },
32585 "node" : {
32586 "description" : "The cluster node name.",
32587 "format" : "pve-node",
32588 "type" : "string",
32589 "typetext" : "<string>"
5f26e15b
TL
32590 },
32591 "pg_num" : {
32592 "default" : 128,
32593 "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
32594 "maximum" : 32768,
32595 "minimum" : 8,
32596 "optional" : 1,
32597 "type" : "integer",
32598 "typetext" : "<integer> (8 - 32768)"
4d47f125
TL
32599 }
32600 }
7aacca6f 32601 },
4d47f125
TL
32602 "permissions" : {
32603 "check" : [
32604 "perm",
32605 "/",
32606 [
32607 "Sys.Modify"
32608 ]
32609 ]
7aacca6f 32610 },
4d47f125
TL
32611 "protected" : 1,
32612 "proxyto" : "node",
32613 "returns" : {
44660702 32614 "type" : "string"
4d47f125
TL
32615 }
32616 }
32617 },
32618 "leaf" : 1,
5f26e15b
TL
32619 "path" : "/nodes/{node}/ceph/fs/{name}",
32620 "text" : "{name}"
4d47f125
TL
32621 }
32622 ],
32623 "info" : {
32624 "GET" : {
e9cd3bd4 32625 "allowtoken" : 1,
5f26e15b 32626 "description" : "Directory index.",
4d47f125 32627 "method" : "GET",
5f26e15b 32628 "name" : "index",
4d47f125
TL
32629 "parameters" : {
32630 "additionalProperties" : 0,
32631 "properties" : {
32632 "node" : {
32633 "description" : "The cluster node name.",
32634 "format" : "pve-node",
32635 "type" : "string",
32636 "typetext" : "<string>"
32637 }
32638 }
32639 },
32640 "permissions" : {
32641 "check" : [
32642 "perm",
32643 "/",
32644 [
32645 "Sys.Audit",
32646 "Datastore.Audit"
32647 ],
32648 "any",
32649 1
32650 ]
32651 },
32652 "protected" : 1,
95895385 32653 "proxyto" : "node",
4d47f125
TL
32654 "returns" : {
32655 "items" : {
32656 "properties" : {
5f26e15b
TL
32657 "data_pool" : {
32658 "description" : "The name of the data pool.",
32659 "type" : "string"
32660 },
32661 "metadata_pool" : {
32662 "description" : "The name of the metadata pool.",
4d47f125
TL
32663 "type" : "string"
32664 },
32665 "name" : {
5f26e15b 32666 "description" : "The ceph filesystem name.",
4d47f125
TL
32667 "type" : "string"
32668 }
7aacca6f 32669 },
4d47f125
TL
32670 "type" : "object"
32671 },
32672 "links" : [
32673 {
32674 "href" : "{name}",
32675 "rel" : "child"
32676 }
32677 ],
32678 "type" : "array"
32679 }
5f26e15b
TL
32680 }
32681 },
32682 "leaf" : 0,
32683 "path" : "/nodes/{node}/ceph/fs",
32684 "text" : "fs"
32685 },
d2656385
TL
32686 {
32687 "children" : [
32688 {
32689 "info" : {
32690 "DELETE" : {
32691 "allowtoken" : 1,
32692 "description" : "Destroy pool",
32693 "method" : "DELETE",
32694 "name" : "destroypool",
32695 "parameters" : {
32696 "additionalProperties" : 0,
32697 "properties" : {
32698 "force" : {
32699 "default" : 0,
32700 "description" : "If true, destroys pool even if in use",
32701 "optional" : 1,
32702 "type" : "boolean",
32703 "typetext" : "<boolean>"
32704 },
32705 "name" : {
32706 "description" : "The name of the pool. It must be unique.",
32707 "type" : "string",
32708 "typetext" : "<string>"
32709 },
32710 "node" : {
32711 "description" : "The cluster node name.",
32712 "format" : "pve-node",
32713 "type" : "string",
32714 "typetext" : "<string>"
32715 },
32716 "remove_storages" : {
32717 "default" : 0,
32718 "description" : "Remove all pveceph-managed storages configured for this pool",
32719 "optional" : 1,
32720 "type" : "boolean",
32721 "typetext" : "<boolean>"
32722 }
32723 }
32724 },
32725 "permissions" : {
32726 "check" : [
32727 "perm",
32728 "/",
32729 [
32730 "Sys.Modify"
32731 ]
32732 ]
32733 },
32734 "protected" : 1,
32735 "proxyto" : "node",
32736 "returns" : {
32737 "type" : "string"
32738 }
32739 },
32740 "GET" : {
32741 "allowtoken" : 1,
32742 "description" : "List pool settings.",
32743 "method" : "GET",
32744 "name" : "getpool",
32745 "parameters" : {
32746 "additionalProperties" : 0,
32747 "properties" : {
32748 "name" : {
32749 "description" : "The name of the pool. It must be unique.",
32750 "type" : "string",
32751 "typetext" : "<string>"
32752 },
32753 "node" : {
32754 "description" : "The cluster node name.",
32755 "format" : "pve-node",
32756 "type" : "string",
32757 "typetext" : "<string>"
32758 },
32759 "verbose" : {
32760 "default" : 0,
32761 "description" : "If enabled, will display additional data(eg. statistics).",
32762 "optional" : 1,
32763 "type" : "boolean",
32764 "typetext" : "<boolean>"
32765 }
32766 }
32767 },
32768 "permissions" : {
32769 "check" : [
32770 "perm",
32771 "/",
32772 [
32773 "Sys.Audit",
32774 "Datastore.Audit"
32775 ],
32776 "any",
32777 1
32778 ]
32779 },
32780 "protected" : 1,
32781 "proxyto" : "node",
32782 "returns" : {
32783 "properties" : {
32784 "application" : {
32785 "default" : "rbd",
32786 "description" : "The application of the pool.",
32787 "enum" : [
32788 "rbd",
32789 "cephfs",
32790 "rgw"
32791 ],
32792 "optional" : 1,
32793 "title" : "Application",
32794 "type" : "string"
32795 },
32796 "application_list" : {
32797 "optional" : 1,
32798 "title" : "Application",
32799 "type" : "array"
32800 },
32801 "autoscale_status" : {
32802 "optional" : 1,
32803 "title" : "Autoscale Status",
32804 "type" : "object"
32805 },
32806 "crush_rule" : {
32807 "description" : "The rule to use for mapping object placement in the cluster.",
32808 "optional" : 1,
32809 "title" : "Crush Rule Name",
32810 "type" : "string"
32811 },
32812 "fast_read" : {
32813 "title" : "Fast Read",
32814 "type" : "boolean"
32815 },
32816 "hashpspool" : {
32817 "title" : "hashpspool",
32818 "type" : "boolean"
32819 },
32820 "id" : {
32821 "title" : "ID",
32822 "type" : "integer"
32823 },
32824 "min_size" : {
32825 "default" : 2,
32826 "description" : "Minimum number of replicas per object",
32827 "maximum" : 7,
32828 "minimum" : 1,
32829 "optional" : 1,
32830 "title" : "Min Size",
32831 "type" : "integer"
32832 },
32833 "name" : {
32834 "description" : "The name of the pool. It must be unique.",
32835 "title" : "Name",
32836 "type" : "string"
32837 },
32838 "nodeep-scrub" : {
32839 "title" : "nodeep-scrub",
32840 "type" : "boolean"
32841 },
32842 "nodelete" : {
32843 "title" : "nodelete",
32844 "type" : "boolean"
32845 },
32846 "nopgchange" : {
32847 "title" : "nopgchange",
32848 "type" : "boolean"
32849 },
32850 "noscrub" : {
32851 "title" : "noscrub",
32852 "type" : "boolean"
32853 },
32854 "nosizechange" : {
32855 "title" : "nosizechange",
32856 "type" : "boolean"
32857 },
32858 "pg_autoscale_mode" : {
32859 "default" : "warn",
32860 "description" : "The automatic PG scaling mode of the pool.",
32861 "enum" : [
32862 "on",
32863 "off",
32864 "warn"
32865 ],
32866 "optional" : 1,
32867 "title" : "PG Autoscale Mode",
32868 "type" : "string"
32869 },
32870 "pg_num" : {
32871 "default" : 128,
32872 "description" : "Number of placement groups.",
32873 "maximum" : 32768,
32874 "minimum" : 1,
32875 "optional" : 1,
32876 "title" : "PG Num",
32877 "type" : "integer"
32878 },
32879 "pg_num_min" : {
32880 "description" : "Minimal number of placement groups.",
32881 "maximum" : 32768,
32882 "optional" : 1,
32883 "title" : "min. PG Num",
32884 "type" : "integer"
32885 },
32886 "pgp_num" : {
32887 "title" : "PGP num",
32888 "type" : "integer"
32889 },
32890 "size" : {
32891 "default" : 3,
32892 "description" : "Number of replicas per object",
32893 "maximum" : 7,
32894 "minimum" : 1,
32895 "optional" : 1,
32896 "title" : "Size",
32897 "type" : "integer"
32898 },
32899 "statistics" : {
32900 "optional" : 1,
32901 "title" : "Statistics",
32902 "type" : "object"
32903 },
32904 "target_size" : {
32905 "description" : "The estimated target size of the pool for the PG autoscaler.",
32906 "optional" : 1,
32907 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
32908 "title" : "PG Autoscale Target Size",
32909 "type" : "string"
32910 },
32911 "target_size_ratio" : {
32912 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
32913 "optional" : 1,
32914 "title" : "PG Autoscale Target Ratio",
32915 "type" : "number"
32916 },
32917 "use_gmt_hitset" : {
32918 "title" : "use_gmt_hitset",
32919 "type" : "boolean"
32920 },
32921 "write_fadvise_dontneed" : {
32922 "title" : "write_fadvise_dontneed",
32923 "type" : "boolean"
32924 }
32925 },
32926 "type" : "object"
32927 }
32928 },
32929 "PUT" : {
32930 "allowtoken" : 1,
32931 "description" : "Change POOL settings",
32932 "method" : "PUT",
32933 "name" : "setpool",
32934 "parameters" : {
32935 "additionalProperties" : 0,
32936 "properties" : {
32937 "application" : {
32938 "description" : "The application of the pool.",
32939 "enum" : [
32940 "rbd",
32941 "cephfs",
32942 "rgw"
32943 ],
32944 "optional" : 1,
32945 "title" : "Application",
32946 "type" : "string"
32947 },
32948 "crush_rule" : {
32949 "description" : "The rule to use for mapping object placement in the cluster.",
32950 "optional" : 1,
32951 "title" : "Crush Rule Name",
32952 "type" : "string",
32953 "typetext" : "<string>"
32954 },
32955 "min_size" : {
32956 "description" : "Minimum number of replicas per object",
32957 "maximum" : 7,
32958 "minimum" : 1,
32959 "optional" : 1,
32960 "title" : "Min Size",
32961 "type" : "integer",
32962 "typetext" : "<integer> (1 - 7)"
32963 },
32964 "name" : {
32965 "description" : "The name of the pool. It must be unique.",
32966 "title" : "Name",
32967 "type" : "string",
32968 "typetext" : "<string>"
32969 },
32970 "node" : {
32971 "description" : "The cluster node name.",
32972 "format" : "pve-node",
32973 "type" : "string",
32974 "typetext" : "<string>"
32975 },
32976 "pg_autoscale_mode" : {
32977 "description" : "The automatic PG scaling mode of the pool.",
32978 "enum" : [
32979 "on",
32980 "off",
32981 "warn"
32982 ],
32983 "optional" : 1,
32984 "title" : "PG Autoscale Mode",
32985 "type" : "string"
32986 },
32987 "pg_num" : {
32988 "description" : "Number of placement groups.",
32989 "maximum" : 32768,
32990 "minimum" : 1,
32991 "optional" : 1,
32992 "title" : "PG Num",
32993 "type" : "integer",
32994 "typetext" : "<integer> (1 - 32768)"
32995 },
32996 "pg_num_min" : {
32997 "description" : "Minimal number of placement groups.",
32998 "maximum" : 32768,
32999 "optional" : 1,
33000 "title" : "min. PG Num",
33001 "type" : "integer",
33002 "typetext" : "<integer> (-N - 32768)"
33003 },
33004 "size" : {
33005 "description" : "Number of replicas per object",
33006 "maximum" : 7,
33007 "minimum" : 1,
33008 "optional" : 1,
33009 "title" : "Size",
33010 "type" : "integer",
33011 "typetext" : "<integer> (1 - 7)"
33012 },
33013 "target_size" : {
33014 "description" : "The estimated target size of the pool for the PG autoscaler.",
33015 "optional" : 1,
33016 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
33017 "title" : "PG Autoscale Target Size",
33018 "type" : "string"
33019 },
33020 "target_size_ratio" : {
33021 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
33022 "optional" : 1,
33023 "title" : "PG Autoscale Target Ratio",
33024 "type" : "number",
33025 "typetext" : "<number>"
33026 }
33027 }
33028 },
33029 "permissions" : {
33030 "check" : [
33031 "perm",
33032 "/",
33033 [
33034 "Sys.Modify"
33035 ]
33036 ]
33037 },
33038 "protected" : 1,
33039 "proxyto" : "node",
33040 "returns" : {
33041 "type" : "string"
33042 }
33043 }
33044 },
33045 "leaf" : 1,
33046 "path" : "/nodes/{node}/ceph/pools/{name}",
33047 "text" : "{name}"
33048 }
33049 ],
33050 "info" : {
33051 "GET" : {
33052 "allowtoken" : 1,
33053 "description" : "List all pools.",
33054 "method" : "GET",
33055 "name" : "lspools",
33056 "parameters" : {
33057 "additionalProperties" : 0,
33058 "properties" : {
33059 "node" : {
33060 "description" : "The cluster node name.",
33061 "format" : "pve-node",
33062 "type" : "string",
33063 "typetext" : "<string>"
33064 }
33065 }
33066 },
33067 "permissions" : {
33068 "check" : [
33069 "perm",
33070 "/",
33071 [
33072 "Sys.Audit",
33073 "Datastore.Audit"
33074 ],
33075 "any",
33076 1
33077 ]
33078 },
33079 "protected" : 1,
33080 "proxyto" : "node",
33081 "returns" : {
33082 "items" : {
33083 "properties" : {
33084 "autoscale_status" : {
33085 "optional" : 1,
33086 "title" : "Autoscale Status",
33087 "type" : "object"
33088 },
33089 "bytes_used" : {
33090 "title" : "Used",
33091 "type" : "integer"
33092 },
33093 "crush_rule" : {
33094 "title" : "Crush Rule",
33095 "type" : "integer"
33096 },
33097 "crush_rule_name" : {
33098 "title" : "Crush Rule Name",
33099 "type" : "string"
33100 },
33101 "min_size" : {
33102 "title" : "Min Size",
33103 "type" : "integer"
33104 },
33105 "percent_used" : {
33106 "title" : "%-Used",
33107 "type" : "number"
33108 },
33109 "pg_autoscale_mode" : {
33110 "optional" : 1,
33111 "title" : "PG Autoscale Mode",
33112 "type" : "string"
33113 },
33114 "pg_num" : {
33115 "title" : "PG Num",
33116 "type" : "integer"
33117 },
33118 "pg_num_final" : {
33119 "optional" : 1,
33120 "title" : "Optimal PG Num",
33121 "type" : "integer"
33122 },
33123 "pg_num_min" : {
33124 "optional" : 1,
33125 "title" : "min. PG Num",
33126 "type" : "integer"
33127 },
33128 "pool" : {
33129 "title" : "ID",
33130 "type" : "integer"
33131 },
33132 "pool_name" : {
33133 "title" : "Name",
33134 "type" : "string"
33135 },
33136 "size" : {
33137 "title" : "Size",
33138 "type" : "integer"
33139 },
33140 "target_size" : {
33141 "optional" : 1,
33142 "title" : "PG Autoscale Target Size",
33143 "type" : "integer"
33144 },
33145 "target_size_ratio" : {
33146 "optional" : 1,
33147 "title" : "PG Autoscale Target Ratio",
33148 "type" : "number"
33149 }
33150 },
33151 "type" : "object"
33152 },
33153 "links" : [
33154 {
33155 "href" : "{pool_name}",
33156 "rel" : "child"
33157 }
33158 ],
33159 "type" : "array"
33160 }
33161 },
33162 "POST" : {
33163 "allowtoken" : 1,
33164 "description" : "Create POOL",
33165 "method" : "POST",
33166 "name" : "createpool",
33167 "parameters" : {
33168 "additionalProperties" : 0,
33169 "properties" : {
33170 "add_storages" : {
33171 "description" : "Configure VM and CT storage using the new pool.",
33172 "optional" : 1,
33173 "type" : "boolean",
33174 "typetext" : "<boolean>"
33175 },
33176 "application" : {
33177 "default" : "rbd",
33178 "description" : "The application of the pool.",
33179 "enum" : [
33180 "rbd",
33181 "cephfs",
33182 "rgw"
33183 ],
33184 "optional" : 1,
33185 "title" : "Application",
33186 "type" : "string"
33187 },
33188 "crush_rule" : {
33189 "description" : "The rule to use for mapping object placement in the cluster.",
33190 "optional" : 1,
33191 "title" : "Crush Rule Name",
33192 "type" : "string",
33193 "typetext" : "<string>"
33194 },
33195 "min_size" : {
33196 "default" : 2,
33197 "description" : "Minimum number of replicas per object",
33198 "maximum" : 7,
33199 "minimum" : 1,
33200 "optional" : 1,
33201 "title" : "Min Size",
33202 "type" : "integer",
33203 "typetext" : "<integer> (1 - 7)"
33204 },
33205 "name" : {
33206 "description" : "The name of the pool. It must be unique.",
33207 "title" : "Name",
33208 "type" : "string",
33209 "typetext" : "<string>"
33210 },
33211 "node" : {
33212 "description" : "The cluster node name.",
33213 "format" : "pve-node",
33214 "type" : "string",
33215 "typetext" : "<string>"
33216 },
33217 "pg_autoscale_mode" : {
33218 "default" : "warn",
33219 "description" : "The automatic PG scaling mode of the pool.",
33220 "enum" : [
33221 "on",
33222 "off",
33223 "warn"
33224 ],
33225 "optional" : 1,
33226 "title" : "PG Autoscale Mode",
33227 "type" : "string"
33228 },
33229 "pg_num" : {
33230 "default" : 128,
33231 "description" : "Number of placement groups.",
33232 "maximum" : 32768,
33233 "minimum" : 1,
33234 "optional" : 1,
33235 "title" : "PG Num",
33236 "type" : "integer",
33237 "typetext" : "<integer> (1 - 32768)"
33238 },
33239 "pg_num_min" : {
33240 "description" : "Minimal number of placement groups.",
33241 "maximum" : 32768,
33242 "optional" : 1,
33243 "title" : "min. PG Num",
33244 "type" : "integer",
33245 "typetext" : "<integer> (-N - 32768)"
33246 },
33247 "size" : {
33248 "default" : 3,
33249 "description" : "Number of replicas per object",
33250 "maximum" : 7,
33251 "minimum" : 1,
33252 "optional" : 1,
33253 "title" : "Size",
33254 "type" : "integer",
33255 "typetext" : "<integer> (1 - 7)"
33256 },
33257 "target_size" : {
33258 "description" : "The estimated target size of the pool for the PG autoscaler.",
33259 "optional" : 1,
33260 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
33261 "title" : "PG Autoscale Target Size",
33262 "type" : "string"
33263 },
33264 "target_size_ratio" : {
33265 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
33266 "optional" : 1,
33267 "title" : "PG Autoscale Target Ratio",
33268 "type" : "number",
33269 "typetext" : "<number>"
33270 }
33271 }
33272 },
33273 "permissions" : {
33274 "check" : [
33275 "perm",
33276 "/",
33277 [
33278 "Sys.Modify"
33279 ]
33280 ]
33281 },
33282 "protected" : 1,
33283 "proxyto" : "node",
33284 "returns" : {
33285 "type" : "string"
33286 }
33287 }
33288 },
33289 "leaf" : 0,
33290 "path" : "/nodes/{node}/ceph/pools",
33291 "text" : "pools"
33292 },
5f26e15b
TL
33293 {
33294 "info" : {
33295 "GET" : {
e9cd3bd4 33296 "allowtoken" : 1,
5f26e15b
TL
33297 "description" : "Get Ceph configuration.",
33298 "method" : "GET",
33299 "name" : "config",
33300 "parameters" : {
33301 "additionalProperties" : 0,
33302 "properties" : {
4d47f125
TL
33303 "node" : {
33304 "description" : "The cluster node name.",
33305 "format" : "pve-node",
33306 "type" : "string",
33307 "typetext" : "<string>"
7aacca6f 33308 }
4d47f125 33309 }
44660702 33310 },
4d47f125
TL
33311 "permissions" : {
33312 "check" : [
33313 "perm",
33314 "/",
33315 [
5f26e15b
TL
33316 "Sys.Audit",
33317 "Datastore.Audit"
33318 ],
33319 "any",
33320 1
4d47f125 33321 ]
56122987 33322 },
95895385 33323 "proxyto" : "node",
4d47f125 33324 "returns" : {
7aacca6f 33325 "type" : "string"
4d47f125
TL
33326 }
33327 }
33328 },
5f26e15b
TL
33329 "leaf" : 1,
33330 "path" : "/nodes/{node}/ceph/config",
33331 "text" : "config"
4d47f125 33332 },
7cbed89a
TL
33333 {
33334 "info" : {
33335 "GET" : {
e9cd3bd4 33336 "allowtoken" : 1,
7cbed89a
TL
33337 "description" : "Get Ceph configuration database.",
33338 "method" : "GET",
33339 "name" : "configdb",
33340 "parameters" : {
33341 "additionalProperties" : 0,
33342 "properties" : {
33343 "node" : {
33344 "description" : "The cluster node name.",
33345 "format" : "pve-node",
33346 "type" : "string",
33347 "typetext" : "<string>"
33348 }
33349 }
33350 },
33351 "permissions" : {
33352 "check" : [
33353 "perm",
33354 "/",
33355 [
33356 "Sys.Audit",
33357 "Datastore.Audit"
33358 ],
33359 "any",
33360 1
33361 ]
33362 },
33363 "protected" : 1,
33364 "proxyto" : "node",
33365 "returns" : {
33366 "items" : {
33367 "properties" : {
33368 "can_update_at_runtime" : {
33369 "type" : "boolean"
33370 },
33371 "level" : {
33372 "type" : "string"
33373 },
33374 "mask" : {
33375 "type" : "string"
33376 },
33377 "name" : {
33378 "type" : "string"
33379 },
33380 "section" : {
33381 "type" : "string"
33382 },
33383 "value" : {
33384 "type" : "string"
33385 }
33386 },
33387 "type" : "object"
33388 },
33389 "type" : "array"
33390 }
33391 }
33392 },
33393 "leaf" : 1,
33394 "path" : "/nodes/{node}/ceph/configdb",
33395 "text" : "configdb"
33396 },
4d47f125
TL
33397 {
33398 "info" : {
33399 "POST" : {
e9cd3bd4 33400 "allowtoken" : 1,
4d47f125
TL
33401 "description" : "Create initial ceph default configuration and setup symlinks.",
33402 "method" : "POST",
33403 "name" : "init",
33404 "parameters" : {
33405 "additionalProperties" : 0,
33406 "properties" : {
e2d681b3
TL
33407 "cluster-network" : {
33408 "description" : "Declare a separate cluster network, OSDs will routeheartbeat, object replication and recovery traffic over it",
33409 "format" : "CIDR",
33410 "maxLength" : 128,
33411 "optional" : 1,
33412 "requires" : "network",
33413 "type" : "string",
33414 "typetext" : "<string>"
33415 },
4d47f125
TL
33416 "disable_cephx" : {
33417 "default" : 0,
1e3f8156 33418 "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 33419 "optional" : 1,
4d47f125
TL
33420 "type" : "boolean",
33421 "typetext" : "<boolean>"
56122987 33422 },
4d47f125
TL
33423 "min_size" : {
33424 "default" : 2,
33425 "description" : "Minimum number of available replicas per object to allow I/O",
33426 "maximum" : 7,
33427 "minimum" : 1,
7aacca6f 33428 "optional" : 1,
4d47f125
TL
33429 "type" : "integer",
33430 "typetext" : "<integer> (1 - 7)"
7aacca6f 33431 },
4d47f125
TL
33432 "network" : {
33433 "description" : "Use specific network for all ceph related traffic",
33434 "format" : "CIDR",
33435 "maxLength" : 128,
5d9c884c 33436 "optional" : 1,
4d47f125
TL
33437 "type" : "string",
33438 "typetext" : "<string>"
5d9c884c 33439 },
4d47f125
TL
33440 "node" : {
33441 "description" : "The cluster node name.",
33442 "format" : "pve-node",
33443 "type" : "string",
33444 "typetext" : "<string>"
7aacca6f 33445 },
4d47f125
TL
33446 "pg_bits" : {
33447 "default" : 6,
33448 "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.",
33449 "maximum" : 14,
33450 "minimum" : 6,
de0983cb 33451 "optional" : 1,
4d47f125
TL
33452 "type" : "integer",
33453 "typetext" : "<integer> (6 - 14)"
de0983cb 33454 },
44660702 33455 "size" : {
4d47f125
TL
33456 "default" : 3,
33457 "description" : "Targeted number of replicas per object",
33458 "maximum" : 7,
33459 "minimum" : 1,
7aacca6f 33460 "optional" : 1,
4d47f125
TL
33461 "type" : "integer",
33462 "typetext" : "<integer> (1 - 7)"
56122987 33463 }
4d47f125 33464 }
44660702 33465 },
4d47f125
TL
33466 "permissions" : {
33467 "check" : [
33468 "perm",
33469 "/",
33470 [
33471 "Sys.Modify"
33472 ]
33473 ]
5da3d723 33474 },
4d47f125
TL
33475 "protected" : 1,
33476 "proxyto" : "node",
33477 "returns" : {
33478 "type" : "null"
33479 }
33480 }
33481 },
33482 "leaf" : 1,
33483 "path" : "/nodes/{node}/ceph/init",
33484 "text" : "init"
33485 },
4d47f125
TL
33486 {
33487 "info" : {
33488 "POST" : {
e9cd3bd4 33489 "allowtoken" : 1,
4d47f125
TL
33490 "description" : "Stop ceph services.",
33491 "method" : "POST",
33492 "name" : "stop",
33493 "parameters" : {
33494 "additionalProperties" : 0,
33495 "properties" : {
33496 "node" : {
33497 "description" : "The cluster node name.",
33498 "format" : "pve-node",
33499 "type" : "string",
33500 "typetext" : "<string>"
33501 },
33502 "service" : {
e2d681b3 33503 "default" : "ceph.target",
4d47f125
TL
33504 "description" : "Ceph service name.",
33505 "optional" : 1,
c5aa7e14 33506 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
33507 "type" : "string"
33508 }
33509 }
7aacca6f 33510 },
4d47f125
TL
33511 "permissions" : {
33512 "check" : [
33513 "perm",
33514 "/",
33515 [
33516 "Sys.Modify"
33517 ]
33518 ]
7aacca6f 33519 },
4d47f125
TL
33520 "protected" : 1,
33521 "proxyto" : "node",
33522 "returns" : {
33523 "type" : "string"
33524 }
33525 }
33526 },
33527 "leaf" : 1,
33528 "path" : "/nodes/{node}/ceph/stop",
33529 "text" : "stop"
33530 },
33531 {
33532 "info" : {
33533 "POST" : {
e9cd3bd4 33534 "allowtoken" : 1,
4d47f125
TL
33535 "description" : "Start ceph services.",
33536 "method" : "POST",
33537 "name" : "start",
33538 "parameters" : {
33539 "additionalProperties" : 0,
33540 "properties" : {
33541 "node" : {
33542 "description" : "The cluster node name.",
33543 "format" : "pve-node",
33544 "type" : "string",
33545 "typetext" : "<string>"
33546 },
33547 "service" : {
e2d681b3 33548 "default" : "ceph.target",
4d47f125
TL
33549 "description" : "Ceph service name.",
33550 "optional" : 1,
c5aa7e14 33551 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
33552 "type" : "string"
33553 }
33554 }
44660702 33555 },
4d47f125
TL
33556 "permissions" : {
33557 "check" : [
33558 "perm",
33559 "/",
33560 [
33561 "Sys.Modify"
33562 ]
33563 ]
44660702 33564 },
4d47f125
TL
33565 "protected" : 1,
33566 "proxyto" : "node",
33567 "returns" : {
33568 "type" : "string"
44660702 33569 }
7aacca6f
DM
33570 }
33571 },
4d47f125
TL
33572 "leaf" : 1,
33573 "path" : "/nodes/{node}/ceph/start",
33574 "text" : "start"
33575 },
e2d681b3
TL
33576 {
33577 "info" : {
33578 "POST" : {
e9cd3bd4 33579 "allowtoken" : 1,
e2d681b3
TL
33580 "description" : "Restart ceph services.",
33581 "method" : "POST",
33582 "name" : "restart",
33583 "parameters" : {
33584 "additionalProperties" : 0,
33585 "properties" : {
33586 "node" : {
33587 "description" : "The cluster node name.",
33588 "format" : "pve-node",
33589 "type" : "string",
33590 "typetext" : "<string>"
33591 },
33592 "service" : {
33593 "default" : "ceph.target",
33594 "description" : "Ceph service name.",
33595 "optional" : 1,
c5aa7e14 33596 "pattern" : "(mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
e2d681b3
TL
33597 "type" : "string"
33598 }
33599 }
33600 },
33601 "permissions" : {
33602 "check" : [
33603 "perm",
33604 "/",
33605 [
33606 "Sys.Modify"
33607 ]
33608 ]
33609 },
33610 "protected" : 1,
33611 "proxyto" : "node",
33612 "returns" : {
33613 "type" : "string"
33614 }
33615 }
33616 },
33617 "leaf" : 1,
33618 "path" : "/nodes/{node}/ceph/restart",
33619 "text" : "restart"
33620 },
4d47f125
TL
33621 {
33622 "info" : {
33623 "GET" : {
e9cd3bd4 33624 "allowtoken" : 1,
4d47f125
TL
33625 "description" : "Get ceph status.",
33626 "method" : "GET",
33627 "name" : "status",
33628 "parameters" : {
33629 "additionalProperties" : 0,
33630 "properties" : {
33631 "node" : {
33632 "description" : "The cluster node name.",
33633 "format" : "pve-node",
33634 "type" : "string",
33635 "typetext" : "<string>"
33636 }
33637 }
33638 },
33639 "permissions" : {
33640 "check" : [
33641 "perm",
33642 "/",
33643 [
33644 "Sys.Audit",
33645 "Datastore.Audit"
33646 ],
33647 "any",
33648 1
33649 ]
33650 },
33651 "protected" : 1,
33652 "proxyto" : "node",
33653 "returns" : {
d2656385 33654 "type" : "object"
44660702 33655 }
56122987 33656 }
44660702 33657 },
d2656385
TL
33658 "leaf" : 1,
33659 "path" : "/nodes/{node}/ceph/status",
33660 "text" : "status"
7aacca6f 33661 },
56122987 33662 {
56122987
DM
33663 "info" : {
33664 "GET" : {
e9cd3bd4 33665 "allowtoken" : 1,
4d47f125 33666 "description" : "Get OSD crush map",
44660702 33667 "method" : "GET",
4d47f125 33668 "name" : "crush",
56122987 33669 "parameters" : {
7aacca6f 33670 "additionalProperties" : 0,
56122987 33671 "properties" : {
56122987 33672 "node" : {
7aacca6f 33673 "description" : "The cluster node name.",
44660702 33674 "format" : "pve-node",
013dc89f
DM
33675 "type" : "string",
33676 "typetext" : "<string>"
56122987 33677 }
7aacca6f 33678 }
56122987 33679 },
56122987
DM
33680 "permissions" : {
33681 "check" : [
33682 "perm",
33683 "/",
33684 [
33685 "Sys.Audit",
33686 "Datastore.Audit"
33687 ],
33688 "any",
33689 1
33690 ]
44660702 33691 },
4d47f125
TL
33692 "protected" : 1,
33693 "proxyto" : "node",
44660702
DM
33694 "returns" : {
33695 "type" : "string"
7aacca6f
DM
33696 }
33697 }
44660702
DM
33698 },
33699 "leaf" : 1,
4d47f125
TL
33700 "path" : "/nodes/{node}/ceph/crush",
33701 "text" : "crush"
7aacca6f
DM
33702 },
33703 {
7aacca6f
DM
33704 "info" : {
33705 "GET" : {
e9cd3bd4 33706 "allowtoken" : 1,
4d47f125 33707 "description" : "Read ceph log",
7aacca6f 33708 "method" : "GET",
4d47f125 33709 "name" : "log",
7aacca6f
DM
33710 "parameters" : {
33711 "additionalProperties" : 0,
33712 "properties" : {
4d47f125
TL
33713 "limit" : {
33714 "minimum" : 0,
33715 "optional" : 1,
33716 "type" : "integer",
33717 "typetext" : "<integer> (0 - N)"
33718 },
7aacca6f 33719 "node" : {
7aacca6f 33720 "description" : "The cluster node name.",
44660702 33721 "format" : "pve-node",
013dc89f
DM
33722 "type" : "string",
33723 "typetext" : "<string>"
4d47f125
TL
33724 },
33725 "start" : {
33726 "minimum" : 0,
33727 "optional" : 1,
33728 "type" : "integer",
33729 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
33730 }
33731 }
33732 },
44660702
DM
33733 "permissions" : {
33734 "check" : [
33735 "perm",
4d47f125 33736 "/nodes/{node}",
44660702 33737 [
4d47f125
TL
33738 "Sys.Syslog"
33739 ]
44660702
DM
33740 ]
33741 },
7aacca6f 33742 "protected" : 1,
44660702 33743 "proxyto" : "node",
7aacca6f
DM
33744 "returns" : {
33745 "items" : {
33746 "properties" : {
4d47f125
TL
33747 "n" : {
33748 "description" : "Line number",
33749 "type" : "integer"
56122987 33750 },
4d47f125
TL
33751 "t" : {
33752 "description" : "Line text",
56122987
DM
33753 "type" : "string"
33754 }
7aacca6f
DM
33755 },
33756 "type" : "object"
56122987
DM
33757 },
33758 "type" : "array"
44660702 33759 }
4d47f125
TL
33760 }
33761 },
33762 "leaf" : 1,
33763 "path" : "/nodes/{node}/ceph/log",
33764 "text" : "log"
33765 },
33766 {
33767 "info" : {
33768 "GET" : {
e9cd3bd4 33769 "allowtoken" : 1,
4d47f125
TL
33770 "description" : "List ceph rules.",
33771 "method" : "GET",
33772 "name" : "rules",
44660702
DM
33773 "parameters" : {
33774 "additionalProperties" : 0,
33775 "properties" : {
33776 "node" : {
33777 "description" : "The cluster node name.",
33778 "format" : "pve-node",
013dc89f
DM
33779 "type" : "string",
33780 "typetext" : "<string>"
44660702
DM
33781 }
33782 }
33783 },
7aacca6f
DM
33784 "permissions" : {
33785 "check" : [
33786 "perm",
33787 "/",
33788 [
4d47f125
TL
33789 "Sys.Audit",
33790 "Datastore.Audit"
33791 ],
33792 "any",
33793 1
7aacca6f
DM
33794 ]
33795 },
44660702 33796 "protected" : 1,
7aacca6f 33797 "proxyto" : "node",
56122987 33798 "returns" : {
4d47f125
TL
33799 "items" : {
33800 "properties" : {},
33801 "type" : "object"
33802 },
33803 "links" : [
33804 {
33805 "href" : "{name}",
33806 "rel" : "child"
33807 }
33808 ],
33809 "type" : "array"
44660702 33810 }
56122987 33811 }
44660702 33812 },
4d47f125
TL
33813 "leaf" : 1,
33814 "path" : "/nodes/{node}/ceph/rules",
33815 "text" : "rules"
33816 }
33817 ],
33818 "info" : {
33819 "GET" : {
e9cd3bd4 33820 "allowtoken" : 1,
4d47f125
TL
33821 "description" : "Directory index.",
33822 "method" : "GET",
33823 "name" : "index",
33824 "parameters" : {
33825 "additionalProperties" : 0,
33826 "properties" : {
33827 "node" : {
33828 "description" : "The cluster node name.",
33829 "format" : "pve-node",
33830 "type" : "string",
33831 "typetext" : "<string>"
33832 }
33833 }
33834 },
33835 "permissions" : {
33836 "check" : [
33837 "perm",
33838 "/",
33839 [
33840 "Sys.Audit",
33841 "Datastore.Audit"
33842 ],
33843 "any",
33844 1
33845 ]
33846 },
33847 "returns" : {
33848 "items" : {
33849 "properties" : {},
33850 "type" : "object"
33851 },
33852 "links" : [
33853 {
33854 "href" : "{name}",
33855 "rel" : "child"
33856 }
33857 ],
33858 "type" : "array"
33859 }
33860 }
33861 },
33862 "leaf" : 0,
33863 "path" : "/nodes/{node}/ceph",
33864 "text" : "ceph"
33865 },
33866 {
33867 "children" : [
e7084ef7
TL
33868 {
33869 "info" : {
33870 "GET" : {
33871 "allowtoken" : 1,
33872 "description" : "Get the currently configured vzdump defaults.",
33873 "method" : "GET",
33874 "name" : "defaults",
33875 "parameters" : {
33876 "additionalProperties" : 0,
33877 "properties" : {
33878 "node" : {
33879 "description" : "The cluster node name.",
33880 "format" : "pve-node",
33881 "type" : "string",
33882 "typetext" : "<string>"
33883 },
33884 "storage" : {
33885 "description" : "The storage identifier.",
33886 "format" : "pve-storage-id",
33887 "optional" : 1,
33888 "type" : "string",
33889 "typetext" : "<string>"
33890 }
33891 }
33892 },
33893 "permissions" : {
33894 "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.",
33895 "user" : "all"
33896 },
33897 "proxyto" : "node",
33898 "returns" : {
33899 "additionalProperties" : 0,
33900 "properties" : {
33901 "all" : {
33902 "default" : 0,
33903 "description" : "Backup all known guest systems on this host.",
33904 "optional" : 1,
33905 "type" : "boolean"
33906 },
33907 "bwlimit" : {
33908 "default" : 0,
33909 "description" : "Limit I/O bandwidth (KBytes per second).",
33910 "minimum" : 0,
33911 "optional" : 1,
33912 "type" : "integer"
33913 },
33914 "compress" : {
33915 "default" : "0",
33916 "description" : "Compress dump file.",
33917 "enum" : [
33918 "0",
33919 "1",
33920 "gzip",
33921 "lzo",
33922 "zstd"
33923 ],
33924 "optional" : 1,
33925 "type" : "string"
33926 },
33927 "dumpdir" : {
33928 "description" : "Store resulting files to specified directory.",
33929 "optional" : 1,
33930 "type" : "string"
33931 },
33932 "exclude" : {
33933 "description" : "Exclude specified guest systems (assumes --all)",
33934 "format" : "pve-vmid-list",
33935 "optional" : 1,
33936 "type" : "string"
33937 },
33938 "exclude-path" : {
33939 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
33940 "format" : "string-alist",
33941 "optional" : 1,
33942 "type" : "string"
33943 },
33944 "ionice" : {
33945 "default" : 7,
33946 "description" : "Set CFQ ionice priority.",
33947 "maximum" : 8,
33948 "minimum" : 0,
33949 "optional" : 1,
33950 "type" : "integer"
33951 },
33952 "lockwait" : {
33953 "default" : 180,
33954 "description" : "Maximal time to wait for the global lock (minutes).",
33955 "minimum" : 0,
33956 "optional" : 1,
33957 "type" : "integer"
33958 },
33959 "mailnotification" : {
33960 "default" : "always",
33961 "description" : "Specify when to send an email",
33962 "enum" : [
33963 "always",
33964 "failure"
33965 ],
33966 "optional" : 1,
33967 "type" : "string"
33968 },
33969 "mailto" : {
33970 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
33971 "format" : "email-or-username-list",
33972 "optional" : 1,
33973 "type" : "string"
33974 },
33975 "maxfiles" : {
0695fdaf 33976 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
e7084ef7
TL
33977 "minimum" : 1,
33978 "optional" : 1,
33979 "type" : "integer"
33980 },
33981 "mode" : {
33982 "default" : "snapshot",
33983 "description" : "Backup mode.",
33984 "enum" : [
33985 "snapshot",
33986 "suspend",
33987 "stop"
33988 ],
33989 "optional" : 1,
33990 "type" : "string"
33991 },
33992 "node" : {
33993 "description" : "Only run if executed on this node.",
33994 "format" : "pve-node",
33995 "optional" : 1,
33996 "type" : "string"
33997 },
33998 "pigz" : {
33999 "default" : 0,
34000 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
34001 "optional" : 1,
34002 "type" : "integer"
34003 },
34004 "pool" : {
34005 "description" : "Backup all known guest systems included in the specified pool.",
34006 "optional" : 1,
34007 "type" : "string"
34008 },
34009 "prune-backups" : {
0695fdaf 34010 "default" : "keep-all=1",
e7084ef7
TL
34011 "description" : "Use these retention options instead of those from the storage configuration.",
34012 "format" : "prune-backups",
34013 "optional" : 1,
34014 "type" : "string"
34015 },
34016 "quiet" : {
34017 "default" : 0,
34018 "description" : "Be quiet.",
34019 "optional" : 1,
34020 "type" : "boolean"
34021 },
34022 "remove" : {
34023 "default" : 1,
0695fdaf 34024 "description" : "Prune older backups according to 'prune-backups'.",
e7084ef7
TL
34025 "optional" : 1,
34026 "type" : "boolean"
34027 },
34028 "script" : {
34029 "description" : "Use specified hook script.",
34030 "optional" : 1,
34031 "type" : "string"
34032 },
e7084ef7
TL
34033 "stdexcludes" : {
34034 "default" : 1,
34035 "description" : "Exclude temporary files and logs.",
34036 "optional" : 1,
34037 "type" : "boolean"
34038 },
34039 "stop" : {
34040 "default" : 0,
34041 "description" : "Stop running backup jobs on this host.",
34042 "optional" : 1,
34043 "type" : "boolean"
34044 },
34045 "stopwait" : {
34046 "default" : 10,
34047 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
34048 "minimum" : 0,
34049 "optional" : 1,
34050 "type" : "integer"
34051 },
34052 "storage" : {
34053 "description" : "Store resulting file to this storage.",
34054 "format" : "pve-storage-id",
34055 "optional" : 1,
34056 "type" : "string"
34057 },
34058 "tmpdir" : {
34059 "description" : "Store temporary files to specified directory.",
34060 "optional" : 1,
34061 "type" : "string"
34062 },
34063 "vmid" : {
34064 "description" : "The ID of the guest system you want to backup.",
34065 "format" : "pve-vmid-list",
34066 "optional" : 1,
34067 "type" : "string"
34068 },
34069 "zstd" : {
34070 "default" : 1,
34071 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
34072 "optional" : 1,
34073 "type" : "integer"
34074 }
34075 },
34076 "type" : "object"
34077 }
34078 }
34079 },
34080 "leaf" : 1,
34081 "path" : "/nodes/{node}/vzdump/defaults",
34082 "text" : "defaults"
34083 },
56122987
DM
34084 {
34085 "info" : {
4d47f125 34086 "GET" : {
e9cd3bd4 34087 "allowtoken" : 1,
4d47f125
TL
34088 "description" : "Extract configuration from vzdump backup archive.",
34089 "method" : "GET",
34090 "name" : "extractconfig",
34091 "parameters" : {
34092 "additionalProperties" : 0,
34093 "properties" : {
44660702
DM
34094 "node" : {
34095 "description" : "The cluster node name.",
34096 "format" : "pve-node",
013dc89f
DM
34097 "type" : "string",
34098 "typetext" : "<string>"
44660702 34099 },
4d47f125
TL
34100 "volume" : {
34101 "description" : "Volume identifier",
34102 "type" : "string",
34103 "typetext" : "<string>"
44660702
DM
34104 }
34105 }
7aacca6f 34106 },
56122987 34107 "permissions" : {
4d47f125
TL
34108 "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.",
34109 "user" : "all"
56122987 34110 },
7aacca6f 34111 "protected" : 1,
44660702
DM
34112 "proxyto" : "node",
34113 "returns" : {
4d47f125 34114 "type" : "string"
7aacca6f
DM
34115 }
34116 }
34117 },
7aacca6f 34118 "leaf" : 1,
4d47f125
TL
34119 "path" : "/nodes/{node}/vzdump/extractconfig",
34120 "text" : "extractconfig"
34121 }
34122 ],
34123 "info" : {
34124 "POST" : {
e9cd3bd4 34125 "allowtoken" : 1,
4d47f125
TL
34126 "description" : "Create backup.",
34127 "method" : "POST",
34128 "name" : "vzdump",
34129 "parameters" : {
34130 "additionalProperties" : 0,
34131 "properties" : {
34132 "all" : {
34133 "default" : 0,
34134 "description" : "Backup all known guest systems on this host.",
34135 "optional" : 1,
34136 "type" : "boolean",
34137 "typetext" : "<boolean>"
34138 },
34139 "bwlimit" : {
34140 "default" : 0,
34141 "description" : "Limit I/O bandwidth (KBytes per second).",
34142 "minimum" : 0,
34143 "optional" : 1,
34144 "type" : "integer",
34145 "typetext" : "<integer> (0 - N)"
34146 },
34147 "compress" : {
34148 "default" : "0",
34149 "description" : "Compress dump file.",
34150 "enum" : [
34151 "0",
34152 "1",
34153 "gzip",
c5aa7e14
TL
34154 "lzo",
34155 "zstd"
4d47f125
TL
34156 ],
34157 "optional" : 1,
34158 "type" : "string"
34159 },
34160 "dumpdir" : {
34161 "description" : "Store resulting files to specified directory.",
34162 "optional" : 1,
34163 "type" : "string",
34164 "typetext" : "<string>"
34165 },
34166 "exclude" : {
34167 "description" : "Exclude specified guest systems (assumes --all)",
34168 "format" : "pve-vmid-list",
34169 "optional" : 1,
34170 "type" : "string",
34171 "typetext" : "<string>"
34172 },
34173 "exclude-path" : {
d2656385 34174 "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
34175 "format" : "string-alist",
34176 "optional" : 1,
34177 "type" : "string",
34178 "typetext" : "<string>"
34179 },
34180 "ionice" : {
34181 "default" : 7,
34182 "description" : "Set CFQ ionice priority.",
34183 "maximum" : 8,
34184 "minimum" : 0,
34185 "optional" : 1,
34186 "type" : "integer",
34187 "typetext" : "<integer> (0 - 8)"
34188 },
34189 "lockwait" : {
34190 "default" : 180,
34191 "description" : "Maximal time to wait for the global lock (minutes).",
34192 "minimum" : 0,
34193 "optional" : 1,
34194 "type" : "integer",
34195 "typetext" : "<integer> (0 - N)"
34196 },
34197 "mailnotification" : {
34198 "default" : "always",
34199 "description" : "Specify when to send an email",
34200 "enum" : [
34201 "always",
34202 "failure"
34203 ],
34204 "optional" : 1,
34205 "type" : "string"
34206 },
34207 "mailto" : {
d2656385
TL
34208 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
34209 "format" : "email-or-username-list",
4d47f125
TL
34210 "optional" : 1,
34211 "type" : "string",
34212 "typetext" : "<string>"
34213 },
34214 "maxfiles" : {
0695fdaf 34215 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
4d47f125
TL
34216 "minimum" : 1,
34217 "optional" : 1,
34218 "type" : "integer",
34219 "typetext" : "<integer> (1 - N)"
34220 },
34221 "mode" : {
34222 "default" : "snapshot",
34223 "description" : "Backup mode.",
34224 "enum" : [
34225 "snapshot",
34226 "suspend",
34227 "stop"
34228 ],
34229 "optional" : 1,
34230 "type" : "string"
34231 },
34232 "node" : {
34233 "description" : "Only run if executed on this node.",
34234 "format" : "pve-node",
34235 "optional" : 1,
34236 "type" : "string",
34237 "typetext" : "<string>"
34238 },
34239 "pigz" : {
34240 "default" : 0,
34241 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
34242 "optional" : 1,
34243 "type" : "integer",
34244 "typetext" : "<integer>"
34245 },
9226ccbc
TL
34246 "pool" : {
34247 "description" : "Backup all known guest systems included in the specified pool.",
34248 "optional" : 1,
34249 "type" : "string",
34250 "typetext" : "<string>"
34251 },
739d4d64 34252 "prune-backups" : {
0695fdaf 34253 "default" : "keep-all=1",
739d4d64
TL
34254 "description" : "Use these retention options instead of those from the storage configuration.",
34255 "format" : "prune-backups",
34256 "optional" : 1,
34257 "type" : "string",
4772952b 34258 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 34259 },
4d47f125
TL
34260 "quiet" : {
34261 "default" : 0,
34262 "description" : "Be quiet.",
34263 "optional" : 1,
34264 "type" : "boolean",
34265 "typetext" : "<boolean>"
34266 },
34267 "remove" : {
34268 "default" : 1,
0695fdaf 34269 "description" : "Prune older backups according to 'prune-backups'.",
4d47f125
TL
34270 "optional" : 1,
34271 "type" : "boolean",
34272 "typetext" : "<boolean>"
34273 },
34274 "script" : {
34275 "description" : "Use specified hook script.",
34276 "optional" : 1,
34277 "type" : "string",
34278 "typetext" : "<string>"
34279 },
4d47f125
TL
34280 "stdexcludes" : {
34281 "default" : 1,
34282 "description" : "Exclude temporary files and logs.",
34283 "optional" : 1,
34284 "type" : "boolean",
34285 "typetext" : "<boolean>"
34286 },
34287 "stdout" : {
34288 "description" : "Write tar to stdout, not to a file.",
34289 "optional" : 1,
34290 "type" : "boolean",
34291 "typetext" : "<boolean>"
34292 },
34293 "stop" : {
34294 "default" : 0,
1e3f8156 34295 "description" : "Stop running backup jobs on this host.",
4d47f125
TL
34296 "optional" : 1,
34297 "type" : "boolean",
34298 "typetext" : "<boolean>"
34299 },
34300 "stopwait" : {
34301 "default" : 10,
34302 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
34303 "minimum" : 0,
34304 "optional" : 1,
34305 "type" : "integer",
34306 "typetext" : "<integer> (0 - N)"
34307 },
34308 "storage" : {
34309 "description" : "Store resulting file to this storage.",
34310 "format" : "pve-storage-id",
34311 "optional" : 1,
34312 "type" : "string",
34313 "typetext" : "<string>"
34314 },
34315 "tmpdir" : {
34316 "description" : "Store temporary files to specified directory.",
34317 "optional" : 1,
34318 "type" : "string",
34319 "typetext" : "<string>"
34320 },
34321 "vmid" : {
34322 "description" : "The ID of the guest system you want to backup.",
34323 "format" : "pve-vmid-list",
34324 "optional" : 1,
34325 "type" : "string",
34326 "typetext" : "<string>"
c5aa7e14
TL
34327 },
34328 "zstd" : {
34329 "default" : 1,
34330 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
34331 "optional" : 1,
34332 "type" : "integer",
34333 "typetext" : "<integer>"
4d47f125
TL
34334 }
34335 }
34336 },
34337 "permissions" : {
4772952b 34338 "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
34339 "user" : "all"
34340 },
34341 "protected" : 1,
34342 "proxyto" : "node",
34343 "returns" : {
34344 "type" : "string"
34345 }
34346 }
34347 },
34348 "leaf" : 0,
34349 "path" : "/nodes/{node}/vzdump",
34350 "text" : "vzdump"
34351 },
34352 {
34353 "children" : [
2489d6df
WB
34354 {
34355 "children" : [
34356 {
34357 "info" : {
4d47f125 34358 "GET" : {
e9cd3bd4 34359 "allowtoken" : 1,
4d47f125
TL
34360 "description" : "Read service properties",
34361 "method" : "GET",
34362 "name" : "service_state",
2489d6df
WB
34363 "parameters" : {
34364 "additionalProperties" : 0,
34365 "properties" : {
2489d6df
WB
34366 "node" : {
34367 "description" : "The cluster node name.",
34368 "format" : "pve-node",
34369 "type" : "string",
34370 "typetext" : "<string>"
4d47f125
TL
34371 },
34372 "service" : {
34373 "description" : "Service ID",
34374 "enum" : [
5370fa8c 34375 "chrony",
4d47f125 34376 "corosync",
5370fa8c
TL
34377 "cron",
34378 "ksmtuned",
34379 "postfix",
34380 "pve-cluster",
4d47f125 34381 "pve-firewall",
4d47f125
TL
34382 "pve-ha-crm",
34383 "pve-ha-lrm",
5370fa8c
TL
34384 "pvedaemon",
34385 "pvefw-logger",
34386 "pveproxy",
34387 "pvescheduler",
34388 "pvestatd",
34389 "spiceproxy",
4d47f125
TL
34390 "sshd",
34391 "syslog",
8f4d9c87 34392 "systemd-journald",
5370fa8c 34393 "systemd-timesyncd"
4d47f125
TL
34394 ],
34395 "type" : "string"
2489d6df
WB
34396 }
34397 }
34398 },
34399 "permissions" : {
34400 "check" : [
34401 "perm",
4d47f125 34402 "/nodes/{node}",
2489d6df 34403 [
4d47f125 34404 "Sys.Audit"
2489d6df
WB
34405 ]
34406 ]
34407 },
34408 "protected" : 1,
34409 "proxyto" : "node",
34410 "returns" : {
4d47f125 34411 "type" : "object"
2489d6df
WB
34412 }
34413 }
34414 },
34415 "leaf" : 1,
4d47f125
TL
34416 "path" : "/nodes/{node}/services/{service}/state",
34417 "text" : "state"
34418 },
34419 {
34420 "info" : {
34421 "POST" : {
e9cd3bd4 34422 "allowtoken" : 1,
4d47f125
TL
34423 "description" : "Start service.",
34424 "method" : "POST",
34425 "name" : "service_start",
34426 "parameters" : {
34427 "additionalProperties" : 0,
34428 "properties" : {
34429 "node" : {
34430 "description" : "The cluster node name.",
34431 "format" : "pve-node",
34432 "type" : "string",
34433 "typetext" : "<string>"
34434 },
34435 "service" : {
34436 "description" : "Service ID",
34437 "enum" : [
5370fa8c 34438 "chrony",
4d47f125 34439 "corosync",
5370fa8c
TL
34440 "cron",
34441 "ksmtuned",
34442 "postfix",
34443 "pve-cluster",
4d47f125 34444 "pve-firewall",
4d47f125
TL
34445 "pve-ha-crm",
34446 "pve-ha-lrm",
5370fa8c
TL
34447 "pvedaemon",
34448 "pvefw-logger",
34449 "pveproxy",
34450 "pvescheduler",
34451 "pvestatd",
34452 "spiceproxy",
4d47f125
TL
34453 "sshd",
34454 "syslog",
8f4d9c87 34455 "systemd-journald",
5370fa8c 34456 "systemd-timesyncd"
4d47f125
TL
34457 ],
34458 "type" : "string"
34459 }
34460 }
7aacca6f 34461 },
4d47f125
TL
34462 "permissions" : {
34463 "check" : [
34464 "perm",
34465 "/nodes/{node}",
34466 [
34467 "Sys.Modify"
34468 ]
34469 ]
7aacca6f 34470 },
4d47f125
TL
34471 "protected" : 1,
34472 "proxyto" : "node",
34473 "returns" : {
34474 "type" : "string"
34475 }
34476 }
56122987 34477 },
4d47f125
TL
34478 "leaf" : 1,
34479 "path" : "/nodes/{node}/services/{service}/start",
34480 "text" : "start"
34481 },
44660702
DM
34482 {
34483 "info" : {
4d47f125 34484 "POST" : {
e9cd3bd4 34485 "allowtoken" : 1,
4d47f125
TL
34486 "description" : "Stop service.",
34487 "method" : "POST",
34488 "name" : "service_stop",
44660702
DM
34489 "parameters" : {
34490 "additionalProperties" : 0,
34491 "properties" : {
44660702
DM
34492 "node" : {
34493 "description" : "The cluster node name.",
34494 "format" : "pve-node",
013dc89f
DM
34495 "type" : "string",
34496 "typetext" : "<string>"
2489d6df 34497 },
4d47f125
TL
34498 "service" : {
34499 "description" : "Service ID",
34500 "enum" : [
5370fa8c 34501 "chrony",
4d47f125 34502 "corosync",
5370fa8c
TL
34503 "cron",
34504 "ksmtuned",
34505 "postfix",
34506 "pve-cluster",
4d47f125 34507 "pve-firewall",
4d47f125
TL
34508 "pve-ha-crm",
34509 "pve-ha-lrm",
5370fa8c
TL
34510 "pvedaemon",
34511 "pvefw-logger",
34512 "pveproxy",
34513 "pvescheduler",
34514 "pvestatd",
34515 "spiceproxy",
4d47f125
TL
34516 "sshd",
34517 "syslog",
8f4d9c87 34518 "systemd-journald",
5370fa8c 34519 "systemd-timesyncd"
4d47f125
TL
34520 ],
34521 "type" : "string"
44660702
DM
34522 }
34523 }
34524 },
34525 "permissions" : {
34526 "check" : [
34527 "perm",
4d47f125 34528 "/nodes/{node}",
44660702
DM
34529 [
34530 "Sys.Modify"
34531 ]
34532 ]
34533 },
34534 "protected" : 1,
34535 "proxyto" : "node",
34536 "returns" : {
2489d6df 34537 "type" : "string"
44660702
DM
34538 }
34539 }
34540 },
34541 "leaf" : 1,
4d47f125
TL
34542 "path" : "/nodes/{node}/services/{service}/stop",
34543 "text" : "stop"
7aacca6f 34544 },
32d876b5
DM
34545 {
34546 "info" : {
4d47f125 34547 "POST" : {
e9cd3bd4 34548 "allowtoken" : 1,
739d4d64 34549 "description" : "Hard restart service. Use reload if you want to reduce interruptions.",
4d47f125
TL
34550 "method" : "POST",
34551 "name" : "service_restart",
32d876b5
DM
34552 "parameters" : {
34553 "additionalProperties" : 0,
34554 "properties" : {
4d47f125
TL
34555 "node" : {
34556 "description" : "The cluster node name.",
34557 "format" : "pve-node",
34558 "type" : "string",
34559 "typetext" : "<string>"
34560 },
34561 "service" : {
34562 "description" : "Service ID",
32d876b5 34563 "enum" : [
5370fa8c 34564 "chrony",
4d47f125 34565 "corosync",
5370fa8c
TL
34566 "cron",
34567 "ksmtuned",
34568 "postfix",
34569 "pve-cluster",
4d47f125 34570 "pve-firewall",
4d47f125
TL
34571 "pve-ha-crm",
34572 "pve-ha-lrm",
5370fa8c
TL
34573 "pvedaemon",
34574 "pvefw-logger",
34575 "pveproxy",
34576 "pvescheduler",
34577 "pvestatd",
34578 "spiceproxy",
4d47f125
TL
34579 "sshd",
34580 "syslog",
8f4d9c87 34581 "systemd-journald",
5370fa8c 34582 "systemd-timesyncd"
32d876b5
DM
34583 ],
34584 "type" : "string"
32d876b5
DM
34585 }
34586 }
34587 },
34588 "permissions" : {
34589 "check" : [
34590 "perm",
4d47f125 34591 "/nodes/{node}",
32d876b5
DM
34592 [
34593 "Sys.Modify"
34594 ]
34595 ]
34596 },
34597 "protected" : 1,
34598 "proxyto" : "node",
34599 "returns" : {
4d47f125 34600 "type" : "string"
32d876b5 34601 }
4d47f125
TL
34602 }
34603 },
34604 "leaf" : 1,
34605 "path" : "/nodes/{node}/services/{service}/restart",
34606 "text" : "restart"
34607 },
34608 {
34609 "info" : {
32d876b5 34610 "POST" : {
e9cd3bd4 34611 "allowtoken" : 1,
739d4d64 34612 "description" : "Reload service. Falls back to restart if service cannot be reloaded.",
32d876b5 34613 "method" : "POST",
4d47f125 34614 "name" : "service_reload",
32d876b5
DM
34615 "parameters" : {
34616 "additionalProperties" : 0,
34617 "properties" : {
32d876b5
DM
34618 "node" : {
34619 "description" : "The cluster node name.",
34620 "format" : "pve-node",
34621 "type" : "string",
34622 "typetext" : "<string>"
4d47f125
TL
34623 },
34624 "service" : {
34625 "description" : "Service ID",
34626 "enum" : [
5370fa8c 34627 "chrony",
4d47f125 34628 "corosync",
5370fa8c
TL
34629 "cron",
34630 "ksmtuned",
34631 "postfix",
34632 "pve-cluster",
4d47f125 34633 "pve-firewall",
4d47f125
TL
34634 "pve-ha-crm",
34635 "pve-ha-lrm",
5370fa8c
TL
34636 "pvedaemon",
34637 "pvefw-logger",
34638 "pveproxy",
34639 "pvescheduler",
34640 "pvestatd",
34641 "spiceproxy",
4d47f125
TL
34642 "sshd",
34643 "syslog",
8f4d9c87 34644 "systemd-journald",
5370fa8c 34645 "systemd-timesyncd"
4d47f125
TL
34646 ],
34647 "type" : "string"
32d876b5
DM
34648 }
34649 }
34650 },
34651 "permissions" : {
34652 "check" : [
34653 "perm",
4d47f125 34654 "/nodes/{node}",
32d876b5
DM
34655 [
34656 "Sys.Modify"
34657 ]
34658 ]
34659 },
34660 "protected" : 1,
34661 "proxyto" : "node",
34662 "returns" : {
4d47f125 34663 "type" : "string"
32d876b5
DM
34664 }
34665 }
34666 },
34667 "leaf" : 1,
4d47f125
TL
34668 "path" : "/nodes/{node}/services/{service}/reload",
34669 "text" : "reload"
32d876b5
DM
34670 }
34671 ],
34672 "info" : {
34673 "GET" : {
e9cd3bd4 34674 "allowtoken" : 1,
4d47f125 34675 "description" : "Directory index",
44660702 34676 "method" : "GET",
4d47f125 34677 "name" : "srvcmdidx",
44660702
DM
34678 "parameters" : {
34679 "additionalProperties" : 0,
34680 "properties" : {
44660702
DM
34681 "node" : {
34682 "description" : "The cluster node name.",
34683 "format" : "pve-node",
013dc89f
DM
34684 "type" : "string",
34685 "typetext" : "<string>"
44660702 34686 },
4d47f125
TL
34687 "service" : {
34688 "description" : "Service ID",
34689 "enum" : [
5370fa8c 34690 "chrony",
4d47f125 34691 "corosync",
5370fa8c
TL
34692 "cron",
34693 "ksmtuned",
34694 "postfix",
34695 "pve-cluster",
4d47f125 34696 "pve-firewall",
4d47f125
TL
34697 "pve-ha-crm",
34698 "pve-ha-lrm",
5370fa8c
TL
34699 "pvedaemon",
34700 "pvefw-logger",
34701 "pveproxy",
34702 "pvescheduler",
34703 "pvestatd",
34704 "spiceproxy",
4d47f125
TL
34705 "sshd",
34706 "syslog",
8f4d9c87 34707 "systemd-journald",
5370fa8c 34708 "systemd-timesyncd"
4d47f125
TL
34709 ],
34710 "type" : "string"
44660702 34711 }
7aacca6f 34712 }
56122987 34713 },
56122987
DM
34714 "permissions" : {
34715 "check" : [
34716 "perm",
7aacca6f 34717 "/nodes/{node}",
56122987 34718 [
4d47f125 34719 "Sys.Audit"
56122987
DM
34720 ]
34721 ]
34722 },
44660702
DM
34723 "returns" : {
34724 "items" : {
34725 "properties" : {
4d47f125 34726 "subdir" : {
44660702
DM
34727 "type" : "string"
34728 }
56122987 34729 },
44660702 34730 "type" : "object"
56122987 34731 },
2489d6df
WB
34732 "links" : [
34733 {
4d47f125 34734 "href" : "{subdir}",
2489d6df
WB
34735 "rel" : "child"
34736 }
34737 ],
34738 "type" : "array"
34739 }
34740 }
4d47f125
TL
34741 },
34742 "leaf" : 0,
34743 "path" : "/nodes/{node}/services/{service}",
34744 "text" : "{service}"
7aacca6f
DM
34745 }
34746 ],
44660702
DM
34747 "info" : {
34748 "GET" : {
e9cd3bd4 34749 "allowtoken" : 1,
4d47f125 34750 "description" : "Service list.",
44660702
DM
34751 "method" : "GET",
34752 "name" : "index",
34753 "parameters" : {
34754 "additionalProperties" : 0,
34755 "properties" : {
34756 "node" : {
34757 "description" : "The cluster node name.",
34758 "format" : "pve-node",
013dc89f
DM
34759 "type" : "string",
34760 "typetext" : "<string>"
44660702
DM
34761 }
34762 }
34763 },
34764 "permissions" : {
34765 "check" : [
34766 "perm",
4d47f125 34767 "/nodes/{node}",
44660702 34768 [
4d47f125
TL
34769 "Sys.Audit"
34770 ]
44660702
DM
34771 ]
34772 },
4d47f125
TL
34773 "protected" : 1,
34774 "proxyto" : "node",
44660702
DM
34775 "returns" : {
34776 "items" : {
34777 "properties" : {},
34778 "type" : "object"
34779 },
34780 "links" : [
34781 {
4d47f125 34782 "href" : "{service}",
44660702
DM
34783 "rel" : "child"
34784 }
34785 ],
34786 "type" : "array"
34787 }
34788 }
34789 },
7aacca6f 34790 "leaf" : 0,
4d47f125
TL
34791 "path" : "/nodes/{node}/services",
34792 "text" : "services"
7aacca6f
DM
34793 },
34794 {
7aacca6f 34795 "info" : {
ac70d7d1
TL
34796 "DELETE" : {
34797 "allowtoken" : 1,
34798 "description" : "Delete subscription key of this node.",
34799 "method" : "DELETE",
34800 "name" : "delete",
34801 "parameters" : {
34802 "additionalProperties" : 0,
34803 "properties" : {
34804 "node" : {
34805 "description" : "The cluster node name.",
34806 "format" : "pve-node",
34807 "type" : "string",
34808 "typetext" : "<string>"
34809 }
34810 }
34811 },
34812 "permissions" : {
34813 "check" : [
34814 "perm",
34815 "/nodes/{node}",
34816 [
34817 "Sys.Modify"
34818 ]
34819 ]
34820 },
34821 "protected" : 1,
34822 "proxyto" : "node",
34823 "returns" : {
34824 "type" : "null"
34825 }
34826 },
4d47f125 34827 "GET" : {
e9cd3bd4 34828 "allowtoken" : 1,
4d47f125
TL
34829 "description" : "Read subscription info.",
34830 "method" : "GET",
34831 "name" : "get",
7aacca6f 34832 "parameters" : {
44660702 34833 "additionalProperties" : 0,
7aacca6f 34834 "properties" : {
44660702 34835 "node" : {
4d47f125 34836 "description" : "The cluster node name.",
44660702 34837 "format" : "pve-node",
013dc89f
DM
34838 "type" : "string",
34839 "typetext" : "<string>"
4d47f125
TL
34840 }
34841 }
34842 },
34843 "permissions" : {
34844 "user" : "all"
34845 },
34846 "proxyto" : "node",
34847 "returns" : {
34848 "type" : "object"
34849 }
34850 },
34851 "POST" : {
e9cd3bd4 34852 "allowtoken" : 1,
4d47f125
TL
34853 "description" : "Update subscription info.",
34854 "method" : "POST",
34855 "name" : "update",
34856 "parameters" : {
34857 "additionalProperties" : 0,
34858 "properties" : {
34859 "force" : {
34860 "default" : 0,
34861 "description" : "Always connect to server, even if we have up to date info inside local cache.",
7aacca6f 34862 "optional" : 1,
4d47f125
TL
34863 "type" : "boolean",
34864 "typetext" : "<boolean>"
44660702 34865 },
4d47f125
TL
34866 "node" : {
34867 "description" : "The cluster node name.",
34868 "format" : "pve-node",
013dc89f
DM
34869 "type" : "string",
34870 "typetext" : "<string>"
4d47f125
TL
34871 }
34872 }
34873 },
34874 "permissions" : {
34875 "check" : [
34876 "perm",
34877 "/nodes/{node}",
34878 [
34879 "Sys.Modify"
34880 ]
34881 ]
34882 },
34883 "protected" : 1,
34884 "proxyto" : "node",
34885 "returns" : {
34886 "type" : "null"
34887 }
34888 },
34889 "PUT" : {
e9cd3bd4 34890 "allowtoken" : 1,
4d47f125
TL
34891 "description" : "Set subscription key.",
34892 "method" : "PUT",
34893 "name" : "set",
34894 "parameters" : {
34895 "additionalProperties" : 0,
34896 "properties" : {
34897 "key" : {
34898 "description" : "Proxmox VE subscription key",
34899 "maxLength" : 32,
5f26e15b 34900 "pattern" : "pve([1248])([cbsp])-[0-9a-f]{10}",
4d47f125 34901 "type" : "string"
7aacca6f 34902 },
4d47f125
TL
34903 "node" : {
34904 "description" : "The cluster node name.",
34905 "format" : "pve-node",
013dc89f
DM
34906 "type" : "string",
34907 "typetext" : "<string>"
7aacca6f 34908 }
7aacca6f
DM
34909 }
34910 },
7aacca6f 34911 "permissions" : {
4d47f125
TL
34912 "check" : [
34913 "perm",
34914 "/nodes/{node}",
34915 [
34916 "Sys.Modify"
34917 ]
34918 ]
7aacca6f 34919 },
44660702 34920 "protected" : 1,
7aacca6f 34921 "proxyto" : "node",
7aacca6f 34922 "returns" : {
4d47f125 34923 "type" : "null"
7aacca6f
DM
34924 }
34925 }
34926 },
4d47f125
TL
34927 "leaf" : 1,
34928 "path" : "/nodes/{node}/subscription",
34929 "text" : "subscription"
44660702
DM
34930 },
34931 {
7aacca6f
DM
34932 "children" : [
34933 {
4d47f125
TL
34934 "info" : {
34935 "DELETE" : {
e9cd3bd4 34936 "allowtoken" : 1,
4d47f125
TL
34937 "description" : "Delete network device configuration",
34938 "method" : "DELETE",
34939 "name" : "delete_network",
34940 "parameters" : {
34941 "additionalProperties" : 0,
34942 "properties" : {
34943 "iface" : {
34944 "description" : "Network interface name.",
34945 "format" : "pve-iface",
34946 "maxLength" : 20,
34947 "minLength" : 2,
34948 "type" : "string",
34949 "typetext" : "<string>"
7aacca6f 34950 },
4d47f125
TL
34951 "node" : {
34952 "description" : "The cluster node name.",
34953 "format" : "pve-node",
34954 "type" : "string",
34955 "typetext" : "<string>"
44660702
DM
34956 }
34957 }
34958 },
4d47f125
TL
34959 "permissions" : {
34960 "check" : [
34961 "perm",
34962 "/nodes/{node}",
34963 [
34964 "Sys.Modify"
34965 ]
34966 ]
34967 },
34968 "protected" : 1,
34969 "proxyto" : "node",
34970 "returns" : {
34971 "type" : "null"
34972 }
34973 },
34974 "GET" : {
e9cd3bd4 34975 "allowtoken" : 1,
4d47f125
TL
34976 "description" : "Read network device configuration",
34977 "method" : "GET",
34978 "name" : "network_config",
34979 "parameters" : {
34980 "additionalProperties" : 0,
34981 "properties" : {
34982 "iface" : {
34983 "description" : "Network interface name.",
34984 "format" : "pve-iface",
34985 "maxLength" : 20,
34986 "minLength" : 2,
34987 "type" : "string",
34988 "typetext" : "<string>"
56122987 34989 },
4d47f125
TL
34990 "node" : {
34991 "description" : "The cluster node name.",
34992 "format" : "pve-node",
34993 "type" : "string",
34994 "typetext" : "<string>"
44660702
DM
34995 }
34996 }
34997 },
4d47f125
TL
34998 "permissions" : {
34999 "check" : [
35000 "perm",
35001 "/nodes/{node}",
35002 [
35003 "Sys.Audit"
35004 ]
35005 ]
35006 },
35007 "proxyto" : "node",
35008 "returns" : {
35009 "properties" : {
35010 "method" : {
35011 "type" : "string"
44660702 35012 },
4d47f125 35013 "type" : {
44660702
DM
35014 "type" : "string"
35015 }
4d47f125
TL
35016 },
35017 "type" : "object"
35018 }
56122987 35019 },
4d47f125 35020 "PUT" : {
e9cd3bd4 35021 "allowtoken" : 1,
4d47f125
TL
35022 "description" : "Update network device configuration",
35023 "method" : "PUT",
35024 "name" : "update_network",
35025 "parameters" : {
35026 "additionalProperties" : 0,
35027 "properties" : {
35028 "address" : {
35029 "description" : "IP address.",
35030 "format" : "ipv4",
35031 "optional" : 1,
35032 "requires" : "netmask",
35033 "type" : "string",
35034 "typetext" : "<string>"
35035 },
35036 "address6" : {
35037 "description" : "IP address.",
35038 "format" : "ipv6",
35039 "optional" : 1,
35040 "requires" : "netmask6",
35041 "type" : "string",
35042 "typetext" : "<string>"
35043 },
35044 "autostart" : {
35045 "description" : "Automatically start interface on boot.",
35046 "optional" : 1,
35047 "type" : "boolean",
35048 "typetext" : "<boolean>"
35049 },
e9cd3bd4
TL
35050 "bond-primary" : {
35051 "description" : "Specify the primary interface for active-backup bond.",
35052 "format" : "pve-iface",
35053 "optional" : 1,
35054 "type" : "string",
35055 "typetext" : "<string>"
35056 },
4d47f125
TL
35057 "bond_mode" : {
35058 "description" : "Bonding mode.",
35059 "enum" : [
35060 "balance-rr",
35061 "active-backup",
35062 "balance-xor",
35063 "broadcast",
35064 "802.3ad",
35065 "balance-tlb",
35066 "balance-alb",
35067 "balance-slb",
35068 "lacp-balance-slb",
35069 "lacp-balance-tcp"
35070 ],
35071 "optional" : 1,
35072 "type" : "string"
35073 },
35074 "bond_xmit_hash_policy" : {
35075 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
35076 "enum" : [
35077 "layer2",
35078 "layer2+3",
35079 "layer3+4"
35080 ],
35081 "optional" : 1,
35082 "type" : "string"
35083 },
35084 "bridge_ports" : {
1e3f8156 35085 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
35086 "format" : "pve-iface-list",
35087 "optional" : 1,
35088 "type" : "string",
35089 "typetext" : "<string>"
35090 },
35091 "bridge_vlan_aware" : {
35092 "description" : "Enable bridge vlan support.",
35093 "optional" : 1,
35094 "type" : "boolean",
35095 "typetext" : "<boolean>"
35096 },
bb4c8cf8
TL
35097 "cidr" : {
35098 "description" : "IPv4 CIDR.",
35099 "format" : "CIDRv4",
35100 "optional" : 1,
35101 "type" : "string",
35102 "typetext" : "<string>"
35103 },
35104 "cidr6" : {
35105 "description" : "IPv6 CIDR.",
35106 "format" : "CIDRv6",
35107 "optional" : 1,
35108 "type" : "string",
35109 "typetext" : "<string>"
35110 },
4d47f125
TL
35111 "comments" : {
35112 "description" : "Comments",
35113 "optional" : 1,
35114 "type" : "string",
35115 "typetext" : "<string>"
35116 },
35117 "comments6" : {
35118 "description" : "Comments",
35119 "optional" : 1,
35120 "type" : "string",
35121 "typetext" : "<string>"
35122 },
35123 "delete" : {
35124 "description" : "A list of settings you want to delete.",
35125 "format" : "pve-configid-list",
35126 "optional" : 1,
35127 "type" : "string",
35128 "typetext" : "<string>"
35129 },
35130 "gateway" : {
35131 "description" : "Default gateway address.",
35132 "format" : "ipv4",
35133 "optional" : 1,
35134 "type" : "string",
35135 "typetext" : "<string>"
35136 },
35137 "gateway6" : {
35138 "description" : "Default ipv6 gateway address.",
35139 "format" : "ipv6",
35140 "optional" : 1,
35141 "type" : "string",
35142 "typetext" : "<string>"
35143 },
35144 "iface" : {
35145 "description" : "Network interface name.",
35146 "format" : "pve-iface",
35147 "maxLength" : 20,
35148 "minLength" : 2,
35149 "type" : "string",
35150 "typetext" : "<string>"
56122987 35151 },
e9cd3bd4
TL
35152 "mtu" : {
35153 "description" : "MTU.",
35154 "maximum" : 65520,
35155 "minimum" : 1280,
35156 "optional" : 1,
35157 "type" : "integer",
35158 "typetext" : "<integer> (1280 - 65520)"
35159 },
4d47f125
TL
35160 "netmask" : {
35161 "description" : "Network mask.",
35162 "format" : "ipv4mask",
35163 "optional" : 1,
35164 "requires" : "address",
35165 "type" : "string",
35166 "typetext" : "<string>"
35167 },
35168 "netmask6" : {
35169 "description" : "Network mask.",
35170 "maximum" : 128,
35171 "minimum" : 0,
35172 "optional" : 1,
35173 "requires" : "address6",
35174 "type" : "integer",
35175 "typetext" : "<integer> (0 - 128)"
56122987 35176 },
44660702
DM
35177 "node" : {
35178 "description" : "The cluster node name.",
35179 "format" : "pve-node",
013dc89f
DM
35180 "type" : "string",
35181 "typetext" : "<string>"
44660702 35182 },
4d47f125
TL
35183 "ovs_bonds" : {
35184 "description" : "Specify the interfaces used by the bonding device.",
35185 "format" : "pve-iface-list",
35186 "optional" : 1,
35187 "type" : "string",
35188 "typetext" : "<string>"
35189 },
35190 "ovs_bridge" : {
35191 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
35192 "format" : "pve-iface",
35193 "optional" : 1,
35194 "type" : "string",
35195 "typetext" : "<string>"
35196 },
35197 "ovs_options" : {
35198 "description" : "OVS interface options.",
35199 "maxLength" : 1024,
35200 "optional" : 1,
35201 "type" : "string",
35202 "typetext" : "<string>"
35203 },
35204 "ovs_ports" : {
1e3f8156 35205 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
35206 "format" : "pve-iface-list",
35207 "optional" : 1,
35208 "type" : "string",
35209 "typetext" : "<string>"
35210 },
35211 "ovs_tag" : {
35212 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
35213 "maximum" : 4094,
35214 "minimum" : 1,
35215 "optional" : 1,
35216 "type" : "integer",
35217 "typetext" : "<integer> (1 - 4094)"
35218 },
35219 "slaves" : {
35220 "description" : "Specify the interfaces used by the bonding device.",
35221 "format" : "pve-iface-list",
35222 "optional" : 1,
35223 "type" : "string",
35224 "typetext" : "<string>"
35225 },
35226 "type" : {
35227 "description" : "Network interface type",
44660702 35228 "enum" : [
4d47f125
TL
35229 "bridge",
35230 "bond",
35231 "eth",
35232 "alias",
35233 "vlan",
35234 "OVSBridge",
35235 "OVSBond",
35236 "OVSPort",
35237 "OVSIntPort",
35238 "unknown"
44660702
DM
35239 ],
35240 "type" : "string"
e9cd3bd4
TL
35241 },
35242 "vlan-id" : {
35243 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
35244 "maximum" : 4094,
35245 "minimum" : 1,
35246 "optional" : 1,
35247 "type" : "integer",
35248 "typetext" : "<integer> (1 - 4094)"
35249 },
35250 "vlan-raw-device" : {
35251 "description" : "Specify the raw interface for the vlan interface.",
35252 "format" : "pve-iface",
35253 "optional" : 1,
35254 "type" : "string",
35255 "typetext" : "<string>"
44660702
DM
35256 }
35257 }
35258 },
35259 "permissions" : {
35260 "check" : [
35261 "perm",
35262 "/nodes/{node}",
35263 [
4d47f125 35264 "Sys.Modify"
44660702
DM
35265 ]
35266 ]
35267 },
4d47f125
TL
35268 "protected" : 1,
35269 "proxyto" : "node",
44660702 35270 "returns" : {
4d47f125 35271 "type" : "null"
44660702
DM
35272 }
35273 }
35274 },
4d47f125
TL
35275 "leaf" : 1,
35276 "path" : "/nodes/{node}/network/{iface}",
35277 "text" : "{iface}"
44660702
DM
35278 }
35279 ],
35280 "info" : {
4d47f125 35281 "DELETE" : {
e9cd3bd4 35282 "allowtoken" : 1,
4d47f125
TL
35283 "description" : "Revert network configuration changes.",
35284 "method" : "DELETE",
35285 "name" : "revert_network_changes",
44660702
DM
35286 "parameters" : {
35287 "additionalProperties" : 0,
35288 "properties" : {
35289 "node" : {
35290 "description" : "The cluster node name.",
35291 "format" : "pve-node",
013dc89f
DM
35292 "type" : "string",
35293 "typetext" : "<string>"
44660702
DM
35294 }
35295 }
35296 },
35297 "permissions" : {
35298 "check" : [
35299 "perm",
35300 "/nodes/{node}",
35301 [
4d47f125 35302 "Sys.Modify"
44660702
DM
35303 ]
35304 ]
35305 },
35306 "protected" : 1,
35307 "proxyto" : "node",
4d47f125
TL
35308 "returns" : {
35309 "type" : "null"
35310 }
35311 },
35312 "GET" : {
e9cd3bd4 35313 "allowtoken" : 1,
4d47f125
TL
35314 "description" : "List available networks",
35315 "method" : "GET",
35316 "name" : "index",
35317 "parameters" : {
35318 "additionalProperties" : 0,
35319 "properties" : {
35320 "node" : {
35321 "description" : "The cluster node name.",
35322 "format" : "pve-node",
35323 "type" : "string",
35324 "typetext" : "<string>"
35325 },
35326 "type" : {
35327 "description" : "Only list specific interface types.",
35328 "enum" : [
35329 "bridge",
35330 "bond",
35331 "eth",
35332 "alias",
35333 "vlan",
35334 "OVSBridge",
35335 "OVSBond",
35336 "OVSPort",
35337 "OVSIntPort",
35338 "any_bridge"
35339 ],
35340 "optional" : 1,
35341 "type" : "string"
35342 }
35343 }
35344 },
35345 "permissions" : {
35346 "user" : "all"
35347 },
35348 "proxyto" : "node",
44660702
DM
35349 "returns" : {
35350 "items" : {
35351 "properties" : {},
35352 "type" : "object"
35353 },
35354 "links" : [
35355 {
4d47f125 35356 "href" : "{iface}",
44660702 35357 "rel" : "child"
56122987 35358 }
44660702
DM
35359 ],
35360 "type" : "array"
35361 }
4d47f125
TL
35362 },
35363 "POST" : {
e9cd3bd4 35364 "allowtoken" : 1,
4d47f125
TL
35365 "description" : "Create network device configuration",
35366 "method" : "POST",
35367 "name" : "create_network",
7aacca6f 35368 "parameters" : {
44660702 35369 "additionalProperties" : 0,
7aacca6f 35370 "properties" : {
4d47f125
TL
35371 "address" : {
35372 "description" : "IP address.",
35373 "format" : "ipv4",
35374 "optional" : 1,
35375 "requires" : "netmask",
35376 "type" : "string",
35377 "typetext" : "<string>"
35378 },
35379 "address6" : {
35380 "description" : "IP address.",
35381 "format" : "ipv6",
35382 "optional" : 1,
35383 "requires" : "netmask6",
35384 "type" : "string",
35385 "typetext" : "<string>"
35386 },
35387 "autostart" : {
35388 "description" : "Automatically start interface on boot.",
35389 "optional" : 1,
35390 "type" : "boolean",
35391 "typetext" : "<boolean>"
35392 },
e9cd3bd4
TL
35393 "bond-primary" : {
35394 "description" : "Specify the primary interface for active-backup bond.",
35395 "format" : "pve-iface",
35396 "optional" : 1,
35397 "type" : "string",
35398 "typetext" : "<string>"
35399 },
4d47f125
TL
35400 "bond_mode" : {
35401 "description" : "Bonding mode.",
35402 "enum" : [
35403 "balance-rr",
35404 "active-backup",
35405 "balance-xor",
35406 "broadcast",
35407 "802.3ad",
35408 "balance-tlb",
35409 "balance-alb",
35410 "balance-slb",
35411 "lacp-balance-slb",
35412 "lacp-balance-tcp"
35413 ],
35414 "optional" : 1,
35415 "type" : "string"
35416 },
35417 "bond_xmit_hash_policy" : {
35418 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
35419 "enum" : [
35420 "layer2",
35421 "layer2+3",
35422 "layer3+4"
35423 ],
35424 "optional" : 1,
35425 "type" : "string"
35426 },
35427 "bridge_ports" : {
1e3f8156 35428 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
35429 "format" : "pve-iface-list",
35430 "optional" : 1,
013dc89f
DM
35431 "type" : "string",
35432 "typetext" : "<string>"
4d47f125
TL
35433 },
35434 "bridge_vlan_aware" : {
35435 "description" : "Enable bridge vlan support.",
44660702 35436 "optional" : 1,
013dc89f
DM
35437 "type" : "boolean",
35438 "typetext" : "<boolean>"
44660702 35439 },
bb4c8cf8
TL
35440 "cidr" : {
35441 "description" : "IPv4 CIDR.",
35442 "format" : "CIDRv4",
35443 "optional" : 1,
35444 "type" : "string",
35445 "typetext" : "<string>"
35446 },
35447 "cidr6" : {
35448 "description" : "IPv6 CIDR.",
35449 "format" : "CIDRv6",
35450 "optional" : 1,
35451 "type" : "string",
35452 "typetext" : "<string>"
35453 },
4d47f125
TL
35454 "comments" : {
35455 "description" : "Comments",
35456 "optional" : 1,
35457 "type" : "string",
35458 "typetext" : "<string>"
35459 },
35460 "comments6" : {
35461 "description" : "Comments",
35462 "optional" : 1,
35463 "type" : "string",
35464 "typetext" : "<string>"
35465 },
35466 "gateway" : {
35467 "description" : "Default gateway address.",
35468 "format" : "ipv4",
35469 "optional" : 1,
35470 "type" : "string",
35471 "typetext" : "<string>"
35472 },
35473 "gateway6" : {
35474 "description" : "Default ipv6 gateway address.",
35475 "format" : "ipv6",
35476 "optional" : 1,
35477 "type" : "string",
35478 "typetext" : "<string>"
35479 },
35480 "iface" : {
35481 "description" : "Network interface name.",
35482 "format" : "pve-iface",
35483 "maxLength" : 20,
35484 "minLength" : 2,
35485 "type" : "string",
35486 "typetext" : "<string>"
35487 },
e9cd3bd4
TL
35488 "mtu" : {
35489 "description" : "MTU.",
35490 "maximum" : 65520,
35491 "minimum" : 1280,
35492 "optional" : 1,
35493 "type" : "integer",
35494 "typetext" : "<integer> (1280 - 65520)"
35495 },
4d47f125
TL
35496 "netmask" : {
35497 "description" : "Network mask.",
35498 "format" : "ipv4mask",
35499 "optional" : 1,
35500 "requires" : "address",
35501 "type" : "string",
35502 "typetext" : "<string>"
35503 },
35504 "netmask6" : {
35505 "description" : "Network mask.",
35506 "maximum" : 128,
35507 "minimum" : 0,
35508 "optional" : 1,
35509 "requires" : "address6",
35510 "type" : "integer",
35511 "typetext" : "<integer> (0 - 128)"
35512 },
7aacca6f 35513 "node" : {
7aacca6f 35514 "description" : "The cluster node name.",
44660702 35515 "format" : "pve-node",
013dc89f
DM
35516 "type" : "string",
35517 "typetext" : "<string>"
4d47f125
TL
35518 },
35519 "ovs_bonds" : {
35520 "description" : "Specify the interfaces used by the bonding device.",
35521 "format" : "pve-iface-list",
35522 "optional" : 1,
35523 "type" : "string",
35524 "typetext" : "<string>"
35525 },
35526 "ovs_bridge" : {
35527 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
35528 "format" : "pve-iface",
35529 "optional" : 1,
35530 "type" : "string",
35531 "typetext" : "<string>"
35532 },
35533 "ovs_options" : {
35534 "description" : "OVS interface options.",
35535 "maxLength" : 1024,
35536 "optional" : 1,
35537 "type" : "string",
35538 "typetext" : "<string>"
35539 },
35540 "ovs_ports" : {
1e3f8156 35541 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
35542 "format" : "pve-iface-list",
35543 "optional" : 1,
35544 "type" : "string",
35545 "typetext" : "<string>"
35546 },
35547 "ovs_tag" : {
35548 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
35549 "maximum" : 4094,
35550 "minimum" : 1,
35551 "optional" : 1,
35552 "type" : "integer",
35553 "typetext" : "<integer> (1 - 4094)"
35554 },
35555 "slaves" : {
35556 "description" : "Specify the interfaces used by the bonding device.",
35557 "format" : "pve-iface-list",
35558 "optional" : 1,
35559 "type" : "string",
35560 "typetext" : "<string>"
35561 },
35562 "type" : {
35563 "description" : "Network interface type",
35564 "enum" : [
35565 "bridge",
35566 "bond",
35567 "eth",
35568 "alias",
35569 "vlan",
35570 "OVSBridge",
35571 "OVSBond",
35572 "OVSPort",
35573 "OVSIntPort",
35574 "unknown"
35575 ],
35576 "type" : "string"
e9cd3bd4
TL
35577 },
35578 "vlan-id" : {
35579 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
35580 "maximum" : 4094,
35581 "minimum" : 1,
35582 "optional" : 1,
35583 "type" : "integer",
35584 "typetext" : "<integer> (1 - 4094)"
35585 },
35586 "vlan-raw-device" : {
35587 "description" : "Specify the raw interface for the vlan interface.",
35588 "format" : "pve-iface",
35589 "optional" : 1,
35590 "type" : "string",
35591 "typetext" : "<string>"
7aacca6f
DM
35592 }
35593 }
35594 },
35a75dd3
DM
35595 "permissions" : {
35596 "check" : [
35597 "perm",
35598 "/nodes/{node}",
35599 [
35600 "Sys.Modify"
35601 ]
35602 ]
35603 },
7aacca6f 35604 "protected" : 1,
7aacca6f 35605 "proxyto" : "node",
44660702
DM
35606 "returns" : {
35607 "type" : "null"
35608 }
35609 },
35610 "PUT" : {
e9cd3bd4 35611 "allowtoken" : 1,
4d47f125 35612 "description" : "Reload network configuration",
44660702 35613 "method" : "PUT",
4d47f125 35614 "name" : "reload_network_config",
7aacca6f
DM
35615 "parameters" : {
35616 "additionalProperties" : 0,
35617 "properties" : {
7aacca6f 35618 "node" : {
7aacca6f 35619 "description" : "The cluster node name.",
44660702 35620 "format" : "pve-node",
013dc89f
DM
35621 "type" : "string",
35622 "typetext" : "<string>"
7aacca6f
DM
35623 }
35624 }
35625 },
35a75dd3
DM
35626 "permissions" : {
35627 "check" : [
35628 "perm",
35629 "/nodes/{node}",
35630 [
35631 "Sys.Modify"
35632 ]
35633 ]
35634 },
44660702
DM
35635 "protected" : 1,
35636 "proxyto" : "node",
7aacca6f 35637 "returns" : {
4d47f125 35638 "type" : "string"
44660702 35639 }
7aacca6f
DM
35640 }
35641 },
4d47f125
TL
35642 "leaf" : 0,
35643 "path" : "/nodes/{node}/network",
35644 "text" : "network"
7aacca6f
DM
35645 },
35646 {
7aacca6f
DM
35647 "children" : [
35648 {
4d47f125
TL
35649 "children" : [
35650 {
35651 "info" : {
35652 "GET" : {
e9cd3bd4 35653 "allowtoken" : 1,
4d47f125
TL
35654 "description" : "Read task log.",
35655 "method" : "GET",
35656 "name" : "read_task_log",
35657 "parameters" : {
35658 "additionalProperties" : 0,
35659 "properties" : {
35660 "limit" : {
35661 "default" : 50,
5370fa8c 35662 "description" : "The maximum amount of lines that should be printed.",
4d47f125
TL
35663 "minimum" : 0,
35664 "optional" : 1,
35665 "type" : "integer",
35666 "typetext" : "<integer> (0 - N)"
35667 },
35668 "node" : {
35669 "description" : "The cluster node name.",
35670 "format" : "pve-node",
35671 "type" : "string",
35672 "typetext" : "<string>"
35673 },
35674 "start" : {
35675 "default" : 0,
5370fa8c 35676 "description" : "The line number to start printing at.",
4d47f125
TL
35677 "minimum" : 0,
35678 "optional" : 1,
35679 "type" : "integer",
35680 "typetext" : "<integer> (0 - N)"
35681 },
35682 "upid" : {
5370fa8c 35683 "description" : "The task's unique ID.",
4d47f125
TL
35684 "type" : "string",
35685 "typetext" : "<string>"
35686 }
35687 }
35688 },
35689 "permissions" : {
5370fa8c 35690 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125
TL
35691 "user" : "all"
35692 },
35693 "protected" : 1,
35694 "proxyto" : "node",
35695 "returns" : {
35696 "items" : {
35697 "properties" : {
35698 "n" : {
35699 "description" : "Line number",
35700 "type" : "integer"
35701 },
35702 "t" : {
35703 "description" : "Line text",
35704 "type" : "string"
35705 }
35706 },
35707 "type" : "object"
35708 },
35709 "type" : "array"
35710 }
35711 }
35712 },
35713 "leaf" : 1,
35714 "path" : "/nodes/{node}/tasks/{upid}/log",
35715 "text" : "log"
35716 },
35717 {
35718 "info" : {
35719 "GET" : {
e9cd3bd4 35720 "allowtoken" : 1,
4d47f125
TL
35721 "description" : "Read task status.",
35722 "method" : "GET",
35723 "name" : "read_task_status",
35724 "parameters" : {
35725 "additionalProperties" : 0,
35726 "properties" : {
35727 "node" : {
35728 "description" : "The cluster node name.",
35729 "format" : "pve-node",
35730 "type" : "string",
35731 "typetext" : "<string>"
35732 },
35733 "upid" : {
5370fa8c 35734 "description" : "The task's unique ID.",
4d47f125
TL
35735 "type" : "string",
35736 "typetext" : "<string>"
35737 }
35738 }
35739 },
35740 "permissions" : {
5370fa8c 35741 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they are not the owner of the task.",
4d47f125
TL
35742 "user" : "all"
35743 },
35744 "protected" : 1,
35745 "proxyto" : "node",
35746 "returns" : {
35747 "properties" : {
5370fa8c
TL
35748 "exitstatus" : {
35749 "optional" : 1,
35750 "type" : "string"
35751 },
35752 "id" : {
35753 "type" : "string"
35754 },
35755 "node" : {
35756 "type" : "string"
35757 },
4d47f125
TL
35758 "pid" : {
35759 "type" : "integer"
35760 },
5370fa8c
TL
35761 "starttime" : {
35762 "type" : "number"
35763 },
4d47f125
TL
35764 "status" : {
35765 "enum" : [
35766 "running",
35767 "stopped"
35768 ],
35769 "type" : "string"
5370fa8c
TL
35770 },
35771 "type" : {
35772 "type" : "string"
35773 },
35774 "upid" : {
35775 "type" : "string"
35776 },
35777 "user" : {
35778 "type" : "string"
4d47f125
TL
35779 }
35780 },
35781 "type" : "object"
35782 }
35783 }
35784 },
35785 "leaf" : 1,
35786 "path" : "/nodes/{node}/tasks/{upid}/status",
35787 "text" : "status"
35788 }
35789 ],
56122987 35790 "info" : {
7aacca6f 35791 "DELETE" : {
e9cd3bd4 35792 "allowtoken" : 1,
4d47f125 35793 "description" : "Stop a task.",
44660702 35794 "method" : "DELETE",
4d47f125 35795 "name" : "stop_task",
44660702
DM
35796 "parameters" : {
35797 "additionalProperties" : 0,
35798 "properties" : {
44660702
DM
35799 "node" : {
35800 "description" : "The cluster node name.",
35801 "format" : "pve-node",
013dc89f
DM
35802 "type" : "string",
35803 "typetext" : "<string>"
4d47f125
TL
35804 },
35805 "upid" : {
35806 "type" : "string",
35807 "typetext" : "<string>"
44660702
DM
35808 }
35809 }
7aacca6f
DM
35810 },
35811 "permissions" : {
5370fa8c 35812 "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125 35813 "user" : "all"
7aacca6f 35814 },
44660702 35815 "protected" : 1,
7aacca6f 35816 "proxyto" : "node",
44660702
DM
35817 "returns" : {
35818 "type" : "null"
35819 }
35820 },
35821 "GET" : {
e9cd3bd4 35822 "allowtoken" : 1,
4d47f125 35823 "description" : "",
44660702 35824 "method" : "GET",
4d47f125 35825 "name" : "upid_index",
7aacca6f
DM
35826 "parameters" : {
35827 "additionalProperties" : 0,
35828 "properties" : {
7aacca6f 35829 "node" : {
44660702 35830 "description" : "The cluster node name.",
7aacca6f 35831 "format" : "pve-node",
013dc89f
DM
35832 "type" : "string",
35833 "typetext" : "<string>"
7aacca6f 35834 },
4d47f125
TL
35835 "upid" : {
35836 "type" : "string",
35837 "typetext" : "<string>"
7aacca6f
DM
35838 }
35839 }
35840 },
7aacca6f 35841 "permissions" : {
4d47f125 35842 "user" : "all"
7aacca6f
DM
35843 },
35844 "returns" : {
4d47f125
TL
35845 "items" : {
35846 "properties" : {},
35847 "type" : "object"
35848 },
35849 "links" : [
35850 {
35851 "href" : "{name}",
35852 "rel" : "child"
35853 }
35854 ],
35855 "type" : "array"
44660702 35856 }
7aacca6f
DM
35857 }
35858 },
4d47f125
TL
35859 "leaf" : 0,
35860 "path" : "/nodes/{node}/tasks/{upid}",
35861 "text" : "{upid}"
7aacca6f
DM
35862 }
35863 ],
7aacca6f 35864 "info" : {
44660702 35865 "GET" : {
e9cd3bd4 35866 "allowtoken" : 1,
4d47f125 35867 "description" : "Read task list for one node (finished tasks).",
44660702 35868 "method" : "GET",
4d47f125 35869 "name" : "node_tasks",
44660702
DM
35870 "parameters" : {
35871 "additionalProperties" : 0,
35872 "properties" : {
4d47f125
TL
35873 "errors" : {
35874 "default" : 0,
5370fa8c 35875 "description" : "Only list tasks with a status of ERROR.",
7aacca6f 35876 "optional" : 1,
4d47f125
TL
35877 "type" : "boolean",
35878 "typetext" : "<boolean>"
7aacca6f 35879 },
4d47f125
TL
35880 "limit" : {
35881 "default" : 50,
35882 "description" : "Only list this amount of tasks.",
35883 "minimum" : 0,
44660702 35884 "optional" : 1,
4d47f125
TL
35885 "type" : "integer",
35886 "typetext" : "<integer> (0 - N)"
35887 },
35888 "node" : {
35889 "description" : "The cluster node name.",
35890 "format" : "pve-node",
013dc89f
DM
35891 "type" : "string",
35892 "typetext" : "<string>"
44660702 35893 },
34f3e481
TL
35894 "since" : {
35895 "description" : "Only list tasks since this UNIX epoch.",
35896 "optional" : 1,
35897 "type" : "integer",
35898 "typetext" : "<integer>"
35899 },
5f26e15b
TL
35900 "source" : {
35901 "default" : "archive",
35902 "description" : "List archived, active or all tasks.",
35903 "enum" : [
35904 "archive",
35905 "active",
35906 "all"
35907 ],
35908 "optional" : 1,
35909 "type" : "string"
35910 },
4d47f125
TL
35911 "start" : {
35912 "default" : 0,
35913 "description" : "List tasks beginning from this offset.",
35914 "minimum" : 0,
44660702 35915 "optional" : 1,
4d47f125
TL
35916 "type" : "integer",
35917 "typetext" : "<integer> (0 - N)"
44660702 35918 },
34f3e481
TL
35919 "statusfilter" : {
35920 "description" : "List of Task States that should be returned.",
35921 "format" : "pve-task-status-type-list",
35922 "optional" : 1,
35923 "type" : "string",
35924 "typetext" : "<string>"
35925 },
5f26e15b
TL
35926 "typefilter" : {
35927 "description" : "Only list tasks of this type (e.g., vzstart, vzdump).",
35928 "optional" : 1,
35929 "type" : "string",
35930 "typetext" : "<string>"
35931 },
34f3e481
TL
35932 "until" : {
35933 "description" : "Only list tasks until this UNIX epoch.",
35934 "optional" : 1,
35935 "type" : "integer",
35936 "typetext" : "<integer>"
35937 },
4d47f125
TL
35938 "userfilter" : {
35939 "description" : "Only list tasks from this user.",
44660702 35940 "optional" : 1,
013dc89f
DM
35941 "type" : "string",
35942 "typetext" : "<string>"
44660702 35943 },
4d47f125
TL
35944 "vmid" : {
35945 "description" : "Only list tasks for this VM.",
35946 "format" : "pve-vmid",
44660702
DM
35947 "minimum" : 1,
35948 "optional" : 1,
4bd7df8b 35949 "type" : "integer",
4d47f125
TL
35950 "typetext" : "<integer> (1 - N)"
35951 }
35952 }
35953 },
35954 "permissions" : {
35955 "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).",
35956 "user" : "all"
35957 },
35958 "proxyto" : "node",
35959 "returns" : {
35960 "items" : {
35961 "properties" : {
35962 "endtime" : {
35963 "optional" : 1,
35964 "title" : "Endtime",
35965 "type" : "integer"
35966 },
35967 "id" : {
4d47f125
TL
35968 "title" : "ID",
35969 "type" : "string"
35970 },
35971 "node" : {
4d47f125
TL
35972 "title" : "Node",
35973 "type" : "string"
35974 },
35975 "pid" : {
4d47f125
TL
35976 "title" : "PID",
35977 "type" : "integer"
35978 },
35979 "pstart" : {
4d47f125
TL
35980 "type" : "integer"
35981 },
35982 "starttime" : {
4d47f125
TL
35983 "title" : "Starttime",
35984 "type" : "integer"
35985 },
35986 "status" : {
35987 "optional" : 1,
35988 "title" : "Status",
35989 "type" : "string"
35990 },
35991 "type" : {
4d47f125
TL
35992 "title" : "Type",
35993 "type" : "string"
35994 },
35995 "upid" : {
35996 "title" : "UPID",
35997 "type" : "string"
35998 },
35999 "user" : {
4d47f125
TL
36000 "title" : "User",
36001 "type" : "string"
36002 }
44660702 36003 },
4d47f125
TL
36004 "type" : "object"
36005 },
36006 "links" : [
36007 {
36008 "href" : "{upid}",
36009 "rel" : "child"
36010 }
36011 ],
36012 "type" : "array"
36013 }
36014 }
36015 },
36016 "leaf" : 0,
36017 "path" : "/nodes/{node}/tasks",
36018 "text" : "tasks"
36019 },
36020 {
36021 "children" : [
36022 {
36023 "info" : {
36024 "GET" : {
e9cd3bd4 36025 "allowtoken" : 1,
d2656385 36026 "description" : "Scan remote NFS server.",
4d47f125 36027 "method" : "GET",
d2656385 36028 "name" : "nfsscan",
4d47f125
TL
36029 "parameters" : {
36030 "additionalProperties" : 0,
36031 "properties" : {
36032 "node" : {
36033 "description" : "The cluster node name.",
36034 "format" : "pve-node",
36035 "type" : "string",
36036 "typetext" : "<string>"
d2656385
TL
36037 },
36038 "server" : {
36039 "description" : "The server address (name or IP).",
36040 "format" : "pve-storage-server",
36041 "type" : "string",
36042 "typetext" : "<string>"
4d47f125
TL
36043 }
36044 }
44660702 36045 },
4d47f125
TL
36046 "permissions" : {
36047 "check" : [
36048 "perm",
36049 "/storage",
36050 [
36051 "Datastore.Allocate"
36052 ]
36053 ]
36054 },
36055 "protected" : 1,
36056 "proxyto" : "node",
36057 "returns" : {
36058 "items" : {
36059 "properties" : {
d2656385
TL
36060 "options" : {
36061 "description" : "NFS export options.",
36062 "type" : "string"
36063 },
36064 "path" : {
36065 "description" : "The exported path.",
4d47f125
TL
36066 "type" : "string"
36067 }
36068 },
36069 "type" : "object"
36070 },
36071 "type" : "array"
36072 }
36073 }
36074 },
36075 "leaf" : 1,
d2656385
TL
36076 "path" : "/nodes/{node}/scan/nfs",
36077 "text" : "nfs"
4d47f125
TL
36078 },
36079 {
36080 "info" : {
36081 "GET" : {
e9cd3bd4 36082 "allowtoken" : 1,
d2656385 36083 "description" : "Scan remote CIFS server.",
4d47f125 36084 "method" : "GET",
d2656385 36085 "name" : "cifsscan",
4d47f125
TL
36086 "parameters" : {
36087 "additionalProperties" : 0,
36088 "properties" : {
d2656385
TL
36089 "domain" : {
36090 "description" : "SMB domain (Workgroup).",
36091 "optional" : 1,
36092 "type" : "string",
36093 "typetext" : "<string>"
36094 },
4d47f125
TL
36095 "node" : {
36096 "description" : "The cluster node name.",
36097 "format" : "pve-node",
36098 "type" : "string",
36099 "typetext" : "<string>"
36100 },
d2656385
TL
36101 "password" : {
36102 "description" : "User password.",
36103 "optional" : 1,
36104 "type" : "string",
36105 "typetext" : "<string>"
36106 },
4d47f125
TL
36107 "server" : {
36108 "description" : "The server address (name or IP).",
36109 "format" : "pve-storage-server",
36110 "type" : "string",
36111 "typetext" : "<string>"
d2656385
TL
36112 },
36113 "username" : {
36114 "description" : "User name.",
36115 "optional" : 1,
36116 "type" : "string",
36117 "typetext" : "<string>"
4d47f125
TL
36118 }
36119 }
36120 },
36121 "permissions" : {
36122 "check" : [
36123 "perm",
36124 "/storage",
36125 [
36126 "Datastore.Allocate"
36127 ]
36128 ]
36129 },
36130 "protected" : 1,
36131 "proxyto" : "node",
36132 "returns" : {
36133 "items" : {
36134 "properties" : {
d2656385
TL
36135 "description" : {
36136 "description" : "Descriptive text from server.",
4d47f125
TL
36137 "type" : "string"
36138 },
d2656385
TL
36139 "share" : {
36140 "description" : "The cifs share name.",
4d47f125
TL
36141 "type" : "string"
36142 }
36143 },
36144 "type" : "object"
36145 },
36146 "type" : "array"
36147 }
36148 }
36149 },
36150 "leaf" : 1,
d2656385
TL
36151 "path" : "/nodes/{node}/scan/cifs",
36152 "text" : "cifs"
4d47f125
TL
36153 },
36154 {
36155 "info" : {
36156 "GET" : {
e9cd3bd4 36157 "allowtoken" : 1,
d2656385 36158 "description" : "Scan remote Proxmox Backup Server.",
4d47f125 36159 "method" : "GET",
d2656385 36160 "name" : "pbsscan",
4d47f125
TL
36161 "parameters" : {
36162 "additionalProperties" : 0,
36163 "properties" : {
d2656385
TL
36164 "fingerprint" : {
36165 "description" : "Certificate SHA 256 fingerprint.",
4d47f125 36166 "optional" : 1,
d2656385
TL
36167 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
36168 "type" : "string"
4d47f125
TL
36169 },
36170 "node" : {
36171 "description" : "The cluster node name.",
36172 "format" : "pve-node",
36173 "type" : "string",
36174 "typetext" : "<string>"
36175 },
36176 "password" : {
d2656385 36177 "description" : "User password or API token secret.",
4d47f125
TL
36178 "type" : "string",
36179 "typetext" : "<string>"
36180 },
d2656385
TL
36181 "port" : {
36182 "default" : 8007,
36183 "description" : "Optional port.",
36184 "maximum" : 65535,
36185 "minimum" : 1,
36186 "optional" : 1,
36187 "type" : "integer",
36188 "typetext" : "<integer> (1 - 65535)"
36189 },
4d47f125
TL
36190 "server" : {
36191 "description" : "The server address (name or IP).",
36192 "format" : "pve-storage-server",
36193 "type" : "string",
36194 "typetext" : "<string>"
36195 },
36196 "username" : {
d2656385 36197 "description" : "User-name or API token-ID.",
4d47f125
TL
36198 "type" : "string",
36199 "typetext" : "<string>"
36200 }
36201 }
36202 },
36203 "permissions" : {
36204 "check" : [
36205 "perm",
36206 "/storage",
36207 [
36208 "Datastore.Allocate"
36209 ]
36210 ]
36211 },
36212 "protected" : 1,
36213 "proxyto" : "node",
36214 "returns" : {
36215 "items" : {
36216 "properties" : {
d2656385
TL
36217 "comment" : {
36218 "description" : "Comment from server.",
36219 "optional" : 1,
4d47f125
TL
36220 "type" : "string"
36221 },
d2656385
TL
36222 "store" : {
36223 "description" : "The datastore name.",
4d47f125
TL
36224 "type" : "string"
36225 }
36226 },
36227 "type" : "object"
36228 },
36229 "type" : "array"
56122987 36230 }
44660702 36231 }
56122987 36232 },
4d47f125 36233 "leaf" : 1,
d2656385
TL
36234 "path" : "/nodes/{node}/scan/pbs",
36235 "text" : "pbs"
4d47f125 36236 },
44660702 36237 {
4d47f125
TL
36238 "info" : {
36239 "GET" : {
e9cd3bd4 36240 "allowtoken" : 1,
4d47f125
TL
36241 "description" : "Scan remote GlusterFS server.",
36242 "method" : "GET",
36243 "name" : "glusterfsscan",
36244 "parameters" : {
36245 "additionalProperties" : 0,
36246 "properties" : {
36247 "node" : {
36248 "description" : "The cluster node name.",
36249 "format" : "pve-node",
36250 "type" : "string",
36251 "typetext" : "<string>"
7aacca6f 36252 },
4d47f125
TL
36253 "server" : {
36254 "description" : "The server address (name or IP).",
36255 "format" : "pve-storage-server",
36256 "type" : "string",
36257 "typetext" : "<string>"
44660702 36258 }
7aacca6f 36259 }
56122987 36260 },
4d47f125
TL
36261 "permissions" : {
36262 "check" : [
36263 "perm",
36264 "/storage",
36265 [
36266 "Datastore.Allocate"
36267 ]
36268 ]
36269 },
36270 "protected" : 1,
36271 "proxyto" : "node",
36272 "returns" : {
36273 "items" : {
36274 "properties" : {
36275 "volname" : {
36276 "description" : "The volume name.",
36277 "type" : "string"
7aacca6f
DM
36278 }
36279 },
4d47f125
TL
36280 "type" : "object"
36281 },
36282 "type" : "array"
36283 }
36284 }
36285 },
36286 "leaf" : 1,
36287 "path" : "/nodes/{node}/scan/glusterfs",
36288 "text" : "glusterfs"
36289 },
36290 {
36291 "info" : {
36292 "GET" : {
e9cd3bd4 36293 "allowtoken" : 1,
4d47f125
TL
36294 "description" : "Scan remote iSCSI server.",
36295 "method" : "GET",
36296 "name" : "iscsiscan",
36297 "parameters" : {
36298 "additionalProperties" : 0,
36299 "properties" : {
36300 "node" : {
36301 "description" : "The cluster node name.",
36302 "format" : "pve-node",
36303 "type" : "string",
36304 "typetext" : "<string>"
56122987 36305 },
4d47f125
TL
36306 "portal" : {
36307 "description" : "The iSCSI portal (IP or DNS name with optional port).",
36308 "format" : "pve-storage-portal-dns",
36309 "type" : "string",
36310 "typetext" : "<string>"
36311 }
36312 }
36313 },
36314 "permissions" : {
36315 "check" : [
36316 "perm",
36317 "/storage",
36318 [
36319 "Datastore.Allocate"
36320 ]
36321 ]
36322 },
36323 "protected" : 1,
36324 "proxyto" : "node",
36325 "returns" : {
36326 "items" : {
36327 "properties" : {
36328 "portal" : {
36329 "description" : "The iSCSI portal name.",
36330 "type" : "string"
7aacca6f 36331 },
4d47f125
TL
36332 "target" : {
36333 "description" : "The iSCSI target name.",
36334 "type" : "string"
36335 }
36336 },
36337 "type" : "object"
36338 },
36339 "type" : "array"
36340 }
36341 }
36342 },
36343 "leaf" : 1,
36344 "path" : "/nodes/{node}/scan/iscsi",
36345 "text" : "iscsi"
36346 },
36347 {
36348 "info" : {
36349 "GET" : {
e9cd3bd4 36350 "allowtoken" : 1,
4d47f125
TL
36351 "description" : "List local LVM volume groups.",
36352 "method" : "GET",
36353 "name" : "lvmscan",
36354 "parameters" : {
36355 "additionalProperties" : 0,
36356 "properties" : {
36357 "node" : {
36358 "description" : "The cluster node name.",
36359 "format" : "pve-node",
36360 "type" : "string",
36361 "typetext" : "<string>"
56122987 36362 }
7aacca6f 36363 }
44660702 36364 },
4d47f125
TL
36365 "permissions" : {
36366 "check" : [
36367 "perm",
36368 "/storage",
36369 [
36370 "Datastore.Allocate"
36371 ]
36372 ]
36373 },
36374 "protected" : 1,
36375 "proxyto" : "node",
36376 "returns" : {
36377 "items" : {
36378 "properties" : {
36379 "vg" : {
36380 "description" : "The LVM logical volume group name.",
36381 "type" : "string"
36382 }
36383 },
36384 "type" : "object"
36385 },
36386 "type" : "array"
36387 }
56122987 36388 }
4d47f125
TL
36389 },
36390 "leaf" : 1,
36391 "path" : "/nodes/{node}/scan/lvm",
36392 "text" : "lvm"
36393 },
36394 {
44660702 36395 "info" : {
4d47f125 36396 "GET" : {
e9cd3bd4 36397 "allowtoken" : 1,
4d47f125
TL
36398 "description" : "List local LVM Thin Pools.",
36399 "method" : "GET",
36400 "name" : "lvmthinscan",
44660702
DM
36401 "parameters" : {
36402 "additionalProperties" : 0,
36403 "properties" : {
36404 "node" : {
36405 "description" : "The cluster node name.",
36406 "format" : "pve-node",
013dc89f
DM
36407 "type" : "string",
36408 "typetext" : "<string>"
44660702 36409 },
4d47f125
TL
36410 "vg" : {
36411 "maxLength" : 100,
36412 "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
36413 "type" : "string"
44660702 36414 }
7aacca6f 36415 }
44660702
DM
36416 },
36417 "permissions" : {
4d47f125
TL
36418 "check" : [
36419 "perm",
36420 "/storage",
36421 [
36422 "Datastore.Allocate"
36423 ]
36424 ]
44660702
DM
36425 },
36426 "protected" : 1,
36427 "proxyto" : "node",
36428 "returns" : {
4d47f125
TL
36429 "items" : {
36430 "properties" : {
36431 "lv" : {
36432 "description" : "The LVM Thin Pool name (LVM logical volume).",
36433 "type" : "string"
36434 }
36435 },
36436 "type" : "object"
36437 },
36438 "type" : "array"
7aacca6f 36439 }
4d47f125
TL
36440 }
36441 },
36442 "leaf" : 1,
36443 "path" : "/nodes/{node}/scan/lvmthin",
36444 "text" : "lvmthin"
36445 },
d2656385
TL
36446 {
36447 "info" : {
36448 "GET" : {
36449 "allowtoken" : 1,
36450 "description" : "Scan zfs pool list on local node.",
36451 "method" : "GET",
36452 "name" : "zfsscan",
36453 "parameters" : {
36454 "additionalProperties" : 0,
36455 "properties" : {
36456 "node" : {
36457 "description" : "The cluster node name.",
36458 "format" : "pve-node",
36459 "type" : "string",
36460 "typetext" : "<string>"
36461 }
36462 }
36463 },
36464 "permissions" : {
36465 "check" : [
36466 "perm",
36467 "/storage",
36468 [
36469 "Datastore.Allocate"
36470 ]
36471 ]
36472 },
36473 "protected" : 1,
36474 "proxyto" : "node",
36475 "returns" : {
36476 "items" : {
36477 "properties" : {
36478 "pool" : {
36479 "description" : "ZFS pool name.",
36480 "type" : "string"
36481 }
36482 },
36483 "type" : "object"
36484 },
36485 "type" : "array"
36486 }
36487 }
36488 },
36489 "leaf" : 1,
36490 "path" : "/nodes/{node}/scan/zfs",
36491 "text" : "zfs"
44660702
DM
36492 }
36493 ],
36494 "info" : {
36495 "GET" : {
e9cd3bd4 36496 "allowtoken" : 1,
4d47f125 36497 "description" : "Index of available scan methods",
44660702 36498 "method" : "GET",
4d47f125 36499 "name" : "index",
56122987 36500 "parameters" : {
7aacca6f 36501 "additionalProperties" : 0,
56122987 36502 "properties" : {
56122987
DM
36503 "node" : {
36504 "description" : "The cluster node name.",
44660702 36505 "format" : "pve-node",
013dc89f
DM
36506 "type" : "string",
36507 "typetext" : "<string>"
56122987
DM
36508 }
36509 }
36510 },
7aacca6f
DM
36511 "permissions" : {
36512 "user" : "all"
36513 },
56122987
DM
36514 "returns" : {
36515 "items" : {
36516 "properties" : {
4d47f125 36517 "method" : {
56122987
DM
36518 "type" : "string"
36519 }
36520 },
36521 "type" : "object"
36522 },
56122987
DM
36523 "links" : [
36524 {
4d47f125 36525 "href" : "{method}",
44660702 36526 "rel" : "child"
56122987 36527 }
44660702
DM
36528 ],
36529 "type" : "array"
56122987
DM
36530 }
36531 }
36532 },
44660702 36533 "leaf" : 0,
4d47f125
TL
36534 "path" : "/nodes/{node}/scan",
36535 "text" : "scan"
44660702 36536 },
e2d681b3
TL
36537 {
36538 "children" : [
36539 {
36540 "children" : [
36541 {
36542 "children" : [
36543 {
36544 "info" : {
36545 "GET" : {
e9cd3bd4 36546 "allowtoken" : 1,
e2d681b3
TL
36547 "description" : "List mediated device types for given PCI device.",
36548 "method" : "GET",
36549 "name" : "mdevscan",
36550 "parameters" : {
36551 "additionalProperties" : 0,
36552 "properties" : {
36553 "node" : {
36554 "description" : "The cluster node name.",
36555 "format" : "pve-node",
36556 "type" : "string",
36557 "typetext" : "<string>"
36558 },
36559 "pciid" : {
36560 "description" : "The PCI ID to list the mdev types for.",
36561 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
36562 "type" : "string"
36563 }
36564 }
36565 },
36566 "permissions" : {
36567 "check" : [
36568 "perm",
36569 "/",
36570 [
36571 "Sys.Modify"
36572 ]
36573 ]
36574 },
36575 "protected" : 1,
36576 "proxyto" : "node",
36577 "returns" : {
36578 "items" : {
36579 "properties" : {
36580 "available" : {
36581 "description" : "The number of still available instances of this type.",
36582 "type" : "integer"
36583 },
36584 "description" : {
36585 "type" : "string"
36586 },
36587 "type" : {
36588 "description" : "The name of the mdev type.",
36589 "type" : "string"
36590 }
36591 },
36592 "type" : "object"
36593 },
36594 "type" : "array"
36595 }
36596 }
36597 },
36598 "leaf" : 1,
36599 "path" : "/nodes/{node}/hardware/pci/{pciid}/mdev",
36600 "text" : "mdev"
36601 }
36602 ],
36603 "info" : {
36604 "GET" : {
e9cd3bd4 36605 "allowtoken" : 1,
e2d681b3
TL
36606 "description" : "Index of available pci methods",
36607 "method" : "GET",
36608 "name" : "pciindex",
36609 "parameters" : {
36610 "additionalProperties" : 0,
36611 "properties" : {
36612 "node" : {
36613 "description" : "The cluster node name.",
36614 "format" : "pve-node",
36615 "type" : "string",
36616 "typetext" : "<string>"
36617 },
36618 "pciid" : {
36619 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
36620 "type" : "string"
36621 }
36622 }
36623 },
36624 "permissions" : {
36625 "user" : "all"
36626 },
36627 "returns" : {
36628 "items" : {
36629 "properties" : {
36630 "method" : {
36631 "type" : "string"
36632 }
36633 },
36634 "type" : "object"
36635 },
36636 "links" : [
36637 {
36638 "href" : "{method}",
36639 "rel" : "child"
36640 }
36641 ],
36642 "type" : "array"
36643 }
36644 }
36645 },
36646 "leaf" : 0,
36647 "path" : "/nodes/{node}/hardware/pci/{pciid}",
36648 "text" : "{pciid}"
36649 }
36650 ],
36651 "info" : {
36652 "GET" : {
e9cd3bd4 36653 "allowtoken" : 1,
e2d681b3
TL
36654 "description" : "List local PCI devices.",
36655 "method" : "GET",
36656 "name" : "pciscan",
36657 "parameters" : {
36658 "additionalProperties" : 0,
36659 "properties" : {
36660 "node" : {
36661 "description" : "The cluster node name.",
36662 "format" : "pve-node",
36663 "type" : "string",
36664 "typetext" : "<string>"
36665 },
36666 "pci-class-blacklist" : {
5370fa8c
TL
36667 "default" : "05;06;0b",
36668 "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
36669 "format" : "string-list",
36670 "optional" : 1,
36671 "type" : "string",
36672 "typetext" : "<string>"
36673 },
36674 "verbose" : {
36675 "default" : 1,
36676 "description" : "If disabled, does only print the PCI IDs. Otherwise, additional information like vendor and device will be returned.",
36677 "optional" : 1,
36678 "type" : "boolean",
36679 "typetext" : "<boolean>"
36680 }
36681 }
36682 },
36683 "permissions" : {
36684 "check" : [
36685 "perm",
36686 "/",
36687 [
36688 "Sys.Modify"
36689 ]
36690 ]
36691 },
36692 "protected" : 1,
36693 "proxyto" : "node",
36694 "returns" : {
36695 "items" : {
36696 "properties" : {
36697 "class" : {
36698 "description" : "The PCI Class of the device.",
36699 "type" : "string"
36700 },
36701 "device" : {
36702 "description" : "The Device ID.",
36703 "type" : "string"
36704 },
36705 "device_name" : {
36706 "optional" : 1,
36707 "type" : "string"
36708 },
36709 "id" : {
36710 "description" : "The PCI ID.",
36711 "type" : "string"
36712 },
36713 "iommugroup" : {
36714 "description" : "The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.",
36715 "type" : "integer"
36716 },
36717 "mdev" : {
36718 "description" : "If set, marks that the device is capable of creating mediated devices.",
36719 "optional" : 1,
36720 "type" : "boolean"
36721 },
36722 "subsystem_device" : {
36723 "description" : "The Subsystem Device ID.",
36724 "optional" : 1,
36725 "type" : "string"
36726 },
36727 "subsystem_device_name" : {
36728 "optional" : 1,
36729 "type" : "string"
36730 },
36731 "subsystem_vendor" : {
36732 "description" : "The Subsystem Vendor ID.",
36733 "optional" : 1,
36734 "type" : "string"
36735 },
36736 "subsystem_vendor_name" : {
36737 "optional" : 1,
36738 "type" : "string"
36739 },
36740 "vendor" : {
36741 "description" : "The Vendor ID.",
36742 "type" : "string"
36743 },
36744 "vendor_name" : {
36745 "optional" : 1,
36746 "type" : "string"
36747 }
36748 },
36749 "type" : "object"
36750 },
36751 "links" : [
36752 {
36753 "href" : "{id}",
36754 "rel" : "child"
36755 }
36756 ],
36757 "type" : "array"
36758 }
36759 }
36760 },
36761 "leaf" : 0,
36762 "path" : "/nodes/{node}/hardware/pci",
36763 "text" : "pci"
d2656385
TL
36764 },
36765 {
36766 "info" : {
36767 "GET" : {
36768 "allowtoken" : 1,
36769 "description" : "List local USB devices.",
36770 "method" : "GET",
36771 "name" : "usbscan",
36772 "parameters" : {
36773 "additionalProperties" : 0,
36774 "properties" : {
36775 "node" : {
36776 "description" : "The cluster node name.",
36777 "format" : "pve-node",
36778 "type" : "string",
36779 "typetext" : "<string>"
36780 }
36781 }
36782 },
36783 "permissions" : {
36784 "check" : [
36785 "perm",
36786 "/",
36787 [
36788 "Sys.Modify"
36789 ]
36790 ]
36791 },
36792 "protected" : 1,
36793 "proxyto" : "node",
36794 "returns" : {
36795 "items" : {
36796 "properties" : {
36797 "busnum" : {
36798 "type" : "integer"
36799 },
36800 "class" : {
36801 "type" : "integer"
36802 },
36803 "devnum" : {
36804 "type" : "integer"
36805 },
36806 "level" : {
36807 "type" : "integer"
36808 },
36809 "manufacturer" : {
36810 "optional" : 1,
36811 "type" : "string"
36812 },
36813 "port" : {
36814 "type" : "integer"
36815 },
36816 "prodid" : {
36817 "type" : "string"
36818 },
36819 "product" : {
36820 "optional" : 1,
36821 "type" : "string"
36822 },
36823 "serial" : {
36824 "optional" : 1,
36825 "type" : "string"
36826 },
36827 "speed" : {
36828 "type" : "string"
36829 },
36830 "usbpath" : {
36831 "optional" : 1,
36832 "type" : "string"
36833 },
36834 "vendid" : {
36835 "type" : "string"
36836 }
36837 },
36838 "type" : "object"
36839 },
36840 "type" : "array"
36841 }
36842 }
36843 },
36844 "leaf" : 1,
36845 "path" : "/nodes/{node}/hardware/usb",
36846 "text" : "usb"
e2d681b3
TL
36847 }
36848 ],
36849 "info" : {
36850 "GET" : {
e9cd3bd4 36851 "allowtoken" : 1,
e2d681b3
TL
36852 "description" : "Index of hardware types",
36853 "method" : "GET",
36854 "name" : "index",
36855 "parameters" : {
36856 "additionalProperties" : 0,
36857 "properties" : {
36858 "node" : {
36859 "description" : "The cluster node name.",
36860 "format" : "pve-node",
36861 "type" : "string",
36862 "typetext" : "<string>"
36863 }
36864 }
36865 },
36866 "permissions" : {
36867 "user" : "all"
36868 },
36869 "returns" : {
36870 "items" : {
36871 "properties" : {
36872 "type" : {
36873 "type" : "string"
36874 }
36875 },
36876 "type" : "object"
36877 },
36878 "links" : [
36879 {
36880 "href" : "{type}",
36881 "rel" : "child"
36882 }
36883 ],
36884 "type" : "array"
36885 }
36886 }
36887 },
36888 "leaf" : 0,
36889 "path" : "/nodes/{node}/hardware",
36890 "text" : "hardware"
36891 },
d2656385
TL
36892 {
36893 "children" : [
36894 {
36895 "children" : [
0695fdaf
TL
36896 {
36897 "info" : {
36898 "GET" : {
36899 "allowtoken" : 1,
36900 "description" : "List all custom and default CPU models.",
36901 "method" : "GET",
36902 "name" : "index",
36903 "parameters" : {
36904 "additionalProperties" : 0,
36905 "properties" : {
36906 "node" : {
36907 "description" : "The cluster node name.",
36908 "format" : "pve-node",
36909 "type" : "string",
36910 "typetext" : "<string>"
36911 }
36912 }
36913 },
36914 "permissions" : {
36915 "description" : "Only returns custom models when the current user has Sys.Audit on /nodes.",
36916 "user" : "all"
36917 },
36918 "returns" : {
36919 "items" : {
36920 "properties" : {
36921 "custom" : {
36922 "description" : "True if this is a custom CPU model.",
36923 "type" : "boolean"
36924 },
36925 "name" : {
36926 "description" : "Name of the CPU model. Identifies it for subsequent API calls. Prefixed with 'custom-' for custom models.",
36927 "type" : "string"
36928 },
36929 "vendor" : {
36930 "description" : "CPU vendor visible to the guest when this model is selected. Vendor of 'reported-model' in case of custom models.",
36931 "type" : "string"
36932 }
36933 },
36934 "type" : "object"
36935 },
36936 "links" : [
36937 {
36938 "href" : "{name}",
36939 "rel" : "child"
36940 }
36941 ],
36942 "type" : "array"
36943 }
36944 }
36945 },
36946 "leaf" : 1,
36947 "path" : "/nodes/{node}/capabilities/qemu/cpu",
36948 "text" : "cpu"
36949 },
d2656385
TL
36950 {
36951 "info" : {
36952 "GET" : {
36953 "allowtoken" : 1,
36954 "description" : "Get available QEMU/KVM machine types.",
36955 "method" : "GET",
36956 "name" : "types",
36957 "parameters" : {
36958 "additionalProperties" : 0,
36959 "properties" : {
36960 "node" : {
36961 "description" : "The cluster node name.",
36962 "format" : "pve-node",
36963 "type" : "string",
36964 "typetext" : "<string>"
36965 }
36966 }
36967 },
36968 "permissions" : {
36969 "user" : "all"
36970 },
36971 "proxyto" : "node",
36972 "returns" : {
36973 "items" : {
36974 "additionalProperties" : 1,
36975 "properties" : {
36976 "id" : {
36977 "description" : "Full name of machine type and version.",
36978 "type" : "string"
36979 },
36980 "type" : {
36981 "description" : "The machine type.",
36982 "enum" : [
36983 "q35",
36984 "i440fx"
36985 ],
36986 "type" : "string"
36987 },
36988 "version" : {
36989 "description" : "The machine version.",
36990 "type" : "string"
36991 }
36992 },
36993 "type" : "object"
36994 },
36995 "type" : "array"
36996 }
36997 }
36998 },
36999 "leaf" : 1,
37000 "path" : "/nodes/{node}/capabilities/qemu/machines",
37001 "text" : "machines"
37002 }
37003 ],
37004 "info" : {
37005 "GET" : {
37006 "allowtoken" : 1,
37007 "description" : "QEMU capabilities index.",
37008 "method" : "GET",
37009 "name" : "qemu_caps_index",
37010 "parameters" : {
37011 "additionalProperties" : 0,
37012 "properties" : {
37013 "node" : {
37014 "description" : "The cluster node name.",
37015 "format" : "pve-node",
37016 "type" : "string",
37017 "typetext" : "<string>"
37018 }
37019 }
37020 },
37021 "permissions" : {
37022 "user" : "all"
37023 },
37024 "returns" : {
37025 "items" : {
37026 "properties" : {},
37027 "type" : "object"
37028 },
37029 "links" : [
37030 {
37031 "href" : "{name}",
37032 "rel" : "child"
37033 }
37034 ],
37035 "type" : "array"
37036 }
37037 }
37038 },
37039 "leaf" : 0,
37040 "path" : "/nodes/{node}/capabilities/qemu",
37041 "text" : "qemu"
37042 }
37043 ],
37044 "info" : {
37045 "GET" : {
37046 "allowtoken" : 1,
37047 "description" : "Node capabilities index.",
37048 "method" : "GET",
37049 "name" : "index",
37050 "parameters" : {
37051 "additionalProperties" : 0,
37052 "properties" : {
37053 "node" : {
37054 "description" : "The cluster node name.",
37055 "format" : "pve-node",
37056 "type" : "string",
37057 "typetext" : "<string>"
37058 }
37059 }
37060 },
37061 "permissions" : {
37062 "user" : "all"
37063 },
37064 "returns" : {
37065 "items" : {
37066 "properties" : {},
37067 "type" : "object"
37068 },
37069 "links" : [
37070 {
37071 "href" : "{name}",
37072 "rel" : "child"
37073 }
37074 ],
37075 "type" : "array"
37076 }
37077 }
37078 },
37079 "leaf" : 0,
37080 "path" : "/nodes/{node}/capabilities",
37081 "text" : "capabilities"
37082 },
44660702 37083 {
56122987
DM
37084 "children" : [
37085 {
4d47f125 37086 "children" : [
739d4d64
TL
37087 {
37088 "info" : {
37089 "DELETE" : {
37090 "allowtoken" : 1,
37091 "description" : "Prune backups. Only those using the standard naming scheme are considered.",
37092 "method" : "DELETE",
37093 "name" : "delete",
37094 "parameters" : {
37095 "additionalProperties" : 0,
37096 "properties" : {
37097 "node" : {
37098 "description" : "The cluster node name.",
37099 "format" : "pve-node",
37100 "type" : "string",
37101 "typetext" : "<string>"
37102 },
37103 "prune-backups" : {
37104 "description" : "Use these retention options instead of those from the storage configuration.",
37105 "format" : "prune-backups",
37106 "optional" : 1,
37107 "type" : "string",
4772952b 37108 "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
37109 },
37110 "storage" : {
37111 "description" : "The storage identifier.",
37112 "format" : "pve-storage-id",
37113 "type" : "string",
37114 "typetext" : "<string>"
37115 },
37116 "type" : {
37117 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
37118 "enum" : [
37119 "qemu",
37120 "lxc"
37121 ],
37122 "optional" : 1,
37123 "type" : "string"
37124 },
37125 "vmid" : {
37126 "description" : "Only prune backups for this VM.",
37127 "format" : "pve-vmid",
37128 "minimum" : 1,
37129 "optional" : 1,
37130 "type" : "integer",
37131 "typetext" : "<integer> (1 - N)"
37132 }
37133 }
37134 },
37135 "permissions" : {
37136 "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).",
37137 "user" : "all"
37138 },
37139 "protected" : 1,
37140 "proxyto" : "node",
37141 "returns" : {
37142 "type" : "string"
37143 }
37144 },
37145 "GET" : {
37146 "allowtoken" : 1,
4772952b 37147 "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
37148 "method" : "GET",
37149 "name" : "dryrun",
37150 "parameters" : {
37151 "additionalProperties" : 0,
37152 "properties" : {
37153 "node" : {
37154 "description" : "The cluster node name.",
37155 "format" : "pve-node",
37156 "type" : "string",
37157 "typetext" : "<string>"
37158 },
37159 "prune-backups" : {
37160 "description" : "Use these retention options instead of those from the storage configuration.",
37161 "format" : "prune-backups",
37162 "optional" : 1,
37163 "type" : "string",
4772952b 37164 "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
37165 },
37166 "storage" : {
37167 "description" : "The storage identifier.",
37168 "format" : "pve-storage-id",
37169 "type" : "string",
37170 "typetext" : "<string>"
37171 },
37172 "type" : {
37173 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
37174 "enum" : [
37175 "qemu",
37176 "lxc"
37177 ],
37178 "optional" : 1,
37179 "type" : "string"
37180 },
37181 "vmid" : {
37182 "description" : "Only consider backups for this guest.",
37183 "format" : "pve-vmid",
37184 "minimum" : 1,
37185 "optional" : 1,
37186 "type" : "integer",
37187 "typetext" : "<integer> (1 - N)"
37188 }
37189 }
37190 },
37191 "permissions" : {
37192 "check" : [
37193 "perm",
37194 "/storage/{storage}",
37195 [
37196 "Datastore.Audit",
37197 "Datastore.AllocateSpace"
37198 ],
37199 "any",
37200 1
37201 ]
37202 },
37203 "protected" : 1,
37204 "proxyto" : "node",
37205 "returns" : {
37206 "items" : {
37207 "properties" : {
37208 "ctime" : {
37209 "description" : "Creation time of the backup (seconds since the UNIX epoch).",
37210 "type" : "integer"
37211 },
37212 "mark" : {
5370fa8c
TL
37213 "description" : "Whether the backup would be kept or removed. Backups that are protected or don't use the standard naming scheme are not removed.",
37214 "enum" : [
37215 "keep",
37216 "remove",
37217 "protected",
37218 "renamed"
37219 ],
739d4d64
TL
37220 "type" : "string"
37221 },
37222 "type" : {
37223 "description" : "One of 'qemu', 'lxc', 'openvz' or 'unknown'.",
37224 "type" : "string"
37225 },
37226 "vmid" : {
37227 "description" : "The VM the backup belongs to.",
37228 "optional" : 1,
37229 "type" : "integer"
37230 },
37231 "volid" : {
37232 "description" : "Backup volume ID.",
37233 "type" : "string"
37234 }
37235 },
37236 "type" : "object"
37237 },
37238 "type" : "array"
37239 }
37240 }
37241 },
37242 "leaf" : 1,
37243 "path" : "/nodes/{node}/storage/{storage}/prunebackups",
37244 "text" : "prunebackups"
37245 },
4d47f125
TL
37246 {
37247 "children" : [
37248 {
37249 "info" : {
37250 "DELETE" : {
e9cd3bd4 37251 "allowtoken" : 1,
4d47f125
TL
37252 "description" : "Delete volume",
37253 "method" : "DELETE",
37254 "name" : "delete",
37255 "parameters" : {
37256 "additionalProperties" : 0,
37257 "properties" : {
1c532546
TL
37258 "delay" : {
37259 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
37260 "maximum" : 30,
37261 "minimum" : 1,
37262 "optional" : 1,
37263 "type" : "integer",
37264 "typetext" : "<integer> (1 - 30)"
37265 },
4d47f125
TL
37266 "node" : {
37267 "description" : "The cluster node name.",
37268 "format" : "pve-node",
37269 "type" : "string",
37270 "typetext" : "<string>"
37271 },
37272 "storage" : {
37273 "description" : "The storage identifier.",
37274 "format" : "pve-storage-id",
37275 "optional" : 1,
37276 "type" : "string",
37277 "typetext" : "<string>"
37278 },
37279 "volume" : {
37280 "description" : "Volume identifier",
37281 "type" : "string",
37282 "typetext" : "<string>"
37283 }
37284 }
37285 },
37286 "permissions" : {
37287 "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
37288 "user" : "all"
37289 },
37290 "protected" : 1,
37291 "proxyto" : "node",
37292 "returns" : {
1c532546
TL
37293 "optional" : 1,
37294 "type" : "string"
4d47f125
TL
37295 }
37296 },
37297 "GET" : {
e9cd3bd4 37298 "allowtoken" : 1,
4d47f125
TL
37299 "description" : "Get volume attributes",
37300 "method" : "GET",
37301 "name" : "info",
37302 "parameters" : {
37303 "additionalProperties" : 0,
37304 "properties" : {
37305 "node" : {
37306 "description" : "The cluster node name.",
37307 "format" : "pve-node",
37308 "type" : "string",
37309 "typetext" : "<string>"
37310 },
37311 "storage" : {
37312 "description" : "The storage identifier.",
37313 "format" : "pve-storage-id",
37314 "optional" : 1,
37315 "type" : "string",
37316 "typetext" : "<string>"
37317 },
37318 "volume" : {
37319 "description" : "Volume identifier",
37320 "type" : "string",
37321 "typetext" : "<string>"
37322 }
37323 }
37324 },
37325 "permissions" : {
37326 "description" : "You need read access for the volume.",
37327 "user" : "all"
37328 },
37329 "protected" : 1,
37330 "proxyto" : "node",
37331 "returns" : {
4772952b
TL
37332 "properties" : {
37333 "format" : {
37334 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
37335 "type" : "string"
37336 },
37337 "notes" : {
37338 "description" : "Optional notes.",
37339 "optional" : 1,
37340 "type" : "string"
37341 },
37342 "path" : {
37343 "description" : "The Path",
37344 "type" : "string"
37345 },
5370fa8c
TL
37346 "protected" : {
37347 "description" : "Protection status. Currently only supported for backups.",
37348 "optional" : 1,
37349 "type" : "boolean"
37350 },
4772952b
TL
37351 "size" : {
37352 "description" : "Volume size in bytes.",
37353 "renderer" : "bytes",
37354 "type" : "integer"
37355 },
37356 "used" : {
37357 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
37358 "renderer" : "bytes",
37359 "type" : "integer"
37360 }
37361 },
4d47f125
TL
37362 "type" : "object"
37363 }
37364 },
37365 "POST" : {
e9cd3bd4 37366 "allowtoken" : 1,
4d47f125
TL
37367 "description" : "Copy a volume. This is experimental code - do not use.",
37368 "method" : "POST",
37369 "name" : "copy",
37370 "parameters" : {
37371 "additionalProperties" : 0,
37372 "properties" : {
37373 "node" : {
37374 "description" : "The cluster node name.",
37375 "format" : "pve-node",
37376 "type" : "string",
37377 "typetext" : "<string>"
37378 },
37379 "storage" : {
37380 "description" : "The storage identifier.",
37381 "format" : "pve-storage-id",
37382 "optional" : 1,
37383 "type" : "string",
37384 "typetext" : "<string>"
37385 },
37386 "target" : {
37387 "description" : "Target volume identifier",
37388 "type" : "string",
37389 "typetext" : "<string>"
37390 },
37391 "target_node" : {
37392 "description" : "Target node. Default is local node.",
37393 "format" : "pve-node",
37394 "optional" : 1,
37395 "type" : "string",
37396 "typetext" : "<string>"
37397 },
37398 "volume" : {
37399 "description" : "Source volume identifier",
37400 "type" : "string",
37401 "typetext" : "<string>"
37402 }
37403 }
37404 },
37405 "protected" : 1,
37406 "proxyto" : "node",
37407 "returns" : {
37408 "type" : "string"
37409 }
4772952b
TL
37410 },
37411 "PUT" : {
37412 "allowtoken" : 1,
37413 "description" : "Update volume attributes",
37414 "method" : "PUT",
37415 "name" : "updateattributes",
37416 "parameters" : {
37417 "additionalProperties" : 0,
37418 "properties" : {
37419 "node" : {
37420 "description" : "The cluster node name.",
37421 "format" : "pve-node",
37422 "type" : "string",
37423 "typetext" : "<string>"
37424 },
37425 "notes" : {
37426 "description" : "The new notes.",
37427 "optional" : 1,
37428 "type" : "string",
37429 "typetext" : "<string>"
37430 },
5370fa8c
TL
37431 "protected" : {
37432 "description" : "Protection status. Currently only supported for backups.",
37433 "optional" : 1,
37434 "type" : "boolean",
37435 "typetext" : "<boolean>"
37436 },
4772952b
TL
37437 "storage" : {
37438 "description" : "The storage identifier.",
37439 "format" : "pve-storage-id",
37440 "optional" : 1,
37441 "type" : "string",
37442 "typetext" : "<string>"
37443 },
37444 "volume" : {
37445 "description" : "Volume identifier",
37446 "type" : "string",
37447 "typetext" : "<string>"
37448 }
37449 }
37450 },
37451 "permissions" : {
37452 "description" : "You need read access for the volume.",
37453 "user" : "all"
37454 },
37455 "protected" : 1,
37456 "proxyto" : "node",
37457 "returns" : {
37458 "type" : "null"
37459 }
4d47f125
TL
37460 }
37461 },
37462 "leaf" : 1,
37463 "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
37464 "text" : "{volume}"
44660702 37465 }
4d47f125
TL
37466 ],
37467 "info" : {
37468 "GET" : {
e9cd3bd4 37469 "allowtoken" : 1,
4d47f125
TL
37470 "description" : "List storage content.",
37471 "method" : "GET",
37472 "name" : "index",
37473 "parameters" : {
37474 "additionalProperties" : 0,
37475 "properties" : {
37476 "content" : {
37477 "description" : "Only list content of this type.",
37478 "format" : "pve-storage-content",
37479 "optional" : 1,
37480 "type" : "string",
37481 "typetext" : "<string>"
37482 },
37483 "node" : {
37484 "description" : "The cluster node name.",
37485 "format" : "pve-node",
37486 "type" : "string",
37487 "typetext" : "<string>"
37488 },
37489 "storage" : {
37490 "description" : "The storage identifier.",
37491 "format" : "pve-storage-id",
37492 "type" : "string",
37493 "typetext" : "<string>"
37494 },
37495 "vmid" : {
37496 "description" : "Only list images for this VM",
37497 "format" : "pve-vmid",
37498 "minimum" : 1,
37499 "optional" : 1,
37500 "type" : "integer",
37501 "typetext" : "<integer> (1 - N)"
37502 }
56122987 37503 }
44660702 37504 },
4d47f125
TL
37505 "permissions" : {
37506 "check" : [
37507 "perm",
37508 "/storage/{storage}",
37509 [
37510 "Datastore.Audit",
37511 "Datastore.AllocateSpace"
37512 ],
37513 "any",
37514 1
37515 ]
7aacca6f 37516 },
4d47f125
TL
37517 "protected" : 1,
37518 "proxyto" : "node",
37519 "returns" : {
37520 "items" : {
37521 "properties" : {
c5aa7e14
TL
37522 "ctime" : {
37523 "description" : "Creation time (seconds since the UNIX Epoch).",
37524 "minimum" : 0,
37525 "optional" : 1,
37526 "type" : "integer"
37527 },
d2656385
TL
37528 "encrypted" : {
37529 "description" : "If whole backup is encrypted, value is the fingerprint or '1' if encrypted. Only useful for the Proxmox Backup Server storage type.",
37530 "optional" : 1,
37531 "type" : "string"
37532 },
4d47f125
TL
37533 "format" : {
37534 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
37535 "type" : "string"
37536 },
4772952b
TL
37537 "notes" : {
37538 "description" : "Optional notes. If they contain multiple lines, only the first one is returned here.",
37539 "optional" : 1,
37540 "type" : "string"
37541 },
4d47f125
TL
37542 "parent" : {
37543 "description" : "Volume identifier of parent (for linked cloned).",
37544 "optional" : 1,
37545 "type" : "string"
37546 },
5370fa8c
TL
37547 "protected" : {
37548 "description" : "Protection status. Currently only supported for backups.",
37549 "optional" : 1,
37550 "type" : "boolean"
37551 },
4d47f125
TL
37552 "size" : {
37553 "description" : "Volume size in bytes.",
37554 "renderer" : "bytes",
37555 "type" : "integer"
37556 },
37557 "used" : {
c5aa7e14 37558 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
4d47f125
TL
37559 "optional" : 1,
37560 "renderer" : "bytes",
37561 "type" : "integer"
37562 },
4772952b
TL
37563 "verification" : {
37564 "description" : "Last backup verification result, only useful for PBS storages.",
37565 "optional" : 1,
37566 "properties" : {
37567 "state" : {
37568 "description" : "Last backup verification state.",
37569 "type" : "string"
37570 },
37571 "upid" : {
37572 "description" : "Last backup verification UPID.",
37573 "type" : "string"
37574 }
37575 },
37576 "type" : "object"
37577 },
4d47f125
TL
37578 "vmid" : {
37579 "description" : "Associated Owner VMID.",
37580 "optional" : 1,
37581 "type" : "integer"
37582 },
37583 "volid" : {
37584 "description" : "Volume identifier.",
37585 "type" : "string"
37586 }
37587 },
37588 "type" : "object"
44660702 37589 },
4d47f125
TL
37590 "links" : [
37591 {
37592 "href" : "{volid}",
37593 "rel" : "child"
37594 }
37595 ],
37596 "type" : "array"
37597 }
37598 },
37599 "POST" : {
e9cd3bd4 37600 "allowtoken" : 1,
4d47f125
TL
37601 "description" : "Allocate disk images.",
37602 "method" : "POST",
37603 "name" : "create",
37604 "parameters" : {
37605 "additionalProperties" : 0,
37606 "properties" : {
37607 "filename" : {
37608 "description" : "The name of the file to create.",
37609 "type" : "string",
37610 "typetext" : "<string>"
37611 },
37612 "format" : {
37613 "enum" : [
37614 "raw",
37615 "qcow2",
37616 "subvol"
37617 ],
37618 "optional" : 1,
37619 "requires" : "size",
37620 "type" : "string"
37621 },
37622 "node" : {
37623 "description" : "The cluster node name.",
37624 "format" : "pve-node",
37625 "type" : "string",
37626 "typetext" : "<string>"
37627 },
37628 "size" : {
37629 "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
37630 "pattern" : "\\d+[MG]?",
37631 "type" : "string"
37632 },
37633 "storage" : {
37634 "description" : "The storage identifier.",
37635 "format" : "pve-storage-id",
37636 "type" : "string",
37637 "typetext" : "<string>"
37638 },
37639 "vmid" : {
37640 "description" : "Specify owner VM",
37641 "format" : "pve-vmid",
37642 "minimum" : 1,
37643 "type" : "integer",
37644 "typetext" : "<integer> (1 - N)"
37645 }
44660702
DM
37646 }
37647 },
4d47f125
TL
37648 "permissions" : {
37649 "check" : [
37650 "perm",
37651 "/storage/{storage}",
37652 [
37653 "Datastore.AllocateSpace"
37654 ]
37655 ]
27a7acb2 37656 },
4d47f125
TL
37657 "protected" : 1,
37658 "proxyto" : "node",
37659 "returns" : {
37660 "description" : "Volume identifier",
37661 "type" : "string"
27a7acb2
DM
37662 }
37663 }
37664 },
4d47f125
TL
37665 "leaf" : 0,
37666 "path" : "/nodes/{node}/storage/{storage}/content",
37667 "text" : "content"
37668 },
d2656385
TL
37669 {
37670 "children" : [
37671 {
37672 "info" : {
37673 "GET" : {
37674 "allowtoken" : 1,
37675 "description" : "List files and directories for single file restore under the given path.",
37676 "method" : "GET",
37677 "name" : "list",
37678 "parameters" : {
37679 "additionalProperties" : 0,
37680 "properties" : {
37681 "filepath" : {
37682 "description" : "base64-path to the directory or file being listed, or \"/\".",
37683 "type" : "string",
37684 "typetext" : "<string>"
37685 },
37686 "node" : {
37687 "description" : "The cluster node name.",
37688 "format" : "pve-node",
37689 "type" : "string",
37690 "typetext" : "<string>"
37691 },
37692 "storage" : {
37693 "description" : "The storage identifier.",
37694 "format" : "pve-storage-id",
37695 "type" : "string",
37696 "typetext" : "<string>"
37697 },
37698 "volume" : {
37699 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
37700 "type" : "string",
37701 "typetext" : "<string>"
37702 }
37703 }
37704 },
37705 "permissions" : {
37706 "description" : "You need read access for the volume.",
37707 "user" : "all"
37708 },
37709 "protected" : 1,
37710 "proxyto" : "node",
37711 "returns" : {
37712 "items" : {
37713 "properties" : {
37714 "filepath" : {
37715 "description" : "base64 path of the current entry",
37716 "type" : "string"
37717 },
37718 "leaf" : {
37719 "description" : "If this entry is a leaf in the directory graph.",
37720 "type" : "boolean"
37721 },
37722 "mtime" : {
37723 "description" : "Entry last-modified time (unix timestamp).",
37724 "optional" : 1,
37725 "type" : "integer"
37726 },
37727 "size" : {
37728 "description" : "Entry file size.",
37729 "optional" : 1,
37730 "type" : "integer"
37731 },
37732 "text" : {
37733 "description" : "Entry display text.",
37734 "type" : "string"
37735 },
37736 "type" : {
37737 "description" : "Entry type.",
37738 "type" : "string"
37739 }
37740 },
37741 "type" : "object"
37742 },
37743 "type" : "array"
37744 }
37745 }
37746 },
37747 "leaf" : 1,
37748 "path" : "/nodes/{node}/storage/{storage}/file-restore/list",
37749 "text" : "list"
37750 },
37751 {
37752 "info" : {
37753 "GET" : {
37754 "allowtoken" : 1,
37755 "description" : "Extract a file or directory (as zip archive) from a PBS backup.",
37756 "method" : "GET",
37757 "name" : "download",
37758 "parameters" : {
37759 "additionalProperties" : 0,
37760 "properties" : {
37761 "filepath" : {
37762 "description" : "base64-path to the directory or file to download.",
37763 "type" : "string",
37764 "typetext" : "<string>"
37765 },
37766 "node" : {
37767 "description" : "The cluster node name.",
37768 "format" : "pve-node",
37769 "type" : "string",
37770 "typetext" : "<string>"
37771 },
37772 "storage" : {
37773 "description" : "The storage identifier.",
37774 "format" : "pve-storage-id",
37775 "type" : "string",
37776 "typetext" : "<string>"
37777 },
37778 "volume" : {
37779 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
37780 "type" : "string",
37781 "typetext" : "<string>"
37782 }
37783 }
37784 },
37785 "permissions" : {
37786 "description" : "You need read access for the volume.",
37787 "user" : "all"
37788 },
37789 "protected" : 1,
37790 "proxyto" : "node",
37791 "returns" : {
37792 "type" : "any"
37793 }
37794 }
37795 },
37796 "leaf" : 1,
37797 "path" : "/nodes/{node}/storage/{storage}/file-restore/download",
37798 "text" : "download"
37799 }
37800 ],
37801 "leaf" : 0,
37802 "path" : "/nodes/{node}/storage/{storage}/file-restore",
37803 "text" : "file-restore"
37804 },
4d47f125
TL
37805 {
37806 "info" : {
37807 "GET" : {
e9cd3bd4 37808 "allowtoken" : 1,
4d47f125
TL
37809 "description" : "Read storage status.",
37810 "method" : "GET",
37811 "name" : "read_status",
37812 "parameters" : {
37813 "additionalProperties" : 0,
37814 "properties" : {
37815 "node" : {
37816 "description" : "The cluster node name.",
37817 "format" : "pve-node",
37818 "type" : "string",
37819 "typetext" : "<string>"
37820 },
37821 "storage" : {
37822 "description" : "The storage identifier.",
37823 "format" : "pve-storage-id",
37824 "type" : "string",
37825 "typetext" : "<string>"
37826 }
27a7acb2
DM
37827 }
37828 },
4d47f125
TL
37829 "permissions" : {
37830 "check" : [
37831 "perm",
37832 "/storage/{storage}",
37833 [
37834 "Datastore.Audit",
37835 "Datastore.AllocateSpace"
37836 ],
37837 "any",
37838 1
37839 ]
7aacca6f 37840 },
4d47f125
TL
37841 "protected" : 1,
37842 "proxyto" : "node",
37843 "returns" : {
37844 "type" : "object"
56122987 37845 }
44660702
DM
37846 }
37847 },
4d47f125
TL
37848 "leaf" : 1,
37849 "path" : "/nodes/{node}/storage/{storage}/status",
37850 "text" : "status"
37851 },
37852 {
37853 "info" : {
37854 "GET" : {
e9cd3bd4 37855 "allowtoken" : 1,
4d47f125
TL
37856 "description" : "Read storage RRD statistics (returns PNG).",
37857 "method" : "GET",
37858 "name" : "rrd",
37859 "parameters" : {
37860 "additionalProperties" : 0,
37861 "properties" : {
37862 "cf" : {
37863 "description" : "The RRD consolidation function",
37864 "enum" : [
37865 "AVERAGE",
37866 "MAX"
37867 ],
37868 "optional" : 1,
37869 "type" : "string"
37870 },
37871 "ds" : {
37872 "description" : "The list of datasources you want to display.",
37873 "format" : "pve-configid-list",
37874 "type" : "string",
37875 "typetext" : "<string>"
37876 },
37877 "node" : {
37878 "description" : "The cluster node name.",
37879 "format" : "pve-node",
37880 "type" : "string",
37881 "typetext" : "<string>"
37882 },
37883 "storage" : {
37884 "description" : "The storage identifier.",
37885 "format" : "pve-storage-id",
37886 "type" : "string",
37887 "typetext" : "<string>"
37888 },
37889 "timeframe" : {
37890 "description" : "Specify the time frame you are interested in.",
37891 "enum" : [
37892 "hour",
37893 "day",
37894 "week",
37895 "month",
37896 "year"
37897 ],
37898 "type" : "string"
37899 }
44660702
DM
37900 }
37901 },
4d47f125
TL
37902 "permissions" : {
37903 "check" : [
37904 "perm",
37905 "/storage/{storage}",
37906 [
37907 "Datastore.Audit",
37908 "Datastore.AllocateSpace"
37909 ],
37910 "any",
37911 1
37912 ]
37913 },
37914 "protected" : 1,
37915 "proxyto" : "node",
37916 "returns" : {
37917 "properties" : {
37918 "filename" : {
37919 "type" : "string"
37920 }
37921 },
37922 "type" : "object"
44660702
DM
37923 }
37924 }
37925 },
4d47f125
TL
37926 "leaf" : 1,
37927 "path" : "/nodes/{node}/storage/{storage}/rrd",
37928 "text" : "rrd"
37929 },
37930 {
37931 "info" : {
37932 "GET" : {
e9cd3bd4 37933 "allowtoken" : 1,
4d47f125
TL
37934 "description" : "Read storage RRD statistics.",
37935 "method" : "GET",
37936 "name" : "rrddata",
37937 "parameters" : {
37938 "additionalProperties" : 0,
37939 "properties" : {
37940 "cf" : {
37941 "description" : "The RRD consolidation function",
37942 "enum" : [
37943 "AVERAGE",
37944 "MAX"
37945 ],
37946 "optional" : 1,
37947 "type" : "string"
37948 },
37949 "node" : {
37950 "description" : "The cluster node name.",
37951 "format" : "pve-node",
37952 "type" : "string",
37953 "typetext" : "<string>"
37954 },
37955 "storage" : {
37956 "description" : "The storage identifier.",
37957 "format" : "pve-storage-id",
37958 "type" : "string",
37959 "typetext" : "<string>"
37960 },
37961 "timeframe" : {
37962 "description" : "Specify the time frame you are interested in.",
37963 "enum" : [
37964 "hour",
37965 "day",
37966 "week",
37967 "month",
37968 "year"
37969 ],
37970 "type" : "string"
37971 }
56122987
DM
37972 }
37973 },
4d47f125
TL
37974 "permissions" : {
37975 "check" : [
37976 "perm",
37977 "/storage/{storage}",
37978 [
37979 "Datastore.Audit",
37980 "Datastore.AllocateSpace"
37981 ],
37982 "any",
37983 1
37984 ]
37985 },
37986 "protected" : 1,
37987 "proxyto" : "node",
37988 "returns" : {
37989 "items" : {
37990 "properties" : {},
37991 "type" : "object"
37992 },
37993 "type" : "array"
56122987 37994 }
7aacca6f 37995 }
56122987 37996 },
4d47f125
TL
37997 "leaf" : 1,
37998 "path" : "/nodes/{node}/storage/{storage}/rrddata",
37999 "text" : "rrddata"
38000 },
38001 {
38002 "info" : {
38003 "POST" : {
e9cd3bd4 38004 "allowtoken" : 1,
4d47f125
TL
38005 "description" : "Upload templates and ISO images.",
38006 "method" : "POST",
38007 "name" : "upload",
38008 "parameters" : {
38009 "additionalProperties" : 0,
38010 "properties" : {
5370fa8c
TL
38011 "checksum" : {
38012 "description" : "The expected checksum of the file.",
38013 "optional" : 1,
38014 "requires" : "checksum-algorithm",
38015 "type" : "string",
38016 "typetext" : "<string>"
38017 },
38018 "checksum-algorithm" : {
38019 "description" : "The algorithm to calculate the checksum of the file.",
38020 "enum" : [
38021 "md5",
38022 "sha1",
38023 "sha224",
38024 "sha256",
38025 "sha384",
38026 "sha512"
38027 ],
38028 "optional" : 1,
38029 "requires" : "checksum",
38030 "type" : "string"
38031 },
4d47f125
TL
38032 "content" : {
38033 "description" : "Content type.",
5370fa8c
TL
38034 "enum" : [
38035 "iso",
38036 "vztmpl"
38037 ],
4d47f125 38038 "format" : "pve-storage-content",
5370fa8c 38039 "type" : "string"
4d47f125
TL
38040 },
38041 "filename" : {
5370fa8c
TL
38042 "description" : "The name of the file to create. Caution: This will be normalized!",
38043 "maxLength" : 255,
4d47f125
TL
38044 "type" : "string",
38045 "typetext" : "<string>"
38046 },
38047 "node" : {
38048 "description" : "The cluster node name.",
38049 "format" : "pve-node",
38050 "type" : "string",
38051 "typetext" : "<string>"
38052 },
38053 "storage" : {
38054 "description" : "The storage identifier.",
38055 "format" : "pve-storage-id",
38056 "type" : "string",
38057 "typetext" : "<string>"
38058 },
38059 "tmpfilename" : {
1e3f8156 38060 "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
38061 "optional" : 1,
38062 "type" : "string",
38063 "typetext" : "<string>"
38064 }
44660702
DM
38065 }
38066 },
4d47f125
TL
38067 "permissions" : {
38068 "check" : [
38069 "perm",
38070 "/storage/{storage}",
38071 [
38072 "Datastore.AllocateTemplate"
38073 ]
38074 ]
56122987 38075 },
4d47f125
TL
38076 "protected" : 1,
38077 "returns" : {
44660702 38078 "type" : "string"
56122987 38079 }
44660702 38080 }
56122987 38081 },
4d47f125
TL
38082 "leaf" : 1,
38083 "path" : "/nodes/{node}/storage/{storage}/upload",
38084 "text" : "upload"
34f3e481
TL
38085 },
38086 {
38087 "info" : {
38088 "POST" : {
38089 "allowtoken" : 1,
38090 "description" : "Download templates and ISO images by using an URL.",
38091 "method" : "POST",
38092 "name" : "download_url",
38093 "parameters" : {
38094 "additionalProperties" : 0,
38095 "properties" : {
38096 "checksum" : {
38097 "description" : "The expected checksum of the file.",
38098 "optional" : 1,
38099 "requires" : "checksum-algorithm",
38100 "type" : "string",
38101 "typetext" : "<string>"
38102 },
38103 "checksum-algorithm" : {
38104 "description" : "The algorithm to calculate the checksum of the file.",
38105 "enum" : [
38106 "md5",
38107 "sha1",
38108 "sha224",
38109 "sha256",
38110 "sha384",
38111 "sha512"
38112 ],
38113 "optional" : 1,
38114 "requires" : "checksum",
38115 "type" : "string"
38116 },
38117 "content" : {
38118 "description" : "Content type.",
38119 "enum" : [
38120 "iso",
38121 "vztmpl"
38122 ],
38123 "format" : "pve-storage-content",
38124 "type" : "string"
38125 },
38126 "filename" : {
38127 "description" : "The name of the file to create. Caution: This will be normalized!",
38128 "maxLength" : 255,
38129 "type" : "string",
38130 "typetext" : "<string>"
38131 },
38132 "node" : {
38133 "description" : "The cluster node name.",
38134 "format" : "pve-node",
38135 "type" : "string",
38136 "typetext" : "<string>"
38137 },
38138 "storage" : {
38139 "description" : "The storage identifier.",
38140 "format" : "pve-storage-id",
38141 "type" : "string",
38142 "typetext" : "<string>"
38143 },
38144 "url" : {
38145 "description" : "The URL to download the file from.",
38146 "pattern" : "https?://.*",
38147 "type" : "string"
38148 },
38149 "verify-certificates" : {
38150 "default" : 1,
38151 "description" : "If false, no SSL/TLS certificates will be verified.",
38152 "optional" : 1,
38153 "type" : "boolean",
38154 "typetext" : "<boolean>"
38155 }
38156 }
38157 },
38158 "permissions" : {
38159 "check" : [
38160 "and",
38161 [
38162 "perm",
38163 "/storage/{storage}",
38164 [
38165 "Datastore.AllocateTemplate"
38166 ]
38167 ],
38168 [
38169 "perm",
38170 "/",
38171 [
38172 "Sys.Audit",
38173 "Sys.Modify"
38174 ]
38175 ]
38176 ]
38177 },
38178 "protected" : 1,
38179 "proxyto" : "node",
38180 "returns" : {
38181 "type" : "string"
38182 }
38183 }
38184 },
38185 "leaf" : 1,
38186 "path" : "/nodes/{node}/storage/{storage}/download-url",
38187 "text" : "download-url"
56122987 38188 }
4d47f125 38189 ],
56122987
DM
38190 "info" : {
38191 "GET" : {
e9cd3bd4 38192 "allowtoken" : 1,
4d47f125 38193 "description" : "",
44660702 38194 "method" : "GET",
4d47f125 38195 "name" : "diridx",
44660702
DM
38196 "parameters" : {
38197 "additionalProperties" : 0,
38198 "properties" : {
38199 "node" : {
38200 "description" : "The cluster node name.",
38201 "format" : "pve-node",
013dc89f
DM
38202 "type" : "string",
38203 "typetext" : "<string>"
4d47f125
TL
38204 },
38205 "storage" : {
38206 "description" : "The storage identifier.",
38207 "format" : "pve-storage-id",
38208 "type" : "string",
38209 "typetext" : "<string>"
44660702
DM
38210 }
38211 }
38212 },
7aacca6f
DM
38213 "permissions" : {
38214 "check" : [
38215 "perm",
4d47f125 38216 "/storage/{storage}",
7aacca6f 38217 [
4d47f125
TL
38218 "Datastore.Audit",
38219 "Datastore.AllocateSpace"
38220 ],
38221 "any",
38222 1
7aacca6f
DM
38223 ]
38224 },
56122987
DM
38225 "returns" : {
38226 "items" : {
38227 "properties" : {
4d47f125 38228 "subdir" : {
44660702 38229 "type" : "string"
56122987
DM
38230 }
38231 },
38232 "type" : "object"
7aacca6f 38233 },
4d47f125
TL
38234 "links" : [
38235 {
38236 "href" : "{subdir}",
38237 "rel" : "child"
38238 }
38239 ],
7aacca6f 38240 "type" : "array"
44660702
DM
38241 }
38242 }
38243 },
4d47f125
TL
38244 "leaf" : 0,
38245 "path" : "/nodes/{node}/storage/{storage}",
38246 "text" : "{storage}"
44660702
DM
38247 }
38248 ],
38249 "info" : {
38250 "GET" : {
e9cd3bd4 38251 "allowtoken" : 1,
4d47f125 38252 "description" : "Get status for all datastores.",
44660702
DM
38253 "method" : "GET",
38254 "name" : "index",
38255 "parameters" : {
38256 "additionalProperties" : 0,
38257 "properties" : {
4d47f125
TL
38258 "content" : {
38259 "description" : "Only list stores which support this content type.",
38260 "format" : "pve-storage-content-list",
38261 "optional" : 1,
38262 "type" : "string",
38263 "typetext" : "<string>"
38264 },
38265 "enabled" : {
38266 "default" : 0,
38267 "description" : "Only list stores which are enabled (not disabled in config).",
38268 "optional" : 1,
38269 "type" : "boolean",
38270 "typetext" : "<boolean>"
38271 },
38272 "format" : {
38273 "default" : 0,
38274 "description" : "Include information about formats",
38275 "optional" : 1,
38276 "type" : "boolean",
38277 "typetext" : "<boolean>"
38278 },
44660702
DM
38279 "node" : {
38280 "description" : "The cluster node name.",
38281 "format" : "pve-node",
013dc89f
DM
38282 "type" : "string",
38283 "typetext" : "<string>"
4d47f125
TL
38284 },
38285 "storage" : {
38286 "description" : "Only list status for specified storage",
38287 "format" : "pve-storage-id",
38288 "optional" : 1,
38289 "type" : "string",
38290 "typetext" : "<string>"
38291 },
38292 "target" : {
38293 "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
38294 "format" : "pve-node",
38295 "optional" : 1,
38296 "type" : "string",
38297 "typetext" : "<string>"
44660702
DM
38298 }
38299 }
38300 },
4d47f125
TL
38301 "permissions" : {
38302 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
38303 "user" : "all"
38304 },
38305 "protected" : 1,
38306 "proxyto" : "node",
38307 "returns" : {
38308 "items" : {
38309 "properties" : {
38310 "active" : {
38311 "description" : "Set when storage is accessible.",
38312 "optional" : 1,
38313 "type" : "boolean"
38314 },
38315 "avail" : {
38316 "description" : "Available storage space in bytes.",
38317 "optional" : 1,
38318 "renderer" : "bytes",
38319 "type" : "integer"
38320 },
38321 "content" : {
38322 "description" : "Allowed storage content types.",
38323 "format" : "pve-storage-content-list",
38324 "type" : "string"
38325 },
38326 "enabled" : {
38327 "description" : "Set when storage is enabled (not disabled).",
38328 "optional" : 1,
38329 "type" : "boolean"
38330 },
38331 "shared" : {
38332 "description" : "Shared flag from storage configuration.",
38333 "optional" : 1,
38334 "type" : "boolean"
38335 },
38336 "storage" : {
38337 "description" : "The storage identifier.",
38338 "format" : "pve-storage-id",
38339 "type" : "string"
38340 },
38341 "total" : {
38342 "description" : "Total storage space in bytes.",
38343 "optional" : 1,
38344 "renderer" : "bytes",
38345 "type" : "integer"
38346 },
38347 "type" : {
38348 "description" : "Storage type.",
38349 "type" : "string"
38350 },
38351 "used" : {
38352 "description" : "Used storage space in bytes.",
38353 "optional" : 1,
38354 "renderer" : "bytes",
38355 "type" : "integer"
38356 },
38357 "used_fraction" : {
38358 "description" : "Used fraction (used/total).",
38359 "optional" : 1,
38360 "renderer" : "fraction_as_percentage",
38361 "type" : "number"
7aacca6f 38362 }
4d47f125
TL
38363 },
38364 "type" : "object"
38365 },
38366 "links" : [
38367 {
38368 "href" : "{storage}",
38369 "rel" : "child"
38370 }
38371 ],
38372 "type" : "array"
38373 }
38374 }
38375 },
38376 "leaf" : 0,
38377 "path" : "/nodes/{node}/storage",
38378 "text" : "storage"
38379 },
38380 {
38381 "children" : [
38382 {
5370fa8c
TL
38383 "children" : [
38384 {
38385 "info" : {
38386 "DELETE" : {
38387 "allowtoken" : 1,
38388 "description" : "Remove an LVM Volume Group.",
38389 "method" : "DELETE",
38390 "name" : "delete",
38391 "parameters" : {
38392 "additionalProperties" : 0,
38393 "properties" : {
38394 "cleanup-config" : {
38395 "default" : 0,
38396 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
38397 "optional" : 1,
38398 "type" : "boolean",
38399 "typetext" : "<boolean>"
38400 },
38401 "cleanup-disks" : {
38402 "default" : 0,
38403 "description" : "Also wipe disks so they can be repurposed afterwards.",
38404 "optional" : 1,
38405 "type" : "boolean",
38406 "typetext" : "<boolean>"
38407 },
38408 "name" : {
38409 "description" : "The storage identifier.",
38410 "format" : "pve-storage-id",
38411 "type" : "string",
38412 "typetext" : "<string>"
38413 },
38414 "node" : {
38415 "description" : "The cluster node name.",
38416 "format" : "pve-node",
38417 "type" : "string",
38418 "typetext" : "<string>"
38419 }
38420 }
38421 },
38422 "permissions" : {
38423 "check" : [
38424 "perm",
38425 "/",
38426 [
38427 "Sys.Modify",
38428 "Datastore.Allocate"
38429 ]
38430 ]
38431 },
38432 "protected" : 1,
38433 "proxyto" : "node",
38434 "returns" : {
38435 "type" : "string"
38436 }
38437 }
38438 },
38439 "leaf" : 1,
38440 "path" : "/nodes/{node}/disks/lvm/{name}",
38441 "text" : "{name}"
38442 }
38443 ],
4d47f125
TL
38444 "info" : {
38445 "GET" : {
e9cd3bd4 38446 "allowtoken" : 1,
4d47f125
TL
38447 "description" : "List LVM Volume Groups",
38448 "method" : "GET",
38449 "name" : "index",
38450 "parameters" : {
38451 "additionalProperties" : 0,
38452 "properties" : {
38453 "node" : {
38454 "description" : "The cluster node name.",
38455 "format" : "pve-node",
38456 "type" : "string",
38457 "typetext" : "<string>"
38458 }
38459 }
38460 },
38461 "permissions" : {
38462 "check" : [
38463 "perm",
38464 "/",
38465 [
38466 "Sys.Audit",
38467 "Datastore.Audit"
38468 ],
38469 "any",
38470 1
38471 ]
38472 },
38473 "protected" : 1,
38474 "proxyto" : "node",
38475 "returns" : {
38476 "properties" : {
38477 "children" : {
44660702
DM
38478 "items" : {
38479 "properties" : {
4d47f125
TL
38480 "children" : {
38481 "description" : "The underlying physical volumes",
38482 "items" : {
38483 "properties" : {
38484 "free" : {
38485 "description" : "The free bytes in the physical volume",
38486 "type" : "integer"
38487 },
38488 "leaf" : {
38489 "type" : "boolean"
38490 },
38491 "name" : {
38492 "description" : "The name of the physical volume",
38493 "type" : "string"
38494 },
38495 "size" : {
38496 "description" : "The size of the physical volume in bytes",
38497 "type" : "integer"
38498 }
38499 },
38500 "type" : "object"
38501 },
38502 "optional" : 1,
38503 "type" : "array"
38504 },
38505 "free" : {
38506 "description" : "The free bytes in the volume group",
38507 "type" : "integer"
38508 },
38509 "leaf" : {
38510 "type" : "boolean"
38511 },
38512 "name" : {
38513 "description" : "The name of the volume group",
44660702 38514 "type" : "string"
4d47f125
TL
38515 },
38516 "size" : {
38517 "description" : "The size of the volume group in bytes",
38518 "type" : "integer"
44660702
DM
38519 }
38520 },
38521 "type" : "object"
38522 },
44660702 38523 "type" : "array"
4d47f125
TL
38524 },
38525 "leaf" : {
38526 "type" : "boolean"
44660702
DM
38527 }
38528 },
4d47f125
TL
38529 "type" : "object"
38530 }
38531 },
38532 "POST" : {
e9cd3bd4 38533 "allowtoken" : 1,
4d47f125
TL
38534 "description" : "Create an LVM Volume Group",
38535 "method" : "POST",
38536 "name" : "create",
38537 "parameters" : {
38538 "additionalProperties" : 0,
38539 "properties" : {
38540 "add_storage" : {
38541 "default" : 0,
38542 "description" : "Configure storage using the Volume Group",
38543 "optional" : 1,
38544 "type" : "boolean",
38545 "typetext" : "<boolean>"
44660702 38546 },
4d47f125
TL
38547 "device" : {
38548 "description" : "The block device you want to create the volume group on",
38549 "type" : "string",
38550 "typetext" : "<string>"
44660702 38551 },
4d47f125
TL
38552 "name" : {
38553 "description" : "The storage identifier.",
38554 "format" : "pve-storage-id",
38555 "type" : "string",
38556 "typetext" : "<string>"
38557 },
38558 "node" : {
38559 "description" : "The cluster node name.",
38560 "format" : "pve-node",
38561 "type" : "string",
38562 "typetext" : "<string>"
38563 }
38564 }
38565 },
38566 "permissions" : {
38567 "check" : [
38568 "perm",
38569 "/",
38570 [
38571 "Sys.Modify",
38572 "Datastore.Allocate"
38573 ]
38574 ]
38575 },
38576 "protected" : 1,
38577 "proxyto" : "node",
38578 "returns" : {
38579 "type" : "string"
38580 }
38581 }
38582 },
5370fa8c 38583 "leaf" : 0,
4d47f125
TL
38584 "path" : "/nodes/{node}/disks/lvm",
38585 "text" : "lvm"
38586 },
38587 {
5370fa8c
TL
38588 "children" : [
38589 {
38590 "info" : {
38591 "DELETE" : {
38592 "allowtoken" : 1,
38593 "description" : "Remove an LVM thin pool.",
38594 "method" : "DELETE",
38595 "name" : "delete",
38596 "parameters" : {
38597 "additionalProperties" : 0,
38598 "properties" : {
38599 "cleanup-config" : {
38600 "default" : 0,
38601 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
38602 "optional" : 1,
38603 "type" : "boolean",
38604 "typetext" : "<boolean>"
38605 },
38606 "cleanup-disks" : {
38607 "default" : 0,
38608 "description" : "Also wipe disks so they can be repurposed afterwards.",
38609 "optional" : 1,
38610 "type" : "boolean",
38611 "typetext" : "<boolean>"
38612 },
38613 "name" : {
38614 "description" : "The storage identifier.",
38615 "format" : "pve-storage-id",
38616 "type" : "string",
38617 "typetext" : "<string>"
38618 },
38619 "node" : {
38620 "description" : "The cluster node name.",
38621 "format" : "pve-node",
38622 "type" : "string",
38623 "typetext" : "<string>"
38624 },
38625 "volume-group" : {
38626 "description" : "The storage identifier.",
38627 "format" : "pve-storage-id",
38628 "type" : "string",
38629 "typetext" : "<string>"
38630 }
38631 }
38632 },
38633 "permissions" : {
38634 "check" : [
38635 "perm",
38636 "/",
38637 [
38638 "Sys.Modify",
38639 "Datastore.Allocate"
38640 ]
38641 ]
38642 },
38643 "protected" : 1,
38644 "proxyto" : "node",
38645 "returns" : {
38646 "type" : "string"
38647 }
38648 }
38649 },
38650 "leaf" : 1,
38651 "path" : "/nodes/{node}/disks/lvmthin/{name}",
38652 "text" : "{name}"
38653 }
38654 ],
4d47f125
TL
38655 "info" : {
38656 "GET" : {
e9cd3bd4 38657 "allowtoken" : 1,
4d47f125
TL
38658 "description" : "List LVM thinpools",
38659 "method" : "GET",
38660 "name" : "index",
38661 "parameters" : {
38662 "additionalProperties" : 0,
38663 "properties" : {
38664 "node" : {
38665 "description" : "The cluster node name.",
38666 "format" : "pve-node",
38667 "type" : "string",
38668 "typetext" : "<string>"
44660702
DM
38669 }
38670 }
38671 },
4d47f125
TL
38672 "permissions" : {
38673 "check" : [
38674 "perm",
38675 "/",
38676 [
38677 "Sys.Audit",
38678 "Datastore.Audit"
38679 ],
38680 "any",
38681 1
38682 ]
38683 },
38684 "protected" : 1,
38685 "proxyto" : "node",
38686 "returns" : {
38687 "items" : {
38688 "properties" : {
38689 "lv" : {
38690 "description" : "The name of the thinpool.",
38691 "type" : "string"
38692 },
38693 "lv_size" : {
38694 "description" : "The size of the thinpool in bytes.",
38695 "type" : "integer"
38696 },
38697 "metadata_size" : {
38698 "description" : "The size of the metadata lv in bytes.",
38699 "type" : "integer"
38700 },
38701 "metadata_used" : {
38702 "description" : "The used bytes of the metadata lv.",
38703 "type" : "integer"
38704 },
38705 "used" : {
38706 "description" : "The used bytes of the thinpool.",
38707 "type" : "integer"
5370fa8c
TL
38708 },
38709 "vg" : {
38710 "description" : "The associated volume group.",
38711 "type" : "string"
44660702
DM
38712 }
38713 },
4d47f125
TL
38714 "type" : "object"
38715 },
38716 "type" : "array"
38717 }
38718 },
38719 "POST" : {
e9cd3bd4 38720 "allowtoken" : 1,
4d47f125
TL
38721 "description" : "Create an LVM thinpool",
38722 "method" : "POST",
38723 "name" : "create",
38724 "parameters" : {
38725 "additionalProperties" : 0,
38726 "properties" : {
38727 "add_storage" : {
38728 "default" : 0,
38729 "description" : "Configure storage using the thinpool.",
38730 "optional" : 1,
38731 "type" : "boolean",
38732 "typetext" : "<boolean>"
56122987 38733 },
4d47f125
TL
38734 "device" : {
38735 "description" : "The block device you want to create the thinpool on.",
38736 "type" : "string",
38737 "typetext" : "<string>"
38738 },
38739 "name" : {
38740 "description" : "The storage identifier.",
38741 "format" : "pve-storage-id",
38742 "type" : "string",
38743 "typetext" : "<string>"
38744 },
38745 "node" : {
38746 "description" : "The cluster node name.",
38747 "format" : "pve-node",
38748 "type" : "string",
38749 "typetext" : "<string>"
44660702 38750 }
56122987
DM
38751 }
38752 },
4d47f125
TL
38753 "permissions" : {
38754 "check" : [
38755 "perm",
38756 "/",
38757 [
38758 "Sys.Modify",
38759 "Datastore.Allocate"
38760 ]
38761 ]
38762 },
38763 "protected" : 1,
38764 "proxyto" : "node",
38765 "returns" : {
38766 "type" : "string"
38767 }
38768 }
38769 },
5370fa8c 38770 "leaf" : 0,
4d47f125
TL
38771 "path" : "/nodes/{node}/disks/lvmthin",
38772 "text" : "lvmthin"
38773 },
38774 {
5370fa8c
TL
38775 "children" : [
38776 {
38777 "info" : {
38778 "DELETE" : {
38779 "allowtoken" : 1,
38780 "description" : "Unmounts the storage and removes the mount unit.",
38781 "method" : "DELETE",
38782 "name" : "delete",
38783 "parameters" : {
38784 "additionalProperties" : 0,
38785 "properties" : {
38786 "cleanup-config" : {
38787 "default" : 0,
38788 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
38789 "optional" : 1,
38790 "type" : "boolean",
38791 "typetext" : "<boolean>"
38792 },
38793 "cleanup-disks" : {
38794 "default" : 0,
38795 "description" : "Also wipe disk so it can be repurposed afterwards.",
38796 "optional" : 1,
38797 "type" : "boolean",
38798 "typetext" : "<boolean>"
38799 },
38800 "name" : {
38801 "description" : "The storage identifier.",
38802 "format" : "pve-storage-id",
38803 "type" : "string",
38804 "typetext" : "<string>"
38805 },
38806 "node" : {
38807 "description" : "The cluster node name.",
38808 "format" : "pve-node",
38809 "type" : "string",
38810 "typetext" : "<string>"
38811 }
38812 }
38813 },
38814 "permissions" : {
38815 "check" : [
38816 "perm",
38817 "/",
38818 [
38819 "Sys.Modify",
38820 "Datastore.Allocate"
38821 ]
38822 ]
38823 },
38824 "protected" : 1,
38825 "proxyto" : "node",
38826 "returns" : {
38827 "type" : "string"
38828 }
38829 }
38830 },
38831 "leaf" : 1,
38832 "path" : "/nodes/{node}/disks/directory/{name}",
38833 "text" : "{name}"
38834 }
38835 ],
4d47f125
TL
38836 "info" : {
38837 "GET" : {
e9cd3bd4 38838 "allowtoken" : 1,
4d47f125
TL
38839 "description" : "PVE Managed Directory storages.",
38840 "method" : "GET",
38841 "name" : "index",
38842 "parameters" : {
38843 "additionalProperties" : 0,
38844 "properties" : {
38845 "node" : {
38846 "description" : "The cluster node name.",
38847 "format" : "pve-node",
38848 "type" : "string",
38849 "typetext" : "<string>"
38850 }
38851 }
38852 },
38853 "permissions" : {
38854 "check" : [
38855 "perm",
38856 "/",
38857 [
38858 "Sys.Audit",
38859 "Datastore.Audit"
38860 ],
38861 "any",
38862 1
38863 ]
38864 },
38865 "protected" : 1,
38866 "proxyto" : "node",
38867 "returns" : {
38868 "items" : {
38869 "properties" : {
38870 "device" : {
38871 "description" : "The mounted device.",
38872 "type" : "string"
38873 },
38874 "options" : {
38875 "description" : "The mount options.",
38876 "type" : "string"
38877 },
38878 "path" : {
38879 "description" : "The mount path.",
38880 "type" : "string"
38881 },
38882 "type" : {
38883 "description" : "The filesystem type.",
38884 "type" : "string"
38885 },
38886 "unitfile" : {
38887 "description" : "The path of the mount unit.",
38888 "type" : "string"
44660702 38889 }
56122987 38890 },
4d47f125
TL
38891 "type" : "object"
38892 },
38893 "type" : "array"
38894 }
38895 },
38896 "POST" : {
e9cd3bd4 38897 "allowtoken" : 1,
4d47f125
TL
38898 "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.",
38899 "method" : "POST",
38900 "name" : "create",
38901 "parameters" : {
38902 "additionalProperties" : 0,
38903 "properties" : {
38904 "add_storage" : {
38905 "default" : 0,
38906 "description" : "Configure storage using the directory.",
38907 "optional" : 1,
38908 "type" : "boolean",
38909 "typetext" : "<boolean>"
38910 },
38911 "device" : {
38912 "description" : "The block device you want to create the filesystem on.",
38913 "type" : "string",
38914 "typetext" : "<string>"
38915 },
38916 "filesystem" : {
38917 "default" : "ext4",
38918 "description" : "The desired filesystem.",
38919 "enum" : [
38920 "ext4",
38921 "xfs"
38922 ],
38923 "optional" : 1,
38924 "type" : "string"
56122987 38925 },
4d47f125
TL
38926 "name" : {
38927 "description" : "The storage identifier.",
38928 "format" : "pve-storage-id",
38929 "type" : "string",
38930 "typetext" : "<string>"
38931 },
38932 "node" : {
38933 "description" : "The cluster node name.",
38934 "format" : "pve-node",
38935 "type" : "string",
38936 "typetext" : "<string>"
7aacca6f 38937 }
56122987
DM
38938 }
38939 },
4d47f125
TL
38940 "permissions" : {
38941 "check" : [
38942 "perm",
38943 "/",
38944 [
38945 "Sys.Modify",
38946 "Datastore.Allocate"
38947 ]
38948 ]
38949 },
38950 "protected" : 1,
38951 "proxyto" : "node",
38952 "returns" : {
38953 "type" : "string"
38954 }
38955 }
38956 },
5370fa8c 38957 "leaf" : 0,
4d47f125
TL
38958 "path" : "/nodes/{node}/disks/directory",
38959 "text" : "directory"
38960 },
38961 {
38962 "children" : [
56122987 38963 {
56122987 38964 "info" : {
5370fa8c
TL
38965 "DELETE" : {
38966 "allowtoken" : 1,
38967 "description" : "Destroy a ZFS pool.",
38968 "method" : "DELETE",
38969 "name" : "delete",
38970 "parameters" : {
38971 "additionalProperties" : 0,
38972 "properties" : {
38973 "cleanup-config" : {
38974 "default" : 0,
38975 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
38976 "optional" : 1,
38977 "type" : "boolean",
38978 "typetext" : "<boolean>"
38979 },
38980 "cleanup-disks" : {
38981 "default" : 0,
38982 "description" : "Also wipe disks so they can be repurposed afterwards.",
38983 "optional" : 1,
38984 "type" : "boolean",
38985 "typetext" : "<boolean>"
38986 },
38987 "name" : {
38988 "description" : "The storage identifier.",
38989 "format" : "pve-storage-id",
38990 "type" : "string",
38991 "typetext" : "<string>"
38992 },
38993 "node" : {
38994 "description" : "The cluster node name.",
38995 "format" : "pve-node",
38996 "type" : "string",
38997 "typetext" : "<string>"
38998 }
38999 }
39000 },
39001 "permissions" : {
39002 "check" : [
39003 "perm",
39004 "/",
39005 [
39006 "Sys.Modify",
39007 "Datastore.Allocate"
39008 ]
39009 ]
39010 },
39011 "protected" : 1,
39012 "proxyto" : "node",
39013 "returns" : {
39014 "type" : "string"
39015 }
39016 },
56122987 39017 "GET" : {
e9cd3bd4 39018 "allowtoken" : 1,
4d47f125 39019 "description" : "Get details about a zpool.",
44660702 39020 "method" : "GET",
4d47f125 39021 "name" : "detail",
56122987 39022 "parameters" : {
44660702 39023 "additionalProperties" : 0,
56122987 39024 "properties" : {
4d47f125
TL
39025 "name" : {
39026 "description" : "The storage identifier.",
39027 "format" : "pve-storage-id",
39028 "type" : "string",
39029 "typetext" : "<string>"
44660702 39030 },
7aacca6f 39031 "node" : {
7aacca6f 39032 "description" : "The cluster node name.",
44660702 39033 "format" : "pve-node",
013dc89f
DM
39034 "type" : "string",
39035 "typetext" : "<string>"
56122987 39036 }
44660702 39037 }
7aacca6f 39038 },
7aacca6f
DM
39039 "permissions" : {
39040 "check" : [
39041 "perm",
4d47f125 39042 "/",
7aacca6f 39043 [
4d47f125
TL
39044 "Sys.Audit",
39045 "Datastore.Audit"
7aacca6f
DM
39046 ],
39047 "any",
39048 1
39049 ]
39050 },
44660702
DM
39051 "protected" : 1,
39052 "proxyto" : "node",
7aacca6f 39053 "returns" : {
56122987 39054 "properties" : {
4d47f125
TL
39055 "action" : {
39056 "description" : "Information about the recommended action to fix the state.",
39057 "optional" : 1,
39058 "type" : "string"
56122987 39059 },
4d47f125 39060 "children" : {
e2d681b3 39061 "description" : "The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.",
4d47f125
TL
39062 "items" : {
39063 "properties" : {
39064 "cksum" : {
e2d681b3 39065 "optional" : 1,
4d47f125
TL
39066 "type" : "number"
39067 },
39068 "msg" : {
39069 "description" : "An optional message about the vdev.",
39070 "type" : "string"
39071 },
39072 "name" : {
e2d681b3 39073 "description" : "The name of the vdev or section.",
4d47f125
TL
39074 "type" : "string"
39075 },
39076 "read" : {
e2d681b3 39077 "optional" : 1,
4d47f125
TL
39078 "type" : "number"
39079 },
39080 "state" : {
39081 "description" : "The state of the vdev.",
e2d681b3 39082 "optional" : 1,
4d47f125
TL
39083 "type" : "string"
39084 },
39085 "write" : {
e2d681b3 39086 "optional" : 1,
4d47f125
TL
39087 "type" : "number"
39088 }
39089 },
39090 "type" : "object"
39091 },
39092 "type" : "array"
56122987 39093 },
e2d681b3
TL
39094 "errors" : {
39095 "description" : "Information about the errors on the zpool.",
39096 "type" : "string"
39097 },
4d47f125
TL
39098 "name" : {
39099 "description" : "The name of the zpool.",
39100 "type" : "string"
44660702 39101 },
4d47f125 39102 "scan" : {
e2d681b3 39103 "description" : "Information about the last/current scrub.",
d2656385 39104 "optional" : 1,
4d47f125 39105 "type" : "string"
44660702 39106 },
4d47f125
TL
39107 "state" : {
39108 "description" : "The state of the zpool.",
39109 "type" : "string"
39110 },
39111 "status" : {
39112 "description" : "Information about the state of the zpool.",
44660702 39113 "optional" : 1,
4d47f125 39114 "type" : "string"
56122987 39115 }
4d47f125
TL
39116 },
39117 "type" : "object"
44660702
DM
39118 }
39119 }
39120 },
39121 "leaf" : 1,
4d47f125
TL
39122 "path" : "/nodes/{node}/disks/zfs/{name}",
39123 "text" : "{name}"
44660702
DM
39124 }
39125 ],
39126 "info" : {
39127 "GET" : {
e9cd3bd4 39128 "allowtoken" : 1,
4d47f125 39129 "description" : "List Zpools.",
44660702 39130 "method" : "GET",
4d47f125 39131 "name" : "index",
44660702
DM
39132 "parameters" : {
39133 "additionalProperties" : 0,
39134 "properties" : {
39135 "node" : {
39136 "description" : "The cluster node name.",
39137 "format" : "pve-node",
013dc89f
DM
39138 "type" : "string",
39139 "typetext" : "<string>"
4d47f125
TL
39140 }
39141 }
39142 },
39143 "permissions" : {
39144 "check" : [
39145 "perm",
39146 "/",
39147 [
39148 "Sys.Audit",
39149 "Datastore.Audit"
39150 ],
39151 "any",
39152 1
39153 ]
39154 },
39155 "protected" : 1,
39156 "proxyto" : "node",
39157 "returns" : {
39158 "items" : {
39159 "properties" : {
39160 "alloc" : {
39161 "description" : "",
39162 "type" : "integer"
39163 },
39164 "dedup" : {
39165 "description" : "",
39166 "type" : "number"
39167 },
39168 "frag" : {
39169 "description" : "",
39170 "type" : "integer"
39171 },
39172 "free" : {
39173 "description" : "",
39174 "type" : "integer"
39175 },
39176 "health" : {
39177 "description" : "",
39178 "type" : "string"
39179 },
39180 "name" : {
39181 "description" : "",
39182 "type" : "string"
39183 },
39184 "size" : {
39185 "description" : "",
39186 "type" : "integer"
39187 }
39188 },
39189 "type" : "object"
39190 },
39191 "links" : [
39192 {
39193 "href" : "{name}",
39194 "rel" : "child"
39195 }
39196 ],
39197 "type" : "array"
39198 }
39199 },
39200 "POST" : {
e9cd3bd4 39201 "allowtoken" : 1,
4d47f125
TL
39202 "description" : "Create a ZFS pool.",
39203 "method" : "POST",
39204 "name" : "create",
39205 "parameters" : {
39206 "additionalProperties" : 0,
39207 "properties" : {
39208 "add_storage" : {
39209 "default" : 0,
39210 "description" : "Configure storage using the zpool.",
39211 "optional" : 1,
39212 "type" : "boolean",
39213 "typetext" : "<boolean>"
39214 },
39215 "ashift" : {
39216 "default" : 12,
39217 "description" : "Pool sector size exponent.",
39218 "maximum" : 16,
39219 "minimum" : 9,
39220 "optional" : 1,
39221 "type" : "integer",
39222 "typetext" : "<integer> (9 - 16)"
39223 },
39224 "compression" : {
39225 "default" : "on",
39226 "description" : "The compression algorithm to use.",
39227 "enum" : [
39228 "on",
39229 "off",
39230 "gzip",
39231 "lz4",
39232 "lzjb",
5370fa8c
TL
39233 "zle",
39234 "zstd"
4d47f125
TL
39235 ],
39236 "optional" : 1,
39237 "type" : "string"
39238 },
39239 "devices" : {
39240 "description" : "The block devices you want to create the zpool on.",
39241 "format" : "string-list",
39242 "type" : "string",
39243 "typetext" : "<string>"
44660702 39244 },
4d47f125 39245 "name" : {
44660702
DM
39246 "description" : "The storage identifier.",
39247 "format" : "pve-storage-id",
013dc89f
DM
39248 "type" : "string",
39249 "typetext" : "<string>"
4d47f125
TL
39250 },
39251 "node" : {
39252 "description" : "The cluster node name.",
39253 "format" : "pve-node",
39254 "type" : "string",
39255 "typetext" : "<string>"
39256 },
39257 "raidlevel" : {
39258 "description" : "The RAID level to use.",
39259 "enum" : [
39260 "single",
39261 "mirror",
39262 "raid10",
39263 "raidz",
39264 "raidz2",
39265 "raidz3"
39266 ],
39267 "type" : "string"
56122987
DM
39268 }
39269 }
44660702
DM
39270 },
39271 "permissions" : {
39272 "check" : [
39273 "perm",
4d47f125 39274 "/",
44660702 39275 [
4d47f125
TL
39276 "Sys.Modify",
39277 "Datastore.Allocate"
39278 ]
44660702
DM
39279 ]
39280 },
4d47f125
TL
39281 "protected" : 1,
39282 "proxyto" : "node",
44660702 39283 "returns" : {
4d47f125 39284 "type" : "string"
56122987
DM
39285 }
39286 }
44660702
DM
39287 },
39288 "leaf" : 0,
4d47f125
TL
39289 "path" : "/nodes/{node}/disks/zfs",
39290 "text" : "zfs"
39291 },
2c0dde61
DM
39292 {
39293 "info" : {
39294 "GET" : {
e9cd3bd4 39295 "allowtoken" : 1,
2c0dde61
DM
39296 "description" : "List local disks.",
39297 "method" : "GET",
39298 "name" : "list",
39299 "parameters" : {
39300 "additionalProperties" : 0,
39301 "properties" : {
d2656385
TL
39302 "include-partitions" : {
39303 "default" : 0,
39304 "description" : "Also include partitions.",
39305 "optional" : 1,
39306 "type" : "boolean",
39307 "typetext" : "<boolean>"
39308 },
2c0dde61
DM
39309 "node" : {
39310 "description" : "The cluster node name.",
39311 "format" : "pve-node",
013dc89f
DM
39312 "type" : "string",
39313 "typetext" : "<string>"
4d47f125
TL
39314 },
39315 "skipsmart" : {
39316 "default" : 0,
39317 "description" : "Skip smart checks.",
39318 "optional" : 1,
39319 "type" : "boolean",
39320 "typetext" : "<boolean>"
39321 },
39322 "type" : {
39323 "description" : "Only list specific types of disks.",
39324 "enum" : [
39325 "unused",
39326 "journal_disks"
39327 ],
39328 "optional" : 1,
39329 "type" : "string"
2c0dde61
DM
39330 }
39331 }
39332 },
39333 "permissions" : {
39334 "check" : [
d2656385 39335 "or",
2c0dde61 39336 [
d2656385
TL
39337 "perm",
39338 "/",
39339 [
39340 "Sys.Audit",
39341 "Datastore.Audit"
39342 ],
39343 "any",
39344 1
2c0dde61 39345 ],
d2656385
TL
39346 [
39347 "perm",
39348 "/nodes/{node}",
39349 [
39350 "Sys.Audit",
39351 "Datastore.Audit"
39352 ],
39353 "any",
39354 1
39355 ]
2c0dde61
DM
39356 ]
39357 },
39358 "protected" : 1,
39359 "proxyto" : "node",
39360 "returns" : {
39361 "items" : {
39362 "properties" : {
39363 "devpath" : {
39364 "description" : "The device path",
39365 "type" : "string"
39366 },
39367 "gpt" : {
39368 "type" : "boolean"
39369 },
39370 "health" : {
39371 "optional" : 1,
39372 "type" : "string"
39373 },
39374 "model" : {
39375 "optional" : 1,
39376 "type" : "string"
39377 },
39378 "osdid" : {
39379 "type" : "integer"
39380 },
d2656385
TL
39381 "parent" : {
39382 "description" : "For partitions only. The device path of the disk the partition resides on.",
39383 "optional" : 1,
39384 "type" : "string"
39385 },
2c0dde61
DM
39386 "serial" : {
39387 "optional" : 1,
39388 "type" : "string"
39389 },
39390 "size" : {
39391 "type" : "integer"
39392 },
39393 "used" : {
39394 "optional" : 1,
39395 "type" : "string"
39396 },
39397 "vendor" : {
39398 "optional" : 1,
39399 "type" : "string"
39400 },
39401 "wwn" : {
39402 "optional" : 1,
39403 "type" : "string"
39404 }
39405 },
39406 "type" : "object"
39407 },
39408 "type" : "array"
39409 }
39410 }
39411 },
39412 "leaf" : 1,
39413 "path" : "/nodes/{node}/disks/list",
39414 "text" : "list"
39415 },
39416 {
39417 "info" : {
39418 "GET" : {
e9cd3bd4 39419 "allowtoken" : 1,
2c0dde61
DM
39420 "description" : "Get SMART Health of a disk.",
39421 "method" : "GET",
39422 "name" : "smart",
39423 "parameters" : {
39424 "additionalProperties" : 0,
39425 "properties" : {
39426 "disk" : {
39427 "description" : "Block device name",
39428 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
39429 "type" : "string"
39430 },
39431 "healthonly" : {
39432 "description" : "If true returns only the health status",
39433 "optional" : 1,
013dc89f
DM
39434 "type" : "boolean",
39435 "typetext" : "<boolean>"
2c0dde61
DM
39436 },
39437 "node" : {
39438 "description" : "The cluster node name.",
39439 "format" : "pve-node",
013dc89f
DM
39440 "type" : "string",
39441 "typetext" : "<string>"
2c0dde61
DM
39442 }
39443 }
39444 },
39445 "permissions" : {
39446 "check" : [
39447 "perm",
39448 "/",
39449 [
39450 "Sys.Audit",
39451 "Datastore.Audit"
39452 ],
39453 "any",
39454 1
39455 ]
39456 },
39457 "protected" : 1,
39458 "proxyto" : "node",
39459 "returns" : {
de0983cb
DM
39460 "properties" : {
39461 "attributes" : {
39462 "optional" : 1,
39463 "type" : "array"
39464 },
39465 "health" : {
39466 "type" : "string"
39467 },
39468 "text" : {
39469 "optional" : 1,
39470 "type" : "string"
39471 },
39472 "type" : {
39473 "optional" : 1,
39474 "type" : "string"
39475 }
39476 },
2c0dde61
DM
39477 "type" : "object"
39478 }
39479 }
39480 },
39481 "leaf" : 1,
39482 "path" : "/nodes/{node}/disks/smart",
39483 "text" : "smart"
39484 },
39485 {
39486 "info" : {
39487 "POST" : {
e9cd3bd4 39488 "allowtoken" : 1,
2c0dde61
DM
39489 "description" : "Initialize Disk with GPT",
39490 "method" : "POST",
39491 "name" : "initgpt",
39492 "parameters" : {
39493 "additionalProperties" : 0,
39494 "properties" : {
39495 "disk" : {
39496 "description" : "Block device name",
39497 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
39498 "type" : "string"
39499 },
39500 "node" : {
39501 "description" : "The cluster node name.",
39502 "format" : "pve-node",
013dc89f
DM
39503 "type" : "string",
39504 "typetext" : "<string>"
2c0dde61
DM
39505 },
39506 "uuid" : {
39507 "description" : "UUID for the GPT table",
39508 "maxLength" : 36,
39509 "optional" : 1,
39510 "pattern" : "[a-fA-F0-9\\-]+",
39511 "type" : "string"
39512 }
39513 }
39514 },
39515 "permissions" : {
39516 "check" : [
39517 "perm",
39518 "/",
39519 [
39520 "Sys.Modify"
39521 ]
39522 ]
39523 },
39524 "protected" : 1,
39525 "proxyto" : "node",
39526 "returns" : {
39527 "type" : "string"
39528 }
39529 }
39530 },
39531 "leaf" : 1,
39532 "path" : "/nodes/{node}/disks/initgpt",
39533 "text" : "initgpt"
0695fdaf
TL
39534 },
39535 {
39536 "info" : {
39537 "PUT" : {
39538 "allowtoken" : 1,
39539 "description" : "Wipe a disk or partition.",
39540 "method" : "PUT",
39541 "name" : "wipe_disk",
39542 "parameters" : {
39543 "additionalProperties" : 0,
39544 "properties" : {
39545 "disk" : {
39546 "description" : "Block device name",
39547 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
39548 "type" : "string"
39549 },
39550 "node" : {
39551 "description" : "The cluster node name.",
39552 "format" : "pve-node",
39553 "type" : "string",
39554 "typetext" : "<string>"
39555 }
39556 }
39557 },
39558 "protected" : 1,
39559 "proxyto" : "node",
39560 "returns" : {
39561 "type" : "string"
39562 }
39563 }
39564 },
39565 "leaf" : 1,
39566 "path" : "/nodes/{node}/disks/wipedisk",
39567 "text" : "wipedisk"
2c0dde61
DM
39568 }
39569 ],
39570 "info" : {
39571 "GET" : {
e9cd3bd4 39572 "allowtoken" : 1,
2c0dde61
DM
39573 "description" : "Node index.",
39574 "method" : "GET",
39575 "name" : "index",
39576 "parameters" : {
39577 "additionalProperties" : 0,
39578 "properties" : {
39579 "node" : {
39580 "description" : "The cluster node name.",
39581 "format" : "pve-node",
013dc89f
DM
39582 "type" : "string",
39583 "typetext" : "<string>"
2c0dde61
DM
39584 }
39585 }
39586 },
39587 "permissions" : {
39588 "user" : "all"
39589 },
39590 "proxyto" : "node",
39591 "returns" : {
39592 "items" : {
39593 "properties" : {},
39594 "type" : "object"
39595 },
39596 "links" : [
39597 {
39598 "href" : "{name}",
39599 "rel" : "child"
39600 }
39601 ],
39602 "type" : "array"
39603 }
39604 }
39605 },
39606 "leaf" : 0,
39607 "path" : "/nodes/{node}/disks",
39608 "text" : "disks"
39609 },
56122987 39610 {
56122987
DM
39611 "children" : [
39612 {
39613 "info" : {
44660702 39614 "GET" : {
e9cd3bd4 39615 "allowtoken" : 1,
44660702
DM
39616 "description" : "List available updates.",
39617 "method" : "GET",
39618 "name" : "list_updates",
39619 "parameters" : {
39620 "additionalProperties" : 0,
39621 "properties" : {
39622 "node" : {
39623 "description" : "The cluster node name.",
39624 "format" : "pve-node",
013dc89f
DM
39625 "type" : "string",
39626 "typetext" : "<string>"
44660702
DM
39627 }
39628 }
7aacca6f
DM
39629 },
39630 "permissions" : {
39631 "check" : [
39632 "perm",
39633 "/nodes/{node}",
39634 [
39635 "Sys.Modify"
39636 ]
39637 ]
39638 },
44660702 39639 "protected" : 1,
56122987 39640 "proxyto" : "node",
44660702
DM
39641 "returns" : {
39642 "items" : {
39643 "properties" : {},
39644 "type" : "object"
39645 },
39646 "type" : "array"
39647 }
39648 },
39649 "POST" : {
e9cd3bd4 39650 "allowtoken" : 1,
44660702 39651 "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
7aacca6f
DM
39652 "method" : "POST",
39653 "name" : "update_database",
56122987
DM
39654 "parameters" : {
39655 "additionalProperties" : 0,
39656 "properties" : {
44660702
DM
39657 "node" : {
39658 "description" : "The cluster node name.",
39659 "format" : "pve-node",
013dc89f
DM
39660 "type" : "string",
39661 "typetext" : "<string>"
44660702 39662 },
56122987 39663 "notify" : {
56122987 39664 "default" : 0,
44660702
DM
39665 "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
39666 "optional" : 1,
013dc89f
DM
39667 "type" : "boolean",
39668 "typetext" : "<boolean>"
56122987
DM
39669 },
39670 "quiet" : {
56122987 39671 "default" : 0,
44660702 39672 "description" : "Only produces output suitable for logging, omitting progress indicators.",
56122987 39673 "optional" : 1,
013dc89f
DM
39674 "type" : "boolean",
39675 "typetext" : "<boolean>"
56122987 39676 }
7aacca6f
DM
39677 }
39678 },
39679 "permissions" : {
39680 "check" : [
39681 "perm",
39682 "/nodes/{node}",
39683 [
39684 "Sys.Modify"
39685 ]
39686 ]
39687 },
44660702
DM
39688 "protected" : 1,
39689 "proxyto" : "node",
39690 "returns" : {
39691 "type" : "string"
39692 }
56122987
DM
39693 }
39694 },
7aacca6f 39695 "leaf" : 1,
44660702
DM
39696 "path" : "/nodes/{node}/apt/update",
39697 "text" : "update"
56122987
DM
39698 },
39699 {
56122987
DM
39700 "info" : {
39701 "GET" : {
e9cd3bd4 39702 "allowtoken" : 1,
44660702 39703 "description" : "Get package changelogs.",
56122987 39704 "method" : "GET",
7aacca6f 39705 "name" : "changelog",
56122987 39706 "parameters" : {
44660702 39707 "additionalProperties" : 0,
56122987
DM
39708 "properties" : {
39709 "name" : {
39710 "description" : "Package name.",
013dc89f
DM
39711 "type" : "string",
39712 "typetext" : "<string>"
56122987 39713 },
44660702
DM
39714 "node" : {
39715 "description" : "The cluster node name.",
39716 "format" : "pve-node",
013dc89f
DM
39717 "type" : "string",
39718 "typetext" : "<string>"
44660702 39719 },
56122987 39720 "version" : {
7aacca6f 39721 "description" : "Package version.",
44660702 39722 "optional" : 1,
013dc89f
DM
39723 "type" : "string",
39724 "typetext" : "<string>"
56122987 39725 }
44660702 39726 }
56122987 39727 },
44660702
DM
39728 "permissions" : {
39729 "check" : [
39730 "perm",
39731 "/nodes/{node}",
39732 [
39733 "Sys.Modify"
39734 ]
39735 ]
39736 },
39737 "proxyto" : "node",
39738 "returns" : {
39739 "type" : "string"
39740 }
56122987
DM
39741 }
39742 },
44660702
DM
39743 "leaf" : 1,
39744 "path" : "/nodes/{node}/apt/changelog",
7aacca6f 39745 "text" : "changelog"
56122987 39746 },
34f3e481
TL
39747 {
39748 "info" : {
39749 "GET" : {
39750 "allowtoken" : 1,
39751 "description" : "Get APT repository information.",
39752 "method" : "GET",
39753 "name" : "repositories",
39754 "parameters" : {
39755 "additionalProperties" : 0,
39756 "properties" : {
39757 "node" : {
39758 "description" : "The cluster node name.",
39759 "format" : "pve-node",
39760 "type" : "string",
39761 "typetext" : "<string>"
39762 }
39763 }
39764 },
39765 "permissions" : {
39766 "check" : [
39767 "perm",
39768 "/nodes/{node}",
39769 [
39770 "Sys.Audit"
39771 ]
39772 ]
39773 },
39774 "proxyto" : "node",
39775 "returns" : {
39776 "description" : "Result from parsing the APT repository files in /etc/apt/.",
39777 "properties" : {
39778 "digest" : {
39779 "description" : "Common digest of all files.",
39780 "type" : "string"
39781 },
39782 "errors" : {
39783 "description" : "List of problematic repository files.",
39784 "items" : {
39785 "properties" : {
39786 "error" : {
39787 "description" : "The error message",
39788 "type" : "string"
39789 },
39790 "path" : {
39791 "description" : "Path to the problematic file.",
39792 "type" : "string"
39793 }
39794 },
39795 "type" : "object"
39796 },
39797 "type" : "array"
39798 },
39799 "files" : {
39800 "description" : "List of parsed repository files.",
39801 "items" : {
39802 "properties" : {
39803 "digest" : {
39804 "description" : "Digest of the file as bytes.",
39805 "items" : {
39806 "type" : "integer"
39807 },
39808 "type" : "array"
39809 },
39810 "file-type" : {
39811 "description" : "Format of the file.",
39812 "enum" : [
39813 "list",
39814 "sources"
39815 ],
39816 "type" : "string"
39817 },
39818 "path" : {
39819 "description" : "Path to the problematic file.",
39820 "type" : "string"
39821 },
39822 "repositories" : {
39823 "description" : "The parsed repositories.",
39824 "items" : {
39825 "properties" : {
39826 "Comment" : {
39827 "description" : "Associated comment",
39828 "optional" : 1,
39829 "type" : "string"
39830 },
39831 "Components" : {
39832 "description" : "List of repository components",
39833 "items" : {
39834 "type" : "string"
39835 },
39836 "optional" : 1,
39837 "type" : "array"
39838 },
39839 "Enabled" : {
39840 "description" : "Whether the repository is enabled or not",
39841 "type" : "boolean"
39842 },
39843 "FileType" : {
39844 "description" : "Format of the defining file.",
39845 "enum" : [
39846 "list",
39847 "sources"
39848 ],
39849 "type" : "string"
39850 },
39851 "Options" : {
39852 "description" : "Additional options",
39853 "items" : {
39854 "properties" : {
39855 "Key" : {
39856 "type" : "string"
39857 },
39858 "Values" : {
39859 "items" : {
39860 "type" : "string"
39861 },
39862 "type" : "array"
39863 }
39864 },
39865 "type" : "object"
39866 },
39867 "optional" : 1,
39868 "type" : "array"
39869 },
39870 "Suites" : {
39871 "description" : "List of package distribuitions",
39872 "items" : {
39873 "type" : "string"
39874 },
39875 "type" : "array"
39876 },
39877 "Types" : {
39878 "description" : "List of package types.",
39879 "items" : {
39880 "enum" : [
39881 "deb",
39882 "deb-src"
39883 ],
39884 "type" : "string"
39885 },
39886 "type" : "array"
39887 },
39888 "URIs" : {
39889 "description" : "List of repository URIs.",
39890 "items" : {
39891 "type" : "string"
39892 },
39893 "type" : "array"
39894 }
39895 },
39896 "type" : "object"
39897 },
39898 "type" : "array"
39899 }
39900 },
39901 "type" : "object"
39902 },
39903 "type" : "array"
39904 },
39905 "infos" : {
39906 "description" : "Additional information/warnings for APT repositories.",
39907 "items" : {
39908 "properties" : {
39909 "index" : {
39910 "description" : "Index of the associated repository within the file.",
39911 "type" : "string"
39912 },
39913 "kind" : {
39914 "description" : "Kind of the information (e.g. warning).",
39915 "type" : "string"
39916 },
39917 "message" : {
39918 "description" : "Information message.",
39919 "type" : "string"
39920 },
39921 "path" : {
39922 "description" : "Path to the associated file.",
39923 "type" : "string"
39924 },
39925 "property" : {
39926 "description" : "Property from which the info originates.",
39927 "optional" : 1,
39928 "type" : "string"
39929 }
39930 },
39931 "type" : "object"
39932 },
39933 "type" : "array"
39934 },
39935 "standard-repos" : {
39936 "description" : "List of standard repositories and their configuration status",
39937 "items" : {
39938 "properties" : {
39939 "handle" : {
39940 "description" : "Handle to identify the repository.",
39941 "type" : "string"
39942 },
39943 "name" : {
39944 "description" : "Full name of the repository.",
39945 "type" : "string"
39946 },
39947 "status" : {
39948 "description" : "Indicating enabled/disabled status, if the repository is configured.",
39949 "optional" : 1,
39950 "type" : "boolean"
39951 }
39952 },
39953 "type" : "object"
39954 },
39955 "type" : "array"
39956 }
39957 },
39958 "type" : "object"
39959 }
39960 },
39961 "POST" : {
39962 "allowtoken" : 1,
39963 "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
39964 "method" : "POST",
39965 "name" : "change_repository",
39966 "parameters" : {
39967 "additionalProperties" : 0,
39968 "properties" : {
39969 "digest" : {
39970 "description" : "Digest to detect modifications.",
39971 "maxLength" : 80,
39972 "optional" : 1,
39973 "type" : "string",
39974 "typetext" : "<string>"
39975 },
39976 "enabled" : {
39977 "description" : "Whether the repository should be enabled or not.",
39978 "optional" : 1,
39979 "type" : "boolean",
39980 "typetext" : "<boolean>"
39981 },
39982 "index" : {
39983 "description" : "Index within the file (starting from 0).",
39984 "type" : "integer",
39985 "typetext" : "<integer>"
39986 },
39987 "node" : {
39988 "description" : "The cluster node name.",
39989 "format" : "pve-node",
39990 "type" : "string",
39991 "typetext" : "<string>"
39992 },
39993 "path" : {
39994 "description" : "Path to the containing file.",
39995 "type" : "string",
39996 "typetext" : "<string>"
39997 }
39998 }
39999 },
40000 "permissions" : {
40001 "check" : [
40002 "perm",
40003 "/nodes/{node}",
40004 [
40005 "Sys.Modify"
40006 ]
40007 ]
40008 },
40009 "protected" : 1,
40010 "proxyto" : "node",
40011 "returns" : {
40012 "type" : "null"
40013 }
40014 },
40015 "PUT" : {
40016 "allowtoken" : 1,
40017 "description" : "Add a standard repository to the configuration",
40018 "method" : "PUT",
40019 "name" : "add_repository",
40020 "parameters" : {
40021 "additionalProperties" : 0,
40022 "properties" : {
40023 "digest" : {
40024 "description" : "Digest to detect modifications.",
40025 "maxLength" : 80,
40026 "optional" : 1,
40027 "type" : "string",
40028 "typetext" : "<string>"
40029 },
40030 "handle" : {
40031 "description" : "Handle that identifies a repository.",
40032 "type" : "string",
40033 "typetext" : "<string>"
40034 },
40035 "node" : {
40036 "description" : "The cluster node name.",
40037 "format" : "pve-node",
40038 "type" : "string",
40039 "typetext" : "<string>"
40040 }
40041 }
40042 },
40043 "permissions" : {
40044 "check" : [
40045 "perm",
40046 "/nodes/{node}",
40047 [
40048 "Sys.Modify"
40049 ]
40050 ]
40051 },
40052 "protected" : 1,
40053 "proxyto" : "node",
40054 "returns" : {
40055 "type" : "null"
40056 }
40057 }
40058 },
40059 "leaf" : 1,
40060 "path" : "/nodes/{node}/apt/repositories",
40061 "text" : "repositories"
40062 },
56122987 40063 {
56122987
DM
40064 "info" : {
40065 "GET" : {
e9cd3bd4 40066 "allowtoken" : 1,
44660702
DM
40067 "description" : "Get package information for important Proxmox packages.",
40068 "method" : "GET",
7aacca6f
DM
40069 "name" : "versions",
40070 "parameters" : {
44660702 40071 "additionalProperties" : 0,
7aacca6f
DM
40072 "properties" : {
40073 "node" : {
44660702 40074 "description" : "The cluster node name.",
7aacca6f 40075 "format" : "pve-node",
013dc89f
DM
40076 "type" : "string",
40077 "typetext" : "<string>"
7aacca6f 40078 }
44660702 40079 }
7aacca6f 40080 },
56122987
DM
40081 "permissions" : {
40082 "check" : [
40083 "perm",
40084 "/nodes/{node}",
40085 [
40086 "Sys.Audit"
40087 ]
40088 ]
40089 },
7aacca6f 40090 "proxyto" : "node",
56122987
DM
40091 "returns" : {
40092 "items" : {
7aacca6f
DM
40093 "properties" : {},
40094 "type" : "object"
44660702
DM
40095 },
40096 "type" : "array"
56122987
DM
40097 }
40098 }
40099 },
44660702 40100 "leaf" : 1,
7aacca6f 40101 "path" : "/nodes/{node}/apt/versions",
44660702 40102 "text" : "versions"
56122987
DM
40103 }
40104 ],
56122987
DM
40105 "info" : {
40106 "GET" : {
e9cd3bd4 40107 "allowtoken" : 1,
44660702 40108 "description" : "Directory index for apt (Advanced Package Tool).",
7aacca6f 40109 "method" : "GET",
44660702 40110 "name" : "index",
7aacca6f
DM
40111 "parameters" : {
40112 "additionalProperties" : 0,
40113 "properties" : {
40114 "node" : {
44660702 40115 "description" : "The cluster node name.",
7aacca6f 40116 "format" : "pve-node",
013dc89f
DM
40117 "type" : "string",
40118 "typetext" : "<string>"
7aacca6f
DM
40119 }
40120 }
40121 },
7aacca6f
DM
40122 "permissions" : {
40123 "user" : "all"
40124 },
44660702
DM
40125 "returns" : {
40126 "items" : {
40127 "properties" : {
40128 "id" : {
40129 "type" : "string"
40130 }
40131 },
40132 "type" : "object"
40133 },
40134 "links" : [
40135 {
40136 "href" : "{id}",
40137 "rel" : "child"
40138 }
40139 ],
40140 "type" : "array"
40141 }
56122987 40142 }
7aacca6f 40143 },
44660702 40144 "leaf" : 0,
7aacca6f 40145 "path" : "/nodes/{node}/apt",
44660702 40146 "text" : "apt"
56122987
DM
40147 },
40148 {
56122987
DM
40149 "children" : [
40150 {
40151 "children" : [
40152 {
56122987
DM
40153 "info" : {
40154 "DELETE" : {
e9cd3bd4 40155 "allowtoken" : 1,
44660702 40156 "description" : "Delete rule.",
7aacca6f 40157 "method" : "DELETE",
44660702 40158 "name" : "delete_rule",
56122987
DM
40159 "parameters" : {
40160 "additionalProperties" : 0,
40161 "properties" : {
56122987
DM
40162 "digest" : {
40163 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 40164 "maxLength" : 40,
56122987 40165 "optional" : 1,
013dc89f
DM
40166 "type" : "string",
40167 "typetext" : "<string>"
56122987 40168 },
44660702
DM
40169 "node" : {
40170 "description" : "The cluster node name.",
40171 "format" : "pve-node",
013dc89f
DM
40172 "type" : "string",
40173 "typetext" : "<string>"
44660702 40174 },
7aacca6f 40175 "pos" : {
7aacca6f 40176 "description" : "Update rule at position <pos>.",
44660702
DM
40177 "minimum" : 0,
40178 "optional" : 1,
4bd7df8b 40179 "type" : "integer",
013dc89f 40180 "typetext" : "<integer> (0 - N)"
56122987
DM
40181 }
40182 }
40183 },
44660702
DM
40184 "permissions" : {
40185 "check" : [
40186 "perm",
40187 "/nodes/{node}",
40188 [
40189 "Sys.Modify"
40190 ]
40191 ]
40192 },
40193 "protected" : 1,
40194 "proxyto" : "node",
56122987
DM
40195 "returns" : {
40196 "type" : "null"
44660702
DM
40197 }
40198 },
40199 "GET" : {
e9cd3bd4 40200 "allowtoken" : 1,
44660702
DM
40201 "description" : "Get single rule data.",
40202 "method" : "GET",
40203 "name" : "get_rule",
40204 "parameters" : {
40205 "additionalProperties" : 0,
40206 "properties" : {
40207 "node" : {
40208 "description" : "The cluster node name.",
40209 "format" : "pve-node",
013dc89f
DM
40210 "type" : "string",
40211 "typetext" : "<string>"
44660702
DM
40212 },
40213 "pos" : {
40214 "description" : "Update rule at position <pos>.",
40215 "minimum" : 0,
40216 "optional" : 1,
4bd7df8b 40217 "type" : "integer",
013dc89f 40218 "typetext" : "<integer> (0 - N)"
44660702
DM
40219 }
40220 }
56122987 40221 },
56122987
DM
40222 "permissions" : {
40223 "check" : [
40224 "perm",
40225 "/nodes/{node}",
40226 [
44660702 40227 "Sys.Audit"
56122987
DM
40228 ]
40229 ]
44660702
DM
40230 },
40231 "proxyto" : "node",
40232 "returns" : {
40233 "properties" : {
e2d681b3
TL
40234 "action" : {
40235 "type" : "string"
40236 },
40237 "comment" : {
40238 "optional" : 1,
40239 "type" : "string"
40240 },
40241 "dest" : {
40242 "optional" : 1,
40243 "type" : "string"
40244 },
40245 "dport" : {
40246 "optional" : 1,
40247 "type" : "string"
40248 },
40249 "enable" : {
40250 "optional" : 1,
40251 "type" : "integer"
40252 },
4772952b
TL
40253 "icmp-type" : {
40254 "optional" : 1,
40255 "type" : "string"
40256 },
e2d681b3
TL
40257 "iface" : {
40258 "optional" : 1,
40259 "type" : "string"
40260 },
40261 "ipversion" : {
40262 "optional" : 1,
40263 "type" : "integer"
40264 },
95895385
TL
40265 "log" : {
40266 "description" : "Log level for firewall rule",
40267 "enum" : [
40268 "emerg",
40269 "alert",
40270 "crit",
40271 "err",
40272 "warning",
40273 "notice",
40274 "info",
40275 "debug",
40276 "nolog"
40277 ],
40278 "optional" : 1,
40279 "type" : "string"
40280 },
e2d681b3
TL
40281 "macro" : {
40282 "optional" : 1,
5f26e15b 40283 "type" : "string"
e2d681b3 40284 },
44660702
DM
40285 "pos" : {
40286 "type" : "integer"
e2d681b3
TL
40287 },
40288 "proto" : {
40289 "optional" : 1,
40290 "type" : "string"
40291 },
40292 "source" : {
40293 "optional" : 1,
40294 "type" : "string"
40295 },
40296 "sport" : {
40297 "optional" : 1,
40298 "type" : "string"
40299 },
40300 "type" : {
40301 "type" : "string"
44660702
DM
40302 }
40303 },
40304 "type" : "object"
7aacca6f 40305 }
56122987
DM
40306 },
40307 "PUT" : {
e9cd3bd4 40308 "allowtoken" : 1,
44660702
DM
40309 "description" : "Modify rule data.",
40310 "method" : "PUT",
56122987 40311 "name" : "update_rule",
56122987 40312 "parameters" : {
44660702 40313 "additionalProperties" : 0,
56122987 40314 "properties" : {
44660702
DM
40315 "action" : {
40316 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
40317 "maxLength" : 20,
40318 "minLength" : 2,
56122987 40319 "optional" : 1,
44660702
DM
40320 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
40321 "type" : "string"
56122987 40322 },
7aacca6f 40323 "comment" : {
e94f0d56 40324 "description" : "Descriptive comment.",
56122987 40325 "optional" : 1,
013dc89f
DM
40326 "type" : "string",
40327 "typetext" : "<string>"
56122987 40328 },
44660702
DM
40329 "delete" : {
40330 "description" : "A list of settings you want to delete.",
40331 "format" : "pve-configid-list",
56122987 40332 "optional" : 1,
013dc89f
DM
40333 "type" : "string",
40334 "typetext" : "<string>"
56122987 40335 },
44660702
DM
40336 "dest" : {
40337 "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.",
40338 "format" : "pve-fw-addr-spec",
0695fdaf 40339 "maxLength" : 512,
56122987 40340 "optional" : 1,
013dc89f
DM
40341 "type" : "string",
40342 "typetext" : "<string>"
56122987 40343 },
44660702
DM
40344 "digest" : {
40345 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
40346 "maxLength" : 40,
56122987 40347 "optional" : 1,
013dc89f
DM
40348 "type" : "string",
40349 "typetext" : "<string>"
56122987 40350 },
7aacca6f 40351 "dport" : {
7aacca6f 40352 "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
40353 "format" : "pve-fw-dport-spec",
40354 "optional" : 1,
013dc89f
DM
40355 "type" : "string",
40356 "typetext" : "<string>"
7aacca6f 40357 },
44660702 40358 "enable" : {
e94f0d56 40359 "description" : "Flag to enable/disable a rule.",
44660702 40360 "minimum" : 0,
56122987 40361 "optional" : 1,
4bd7df8b 40362 "type" : "integer",
013dc89f 40363 "typetext" : "<integer> (0 - N)"
56122987 40364 },
4772952b
TL
40365 "icmp-type" : {
40366 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
40367 "format" : "pve-fw-icmp-type-spec",
40368 "optional" : 1,
40369 "type" : "string",
40370 "typetext" : "<string>"
40371 },
7aacca6f 40372 "iface" : {
44660702 40373 "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 40374 "format" : "pve-iface",
44660702 40375 "maxLength" : 20,
56122987 40376 "minLength" : 2,
44660702 40377 "optional" : 1,
013dc89f
DM
40378 "type" : "string",
40379 "typetext" : "<string>"
56122987 40380 },
95895385
TL
40381 "log" : {
40382 "description" : "Log level for firewall rule.",
40383 "enum" : [
40384 "emerg",
40385 "alert",
40386 "crit",
40387 "err",
40388 "warning",
40389 "notice",
40390 "info",
40391 "debug",
40392 "nolog"
40393 ],
40394 "optional" : 1,
40395 "type" : "string"
40396 },
44660702 40397 "macro" : {
e94f0d56 40398 "description" : "Use predefined standard macro.",
44660702
DM
40399 "maxLength" : 128,
40400 "optional" : 1,
013dc89f
DM
40401 "type" : "string",
40402 "typetext" : "<string>"
44660702
DM
40403 },
40404 "moveto" : {
40405 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
40406 "minimum" : 0,
7aacca6f 40407 "optional" : 1,
4bd7df8b 40408 "type" : "integer",
013dc89f 40409 "typetext" : "<integer> (0 - N)"
44660702
DM
40410 },
40411 "node" : {
40412 "description" : "The cluster node name.",
40413 "format" : "pve-node",
013dc89f
DM
40414 "type" : "string",
40415 "typetext" : "<string>"
56122987
DM
40416 },
40417 "pos" : {
44660702 40418 "description" : "Update rule at position <pos>.",
7aacca6f 40419 "minimum" : 0,
7aacca6f 40420 "optional" : 1,
4bd7df8b 40421 "type" : "integer",
013dc89f 40422 "typetext" : "<integer> (0 - N)"
7aacca6f 40423 },
44660702
DM
40424 "proto" : {
40425 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
40426 "format" : "pve-fw-protocol-spec",
7aacca6f 40427 "optional" : 1,
013dc89f
DM
40428 "type" : "string",
40429 "typetext" : "<string>"
7aacca6f 40430 },
44660702
DM
40431 "source" : {
40432 "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.",
40433 "format" : "pve-fw-addr-spec",
0695fdaf 40434 "maxLength" : 512,
56122987 40435 "optional" : 1,
013dc89f
DM
40436 "type" : "string",
40437 "typetext" : "<string>"
7aacca6f 40438 },
44660702
DM
40439 "sport" : {
40440 "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.",
40441 "format" : "pve-fw-sport-spec",
40442 "optional" : 1,
013dc89f
DM
40443 "type" : "string",
40444 "typetext" : "<string>"
44660702
DM
40445 },
40446 "type" : {
e94f0d56 40447 "description" : "Rule type.",
44660702
DM
40448 "enum" : [
40449 "in",
40450 "out",
40451 "group"
40452 ],
40453 "optional" : 1,
40454 "type" : "string"
56122987 40455 }
44660702 40456 }
56122987 40457 },
56122987
DM
40458 "permissions" : {
40459 "check" : [
40460 "perm",
40461 "/nodes/{node}",
40462 [
40463 "Sys.Modify"
40464 ]
40465 ]
7aacca6f 40466 },
44660702 40467 "protected" : 1,
7aacca6f 40468 "proxyto" : "node",
7aacca6f
DM
40469 "returns" : {
40470 "type" : "null"
56122987
DM
40471 }
40472 }
7aacca6f 40473 },
44660702 40474 "leaf" : 1,
7aacca6f 40475 "path" : "/nodes/{node}/firewall/rules/{pos}",
44660702 40476 "text" : "{pos}"
56122987
DM
40477 }
40478 ],
56122987
DM
40479 "info" : {
40480 "GET" : {
e9cd3bd4 40481 "allowtoken" : 1,
44660702
DM
40482 "description" : "List rules.",
40483 "method" : "GET",
40484 "name" : "get_rules",
40485 "parameters" : {
40486 "additionalProperties" : 0,
40487 "properties" : {
40488 "node" : {
40489 "description" : "The cluster node name.",
40490 "format" : "pve-node",
013dc89f
DM
40491 "type" : "string",
40492 "typetext" : "<string>"
44660702
DM
40493 }
40494 }
40495 },
40496 "permissions" : {
40497 "check" : [
40498 "perm",
40499 "/nodes/{node}",
40500 [
40501 "Sys.Audit"
40502 ]
40503 ]
40504 },
40505 "proxyto" : "node",
56122987 40506 "returns" : {
56122987
DM
40507 "items" : {
40508 "properties" : {
40509 "pos" : {
40510 "type" : "integer"
40511 }
44660702
DM
40512 },
40513 "type" : "object"
56122987 40514 },
7aacca6f
DM
40515 "links" : [
40516 {
40517 "href" : "{pos}",
40518 "rel" : "child"
40519 }
40520 ],
40521 "type" : "array"
44660702 40522 }
56122987
DM
40523 },
40524 "POST" : {
e9cd3bd4 40525 "allowtoken" : 1,
44660702 40526 "description" : "Create new rule.",
7aacca6f
DM
40527 "method" : "POST",
40528 "name" : "create_rule",
56122987 40529 "parameters" : {
44660702 40530 "additionalProperties" : 0,
56122987 40531 "properties" : {
7aacca6f 40532 "action" : {
7aacca6f 40533 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
44660702 40534 "maxLength" : 20,
7aacca6f
DM
40535 "minLength" : 2,
40536 "optional" : 0,
44660702
DM
40537 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
40538 "type" : "string"
56122987 40539 },
44660702 40540 "comment" : {
e94f0d56 40541 "description" : "Descriptive comment.",
56122987 40542 "optional" : 1,
013dc89f
DM
40543 "type" : "string",
40544 "typetext" : "<string>"
56122987 40545 },
44660702
DM
40546 "dest" : {
40547 "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.",
40548 "format" : "pve-fw-addr-spec",
0695fdaf 40549 "maxLength" : 512,
7aacca6f 40550 "optional" : 1,
013dc89f
DM
40551 "type" : "string",
40552 "typetext" : "<string>"
56122987 40553 },
44660702
DM
40554 "digest" : {
40555 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
40556 "maxLength" : 40,
40557 "optional" : 1,
013dc89f
DM
40558 "type" : "string",
40559 "typetext" : "<string>"
56122987 40560 },
44660702
DM
40561 "dport" : {
40562 "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.",
40563 "format" : "pve-fw-dport-spec",
7aacca6f 40564 "optional" : 1,
013dc89f
DM
40565 "type" : "string",
40566 "typetext" : "<string>"
56122987 40567 },
44660702 40568 "enable" : {
e94f0d56 40569 "description" : "Flag to enable/disable a rule.",
44660702
DM
40570 "minimum" : 0,
40571 "optional" : 1,
4bd7df8b 40572 "type" : "integer",
013dc89f 40573 "typetext" : "<integer> (0 - N)"
44660702 40574 },
4772952b
TL
40575 "icmp-type" : {
40576 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
40577 "format" : "pve-fw-icmp-type-spec",
40578 "optional" : 1,
40579 "type" : "string",
40580 "typetext" : "<string>"
40581 },
7aacca6f 40582 "iface" : {
44660702 40583 "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 40584 "format" : "pve-iface",
56122987 40585 "maxLength" : 20,
7aacca6f 40586 "minLength" : 2,
7aacca6f 40587 "optional" : 1,
013dc89f
DM
40588 "type" : "string",
40589 "typetext" : "<string>"
56122987 40590 },
95895385
TL
40591 "log" : {
40592 "description" : "Log level for firewall rule.",
40593 "enum" : [
40594 "emerg",
40595 "alert",
40596 "crit",
40597 "err",
40598 "warning",
40599 "notice",
40600 "info",
40601 "debug",
40602 "nolog"
40603 ],
40604 "optional" : 1,
40605 "type" : "string"
40606 },
44660702 40607 "macro" : {
e94f0d56 40608 "description" : "Use predefined standard macro.",
44660702 40609 "maxLength" : 128,
7aacca6f 40610 "optional" : 1,
013dc89f
DM
40611 "type" : "string",
40612 "typetext" : "<string>"
56122987 40613 },
44660702
DM
40614 "node" : {
40615 "description" : "The cluster node name.",
40616 "format" : "pve-node",
013dc89f
DM
40617 "type" : "string",
40618 "typetext" : "<string>"
44660702
DM
40619 },
40620 "pos" : {
40621 "description" : "Update rule at position <pos>.",
40622 "minimum" : 0,
40623 "optional" : 1,
4bd7df8b 40624 "type" : "integer",
013dc89f 40625 "typetext" : "<integer> (0 - N)"
44660702
DM
40626 },
40627 "proto" : {
40628 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
40629 "format" : "pve-fw-protocol-spec",
56122987 40630 "optional" : 1,
013dc89f
DM
40631 "type" : "string",
40632 "typetext" : "<string>"
56122987 40633 },
7aacca6f 40634 "source" : {
7aacca6f 40635 "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 40636 "format" : "pve-fw-addr-spec",
0695fdaf 40637 "maxLength" : 512,
44660702 40638 "optional" : 1,
013dc89f
DM
40639 "type" : "string",
40640 "typetext" : "<string>"
7aacca6f 40641 },
44660702
DM
40642 "sport" : {
40643 "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.",
40644 "format" : "pve-fw-sport-spec",
7aacca6f 40645 "optional" : 1,
013dc89f
DM
40646 "type" : "string",
40647 "typetext" : "<string>"
44660702
DM
40648 },
40649 "type" : {
e94f0d56 40650 "description" : "Rule type.",
44660702
DM
40651 "enum" : [
40652 "in",
40653 "out",
40654 "group"
40655 ],
40656 "optional" : 0,
40657 "type" : "string"
56122987 40658 }
44660702 40659 }
7aacca6f 40660 },
56122987
DM
40661 "permissions" : {
40662 "check" : [
40663 "perm",
40664 "/nodes/{node}",
40665 [
40666 "Sys.Modify"
40667 ]
40668 ]
40669 },
44660702
DM
40670 "protected" : 1,
40671 "proxyto" : "node",
40672 "returns" : {
40673 "type" : "null"
40674 }
56122987
DM
40675 }
40676 },
44660702 40677 "leaf" : 0,
7aacca6f 40678 "path" : "/nodes/{node}/firewall/rules",
44660702 40679 "text" : "rules"
56122987
DM
40680 },
40681 {
56122987 40682 "info" : {
44660702 40683 "GET" : {
e9cd3bd4 40684 "allowtoken" : 1,
44660702
DM
40685 "description" : "Get host firewall options.",
40686 "method" : "GET",
40687 "name" : "get_options",
56122987 40688 "parameters" : {
7aacca6f 40689 "additionalProperties" : 0,
56122987 40690 "properties" : {
44660702
DM
40691 "node" : {
40692 "description" : "The cluster node name.",
40693 "format" : "pve-node",
013dc89f
DM
40694 "type" : "string",
40695 "typetext" : "<string>"
44660702
DM
40696 }
40697 }
40698 },
40699 "permissions" : {
40700 "check" : [
40701 "perm",
40702 "/nodes/{node}",
40703 [
40704 "Sys.Audit"
40705 ]
40706 ]
40707 },
40708 "proxyto" : "node",
40709 "returns" : {
40710 "properties" : {
40711 "enable" : {
40712 "description" : "Enable host firewall rules.",
7aacca6f 40713 "optional" : 1,
44660702 40714 "type" : "boolean"
7aacca6f 40715 },
44660702
DM
40716 "log_level_in" : {
40717 "description" : "Log level for incoming traffic.",
56122987
DM
40718 "enum" : [
40719 "emerg",
40720 "alert",
40721 "crit",
40722 "err",
40723 "warning",
40724 "notice",
40725 "info",
40726 "debug",
40727 "nolog"
40728 ],
56122987 40729 "optional" : 1,
44660702
DM
40730 "type" : "string"
40731 },
40732 "log_level_out" : {
40733 "description" : "Log level for outgoing traffic.",
56122987
DM
40734 "enum" : [
40735 "emerg",
40736 "alert",
40737 "crit",
40738 "err",
40739 "warning",
40740 "notice",
40741 "info",
40742 "debug",
40743 "nolog"
40744 ],
44660702
DM
40745 "optional" : 1,
40746 "type" : "string"
40747 },
95895385
TL
40748 "log_nf_conntrack" : {
40749 "default" : 0,
40750 "description" : "Enable logging of conntrack information.",
40751 "optional" : 1,
40752 "type" : "boolean"
40753 },
44660702 40754 "ndp" : {
5c1699e5
TL
40755 "default" : 0,
40756 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702
DM
40757 "optional" : 1,
40758 "type" : "boolean"
40759 },
5f26e15b
TL
40760 "nf_conntrack_allow_invalid" : {
40761 "default" : 0,
40762 "description" : "Allow invalid packets on connection tracking.",
40763 "optional" : 1,
40764 "type" : "boolean"
40765 },
44660702 40766 "nf_conntrack_max" : {
5c1699e5 40767 "default" : 262144,
44660702
DM
40768 "description" : "Maximum number of tracked connections.",
40769 "minimum" : 32768,
40770 "optional" : 1,
40771 "type" : "integer"
40772 },
40773 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 40774 "default" : 432000,
44660702
DM
40775 "description" : "Conntrack established timeout.",
40776 "minimum" : 7875,
40777 "optional" : 1,
40778 "type" : "integer"
40779 },
5c1699e5
TL
40780 "nf_conntrack_tcp_timeout_syn_recv" : {
40781 "default" : 60,
40782 "description" : "Conntrack syn recv timeout.",
40783 "maximum" : 60,
40784 "minimum" : 30,
40785 "optional" : 1,
40786 "type" : "integer"
40787 },
44660702
DM
40788 "nosmurfs" : {
40789 "description" : "Enable SMURFS filter.",
40790 "optional" : 1,
40791 "type" : "boolean"
56122987 40792 },
5c1699e5
TL
40793 "protection_synflood" : {
40794 "default" : 0,
40795 "description" : "Enable synflood protection",
40796 "optional" : 1,
40797 "type" : "boolean"
40798 },
40799 "protection_synflood_burst" : {
40800 "default" : 1000,
40801 "description" : "Synflood protection rate burst by ip src.",
40802 "optional" : 1,
40803 "type" : "integer"
40804 },
40805 "protection_synflood_rate" : {
40806 "default" : 200,
40807 "description" : "Synflood protection rate syn/sec by ip src.",
40808 "optional" : 1,
40809 "type" : "integer"
40810 },
7aacca6f 40811 "smurf_log_level" : {
44660702 40812 "description" : "Log level for SMURFS filter.",
56122987
DM
40813 "enum" : [
40814 "emerg",
40815 "alert",
40816 "crit",
40817 "err",
40818 "warning",
40819 "notice",
40820 "info",
40821 "debug",
40822 "nolog"
7aacca6f 40823 ],
7aacca6f
DM
40824 "optional" : 1,
40825 "type" : "string"
56122987 40826 },
44660702
DM
40827 "tcp_flags_log_level" : {
40828 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
40829 "enum" : [
40830 "emerg",
40831 "alert",
40832 "crit",
40833 "err",
40834 "warning",
40835 "notice",
40836 "info",
40837 "debug",
40838 "nolog"
40839 ],
44660702
DM
40840 "optional" : 1,
40841 "type" : "string"
7aacca6f 40842 },
44660702 40843 "tcpflags" : {
5c1699e5 40844 "default" : 0,
44660702 40845 "description" : "Filter illegal combinations of TCP flags.",
56122987 40846 "optional" : 1,
44660702 40847 "type" : "boolean"
56122987 40848 }
44660702
DM
40849 },
40850 "type" : "object"
7aacca6f 40851 }
56122987 40852 },
44660702 40853 "PUT" : {
e9cd3bd4 40854 "allowtoken" : 1,
44660702
DM
40855 "description" : "Set Firewall options.",
40856 "method" : "PUT",
40857 "name" : "set_options",
7aacca6f 40858 "parameters" : {
44660702 40859 "additionalProperties" : 0,
7aacca6f 40860 "properties" : {
44660702
DM
40861 "delete" : {
40862 "description" : "A list of settings you want to delete.",
40863 "format" : "pve-configid-list",
7aacca6f 40864 "optional" : 1,
013dc89f
DM
40865 "type" : "string",
40866 "typetext" : "<string>"
56122987 40867 },
44660702
DM
40868 "digest" : {
40869 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
40870 "maxLength" : 40,
40871 "optional" : 1,
013dc89f
DM
40872 "type" : "string",
40873 "typetext" : "<string>"
56122987 40874 },
44660702
DM
40875 "enable" : {
40876 "description" : "Enable host firewall rules.",
7aacca6f 40877 "optional" : 1,
013dc89f
DM
40878 "type" : "boolean",
40879 "typetext" : "<boolean>"
44660702
DM
40880 },
40881 "log_level_in" : {
40882 "description" : "Log level for incoming traffic.",
56122987
DM
40883 "enum" : [
40884 "emerg",
40885 "alert",
40886 "crit",
40887 "err",
40888 "warning",
40889 "notice",
40890 "info",
40891 "debug",
40892 "nolog"
44660702 40893 ],
7aacca6f 40894 "optional" : 1,
44660702 40895 "type" : "string"
7aacca6f 40896 },
44660702
DM
40897 "log_level_out" : {
40898 "description" : "Log level for outgoing traffic.",
56122987
DM
40899 "enum" : [
40900 "emerg",
40901 "alert",
40902 "crit",
40903 "err",
40904 "warning",
40905 "notice",
40906 "info",
40907 "debug",
40908 "nolog"
40909 ],
40910 "optional" : 1,
7aacca6f 40911 "type" : "string"
56122987 40912 },
95895385
TL
40913 "log_nf_conntrack" : {
40914 "default" : 0,
40915 "description" : "Enable logging of conntrack information.",
40916 "optional" : 1,
40917 "type" : "boolean",
40918 "typetext" : "<boolean>"
40919 },
44660702 40920 "ndp" : {
5c1699e5
TL
40921 "default" : 0,
40922 "description" : "Enable NDP (Neighbor Discovery Protocol).",
7aacca6f 40923 "optional" : 1,
013dc89f
DM
40924 "type" : "boolean",
40925 "typetext" : "<boolean>"
44660702 40926 },
5f26e15b
TL
40927 "nf_conntrack_allow_invalid" : {
40928 "default" : 0,
40929 "description" : "Allow invalid packets on connection tracking.",
40930 "optional" : 1,
40931 "type" : "boolean",
40932 "typetext" : "<boolean>"
40933 },
44660702 40934 "nf_conntrack_max" : {
5c1699e5 40935 "default" : 262144,
44660702
DM
40936 "description" : "Maximum number of tracked connections.",
40937 "minimum" : 32768,
40938 "optional" : 1,
4bd7df8b 40939 "type" : "integer",
013dc89f 40940 "typetext" : "<integer> (32768 - N)"
44660702
DM
40941 },
40942 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 40943 "default" : 432000,
44660702
DM
40944 "description" : "Conntrack established timeout.",
40945 "minimum" : 7875,
40946 "optional" : 1,
4bd7df8b 40947 "type" : "integer",
013dc89f 40948 "typetext" : "<integer> (7875 - N)"
44660702 40949 },
5c1699e5
TL
40950 "nf_conntrack_tcp_timeout_syn_recv" : {
40951 "default" : 60,
40952 "description" : "Conntrack syn recv timeout.",
40953 "maximum" : 60,
40954 "minimum" : 30,
40955 "optional" : 1,
40956 "type" : "integer",
40957 "typetext" : "<integer> (30 - 60)"
40958 },
44660702
DM
40959 "node" : {
40960 "description" : "The cluster node name.",
40961 "format" : "pve-node",
013dc89f
DM
40962 "type" : "string",
40963 "typetext" : "<string>"
44660702
DM
40964 },
40965 "nosmurfs" : {
40966 "description" : "Enable SMURFS filter.",
40967 "optional" : 1,
013dc89f
DM
40968 "type" : "boolean",
40969 "typetext" : "<boolean>"
44660702 40970 },
5c1699e5
TL
40971 "protection_synflood" : {
40972 "default" : 0,
40973 "description" : "Enable synflood protection",
40974 "optional" : 1,
40975 "type" : "boolean",
40976 "typetext" : "<boolean>"
40977 },
40978 "protection_synflood_burst" : {
40979 "default" : 1000,
40980 "description" : "Synflood protection rate burst by ip src.",
40981 "optional" : 1,
40982 "type" : "integer",
40983 "typetext" : "<integer>"
40984 },
40985 "protection_synflood_rate" : {
40986 "default" : 200,
40987 "description" : "Synflood protection rate syn/sec by ip src.",
40988 "optional" : 1,
40989 "type" : "integer",
40990 "typetext" : "<integer>"
40991 },
44660702
DM
40992 "smurf_log_level" : {
40993 "description" : "Log level for SMURFS filter.",
56122987
DM
40994 "enum" : [
40995 "emerg",
40996 "alert",
40997 "crit",
40998 "err",
40999 "warning",
41000 "notice",
41001 "info",
41002 "debug",
41003 "nolog"
44660702
DM
41004 ],
41005 "optional" : 1,
41006 "type" : "string"
56122987 41007 },
44660702
DM
41008 "tcp_flags_log_level" : {
41009 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
41010 "enum" : [
41011 "emerg",
41012 "alert",
41013 "crit",
41014 "err",
41015 "warning",
41016 "notice",
41017 "info",
41018 "debug",
41019 "nolog"
41020 ],
44660702
DM
41021 "optional" : 1,
41022 "type" : "string"
7aacca6f 41023 },
44660702 41024 "tcpflags" : {
5c1699e5 41025 "default" : 0,
44660702 41026 "description" : "Filter illegal combinations of TCP flags.",
56122987 41027 "optional" : 1,
013dc89f
DM
41028 "type" : "boolean",
41029 "typetext" : "<boolean>"
56122987 41030 }
7aacca6f 41031 }
56122987 41032 },
44660702
DM
41033 "permissions" : {
41034 "check" : [
41035 "perm",
41036 "/nodes/{node}",
41037 [
41038 "Sys.Modify"
41039 ]
41040 ]
41041 },
41042 "protected" : 1,
41043 "proxyto" : "node",
41044 "returns" : {
41045 "type" : "null"
41046 }
7aacca6f
DM
41047 }
41048 },
44660702
DM
41049 "leaf" : 1,
41050 "path" : "/nodes/{node}/firewall/options",
7aacca6f
DM
41051 "text" : "options"
41052 },
41053 {
7aacca6f
DM
41054 "info" : {
41055 "GET" : {
e9cd3bd4 41056 "allowtoken" : 1,
44660702
DM
41057 "description" : "Read firewall log",
41058 "method" : "GET",
7aacca6f 41059 "name" : "log",
56122987 41060 "parameters" : {
44660702 41061 "additionalProperties" : 0,
56122987 41062 "properties" : {
7aacca6f 41063 "limit" : {
44660702 41064 "minimum" : 0,
7aacca6f 41065 "optional" : 1,
4bd7df8b 41066 "type" : "integer",
013dc89f 41067 "typetext" : "<integer> (0 - N)"
7aacca6f 41068 },
56122987 41069 "node" : {
7aacca6f 41070 "description" : "The cluster node name.",
44660702 41071 "format" : "pve-node",
013dc89f
DM
41072 "type" : "string",
41073 "typetext" : "<string>"
44660702
DM
41074 },
41075 "start" : {
41076 "minimum" : 0,
41077 "optional" : 1,
4bd7df8b 41078 "type" : "integer",
013dc89f 41079 "typetext" : "<integer> (0 - N)"
56122987 41080 }
44660702 41081 }
7aacca6f 41082 },
56122987
DM
41083 "permissions" : {
41084 "check" : [
41085 "perm",
41086 "/nodes/{node}",
41087 [
41088 "Sys.Syslog"
41089 ]
41090 ]
41091 },
44660702
DM
41092 "protected" : 1,
41093 "proxyto" : "node",
56122987
DM
41094 "returns" : {
41095 "items" : {
56122987 41096 "properties" : {
56122987 41097 "n" : {
44660702
DM
41098 "description" : "Line number",
41099 "type" : "integer"
7aacca6f
DM
41100 },
41101 "t" : {
44660702
DM
41102 "description" : "Line text",
41103 "type" : "string"
56122987 41104 }
44660702
DM
41105 },
41106 "type" : "object"
56122987
DM
41107 },
41108 "type" : "array"
7aacca6f 41109 }
56122987
DM
41110 }
41111 },
44660702
DM
41112 "leaf" : 1,
41113 "path" : "/nodes/{node}/firewall/log",
7aacca6f 41114 "text" : "log"
56122987
DM
41115 }
41116 ],
41117 "info" : {
41118 "GET" : {
e9cd3bd4 41119 "allowtoken" : 1,
44660702
DM
41120 "description" : "Directory index.",
41121 "method" : "GET",
41122 "name" : "index",
56122987 41123 "parameters" : {
44660702 41124 "additionalProperties" : 0,
56122987
DM
41125 "properties" : {
41126 "node" : {
41127 "description" : "The cluster node name.",
44660702 41128 "format" : "pve-node",
013dc89f
DM
41129 "type" : "string",
41130 "typetext" : "<string>"
56122987 41131 }
44660702 41132 }
56122987 41133 },
7aacca6f
DM
41134 "permissions" : {
41135 "user" : "all"
41136 },
56122987
DM
41137 "returns" : {
41138 "items" : {
41139 "properties" : {},
41140 "type" : "object"
41141 },
56122987
DM
41142 "links" : [
41143 {
44660702
DM
41144 "href" : "{name}",
41145 "rel" : "child"
56122987 41146 }
44660702
DM
41147 ],
41148 "type" : "array"
41149 }
56122987 41150 }
7aacca6f 41151 },
44660702 41152 "leaf" : 0,
7aacca6f 41153 "path" : "/nodes/{node}/firewall",
44660702 41154 "text" : "firewall"
56122987 41155 },
5d9c884c
DM
41156 {
41157 "children" : [
41158 {
41159 "children" : [
41160 {
41161 "info" : {
41162 "GET" : {
e9cd3bd4 41163 "allowtoken" : 1,
5d9c884c
DM
41164 "description" : "Get replication job status.",
41165 "method" : "GET",
41166 "name" : "job_status",
41167 "parameters" : {
41168 "additionalProperties" : 0,
41169 "properties" : {
41170 "id" : {
41171 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
41172 "format" : "pve-replication-job-id",
41173 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
41174 "type" : "string"
41175 },
41176 "node" : {
41177 "description" : "The cluster node name.",
41178 "format" : "pve-node",
41179 "type" : "string",
41180 "typetext" : "<string>"
41181 }
41182 }
41183 },
41184 "permissions" : {
41185 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
41186 "user" : "all"
41187 },
41188 "protected" : 1,
41189 "proxyto" : "node",
41190 "returns" : {
5d9c884c
DM
41191 "type" : "object"
41192 }
41193 }
41194 },
41195 "leaf" : 1,
41196 "path" : "/nodes/{node}/replication/{id}/status",
41197 "text" : "status"
41198 },
41199 {
41200 "info" : {
41201 "GET" : {
e9cd3bd4 41202 "allowtoken" : 1,
5d9c884c
DM
41203 "description" : "Read replication job log.",
41204 "method" : "GET",
41205 "name" : "read_job_log",
41206 "parameters" : {
41207 "additionalProperties" : 0,
41208 "properties" : {
41209 "id" : {
41210 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
41211 "format" : "pve-replication-job-id",
41212 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
41213 "type" : "string"
41214 },
41215 "limit" : {
41216 "minimum" : 0,
41217 "optional" : 1,
41218 "type" : "integer",
41219 "typetext" : "<integer> (0 - N)"
41220 },
41221 "node" : {
41222 "description" : "The cluster node name.",
41223 "format" : "pve-node",
41224 "type" : "string",
41225 "typetext" : "<string>"
41226 },
41227 "start" : {
41228 "minimum" : 0,
41229 "optional" : 1,
41230 "type" : "integer",
41231 "typetext" : "<integer> (0 - N)"
41232 }
41233 }
41234 },
41235 "permissions" : {
41236 "description" : "Requires the VM.Audit permission on /vms/<vmid>, or 'Sys.Audit' on '/nodes/<node>'",
41237 "user" : "all"
41238 },
41239 "protected" : 1,
41240 "proxyto" : "node",
41241 "returns" : {
41242 "items" : {
41243 "properties" : {
41244 "n" : {
41245 "description" : "Line number",
41246 "type" : "integer"
41247 },
41248 "t" : {
41249 "description" : "Line text",
41250 "type" : "string"
41251 }
41252 },
41253 "type" : "object"
41254 },
41255 "type" : "array"
41256 }
41257 }
41258 },
41259 "leaf" : 1,
41260 "path" : "/nodes/{node}/replication/{id}/log",
41261 "text" : "log"
41262 },
41263 {
41264 "info" : {
41265 "POST" : {
e9cd3bd4 41266 "allowtoken" : 1,
5d9c884c
DM
41267 "description" : "Schedule replication job to start as soon as possible.",
41268 "method" : "POST",
41269 "name" : "schedule_now",
41270 "parameters" : {
41271 "additionalProperties" : 0,
41272 "properties" : {
41273 "id" : {
41274 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
41275 "format" : "pve-replication-job-id",
41276 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
41277 "type" : "string"
41278 },
41279 "node" : {
41280 "description" : "The cluster node name.",
41281 "format" : "pve-node",
41282 "type" : "string",
41283 "typetext" : "<string>"
41284 }
41285 }
41286 },
41287 "permissions" : {
41288 "check" : [
41289 "perm",
41290 "/storage",
41291 [
41292 "Datastore.Allocate"
41293 ]
41294 ]
41295 },
41296 "protected" : 1,
41297 "proxyto" : "node",
41298 "returns" : {
41299 "type" : "string"
41300 }
41301 }
41302 },
41303 "leaf" : 1,
41304 "path" : "/nodes/{node}/replication/{id}/schedule_now",
41305 "text" : "schedule_now"
41306 }
41307 ],
41308 "info" : {
41309 "GET" : {
e9cd3bd4 41310 "allowtoken" : 1,
5d9c884c
DM
41311 "description" : "Directory index.",
41312 "method" : "GET",
41313 "name" : "index",
41314 "parameters" : {
41315 "additionalProperties" : 0,
41316 "properties" : {
41317 "id" : {
41318 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
41319 "format" : "pve-replication-job-id",
41320 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
41321 "type" : "string"
41322 },
41323 "node" : {
41324 "description" : "The cluster node name.",
41325 "format" : "pve-node",
41326 "type" : "string",
41327 "typetext" : "<string>"
41328 }
41329 }
41330 },
41331 "permissions" : {
41332 "user" : "all"
41333 },
41334 "returns" : {
41335 "items" : {
41336 "properties" : {},
41337 "type" : "object"
41338 },
41339 "links" : [
41340 {
41341 "href" : "{name}",
41342 "rel" : "child"
41343 }
41344 ],
41345 "type" : "array"
41346 }
41347 }
41348 },
41349 "leaf" : 0,
41350 "path" : "/nodes/{node}/replication/{id}",
41351 "text" : "{id}"
41352 }
41353 ],
41354 "info" : {
41355 "GET" : {
e9cd3bd4 41356 "allowtoken" : 1,
5d9c884c
DM
41357 "description" : "List status of all replication jobs on this node.",
41358 "method" : "GET",
41359 "name" : "status",
41360 "parameters" : {
41361 "additionalProperties" : 0,
41362 "properties" : {
41363 "guest" : {
41364 "description" : "Only list replication jobs for this guest.",
41365 "format" : "pve-vmid",
41366 "minimum" : 1,
41367 "optional" : 1,
41368 "type" : "integer",
41369 "typetext" : "<integer> (1 - N)"
41370 },
41371 "node" : {
41372 "description" : "The cluster node name.",
41373 "format" : "pve-node",
41374 "type" : "string",
41375 "typetext" : "<string>"
41376 }
41377 }
41378 },
41379 "permissions" : {
41380 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
41381 "user" : "all"
41382 },
41383 "protected" : 1,
41384 "proxyto" : "node",
41385 "returns" : {
41386 "items" : {
41387 "properties" : {
41388 "id" : {
41389 "type" : "string"
41390 }
41391 },
41392 "type" : "object"
41393 },
41394 "links" : [
41395 {
41396 "href" : "{id}",
41397 "rel" : "child"
41398 }
41399 ],
41400 "type" : "array"
41401 }
41402 }
41403 },
41404 "leaf" : 0,
41405 "path" : "/nodes/{node}/replication",
41406 "text" : "replication"
41407 },
a9a8e3d1
DM
41408 {
41409 "children" : [
41410 {
41411 "children" : [
41412 {
41413 "info" : {
41414 "DELETE" : {
e9cd3bd4 41415 "allowtoken" : 1,
a9a8e3d1
DM
41416 "description" : "Revoke existing certificate from CA.",
41417 "method" : "DELETE",
41418 "name" : "revoke_certificate",
41419 "parameters" : {
41420 "additionalProperties" : 0,
41421 "properties" : {
41422 "node" : {
41423 "description" : "The cluster node name.",
41424 "format" : "pve-node",
41425 "type" : "string",
41426 "typetext" : "<string>"
41427 }
41428 }
41429 },
ac70d7d1
TL
41430 "permissions" : {
41431 "check" : [
41432 "perm",
41433 "/nodes/{node}",
41434 [
41435 "Sys.Modify"
41436 ]
41437 ]
41438 },
a9a8e3d1
DM
41439 "protected" : 1,
41440 "proxyto" : "node",
41441 "returns" : {
41442 "type" : "string"
41443 }
41444 },
41445 "POST" : {
e9cd3bd4 41446 "allowtoken" : 1,
a9a8e3d1
DM
41447 "description" : "Order a new certificate from ACME-compatible CA.",
41448 "method" : "POST",
41449 "name" : "new_certificate",
41450 "parameters" : {
41451 "additionalProperties" : 0,
41452 "properties" : {
41453 "force" : {
41454 "default" : 0,
41455 "description" : "Overwrite existing custom certificate.",
41456 "optional" : 1,
41457 "type" : "boolean",
41458 "typetext" : "<boolean>"
41459 },
41460 "node" : {
41461 "description" : "The cluster node name.",
41462 "format" : "pve-node",
41463 "type" : "string",
41464 "typetext" : "<string>"
41465 }
41466 }
41467 },
ac70d7d1
TL
41468 "permissions" : {
41469 "check" : [
41470 "perm",
41471 "/nodes/{node}",
41472 [
41473 "Sys.Modify"
41474 ]
41475 ]
41476 },
a9a8e3d1
DM
41477 "protected" : 1,
41478 "proxyto" : "node",
41479 "returns" : {
41480 "type" : "string"
41481 }
41482 },
41483 "PUT" : {
e9cd3bd4 41484 "allowtoken" : 1,
a9a8e3d1
DM
41485 "description" : "Renew existing certificate from CA.",
41486 "method" : "PUT",
41487 "name" : "renew_certificate",
41488 "parameters" : {
41489 "additionalProperties" : 0,
41490 "properties" : {
41491 "force" : {
41492 "default" : 0,
41493 "description" : "Force renewal even if expiry is more than 30 days away.",
41494 "optional" : 1,
41495 "type" : "boolean",
41496 "typetext" : "<boolean>"
41497 },
41498 "node" : {
41499 "description" : "The cluster node name.",
41500 "format" : "pve-node",
41501 "type" : "string",
41502 "typetext" : "<string>"
41503 }
41504 }
41505 },
ac70d7d1
TL
41506 "permissions" : {
41507 "check" : [
41508 "perm",
41509 "/nodes/{node}",
41510 [
41511 "Sys.Modify"
41512 ]
41513 ]
41514 },
a9a8e3d1
DM
41515 "protected" : 1,
41516 "proxyto" : "node",
41517 "returns" : {
41518 "type" : "string"
41519 }
41520 }
41521 },
41522 "leaf" : 1,
41523 "path" : "/nodes/{node}/certificates/acme/certificate",
41524 "text" : "certificate"
41525 }
41526 ],
41527 "info" : {
41528 "GET" : {
e9cd3bd4 41529 "allowtoken" : 1,
a9a8e3d1
DM
41530 "description" : "ACME index.",
41531 "method" : "GET",
41532 "name" : "index",
41533 "parameters" : {
41534 "additionalProperties" : 0,
41535 "properties" : {
41536 "node" : {
41537 "description" : "The cluster node name.",
41538 "format" : "pve-node",
41539 "type" : "string",
41540 "typetext" : "<string>"
41541 }
41542 }
41543 },
41544 "permissions" : {
41545 "user" : "all"
41546 },
41547 "returns" : {
41548 "items" : {
41549 "properties" : {},
41550 "type" : "object"
41551 },
41552 "links" : [
41553 {
41554 "href" : "{name}",
41555 "rel" : "child"
41556 }
41557 ],
41558 "type" : "array"
41559 }
41560 }
41561 },
41562 "leaf" : 0,
41563 "path" : "/nodes/{node}/certificates/acme",
41564 "text" : "acme"
41565 },
41566 {
41567 "info" : {
41568 "GET" : {
e9cd3bd4 41569 "allowtoken" : 1,
a9a8e3d1
DM
41570 "description" : "Get information about node's certificates.",
41571 "method" : "GET",
41572 "name" : "info",
41573 "parameters" : {
41574 "additionalProperties" : 0,
41575 "properties" : {
41576 "node" : {
41577 "description" : "The cluster node name.",
41578 "format" : "pve-node",
41579 "type" : "string",
41580 "typetext" : "<string>"
41581 }
41582 }
41583 },
41584 "permissions" : {
41585 "user" : "all"
41586 },
41587 "proxyto" : "node",
41588 "returns" : {
41589 "items" : {
41590 "properties" : {
41591 "filename" : {
41592 "optional" : 1,
41593 "type" : "string"
41594 },
41595 "fingerprint" : {
41596 "description" : "Certificate SHA 256 fingerprint.",
41597 "optional" : 1,
41598 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
41599 "type" : "string"
41600 },
41601 "issuer" : {
41602 "description" : "Certificate issuer name.",
41603 "optional" : 1,
41604 "type" : "string"
41605 },
41606 "notafter" : {
41607 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
41608 "optional" : 1,
4d47f125 41609 "renderer" : "timestamp",
a9a8e3d1
DM
41610 "type" : "integer"
41611 },
41612 "notbefore" : {
41613 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
41614 "optional" : 1,
4d47f125 41615 "renderer" : "timestamp",
a9a8e3d1
DM
41616 "type" : "integer"
41617 },
41618 "pem" : {
41619 "description" : "Certificate in PEM format",
41620 "format" : "pem-certificate",
41621 "optional" : 1,
41622 "type" : "string"
41623 },
1c532546
TL
41624 "public-key-bits" : {
41625 "description" : "Certificate's public key size",
41626 "optional" : 1,
41627 "type" : "integer"
41628 },
41629 "public-key-type" : {
41630 "description" : "Certificate's public key algorithm",
41631 "optional" : 1,
41632 "type" : "string"
41633 },
a9a8e3d1
DM
41634 "san" : {
41635 "description" : "List of Certificate's SubjectAlternativeName entries.",
41636 "items" : {
41637 "type" : "string"
41638 },
41639 "optional" : 1,
4d47f125 41640 "renderer" : "yaml",
a9a8e3d1
DM
41641 "type" : "array"
41642 },
41643 "subject" : {
41644 "description" : "Certificate subject name.",
41645 "optional" : 1,
41646 "type" : "string"
41647 }
41648 },
41649 "type" : "object"
41650 },
41651 "type" : "array"
41652 }
41653 }
41654 },
41655 "leaf" : 1,
41656 "path" : "/nodes/{node}/certificates/info",
41657 "text" : "info"
41658 },
41659 {
41660 "info" : {
41661 "DELETE" : {
e9cd3bd4 41662 "allowtoken" : 1,
a9a8e3d1
DM
41663 "description" : "DELETE custom certificate chain and key.",
41664 "method" : "DELETE",
41665 "name" : "remove_custom_cert",
41666 "parameters" : {
41667 "additionalProperties" : 0,
41668 "properties" : {
41669 "node" : {
41670 "description" : "The cluster node name.",
41671 "format" : "pve-node",
41672 "type" : "string",
41673 "typetext" : "<string>"
41674 },
41675 "restart" : {
41676 "default" : 0,
41677 "description" : "Restart pveproxy.",
41678 "optional" : 1,
41679 "type" : "boolean",
41680 "typetext" : "<boolean>"
41681 }
41682 }
41683 },
ac70d7d1
TL
41684 "permissions" : {
41685 "check" : [
41686 "perm",
41687 "/nodes/{node}",
41688 [
41689 "Sys.Modify"
41690 ]
41691 ]
41692 },
a9a8e3d1
DM
41693 "protected" : 1,
41694 "proxyto" : "node",
41695 "returns" : {
41696 "type" : "null"
41697 }
41698 },
41699 "POST" : {
e9cd3bd4 41700 "allowtoken" : 1,
a9a8e3d1
DM
41701 "description" : "Upload or update custom certificate chain and key.",
41702 "method" : "POST",
41703 "name" : "upload_custom_cert",
41704 "parameters" : {
41705 "additionalProperties" : 0,
41706 "properties" : {
41707 "certificates" : {
41708 "description" : "PEM encoded certificate (chain).",
41709 "format" : "pem-certificate-chain",
41710 "type" : "string",
41711 "typetext" : "<string>"
41712 },
41713 "force" : {
41714 "default" : 0,
41715 "description" : "Overwrite existing custom or ACME certificate files.",
41716 "optional" : 1,
41717 "type" : "boolean",
41718 "typetext" : "<boolean>"
41719 },
41720 "key" : {
41721 "description" : "PEM encoded private key.",
41722 "format" : "pem-string",
41723 "optional" : 1,
41724 "type" : "string",
41725 "typetext" : "<string>"
41726 },
41727 "node" : {
41728 "description" : "The cluster node name.",
41729 "format" : "pve-node",
41730 "type" : "string",
41731 "typetext" : "<string>"
41732 },
41733 "restart" : {
41734 "default" : 0,
41735 "description" : "Restart pveproxy.",
41736 "optional" : 1,
41737 "type" : "boolean",
41738 "typetext" : "<boolean>"
41739 }
41740 }
41741 },
ac70d7d1
TL
41742 "permissions" : {
41743 "check" : [
41744 "perm",
41745 "/nodes/{node}",
41746 [
41747 "Sys.Modify"
41748 ]
41749 ]
41750 },
a9a8e3d1
DM
41751 "protected" : 1,
41752 "proxyto" : "node",
41753 "returns" : {
41754 "properties" : {
41755 "filename" : {
41756 "optional" : 1,
41757 "type" : "string"
41758 },
41759 "fingerprint" : {
41760 "description" : "Certificate SHA 256 fingerprint.",
41761 "optional" : 1,
41762 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
41763 "type" : "string"
41764 },
41765 "issuer" : {
41766 "description" : "Certificate issuer name.",
41767 "optional" : 1,
41768 "type" : "string"
41769 },
41770 "notafter" : {
41771 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
41772 "optional" : 1,
4d47f125 41773 "renderer" : "timestamp",
a9a8e3d1
DM
41774 "type" : "integer"
41775 },
41776 "notbefore" : {
41777 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
41778 "optional" : 1,
4d47f125 41779 "renderer" : "timestamp",
a9a8e3d1
DM
41780 "type" : "integer"
41781 },
41782 "pem" : {
41783 "description" : "Certificate in PEM format",
41784 "format" : "pem-certificate",
41785 "optional" : 1,
41786 "type" : "string"
41787 },
1c532546
TL
41788 "public-key-bits" : {
41789 "description" : "Certificate's public key size",
41790 "optional" : 1,
41791 "type" : "integer"
41792 },
41793 "public-key-type" : {
41794 "description" : "Certificate's public key algorithm",
41795 "optional" : 1,
41796 "type" : "string"
41797 },
a9a8e3d1
DM
41798 "san" : {
41799 "description" : "List of Certificate's SubjectAlternativeName entries.",
41800 "items" : {
41801 "type" : "string"
41802 },
41803 "optional" : 1,
4d47f125 41804 "renderer" : "yaml",
a9a8e3d1
DM
41805 "type" : "array"
41806 },
41807 "subject" : {
41808 "description" : "Certificate subject name.",
41809 "optional" : 1,
41810 "type" : "string"
41811 }
41812 },
41813 "type" : "object"
41814 }
41815 }
41816 },
41817 "leaf" : 1,
41818 "path" : "/nodes/{node}/certificates/custom",
41819 "text" : "custom"
41820 }
41821 ],
41822 "info" : {
41823 "GET" : {
e9cd3bd4 41824 "allowtoken" : 1,
a9a8e3d1
DM
41825 "description" : "Node index.",
41826 "method" : "GET",
41827 "name" : "index",
41828 "parameters" : {
41829 "additionalProperties" : 0,
41830 "properties" : {
41831 "node" : {
41832 "description" : "The cluster node name.",
41833 "format" : "pve-node",
41834 "type" : "string",
41835 "typetext" : "<string>"
41836 }
41837 }
41838 },
41839 "permissions" : {
41840 "user" : "all"
41841 },
41842 "returns" : {
41843 "items" : {
41844 "properties" : {},
41845 "type" : "object"
41846 },
41847 "links" : [
41848 {
41849 "href" : "{name}",
41850 "rel" : "child"
41851 }
41852 ],
41853 "type" : "array"
41854 }
41855 }
41856 },
41857 "leaf" : 0,
c5aa7e14
TL
41858 "path" : "/nodes/{node}/certificates",
41859 "text" : "certificates"
41860 },
41861 {
41862 "info" : {
41863 "GET" : {
41864 "allowtoken" : 1,
41865 "description" : "Get node configuration options.",
41866 "method" : "GET",
41867 "name" : "get_config",
41868 "parameters" : {
41869 "additionalProperties" : 0,
41870 "properties" : {
41871 "node" : {
41872 "description" : "The cluster node name.",
41873 "format" : "pve-node",
41874 "type" : "string",
41875 "typetext" : "<string>"
41876 },
41877 "property" : {
41878 "default" : "all",
41879 "description" : "Return only a specific property from the node configuration.",
41880 "enum" : [
41881 "acme",
41882 "acmedomain0",
41883 "acmedomain1",
41884 "acmedomain2",
41885 "acmedomain3",
41886 "acmedomain4",
41887 "acmedomain5",
41888 "description",
41889 "startall-onboot-delay",
41890 "wakeonlan"
41891 ],
41892 "optional" : 1,
41893 "type" : "string"
41894 }
41895 }
41896 },
41897 "permissions" : {
41898 "check" : [
41899 "perm",
41900 "/",
41901 [
41902 "Sys.Audit"
41903 ]
41904 ]
41905 },
41906 "proxyto" : "node",
41907 "returns" : {
41908 "type" : "object"
41909 }
41910 },
41911 "PUT" : {
41912 "allowtoken" : 1,
41913 "description" : "Set node configuration options.",
41914 "method" : "PUT",
41915 "name" : "set_options",
41916 "parameters" : {
41917 "additionalProperties" : 0,
41918 "properties" : {
41919 "acme" : {
41920 "description" : "Node specific ACME settings.",
41921 "format" : {
41922 "account" : {
41923 "default" : "default",
41924 "description" : "ACME account config file name.",
41925 "format" : "pve-configid",
41926 "format_description" : "name",
41927 "optional" : 1,
41928 "type" : "string"
41929 },
41930 "domains" : {
41931 "description" : "List of domains for this node's ACME certificate",
41932 "format" : "pve-acme-domain-list",
41933 "format_description" : "domain[;domain;...]",
41934 "optional" : 1,
41935 "type" : "string"
41936 }
41937 },
41938 "optional" : 1,
41939 "type" : "string",
41940 "typetext" : "[account=<name>] [,domains=<domain[;domain;...]>]"
41941 },
41942 "acmedomain[n]" : {
41943 "description" : "ACME domain and validation plugin",
41944 "format" : {
41945 "alias" : {
41946 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
ac70d7d1 41947 "format" : "pve-acme-alias",
c5aa7e14
TL
41948 "format_description" : "domain",
41949 "optional" : 1,
41950 "type" : "string"
41951 },
41952 "domain" : {
41953 "default_key" : 1,
41954 "description" : "domain for this node's ACME certificate",
41955 "format" : "pve-acme-domain",
41956 "format_description" : "domain",
41957 "type" : "string"
41958 },
41959 "plugin" : {
41960 "default" : "standalone",
41961 "description" : "The ACME plugin ID",
41962 "format" : "pve-configid",
41963 "format_description" : "name of the plugin configuration",
41964 "optional" : 1,
41965 "type" : "string"
41966 }
41967 },
41968 "optional" : 1,
41969 "type" : "string",
41970 "typetext" : "[domain=]<domain> [,alias=<domain>] [,plugin=<name of the plugin configuration>]"
41971 },
41972 "delete" : {
41973 "description" : "A list of settings you want to delete.",
41974 "format" : "pve-configid-list",
41975 "optional" : 1,
41976 "type" : "string",
41977 "typetext" : "<string>"
41978 },
41979 "description" : {
0695fdaf
TL
41980 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
41981 "maxLength" : 65536,
c5aa7e14
TL
41982 "optional" : 1,
41983 "type" : "string",
41984 "typetext" : "<string>"
41985 },
41986 "digest" : {
41987 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
41988 "maxLength" : 40,
41989 "optional" : 1,
41990 "type" : "string",
41991 "typetext" : "<string>"
41992 },
41993 "node" : {
41994 "description" : "The cluster node name.",
41995 "format" : "pve-node",
41996 "type" : "string",
41997 "typetext" : "<string>"
41998 },
41999 "startall-onboot-delay" : {
42000 "default" : 0,
42001 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
42002 "maximum" : 300,
42003 "minimum" : 0,
42004 "optional" : 1,
42005 "type" : "integer",
42006 "typetext" : "<integer> (0 - 300)"
42007 },
42008 "wakeonlan" : {
42009 "description" : "MAC address for wake on LAN",
42010 "format" : "mac-addr",
42011 "optional" : 1,
42012 "type" : "string",
42013 "typetext" : "<string>"
42014 }
42015 }
42016 },
42017 "permissions" : {
42018 "check" : [
42019 "perm",
42020 "/",
42021 [
42022 "Sys.Modify"
42023 ]
42024 ]
42025 },
42026 "protected" : 1,
42027 "proxyto" : "node",
42028 "returns" : {
42029 "type" : "null"
42030 }
42031 }
42032 },
42033 "leaf" : 1,
42034 "path" : "/nodes/{node}/config",
42035 "text" : "config"
42036 },
42037 {
42038 "children" : [
42039 {
42040 "children" : [
42041 {
42042 "children" : [
42043 {
42044 "info" : {
42045 "GET" : {
42046 "allowtoken" : 1,
42047 "description" : "List zone content.",
42048 "method" : "GET",
42049 "name" : "index",
42050 "parameters" : {
42051 "additionalProperties" : 0,
42052 "properties" : {
42053 "node" : {
42054 "description" : "The cluster node name.",
42055 "format" : "pve-node",
42056 "type" : "string",
42057 "typetext" : "<string>"
42058 },
42059 "zone" : {
42060 "description" : "The SDN zone object identifier.",
42061 "format" : "pve-sdn-zone-id",
42062 "type" : "string",
42063 "typetext" : "<string>"
42064 }
42065 }
42066 },
42067 "permissions" : {
42068 "check" : [
42069 "perm",
42070 "/sdn/zones/{zone}",
42071 [
42072 "SDN.Audit"
42073 ],
42074 "any",
42075 1
42076 ]
42077 },
42078 "protected" : 1,
42079 "proxyto" : "node",
42080 "returns" : {
42081 "items" : {
42082 "properties" : {
42083 "status" : {
42084 "description" : "Status.",
42085 "optional" : 1,
42086 "type" : "string"
42087 },
42088 "statusmsg" : {
42089 "description" : "Status details",
42090 "optional" : 1,
42091 "type" : "string"
42092 },
42093 "vnet" : {
42094 "description" : "Vnet identifier.",
42095 "type" : "string"
42096 }
42097 },
42098 "type" : "object"
42099 },
42100 "links" : [
42101 {
42102 "href" : "{vnet}",
42103 "rel" : "child"
42104 }
42105 ],
42106 "type" : "array"
42107 }
42108 }
42109 },
42110 "leaf" : 1,
42111 "path" : "/nodes/{node}/sdn/zones/{zone}/content",
42112 "text" : "content"
42113 }
42114 ],
42115 "info" : {
42116 "GET" : {
42117 "allowtoken" : 1,
42118 "description" : "",
42119 "method" : "GET",
42120 "name" : "diridx",
42121 "parameters" : {
42122 "additionalProperties" : 0,
42123 "properties" : {
42124 "node" : {
42125 "description" : "The cluster node name.",
42126 "format" : "pve-node",
42127 "type" : "string",
42128 "typetext" : "<string>"
42129 },
42130 "zone" : {
42131 "description" : "The SDN zone object identifier.",
42132 "format" : "pve-sdn-zone-id",
42133 "type" : "string",
42134 "typetext" : "<string>"
42135 }
42136 }
42137 },
42138 "permissions" : {
42139 "check" : [
42140 "perm",
42141 "/sdn/zones/{zone}",
42142 [
42143 "SDN.Audit"
42144 ],
42145 "any",
42146 1
42147 ]
42148 },
42149 "returns" : {
42150 "items" : {
42151 "properties" : {
42152 "subdir" : {
42153 "type" : "string"
42154 }
42155 },
42156 "type" : "object"
42157 },
42158 "links" : [
42159 {
42160 "href" : "{subdir}",
42161 "rel" : "child"
42162 }
42163 ],
42164 "type" : "array"
42165 }
42166 }
42167 },
42168 "leaf" : 0,
42169 "path" : "/nodes/{node}/sdn/zones/{zone}",
42170 "text" : "{zone}"
42171 }
42172 ],
42173 "info" : {
42174 "GET" : {
42175 "allowtoken" : 1,
42176 "description" : "Get status for all zones.",
42177 "method" : "GET",
42178 "name" : "index",
42179 "parameters" : {
42180 "additionalProperties" : 0,
42181 "properties" : {
42182 "node" : {
42183 "description" : "The cluster node name.",
42184 "format" : "pve-node",
42185 "type" : "string",
42186 "typetext" : "<string>"
42187 }
42188 }
42189 },
42190 "permissions" : {
42191 "description" : "Only list entries where you have 'SDN.Audit'",
42192 "user" : "all"
42193 },
42194 "protected" : 1,
42195 "proxyto" : "node",
42196 "returns" : {
42197 "items" : {
42198 "properties" : {
42199 "status" : {
42200 "description" : "Status of zone",
ac70d7d1
TL
42201 "enum" : [
42202 "available",
42203 "pending",
42204 "error"
42205 ],
c5aa7e14
TL
42206 "type" : "string"
42207 },
42208 "zone" : {
42209 "description" : "The SDN zone object identifier.",
42210 "format" : "pve-sdn-zone-id",
42211 "type" : "string"
42212 }
42213 },
42214 "type" : "object"
42215 },
42216 "links" : [
42217 {
42218 "href" : "{zone}",
42219 "rel" : "child"
42220 }
42221 ],
42222 "type" : "array"
42223 }
42224 }
42225 },
42226 "leaf" : 0,
42227 "path" : "/nodes/{node}/sdn/zones",
42228 "text" : "zones"
42229 }
42230 ],
42231 "info" : {
42232 "GET" : {
42233 "allowtoken" : 1,
42234 "description" : "SDN index.",
42235 "method" : "GET",
42236 "name" : "sdnindex",
42237 "parameters" : {
42238 "additionalProperties" : 0,
42239 "properties" : {
42240 "node" : {
42241 "description" : "The cluster node name.",
42242 "format" : "pve-node",
42243 "type" : "string",
42244 "typetext" : "<string>"
42245 }
42246 }
42247 },
42248 "permissions" : {
42249 "user" : "all"
42250 },
42251 "returns" : {
42252 "items" : {
42253 "properties" : {},
42254 "type" : "object"
42255 },
42256 "links" : [
42257 {
42258 "href" : "{name}",
42259 "rel" : "child"
42260 }
42261 ],
42262 "type" : "array"
42263 }
42264 }
42265 },
42266 "leaf" : 0,
42267 "path" : "/nodes/{node}/sdn",
42268 "text" : "sdn"
a9a8e3d1 42269 },
56122987 42270 {
56122987
DM
42271 "info" : {
42272 "GET" : {
e9cd3bd4 42273 "allowtoken" : 1,
44660702
DM
42274 "description" : "API version details",
42275 "method" : "GET",
42276 "name" : "version",
56122987 42277 "parameters" : {
44660702 42278 "additionalProperties" : 0,
56122987
DM
42279 "properties" : {
42280 "node" : {
56122987 42281 "description" : "The cluster node name.",
44660702 42282 "format" : "pve-node",
013dc89f
DM
42283 "type" : "string",
42284 "typetext" : "<string>"
56122987 42285 }
44660702 42286 }
56122987 42287 },
56122987 42288 "permissions" : {
7aacca6f 42289 "user" : "all"
56122987 42290 },
56122987 42291 "proxyto" : "node",
56122987 42292 "returns" : {
56122987 42293 "properties" : {
44660702 42294 "release" : {
1e3f8156 42295 "description" : "The current installed Proxmox VE Release",
56122987
DM
42296 "type" : "string"
42297 },
44660702 42298 "repoid" : {
1e3f8156 42299 "description" : "The short git commit hash ID from which this version was build",
7aacca6f
DM
42300 "type" : "string"
42301 },
42302 "version" : {
1e3f8156 42303 "description" : "The current installed pve-manager package version",
7aacca6f
DM
42304 "type" : "string"
42305 }
44660702
DM
42306 },
42307 "type" : "object"
7aacca6f 42308 }
56122987
DM
42309 }
42310 },
56122987 42311 "leaf" : 1,
44660702
DM
42312 "path" : "/nodes/{node}/version",
42313 "text" : "version"
56122987
DM
42314 },
42315 {
56122987
DM
42316 "info" : {
42317 "GET" : {
e9cd3bd4 42318 "allowtoken" : 1,
7aacca6f 42319 "description" : "Read node status",
44660702 42320 "method" : "GET",
7aacca6f 42321 "name" : "status",
56122987 42322 "parameters" : {
44660702 42323 "additionalProperties" : 0,
56122987
DM
42324 "properties" : {
42325 "node" : {
7aacca6f 42326 "description" : "The cluster node name.",
44660702 42327 "format" : "pve-node",
013dc89f
DM
42328 "type" : "string",
42329 "typetext" : "<string>"
56122987 42330 }
44660702 42331 }
56122987 42332 },
56122987
DM
42333 "permissions" : {
42334 "check" : [
42335 "perm",
42336 "/nodes/{node}",
42337 [
42338 "Sys.Audit"
42339 ]
42340 ]
44660702
DM
42341 },
42342 "proxyto" : "node",
42343 "returns" : {
44660702 42344 "type" : "object"
7aacca6f
DM
42345 }
42346 },
42347 "POST" : {
e9cd3bd4 42348 "allowtoken" : 1,
44660702
DM
42349 "description" : "Reboot or shutdown a node.",
42350 "method" : "POST",
7aacca6f 42351 "name" : "node_cmd",
56122987 42352 "parameters" : {
44660702 42353 "additionalProperties" : 0,
56122987 42354 "properties" : {
7aacca6f
DM
42355 "command" : {
42356 "description" : "Specify the command.",
56122987 42357 "enum" : [
7aacca6f
DM
42358 "reboot",
42359 "shutdown"
56122987
DM
42360 ],
42361 "type" : "string"
44660702
DM
42362 },
42363 "node" : {
42364 "description" : "The cluster node name.",
42365 "format" : "pve-node",
013dc89f
DM
42366 "type" : "string",
42367 "typetext" : "<string>"
56122987 42368 }
44660702 42369 }
7aacca6f 42370 },
7aacca6f
DM
42371 "permissions" : {
42372 "check" : [
42373 "perm",
42374 "/nodes/{node}",
42375 [
42376 "Sys.PowerMgmt"
42377 ]
42378 ]
42379 },
44660702 42380 "protected" : 1,
7aacca6f 42381 "proxyto" : "node",
7aacca6f
DM
42382 "returns" : {
42383 "type" : "null"
56122987
DM
42384 }
42385 }
42386 },
7aacca6f 42387 "leaf" : 1,
44660702
DM
42388 "path" : "/nodes/{node}/status",
42389 "text" : "status"
56122987
DM
42390 },
42391 {
56122987
DM
42392 "info" : {
42393 "GET" : {
e9cd3bd4 42394 "allowtoken" : 1,
44660702
DM
42395 "description" : "Read tap/vm network device interface counters",
42396 "method" : "GET",
42397 "name" : "netstat",
42398 "parameters" : {
42399 "additionalProperties" : 0,
42400 "properties" : {
42401 "node" : {
42402 "description" : "The cluster node name.",
42403 "format" : "pve-node",
013dc89f
DM
42404 "type" : "string",
42405 "typetext" : "<string>"
44660702 42406 }
56122987
DM
42407 }
42408 },
42409 "permissions" : {
42410 "check" : [
42411 "perm",
42412 "/nodes/{node}",
42413 [
7aacca6f 42414 "Sys.Audit"
56122987
DM
42415 ]
42416 ]
42417 },
7aacca6f 42418 "proxyto" : "node",
44660702
DM
42419 "returns" : {
42420 "items" : {
42421 "properties" : {},
42422 "type" : "object"
42423 },
42424 "type" : "array"
42425 }
7aacca6f
DM
42426 }
42427 },
44660702
DM
42428 "leaf" : 1,
42429 "path" : "/nodes/{node}/netstat",
7aacca6f
DM
42430 "text" : "netstat"
42431 },
42432 {
42433 "info" : {
42434 "POST" : {
e9cd3bd4 42435 "allowtoken" : 1,
7aacca6f 42436 "description" : "Execute multiple commands in order.",
7aacca6f 42437 "method" : "POST",
7aacca6f 42438 "name" : "execute",
56122987
DM
42439 "parameters" : {
42440 "additionalProperties" : 0,
42441 "properties" : {
7aacca6f
DM
42442 "commands" : {
42443 "description" : "JSON encoded array of commands.",
013dc89f
DM
42444 "type" : "string",
42445 "typetext" : "<string>"
56122987
DM
42446 },
42447 "node" : {
44660702 42448 "description" : "The cluster node name.",
56122987 42449 "format" : "pve-node",
013dc89f
DM
42450 "type" : "string",
42451 "typetext" : "<string>"
56122987
DM
42452 }
42453 }
44660702
DM
42454 },
42455 "permissions" : {
42456 "check" : [
42457 "perm",
42458 "/nodes/{node}",
42459 [
42460 "Sys.Audit"
42461 ]
42462 ]
42463 },
42464 "protected" : 1,
42465 "proxyto" : "node",
42466 "returns" : {
44660702 42467 "type" : "array"
56122987
DM
42468 }
42469 }
42470 },
56122987 42471 "leaf" : 1,
44660702
DM
42472 "path" : "/nodes/{node}/execute",
42473 "text" : "execute"
56122987 42474 },
5f26e15b
TL
42475 {
42476 "info" : {
42477 "POST" : {
e9cd3bd4 42478 "allowtoken" : 1,
5f26e15b
TL
42479 "description" : "Try to wake a node via 'wake on LAN' network packet.",
42480 "method" : "POST",
42481 "name" : "wakeonlan",
42482 "parameters" : {
42483 "additionalProperties" : 0,
42484 "properties" : {
42485 "node" : {
42486 "description" : "target node for wake on LAN packet",
42487 "format" : "pve-node",
42488 "type" : "string",
42489 "typetext" : "<string>"
42490 }
42491 }
42492 },
42493 "permissions" : {
42494 "check" : [
42495 "perm",
42496 "/nodes/{node}",
42497 [
42498 "Sys.PowerMgmt"
42499 ]
42500 ]
42501 },
42502 "protected" : 1,
42503 "returns" : {
42504 "description" : "MAC address used to assemble the WoL magic packet.",
42505 "format" : "mac-addr",
42506 "type" : "string"
42507 }
42508 }
42509 },
42510 "leaf" : 1,
42511 "path" : "/nodes/{node}/wakeonlan",
42512 "text" : "wakeonlan"
42513 },
56122987
DM
42514 {
42515 "info" : {
7aacca6f 42516 "GET" : {
e9cd3bd4 42517 "allowtoken" : 1,
44660702
DM
42518 "description" : "Read node RRD statistics (returns PNG)",
42519 "method" : "GET",
7aacca6f 42520 "name" : "rrd",
56122987 42521 "parameters" : {
7aacca6f 42522 "additionalProperties" : 0,
56122987 42523 "properties" : {
44660702
DM
42524 "cf" : {
42525 "description" : "The RRD consolidation function",
42526 "enum" : [
42527 "AVERAGE",
42528 "MAX"
42529 ],
42530 "optional" : 1,
42531 "type" : "string"
42532 },
7aacca6f 42533 "ds" : {
7aacca6f 42534 "description" : "The list of datasources you want to display.",
44660702 42535 "format" : "pve-configid-list",
013dc89f
DM
42536 "type" : "string",
42537 "typetext" : "<string>"
44660702
DM
42538 },
42539 "node" : {
42540 "description" : "The cluster node name.",
42541 "format" : "pve-node",
013dc89f
DM
42542 "type" : "string",
42543 "typetext" : "<string>"
7aacca6f
DM
42544 },
42545 "timeframe" : {
42546 "description" : "Specify the time frame you are interested in.",
42547 "enum" : [
42548 "hour",
42549 "day",
42550 "week",
42551 "month",
42552 "year"
42553 ],
42554 "type" : "string"
56122987 42555 }
7aacca6f 42556 }
56122987 42557 },
56122987 42558 "permissions" : {
56122987
DM
42559 "check" : [
42560 "perm",
42561 "/nodes/{node}",
42562 [
7aacca6f 42563 "Sys.Audit"
56122987
DM
42564 ]
42565 ]
42566 },
7aacca6f 42567 "protected" : 1,
56122987 42568 "returns" : {
56122987 42569 "properties" : {
7aacca6f 42570 "filename" : {
56122987
DM
42571 "type" : "string"
42572 }
44660702
DM
42573 },
42574 "type" : "object"
42575 }
56122987
DM
42576 }
42577 },
44660702 42578 "leaf" : 1,
7aacca6f 42579 "path" : "/nodes/{node}/rrd",
44660702 42580 "text" : "rrd"
56122987
DM
42581 },
42582 {
42583 "info" : {
7aacca6f 42584 "GET" : {
e9cd3bd4 42585 "allowtoken" : 1,
44660702
DM
42586 "description" : "Read node RRD statistics",
42587 "method" : "GET",
7aacca6f 42588 "name" : "rrddata",
56122987 42589 "parameters" : {
44660702 42590 "additionalProperties" : 0,
56122987 42591 "properties" : {
7aacca6f 42592 "cf" : {
7aacca6f
DM
42593 "description" : "The RRD consolidation function",
42594 "enum" : [
42595 "AVERAGE",
42596 "MAX"
44660702
DM
42597 ],
42598 "optional" : 1,
42599 "type" : "string"
56122987
DM
42600 },
42601 "node" : {
44660702 42602 "description" : "The cluster node name.",
56122987 42603 "format" : "pve-node",
013dc89f
DM
42604 "type" : "string",
42605 "typetext" : "<string>"
56122987 42606 },
7aacca6f 42607 "timeframe" : {
7aacca6f
DM
42608 "description" : "Specify the time frame you are interested in.",
42609 "enum" : [
42610 "hour",
42611 "day",
42612 "week",
42613 "month",
42614 "year"
44660702
DM
42615 ],
42616 "type" : "string"
56122987 42617 }
56122987
DM
42618 }
42619 },
56122987
DM
42620 "permissions" : {
42621 "check" : [
42622 "perm",
42623 "/nodes/{node}",
42624 [
44660702 42625 "Sys.Audit"
56122987
DM
42626 ]
42627 ]
7aacca6f 42628 },
44660702 42629 "protected" : 1,
56122987 42630 "returns" : {
7aacca6f 42631 "items" : {
44660702 42632 "properties" : {},
7aacca6f
DM
42633 "type" : "object"
42634 },
42635 "type" : "array"
44660702
DM
42636 }
42637 }
42638 },
42639 "leaf" : 1,
42640 "path" : "/nodes/{node}/rrddata",
42641 "text" : "rrddata"
42642 },
42643 {
42644 "info" : {
42645 "GET" : {
e9cd3bd4 42646 "allowtoken" : 1,
44660702
DM
42647 "description" : "Read system log",
42648 "method" : "GET",
42649 "name" : "syslog",
56122987 42650 "parameters" : {
44660702 42651 "additionalProperties" : 0,
56122987 42652 "properties" : {
44660702
DM
42653 "limit" : {
42654 "minimum" : 0,
7aacca6f 42655 "optional" : 1,
4bd7df8b 42656 "type" : "integer",
013dc89f 42657 "typetext" : "<integer> (0 - N)"
7aacca6f 42658 },
56122987 42659 "node" : {
7aacca6f 42660 "description" : "The cluster node name.",
44660702 42661 "format" : "pve-node",
013dc89f
DM
42662 "type" : "string",
42663 "typetext" : "<string>"
56122987 42664 },
35a75dd3
DM
42665 "service" : {
42666 "description" : "Service ID",
42667 "maxLength" : 128,
42668 "optional" : 1,
42669 "type" : "string",
42670 "typetext" : "<string>"
42671 },
44660702
DM
42672 "since" : {
42673 "description" : "Display all log since this date-time string.",
42674 "optional" : 1,
42675 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
42676 "type" : "string"
42677 },
42678 "start" : {
7aacca6f
DM
42679 "minimum" : 0,
42680 "optional" : 1,
4bd7df8b 42681 "type" : "integer",
013dc89f 42682 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
42683 },
42684 "until" : {
42685 "description" : "Display all log until this date-time string.",
7aacca6f 42686 "optional" : 1,
44660702 42687 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
56122987
DM
42688 "type" : "string"
42689 }
44660702 42690 }
56122987 42691 },
44660702
DM
42692 "permissions" : {
42693 "check" : [
42694 "perm",
42695 "/nodes/{node}",
42696 [
42697 "Sys.Syslog"
42698 ]
42699 ]
42700 },
42701 "protected" : 1,
42702 "proxyto" : "node",
42703 "returns" : {
42704 "items" : {
42705 "properties" : {
42706 "n" : {
42707 "description" : "Line number",
42708 "type" : "integer"
42709 },
42710 "t" : {
42711 "description" : "Line text",
42712 "type" : "string"
42713 }
42714 },
42715 "type" : "object"
42716 },
42717 "type" : "array"
42718 }
56122987
DM
42719 }
42720 },
44660702
DM
42721 "leaf" : 1,
42722 "path" : "/nodes/{node}/syslog",
7aacca6f 42723 "text" : "syslog"
56122987 42724 },
bb4c8cf8
TL
42725 {
42726 "info" : {
42727 "GET" : {
e9cd3bd4 42728 "allowtoken" : 1,
bb4c8cf8
TL
42729 "description" : "Read Journal",
42730 "method" : "GET",
42731 "name" : "journal",
42732 "parameters" : {
42733 "additionalProperties" : 0,
42734 "properties" : {
42735 "endcursor" : {
42736 "description" : "End before the given Cursor. Conflicts with 'until'",
42737 "optional" : 1,
42738 "type" : "string",
42739 "typetext" : "<string>"
42740 },
42741 "lastentries" : {
42742 "description" : "Limit to the last X lines. Conflicts with a range.",
42743 "minimum" : 0,
42744 "optional" : 1,
42745 "type" : "integer",
42746 "typetext" : "<integer> (0 - N)"
42747 },
42748 "node" : {
42749 "description" : "The cluster node name.",
42750 "format" : "pve-node",
42751 "type" : "string",
42752 "typetext" : "<string>"
42753 },
42754 "since" : {
42755 "description" : "Display all log since this UNIX epoch. Conflicts with 'startcursor'.",
42756 "minimum" : 0,
42757 "optional" : 1,
42758 "type" : "integer",
42759 "typetext" : "<integer> (0 - N)"
42760 },
42761 "startcursor" : {
42762 "description" : "Start after the given Cursor. Conflicts with 'since'",
42763 "optional" : 1,
42764 "type" : "string",
42765 "typetext" : "<string>"
42766 },
42767 "until" : {
42768 "description" : "Display all log until this UNIX epoch. Conflicts with 'endcursor'.",
42769 "minimum" : 0,
42770 "optional" : 1,
42771 "type" : "integer",
42772 "typetext" : "<integer> (0 - N)"
42773 }
42774 }
42775 },
42776 "permissions" : {
42777 "check" : [
42778 "perm",
42779 "/nodes/{node}",
42780 [
42781 "Sys.Syslog"
42782 ]
42783 ]
42784 },
42785 "protected" : 1,
42786 "proxyto" : "node",
42787 "returns" : {
42788 "items" : {
42789 "type" : "string"
42790 },
42791 "type" : "array"
42792 }
42793 }
42794 },
42795 "leaf" : 1,
42796 "path" : "/nodes/{node}/journal",
42797 "text" : "journal"
42798 },
56122987 42799 {
56122987
DM
42800 "info" : {
42801 "POST" : {
e9cd3bd4 42802 "allowtoken" : 1,
44660702
DM
42803 "description" : "Creates a VNC Shell proxy.",
42804 "method" : "POST",
42805 "name" : "vncshell",
42806 "parameters" : {
42807 "additionalProperties" : 0,
56122987 42808 "properties" : {
95895385
TL
42809 "cmd" : {
42810 "default" : "login",
42811 "description" : "Run specific command or default to login.",
42812 "enum" : [
34f3e481 42813 "ceph_install",
5370fa8c
TL
42814 "upgrade",
42815 "login"
95895385
TL
42816 ],
42817 "optional" : 1,
42818 "type" : "string"
42819 },
4772952b
TL
42820 "cmd-opts" : {
42821 "default" : "",
42822 "description" : "Add parameters to a command. Encoded as null terminated strings.",
42823 "optional" : 1,
42824 "requires" : "cmd",
42825 "type" : "string",
42826 "typetext" : "<string>"
42827 },
5d9c884c
DM
42828 "height" : {
42829 "description" : "sets the height of the console in pixels.",
42830 "maximum" : 2160,
42831 "minimum" : 16,
42832 "optional" : 1,
42833 "type" : "integer",
42834 "typetext" : "<integer> (16 - 2160)"
42835 },
44660702
DM
42836 "node" : {
42837 "description" : "The cluster node name.",
42838 "format" : "pve-node",
013dc89f
DM
42839 "type" : "string",
42840 "typetext" : "<string>"
7aacca6f 42841 },
44660702
DM
42842 "websocket" : {
42843 "description" : "use websocket instead of standard vnc.",
42844 "optional" : 1,
013dc89f
DM
42845 "type" : "boolean",
42846 "typetext" : "<boolean>"
5d9c884c
DM
42847 },
42848 "width" : {
42849 "description" : "sets the width of the console in pixels.",
42850 "maximum" : 4096,
42851 "minimum" : 16,
42852 "optional" : 1,
42853 "type" : "integer",
42854 "typetext" : "<integer> (16 - 4096)"
56122987 42855 }
44660702 42856 }
56122987 42857 },
56122987
DM
42858 "permissions" : {
42859 "check" : [
42860 "perm",
7aacca6f 42861 "/nodes/{node}",
56122987 42862 [
7aacca6f 42863 "Sys.Console"
56122987 42864 ]
44660702
DM
42865 ],
42866 "description" : "Restricted to users on realm 'pam'"
56122987 42867 },
44660702
DM
42868 "protected" : 1,
42869 "returns" : {
42870 "additionalProperties" : 0,
56122987 42871 "properties" : {
44660702
DM
42872 "cert" : {
42873 "type" : "string"
7aacca6f 42874 },
44660702
DM
42875 "port" : {
42876 "type" : "integer"
7aacca6f 42877 },
44660702
DM
42878 "ticket" : {
42879 "type" : "string"
42880 },
42881 "upid" : {
42882 "type" : "string"
42883 },
42884 "user" : {
42885 "type" : "string"
56122987 42886 }
44660702
DM
42887 }
42888 }
56122987
DM
42889 }
42890 },
7aacca6f 42891 "leaf" : 1,
44660702
DM
42892 "path" : "/nodes/{node}/vncshell",
42893 "text" : "vncshell"
56122987 42894 },
35a75dd3
DM
42895 {
42896 "info" : {
42897 "POST" : {
e9cd3bd4 42898 "allowtoken" : 1,
35a75dd3
DM
42899 "description" : "Creates a VNC Shell proxy.",
42900 "method" : "POST",
42901 "name" : "termproxy",
42902 "parameters" : {
42903 "additionalProperties" : 0,
42904 "properties" : {
95895385
TL
42905 "cmd" : {
42906 "default" : "login",
42907 "description" : "Run specific command or default to login.",
42908 "enum" : [
34f3e481 42909 "ceph_install",
5370fa8c
TL
42910 "upgrade",
42911 "login"
95895385
TL
42912 ],
42913 "optional" : 1,
42914 "type" : "string"
42915 },
4772952b
TL
42916 "cmd-opts" : {
42917 "default" : "",
42918 "description" : "Add parameters to a command. Encoded as null terminated strings.",
42919 "optional" : 1,
42920 "requires" : "cmd",
42921 "type" : "string",
42922 "typetext" : "<string>"
42923 },
35a75dd3
DM
42924 "node" : {
42925 "description" : "The cluster node name.",
42926 "format" : "pve-node",
42927 "type" : "string",
42928 "typetext" : "<string>"
35a75dd3
DM
42929 }
42930 }
42931 },
42932 "permissions" : {
42933 "check" : [
42934 "perm",
42935 "/nodes/{node}",
42936 [
42937 "Sys.Console"
42938 ]
42939 ],
42940 "description" : "Restricted to users on realm 'pam'"
42941 },
42942 "protected" : 1,
42943 "returns" : {
42944 "additionalProperties" : 0,
42945 "properties" : {
42946 "port" : {
42947 "type" : "integer"
42948 },
42949 "ticket" : {
42950 "type" : "string"
42951 },
42952 "upid" : {
42953 "type" : "string"
42954 },
42955 "user" : {
42956 "type" : "string"
42957 }
42958 }
42959 }
42960 }
42961 },
42962 "leaf" : 1,
42963 "path" : "/nodes/{node}/termproxy",
42964 "text" : "termproxy"
42965 },
56122987
DM
42966 {
42967 "info" : {
42968 "GET" : {
e9cd3bd4 42969 "allowtoken" : 1,
0695fdaf 42970 "description" : "Opens a websocket for VNC traffic.",
44660702
DM
42971 "method" : "GET",
42972 "name" : "vncwebsocket",
56122987 42973 "parameters" : {
44660702 42974 "additionalProperties" : 0,
56122987
DM
42975 "properties" : {
42976 "node" : {
42977 "description" : "The cluster node name.",
44660702 42978 "format" : "pve-node",
013dc89f
DM
42979 "type" : "string",
42980 "typetext" : "<string>"
7aacca6f
DM
42981 },
42982 "port" : {
7aacca6f
DM
42983 "description" : "Port number returned by previous vncproxy call.",
42984 "maximum" : 5999,
44660702 42985 "minimum" : 5900,
4bd7df8b 42986 "type" : "integer",
013dc89f 42987 "typetext" : "<integer> (5900 - 5999)"
44660702
DM
42988 },
42989 "vncticket" : {
42990 "description" : "Ticket from previous call to vncproxy.",
42991 "maxLength" : 512,
013dc89f
DM
42992 "type" : "string",
42993 "typetext" : "<string>"
56122987 42994 }
44660702 42995 }
56122987 42996 },
56122987
DM
42997 "permissions" : {
42998 "check" : [
42999 "perm",
43000 "/nodes/{node}",
43001 [
7aacca6f 43002 "Sys.Console"
56122987 43003 ]
44660702
DM
43004 ],
43005 "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket)."
43006 },
43007 "returns" : {
43008 "properties" : {
43009 "port" : {
43010 "type" : "string"
43011 }
43012 },
43013 "type" : "object"
7aacca6f 43014 }
56122987
DM
43015 }
43016 },
44660702 43017 "leaf" : 1,
7aacca6f 43018 "path" : "/nodes/{node}/vncwebsocket",
44660702 43019 "text" : "vncwebsocket"
56122987
DM
43020 },
43021 {
43022 "info" : {
43023 "POST" : {
e9cd3bd4 43024 "allowtoken" : 1,
44660702 43025 "description" : "Creates a SPICE shell.",
7aacca6f 43026 "method" : "POST",
44660702 43027 "name" : "spiceshell",
56122987 43028 "parameters" : {
7aacca6f 43029 "additionalProperties" : 0,
56122987 43030 "properties" : {
95895385
TL
43031 "cmd" : {
43032 "default" : "login",
43033 "description" : "Run specific command or default to login.",
43034 "enum" : [
34f3e481 43035 "ceph_install",
5370fa8c
TL
43036 "upgrade",
43037 "login"
95895385
TL
43038 ],
43039 "optional" : 1,
43040 "type" : "string"
43041 },
4772952b
TL
43042 "cmd-opts" : {
43043 "default" : "",
43044 "description" : "Add parameters to a command. Encoded as null terminated strings.",
43045 "optional" : 1,
43046 "requires" : "cmd",
43047 "type" : "string",
43048 "typetext" : "<string>"
43049 },
7aacca6f 43050 "node" : {
44660702 43051 "description" : "The cluster node name.",
56122987 43052 "format" : "pve-node",
013dc89f
DM
43053 "type" : "string",
43054 "typetext" : "<string>"
7aacca6f 43055 },
44660702 43056 "proxy" : {
4d47f125 43057 "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
43058 "format" : "address",
43059 "optional" : 1,
013dc89f
DM
43060 "type" : "string",
43061 "typetext" : "<string>"
56122987 43062 }
7aacca6f 43063 }
56122987 43064 },
56122987
DM
43065 "permissions" : {
43066 "check" : [
43067 "perm",
7aacca6f 43068 "/nodes/{node}",
56122987 43069 [
7aacca6f 43070 "Sys.Console"
56122987 43071 ]
7aacca6f
DM
43072 ],
43073 "description" : "Restricted to users on realm 'pam'"
44660702
DM
43074 },
43075 "protected" : 1,
43076 "proxyto" : "node",
43077 "returns" : {
43078 "additionalProperties" : 1,
43079 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
43080 "properties" : {
43081 "host" : {
43082 "type" : "string"
43083 },
43084 "password" : {
43085 "type" : "string"
43086 },
43087 "proxy" : {
43088 "type" : "string"
43089 },
43090 "tls-port" : {
43091 "type" : "integer"
43092 },
43093 "type" : {
43094 "type" : "string"
43095 }
43096 }
7aacca6f 43097 }
56122987
DM
43098 }
43099 },
56122987 43100 "leaf" : 1,
44660702
DM
43101 "path" : "/nodes/{node}/spiceshell",
43102 "text" : "spiceshell"
56122987
DM
43103 },
43104 {
56122987 43105 "info" : {
7aacca6f 43106 "GET" : {
e9cd3bd4 43107 "allowtoken" : 1,
44660702 43108 "description" : "Read DNS settings.",
7aacca6f 43109 "method" : "GET",
44660702
DM
43110 "name" : "dns",
43111 "parameters" : {
7aacca6f
DM
43112 "additionalProperties" : 0,
43113 "properties" : {
44660702
DM
43114 "node" : {
43115 "description" : "The cluster node name.",
43116 "format" : "pve-node",
013dc89f
DM
43117 "type" : "string",
43118 "typetext" : "<string>"
7aacca6f
DM
43119 }
43120 }
43121 },
7aacca6f
DM
43122 "permissions" : {
43123 "check" : [
43124 "perm",
43125 "/nodes/{node}",
43126 [
43127 "Sys.Audit"
43128 ]
43129 ]
43130 },
44660702
DM
43131 "proxyto" : "node",
43132 "returns" : {
56122987
DM
43133 "additionalProperties" : 0,
43134 "properties" : {
44660702
DM
43135 "dns1" : {
43136 "description" : "First name server IP address.",
43137 "optional" : 1,
43138 "type" : "string"
43139 },
43140 "dns2" : {
43141 "description" : "Second name server IP address.",
43142 "optional" : 1,
43143 "type" : "string"
43144 },
43145 "dns3" : {
43146 "description" : "Third name server IP address.",
43147 "optional" : 1,
43148 "type" : "string"
43149 },
43150 "search" : {
43151 "description" : "Search domain for host-name lookup.",
43152 "optional" : 1,
43153 "type" : "string"
7aacca6f 43154 }
44660702
DM
43155 },
43156 "type" : "object"
43157 }
7aacca6f
DM
43158 },
43159 "PUT" : {
e9cd3bd4 43160 "allowtoken" : 1,
44660702
DM
43161 "description" : "Write DNS settings.",
43162 "method" : "PUT",
7aacca6f
DM
43163 "name" : "update_dns",
43164 "parameters" : {
43165 "additionalProperties" : 0,
43166 "properties" : {
44660702
DM
43167 "dns1" : {
43168 "description" : "First name server IP address.",
43169 "format" : "ip",
43170 "optional" : 1,
013dc89f
DM
43171 "type" : "string",
43172 "typetext" : "<string>"
7aacca6f 43173 },
44660702
DM
43174 "dns2" : {
43175 "description" : "Second name server IP address.",
43176 "format" : "ip",
7aacca6f 43177 "optional" : 1,
013dc89f
DM
43178 "type" : "string",
43179 "typetext" : "<string>"
7aacca6f 43180 },
44660702
DM
43181 "dns3" : {
43182 "description" : "Third name server IP address.",
43183 "format" : "ip",
7aacca6f 43184 "optional" : 1,
013dc89f
DM
43185 "type" : "string",
43186 "typetext" : "<string>"
7aacca6f
DM
43187 },
43188 "node" : {
44660702 43189 "description" : "The cluster node name.",
56122987 43190 "format" : "pve-node",
013dc89f
DM
43191 "type" : "string",
43192 "typetext" : "<string>"
7aacca6f 43193 },
44660702
DM
43194 "search" : {
43195 "description" : "Search domain for host-name lookup.",
013dc89f
DM
43196 "type" : "string",
43197 "typetext" : "<string>"
56122987
DM
43198 }
43199 }
43200 },
43201 "permissions" : {
43202 "check" : [
43203 "perm",
7aacca6f 43204 "/nodes/{node}",
56122987 43205 [
7aacca6f 43206 "Sys.Modify"
56122987
DM
43207 ]
43208 ]
43209 },
44660702 43210 "protected" : 1,
7aacca6f 43211 "proxyto" : "node",
56122987 43212 "returns" : {
7aacca6f
DM
43213 "type" : "null"
43214 }
56122987 43215 }
44660702
DM
43216 },
43217 "leaf" : 1,
43218 "path" : "/nodes/{node}/dns",
43219 "text" : "dns"
56122987
DM
43220 },
43221 {
43222 "info" : {
7aacca6f 43223 "GET" : {
e9cd3bd4 43224 "allowtoken" : 1,
7aacca6f 43225 "description" : "Read server time and time zone settings.",
44660702
DM
43226 "method" : "GET",
43227 "name" : "time",
56122987 43228 "parameters" : {
44660702 43229 "additionalProperties" : 0,
56122987
DM
43230 "properties" : {
43231 "node" : {
44660702 43232 "description" : "The cluster node name.",
56122987 43233 "format" : "pve-node",
013dc89f
DM
43234 "type" : "string",
43235 "typetext" : "<string>"
56122987 43236 }
44660702 43237 }
56122987
DM
43238 },
43239 "permissions" : {
43240 "check" : [
43241 "perm",
7aacca6f 43242 "/nodes/{node}",
56122987 43243 [
7aacca6f 43244 "Sys.Audit"
56122987
DM
43245 ]
43246 ]
44660702
DM
43247 },
43248 "proxyto" : "node",
43249 "returns" : {
43250 "additionalProperties" : 0,
43251 "properties" : {
43252 "localtime" : {
43253 "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
43254 "minimum" : 1297163644,
4d47f125 43255 "renderer" : "timestamp_gmt",
44660702
DM
43256 "type" : "integer"
43257 },
43258 "time" : {
43259 "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
43260 "minimum" : 1297163644,
4d47f125 43261 "renderer" : "timestamp",
44660702
DM
43262 "type" : "integer"
43263 },
43264 "timezone" : {
43265 "description" : "Time zone",
43266 "type" : "string"
43267 }
43268 },
43269 "type" : "object"
7aacca6f
DM
43270 }
43271 },
43272 "PUT" : {
e9cd3bd4 43273 "allowtoken" : 1,
7aacca6f 43274 "description" : "Set time zone.",
44660702
DM
43275 "method" : "PUT",
43276 "name" : "set_timezone",
43277 "parameters" : {
43278 "additionalProperties" : 0,
43279 "properties" : {
43280 "node" : {
43281 "description" : "The cluster node name.",
43282 "format" : "pve-node",
013dc89f
DM
43283 "type" : "string",
43284 "typetext" : "<string>"
44660702
DM
43285 },
43286 "timezone" : {
43287 "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
013dc89f
DM
43288 "type" : "string",
43289 "typetext" : "<string>"
44660702
DM
43290 }
43291 }
43292 },
7aacca6f
DM
43293 "permissions" : {
43294 "check" : [
43295 "perm",
43296 "/nodes/{node}",
43297 [
43298 "Sys.Modify"
43299 ]
43300 ]
56122987 43301 },
7aacca6f 43302 "protected" : 1,
44660702
DM
43303 "proxyto" : "node",
43304 "returns" : {
43305 "type" : "null"
43306 }
7aacca6f
DM
43307 }
43308 },
7aacca6f 43309 "leaf" : 1,
44660702
DM
43310 "path" : "/nodes/{node}/time",
43311 "text" : "time"
7aacca6f
DM
43312 },
43313 {
43314 "info" : {
44660702 43315 "GET" : {
e9cd3bd4 43316 "allowtoken" : 1,
44660702
DM
43317 "description" : "Get list of appliances.",
43318 "method" : "GET",
43319 "name" : "aplinfo",
7aacca6f
DM
43320 "parameters" : {
43321 "additionalProperties" : 0,
43322 "properties" : {
7aacca6f 43323 "node" : {
44660702 43324 "description" : "The cluster node name.",
7aacca6f 43325 "format" : "pve-node",
013dc89f
DM
43326 "type" : "string",
43327 "typetext" : "<string>"
7aacca6f
DM
43328 }
43329 }
56122987 43330 },
7aacca6f 43331 "permissions" : {
44660702 43332 "user" : "all"
56122987 43333 },
44660702 43334 "proxyto" : "node",
7aacca6f
DM
43335 "returns" : {
43336 "items" : {
44660702
DM
43337 "properties" : {},
43338 "type" : "object"
7aacca6f
DM
43339 },
43340 "type" : "array"
44660702
DM
43341 }
43342 },
43343 "POST" : {
e9cd3bd4 43344 "allowtoken" : 1,
44660702
DM
43345 "description" : "Download appliance templates.",
43346 "method" : "POST",
43347 "name" : "apl_download",
7aacca6f
DM
43348 "parameters" : {
43349 "additionalProperties" : 0,
43350 "properties" : {
43351 "node" : {
7aacca6f 43352 "description" : "The cluster node name.",
44660702 43353 "format" : "pve-node",
013dc89f
DM
43354 "type" : "string",
43355 "typetext" : "<string>"
44660702
DM
43356 },
43357 "storage" : {
4bd7df8b 43358 "description" : "The storage where the template will be stored",
44660702 43359 "format" : "pve-storage-id",
013dc89f
DM
43360 "type" : "string",
43361 "typetext" : "<string>"
44660702
DM
43362 },
43363 "template" : {
1e3f8156 43364 "description" : "The template which will downloaded",
44660702 43365 "maxLength" : 255,
013dc89f
DM
43366 "type" : "string",
43367 "typetext" : "<string>"
7aacca6f
DM
43368 }
43369 }
56122987 43370 },
7aacca6f 43371 "permissions" : {
44660702
DM
43372 "check" : [
43373 "perm",
43374 "/storage/{storage}",
43375 [
43376 "Datastore.AllocateTemplate"
43377 ]
43378 ]
43379 },
43380 "protected" : 1,
43381 "proxyto" : "node",
43382 "returns" : {
43383 "type" : "string"
7aacca6f
DM
43384 }
43385 }
43386 },
7aacca6f 43387 "leaf" : 1,
44660702
DM
43388 "path" : "/nodes/{node}/aplinfo",
43389 "text" : "aplinfo"
7aacca6f 43390 },
5370fa8c
TL
43391 {
43392 "info" : {
43393 "GET" : {
43394 "allowtoken" : 1,
43395 "description" : "Query metadata of an URL: file size, file name and mime type.",
43396 "method" : "GET",
43397 "name" : "query_url_metadata",
43398 "parameters" : {
43399 "additionalProperties" : 0,
43400 "properties" : {
43401 "node" : {
43402 "description" : "The cluster node name.",
43403 "format" : "pve-node",
43404 "type" : "string",
43405 "typetext" : "<string>"
43406 },
43407 "url" : {
43408 "description" : "The URL to query the metadata from.",
43409 "pattern" : "https?://.*",
43410 "type" : "string"
43411 },
43412 "verify-certificates" : {
43413 "default" : 1,
43414 "description" : "If false, no SSL/TLS certificates will be verified.",
43415 "optional" : 1,
43416 "type" : "boolean",
43417 "typetext" : "<boolean>"
43418 }
43419 }
43420 },
43421 "permissions" : {
43422 "check" : [
43423 "perm",
43424 "/",
43425 [
43426 "Sys.Audit",
43427 "Sys.Modify"
43428 ]
43429 ]
43430 },
43431 "proxyto" : "node",
43432 "returns" : {
43433 "properties" : {
43434 "filename" : {
43435 "optional" : 1,
43436 "type" : "string"
43437 },
43438 "mimetype" : {
43439 "optional" : 1,
43440 "type" : "string"
43441 },
43442 "size" : {
43443 "optional" : 1,
43444 "renderer" : "bytes",
43445 "type" : "integer"
43446 }
43447 },
43448 "type" : "object"
43449 }
43450 }
43451 },
43452 "leaf" : 1,
43453 "path" : "/nodes/{node}/query-url-metadata",
43454 "text" : "query-url-metadata"
43455 },
7aacca6f
DM
43456 {
43457 "info" : {
43458 "GET" : {
e9cd3bd4 43459 "allowtoken" : 1,
44660702
DM
43460 "description" : "Gather various systems information about a node",
43461 "method" : "GET",
43462 "name" : "report",
7aacca6f 43463 "parameters" : {
44660702 43464 "additionalProperties" : 0,
7aacca6f
DM
43465 "properties" : {
43466 "node" : {
7aacca6f 43467 "description" : "The cluster node name.",
44660702 43468 "format" : "pve-node",
013dc89f
DM
43469 "type" : "string",
43470 "typetext" : "<string>"
7aacca6f 43471 }
44660702 43472 }
56122987 43473 },
7aacca6f
DM
43474 "permissions" : {
43475 "check" : [
43476 "perm",
43477 "/nodes/{node}",
43478 [
43479 "Sys.Audit"
43480 ]
43481 ]
56122987 43482 },
44660702 43483 "protected" : 1,
7aacca6f
DM
43484 "proxyto" : "node",
43485 "returns" : {
56122987 43486 "type" : "string"
7aacca6f
DM
43487 }
43488 }
43489 },
7aacca6f 43490 "leaf" : 1,
44660702
DM
43491 "path" : "/nodes/{node}/report",
43492 "text" : "report"
7aacca6f
DM
43493 },
43494 {
7aacca6f
DM
43495 "info" : {
43496 "POST" : {
e9cd3bd4 43497 "allowtoken" : 1,
1c532546 43498 "description" : "Start all VMs and containers located on this node (by default only those with onboot=1).",
7aacca6f 43499 "method" : "POST",
44660702 43500 "name" : "startall",
7aacca6f 43501 "parameters" : {
44660702 43502 "additionalProperties" : 0,
7aacca6f
DM
43503 "properties" : {
43504 "force" : {
1c532546
TL
43505 "default" : "off",
43506 "description" : "Issue start command even if virtual guest have 'onboot' not set or set to off.",
7aacca6f 43507 "optional" : 1,
013dc89f
DM
43508 "type" : "boolean",
43509 "typetext" : "<boolean>"
7aacca6f
DM
43510 },
43511 "node" : {
7aacca6f 43512 "description" : "The cluster node name.",
44660702 43513 "format" : "pve-node",
013dc89f
DM
43514 "type" : "string",
43515 "typetext" : "<string>"
52e44c50
FG
43516 },
43517 "vms" : {
1c532546 43518 "description" : "Only consider guests from this comma separated list of VMIDs.",
52e44c50
FG
43519 "format" : "pve-vmid-list",
43520 "optional" : 1,
43521 "type" : "string",
43522 "typetext" : "<string>"
7aacca6f 43523 }
44660702 43524 }
56122987 43525 },
7aacca6f
DM
43526 "permissions" : {
43527 "check" : [
43528 "perm",
43529 "/",
43530 [
43531 "VM.PowerMgmt"
43532 ]
43533 ]
44660702
DM
43534 },
43535 "protected" : 1,
43536 "proxyto" : "node",
43537 "returns" : {
43538 "type" : "string"
7aacca6f
DM
43539 }
43540 }
43541 },
44660702 43542 "leaf" : 1,
7aacca6f 43543 "path" : "/nodes/{node}/startall",
44660702 43544 "text" : "startall"
7aacca6f
DM
43545 },
43546 {
7aacca6f
DM
43547 "info" : {
43548 "POST" : {
e9cd3bd4 43549 "allowtoken" : 1,
7aacca6f 43550 "description" : "Stop all VMs and Containers.",
44660702
DM
43551 "method" : "POST",
43552 "name" : "stopall",
7aacca6f 43553 "parameters" : {
44660702 43554 "additionalProperties" : 0,
7aacca6f
DM
43555 "properties" : {
43556 "node" : {
44660702 43557 "description" : "The cluster node name.",
7aacca6f 43558 "format" : "pve-node",
013dc89f
DM
43559 "type" : "string",
43560 "typetext" : "<string>"
52e44c50
FG
43561 },
43562 "vms" : {
43563 "description" : "Only consider Guests with these IDs.",
43564 "format" : "pve-vmid-list",
43565 "optional" : 1,
43566 "type" : "string",
43567 "typetext" : "<string>"
7aacca6f 43568 }
44660702 43569 }
56122987 43570 },
7aacca6f
DM
43571 "permissions" : {
43572 "check" : [
43573 "perm",
43574 "/",
43575 [
44660702 43576 "VM.PowerMgmt"
7aacca6f
DM
43577 ]
43578 ]
56122987 43579 },
44660702 43580 "protected" : 1,
7aacca6f 43581 "proxyto" : "node",
44660702
DM
43582 "returns" : {
43583 "type" : "string"
43584 }
43585 }
56122987 43586 },
44660702
DM
43587 "leaf" : 1,
43588 "path" : "/nodes/{node}/stopall",
43589 "text" : "stopall"
43590 },
43591 {
43592 "info" : {
43593 "POST" : {
e9cd3bd4 43594 "allowtoken" : 1,
44660702
DM
43595 "description" : "Migrate all VMs and Containers.",
43596 "method" : "POST",
43597 "name" : "migrateall",
43598 "parameters" : {
43599 "additionalProperties" : 0,
43600 "properties" : {
43601 "maxworkers" : {
43602 "description" : "Maximal number of parallel migration job. If not set use 'max_workers' from datacenter.cfg, one of both must be set!",
43603 "minimum" : 1,
43604 "optional" : 1,
4bd7df8b 43605 "type" : "integer",
013dc89f 43606 "typetext" : "<integer> (1 - N)"
44660702
DM
43607 },
43608 "node" : {
43609 "description" : "The cluster node name.",
43610 "format" : "pve-node",
013dc89f
DM
43611 "type" : "string",
43612 "typetext" : "<string>"
44660702
DM
43613 },
43614 "target" : {
43615 "description" : "Target node.",
43616 "format" : "pve-node",
013dc89f
DM
43617 "type" : "string",
43618 "typetext" : "<string>"
52e44c50
FG
43619 },
43620 "vms" : {
43621 "description" : "Only consider Guests with these IDs.",
43622 "format" : "pve-vmid-list",
43623 "optional" : 1,
43624 "type" : "string",
43625 "typetext" : "<string>"
e9cd3bd4
TL
43626 },
43627 "with-local-disks" : {
43628 "description" : "Enable live storage migration for local disk",
43629 "optional" : 1,
43630 "type" : "boolean",
43631 "typetext" : "<boolean>"
44660702
DM
43632 }
43633 }
43634 },
43635 "permissions" : {
43636 "check" : [
43637 "perm",
43638 "/",
43639 [
43640 "VM.Migrate"
43641 ]
43642 ]
43643 },
43644 "protected" : 1,
43645 "proxyto" : "node",
43646 "returns" : {
43647 "type" : "string"
43648 }
43649 }
56122987 43650 },
44660702
DM
43651 "leaf" : 1,
43652 "path" : "/nodes/{node}/migrateall",
43653 "text" : "migrateall"
4d47f125
TL
43654 },
43655 {
43656 "info" : {
43657 "GET" : {
e9cd3bd4 43658 "allowtoken" : 1,
4d47f125
TL
43659 "description" : "Get the content of /etc/hosts.",
43660 "method" : "GET",
43661 "name" : "get_etc_hosts",
43662 "parameters" : {
43663 "additionalProperties" : 0,
43664 "properties" : {
43665 "node" : {
43666 "description" : "The cluster node name.",
43667 "format" : "pve-node",
43668 "type" : "string",
43669 "typetext" : "<string>"
43670 }
43671 }
43672 },
43673 "permissions" : {
43674 "check" : [
43675 "perm",
43676 "/",
43677 [
43678 "Sys.Audit"
43679 ]
43680 ]
43681 },
43682 "protected" : 1,
43683 "proxyto" : "node",
43684 "returns" : {
43685 "properties" : {
43686 "data" : {
43687 "description" : "The content of /etc/hosts.",
43688 "type" : "string"
43689 },
43690 "digest" : {
43691 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
43692 "maxLength" : 40,
43693 "optional" : 1,
43694 "type" : "string"
43695 }
43696 },
43697 "type" : "object"
43698 }
43699 },
43700 "POST" : {
e9cd3bd4 43701 "allowtoken" : 1,
4d47f125
TL
43702 "description" : "Write /etc/hosts.",
43703 "method" : "POST",
43704 "name" : "write_etc_hosts",
43705 "parameters" : {
43706 "additionalProperties" : 0,
43707 "properties" : {
43708 "data" : {
43709 "description" : "The target content of /etc/hosts.",
43710 "type" : "string",
43711 "typetext" : "<string>"
43712 },
43713 "digest" : {
43714 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
43715 "maxLength" : 40,
43716 "optional" : 1,
43717 "type" : "string",
43718 "typetext" : "<string>"
43719 },
43720 "node" : {
43721 "description" : "The cluster node name.",
43722 "format" : "pve-node",
43723 "type" : "string",
43724 "typetext" : "<string>"
43725 }
43726 }
43727 },
43728 "permissions" : {
43729 "check" : [
43730 "perm",
43731 "/nodes/{node}",
43732 [
43733 "Sys.Modify"
43734 ]
43735 ]
43736 },
43737 "protected" : 1,
43738 "proxyto" : "node",
43739 "returns" : {
43740 "type" : "null"
43741 }
43742 }
43743 },
43744 "leaf" : 1,
43745 "path" : "/nodes/{node}/hosts",
43746 "text" : "hosts"
44660702
DM
43747 }
43748 ],
43749 "info" : {
43750 "GET" : {
e9cd3bd4 43751 "allowtoken" : 1,
44660702
DM
43752 "description" : "Node index.",
43753 "method" : "GET",
43754 "name" : "index",
43755 "parameters" : {
43756 "additionalProperties" : 0,
43757 "properties" : {
43758 "node" : {
43759 "description" : "The cluster node name.",
43760 "format" : "pve-node",
013dc89f
DM
43761 "type" : "string",
43762 "typetext" : "<string>"
44660702
DM
43763 }
43764 }
56122987 43765 },
44660702
DM
43766 "permissions" : {
43767 "user" : "all"
56122987 43768 },
44660702
DM
43769 "returns" : {
43770 "items" : {
43771 "properties" : {},
43772 "type" : "object"
43773 },
43774 "links" : [
43775 {
43776 "href" : "{name}",
43777 "rel" : "child"
43778 }
56122987 43779 ],
44660702 43780 "type" : "array"
7aacca6f
DM
43781 }
43782 }
43783 },
44660702
DM
43784 "leaf" : 0,
43785 "path" : "/nodes/{node}",
43786 "text" : "{node}"
43787 }
43788 ],
43789 "info" : {
7aacca6f 43790 "GET" : {
e9cd3bd4 43791 "allowtoken" : 1,
44660702 43792 "description" : "Cluster node index.",
7aacca6f 43793 "method" : "GET",
44660702 43794 "name" : "index",
7aacca6f 43795 "parameters" : {
7aacca6f
DM
43796 "additionalProperties" : 0
43797 },
43798 "permissions" : {
7aacca6f
DM
43799 "user" : "all"
43800 },
44660702
DM
43801 "returns" : {
43802 "items" : {
4d47f125
TL
43803 "properties" : {
43804 "cpu" : {
43805 "description" : "CPU utilization.",
43806 "optional" : 1,
43807 "renderer" : "fraction_as_percentage",
43808 "type" : "number"
43809 },
43810 "level" : {
43811 "description" : "Support level.",
43812 "optional" : 1,
43813 "type" : "string"
43814 },
43815 "maxcpu" : {
43816 "description" : "Number of available CPUs.",
43817 "optional" : 1,
43818 "type" : "integer"
43819 },
43820 "maxmem" : {
43821 "description" : "Number of available memory in bytes.",
43822 "optional" : 1,
43823 "renderer" : "bytes",
43824 "type" : "integer"
43825 },
43826 "mem" : {
43827 "description" : "Used memory in bytes.",
43828 "optional" : 1,
43829 "renderer" : "bytes",
1c532546 43830 "type" : "integer"
4d47f125
TL
43831 },
43832 "node" : {
43833 "description" : "The cluster node name.",
43834 "format" : "pve-node",
43835 "type" : "string"
43836 },
43837 "ssl_fingerprint" : {
43838 "description" : "The SSL fingerprint for the node certificate.",
43839 "optional" : 1,
43840 "type" : "string"
43841 },
43842 "status" : {
43843 "description" : "Node status.",
43844 "enum" : [
43845 "unknown",
43846 "online",
43847 "offline"
43848 ],
43849 "type" : "string"
43850 },
43851 "uptime" : {
43852 "description" : "Node uptime in seconds.",
43853 "optional" : 1,
43854 "renderer" : "duration",
43855 "type" : "integer"
43856 }
43857 },
44660702
DM
43858 "type" : "object"
43859 },
43860 "links" : [
43861 {
43862 "href" : "{node}",
43863 "rel" : "child"
43864 }
43865 ],
43866 "type" : "array"
43867 }
7aacca6f
DM
43868 }
43869 },
44660702
DM
43870 "leaf" : 0,
43871 "path" : "/nodes",
43872 "text" : "nodes"
43873 },
43874 {
7aacca6f
DM
43875 "children" : [
43876 {
7aacca6f 43877 "info" : {
44660702 43878 "DELETE" : {
e9cd3bd4 43879 "allowtoken" : 1,
44660702
DM
43880 "description" : "Delete storage configuration.",
43881 "method" : "DELETE",
43882 "name" : "delete",
7aacca6f
DM
43883 "parameters" : {
43884 "additionalProperties" : 0,
43885 "properties" : {
43886 "storage" : {
7aacca6f 43887 "description" : "The storage identifier.",
44660702 43888 "format" : "pve-storage-id",
013dc89f
DM
43889 "type" : "string",
43890 "typetext" : "<string>"
7aacca6f
DM
43891 }
43892 }
56122987 43893 },
7aacca6f
DM
43894 "permissions" : {
43895 "check" : [
43896 "perm",
43897 "/storage",
43898 [
43899 "Datastore.Allocate"
43900 ]
43901 ]
56122987 43902 },
44660702
DM
43903 "protected" : 1,
43904 "returns" : {
43905 "type" : "null"
43906 }
43907 },
43908 "GET" : {
e9cd3bd4 43909 "allowtoken" : 1,
44660702
DM
43910 "description" : "Read storage configuration.",
43911 "method" : "GET",
43912 "name" : "read",
7aacca6f
DM
43913 "parameters" : {
43914 "additionalProperties" : 0,
43915 "properties" : {
43916 "storage" : {
44660702 43917 "description" : "The storage identifier.",
7aacca6f 43918 "format" : "pve-storage-id",
013dc89f
DM
43919 "type" : "string",
43920 "typetext" : "<string>"
7aacca6f
DM
43921 }
43922 }
43923 },
44660702
DM
43924 "permissions" : {
43925 "check" : [
43926 "perm",
43927 "/storage/{storage}",
43928 [
43929 "Datastore.Allocate"
43930 ]
43931 ]
43932 },
5da3d723
TL
43933 "returns" : {
43934 "type" : "object"
43935 }
7aacca6f
DM
43936 },
43937 "PUT" : {
e9cd3bd4 43938 "allowtoken" : 1,
44660702
DM
43939 "description" : "Update storage configuration.",
43940 "method" : "PUT",
43941 "name" : "update",
43942 "parameters" : {
43943 "additionalProperties" : 0,
43944 "properties" : {
43945 "blocksize" : {
43946 "description" : "block size",
7aacca6f 43947 "optional" : 1,
013dc89f
DM
43948 "type" : "string",
43949 "typetext" : "<string>"
7aacca6f 43950 },
27a7acb2
DM
43951 "bwlimit" : {
43952 "description" : "Set bandwidth/io limits various operations.",
43953 "format" : {
43954 "clone" : {
95895385 43955 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
43956 "format_description" : "LIMIT",
43957 "minimum" : "0",
43958 "optional" : 1,
43959 "type" : "number"
43960 },
43961 "default" : {
95895385 43962 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
43963 "format_description" : "LIMIT",
43964 "minimum" : "0",
43965 "optional" : 1,
43966 "type" : "number"
43967 },
43968 "migration" : {
95895385 43969 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
43970 "format_description" : "LIMIT",
43971 "minimum" : "0",
43972 "optional" : 1,
43973 "type" : "number"
43974 },
43975 "move" : {
95895385 43976 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
43977 "format_description" : "LIMIT",
43978 "minimum" : "0",
43979 "optional" : 1,
43980 "type" : "number"
43981 },
43982 "restore" : {
95895385 43983 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
43984 "format_description" : "LIMIT",
43985 "minimum" : "0",
43986 "optional" : 1,
43987 "type" : "number"
43988 }
43989 },
43990 "optional" : 1,
43991 "type" : "string",
43992 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
43993 },
44660702
DM
43994 "comstar_hg" : {
43995 "description" : "host group for comstar views",
43996 "optional" : 1,
013dc89f
DM
43997 "type" : "string",
43998 "typetext" : "<string>"
7aacca6f 43999 },
44660702
DM
44000 "comstar_tg" : {
44001 "description" : "target group for comstar views",
7aacca6f 44002 "optional" : 1,
013dc89f
DM
44003 "type" : "string",
44004 "typetext" : "<string>"
7aacca6f 44005 },
44660702
DM
44006 "content" : {
44007 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
44008 "format" : "pve-storage-content-list",
7aacca6f 44009 "optional" : 1,
013dc89f
DM
44010 "type" : "string",
44011 "typetext" : "<string>"
7aacca6f 44012 },
44660702
DM
44013 "delete" : {
44014 "description" : "A list of settings you want to delete.",
44015 "format" : "pve-configid-list",
44016 "maxLength" : 4096,
7aacca6f 44017 "optional" : 1,
013dc89f
DM
44018 "type" : "string",
44019 "typetext" : "<string>"
7aacca6f
DM
44020 },
44021 "digest" : {
44660702 44022 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 44023 "maxLength" : 40,
7aacca6f 44024 "optional" : 1,
013dc89f
DM
44025 "type" : "string",
44026 "typetext" : "<string>"
7aacca6f 44027 },
44660702
DM
44028 "disable" : {
44029 "description" : "Flag to disable the storage.",
44030 "optional" : 1,
013dc89f
DM
44031 "type" : "boolean",
44032 "typetext" : "<boolean>"
7aacca6f 44033 },
27a7acb2
DM
44034 "domain" : {
44035 "description" : "CIFS domain.",
44036 "maxLength" : 256,
44037 "optional" : 1,
44038 "type" : "string",
44039 "typetext" : "<string>"
44040 },
04d22a9f
TL
44041 "encryption-key" : {
44042 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
44043 "optional" : 1,
44044 "type" : "string",
44045 "typetext" : "<string>"
44046 },
c5aa7e14
TL
44047 "fingerprint" : {
44048 "description" : "Certificate SHA 256 fingerprint.",
44049 "optional" : 1,
44050 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
44051 "type" : "string"
44052 },
7aacca6f
DM
44053 "format" : {
44054 "description" : "Default image format.",
44660702 44055 "format" : "pve-storage-format",
7aacca6f 44056 "optional" : 1,
013dc89f
DM
44057 "type" : "string",
44058 "typetext" : "<string>"
7aacca6f 44059 },
5370fa8c
TL
44060 "fs-name" : {
44061 "description" : "The Ceph filesystem name.",
44062 "format" : "pve-configid",
44063 "optional" : 1,
44064 "type" : "string",
44065 "typetext" : "<string>"
44066 },
5da3d723
TL
44067 "fuse" : {
44068 "description" : "Mount CephFS through FUSE.",
44069 "optional" : 1,
44070 "type" : "boolean",
44071 "typetext" : "<boolean>"
44072 },
2c0dde61
DM
44073 "is_mountpoint" : {
44074 "default" : "no",
2489d6df 44075 "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 44076 "optional" : 1,
2489d6df
WB
44077 "type" : "string",
44078 "typetext" : "<string>"
2c0dde61 44079 },
5370fa8c
TL
44080 "keyring" : {
44081 "description" : "Client keyring contents (for external clusters).",
44082 "optional" : 1,
44083 "type" : "string",
44084 "typetext" : "<string>"
44085 },
44660702 44086 "krbd" : {
e2d681b3 44087 "description" : "Always access rbd through krbd kernel module.",
7aacca6f 44088 "optional" : 1,
013dc89f
DM
44089 "type" : "boolean",
44090 "typetext" : "<boolean>"
7aacca6f 44091 },
4d47f125
TL
44092 "lio_tpg" : {
44093 "description" : "target portal group for Linux LIO targets",
44094 "optional" : 1,
44095 "type" : "string",
44096 "typetext" : "<string>"
44097 },
d2656385 44098 "master-pubkey" : {
5f4e66fe 44099 "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
44100 "optional" : 1,
44101 "type" : "string",
44102 "typetext" : "<string>"
44103 },
44660702 44104 "maxfiles" : {
5f4e66fe 44105 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
44106 "minimum" : 0,
44107 "optional" : 1,
4bd7df8b 44108 "type" : "integer",
013dc89f 44109 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
44110 },
44111 "mkdir" : {
44112 "default" : "yes",
44113 "description" : "Create the directory if it doesn't exist.",
44114 "optional" : 1,
013dc89f
DM
44115 "type" : "boolean",
44116 "typetext" : "<boolean>"
7aacca6f 44117 },
2489d6df
WB
44118 "monhost" : {
44119 "description" : "IP addresses of monitors (for external clusters).",
44120 "format" : "pve-storage-portal-dns-list",
44121 "optional" : 1,
44122 "type" : "string",
44123 "typetext" : "<string>"
44124 },
5c1699e5
TL
44125 "mountpoint" : {
44126 "description" : "mount point",
44127 "format" : "pve-storage-path",
44128 "optional" : 1,
44129 "type" : "string",
44130 "typetext" : "<string>"
44131 },
d2656385
TL
44132 "namespace" : {
44133 "description" : "RBD Namespace.",
44134 "optional" : 1,
44135 "type" : "string",
44136 "typetext" : "<string>"
44137 },
5f4e66fe
TL
44138 "nocow" : {
44139 "default" : 0,
44140 "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.",
44141 "optional" : 1,
44142 "type" : "boolean",
44143 "typetext" : "<boolean>"
44144 },
7aacca6f 44145 "nodes" : {
44660702 44146 "description" : "List of cluster node names.",
7aacca6f
DM
44147 "format" : "pve-node-list",
44148 "optional" : 1,
013dc89f
DM
44149 "type" : "string",
44150 "typetext" : "<string>"
7aacca6f 44151 },
44660702
DM
44152 "nowritecache" : {
44153 "description" : "disable write caching on the target",
7aacca6f 44154 "optional" : 1,
013dc89f
DM
44155 "type" : "boolean",
44156 "typetext" : "<boolean>"
7aacca6f
DM
44157 },
44158 "options" : {
7aacca6f 44159 "description" : "NFS mount options (see 'man nfs')",
44660702
DM
44160 "format" : "pve-storage-options",
44161 "optional" : 1,
013dc89f
DM
44162 "type" : "string",
44163 "typetext" : "<string>"
44660702 44164 },
27a7acb2 44165 "password" : {
04d22a9f 44166 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
44167 "maxLength" : 256,
44168 "optional" : 1,
44169 "type" : "string",
44170 "typetext" : "<string>"
44171 },
44660702
DM
44172 "pool" : {
44173 "description" : "Pool.",
44174 "optional" : 1,
013dc89f
DM
44175 "type" : "string",
44176 "typetext" : "<string>"
44660702 44177 },
4772952b
TL
44178 "port" : {
44179 "default" : 8007,
44180 "description" : "For non default port.",
44181 "maximum" : 65535,
44182 "minimum" : 1,
44183 "optional" : 1,
44184 "type" : "integer",
44185 "typetext" : "<integer> (1 - 65535)"
44186 },
5370fa8c
TL
44187 "preallocation" : {
44188 "default" : "metadata",
44189 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
44190 "enum" : [
44191 "off",
44192 "metadata",
44193 "falloc",
44194 "full"
44195 ],
44196 "optional" : 1,
44197 "type" : "string"
44198 },
739d4d64
TL
44199 "prune-backups" : {
44200 "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.",
44201 "format" : "prune-backups",
44202 "optional" : 1,
44203 "type" : "string",
4772952b 44204 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 44205 },
44660702
DM
44206 "saferemove" : {
44207 "description" : "Zero-out data when removing LVs.",
44208 "optional" : 1,
013dc89f
DM
44209 "type" : "boolean",
44210 "typetext" : "<boolean>"
7aacca6f
DM
44211 },
44212 "saferemove_throughput" : {
44660702 44213 "description" : "Wipe throughput (cstream -t parameter value).",
7aacca6f 44214 "optional" : 1,
013dc89f
DM
44215 "type" : "string",
44216 "typetext" : "<string>"
7aacca6f 44217 },
44660702
DM
44218 "server" : {
44219 "description" : "Server IP or DNS name.",
44220 "format" : "pve-storage-server",
7aacca6f 44221 "optional" : 1,
013dc89f
DM
44222 "type" : "string",
44223 "typetext" : "<string>"
7aacca6f 44224 },
44660702
DM
44225 "server2" : {
44226 "description" : "Backup volfile server IP or DNS name.",
44227 "format" : "pve-storage-server",
7aacca6f 44228 "optional" : 1,
44660702 44229 "requires" : "server",
013dc89f
DM
44230 "type" : "string",
44231 "typetext" : "<string>"
44660702
DM
44232 },
44233 "shared" : {
44234 "description" : "Mark storage as shared.",
44235 "optional" : 1,
013dc89f
DM
44236 "type" : "boolean",
44237 "typetext" : "<boolean>"
44660702 44238 },
27a7acb2 44239 "smbversion" : {
5370fa8c
TL
44240 "default" : "default",
44241 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 44242 "enum" : [
5370fa8c 44243 "default",
5da3d723
TL
44244 "2.0",
44245 "2.1",
5370fa8c
TL
44246 "3",
44247 "3.0",
44248 "3.11"
5da3d723 44249 ],
27a7acb2 44250 "optional" : 1,
5da3d723 44251 "type" : "string"
27a7acb2 44252 },
44660702
DM
44253 "sparse" : {
44254 "description" : "use sparse volumes",
44255 "optional" : 1,
013dc89f
DM
44256 "type" : "boolean",
44257 "typetext" : "<boolean>"
44660702
DM
44258 },
44259 "storage" : {
44260 "description" : "The storage identifier.",
44261 "format" : "pve-storage-id",
013dc89f
DM
44262 "type" : "string",
44263 "typetext" : "<string>"
44660702 44264 },
5da3d723
TL
44265 "subdir" : {
44266 "description" : "Subdir to mount.",
44267 "format" : "pve-storage-path",
44268 "optional" : 1,
44269 "type" : "string",
44270 "typetext" : "<string>"
44271 },
4bd7df8b
DM
44272 "tagged_only" : {
44273 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
44274 "optional" : 1,
013dc89f
DM
44275 "type" : "boolean",
44276 "typetext" : "<boolean>"
4bd7df8b 44277 },
44660702
DM
44278 "transport" : {
44279 "description" : "Gluster transport: tcp or rdma",
44280 "enum" : [
44281 "tcp",
44282 "rdma",
44283 "unix"
44284 ],
44285 "optional" : 1,
44286 "type" : "string"
7aacca6f
DM
44287 },
44288 "username" : {
44289 "description" : "RBD Id.",
44660702 44290 "optional" : 1,
013dc89f
DM
44291 "type" : "string",
44292 "typetext" : "<string>"
7aacca6f 44293 }
44660702
DM
44294 },
44295 "type" : "object"
44296 },
44297 "permissions" : {
44298 "check" : [
44299 "perm",
44300 "/storage",
44301 [
44302 "Datastore.Allocate"
44303 ]
44304 ]
44305 },
44306 "protected" : 1,
44307 "returns" : {
4772952b
TL
44308 "properties" : {
44309 "config" : {
44310 "additionalProperties" : 1,
44311 "description" : "Partial, possible server generated, configuration properties.",
44312 "optional" : 1,
44313 "properties" : {
44314 "encryption-key" : {
44315 "description" : "The, possible auto-generated, encryption-key.",
44316 "optional" : 1,
44317 "type" : "string"
44318 }
44319 },
44320 "type" : "object"
44321 },
44322 "storage" : {
44323 "description" : "The ID of the created storage.",
44324 "type" : "string"
44325 },
44326 "type" : {
44327 "description" : "The type of the created storage.",
44328 "enum" : [
5f4e66fe 44329 "btrfs",
4772952b
TL
44330 "cephfs",
44331 "cifs",
44332 "dir",
4772952b
TL
44333 "glusterfs",
44334 "iscsi",
44335 "iscsidirect",
44336 "lvm",
44337 "lvmthin",
44338 "nfs",
44339 "pbs",
44340 "rbd",
44341 "zfs",
44342 "zfspool"
44343 ],
44344 "type" : "string"
44345 }
44346 },
44347 "type" : "object"
44660702
DM
44348 }
44349 }
44350 },
44351 "leaf" : 1,
44352 "path" : "/storage/{storage}",
44353 "text" : "{storage}"
44354 }
44355 ],
44356 "info" : {
44357 "GET" : {
e9cd3bd4 44358 "allowtoken" : 1,
44660702
DM
44359 "description" : "Storage index.",
44360 "method" : "GET",
44361 "name" : "index",
44362 "parameters" : {
44363 "additionalProperties" : 0,
44364 "properties" : {
44365 "type" : {
44366 "description" : "Only list storage of specific type",
44367 "enum" : [
5f4e66fe 44368 "btrfs",
5da3d723 44369 "cephfs",
27a7acb2 44370 "cifs",
44660702 44371 "dir",
44660702
DM
44372 "glusterfs",
44373 "iscsi",
44374 "iscsidirect",
44375 "lvm",
44376 "lvmthin",
44377 "nfs",
c5aa7e14 44378 "pbs",
44660702 44379 "rbd",
44660702
DM
44380 "zfs",
44381 "zfspool"
44382 ],
44383 "optional" : 1,
44384 "type" : "string"
44385 }
44386 }
44387 },
44388 "permissions" : {
44389 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
44390 "user" : "all"
44391 },
44392 "returns" : {
44393 "items" : {
44394 "properties" : {
44395 "storage" : {
44396 "type" : "string"
7aacca6f 44397 }
56122987 44398 },
44660702
DM
44399 "type" : "object"
44400 },
44401 "links" : [
44402 {
44403 "href" : "{storage}",
44404 "rel" : "child"
44405 }
44406 ],
44407 "type" : "array"
44408 }
44409 },
44410 "POST" : {
e9cd3bd4 44411 "allowtoken" : 1,
44660702
DM
44412 "description" : "Create a new storage.",
44413 "method" : "POST",
44414 "name" : "create",
44415 "parameters" : {
44416 "additionalProperties" : 0,
44417 "properties" : {
44418 "authsupported" : {
44419 "description" : "Authsupported.",
44420 "optional" : 1,
013dc89f
DM
44421 "type" : "string",
44422 "typetext" : "<string>"
44660702
DM
44423 },
44424 "base" : {
44425 "description" : "Base volume. This volume is automatically activated.",
44426 "format" : "pve-volume-id",
44427 "optional" : 1,
013dc89f
DM
44428 "type" : "string",
44429 "typetext" : "<string>"
44660702
DM
44430 },
44431 "blocksize" : {
44432 "description" : "block size",
44433 "optional" : 1,
013dc89f
DM
44434 "type" : "string",
44435 "typetext" : "<string>"
44660702 44436 },
27a7acb2
DM
44437 "bwlimit" : {
44438 "description" : "Set bandwidth/io limits various operations.",
44439 "format" : {
44440 "clone" : {
95895385 44441 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
44442 "format_description" : "LIMIT",
44443 "minimum" : "0",
44444 "optional" : 1,
44445 "type" : "number"
44446 },
44447 "default" : {
95895385 44448 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
44449 "format_description" : "LIMIT",
44450 "minimum" : "0",
44451 "optional" : 1,
44452 "type" : "number"
44453 },
44454 "migration" : {
95895385 44455 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
44456 "format_description" : "LIMIT",
44457 "minimum" : "0",
44458 "optional" : 1,
44459 "type" : "number"
44460 },
44461 "move" : {
95895385 44462 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
44463 "format_description" : "LIMIT",
44464 "minimum" : "0",
44465 "optional" : 1,
44466 "type" : "number"
44467 },
44468 "restore" : {
95895385 44469 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
44470 "format_description" : "LIMIT",
44471 "minimum" : "0",
44472 "optional" : 1,
44473 "type" : "number"
44474 }
44475 },
44476 "optional" : 1,
44477 "type" : "string",
44478 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
44479 },
44660702
DM
44480 "comstar_hg" : {
44481 "description" : "host group for comstar views",
44482 "optional" : 1,
013dc89f
DM
44483 "type" : "string",
44484 "typetext" : "<string>"
44660702
DM
44485 },
44486 "comstar_tg" : {
44487 "description" : "target group for comstar views",
44488 "optional" : 1,
013dc89f
DM
44489 "type" : "string",
44490 "typetext" : "<string>"
44660702
DM
44491 },
44492 "content" : {
44493 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
44494 "format" : "pve-storage-content-list",
44495 "optional" : 1,
013dc89f
DM
44496 "type" : "string",
44497 "typetext" : "<string>"
44660702 44498 },
c5aa7e14 44499 "datastore" : {
4772952b 44500 "description" : "Proxmox Backup Server datastore name.",
c5aa7e14
TL
44501 "optional" : 1,
44502 "type" : "string",
44503 "typetext" : "<string>"
44504 },
44660702
DM
44505 "disable" : {
44506 "description" : "Flag to disable the storage.",
44507 "optional" : 1,
013dc89f
DM
44508 "type" : "boolean",
44509 "typetext" : "<boolean>"
44660702 44510 },
27a7acb2
DM
44511 "domain" : {
44512 "description" : "CIFS domain.",
44513 "maxLength" : 256,
44514 "optional" : 1,
44515 "type" : "string",
44516 "typetext" : "<string>"
44517 },
04d22a9f
TL
44518 "encryption-key" : {
44519 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
44520 "optional" : 1,
44521 "type" : "string",
44522 "typetext" : "<string>"
44523 },
44660702
DM
44524 "export" : {
44525 "description" : "NFS export path.",
44526 "format" : "pve-storage-path",
44527 "optional" : 1,
013dc89f
DM
44528 "type" : "string",
44529 "typetext" : "<string>"
44660702 44530 },
c5aa7e14
TL
44531 "fingerprint" : {
44532 "description" : "Certificate SHA 256 fingerprint.",
44533 "optional" : 1,
44534 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
44535 "type" : "string"
44536 },
44660702
DM
44537 "format" : {
44538 "description" : "Default image format.",
44539 "format" : "pve-storage-format",
44540 "optional" : 1,
013dc89f
DM
44541 "type" : "string",
44542 "typetext" : "<string>"
44660702 44543 },
5370fa8c
TL
44544 "fs-name" : {
44545 "description" : "The Ceph filesystem name.",
44546 "format" : "pve-configid",
44547 "optional" : 1,
44548 "type" : "string",
44549 "typetext" : "<string>"
44550 },
5da3d723
TL
44551 "fuse" : {
44552 "description" : "Mount CephFS through FUSE.",
44553 "optional" : 1,
44554 "type" : "boolean",
44555 "typetext" : "<boolean>"
44556 },
2c0dde61
DM
44557 "is_mountpoint" : {
44558 "default" : "no",
2489d6df 44559 "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 44560 "optional" : 1,
2489d6df
WB
44561 "type" : "string",
44562 "typetext" : "<string>"
2c0dde61 44563 },
44660702
DM
44564 "iscsiprovider" : {
44565 "description" : "iscsi provider",
44566 "optional" : 1,
013dc89f
DM
44567 "type" : "string",
44568 "typetext" : "<string>"
44660702 44569 },
5370fa8c
TL
44570 "keyring" : {
44571 "description" : "Client keyring contents (for external clusters).",
44572 "optional" : 1,
44573 "type" : "string",
44574 "typetext" : "<string>"
44575 },
44660702 44576 "krbd" : {
e2d681b3 44577 "description" : "Always access rbd through krbd kernel module.",
44660702 44578 "optional" : 1,
013dc89f
DM
44579 "type" : "boolean",
44580 "typetext" : "<boolean>"
56122987 44581 },
4d47f125
TL
44582 "lio_tpg" : {
44583 "description" : "target portal group for Linux LIO targets",
44584 "optional" : 1,
44585 "type" : "string",
44586 "typetext" : "<string>"
44587 },
d2656385 44588 "master-pubkey" : {
5f4e66fe 44589 "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
44590 "optional" : 1,
44591 "type" : "string",
44592 "typetext" : "<string>"
44593 },
44660702 44594 "maxfiles" : {
5f4e66fe 44595 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
44596 "minimum" : 0,
44597 "optional" : 1,
4bd7df8b 44598 "type" : "integer",
013dc89f 44599 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
44600 },
44601 "mkdir" : {
44602 "default" : "yes",
44603 "description" : "Create the directory if it doesn't exist.",
44604 "optional" : 1,
013dc89f
DM
44605 "type" : "boolean",
44606 "typetext" : "<boolean>"
7aacca6f 44607 },
44660702 44608 "monhost" : {
2489d6df 44609 "description" : "IP addresses of monitors (for external clusters).",
4bd7df8b 44610 "format" : "pve-storage-portal-dns-list",
44660702 44611 "optional" : 1,
013dc89f
DM
44612 "type" : "string",
44613 "typetext" : "<string>"
7aacca6f 44614 },
5c1699e5
TL
44615 "mountpoint" : {
44616 "description" : "mount point",
44617 "format" : "pve-storage-path",
44618 "optional" : 1,
44619 "type" : "string",
44620 "typetext" : "<string>"
44621 },
d2656385
TL
44622 "namespace" : {
44623 "description" : "RBD Namespace.",
44624 "optional" : 1,
44625 "type" : "string",
44626 "typetext" : "<string>"
44627 },
5f4e66fe
TL
44628 "nocow" : {
44629 "default" : 0,
44630 "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.",
44631 "optional" : 1,
44632 "type" : "boolean",
44633 "typetext" : "<boolean>"
44634 },
44660702
DM
44635 "nodes" : {
44636 "description" : "List of cluster node names.",
44637 "format" : "pve-node-list",
44638 "optional" : 1,
013dc89f
DM
44639 "type" : "string",
44640 "typetext" : "<string>"
7aacca6f 44641 },
44660702
DM
44642 "nowritecache" : {
44643 "description" : "disable write caching on the target",
44644 "optional" : 1,
013dc89f
DM
44645 "type" : "boolean",
44646 "typetext" : "<boolean>"
44660702
DM
44647 },
44648 "options" : {
44649 "description" : "NFS mount options (see 'man nfs')",
44650 "format" : "pve-storage-options",
44651 "optional" : 1,
013dc89f
DM
44652 "type" : "string",
44653 "typetext" : "<string>"
44660702 44654 },
27a7acb2 44655 "password" : {
04d22a9f 44656 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
44657 "maxLength" : 256,
44658 "optional" : 1,
44659 "type" : "string",
44660 "typetext" : "<string>"
44661 },
44660702
DM
44662 "path" : {
44663 "description" : "File system path.",
44664 "format" : "pve-storage-path",
44665 "optional" : 1,
013dc89f
DM
44666 "type" : "string",
44667 "typetext" : "<string>"
44660702
DM
44668 },
44669 "pool" : {
44670 "description" : "Pool.",
44671 "optional" : 1,
013dc89f
DM
44672 "type" : "string",
44673 "typetext" : "<string>"
44660702 44674 },
4772952b
TL
44675 "port" : {
44676 "default" : 8007,
44677 "description" : "For non default port.",
44678 "maximum" : 65535,
44679 "minimum" : 1,
44680 "optional" : 1,
44681 "type" : "integer",
44682 "typetext" : "<integer> (1 - 65535)"
44683 },
44660702
DM
44684 "portal" : {
44685 "description" : "iSCSI portal (IP or DNS name with optional port).",
44686 "format" : "pve-storage-portal-dns",
44687 "optional" : 1,
013dc89f
DM
44688 "type" : "string",
44689 "typetext" : "<string>"
44660702 44690 },
5370fa8c
TL
44691 "preallocation" : {
44692 "default" : "metadata",
44693 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
44694 "enum" : [
44695 "off",
44696 "metadata",
44697 "falloc",
44698 "full"
44699 ],
44700 "optional" : 1,
44701 "type" : "string"
44702 },
739d4d64
TL
44703 "prune-backups" : {
44704 "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.",
44705 "format" : "prune-backups",
44706 "optional" : 1,
44707 "type" : "string",
4772952b 44708 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 44709 },
44660702
DM
44710 "saferemove" : {
44711 "description" : "Zero-out data when removing LVs.",
44712 "optional" : 1,
013dc89f
DM
44713 "type" : "boolean",
44714 "typetext" : "<boolean>"
44660702
DM
44715 },
44716 "saferemove_throughput" : {
44717 "description" : "Wipe throughput (cstream -t parameter value).",
44718 "optional" : 1,
013dc89f
DM
44719 "type" : "string",
44720 "typetext" : "<string>"
44660702
DM
44721 },
44722 "server" : {
44723 "description" : "Server IP or DNS name.",
44724 "format" : "pve-storage-server",
44725 "optional" : 1,
013dc89f
DM
44726 "type" : "string",
44727 "typetext" : "<string>"
44660702
DM
44728 },
44729 "server2" : {
44730 "description" : "Backup volfile server IP or DNS name.",
44731 "format" : "pve-storage-server",
44732 "optional" : 1,
44733 "requires" : "server",
013dc89f
DM
44734 "type" : "string",
44735 "typetext" : "<string>"
44660702 44736 },
27a7acb2
DM
44737 "share" : {
44738 "description" : "CIFS share.",
44739 "optional" : 1,
44740 "type" : "string",
44741 "typetext" : "<string>"
44742 },
44660702
DM
44743 "shared" : {
44744 "description" : "Mark storage as shared.",
44745 "optional" : 1,
013dc89f
DM
44746 "type" : "boolean",
44747 "typetext" : "<boolean>"
44660702 44748 },
27a7acb2 44749 "smbversion" : {
5370fa8c
TL
44750 "default" : "default",
44751 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 44752 "enum" : [
5370fa8c 44753 "default",
5da3d723
TL
44754 "2.0",
44755 "2.1",
5370fa8c
TL
44756 "3",
44757 "3.0",
44758 "3.11"
5da3d723 44759 ],
27a7acb2 44760 "optional" : 1,
5da3d723 44761 "type" : "string"
27a7acb2 44762 },
44660702
DM
44763 "sparse" : {
44764 "description" : "use sparse volumes",
44765 "optional" : 1,
013dc89f
DM
44766 "type" : "boolean",
44767 "typetext" : "<boolean>"
44660702
DM
44768 },
44769 "storage" : {
44770 "description" : "The storage identifier.",
44771 "format" : "pve-storage-id",
013dc89f
DM
44772 "type" : "string",
44773 "typetext" : "<string>"
44660702 44774 },
5da3d723
TL
44775 "subdir" : {
44776 "description" : "Subdir to mount.",
44777 "format" : "pve-storage-path",
44778 "optional" : 1,
44779 "type" : "string",
44780 "typetext" : "<string>"
44781 },
4bd7df8b
DM
44782 "tagged_only" : {
44783 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
44784 "optional" : 1,
013dc89f
DM
44785 "type" : "boolean",
44786 "typetext" : "<boolean>"
4bd7df8b 44787 },
44660702
DM
44788 "target" : {
44789 "description" : "iSCSI target.",
44790 "optional" : 1,
013dc89f
DM
44791 "type" : "string",
44792 "typetext" : "<string>"
44660702
DM
44793 },
44794 "thinpool" : {
44795 "description" : "LVM thin pool LV name.",
44796 "format" : "pve-storage-vgname",
44797 "optional" : 1,
013dc89f
DM
44798 "type" : "string",
44799 "typetext" : "<string>"
44660702
DM
44800 },
44801 "transport" : {
44802 "description" : "Gluster transport: tcp or rdma",
44803 "enum" : [
44804 "tcp",
44805 "rdma",
44806 "unix"
7aacca6f 44807 ],
44660702
DM
44808 "optional" : 1,
44809 "type" : "string"
56122987 44810 },
44660702
DM
44811 "type" : {
44812 "description" : "Storage type.",
44813 "enum" : [
5f4e66fe 44814 "btrfs",
5da3d723 44815 "cephfs",
27a7acb2 44816 "cifs",
44660702 44817 "dir",
44660702
DM
44818 "glusterfs",
44819 "iscsi",
44820 "iscsidirect",
44821 "lvm",
44822 "lvmthin",
44823 "nfs",
c5aa7e14 44824 "pbs",
44660702 44825 "rbd",
44660702
DM
44826 "zfs",
44827 "zfspool"
44828 ],
44829 "type" : "string"
56122987 44830 },
44660702
DM
44831 "username" : {
44832 "description" : "RBD Id.",
44833 "optional" : 1,
013dc89f
DM
44834 "type" : "string",
44835 "typetext" : "<string>"
7aacca6f 44836 },
44660702
DM
44837 "vgname" : {
44838 "description" : "Volume group name.",
44839 "format" : "pve-storage-vgname",
44840 "optional" : 1,
013dc89f
DM
44841 "type" : "string",
44842 "typetext" : "<string>"
44660702
DM
44843 },
44844 "volume" : {
44845 "description" : "Glusterfs Volume.",
44846 "optional" : 1,
013dc89f
DM
44847 "type" : "string",
44848 "typetext" : "<string>"
44660702
DM
44849 }
44850 },
44851 "type" : "object"
44852 },
44853 "permissions" : {
44854 "check" : [
44855 "perm",
44856 "/storage",
44857 [
44858 "Datastore.Allocate"
44859 ]
44860 ]
56122987 44861 },
44660702
DM
44862 "protected" : 1,
44863 "returns" : {
4772952b
TL
44864 "properties" : {
44865 "config" : {
44866 "additionalProperties" : 1,
44867 "description" : "Partial, possible server generated, configuration properties.",
44868 "optional" : 1,
44869 "properties" : {
44870 "encryption-key" : {
44871 "description" : "The, possible auto-generated, encryption-key.",
44872 "optional" : 1,
44873 "type" : "string"
44874 }
44875 },
44876 "type" : "object"
44877 },
44878 "storage" : {
44879 "description" : "The ID of the created storage.",
44880 "type" : "string"
44881 },
44882 "type" : {
44883 "description" : "The type of the created storage.",
44884 "enum" : [
5f4e66fe 44885 "btrfs",
4772952b
TL
44886 "cephfs",
44887 "cifs",
44888 "dir",
4772952b
TL
44889 "glusterfs",
44890 "iscsi",
44891 "iscsidirect",
44892 "lvm",
44893 "lvmthin",
44894 "nfs",
44895 "pbs",
44896 "rbd",
44897 "zfs",
44898 "zfspool"
44899 ],
44900 "type" : "string"
44901 }
44902 },
44903 "type" : "object"
44660702
DM
44904 }
44905 }
44906 },
44907 "leaf" : 0,
44908 "path" : "/storage",
44909 "text" : "storage"
44910 },
44911 {
44912 "children" : [
44913 {
56122987
DM
44914 "children" : [
44915 {
bb4c8cf8
TL
44916 "children" : [
44917 {
44918 "info" : {
44919 "GET" : {
e9cd3bd4 44920 "allowtoken" : 1,
bb4c8cf8
TL
44921 "description" : "Get user TFA types (Personal and Realm).",
44922 "method" : "GET",
44923 "name" : "read_user_tfa_type",
44924 "parameters" : {
44925 "additionalProperties" : 0,
44926 "properties" : {
5370fa8c
TL
44927 "multiple" : {
44928 "default" : 0,
44929 "description" : "Request all entries as an array.",
44930 "optional" : 1,
44931 "type" : "boolean",
44932 "typetext" : "<boolean>"
44933 },
bb4c8cf8
TL
44934 "userid" : {
44935 "description" : "User ID",
44936 "format" : "pve-userid",
44937 "maxLength" : 64,
44938 "type" : "string",
44939 "typetext" : "<string>"
44940 }
44941 }
44942 },
44943 "permissions" : {
44944 "check" : [
44945 "or",
44946 [
44947 "userid-param",
44948 "self"
44949 ],
44950 [
44951 "userid-group",
44952 [
44953 "User.Modify",
44954 "Sys.Audit"
44955 ]
44956 ]
44957 ]
44958 },
44959 "protected" : 1,
44960 "returns" : {
44961 "additionalProperties" : 0,
44962 "properties" : {
44963 "realm" : {
44964 "description" : "The type of TFA the users realm has set, if any.",
44965 "enum" : [
44966 "oath",
44967 "yubico"
44968 ],
44969 "optional" : 1,
44970 "type" : "string"
44971 },
5370fa8c
TL
44972 "types" : {
44973 "description" : "Array of the user configured TFA types, if any. Only available if 'multiple' was not passed.",
44974 "items" : {
44975 "description" : "A TFA type.",
44976 "enum" : [
44977 "totp",
44978 "u2f",
44979 "yubico",
44980 "webauthn",
44981 "recovedry"
44982 ],
44983 "type" : "string"
44984 },
44985 "optional" : 1,
44986 "type" : "array"
44987 },
bb4c8cf8 44988 "user" : {
5370fa8c 44989 "description" : "The type of TFA the user has set, if any. Only set if 'multiple' was not passed.",
bb4c8cf8
TL
44990 "enum" : [
44991 "oath",
44992 "u2f"
44993 ],
44994 "optional" : 1,
44995 "type" : "string"
44996 }
44997 },
44998 "type" : "object"
44999 }
45000 }
45001 },
45002 "leaf" : 1,
45003 "path" : "/access/users/{userid}/tfa",
45004 "text" : "tfa"
e9cd3bd4
TL
45005 },
45006 {
45007 "children" : [
45008 {
45009 "info" : {
45010 "DELETE" : {
45011 "allowtoken" : 1,
45012 "description" : "Remove API token for a specific user.",
45013 "method" : "DELETE",
45014 "name" : "remove_token",
45015 "parameters" : {
45016 "additionalProperties" : 0,
45017 "properties" : {
45018 "tokenid" : {
45019 "description" : "User-specific token identifier.",
45020 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
45021 "type" : "string"
45022 },
45023 "userid" : {
45024 "description" : "User ID",
45025 "format" : "pve-userid",
45026 "maxLength" : 64,
45027 "type" : "string",
45028 "typetext" : "<string>"
45029 }
45030 }
45031 },
45032 "permissions" : {
45033 "check" : [
45034 "or",
45035 [
45036 "userid-param",
45037 "self"
45038 ],
45039 [
45040 "perm",
45041 "/access/users/{userid}",
45042 [
45043 "User.Modify"
45044 ]
45045 ]
45046 ]
45047 },
45048 "protected" : 1,
45049 "returns" : {
c5aa7e14
TL
45050 "type" : "null"
45051 }
45052 },
45053 "GET" : {
45054 "allowtoken" : 1,
45055 "description" : "Get specific API token information.",
45056 "method" : "GET",
45057 "name" : "read_token",
45058 "parameters" : {
45059 "additionalProperties" : 0,
45060 "properties" : {
45061 "tokenid" : {
45062 "description" : "User-specific token identifier.",
45063 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
45064 "type" : "string"
45065 },
45066 "userid" : {
45067 "description" : "User ID",
45068 "format" : "pve-userid",
45069 "maxLength" : 64,
45070 "type" : "string",
45071 "typetext" : "<string>"
45072 }
45073 }
45074 },
45075 "permissions" : {
45076 "check" : [
45077 "or",
45078 [
45079 "userid-param",
45080 "self"
45081 ],
45082 [
45083 "perm",
45084 "/access/users/{userid}",
45085 [
45086 "User.Modify"
45087 ]
45088 ]
45089 ]
45090 },
45091 "returns" : {
45092 "properties" : {
45093 "comment" : {
45094 "optional" : 1,
45095 "type" : "string"
45096 },
45097 "expire" : {
45098 "default" : "same as user",
45099 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45100 "minimum" : 0,
45101 "optional" : 1,
45102 "type" : "integer"
45103 },
45104 "privsep" : {
45105 "default" : 1,
45106 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45107 "optional" : 1,
45108 "type" : "boolean"
45109 }
45110 },
45111 "type" : "object"
45112 }
45113 },
45114 "POST" : {
45115 "allowtoken" : 1,
45116 "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!",
45117 "method" : "POST",
45118 "name" : "generate_token",
45119 "parameters" : {
45120 "additionalProperties" : 0,
45121 "properties" : {
45122 "comment" : {
45123 "optional" : 1,
45124 "type" : "string",
45125 "typetext" : "<string>"
45126 },
45127 "expire" : {
45128 "default" : "same as user",
45129 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45130 "minimum" : 0,
45131 "optional" : 1,
45132 "type" : "integer",
45133 "typetext" : "<integer> (0 - N)"
45134 },
45135 "privsep" : {
45136 "default" : 1,
45137 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45138 "optional" : 1,
45139 "type" : "boolean",
45140 "typetext" : "<boolean>"
45141 },
45142 "tokenid" : {
45143 "description" : "User-specific token identifier.",
45144 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
45145 "type" : "string"
45146 },
45147 "userid" : {
45148 "description" : "User ID",
45149 "format" : "pve-userid",
45150 "maxLength" : 64,
45151 "type" : "string",
45152 "typetext" : "<string>"
45153 }
45154 }
45155 },
45156 "permissions" : {
45157 "check" : [
45158 "or",
45159 [
45160 "userid-param",
45161 "self"
45162 ],
45163 [
45164 "perm",
45165 "/access/users/{userid}",
45166 [
45167 "User.Modify"
45168 ]
45169 ]
45170 ]
45171 },
45172 "protected" : 1,
45173 "returns" : {
e9cd3bd4
TL
45174 "additionalProperties" : 0,
45175 "properties" : {
c5aa7e14
TL
45176 "full-tokenid" : {
45177 "description" : "The full token id.",
45178 "format_description" : "<userid>!<tokenid>",
e9cd3bd4
TL
45179 "type" : "string"
45180 },
e9cd3bd4
TL
45181 "info" : {
45182 "properties" : {
45183 "comment" : {
45184 "optional" : 1,
45185 "type" : "string"
45186 },
45187 "expire" : {
45188 "default" : "same as user",
45189 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45190 "minimum" : 0,
45191 "optional" : 1,
45192 "type" : "integer"
45193 },
45194 "privsep" : {
45195 "default" : 1,
45196 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45197 "optional" : 1,
45198 "type" : "boolean"
45199 }
45200 },
45201 "type" : "object"
45202 },
45203 "value" : {
45204 "description" : "API token value used for authentication.",
45205 "type" : "string"
45206 }
45207 },
45208 "type" : "object"
45209 }
45210 },
45211 "PUT" : {
45212 "allowtoken" : 1,
45213 "description" : "Update API token for a specific user.",
45214 "method" : "PUT",
45215 "name" : "update_token_info",
45216 "parameters" : {
45217 "additionalProperties" : 0,
45218 "properties" : {
45219 "comment" : {
45220 "optional" : 1,
45221 "type" : "string",
45222 "typetext" : "<string>"
45223 },
45224 "expire" : {
45225 "default" : "same as user",
45226 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45227 "minimum" : 0,
45228 "optional" : 1,
45229 "type" : "integer",
45230 "typetext" : "<integer> (0 - N)"
45231 },
45232 "privsep" : {
45233 "default" : 1,
45234 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45235 "optional" : 1,
45236 "type" : "boolean",
45237 "typetext" : "<boolean>"
45238 },
45239 "tokenid" : {
45240 "description" : "User-specific token identifier.",
45241 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
45242 "type" : "string"
45243 },
45244 "userid" : {
45245 "description" : "User ID",
45246 "format" : "pve-userid",
45247 "maxLength" : 64,
45248 "type" : "string",
45249 "typetext" : "<string>"
45250 }
45251 }
45252 },
45253 "permissions" : {
45254 "check" : [
45255 "or",
45256 [
45257 "userid-param",
45258 "self"
45259 ],
45260 [
45261 "perm",
45262 "/access/users/{userid}",
45263 [
45264 "User.Modify"
45265 ]
45266 ]
45267 ]
45268 },
45269 "protected" : 1,
45270 "returns" : {
45271 "description" : "Updated token information.",
45272 "properties" : {
45273 "comment" : {
45274 "optional" : 1,
45275 "type" : "string"
45276 },
45277 "expire" : {
45278 "default" : "same as user",
45279 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45280 "minimum" : 0,
45281 "optional" : 1,
45282 "type" : "integer"
45283 },
45284 "privsep" : {
45285 "default" : 1,
45286 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45287 "optional" : 1,
45288 "type" : "boolean"
45289 }
45290 },
45291 "type" : "object"
45292 }
45293 }
45294 },
45295 "leaf" : 1,
45296 "path" : "/access/users/{userid}/token/{tokenid}",
45297 "text" : "{tokenid}"
45298 }
45299 ],
45300 "info" : {
45301 "GET" : {
45302 "allowtoken" : 1,
45303 "description" : "Get user API tokens.",
45304 "method" : "GET",
45305 "name" : "token_index",
45306 "parameters" : {
45307 "additionalProperties" : 0,
45308 "properties" : {
45309 "userid" : {
45310 "description" : "User ID",
45311 "format" : "pve-userid",
45312 "maxLength" : 64,
45313 "type" : "string",
45314 "typetext" : "<string>"
45315 }
45316 }
45317 },
45318 "permissions" : {
45319 "check" : [
45320 "or",
45321 [
45322 "userid-param",
45323 "self"
45324 ],
45325 [
45326 "perm",
45327 "/access/users/{userid}",
45328 [
45329 "User.Modify"
45330 ]
45331 ]
45332 ]
45333 },
45334 "returns" : {
45335 "items" : {
45336 "properties" : {
45337 "comment" : {
45338 "optional" : 1,
45339 "type" : "string"
45340 },
45341 "expire" : {
45342 "default" : "same as user",
45343 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45344 "minimum" : 0,
45345 "optional" : 1,
45346 "type" : "integer"
45347 },
45348 "privsep" : {
45349 "default" : 1,
45350 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45351 "optional" : 1,
45352 "type" : "boolean"
45353 },
45354 "tokenid" : {
45355 "description" : "User-specific token identifier.",
45356 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
45357 "type" : "string"
45358 }
45359 },
45360 "type" : "object"
45361 },
45362 "links" : [
45363 {
45364 "href" : "{tokenid}",
45365 "rel" : "child"
45366 }
45367 ],
45368 "type" : "array"
45369 }
45370 }
45371 },
45372 "leaf" : 0,
45373 "path" : "/access/users/{userid}/token",
45374 "text" : "token"
bb4c8cf8
TL
45375 }
45376 ],
56122987 45377 "info" : {
44660702 45378 "DELETE" : {
e9cd3bd4 45379 "allowtoken" : 1,
44660702
DM
45380 "description" : "Delete user.",
45381 "method" : "DELETE",
45382 "name" : "delete_user",
56122987 45383 "parameters" : {
7aacca6f 45384 "additionalProperties" : 0,
56122987 45385 "properties" : {
56122987 45386 "userid" : {
56122987
DM
45387 "description" : "User ID",
45388 "format" : "pve-userid",
44660702 45389 "maxLength" : 64,
013dc89f
DM
45390 "type" : "string",
45391 "typetext" : "<string>"
56122987 45392 }
7aacca6f 45393 }
56122987 45394 },
56122987
DM
45395 "permissions" : {
45396 "check" : [
44660702 45397 "and",
56122987 45398 [
44660702
DM
45399 "userid-param",
45400 "Realm.AllocateUser"
56122987 45401 ],
44660702
DM
45402 [
45403 "userid-group",
45404 [
45405 "User.Modify"
45406 ]
45407 ]
56122987 45408 ]
7aacca6f 45409 },
44660702 45410 "protected" : 1,
56122987
DM
45411 "returns" : {
45412 "type" : "null"
44660702 45413 }
7aacca6f 45414 },
44660702 45415 "GET" : {
e9cd3bd4 45416 "allowtoken" : 1,
44660702
DM
45417 "description" : "Get user configuration.",
45418 "method" : "GET",
45419 "name" : "read_user",
56122987
DM
45420 "parameters" : {
45421 "additionalProperties" : 0,
45422 "properties" : {
45423 "userid" : {
44660702 45424 "description" : "User ID",
56122987 45425 "format" : "pve-userid",
44660702 45426 "maxLength" : 64,
013dc89f
DM
45427 "type" : "string",
45428 "typetext" : "<string>"
56122987
DM
45429 }
45430 }
45431 },
56122987
DM
45432 "permissions" : {
45433 "check" : [
44660702 45434 "userid-group",
56122987 45435 [
44660702
DM
45436 "User.Modify",
45437 "Sys.Audit"
56122987
DM
45438 ]
45439 ]
45440 },
56122987 45441 "returns" : {
7aacca6f 45442 "additionalProperties" : 0,
56122987 45443 "properties" : {
44660702
DM
45444 "comment" : {
45445 "optional" : 1,
45446 "type" : "string"
56122987 45447 },
44660702 45448 "email" : {
e2d681b3 45449 "format" : "email-opt",
44660702
DM
45450 "optional" : 1,
45451 "type" : "string"
7aacca6f
DM
45452 },
45453 "enable" : {
e2d681b3
TL
45454 "default" : 1,
45455 "description" : "Enable the account (default). You can set this to '0' to disable the account",
45456 "optional" : 1,
7aacca6f
DM
45457 "type" : "boolean"
45458 },
44660702 45459 "expire" : {
e2d681b3
TL
45460 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
45461 "minimum" : 0,
44660702
DM
45462 "optional" : 1,
45463 "type" : "integer"
45464 },
45465 "firstname" : {
56122987
DM
45466 "optional" : 1,
45467 "type" : "string"
45468 },
44660702 45469 "groups" : {
e9cd3bd4
TL
45470 "items" : {
45471 "format" : "pve-groupid",
45472 "type" : "string"
45473 },
45474 "optional" : 1,
44660702 45475 "type" : "array"
56122987 45476 },
44660702 45477 "keys" : {
e2d681b3 45478 "description" : "Keys for two factor auth (yubico).",
44660702
DM
45479 "optional" : 1,
45480 "type" : "string"
7aacca6f 45481 },
44660702
DM
45482 "lastname" : {
45483 "optional" : 1,
45484 "type" : "string"
e9cd3bd4
TL
45485 },
45486 "tokens" : {
45487 "optional" : 1,
45488 "type" : "object"
56122987 45489 }
e2d681b3
TL
45490 },
45491 "type" : "object"
44660702
DM
45492 }
45493 },
45494 "PUT" : {
e9cd3bd4 45495 "allowtoken" : 1,
44660702
DM
45496 "description" : "Update user configuration.",
45497 "method" : "PUT",
45498 "name" : "update_user",
56122987 45499 "parameters" : {
44660702 45500 "additionalProperties" : 0,
56122987 45501 "properties" : {
44660702
DM
45502 "append" : {
45503 "optional" : 1,
45504 "requires" : "groups",
013dc89f
DM
45505 "type" : "boolean",
45506 "typetext" : "<boolean>"
44660702
DM
45507 },
45508 "comment" : {
45509 "optional" : 1,
013dc89f
DM
45510 "type" : "string",
45511 "typetext" : "<string>"
44660702
DM
45512 },
45513 "email" : {
45514 "format" : "email-opt",
45515 "optional" : 1,
013dc89f
DM
45516 "type" : "string",
45517 "typetext" : "<string>"
44660702
DM
45518 },
45519 "enable" : {
e2d681b3
TL
45520 "default" : 1,
45521 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 45522 "optional" : 1,
013dc89f
DM
45523 "type" : "boolean",
45524 "typetext" : "<boolean>"
44660702
DM
45525 },
45526 "expire" : {
45527 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
45528 "minimum" : 0,
45529 "optional" : 1,
4bd7df8b 45530 "type" : "integer",
013dc89f 45531 "typetext" : "<integer> (0 - N)"
44660702
DM
45532 },
45533 "firstname" : {
45534 "optional" : 1,
013dc89f
DM
45535 "type" : "string",
45536 "typetext" : "<string>"
44660702
DM
45537 },
45538 "groups" : {
45539 "format" : "pve-groupid-list",
45540 "optional" : 1,
013dc89f
DM
45541 "type" : "string",
45542 "typetext" : "<string>"
44660702
DM
45543 },
45544 "keys" : {
45545 "description" : "Keys for two factor auth (yubico).",
45546 "optional" : 1,
013dc89f
DM
45547 "type" : "string",
45548 "typetext" : "<string>"
44660702
DM
45549 },
45550 "lastname" : {
45551 "optional" : 1,
013dc89f
DM
45552 "type" : "string",
45553 "typetext" : "<string>"
44660702 45554 },
56122987 45555 "userid" : {
56122987
DM
45556 "description" : "User ID",
45557 "format" : "pve-userid",
44660702 45558 "maxLength" : 64,
013dc89f
DM
45559 "type" : "string",
45560 "typetext" : "<string>"
56122987 45561 }
44660702 45562 }
56122987 45563 },
56122987
DM
45564 "permissions" : {
45565 "check" : [
45566 "userid-group",
45567 [
44660702
DM
45568 "User.Modify"
45569 ],
45570 "groups_param",
45571 1
56122987
DM
45572 ]
45573 },
44660702
DM
45574 "protected" : 1,
45575 "returns" : {
45576 "type" : "null"
45577 }
56122987
DM
45578 }
45579 },
bb4c8cf8 45580 "leaf" : 0,
44660702 45581 "path" : "/access/users/{userid}",
7aacca6f 45582 "text" : "{userid}"
56122987 45583 }
7aacca6f 45584 ],
56122987 45585 "info" : {
7aacca6f 45586 "GET" : {
e9cd3bd4 45587 "allowtoken" : 1,
44660702
DM
45588 "description" : "User index.",
45589 "method" : "GET",
7aacca6f 45590 "name" : "index",
56122987 45591 "parameters" : {
44660702
DM
45592 "additionalProperties" : 0,
45593 "properties" : {
45594 "enabled" : {
45595 "description" : "Optional filter for enable property.",
45596 "optional" : 1,
013dc89f
DM
45597 "type" : "boolean",
45598 "typetext" : "<boolean>"
e9cd3bd4
TL
45599 },
45600 "full" : {
45601 "default" : 0,
45602 "description" : "Include group and token information.",
45603 "optional" : 1,
45604 "type" : "boolean",
45605 "typetext" : "<boolean>"
44660702
DM
45606 }
45607 }
45608 },
45609 "permissions" : {
45610 "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.",
45611 "user" : "all"
56122987 45612 },
7aacca6f 45613 "returns" : {
7aacca6f
DM
45614 "items" : {
45615 "properties" : {
e2d681b3
TL
45616 "comment" : {
45617 "optional" : 1,
45618 "type" : "string"
45619 },
45620 "email" : {
45621 "format" : "email-opt",
45622 "optional" : 1,
45623 "type" : "string"
45624 },
45625 "enable" : {
45626 "default" : 1,
45627 "description" : "Enable the account (default). You can set this to '0' to disable the account",
45628 "optional" : 1,
45629 "type" : "boolean"
45630 },
45631 "expire" : {
45632 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
45633 "minimum" : 0,
45634 "optional" : 1,
45635 "type" : "integer"
45636 },
45637 "firstname" : {
45638 "optional" : 1,
45639 "type" : "string"
45640 },
e9cd3bd4
TL
45641 "groups" : {
45642 "format" : "pve-groupid-list",
45643 "optional" : 1,
45644 "type" : "string"
45645 },
e2d681b3
TL
45646 "keys" : {
45647 "description" : "Keys for two factor auth (yubico).",
45648 "optional" : 1,
45649 "type" : "string"
45650 },
45651 "lastname" : {
45652 "optional" : 1,
45653 "type" : "string"
45654 },
34f3e481
TL
45655 "realm-type" : {
45656 "description" : "The type of the users realm",
45657 "format" : "pve-realm",
45658 "optional" : 1,
45659 "type" : "string"
45660 },
e9cd3bd4
TL
45661 "tokens" : {
45662 "items" : {
45663 "properties" : {
45664 "comment" : {
45665 "optional" : 1,
45666 "type" : "string"
45667 },
45668 "expire" : {
45669 "default" : "same as user",
45670 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
45671 "minimum" : 0,
45672 "optional" : 1,
45673 "type" : "integer"
45674 },
45675 "privsep" : {
45676 "default" : 1,
45677 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
45678 "optional" : 1,
45679 "type" : "boolean"
45680 },
45681 "tokenid" : {
45682 "description" : "User-specific token identifier.",
45683 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
45684 "type" : "string"
45685 }
45686 },
45687 "type" : "object"
45688 },
45689 "optional" : 1,
45690 "type" : "array"
45691 },
44660702 45692 "userid" : {
e2d681b3
TL
45693 "description" : "User ID",
45694 "format" : "pve-userid",
45695 "maxLength" : 64,
7aacca6f
DM
45696 "type" : "string"
45697 }
45698 },
45699 "type" : "object"
45700 },
44660702
DM
45701 "links" : [
45702 {
45703 "href" : "{userid}",
45704 "rel" : "child"
45705 }
45706 ],
7aacca6f
DM
45707 "type" : "array"
45708 }
45709 },
45710 "POST" : {
e9cd3bd4 45711 "allowtoken" : 1,
44660702 45712 "description" : "Create new user.",
7aacca6f 45713 "method" : "POST",
44660702 45714 "name" : "create_user",
56122987 45715 "parameters" : {
7aacca6f
DM
45716 "additionalProperties" : 0,
45717 "properties" : {
44660702
DM
45718 "comment" : {
45719 "optional" : 1,
013dc89f
DM
45720 "type" : "string",
45721 "typetext" : "<string>"
7aacca6f 45722 },
44660702
DM
45723 "email" : {
45724 "format" : "email-opt",
45725 "optional" : 1,
013dc89f
DM
45726 "type" : "string",
45727 "typetext" : "<string>"
44660702
DM
45728 },
45729 "enable" : {
45730 "default" : 1,
e2d681b3 45731 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 45732 "optional" : 1,
013dc89f
DM
45733 "type" : "boolean",
45734 "typetext" : "<boolean>"
44660702
DM
45735 },
45736 "expire" : {
45737 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
45738 "minimum" : 0,
45739 "optional" : 1,
4bd7df8b 45740 "type" : "integer",
013dc89f 45741 "typetext" : "<integer> (0 - N)"
44660702
DM
45742 },
45743 "firstname" : {
45744 "optional" : 1,
013dc89f
DM
45745 "type" : "string",
45746 "typetext" : "<string>"
44660702
DM
45747 },
45748 "groups" : {
45749 "format" : "pve-groupid-list",
45750 "optional" : 1,
013dc89f
DM
45751 "type" : "string",
45752 "typetext" : "<string>"
44660702
DM
45753 },
45754 "keys" : {
45755 "description" : "Keys for two factor auth (yubico).",
45756 "optional" : 1,
013dc89f
DM
45757 "type" : "string",
45758 "typetext" : "<string>"
44660702
DM
45759 },
45760 "lastname" : {
7aacca6f 45761 "optional" : 1,
013dc89f
DM
45762 "type" : "string",
45763 "typetext" : "<string>"
44660702
DM
45764 },
45765 "password" : {
45766 "description" : "Initial password.",
45767 "maxLength" : 64,
45768 "minLength" : 5,
45769 "optional" : 1,
013dc89f
DM
45770 "type" : "string",
45771 "typetext" : "<string>"
44660702
DM
45772 },
45773 "userid" : {
45774 "description" : "User ID",
45775 "format" : "pve-userid",
45776 "maxLength" : 64,
013dc89f
DM
45777 "type" : "string",
45778 "typetext" : "<string>"
56122987 45779 }
7aacca6f 45780 }
56122987 45781 },
44660702
DM
45782 "permissions" : {
45783 "check" : [
45784 "and",
45785 [
45786 "userid-param",
45787 "Realm.AllocateUser"
45788 ],
45789 [
45790 "userid-group",
45791 [
45792 "User.Modify"
45793 ],
45794 "groups_param",
45795 1
45796 ]
45797 ],
45798 "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."
45799 },
45800 "protected" : 1,
45801 "returns" : {
45802 "type" : "null"
45803 }
56122987
DM
45804 }
45805 },
44660702
DM
45806 "leaf" : 0,
45807 "path" : "/access/users",
45808 "text" : "users"
45809 },
45810 {
56122987
DM
45811 "children" : [
45812 {
56122987
DM
45813 "info" : {
45814 "DELETE" : {
e9cd3bd4 45815 "allowtoken" : 1,
44660702
DM
45816 "description" : "Delete group.",
45817 "method" : "DELETE",
45818 "name" : "delete_group",
45819 "parameters" : {
45820 "additionalProperties" : 0,
45821 "properties" : {
45822 "groupid" : {
45823 "format" : "pve-groupid",
013dc89f
DM
45824 "type" : "string",
45825 "typetext" : "<string>"
44660702
DM
45826 }
45827 }
45828 },
7aacca6f
DM
45829 "permissions" : {
45830 "check" : [
45831 "perm",
45832 "/access/groups",
45833 [
45834 "Group.Allocate"
45835 ]
45836 ]
45837 },
7aacca6f 45838 "protected" : 1,
7aacca6f
DM
45839 "returns" : {
45840 "type" : "null"
44660702 45841 }
7aacca6f 45842 },
44660702 45843 "GET" : {
e9cd3bd4 45844 "allowtoken" : 1,
44660702
DM
45845 "description" : "Get group configuration.",
45846 "method" : "GET",
45847 "name" : "read_group",
45848 "parameters" : {
45849 "additionalProperties" : 0,
45850 "properties" : {
45851 "groupid" : {
45852 "format" : "pve-groupid",
013dc89f
DM
45853 "type" : "string",
45854 "typetext" : "<string>"
44660702
DM
45855 }
45856 }
56122987 45857 },
7aacca6f
DM
45858 "permissions" : {
45859 "check" : [
45860 "perm",
45861 "/access/groups",
45862 [
44660702 45863 "Sys.Audit",
7aacca6f 45864 "Group.Allocate"
44660702
DM
45865 ],
45866 "any",
45867 1
7aacca6f
DM
45868 ]
45869 },
7aacca6f 45870 "returns" : {
44660702 45871 "additionalProperties" : 0,
7aacca6f
DM
45872 "properties" : {
45873 "comment" : {
44660702
DM
45874 "optional" : 1,
45875 "type" : "string"
7aacca6f
DM
45876 },
45877 "members" : {
45878 "items" : {
e2d681b3
TL
45879 "description" : "User ID",
45880 "format" : "pve-userid",
45881 "maxLength" : 64,
7aacca6f
DM
45882 "type" : "string"
45883 },
45884 "type" : "array"
45885 }
45886 },
44660702
DM
45887 "type" : "object"
45888 }
45889 },
45890 "PUT" : {
e9cd3bd4 45891 "allowtoken" : 1,
44660702
DM
45892 "description" : "Update group data.",
45893 "method" : "PUT",
45894 "name" : "update_group",
56122987 45895 "parameters" : {
44660702 45896 "additionalProperties" : 0,
56122987 45897 "properties" : {
44660702
DM
45898 "comment" : {
45899 "optional" : 1,
013dc89f
DM
45900 "type" : "string",
45901 "typetext" : "<string>"
44660702 45902 },
56122987
DM
45903 "groupid" : {
45904 "format" : "pve-groupid",
013dc89f
DM
45905 "type" : "string",
45906 "typetext" : "<string>"
56122987 45907 }
44660702 45908 }
56122987 45909 },
56122987
DM
45910 "permissions" : {
45911 "check" : [
45912 "perm",
45913 "/access/groups",
45914 [
45915 "Group.Allocate"
44660702 45916 ]
56122987
DM
45917 ]
45918 },
44660702
DM
45919 "protected" : 1,
45920 "returns" : {
45921 "type" : "null"
45922 }
7aacca6f
DM
45923 }
45924 },
7aacca6f 45925 "leaf" : 1,
44660702
DM
45926 "path" : "/access/groups/{groupid}",
45927 "text" : "{groupid}"
45928 }
45929 ],
45930 "info" : {
45931 "GET" : {
e9cd3bd4 45932 "allowtoken" : 1,
44660702
DM
45933 "description" : "Group index.",
45934 "method" : "GET",
45935 "name" : "index",
45936 "parameters" : {
45937 "additionalProperties" : 0
45938 },
45939 "permissions" : {
45940 "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
45941 "user" : "all"
45942 },
45943 "returns" : {
45944 "items" : {
45945 "properties" : {
e2d681b3
TL
45946 "comment" : {
45947 "optional" : 1,
45948 "type" : "string"
45949 },
44660702 45950 "groupid" : {
e2d681b3 45951 "format" : "pve-groupid",
44660702 45952 "type" : "string"
e9cd3bd4
TL
45953 },
45954 "users" : {
45955 "description" : "list of users which form this group",
45956 "format" : "pve-userid-list",
45957 "optional" : 1,
45958 "type" : "string"
44660702
DM
45959 }
45960 },
45961 "type" : "object"
45962 },
45963 "links" : [
45964 {
45965 "href" : "{groupid}",
45966 "rel" : "child"
45967 }
45968 ],
45969 "type" : "array"
45970 }
45971 },
45972 "POST" : {
e9cd3bd4 45973 "allowtoken" : 1,
44660702
DM
45974 "description" : "Create new group.",
45975 "method" : "POST",
45976 "name" : "create_group",
45977 "parameters" : {
45978 "additionalProperties" : 0,
45979 "properties" : {
45980 "comment" : {
45981 "optional" : 1,
013dc89f
DM
45982 "type" : "string",
45983 "typetext" : "<string>"
44660702
DM
45984 },
45985 "groupid" : {
45986 "format" : "pve-groupid",
013dc89f
DM
45987 "type" : "string",
45988 "typetext" : "<string>"
44660702
DM
45989 }
45990 }
45991 },
45992 "permissions" : {
45993 "check" : [
45994 "perm",
45995 "/access/groups",
45996 [
45997 "Group.Allocate"
45998 ]
45999 ]
46000 },
46001 "protected" : 1,
46002 "returns" : {
46003 "type" : "null"
46004 }
7aacca6f 46005 }
44660702 46006 },
7aacca6f 46007 "leaf" : 0,
44660702
DM
46008 "path" : "/access/groups",
46009 "text" : "groups"
7aacca6f
DM
46010 },
46011 {
46012 "children" : [
46013 {
7aacca6f 46014 "info" : {
7aacca6f 46015 "DELETE" : {
e9cd3bd4 46016 "allowtoken" : 1,
7aacca6f 46017 "description" : "Delete role.",
44660702 46018 "method" : "DELETE",
7aacca6f 46019 "name" : "delete_role",
56122987
DM
46020 "parameters" : {
46021 "additionalProperties" : 0,
46022 "properties" : {
7aacca6f
DM
46023 "roleid" : {
46024 "format" : "pve-roleid",
013dc89f
DM
46025 "type" : "string",
46026 "typetext" : "<string>"
56122987
DM
46027 }
46028 }
46029 },
56122987
DM
46030 "permissions" : {
46031 "check" : [
46032 "perm",
7aacca6f 46033 "/access",
56122987 46034 [
7aacca6f
DM
46035 "Sys.Modify"
46036 ]
56122987 46037 ]
44660702
DM
46038 },
46039 "protected" : 1,
46040 "returns" : {
46041 "type" : "null"
56122987
DM
46042 }
46043 },
44660702 46044 "GET" : {
e9cd3bd4 46045 "allowtoken" : 1,
44660702
DM
46046 "description" : "Get role configuration.",
46047 "method" : "GET",
46048 "name" : "read_role",
46049 "parameters" : {
46050 "additionalProperties" : 0,
46051 "properties" : {
46052 "roleid" : {
46053 "format" : "pve-roleid",
013dc89f
DM
46054 "type" : "string",
46055 "typetext" : "<string>"
44660702
DM
46056 }
46057 }
46058 },
7aacca6f 46059 "permissions" : {
44660702 46060 "user" : "all"
56122987 46061 },
e2d681b3
TL
46062 "returns" : {
46063 "additionalProperties" : 0,
46064 "properties" : {
46065 "Datastore.Allocate" : {
46066 "optional" : 1,
46067 "type" : "boolean"
46068 },
46069 "Datastore.AllocateSpace" : {
46070 "optional" : 1,
46071 "type" : "boolean"
46072 },
46073 "Datastore.AllocateTemplate" : {
46074 "optional" : 1,
46075 "type" : "boolean"
46076 },
46077 "Datastore.Audit" : {
46078 "optional" : 1,
46079 "type" : "boolean"
46080 },
46081 "Group.Allocate" : {
46082 "optional" : 1,
46083 "type" : "boolean"
46084 },
46085 "Permissions.Modify" : {
46086 "optional" : 1,
46087 "type" : "boolean"
46088 },
46089 "Pool.Allocate" : {
46090 "optional" : 1,
46091 "type" : "boolean"
46092 },
0695fdaf
TL
46093 "Pool.Audit" : {
46094 "optional" : 1,
46095 "type" : "boolean"
46096 },
e2d681b3
TL
46097 "Realm.Allocate" : {
46098 "optional" : 1,
46099 "type" : "boolean"
46100 },
46101 "Realm.AllocateUser" : {
46102 "optional" : 1,
46103 "type" : "boolean"
46104 },
5c1699e5
TL
46105 "SDN.Allocate" : {
46106 "optional" : 1,
46107 "type" : "boolean"
46108 },
46109 "SDN.Audit" : {
46110 "optional" : 1,
46111 "type" : "boolean"
46112 },
e2d681b3
TL
46113 "Sys.Audit" : {
46114 "optional" : 1,
46115 "type" : "boolean"
46116 },
46117 "Sys.Console" : {
46118 "optional" : 1,
46119 "type" : "boolean"
46120 },
46121 "Sys.Modify" : {
46122 "optional" : 1,
46123 "type" : "boolean"
46124 },
46125 "Sys.PowerMgmt" : {
46126 "optional" : 1,
46127 "type" : "boolean"
46128 },
46129 "Sys.Syslog" : {
46130 "optional" : 1,
46131 "type" : "boolean"
46132 },
46133 "User.Modify" : {
46134 "optional" : 1,
46135 "type" : "boolean"
46136 },
46137 "VM.Allocate" : {
46138 "optional" : 1,
46139 "type" : "boolean"
46140 },
46141 "VM.Audit" : {
46142 "optional" : 1,
46143 "type" : "boolean"
46144 },
46145 "VM.Backup" : {
46146 "optional" : 1,
46147 "type" : "boolean"
46148 },
46149 "VM.Clone" : {
46150 "optional" : 1,
46151 "type" : "boolean"
46152 },
46153 "VM.Config.CDROM" : {
46154 "optional" : 1,
46155 "type" : "boolean"
46156 },
46157 "VM.Config.CPU" : {
46158 "optional" : 1,
46159 "type" : "boolean"
46160 },
ac70d7d1
TL
46161 "VM.Config.Cloudinit" : {
46162 "optional" : 1,
46163 "type" : "boolean"
46164 },
e2d681b3
TL
46165 "VM.Config.Disk" : {
46166 "optional" : 1,
46167 "type" : "boolean"
46168 },
46169 "VM.Config.HWType" : {
46170 "optional" : 1,
46171 "type" : "boolean"
46172 },
46173 "VM.Config.Memory" : {
46174 "optional" : 1,
46175 "type" : "boolean"
46176 },
46177 "VM.Config.Network" : {
46178 "optional" : 1,
46179 "type" : "boolean"
46180 },
46181 "VM.Config.Options" : {
46182 "optional" : 1,
46183 "type" : "boolean"
46184 },
46185 "VM.Console" : {
46186 "optional" : 1,
46187 "type" : "boolean"
46188 },
46189 "VM.Migrate" : {
46190 "optional" : 1,
46191 "type" : "boolean"
46192 },
46193 "VM.Monitor" : {
46194 "optional" : 1,
46195 "type" : "boolean"
46196 },
46197 "VM.PowerMgmt" : {
46198 "optional" : 1,
46199 "type" : "boolean"
46200 },
46201 "VM.Snapshot" : {
46202 "optional" : 1,
46203 "type" : "boolean"
46204 },
46205 "VM.Snapshot.Rollback" : {
46206 "optional" : 1,
46207 "type" : "boolean"
46208 }
46209 },
46210 "type" : "object"
46211 }
44660702
DM
46212 },
46213 "PUT" : {
e9cd3bd4 46214 "allowtoken" : 1,
e2d681b3 46215 "description" : "Update an existing role.",
44660702
DM
46216 "method" : "PUT",
46217 "name" : "update_role",
56122987
DM
46218 "parameters" : {
46219 "additionalProperties" : 0,
46220 "properties" : {
7aacca6f 46221 "append" : {
44660702 46222 "optional" : 1,
7aacca6f 46223 "requires" : "privs",
013dc89f
DM
46224 "type" : "boolean",
46225 "typetext" : "<boolean>"
7aacca6f
DM
46226 },
46227 "privs" : {
46228 "format" : "pve-priv-list",
e2d681b3 46229 "optional" : 1,
013dc89f
DM
46230 "type" : "string",
46231 "typetext" : "<string>"
44660702
DM
46232 },
46233 "roleid" : {
46234 "format" : "pve-roleid",
013dc89f
DM
46235 "type" : "string",
46236 "typetext" : "<string>"
56122987
DM
46237 }
46238 }
46239 },
44660702
DM
46240 "permissions" : {
46241 "check" : [
46242 "perm",
46243 "/access",
46244 [
46245 "Sys.Modify"
46246 ]
46247 ]
46248 },
56122987 46249 "protected" : 1,
7aacca6f
DM
46250 "returns" : {
46251 "type" : "null"
56122987
DM
46252 }
46253 }
46254 },
44660702 46255 "leaf" : 1,
7aacca6f 46256 "path" : "/access/roles/{roleid}",
44660702 46257 "text" : "{roleid}"
56122987
DM
46258 }
46259 ],
56122987 46260 "info" : {
7aacca6f 46261 "GET" : {
e9cd3bd4 46262 "allowtoken" : 1,
7aacca6f 46263 "description" : "Role index.",
44660702 46264 "method" : "GET",
7aacca6f 46265 "name" : "index",
56122987 46266 "parameters" : {
56122987
DM
46267 "additionalProperties" : 0
46268 },
7aacca6f
DM
46269 "permissions" : {
46270 "user" : "all"
46271 },
56122987 46272 "returns" : {
7aacca6f 46273 "items" : {
7aacca6f 46274 "properties" : {
e2d681b3
TL
46275 "privs" : {
46276 "format" : "pve-priv-list",
46277 "optional" : 1,
46278 "type" : "string"
46279 },
7aacca6f 46280 "roleid" : {
e2d681b3 46281 "format" : "pve-roleid",
7aacca6f 46282 "type" : "string"
e2d681b3
TL
46283 },
46284 "special" : {
46285 "default" : 0,
46286 "optional" : 1,
46287 "type" : "boolean"
7aacca6f 46288 }
44660702
DM
46289 },
46290 "type" : "object"
46291 },
46292 "links" : [
46293 {
46294 "href" : "{roleid}",
46295 "rel" : "child"
7aacca6f 46296 }
44660702
DM
46297 ],
46298 "type" : "array"
46299 }
7aacca6f
DM
46300 },
46301 "POST" : {
e9cd3bd4 46302 "allowtoken" : 1,
7aacca6f 46303 "description" : "Create new role.",
44660702
DM
46304 "method" : "POST",
46305 "name" : "create_role",
7aacca6f
DM
46306 "parameters" : {
46307 "additionalProperties" : 0,
46308 "properties" : {
7aacca6f
DM
46309 "privs" : {
46310 "format" : "pve-priv-list",
46311 "optional" : 1,
013dc89f
DM
46312 "type" : "string",
46313 "typetext" : "<string>"
44660702
DM
46314 },
46315 "roleid" : {
46316 "format" : "pve-roleid",
013dc89f
DM
46317 "type" : "string",
46318 "typetext" : "<string>"
7aacca6f
DM
46319 }
46320 }
46321 },
44660702
DM
46322 "permissions" : {
46323 "check" : [
46324 "perm",
46325 "/access",
46326 [
46327 "Sys.Modify"
46328 ]
46329 ]
46330 },
46331 "protected" : 1,
7aacca6f
DM
46332 "returns" : {
46333 "type" : "null"
46334 }
46335 }
46336 },
44660702 46337 "leaf" : 0,
7aacca6f 46338 "path" : "/access/roles",
44660702 46339 "text" : "roles"
7aacca6f
DM
46340 },
46341 {
46342 "info" : {
56122987 46343 "GET" : {
e9cd3bd4 46344 "allowtoken" : 1,
44660702
DM
46345 "description" : "Get Access Control List (ACLs).",
46346 "method" : "GET",
46347 "name" : "read_acl",
7aacca6f
DM
46348 "parameters" : {
46349 "additionalProperties" : 0
46350 },
44660702
DM
46351 "permissions" : {
46352 "description" : "The returned list is restricted to objects where you have rights to modify permissions.",
46353 "user" : "all"
46354 },
56122987 46355 "returns" : {
56122987 46356 "items" : {
44660702 46357 "additionalProperties" : 0,
56122987 46358 "properties" : {
7aacca6f 46359 "path" : {
e2d681b3 46360 "description" : "Access control path",
7aacca6f
DM
46361 "type" : "string"
46362 },
44660702 46363 "propagate" : {
e2d681b3
TL
46364 "default" : 1,
46365 "description" : "Allow to propagate (inherit) permissions.",
46366 "optional" : 1,
44660702
DM
46367 "type" : "boolean"
46368 },
46369 "roleid" : {
46370 "type" : "string"
46371 },
7aacca6f
DM
46372 "type" : {
46373 "enum" : [
46374 "user",
e9cd3bd4
TL
46375 "group",
46376 "token"
7aacca6f
DM
46377 ],
46378 "type" : "string"
46379 },
7aacca6f
DM
46380 "ugid" : {
46381 "type" : "string"
56122987 46382 }
7aacca6f 46383 },
44660702 46384 "type" : "object"
7aacca6f
DM
46385 },
46386 "type" : "array"
44660702 46387 }
7aacca6f
DM
46388 },
46389 "PUT" : {
e9cd3bd4 46390 "allowtoken" : 1,
44660702
DM
46391 "description" : "Update Access Control List (add or remove permissions).",
46392 "method" : "PUT",
7aacca6f
DM
46393 "name" : "update_acl",
46394 "parameters" : {
46395 "additionalProperties" : 0,
46396 "properties" : {
46397 "delete" : {
44660702 46398 "description" : "Remove permissions (instead of adding it).",
7aacca6f 46399 "optional" : 1,
013dc89f
DM
46400 "type" : "boolean",
46401 "typetext" : "<boolean>"
7aacca6f 46402 },
44660702
DM
46403 "groups" : {
46404 "description" : "List of groups.",
46405 "format" : "pve-groupid-list",
7aacca6f 46406 "optional" : 1,
013dc89f
DM
46407 "type" : "string",
46408 "typetext" : "<string>"
7aacca6f
DM
46409 },
46410 "path" : {
46411 "description" : "Access control path",
013dc89f
DM
46412 "type" : "string",
46413 "typetext" : "<string>"
7aacca6f 46414 },
7aacca6f 46415 "propagate" : {
44660702 46416 "default" : 1,
7aacca6f 46417 "description" : "Allow to propagate (inherit) permissions.",
7aacca6f 46418 "optional" : 1,
013dc89f
DM
46419 "type" : "boolean",
46420 "typetext" : "<boolean>"
7aacca6f 46421 },
44660702
DM
46422 "roles" : {
46423 "description" : "List of roles.",
46424 "format" : "pve-roleid-list",
013dc89f
DM
46425 "type" : "string",
46426 "typetext" : "<string>"
44660702 46427 },
e9cd3bd4
TL
46428 "tokens" : {
46429 "description" : "List of API tokens.",
46430 "format" : "pve-tokenid-list",
46431 "optional" : 1,
46432 "type" : "string",
46433 "typetext" : "<string>"
46434 },
44660702
DM
46435 "users" : {
46436 "description" : "List of users.",
46437 "format" : "pve-userid-list",
7aacca6f 46438 "optional" : 1,
013dc89f
DM
46439 "type" : "string",
46440 "typetext" : "<string>"
56122987
DM
46441 }
46442 }
46443 },
56122987 46444 "permissions" : {
7aacca6f
DM
46445 "check" : [
46446 "perm-modify",
46447 "{path}"
46448 ]
46449 },
7aacca6f
DM
46450 "protected" : 1,
46451 "returns" : {
46452 "type" : "null"
44660702 46453 }
56122987
DM
46454 }
46455 },
7aacca6f 46456 "leaf" : 1,
44660702
DM
46457 "path" : "/access/acl",
46458 "text" : "acl"
7aacca6f
DM
46459 },
46460 {
56122987
DM
46461 "children" : [
46462 {
c5aa7e14
TL
46463 "children" : [
46464 {
46465 "info" : {
46466 "POST" : {
46467 "allowtoken" : 1,
46468 "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.",
46469 "method" : "POST",
46470 "name" : "sync",
46471 "parameters" : {
46472 "additionalProperties" : 0,
46473 "properties" : {
46474 "dry-run" : {
46475 "default" : 0,
46476 "description" : "If set, does not write anything.",
46477 "optional" : 1,
46478 "type" : "boolean",
46479 "typetext" : "<boolean>"
46480 },
46481 "enable-new" : {
46482 "default" : "1",
46483 "description" : "Enable newly synced users immediately.",
46484 "optional" : "1",
46485 "type" : "boolean",
46486 "typetext" : "<boolean>"
46487 },
46488 "full" : {
46489 "description" : "If set, uses the LDAP Directory as source of truth, deleting users or groups not returned from the sync. Otherwise only syncs information which is not already present, and does not deletes or modifies anything else.",
46490 "optional" : "1",
46491 "type" : "boolean",
46492 "typetext" : "<boolean>"
46493 },
46494 "purge" : {
46495 "description" : "Remove ACLs for users or groups which were removed from the config during a sync.",
46496 "optional" : "1",
46497 "type" : "boolean",
46498 "typetext" : "<boolean>"
46499 },
46500 "realm" : {
46501 "description" : "Authentication domain ID",
46502 "format" : "pve-realm",
46503 "maxLength" : 32,
46504 "type" : "string",
46505 "typetext" : "<string>"
46506 },
46507 "scope" : {
46508 "description" : "Select what to sync.",
46509 "enum" : [
46510 "users",
46511 "groups",
46512 "both"
46513 ],
46514 "optional" : "1",
46515 "type" : "string"
46516 }
46517 }
46518 },
46519 "permissions" : {
46520 "check" : [
46521 "and",
46522 [
46523 "userid-param",
46524 "Realm.AllocateUser"
46525 ],
46526 [
46527 "userid-group",
46528 [
46529 "User.Modify"
46530 ]
46531 ]
46532 ],
46533 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
46534 },
46535 "protected" : 1,
46536 "returns" : {
46537 "description" : "Worker Task-UPID",
46538 "type" : "string"
46539 }
46540 }
46541 },
46542 "leaf" : 1,
46543 "path" : "/access/domains/{realm}/sync",
46544 "text" : "sync"
46545 }
46546 ],
56122987 46547 "info" : {
44660702 46548 "DELETE" : {
e9cd3bd4 46549 "allowtoken" : 1,
44660702
DM
46550 "description" : "Delete an authentication server.",
46551 "method" : "DELETE",
46552 "name" : "delete",
46553 "parameters" : {
46554 "additionalProperties" : 0,
46555 "properties" : {
46556 "realm" : {
46557 "description" : "Authentication domain ID",
46558 "format" : "pve-realm",
46559 "maxLength" : 32,
013dc89f
DM
46560 "type" : "string",
46561 "typetext" : "<string>"
56122987 46562 }
44660702 46563 }
56122987 46564 },
56122987
DM
46565 "permissions" : {
46566 "check" : [
46567 "perm",
7aacca6f 46568 "/access/realm",
56122987 46569 [
7aacca6f 46570 "Realm.Allocate"
56122987
DM
46571 ]
46572 ]
46573 },
7aacca6f 46574 "protected" : 1,
7aacca6f
DM
46575 "returns" : {
46576 "type" : "null"
44660702 46577 }
7aacca6f 46578 },
44660702 46579 "GET" : {
e9cd3bd4 46580 "allowtoken" : 1,
44660702
DM
46581 "description" : "Get auth server configuration.",
46582 "method" : "GET",
46583 "name" : "read",
56122987 46584 "parameters" : {
44660702 46585 "additionalProperties" : 0,
56122987 46586 "properties" : {
7aacca6f 46587 "realm" : {
44660702 46588 "description" : "Authentication domain ID",
7aacca6f
DM
46589 "format" : "pve-realm",
46590 "maxLength" : 32,
013dc89f
DM
46591 "type" : "string",
46592 "typetext" : "<string>"
56122987 46593 }
44660702 46594 }
7aacca6f 46595 },
7aacca6f
DM
46596 "permissions" : {
46597 "check" : [
46598 "perm",
46599 "/access/realm",
46600 [
44660702
DM
46601 "Realm.Allocate",
46602 "Sys.Audit"
46603 ],
46604 "any",
46605 1
7aacca6f 46606 ]
44660702
DM
46607 },
46608 "returns" : {}
7aacca6f 46609 },
44660702 46610 "PUT" : {
e9cd3bd4 46611 "allowtoken" : 1,
44660702
DM
46612 "description" : "Update authentication server settings.",
46613 "method" : "PUT",
46614 "name" : "update",
7aacca6f 46615 "parameters" : {
44660702 46616 "additionalProperties" : 0,
7aacca6f 46617 "properties" : {
34f3e481
TL
46618 "autocreate" : {
46619 "default" : 0,
46620 "description" : "Automatically create users if they do not exist.",
46621 "optional" : 1,
46622 "type" : "boolean",
46623 "typetext" : "<boolean>"
46624 },
44660702
DM
46625 "base_dn" : {
46626 "description" : "LDAP base domain name",
46627 "maxLength" : 256,
46628 "optional" : 1,
46629 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
46630 "type" : "string"
46631 },
4bd7df8b
DM
46632 "bind_dn" : {
46633 "description" : "LDAP bind domain name",
46634 "maxLength" : 256,
46635 "optional" : 1,
46636 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
46637 "type" : "string"
46638 },
2489d6df
WB
46639 "capath" : {
46640 "default" : "/etc/ssl/certs",
46641 "description" : "Path to the CA certificate store",
46642 "optional" : 1,
46643 "type" : "string",
46644 "typetext" : "<string>"
46645 },
4772952b
TL
46646 "case-sensitive" : {
46647 "default" : 1,
46648 "description" : "username is case-sensitive",
46649 "optional" : 1,
46650 "type" : "boolean",
46651 "typetext" : "<boolean>"
46652 },
2489d6df
WB
46653 "cert" : {
46654 "description" : "Path to the client certificate",
46655 "optional" : 1,
46656 "type" : "string",
46657 "typetext" : "<string>"
46658 },
46659 "certkey" : {
46660 "description" : "Path to the client certificate key",
46661 "optional" : 1,
46662 "type" : "string",
46663 "typetext" : "<string>"
46664 },
34f3e481
TL
46665 "client-id" : {
46666 "description" : "OpenID Client ID",
46667 "maxLength" : 256,
46668 "optional" : 1,
46669 "type" : "string",
46670 "typetext" : "<string>"
46671 },
46672 "client-key" : {
46673 "description" : "OpenID Client Key",
46674 "maxLength" : 256,
46675 "optional" : 1,
46676 "type" : "string",
46677 "typetext" : "<string>"
46678 },
44660702
DM
46679 "comment" : {
46680 "description" : "Description.",
46681 "maxLength" : 4096,
46682 "optional" : 1,
013dc89f
DM
46683 "type" : "string",
46684 "typetext" : "<string>"
44660702
DM
46685 },
46686 "default" : {
46687 "description" : "Use this as default realm",
46688 "optional" : 1,
013dc89f
DM
46689 "type" : "boolean",
46690 "typetext" : "<boolean>"
44660702
DM
46691 },
46692 "delete" : {
46693 "description" : "A list of settings you want to delete.",
46694 "format" : "pve-configid-list",
46695 "maxLength" : 4096,
46696 "optional" : 1,
013dc89f
DM
46697 "type" : "string",
46698 "typetext" : "<string>"
44660702
DM
46699 },
46700 "digest" : {
46701 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
46702 "maxLength" : 40,
46703 "optional" : 1,
013dc89f
DM
46704 "type" : "string",
46705 "typetext" : "<string>"
44660702
DM
46706 },
46707 "domain" : {
46708 "description" : "AD domain name",
46709 "maxLength" : 256,
46710 "optional" : 1,
46711 "pattern" : "\\S+",
46712 "type" : "string"
46713 },
c5aa7e14
TL
46714 "filter" : {
46715 "description" : "LDAP filter for user sync.",
46716 "maxLength" : 2048,
46717 "optional" : 1,
46718 "type" : "string",
46719 "typetext" : "<string>"
46720 },
46721 "group_classes" : {
46722 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
46723 "description" : "The objectclasses for groups.",
46724 "format" : "ldap-simple-attr-list",
46725 "optional" : 1,
46726 "type" : "string",
46727 "typetext" : "<string>"
46728 },
46729 "group_dn" : {
46730 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
46731 "maxLength" : 256,
46732 "optional" : 1,
46733 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
46734 "type" : "string"
46735 },
46736 "group_filter" : {
46737 "description" : "LDAP filter for group sync.",
46738 "maxLength" : 2048,
46739 "optional" : 1,
46740 "type" : "string",
46741 "typetext" : "<string>"
46742 },
46743 "group_name_attr" : {
46744 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
46745 "format" : "ldap-simple-attr",
46746 "maxLength" : 256,
46747 "optional" : 1,
46748 "type" : "string",
46749 "typetext" : "<string>"
46750 },
34f3e481
TL
46751 "issuer-url" : {
46752 "description" : "OpenID Issuer Url",
46753 "maxLength" : 256,
46754 "optional" : 1,
46755 "type" : "string",
46756 "typetext" : "<string>"
46757 },
c5aa7e14
TL
46758 "mode" : {
46759 "default" : "ldap",
46760 "description" : "LDAP protocol mode.",
46761 "enum" : [
46762 "ldap",
46763 "ldaps",
46764 "ldap+starttls"
46765 ],
46766 "optional" : 1,
46767 "type" : "string"
46768 },
46769 "password" : {
46770 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
46771 "optional" : 1,
46772 "type" : "string",
46773 "typetext" : "<string>"
46774 },
44660702
DM
46775 "port" : {
46776 "description" : "Server port.",
46777 "maximum" : 65535,
46778 "minimum" : 1,
46779 "optional" : 1,
4bd7df8b 46780 "type" : "integer",
013dc89f 46781 "typetext" : "<integer> (1 - 65535)"
44660702 46782 },
7aacca6f 46783 "realm" : {
7aacca6f
DM
46784 "description" : "Authentication domain ID",
46785 "format" : "pve-realm",
44660702 46786 "maxLength" : 32,
013dc89f
DM
46787 "type" : "string",
46788 "typetext" : "<string>"
44660702
DM
46789 },
46790 "secure" : {
c5aa7e14 46791 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
44660702 46792 "optional" : 1,
013dc89f
DM
46793 "type" : "boolean",
46794 "typetext" : "<boolean>"
44660702
DM
46795 },
46796 "server1" : {
46797 "description" : "Server IP address (or DNS name)",
46798 "format" : "address",
46799 "maxLength" : 256,
46800 "optional" : 1,
013dc89f
DM
46801 "type" : "string",
46802 "typetext" : "<string>"
44660702
DM
46803 },
46804 "server2" : {
46805 "description" : "Fallback Server IP address (or DNS name)",
46806 "format" : "address",
46807 "maxLength" : 256,
46808 "optional" : 1,
013dc89f
DM
46809 "type" : "string",
46810 "typetext" : "<string>"
44660702 46811 },
1c532546
TL
46812 "sslversion" : {
46813 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
46814 "enum" : [
46815 "tlsv1",
46816 "tlsv1_1",
46817 "tlsv1_2",
46818 "tlsv1_3"
46819 ],
46820 "optional" : 1,
46821 "type" : "string"
46822 },
c5aa7e14
TL
46823 "sync-defaults-options" : {
46824 "description" : "The default options for behavior of synchronizations.",
46825 "format" : "realm-sync-options",
46826 "optional" : 1,
46827 "type" : "string",
46828 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,scope=<users|groups|both>]"
46829 },
46830 "sync_attributes" : {
46831 "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.",
46832 "optional" : 1,
46833 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
46834 "type" : "string"
46835 },
44660702
DM
46836 "tfa" : {
46837 "description" : "Use Two-factor authentication.",
46838 "format" : "pve-tfa-config",
46839 "maxLength" : 128,
46840 "optional" : 1,
013dc89f 46841 "type" : "string",
95895385 46842 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
46843 },
46844 "user_attr" : {
46845 "description" : "LDAP user attribute name",
46846 "maxLength" : 256,
46847 "optional" : 1,
46848 "pattern" : "\\S{2,}",
46849 "type" : "string"
2489d6df 46850 },
c5aa7e14
TL
46851 "user_classes" : {
46852 "default" : "inetorgperson, posixaccount, person, user",
46853 "description" : "The objectclasses for users.",
46854 "format" : "ldap-simple-attr-list",
46855 "optional" : 1,
46856 "type" : "string",
46857 "typetext" : "<string>"
46858 },
2489d6df
WB
46859 "verify" : {
46860 "default" : 0,
46861 "description" : "Verify the server's SSL certificate",
46862 "optional" : 1,
46863 "type" : "boolean",
46864 "typetext" : "<boolean>"
7aacca6f 46865 }
56122987 46866 },
44660702 46867 "type" : "object"
56122987 46868 },
7aacca6f
DM
46869 "permissions" : {
46870 "check" : [
46871 "perm",
46872 "/access/realm",
46873 [
44660702
DM
46874 "Realm.Allocate"
46875 ]
7aacca6f
DM
46876 ]
46877 },
44660702
DM
46878 "protected" : 1,
46879 "returns" : {
46880 "type" : "null"
46881 }
56122987 46882 }
44660702 46883 },
c5aa7e14 46884 "leaf" : 0,
44660702
DM
46885 "path" : "/access/domains/{realm}",
46886 "text" : "{realm}"
56122987 46887 }
7aacca6f 46888 ],
56122987
DM
46889 "info" : {
46890 "GET" : {
e9cd3bd4 46891 "allowtoken" : 1,
44660702
DM
46892 "description" : "Authentication domain index.",
46893 "method" : "GET",
46894 "name" : "index",
46895 "parameters" : {
46896 "additionalProperties" : 0
46897 },
46898 "permissions" : {
46899 "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
46900 "user" : "world"
46901 },
56122987 46902 "returns" : {
56122987
DM
46903 "items" : {
46904 "properties" : {
7aacca6f 46905 "comment" : {
52e44c50 46906 "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
7aacca6f
DM
46907 "optional" : 1,
46908 "type" : "string"
46909 },
56122987
DM
46910 "realm" : {
46911 "type" : "string"
46912 },
46913 "tfa" : {
7aacca6f 46914 "description" : "Two-factor authentication provider.",
56122987
DM
46915 "enum" : [
46916 "yubico",
46917 "oath"
46918 ],
44660702
DM
46919 "optional" : 1,
46920 "type" : "string"
c5aa7e14
TL
46921 },
46922 "type" : {
46923 "type" : "string"
56122987
DM
46924 }
46925 },
46926 "type" : "object"
44660702
DM
46927 },
46928 "links" : [
46929 {
46930 "href" : "{realm}",
46931 "rel" : "child"
46932 }
46933 ],
46934 "type" : "array"
46935 }
56122987
DM
46936 },
46937 "POST" : {
e9cd3bd4 46938 "allowtoken" : 1,
7aacca6f 46939 "description" : "Add an authentication server.",
44660702 46940 "method" : "POST",
7aacca6f 46941 "name" : "create",
56122987 46942 "parameters" : {
44660702 46943 "additionalProperties" : 0,
56122987 46944 "properties" : {
34f3e481
TL
46945 "autocreate" : {
46946 "default" : 0,
46947 "description" : "Automatically create users if they do not exist.",
46948 "optional" : 1,
46949 "type" : "boolean",
46950 "typetext" : "<boolean>"
46951 },
44660702
DM
46952 "base_dn" : {
46953 "description" : "LDAP base domain name",
56122987 46954 "maxLength" : 256,
44660702
DM
46955 "optional" : 1,
46956 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
7aacca6f 46957 "type" : "string"
56122987 46958 },
4bd7df8b
DM
46959 "bind_dn" : {
46960 "description" : "LDAP bind domain name",
46961 "maxLength" : 256,
46962 "optional" : 1,
46963 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
46964 "type" : "string"
46965 },
2489d6df
WB
46966 "capath" : {
46967 "default" : "/etc/ssl/certs",
46968 "description" : "Path to the CA certificate store",
46969 "optional" : 1,
46970 "type" : "string",
46971 "typetext" : "<string>"
46972 },
4772952b
TL
46973 "case-sensitive" : {
46974 "default" : 1,
46975 "description" : "username is case-sensitive",
46976 "optional" : 1,
46977 "type" : "boolean",
46978 "typetext" : "<boolean>"
46979 },
2489d6df
WB
46980 "cert" : {
46981 "description" : "Path to the client certificate",
46982 "optional" : 1,
46983 "type" : "string",
46984 "typetext" : "<string>"
46985 },
46986 "certkey" : {
46987 "description" : "Path to the client certificate key",
46988 "optional" : 1,
46989 "type" : "string",
46990 "typetext" : "<string>"
46991 },
34f3e481
TL
46992 "client-id" : {
46993 "description" : "OpenID Client ID",
46994 "maxLength" : 256,
46995 "optional" : 1,
46996 "type" : "string",
46997 "typetext" : "<string>"
46998 },
46999 "client-key" : {
47000 "description" : "OpenID Client Key",
47001 "maxLength" : 256,
47002 "optional" : 1,
47003 "type" : "string",
47004 "typetext" : "<string>"
47005 },
44660702
DM
47006 "comment" : {
47007 "description" : "Description.",
47008 "maxLength" : 4096,
56122987 47009 "optional" : 1,
013dc89f
DM
47010 "type" : "string",
47011 "typetext" : "<string>"
56122987 47012 },
44660702
DM
47013 "default" : {
47014 "description" : "Use this as default realm",
7aacca6f 47015 "optional" : 1,
013dc89f
DM
47016 "type" : "boolean",
47017 "typetext" : "<boolean>"
56122987 47018 },
44660702
DM
47019 "domain" : {
47020 "description" : "AD domain name",
47021 "maxLength" : 256,
7aacca6f 47022 "optional" : 1,
44660702
DM
47023 "pattern" : "\\S+",
47024 "type" : "string"
56122987 47025 },
c5aa7e14
TL
47026 "filter" : {
47027 "description" : "LDAP filter for user sync.",
47028 "maxLength" : 2048,
47029 "optional" : 1,
47030 "type" : "string",
47031 "typetext" : "<string>"
47032 },
47033 "group_classes" : {
47034 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
47035 "description" : "The objectclasses for groups.",
47036 "format" : "ldap-simple-attr-list",
47037 "optional" : 1,
47038 "type" : "string",
47039 "typetext" : "<string>"
47040 },
47041 "group_dn" : {
47042 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
47043 "maxLength" : 256,
47044 "optional" : 1,
47045 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
47046 "type" : "string"
47047 },
47048 "group_filter" : {
47049 "description" : "LDAP filter for group sync.",
47050 "maxLength" : 2048,
47051 "optional" : 1,
47052 "type" : "string",
47053 "typetext" : "<string>"
47054 },
47055 "group_name_attr" : {
47056 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
47057 "format" : "ldap-simple-attr",
47058 "maxLength" : 256,
47059 "optional" : 1,
47060 "type" : "string",
47061 "typetext" : "<string>"
47062 },
34f3e481
TL
47063 "issuer-url" : {
47064 "description" : "OpenID Issuer Url",
47065 "maxLength" : 256,
47066 "optional" : 1,
47067 "type" : "string",
47068 "typetext" : "<string>"
47069 },
c5aa7e14
TL
47070 "mode" : {
47071 "default" : "ldap",
47072 "description" : "LDAP protocol mode.",
47073 "enum" : [
47074 "ldap",
47075 "ldaps",
47076 "ldap+starttls"
47077 ],
47078 "optional" : 1,
47079 "type" : "string"
47080 },
47081 "password" : {
47082 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
47083 "optional" : 1,
47084 "type" : "string",
47085 "typetext" : "<string>"
47086 },
7aacca6f 47087 "port" : {
44660702 47088 "description" : "Server port.",
7aacca6f 47089 "maximum" : 65535,
44660702 47090 "minimum" : 1,
7aacca6f 47091 "optional" : 1,
4bd7df8b 47092 "type" : "integer",
013dc89f 47093 "typetext" : "<integer> (1 - 65535)"
56122987 47094 },
44660702
DM
47095 "realm" : {
47096 "description" : "Authentication domain ID",
47097 "format" : "pve-realm",
47098 "maxLength" : 32,
013dc89f
DM
47099 "type" : "string",
47100 "typetext" : "<string>"
44660702
DM
47101 },
47102 "secure" : {
c5aa7e14 47103 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
7aacca6f 47104 "optional" : 1,
013dc89f
DM
47105 "type" : "boolean",
47106 "typetext" : "<boolean>"
56122987 47107 },
44660702
DM
47108 "server1" : {
47109 "description" : "Server IP address (or DNS name)",
47110 "format" : "address",
47111 "maxLength" : 256,
47112 "optional" : 1,
013dc89f
DM
47113 "type" : "string",
47114 "typetext" : "<string>"
56122987 47115 },
44660702
DM
47116 "server2" : {
47117 "description" : "Fallback Server IP address (or DNS name)",
47118 "format" : "address",
7aacca6f 47119 "maxLength" : 256,
7aacca6f 47120 "optional" : 1,
013dc89f
DM
47121 "type" : "string",
47122 "typetext" : "<string>"
7aacca6f 47123 },
1c532546
TL
47124 "sslversion" : {
47125 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
47126 "enum" : [
47127 "tlsv1",
47128 "tlsv1_1",
47129 "tlsv1_2",
47130 "tlsv1_3"
47131 ],
47132 "optional" : 1,
47133 "type" : "string"
47134 },
c5aa7e14
TL
47135 "sync-defaults-options" : {
47136 "description" : "The default options for behavior of synchronizations.",
47137 "format" : "realm-sync-options",
47138 "optional" : 1,
47139 "type" : "string",
47140 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,scope=<users|groups|both>]"
47141 },
47142 "sync_attributes" : {
47143 "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.",
47144 "optional" : 1,
47145 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
47146 "type" : "string"
47147 },
44660702
DM
47148 "tfa" : {
47149 "description" : "Use Two-factor authentication.",
47150 "format" : "pve-tfa-config",
47151 "maxLength" : 128,
47152 "optional" : 1,
013dc89f 47153 "type" : "string",
95895385 47154 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
47155 },
47156 "type" : {
47157 "description" : "Realm type.",
47158 "enum" : [
47159 "ad",
47160 "ldap",
34f3e481 47161 "openid",
44660702
DM
47162 "pam",
47163 "pve"
47164 ],
47165 "type" : "string"
47166 },
47167 "user_attr" : {
47168 "description" : "LDAP user attribute name",
7aacca6f 47169 "maxLength" : 256,
7aacca6f 47170 "optional" : 1,
44660702
DM
47171 "pattern" : "\\S{2,}",
47172 "type" : "string"
2489d6df 47173 },
c5aa7e14
TL
47174 "user_classes" : {
47175 "default" : "inetorgperson, posixaccount, person, user",
47176 "description" : "The objectclasses for users.",
47177 "format" : "ldap-simple-attr-list",
47178 "optional" : 1,
47179 "type" : "string",
47180 "typetext" : "<string>"
47181 },
34f3e481
TL
47182 "username-claim" : {
47183 "description" : "OpenID claim used to generate the unique username.",
47184 "enum" : [
47185 "subject",
47186 "username",
47187 "email"
47188 ],
47189 "optional" : 1,
47190 "type" : "string"
47191 },
2489d6df
WB
47192 "verify" : {
47193 "default" : 0,
47194 "description" : "Verify the server's SSL certificate",
47195 "optional" : 1,
47196 "type" : "boolean",
47197 "typetext" : "<boolean>"
7aacca6f
DM
47198 }
47199 },
7aacca6f 47200 "type" : "object"
56122987 47201 },
7aacca6f
DM
47202 "permissions" : {
47203 "check" : [
47204 "perm",
47205 "/access/realm",
47206 [
47207 "Realm.Allocate"
47208 ]
47209 ]
44660702
DM
47210 },
47211 "protected" : 1,
47212 "returns" : {
47213 "type" : "null"
7aacca6f 47214 }
56122987 47215 }
7aacca6f 47216 },
44660702 47217 "leaf" : 0,
56122987 47218 "path" : "/access/domains",
44660702 47219 "text" : "domains"
56122987 47220 },
34f3e481
TL
47221 {
47222 "children" : [
47223 {
47224 "info" : {
47225 "POST" : {
47226 "allowtoken" : 1,
47227 "description" : "Get the OpenId Authorization Url for the specified realm.",
47228 "method" : "POST",
47229 "name" : "auth_url",
47230 "parameters" : {
47231 "additionalProperties" : 0,
47232 "properties" : {
47233 "realm" : {
47234 "description" : "Authentication domain ID",
47235 "format" : "pve-realm",
47236 "maxLength" : 32,
47237 "type" : "string",
47238 "typetext" : "<string>"
47239 },
47240 "redirect-url" : {
47241 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
47242 "maxLength" : 255,
47243 "type" : "string",
47244 "typetext" : "<string>"
47245 }
47246 }
47247 },
47248 "permissions" : {
47249 "user" : "world"
47250 },
47251 "protected" : 1,
47252 "returns" : {
47253 "description" : "Redirection URL.",
47254 "type" : "string"
47255 }
47256 }
47257 },
47258 "leaf" : 1,
47259 "path" : "/access/openid/auth-url",
47260 "text" : "auth-url"
47261 },
47262 {
47263 "info" : {
47264 "POST" : {
47265 "allowtoken" : 1,
47266 "description" : " Verify OpenID authorization code and create a ticket.",
47267 "method" : "POST",
47268 "name" : "login",
47269 "parameters" : {
47270 "additionalProperties" : 0,
47271 "properties" : {
47272 "code" : {
47273 "description" : "OpenId authorization code.",
47274 "maxLength" : 1024,
47275 "type" : "string",
47276 "typetext" : "<string>"
47277 },
47278 "redirect-url" : {
47279 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
47280 "maxLength" : 255,
47281 "type" : "string",
47282 "typetext" : "<string>"
47283 },
47284 "state" : {
47285 "description" : "OpenId state.",
47286 "maxLength" : 1024,
47287 "type" : "string",
47288 "typetext" : "<string>"
47289 }
47290 }
47291 },
47292 "permissions" : {
47293 "user" : "world"
47294 },
47295 "protected" : 1,
47296 "returns" : {
47297 "properties" : {
47298 "CSRFPreventionToken" : {
47299 "type" : "string"
47300 },
47301 "cap" : {
47302 "type" : "object"
47303 },
47304 "clustername" : {
47305 "optional" : 1,
47306 "type" : "string"
47307 },
47308 "ticket" : {
47309 "type" : "string"
47310 },
47311 "username" : {
47312 "type" : "string"
47313 }
47314 }
47315 }
47316 }
47317 },
47318 "leaf" : 1,
47319 "path" : "/access/openid/login",
47320 "text" : "login"
47321 }
47322 ],
47323 "info" : {
47324 "GET" : {
47325 "allowtoken" : 1,
47326 "description" : "Directory index.",
47327 "method" : "GET",
47328 "name" : "index",
47329 "parameters" : {
47330 "additionalProperties" : 0
47331 },
47332 "permissions" : {
47333 "user" : "all"
47334 },
47335 "returns" : {
47336 "items" : {
47337 "properties" : {
47338 "subdir" : {
47339 "type" : "string"
47340 }
47341 },
47342 "type" : "object"
47343 },
47344 "links" : [
47345 {
47346 "href" : "{subdir}",
47347 "rel" : "child"
47348 }
47349 ],
47350 "type" : "array"
47351 }
47352 }
47353 },
47354 "leaf" : 0,
47355 "path" : "/access/openid",
47356 "text" : "openid"
47357 },
5370fa8c
TL
47358 {
47359 "children" : [
47360 {
47361 "children" : [
47362 {
47363 "info" : {
47364 "DELETE" : {
47365 "allowtoken" : 0,
47366 "description" : "Delete a TFA entry by ID.",
47367 "method" : "DELETE",
47368 "name" : "delete_tfa",
47369 "parameters" : {
47370 "additionalProperties" : 0,
47371 "properties" : {
47372 "id" : {
47373 "description" : "A TFA entry id.",
47374 "type" : "string",
47375 "typetext" : "<string>"
47376 },
47377 "password" : {
47378 "description" : "The current password.",
47379 "maxLength" : 64,
47380 "minLength" : 5,
47381 "optional" : 1,
47382 "type" : "string",
47383 "typetext" : "<string>"
47384 },
47385 "userid" : {
47386 "description" : "User ID",
47387 "format" : "pve-userid",
47388 "maxLength" : 64,
47389 "type" : "string",
47390 "typetext" : "<string>"
47391 }
47392 }
47393 },
47394 "permissions" : {
47395 "check" : [
47396 "or",
47397 [
47398 "userid-param",
47399 "self"
47400 ],
47401 [
47402 "userid-group",
47403 [
47404 "User.Modify"
47405 ]
47406 ]
47407 ]
47408 },
47409 "protected" : 1,
47410 "returns" : {
47411 "type" : "null"
47412 }
47413 },
47414 "GET" : {
47415 "allowtoken" : 0,
47416 "description" : "Fetch a requested TFA entry if present.",
47417 "method" : "GET",
47418 "name" : "get_tfa_entry",
47419 "parameters" : {
47420 "additionalProperties" : 0,
47421 "properties" : {
47422 "id" : {
47423 "description" : "A TFA entry id.",
47424 "type" : "string",
47425 "typetext" : "<string>"
47426 },
47427 "userid" : {
47428 "description" : "User ID",
47429 "format" : "pve-userid",
47430 "maxLength" : 64,
47431 "type" : "string",
47432 "typetext" : "<string>"
47433 }
47434 }
47435 },
47436 "permissions" : {
47437 "check" : [
47438 "or",
47439 [
47440 "userid-param",
47441 "self"
47442 ],
47443 [
47444 "userid-group",
47445 [
47446 "User.Modify",
47447 "Sys.Audit"
47448 ]
47449 ]
47450 ]
47451 },
47452 "protected" : 1,
47453 "returns" : {
47454 "description" : "TFA Entry.",
47455 "properties" : {
47456 "created" : {
47457 "description" : "Creation time of this entry as unix epoch.",
47458 "type" : "integer"
47459 },
47460 "description" : {
47461 "description" : "User chosen description for this entry.",
47462 "type" : "string"
47463 },
47464 "enable" : {
47465 "default" : 1,
47466 "description" : "Whether this TFA entry is currently enabled.",
47467 "optional" : 1,
47468 "type" : "boolean"
47469 },
47470 "id" : {
47471 "description" : "The id used to reference this entry.",
47472 "type" : "string"
47473 },
47474 "type" : {
47475 "description" : "TFA Entry Type.",
47476 "enum" : [
47477 "totp",
47478 "u2f",
47479 "webauthn",
47480 "recovery",
47481 "yubico"
47482 ],
47483 "type" : "string"
47484 }
47485 },
47486 "type" : "object"
47487 }
47488 },
47489 "PUT" : {
47490 "allowtoken" : 0,
47491 "description" : "Add a TFA entry for a user.",
47492 "method" : "PUT",
47493 "name" : "update_tfa_entry",
47494 "parameters" : {
47495 "additionalProperties" : 0,
47496 "properties" : {
47497 "description" : {
47498 "description" : "A description to distinguish multiple entries from one another",
47499 "maxLength" : 255,
47500 "optional" : 1,
47501 "type" : "string",
47502 "typetext" : "<string>"
47503 },
47504 "enable" : {
47505 "description" : "Whether the entry should be enabled for login.",
47506 "optional" : 1,
47507 "type" : "boolean",
47508 "typetext" : "<boolean>"
47509 },
47510 "id" : {
47511 "description" : "A TFA entry id.",
47512 "type" : "string",
47513 "typetext" : "<string>"
47514 },
47515 "password" : {
47516 "description" : "The current password.",
47517 "maxLength" : 64,
47518 "minLength" : 5,
47519 "optional" : 1,
47520 "type" : "string",
47521 "typetext" : "<string>"
47522 },
47523 "userid" : {
47524 "description" : "User ID",
47525 "format" : "pve-userid",
47526 "maxLength" : 64,
47527 "type" : "string",
47528 "typetext" : "<string>"
47529 }
47530 }
47531 },
47532 "permissions" : {
47533 "check" : [
47534 "or",
47535 [
47536 "userid-param",
47537 "self"
47538 ],
47539 [
47540 "userid-group",
47541 [
47542 "User.Modify"
47543 ]
47544 ]
47545 ]
47546 },
47547 "protected" : 1,
47548 "returns" : {
47549 "type" : "null"
47550 }
47551 }
47552 },
47553 "leaf" : 1,
47554 "path" : "/access/tfa/{userid}/{id}",
47555 "text" : "{id}"
47556 }
47557 ],
47558 "info" : {
47559 "GET" : {
47560 "allowtoken" : 0,
47561 "description" : "List TFA configurations of users.",
47562 "method" : "GET",
47563 "name" : "list_user_tfa",
47564 "parameters" : {
47565 "additionalProperties" : 0,
47566 "properties" : {
47567 "userid" : {
47568 "description" : "User ID",
47569 "format" : "pve-userid",
47570 "maxLength" : 64,
47571 "type" : "string",
47572 "typetext" : "<string>"
47573 }
47574 }
47575 },
47576 "permissions" : {
47577 "check" : [
47578 "or",
47579 [
47580 "userid-param",
47581 "self"
47582 ],
47583 [
47584 "userid-group",
47585 [
47586 "User.Modify",
47587 "Sys.Audit"
47588 ]
47589 ]
47590 ]
47591 },
47592 "protected" : 1,
47593 "returns" : {
47594 "description" : "A list of the user's TFA entries.",
47595 "items" : {
47596 "description" : "TFA Entry.",
47597 "properties" : {
47598 "created" : {
47599 "description" : "Creation time of this entry as unix epoch.",
47600 "type" : "integer"
47601 },
47602 "description" : {
47603 "description" : "User chosen description for this entry.",
47604 "type" : "string"
47605 },
47606 "enable" : {
47607 "default" : 1,
47608 "description" : "Whether this TFA entry is currently enabled.",
47609 "optional" : 1,
47610 "type" : "boolean"
47611 },
47612 "id" : {
47613 "description" : "The id used to reference this entry.",
47614 "type" : "string"
47615 },
47616 "type" : {
47617 "description" : "TFA Entry Type.",
47618 "enum" : [
47619 "totp",
47620 "u2f",
47621 "webauthn",
47622 "recovery",
47623 "yubico"
47624 ],
47625 "type" : "string"
47626 }
47627 },
47628 "type" : "object"
47629 },
47630 "type" : "array"
47631 }
47632 },
47633 "POST" : {
47634 "allowtoken" : 0,
47635 "description" : "Add a TFA entry for a user.",
47636 "method" : "POST",
47637 "name" : "add_tfa_entry",
47638 "parameters" : {
47639 "additionalProperties" : 0,
47640 "properties" : {
47641 "challenge" : {
47642 "description" : "When responding to a u2f challenge: the original challenge string",
47643 "optional" : 1,
47644 "type" : "string",
47645 "typetext" : "<string>"
47646 },
47647 "description" : {
47648 "description" : "A description to distinguish multiple entries from one another",
47649 "maxLength" : 255,
47650 "optional" : 1,
47651 "type" : "string",
47652 "typetext" : "<string>"
47653 },
47654 "password" : {
47655 "description" : "The current password.",
47656 "maxLength" : 64,
47657 "minLength" : 5,
47658 "optional" : 1,
47659 "type" : "string",
47660 "typetext" : "<string>"
47661 },
47662 "totp" : {
47663 "description" : "A totp URI.",
47664 "optional" : 1,
47665 "type" : "string",
47666 "typetext" : "<string>"
47667 },
47668 "type" : {
47669 "description" : "TFA Entry Type.",
47670 "enum" : [
47671 "totp",
47672 "u2f",
47673 "webauthn",
47674 "recovery",
47675 "yubico"
47676 ],
47677 "type" : "string"
47678 },
47679 "userid" : {
47680 "description" : "User ID",
47681 "format" : "pve-userid",
47682 "maxLength" : 64,
47683 "type" : "string",
47684 "typetext" : "<string>"
47685 },
47686 "value" : {
47687 "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
47688 "optional" : 1,
47689 "type" : "string",
47690 "typetext" : "<string>"
47691 }
47692 }
47693 },
47694 "permissions" : {
47695 "check" : [
47696 "or",
47697 [
47698 "userid-param",
47699 "self"
47700 ],
47701 [
47702 "userid-group",
47703 [
47704 "User.Modify"
47705 ]
47706 ]
47707 ]
47708 },
47709 "protected" : 1,
47710 "returns" : {
47711 "properties" : {
47712 "challenge" : {
47713 "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
47714 "optional" : 1,
47715 "type" : "string"
47716 },
47717 "id" : {
47718 "description" : "The id of a newly added TFA entry.",
47719 "type" : "string"
47720 },
47721 "recovery" : {
47722 "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
47723 "items" : {
47724 "description" : "A recovery entry.",
47725 "type" : "string"
47726 },
47727 "optional" : 1,
47728 "type" : "array"
47729 }
47730 },
47731 "type" : "object"
47732 }
47733 }
47734 },
47735 "leaf" : 0,
47736 "path" : "/access/tfa/{userid}",
47737 "text" : "{userid}"
47738 }
47739 ],
47740 "info" : {
47741 "GET" : {
47742 "allowtoken" : 0,
47743 "description" : "List TFA configurations of users.",
47744 "method" : "GET",
47745 "name" : "list_tfa",
47746 "parameters" : {
47747 "additionalProperties" : 0
47748 },
47749 "permissions" : {
47750 "description" : "Returns all or just the logged-in user, depending on privileges.",
47751 "user" : "all"
47752 },
47753 "protected" : 1,
47754 "returns" : {
47755 "description" : "The list tuples of user and TFA entries.",
47756 "items" : {
47757 "properties" : {
47758 "entries" : {
47759 "items" : {
47760 "description" : "TFA Entry.",
47761 "properties" : {
47762 "created" : {
47763 "description" : "Creation time of this entry as unix epoch.",
47764 "type" : "integer"
47765 },
47766 "description" : {
47767 "description" : "User chosen description for this entry.",
47768 "type" : "string"
47769 },
47770 "enable" : {
47771 "default" : 1,
47772 "description" : "Whether this TFA entry is currently enabled.",
47773 "optional" : 1,
47774 "type" : "boolean"
47775 },
47776 "id" : {
47777 "description" : "The id used to reference this entry.",
47778 "type" : "string"
47779 },
47780 "type" : {
47781 "description" : "TFA Entry Type.",
47782 "enum" : [
47783 "totp",
47784 "u2f",
47785 "webauthn",
47786 "recovery",
47787 "yubico"
47788 ],
47789 "type" : "string"
47790 }
47791 },
47792 "type" : "object"
47793 },
47794 "type" : "array"
47795 },
47796 "userid" : {
47797 "description" : "User this entry belongs to.",
47798 "type" : "string"
47799 }
47800 },
47801 "type" : "object"
47802 },
47803 "type" : "array"
47804 }
47805 },
47806 "POST" : {
47807 "allowtoken" : 0,
47808 "description" : "Finish a u2f challenge.",
47809 "method" : "POST",
47810 "name" : "verify_tfa",
47811 "parameters" : {
47812 "additionalProperties" : 0,
47813 "properties" : {
47814 "response" : {
47815 "description" : "The response to the current authentication challenge.",
47816 "type" : "string",
47817 "typetext" : "<string>"
47818 }
47819 }
47820 },
47821 "permissions" : {
47822 "user" : "all"
47823 },
47824 "protected" : 1,
47825 "returns" : {
47826 "properties" : {
47827 "ticket" : {
47828 "type" : "string"
47829 }
47830 },
47831 "type" : "object"
47832 }
47833 }
47834 },
47835 "leaf" : 0,
47836 "path" : "/access/tfa",
47837 "text" : "tfa"
47838 },
56122987 47839 {
56122987 47840 "info" : {
44660702 47841 "GET" : {
e9cd3bd4 47842 "allowtoken" : 1,
2489d6df 47843 "description" : "Dummy. Useful for formatters which want to provide a login page.",
44660702
DM
47844 "method" : "GET",
47845 "name" : "get_ticket",
47846 "parameters" : {
47847 "additionalProperties" : 0
47848 },
47849 "permissions" : {
47850 "user" : "world"
47851 },
47852 "returns" : {
47853 "type" : "null"
47854 }
47855 },
56122987 47856 "POST" : {
e9cd3bd4 47857 "allowtoken" : 0,
44660702 47858 "description" : "Create or verify authentication ticket.",
56122987 47859 "method" : "POST",
44660702
DM
47860 "name" : "create_ticket",
47861 "parameters" : {
47862 "additionalProperties" : 0,
56122987 47863 "properties" : {
5370fa8c
TL
47864 "new-format" : {
47865 "default" : 0,
47866 "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",
47867 "optional" : 1,
47868 "type" : "boolean",
47869 "typetext" : "<boolean>"
47870 },
44660702
DM
47871 "otp" : {
47872 "description" : "One-time password for Two-factor authentication.",
7aacca6f 47873 "optional" : 1,
013dc89f
DM
47874 "type" : "string",
47875 "typetext" : "<string>"
56122987 47876 },
7aacca6f
DM
47877 "password" : {
47878 "description" : "The secret password. This can also be a valid ticket.",
013dc89f
DM
47879 "type" : "string",
47880 "typetext" : "<string>"
7aacca6f 47881 },
44660702
DM
47882 "path" : {
47883 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
7aacca6f 47884 "maxLength" : 64,
56122987 47885 "optional" : 1,
56122987 47886 "requires" : "privs",
013dc89f
DM
47887 "type" : "string",
47888 "typetext" : "<string>"
44660702
DM
47889 },
47890 "privs" : {
7aacca6f 47891 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
44660702
DM
47892 "format" : "pve-priv-list",
47893 "maxLength" : 64,
56122987 47894 "optional" : 1,
44660702 47895 "requires" : "path",
013dc89f
DM
47896 "type" : "string",
47897 "typetext" : "<string>"
56122987
DM
47898 },
47899 "realm" : {
56122987 47900 "description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
44660702 47901 "format" : "pve-realm",
7aacca6f 47902 "maxLength" : 32,
44660702 47903 "optional" : 1,
013dc89f
DM
47904 "type" : "string",
47905 "typetext" : "<string>"
56122987 47906 },
5370fa8c
TL
47907 "tfa-challenge" : {
47908 "description" : "The signed TFA challenge string the user wants to respond to.",
47909 "optional" : 1,
47910 "type" : "string",
47911 "typetext" : "<string>"
47912 },
56122987
DM
47913 "username" : {
47914 "description" : "User name",
44660702 47915 "maxLength" : 64,
013dc89f
DM
47916 "type" : "string",
47917 "typetext" : "<string>"
56122987 47918 }
44660702 47919 }
7aacca6f 47920 },
56122987 47921 "permissions" : {
44660702 47922 "description" : "You need to pass valid credientials.",
56122987
DM
47923 "user" : "world"
47924 },
44660702 47925 "protected" : 1,
7aacca6f 47926 "returns" : {
56122987 47927 "properties" : {
44660702
DM
47928 "CSRFPreventionToken" : {
47929 "optional" : 1,
47930 "type" : "string"
56122987 47931 },
e2d681b3
TL
47932 "clustername" : {
47933 "optional" : 1,
47934 "type" : "string"
47935 },
44660702
DM
47936 "ticket" : {
47937 "optional" : 1,
47938 "type" : "string"
47939 },
47940 "username" : {
56122987
DM
47941 "type" : "string"
47942 }
47943 },
44660702 47944 "type" : "object"
7aacca6f 47945 }
7aacca6f
DM
47946 }
47947 },
44660702
DM
47948 "leaf" : 1,
47949 "path" : "/access/ticket",
47950 "text" : "ticket"
7aacca6f 47951 },
56122987 47952 {
56122987 47953 "info" : {
7aacca6f 47954 "PUT" : {
e9cd3bd4 47955 "allowtoken" : 0,
44660702 47956 "description" : "Change user password.",
7aacca6f 47957 "method" : "PUT",
e2d681b3 47958 "name" : "change_password",
56122987
DM
47959 "parameters" : {
47960 "additionalProperties" : 0,
47961 "properties" : {
44660702
DM
47962 "password" : {
47963 "description" : "The new password.",
47964 "maxLength" : 64,
47965 "minLength" : 5,
013dc89f
DM
47966 "type" : "string",
47967 "typetext" : "<string>"
7aacca6f 47968 },
44660702
DM
47969 "userid" : {
47970 "description" : "User ID",
47971 "format" : "pve-userid",
47972 "maxLength" : 64,
013dc89f
DM
47973 "type" : "string",
47974 "typetext" : "<string>"
56122987 47975 }
7aacca6f 47976 }
56122987
DM
47977 },
47978 "permissions" : {
47979 "check" : [
44660702 47980 "or",
56122987 47981 [
44660702
DM
47982 "userid-param",
47983 "self"
47984 ],
47985 [
47986 "and",
47987 [
47988 "userid-param",
47989 "Realm.AllocateUser"
47990 ],
47991 [
47992 "userid-group",
47993 [
47994 "User.Modify"
47995 ]
47996 ]
56122987 47997 ]
7aacca6f 47998 ],
44660702 47999 "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 48000 },
44660702 48001 "protected" : 1,
7aacca6f
DM
48002 "returns" : {
48003 "type" : "null"
44660702
DM
48004 }
48005 }
48006 },
48007 "leaf" : 1,
48008 "path" : "/access/password",
48009 "text" : "password"
95895385 48010 },
e9cd3bd4
TL
48011 {
48012 "info" : {
48013 "GET" : {
48014 "allowtoken" : 1,
48015 "description" : "Retrieve effective permissions of given user/token.",
48016 "method" : "GET",
48017 "name" : "permissions",
48018 "parameters" : {
48019 "additionalProperties" : 0,
48020 "properties" : {
48021 "path" : {
48022 "description" : "Only dump this specific path, not the whole tree.",
48023 "optional" : 1,
48024 "type" : "string",
48025 "typetext" : "<string>"
48026 },
48027 "userid" : {
48028 "description" : "User ID or full API token ID",
48029 "optional" : 1,
48030 "pattern" : "(?^:^(?^:[^\\s:/]+)\\@(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+))?$)",
48031 "type" : "string"
48032 }
48033 }
48034 },
48035 "permissions" : {
48036 "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.",
48037 "user" : "all"
48038 },
48039 "returns" : {
48040 "description" : "Map of \"path\" => (Map of \"privilege\" => \"propagate boolean\").",
48041 "type" : "object"
48042 }
48043 }
48044 },
48045 "leaf" : 1,
48046 "path" : "/access/permissions",
48047 "text" : "permissions"
44660702
DM
48048 }
48049 ],
48050 "info" : {
48051 "GET" : {
e9cd3bd4 48052 "allowtoken" : 1,
44660702
DM
48053 "description" : "Directory index.",
48054 "method" : "GET",
48055 "name" : "index",
48056 "parameters" : {
48057 "additionalProperties" : 0
48058 },
48059 "permissions" : {
48060 "user" : "all"
48061 },
48062 "returns" : {
48063 "items" : {
48064 "properties" : {
48065 "subdir" : {
48066 "type" : "string"
48067 }
7aacca6f 48068 },
44660702
DM
48069 "type" : "object"
48070 },
48071 "links" : [
48072 {
48073 "href" : "{subdir}",
48074 "rel" : "child"
48075 }
48076 ],
48077 "type" : "array"
48078 }
48079 }
48080 },
48081 "leaf" : 0,
48082 "path" : "/access",
48083 "text" : "access"
48084 },
48085 {
48086 "children" : [
48087 {
48088 "info" : {
48089 "DELETE" : {
e9cd3bd4 48090 "allowtoken" : 1,
7aacca6f 48091 "description" : "Delete pool.",
44660702
DM
48092 "method" : "DELETE",
48093 "name" : "delete_pool",
7aacca6f
DM
48094 "parameters" : {
48095 "additionalProperties" : 0,
48096 "properties" : {
48097 "poolid" : {
48098 "format" : "pve-poolid",
013dc89f
DM
48099 "type" : "string",
48100 "typetext" : "<string>"
7aacca6f
DM
48101 }
48102 }
48103 },
56122987
DM
48104 "permissions" : {
48105 "check" : [
48106 "perm",
48107 "/pool/{poolid}",
48108 [
48109 "Pool.Allocate"
48110 ]
44660702
DM
48111 ],
48112 "description" : "You can only delete empty pools (no members)."
48113 },
48114 "protected" : 1,
48115 "returns" : {
48116 "type" : "null"
7aacca6f
DM
48117 }
48118 },
48119 "GET" : {
e9cd3bd4 48120 "allowtoken" : 1,
7aacca6f 48121 "description" : "Get pool configuration.",
44660702 48122 "method" : "GET",
7aacca6f 48123 "name" : "read_pool",
56122987 48124 "parameters" : {
44660702 48125 "additionalProperties" : 0,
56122987
DM
48126 "properties" : {
48127 "poolid" : {
44660702 48128 "format" : "pve-poolid",
013dc89f
DM
48129 "type" : "string",
48130 "typetext" : "<string>"
56122987 48131 }
44660702 48132 }
56122987 48133 },
56122987 48134 "permissions" : {
56122987
DM
48135 "check" : [
48136 "perm",
48137 "/pool/{poolid}",
48138 [
0695fdaf 48139 "Pool.Audit"
56122987
DM
48140 ]
48141 ]
48142 },
7aacca6f 48143 "returns" : {
44660702 48144 "additionalProperties" : 0,
56122987 48145 "properties" : {
44660702
DM
48146 "comment" : {
48147 "optional" : 1,
48148 "type" : "string"
48149 },
7aacca6f 48150 "members" : {
7aacca6f
DM
48151 "items" : {
48152 "additionalProperties" : 1,
7aacca6f 48153 "properties" : {
7aacca6f
DM
48154 "id" : {
48155 "type" : "string"
48156 },
48157 "node" : {
48158 "type" : "string"
48159 },
44660702
DM
48160 "storage" : {
48161 "optional" : 1,
48162 "type" : "string"
48163 },
7aacca6f 48164 "type" : {
7aacca6f
DM
48165 "enum" : [
48166 "qemu",
48167 "lxc",
48168 "openvz",
48169 "storage"
44660702
DM
48170 ],
48171 "type" : "string"
48172 },
48173 "vmid" : {
48174 "optional" : 1,
48175 "type" : "integer"
7aacca6f 48176 }
44660702
DM
48177 },
48178 "type" : "object"
48179 },
48180 "type" : "array"
48181 }
48182 },
48183 "type" : "object"
48184 }
48185 },
48186 "PUT" : {
e9cd3bd4 48187 "allowtoken" : 1,
44660702
DM
48188 "description" : "Update pool data.",
48189 "method" : "PUT",
48190 "name" : "update_pool",
48191 "parameters" : {
48192 "additionalProperties" : 0,
48193 "properties" : {
56122987
DM
48194 "comment" : {
48195 "optional" : 1,
013dc89f
DM
48196 "type" : "string",
48197 "typetext" : "<string>"
44660702
DM
48198 },
48199 "delete" : {
48200 "description" : "Remove vms/storage (instead of adding it).",
48201 "optional" : 1,
013dc89f
DM
48202 "type" : "boolean",
48203 "typetext" : "<boolean>"
44660702
DM
48204 },
48205 "poolid" : {
48206 "format" : "pve-poolid",
013dc89f
DM
48207 "type" : "string",
48208 "typetext" : "<string>"
44660702
DM
48209 },
48210 "storage" : {
48211 "description" : "List of storage IDs.",
48212 "format" : "pve-storage-id-list",
48213 "optional" : 1,
013dc89f
DM
48214 "type" : "string",
48215 "typetext" : "<string>"
44660702
DM
48216 },
48217 "vms" : {
48218 "description" : "List of virtual machines.",
48219 "format" : "pve-vmid-list",
48220 "optional" : 1,
013dc89f
DM
48221 "type" : "string",
48222 "typetext" : "<string>"
56122987 48223 }
44660702
DM
48224 }
48225 },
48226 "permissions" : {
48227 "check" : [
48228 "perm",
48229 "/pool/{poolid}",
48230 [
48231 "Pool.Allocate"
48232 ]
48233 ],
48234 "description" : "You also need the right to modify permissions on any object you add/delete."
48235 },
48236 "protected" : 1,
48237 "returns" : {
48238 "type" : "null"
56122987
DM
48239 }
48240 }
48241 },
44660702
DM
48242 "leaf" : 1,
48243 "path" : "/pools/{poolid}",
7aacca6f 48244 "text" : "{poolid}"
56122987 48245 }
7aacca6f 48246 ],
56122987
DM
48247 "info" : {
48248 "GET" : {
e9cd3bd4 48249 "allowtoken" : 1,
44660702
DM
48250 "description" : "Pool index.",
48251 "method" : "GET",
48252 "name" : "index",
48253 "parameters" : {
48254 "additionalProperties" : 0
48255 },
48256 "permissions" : {
0695fdaf 48257 "description" : "List all pools where you have Pool.Audit permissions on /pool/<pool>.",
44660702
DM
48258 "user" : "all"
48259 },
56122987 48260 "returns" : {
44660702
DM
48261 "items" : {
48262 "properties" : {
48263 "poolid" : {
48264 "type" : "string"
48265 }
56122987 48266 },
44660702
DM
48267 "type" : "object"
48268 },
48269 "links" : [
48270 {
48271 "href" : "{poolid}",
48272 "rel" : "child"
48273 }
48274 ],
48275 "type" : "array"
48276 }
48277 },
48278 "POST" : {
e9cd3bd4 48279 "allowtoken" : 1,
44660702
DM
48280 "description" : "Create new pool.",
48281 "method" : "POST",
48282 "name" : "create_pool",
48283 "parameters" : {
48284 "additionalProperties" : 0,
48285 "properties" : {
48286 "comment" : {
48287 "optional" : 1,
013dc89f
DM
48288 "type" : "string",
48289 "typetext" : "<string>"
7aacca6f 48290 },
44660702
DM
48291 "poolid" : {
48292 "format" : "pve-poolid",
013dc89f
DM
48293 "type" : "string",
48294 "typetext" : "<string>"
56122987
DM
48295 }
48296 }
48297 },
56122987 48298 "permissions" : {
44660702
DM
48299 "check" : [
48300 "perm",
48301 "/pool/{poolid}",
48302 [
48303 "Pool.Allocate"
48304 ]
48305 ]
56122987 48306 },
44660702
DM
48307 "protected" : 1,
48308 "returns" : {
48309 "type" : "null"
48310 }
48311 }
48312 },
48313 "leaf" : 0,
48314 "path" : "/pools",
48315 "text" : "pools"
48316 },
48317 {
48318 "info" : {
48319 "GET" : {
e9cd3bd4 48320 "allowtoken" : 1,
5370fa8c 48321 "description" : "API version details, including some parts of the global datacenter config.",
44660702
DM
48322 "method" : "GET",
48323 "name" : "version",
7aacca6f
DM
48324 "parameters" : {
48325 "additionalProperties" : 0
48326 },
44660702
DM
48327 "permissions" : {
48328 "user" : "all"
48329 },
48330 "returns" : {
48331 "properties" : {
5370fa8c
TL
48332 "console" : {
48333 "description" : "The default console viewer to use.",
48334 "enum" : [
48335 "applet",
48336 "vv",
48337 "html5",
48338 "xtermjs"
48339 ],
48340 "optional" : 1,
48341 "type" : "string"
48342 },
44660702 48343 "release" : {
5370fa8c 48344 "description" : "The current Proxmox VE point release in `x.y` format.",
44660702
DM
48345 "type" : "string"
48346 },
48347 "repoid" : {
5370fa8c 48348 "description" : "The short git revision from which this version was build.",
44660702
DM
48349 "type" : "string"
48350 },
48351 "version" : {
5370fa8c 48352 "description" : "The full pve-manager package version of this node.",
44660702
DM
48353 "type" : "string"
48354 }
48355 },
48356 "type" : "object"
48357 }
56122987
DM
48358 }
48359 },
44660702
DM
48360 "leaf" : 1,
48361 "path" : "/version",
56122987
DM
48362 "text" : "version"
48363 }
48364]
48365;
48366