]> 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 },
de786b48 1165 "protected" : 1,
9226ccbc
TL
1166 "returns" : {
1167 "type" : "object"
1168 }
1169 }
1170 },
1171 "leaf" : 1,
1172 "path" : "/cluster/config/qdevice",
1173 "text" : "qdevice"
32d876b5
DM
1174 }
1175 ],
1176 "info" : {
1177 "GET" : {
e9cd3bd4 1178 "allowtoken" : 1,
32d876b5
DM
1179 "description" : "Directory index.",
1180 "method" : "GET",
1181 "name" : "index",
1182 "parameters" : {
1183 "additionalProperties" : 0
1184 },
5d9c884c
DM
1185 "permissions" : {
1186 "check" : [
1187 "perm",
1188 "/",
1189 [
1190 "Sys.Audit"
1191 ]
1192 ]
1193 },
32d876b5
DM
1194 "returns" : {
1195 "items" : {
1196 "properties" : {},
1197 "type" : "object"
1198 },
1199 "links" : [
1200 {
1201 "href" : "{name}",
1202 "rel" : "child"
1203 }
1204 ],
1205 "type" : "array"
1206 }
27a7acb2
DM
1207 },
1208 "POST" : {
e9cd3bd4 1209 "allowtoken" : 1,
c5aa7e14 1210 "description" : "Generate new cluster configuration. If no links given, default to local IP address as link0.",
27a7acb2
DM
1211 "method" : "POST",
1212 "name" : "create",
1213 "parameters" : {
1214 "additionalProperties" : 0,
1215 "properties" : {
27a7acb2
DM
1216 "clustername" : {
1217 "description" : "The name of the cluster.",
1218 "format" : "pve-node",
1219 "maxLength" : 15,
1220 "type" : "string",
1221 "typetext" : "<string>"
1222 },
1e3f8156 1223 "link[n]" : {
c5aa7e14 1224 "description" : "Address and priority information of a single corosync link. (up to 8 links supported; link0..link7)",
1e3f8156
TL
1225 "format" : {
1226 "address" : {
1227 "default_key" : 1,
1228 "description" : "Hostname (or IP) of this corosync link address.",
1229 "format" : "address",
1230 "format_description" : "IP",
1231 "type" : "string"
1232 },
1233 "priority" : {
1234 "default" : 0,
c5aa7e14 1235 "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
1236 "maximum" : 255,
1237 "minimum" : 0,
1238 "optional" : 1,
1239 "type" : "integer"
1240 }
1241 },
1242 "optional" : 1,
1243 "type" : "string",
1244 "typetext" : "[address=]<IP> [,priority=<integer>]"
1245 },
27a7acb2
DM
1246 "nodeid" : {
1247 "description" : "Node id for this node.",
1248 "minimum" : 1,
1249 "optional" : 1,
1250 "type" : "integer",
1251 "typetext" : "<integer> (1 - N)"
1252 },
27a7acb2
DM
1253 "votes" : {
1254 "description" : "Number of votes for this node.",
1255 "minimum" : 1,
1256 "optional" : 1,
1257 "type" : "integer",
1258 "typetext" : "<integer> (1 - N)"
1259 }
1260 }
1261 },
1262 "protected" : 1,
1263 "returns" : {
1264 "type" : "string"
1265 }
32d876b5
DM
1266 }
1267 },
1268 "leaf" : 0,
1269 "path" : "/cluster/config",
1270 "text" : "config"
1271 },
56122987 1272 {
56122987
DM
1273 "children" : [
1274 {
56122987
DM
1275 "children" : [
1276 {
44660702
DM
1277 "children" : [
1278 {
1279 "info" : {
1280 "DELETE" : {
e9cd3bd4 1281 "allowtoken" : 1,
44660702
DM
1282 "description" : "Delete rule.",
1283 "method" : "DELETE",
1284 "name" : "delete_rule",
1285 "parameters" : {
1286 "additionalProperties" : 0,
1287 "properties" : {
1288 "digest" : {
1289 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1290 "maxLength" : 40,
1291 "optional" : 1,
013dc89f
DM
1292 "type" : "string",
1293 "typetext" : "<string>"
44660702
DM
1294 },
1295 "group" : {
1296 "description" : "Security Group name.",
4bd7df8b 1297 "maxLength" : 18,
44660702
DM
1298 "minLength" : 2,
1299 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1300 "type" : "string"
1301 },
1302 "pos" : {
1303 "description" : "Update rule at position <pos>.",
1304 "minimum" : 0,
1305 "optional" : 1,
4bd7df8b 1306 "type" : "integer",
013dc89f 1307 "typetext" : "<integer> (0 - N)"
44660702
DM
1308 }
1309 }
1310 },
1311 "permissions" : {
1312 "check" : [
1313 "perm",
1314 "/",
1315 [
1316 "Sys.Modify"
1317 ]
1318 ]
1319 },
1320 "protected" : 1,
1321 "proxyto" : null,
1322 "returns" : {
1323 "type" : "null"
7aacca6f
DM
1324 }
1325 },
44660702 1326 "GET" : {
e9cd3bd4 1327 "allowtoken" : 1,
44660702
DM
1328 "description" : "Get single rule data.",
1329 "method" : "GET",
1330 "name" : "get_rule",
1331 "parameters" : {
1332 "additionalProperties" : 0,
1333 "properties" : {
1334 "group" : {
1335 "description" : "Security Group name.",
4bd7df8b 1336 "maxLength" : 18,
44660702
DM
1337 "minLength" : 2,
1338 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1339 "type" : "string"
1340 },
1341 "pos" : {
1342 "description" : "Update rule at position <pos>.",
1343 "minimum" : 0,
1344 "optional" : 1,
4bd7df8b 1345 "type" : "integer",
013dc89f 1346 "typetext" : "<integer> (0 - N)"
44660702 1347 }
7aacca6f 1348 }
56122987 1349 },
44660702
DM
1350 "permissions" : {
1351 "check" : [
1352 "perm",
1353 "/",
1354 [
1355 "Sys.Audit"
1356 ]
1357 ]
1358 },
1359 "proxyto" : null,
1360 "returns" : {
1361 "properties" : {
e2d681b3
TL
1362 "action" : {
1363 "type" : "string"
1364 },
1365 "comment" : {
1366 "optional" : 1,
1367 "type" : "string"
1368 },
1369 "dest" : {
1370 "optional" : 1,
1371 "type" : "string"
1372 },
1373 "dport" : {
1374 "optional" : 1,
1375 "type" : "string"
1376 },
1377 "enable" : {
1378 "optional" : 1,
1379 "type" : "integer"
1380 },
4772952b
TL
1381 "icmp-type" : {
1382 "optional" : 1,
1383 "type" : "string"
1384 },
e2d681b3
TL
1385 "iface" : {
1386 "optional" : 1,
1387 "type" : "string"
1388 },
1389 "ipversion" : {
1390 "optional" : 1,
1391 "type" : "integer"
1392 },
95895385
TL
1393 "log" : {
1394 "description" : "Log level for firewall rule",
1395 "enum" : [
1396 "emerg",
1397 "alert",
1398 "crit",
1399 "err",
1400 "warning",
1401 "notice",
1402 "info",
1403 "debug",
1404 "nolog"
1405 ],
1406 "optional" : 1,
1407 "type" : "string"
1408 },
e2d681b3
TL
1409 "macro" : {
1410 "optional" : 1,
5f26e15b 1411 "type" : "string"
e2d681b3 1412 },
44660702
DM
1413 "pos" : {
1414 "type" : "integer"
e2d681b3
TL
1415 },
1416 "proto" : {
1417 "optional" : 1,
1418 "type" : "string"
1419 },
1420 "source" : {
1421 "optional" : 1,
1422 "type" : "string"
1423 },
1424 "sport" : {
1425 "optional" : 1,
1426 "type" : "string"
1427 },
1428 "type" : {
1429 "type" : "string"
44660702
DM
1430 }
1431 },
1432 "type" : "object"
56122987 1433 }
44660702 1434 },
7aacca6f 1435 "PUT" : {
e9cd3bd4 1436 "allowtoken" : 1,
44660702
DM
1437 "description" : "Modify rule data.",
1438 "method" : "PUT",
1439 "name" : "update_rule",
7aacca6f
DM
1440 "parameters" : {
1441 "additionalProperties" : 0,
1442 "properties" : {
44660702
DM
1443 "action" : {
1444 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
7aacca6f 1445 "maxLength" : 20,
44660702 1446 "minLength" : 2,
7aacca6f 1447 "optional" : 1,
44660702 1448 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
1449 "type" : "string"
1450 },
44660702 1451 "comment" : {
e94f0d56 1452 "description" : "Descriptive comment.",
7aacca6f 1453 "optional" : 1,
013dc89f
DM
1454 "type" : "string",
1455 "typetext" : "<string>"
7aacca6f 1456 },
44660702
DM
1457 "delete" : {
1458 "description" : "A list of settings you want to delete.",
1459 "format" : "pve-configid-list",
7aacca6f 1460 "optional" : 1,
013dc89f
DM
1461 "type" : "string",
1462 "typetext" : "<string>"
7aacca6f 1463 },
44660702
DM
1464 "dest" : {
1465 "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.",
1466 "format" : "pve-fw-addr-spec",
0695fdaf 1467 "maxLength" : 512,
7aacca6f 1468 "optional" : 1,
013dc89f
DM
1469 "type" : "string",
1470 "typetext" : "<string>"
7aacca6f
DM
1471 },
1472 "digest" : {
1473 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 1474 "maxLength" : 40,
7aacca6f 1475 "optional" : 1,
013dc89f
DM
1476 "type" : "string",
1477 "typetext" : "<string>"
7aacca6f 1478 },
44660702
DM
1479 "dport" : {
1480 "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.",
1481 "format" : "pve-fw-dport-spec",
7aacca6f 1482 "optional" : 1,
013dc89f
DM
1483 "type" : "string",
1484 "typetext" : "<string>"
7aacca6f 1485 },
44660702 1486 "enable" : {
e94f0d56 1487 "description" : "Flag to enable/disable a rule.",
44660702 1488 "minimum" : 0,
7aacca6f 1489 "optional" : 1,
4bd7df8b 1490 "type" : "integer",
013dc89f 1491 "typetext" : "<integer> (0 - N)"
7aacca6f 1492 },
44660702
DM
1493 "group" : {
1494 "description" : "Security Group name.",
4bd7df8b 1495 "maxLength" : 18,
44660702
DM
1496 "minLength" : 2,
1497 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1498 "type" : "string"
1499 },
4772952b
TL
1500 "icmp-type" : {
1501 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
1502 "format" : "pve-fw-icmp-type-spec",
1503 "optional" : 1,
1504 "type" : "string",
1505 "typetext" : "<string>"
1506 },
44660702
DM
1507 "iface" : {
1508 "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.",
1509 "format" : "pve-iface",
1510 "maxLength" : 20,
1511 "minLength" : 2,
7aacca6f 1512 "optional" : 1,
013dc89f
DM
1513 "type" : "string",
1514 "typetext" : "<string>"
7aacca6f 1515 },
95895385
TL
1516 "log" : {
1517 "description" : "Log level for firewall rule.",
1518 "enum" : [
1519 "emerg",
1520 "alert",
1521 "crit",
1522 "err",
1523 "warning",
1524 "notice",
1525 "info",
1526 "debug",
1527 "nolog"
1528 ],
1529 "optional" : 1,
1530 "type" : "string"
1531 },
44660702 1532 "macro" : {
e94f0d56 1533 "description" : "Use predefined standard macro.",
44660702
DM
1534 "maxLength" : 128,
1535 "optional" : 1,
013dc89f
DM
1536 "type" : "string",
1537 "typetext" : "<string>"
7aacca6f
DM
1538 },
1539 "moveto" : {
1540 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
44660702 1541 "minimum" : 0,
7aacca6f 1542 "optional" : 1,
4bd7df8b 1543 "type" : "integer",
013dc89f 1544 "typetext" : "<integer> (0 - N)"
7aacca6f 1545 },
44660702
DM
1546 "pos" : {
1547 "description" : "Update rule at position <pos>.",
1548 "minimum" : 0,
1549 "optional" : 1,
4bd7df8b 1550 "type" : "integer",
013dc89f 1551 "typetext" : "<integer> (0 - N)"
7aacca6f 1552 },
44660702
DM
1553 "proto" : {
1554 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
1555 "format" : "pve-fw-protocol-spec",
7aacca6f 1556 "optional" : 1,
013dc89f
DM
1557 "type" : "string",
1558 "typetext" : "<string>"
44660702
DM
1559 },
1560 "source" : {
1561 "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.",
1562 "format" : "pve-fw-addr-spec",
0695fdaf 1563 "maxLength" : 512,
44660702 1564 "optional" : 1,
013dc89f
DM
1565 "type" : "string",
1566 "typetext" : "<string>"
44660702
DM
1567 },
1568 "sport" : {
1569 "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.",
1570 "format" : "pve-fw-sport-spec",
1571 "optional" : 1,
013dc89f
DM
1572 "type" : "string",
1573 "typetext" : "<string>"
7aacca6f
DM
1574 },
1575 "type" : {
e94f0d56 1576 "description" : "Rule type.",
7aacca6f
DM
1577 "enum" : [
1578 "in",
1579 "out",
1580 "group"
1581 ],
1582 "optional" : 1,
1583 "type" : "string"
1584 }
1585 }
1586 },
7aacca6f
DM
1587 "permissions" : {
1588 "check" : [
1589 "perm",
1590 "/",
1591 [
1592 "Sys.Modify"
1593 ]
1594 ]
1595 },
44660702 1596 "protected" : 1,
7aacca6f
DM
1597 "proxyto" : null,
1598 "returns" : {
1599 "type" : "null"
1600 }
7aacca6f
DM
1601 }
1602 },
44660702 1603 "leaf" : 1,
7aacca6f 1604 "path" : "/cluster/firewall/groups/{group}/{pos}",
44660702 1605 "text" : "{pos}"
7aacca6f
DM
1606 }
1607 ],
44660702
DM
1608 "info" : {
1609 "DELETE" : {
e9cd3bd4 1610 "allowtoken" : 1,
44660702
DM
1611 "description" : "Delete security group.",
1612 "method" : "DELETE",
1613 "name" : "delete_security_group",
1614 "parameters" : {
1615 "additionalProperties" : 0,
1616 "properties" : {
1617 "group" : {
1618 "description" : "Security Group name.",
4bd7df8b 1619 "maxLength" : 18,
44660702
DM
1620 "minLength" : 2,
1621 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1622 "type" : "string"
1623 }
56122987 1624 }
7aacca6f 1625 },
44660702
DM
1626 "permissions" : {
1627 "check" : [
1628 "perm",
1629 "/",
1630 [
1631 "Sys.Modify"
1632 ]
7aacca6f 1633 ]
56122987 1634 },
44660702
DM
1635 "protected" : 1,
1636 "returns" : {
1637 "type" : "null"
56122987 1638 }
7aacca6f 1639 },
7aacca6f 1640 "GET" : {
e9cd3bd4 1641 "allowtoken" : 1,
44660702 1642 "description" : "List rules.",
7aacca6f 1643 "method" : "GET",
44660702
DM
1644 "name" : "get_rules",
1645 "parameters" : {
1646 "additionalProperties" : 0,
7aacca6f 1647 "properties" : {
44660702
DM
1648 "group" : {
1649 "description" : "Security Group name.",
4bd7df8b 1650 "maxLength" : 18,
44660702
DM
1651 "minLength" : 2,
1652 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1653 "type" : "string"
7aacca6f 1654 }
44660702 1655 }
7aacca6f
DM
1656 },
1657 "permissions" : {
1658 "check" : [
1659 "perm",
1660 "/",
1661 [
1662 "Sys.Audit"
1663 ]
1664 ]
1665 },
44660702
DM
1666 "proxyto" : null,
1667 "returns" : {
1668 "items" : {
1669 "properties" : {
1670 "pos" : {
1671 "type" : "integer"
1672 }
1673 },
1674 "type" : "object"
1675 },
1676 "links" : [
1677 {
1678 "href" : "{pos}",
1679 "rel" : "child"
1680 }
1681 ],
1682 "type" : "array"
1683 }
1684 },
1685 "POST" : {
e9cd3bd4 1686 "allowtoken" : 1,
44660702
DM
1687 "description" : "Create new rule.",
1688 "method" : "POST",
1689 "name" : "create_rule",
7aacca6f
DM
1690 "parameters" : {
1691 "additionalProperties" : 0,
1692 "properties" : {
44660702
DM
1693 "action" : {
1694 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
1695 "maxLength" : 20,
56122987 1696 "minLength" : 2,
44660702
DM
1697 "optional" : 0,
1698 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 1699 "type" : "string"
56122987 1700 },
44660702 1701 "comment" : {
e94f0d56 1702 "description" : "Descriptive comment.",
56122987 1703 "optional" : 1,
013dc89f
DM
1704 "type" : "string",
1705 "typetext" : "<string>"
56122987 1706 },
44660702
DM
1707 "dest" : {
1708 "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 1709 "format" : "pve-fw-addr-spec",
0695fdaf 1710 "maxLength" : 512,
56122987 1711 "optional" : 1,
013dc89f
DM
1712 "type" : "string",
1713 "typetext" : "<string>"
56122987 1714 },
44660702
DM
1715 "digest" : {
1716 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1717 "maxLength" : 40,
7aacca6f 1718 "optional" : 1,
013dc89f
DM
1719 "type" : "string",
1720 "typetext" : "<string>"
56122987 1721 },
44660702
DM
1722 "dport" : {
1723 "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.",
1724 "format" : "pve-fw-dport-spec",
56122987 1725 "optional" : 1,
013dc89f
DM
1726 "type" : "string",
1727 "typetext" : "<string>"
56122987 1728 },
7aacca6f 1729 "enable" : {
e94f0d56 1730 "description" : "Flag to enable/disable a rule.",
44660702 1731 "minimum" : 0,
7aacca6f 1732 "optional" : 1,
4bd7df8b 1733 "type" : "integer",
013dc89f 1734 "typetext" : "<integer> (0 - N)"
56122987 1735 },
44660702
DM
1736 "group" : {
1737 "description" : "Security Group name.",
4bd7df8b 1738 "maxLength" : 18,
44660702 1739 "minLength" : 2,
7aacca6f 1740 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
1741 "type" : "string"
1742 },
4772952b
TL
1743 "icmp-type" : {
1744 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
1745 "format" : "pve-fw-icmp-type-spec",
1746 "optional" : 1,
1747 "type" : "string",
1748 "typetext" : "<string>"
1749 },
44660702
DM
1750 "iface" : {
1751 "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.",
1752 "format" : "pve-iface",
1753 "maxLength" : 20,
7aacca6f 1754 "minLength" : 2,
44660702 1755 "optional" : 1,
013dc89f
DM
1756 "type" : "string",
1757 "typetext" : "<string>"
56122987 1758 },
95895385
TL
1759 "log" : {
1760 "description" : "Log level for firewall rule.",
1761 "enum" : [
1762 "emerg",
1763 "alert",
1764 "crit",
1765 "err",
1766 "warning",
1767 "notice",
1768 "info",
1769 "debug",
1770 "nolog"
1771 ],
1772 "optional" : 1,
1773 "type" : "string"
1774 },
7aacca6f 1775 "macro" : {
e94f0d56 1776 "description" : "Use predefined standard macro.",
44660702 1777 "maxLength" : 128,
7aacca6f 1778 "optional" : 1,
013dc89f
DM
1779 "type" : "string",
1780 "typetext" : "<string>"
7aacca6f
DM
1781 },
1782 "pos" : {
1783 "description" : "Update rule at position <pos>.",
44660702 1784 "minimum" : 0,
56122987 1785 "optional" : 1,
4bd7df8b 1786 "type" : "integer",
013dc89f 1787 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
1788 },
1789 "proto" : {
1790 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
44660702 1791 "format" : "pve-fw-protocol-spec",
7aacca6f 1792 "optional" : 1,
013dc89f
DM
1793 "type" : "string",
1794 "typetext" : "<string>"
44660702
DM
1795 },
1796 "source" : {
1797 "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.",
1798 "format" : "pve-fw-addr-spec",
0695fdaf 1799 "maxLength" : 512,
44660702 1800 "optional" : 1,
013dc89f
DM
1801 "type" : "string",
1802 "typetext" : "<string>"
44660702
DM
1803 },
1804 "sport" : {
1805 "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.",
1806 "format" : "pve-fw-sport-spec",
1807 "optional" : 1,
013dc89f
DM
1808 "type" : "string",
1809 "typetext" : "<string>"
44660702
DM
1810 },
1811 "type" : {
e94f0d56 1812 "description" : "Rule type.",
44660702
DM
1813 "enum" : [
1814 "in",
1815 "out",
1816 "group"
1817 ],
1818 "optional" : 0,
1819 "type" : "string"
56122987 1820 }
44660702 1821 }
56122987 1822 },
56122987
DM
1823 "permissions" : {
1824 "check" : [
1825 "perm",
1826 "/",
1827 [
1828 "Sys.Modify"
1829 ]
1830 ]
1831 },
44660702
DM
1832 "protected" : 1,
1833 "proxyto" : null,
56122987
DM
1834 "returns" : {
1835 "type" : "null"
7aacca6f 1836 }
44660702
DM
1837 }
1838 },
1839 "leaf" : 0,
1840 "path" : "/cluster/firewall/groups/{group}",
1841 "text" : "{group}"
1842 }
1843 ],
1844 "info" : {
1845 "GET" : {
e9cd3bd4 1846 "allowtoken" : 1,
44660702
DM
1847 "description" : "List security groups.",
1848 "method" : "GET",
1849 "name" : "list_security_groups",
1850 "parameters" : {
1851 "additionalProperties" : 0
1852 },
1853 "permissions" : {
1854 "user" : "all"
1855 },
1856 "returns" : {
1857 "items" : {
1858 "properties" : {
1859 "comment" : {
1860 "optional" : 1,
1861 "type" : "string"
1862 },
1863 "digest" : {
1864 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1865 "maxLength" : 40,
1866 "optional" : 0,
1867 "type" : "string"
1868 },
1869 "group" : {
1870 "description" : "Security Group name.",
4bd7df8b 1871 "maxLength" : 18,
44660702
DM
1872 "minLength" : 2,
1873 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1874 "type" : "string"
1875 }
1876 },
1877 "type" : "object"
56122987 1878 },
44660702
DM
1879 "links" : [
1880 {
1881 "href" : "{group}",
1882 "rel" : "child"
1883 }
1884 ],
1885 "type" : "array"
1886 }
1887 },
1888 "POST" : {
e9cd3bd4 1889 "allowtoken" : 1,
44660702
DM
1890 "description" : "Create new security group.",
1891 "method" : "POST",
1892 "name" : "create_security_group",
1893 "parameters" : {
1894 "additionalProperties" : 0,
1895 "properties" : {
1896 "comment" : {
1897 "optional" : 1,
013dc89f
DM
1898 "type" : "string",
1899 "typetext" : "<string>"
44660702
DM
1900 },
1901 "digest" : {
1902 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1903 "maxLength" : 40,
1904 "optional" : 1,
013dc89f
DM
1905 "type" : "string",
1906 "typetext" : "<string>"
44660702
DM
1907 },
1908 "group" : {
1909 "description" : "Security Group name.",
4bd7df8b 1910 "maxLength" : 18,
44660702
DM
1911 "minLength" : 2,
1912 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1913 "type" : "string"
1914 },
1915 "rename" : {
1916 "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 1917 "maxLength" : 18,
44660702
DM
1918 "minLength" : 2,
1919 "optional" : 1,
1920 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
1921 "type" : "string"
1922 }
1923 }
1924 },
1925 "permissions" : {
1926 "check" : [
1927 "perm",
1928 "/",
1929 [
1930 "Sys.Modify"
1931 ]
1932 ]
1933 },
1934 "protected" : 1,
1935 "returns" : {
1936 "type" : "null"
1937 }
1938 }
1939 },
1940 "leaf" : 0,
1941 "path" : "/cluster/firewall/groups",
1942 "text" : "groups"
1943 },
1944 {
1945 "children" : [
1946 {
1947 "info" : {
7aacca6f 1948 "DELETE" : {
e9cd3bd4 1949 "allowtoken" : 1,
44660702
DM
1950 "description" : "Delete rule.",
1951 "method" : "DELETE",
1952 "name" : "delete_rule",
1953 "parameters" : {
1954 "additionalProperties" : 0,
1955 "properties" : {
1956 "digest" : {
1957 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
1958 "maxLength" : 40,
1959 "optional" : 1,
013dc89f
DM
1960 "type" : "string",
1961 "typetext" : "<string>"
44660702
DM
1962 },
1963 "pos" : {
1964 "description" : "Update rule at position <pos>.",
1965 "minimum" : 0,
1966 "optional" : 1,
4bd7df8b 1967 "type" : "integer",
013dc89f 1968 "typetext" : "<integer> (0 - N)"
44660702
DM
1969 }
1970 }
1971 },
56122987
DM
1972 "permissions" : {
1973 "check" : [
1974 "perm",
1975 "/",
1976 [
7aacca6f 1977 "Sys.Modify"
56122987
DM
1978 ]
1979 ]
1980 },
44660702 1981 "protected" : 1,
56122987
DM
1982 "proxyto" : null,
1983 "returns" : {
7aacca6f 1984 "type" : "null"
44660702
DM
1985 }
1986 },
1987 "GET" : {
e9cd3bd4 1988 "allowtoken" : 1,
44660702
DM
1989 "description" : "Get single rule data.",
1990 "method" : "GET",
1991 "name" : "get_rule",
56122987
DM
1992 "parameters" : {
1993 "additionalProperties" : 0,
1994 "properties" : {
1995 "pos" : {
7aacca6f 1996 "description" : "Update rule at position <pos>.",
44660702 1997 "minimum" : 0,
56122987 1998 "optional" : 1,
4bd7df8b 1999 "type" : "integer",
013dc89f 2000 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
2001 }
2002 }
2003 },
7aacca6f
DM
2004 "permissions" : {
2005 "check" : [
2006 "perm",
2007 "/",
2008 [
2009 "Sys.Audit"
2010 ]
2011 ]
56122987 2012 },
44660702
DM
2013 "proxyto" : null,
2014 "returns" : {
7aacca6f 2015 "properties" : {
e2d681b3
TL
2016 "action" : {
2017 "type" : "string"
2018 },
2019 "comment" : {
2020 "optional" : 1,
2021 "type" : "string"
2022 },
2023 "dest" : {
2024 "optional" : 1,
2025 "type" : "string"
2026 },
2027 "dport" : {
2028 "optional" : 1,
2029 "type" : "string"
2030 },
2031 "enable" : {
2032 "optional" : 1,
2033 "type" : "integer"
2034 },
4772952b
TL
2035 "icmp-type" : {
2036 "optional" : 1,
2037 "type" : "string"
2038 },
e2d681b3
TL
2039 "iface" : {
2040 "optional" : 1,
2041 "type" : "string"
2042 },
2043 "ipversion" : {
2044 "optional" : 1,
2045 "type" : "integer"
2046 },
95895385
TL
2047 "log" : {
2048 "description" : "Log level for firewall rule",
2049 "enum" : [
2050 "emerg",
2051 "alert",
2052 "crit",
2053 "err",
2054 "warning",
2055 "notice",
2056 "info",
2057 "debug",
2058 "nolog"
2059 ],
2060 "optional" : 1,
2061 "type" : "string"
2062 },
e2d681b3
TL
2063 "macro" : {
2064 "optional" : 1,
5f26e15b 2065 "type" : "string"
e2d681b3 2066 },
44660702
DM
2067 "pos" : {
2068 "type" : "integer"
e2d681b3
TL
2069 },
2070 "proto" : {
2071 "optional" : 1,
2072 "type" : "string"
2073 },
2074 "source" : {
2075 "optional" : 1,
2076 "type" : "string"
2077 },
2078 "sport" : {
2079 "optional" : 1,
2080 "type" : "string"
2081 },
2082 "type" : {
2083 "type" : "string"
7aacca6f 2084 }
44660702
DM
2085 },
2086 "type" : "object"
2087 }
56122987 2088 },
44660702 2089 "PUT" : {
e9cd3bd4 2090 "allowtoken" : 1,
44660702
DM
2091 "description" : "Modify rule data.",
2092 "method" : "PUT",
2093 "name" : "update_rule",
7aacca6f
DM
2094 "parameters" : {
2095 "additionalProperties" : 0,
2096 "properties" : {
44660702
DM
2097 "action" : {
2098 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
2099 "maxLength" : 20,
2100 "minLength" : 2,
2101 "optional" : 1,
2102 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2103 "type" : "string"
7aacca6f 2104 },
44660702 2105 "comment" : {
e94f0d56 2106 "description" : "Descriptive comment.",
44660702 2107 "optional" : 1,
013dc89f
DM
2108 "type" : "string",
2109 "typetext" : "<string>"
7aacca6f 2110 },
44660702
DM
2111 "delete" : {
2112 "description" : "A list of settings you want to delete.",
2113 "format" : "pve-configid-list",
2114 "optional" : 1,
013dc89f
DM
2115 "type" : "string",
2116 "typetext" : "<string>"
44660702
DM
2117 },
2118 "dest" : {
2119 "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.",
2120 "format" : "pve-fw-addr-spec",
0695fdaf 2121 "maxLength" : 512,
44660702 2122 "optional" : 1,
013dc89f
DM
2123 "type" : "string",
2124 "typetext" : "<string>"
44660702
DM
2125 },
2126 "digest" : {
2127 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2128 "maxLength" : 40,
2129 "optional" : 1,
013dc89f
DM
2130 "type" : "string",
2131 "typetext" : "<string>"
44660702
DM
2132 },
2133 "dport" : {
2134 "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.",
2135 "format" : "pve-fw-dport-spec",
2136 "optional" : 1,
013dc89f
DM
2137 "type" : "string",
2138 "typetext" : "<string>"
44660702
DM
2139 },
2140 "enable" : {
e94f0d56 2141 "description" : "Flag to enable/disable a rule.",
44660702
DM
2142 "minimum" : 0,
2143 "optional" : 1,
4bd7df8b 2144 "type" : "integer",
013dc89f 2145 "typetext" : "<integer> (0 - N)"
44660702 2146 },
4772952b
TL
2147 "icmp-type" : {
2148 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
2149 "format" : "pve-fw-icmp-type-spec",
2150 "optional" : 1,
2151 "type" : "string",
2152 "typetext" : "<string>"
2153 },
44660702
DM
2154 "iface" : {
2155 "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.",
2156 "format" : "pve-iface",
2157 "maxLength" : 20,
7aacca6f 2158 "minLength" : 2,
44660702 2159 "optional" : 1,
013dc89f
DM
2160 "type" : "string",
2161 "typetext" : "<string>"
7aacca6f 2162 },
95895385
TL
2163 "log" : {
2164 "description" : "Log level for firewall rule.",
2165 "enum" : [
2166 "emerg",
2167 "alert",
2168 "crit",
2169 "err",
2170 "warning",
2171 "notice",
2172 "info",
2173 "debug",
2174 "nolog"
2175 ],
2176 "optional" : 1,
2177 "type" : "string"
2178 },
44660702 2179 "macro" : {
e94f0d56 2180 "description" : "Use predefined standard macro.",
44660702
DM
2181 "maxLength" : 128,
2182 "optional" : 1,
013dc89f
DM
2183 "type" : "string",
2184 "typetext" : "<string>"
44660702
DM
2185 },
2186 "moveto" : {
2187 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
2188 "minimum" : 0,
2189 "optional" : 1,
4bd7df8b 2190 "type" : "integer",
013dc89f 2191 "typetext" : "<integer> (0 - N)"
44660702
DM
2192 },
2193 "pos" : {
2194 "description" : "Update rule at position <pos>.",
2195 "minimum" : 0,
2196 "optional" : 1,
4bd7df8b 2197 "type" : "integer",
013dc89f 2198 "typetext" : "<integer> (0 - N)"
44660702
DM
2199 },
2200 "proto" : {
2201 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
2202 "format" : "pve-fw-protocol-spec",
2203 "optional" : 1,
013dc89f
DM
2204 "type" : "string",
2205 "typetext" : "<string>"
44660702
DM
2206 },
2207 "source" : {
2208 "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.",
2209 "format" : "pve-fw-addr-spec",
0695fdaf 2210 "maxLength" : 512,
44660702 2211 "optional" : 1,
013dc89f
DM
2212 "type" : "string",
2213 "typetext" : "<string>"
44660702
DM
2214 },
2215 "sport" : {
2216 "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.",
2217 "format" : "pve-fw-sport-spec",
2218 "optional" : 1,
013dc89f
DM
2219 "type" : "string",
2220 "typetext" : "<string>"
44660702
DM
2221 },
2222 "type" : {
e94f0d56 2223 "description" : "Rule type.",
44660702
DM
2224 "enum" : [
2225 "in",
2226 "out",
2227 "group"
2228 ],
2229 "optional" : 1,
2230 "type" : "string"
7aacca6f 2231 }
56122987
DM
2232 }
2233 },
7aacca6f
DM
2234 "permissions" : {
2235 "check" : [
2236 "perm",
2237 "/",
2238 [
2239 "Sys.Modify"
2240 ]
2241 ]
2242 },
44660702
DM
2243 "protected" : 1,
2244 "proxyto" : null,
2245 "returns" : {
2246 "type" : "null"
2247 }
7aacca6f 2248 }
56122987 2249 },
44660702
DM
2250 "leaf" : 1,
2251 "path" : "/cluster/firewall/rules/{pos}",
2252 "text" : "{pos}"
7aacca6f
DM
2253 }
2254 ],
7aacca6f 2255 "info" : {
44660702 2256 "GET" : {
e9cd3bd4 2257 "allowtoken" : 1,
44660702
DM
2258 "description" : "List rules.",
2259 "method" : "GET",
2260 "name" : "get_rules",
7aacca6f 2261 "parameters" : {
44660702 2262 "additionalProperties" : 0
7aacca6f
DM
2263 },
2264 "permissions" : {
2265 "check" : [
2266 "perm",
2267 "/",
2268 [
44660702 2269 "Sys.Audit"
7aacca6f
DM
2270 ]
2271 ]
2272 },
44660702 2273 "proxyto" : null,
7aacca6f 2274 "returns" : {
7aacca6f
DM
2275 "items" : {
2276 "properties" : {
44660702
DM
2277 "pos" : {
2278 "type" : "integer"
7aacca6f
DM
2279 }
2280 },
2281 "type" : "object"
56122987 2282 },
7aacca6f
DM
2283 "links" : [
2284 {
44660702 2285 "href" : "{pos}",
7aacca6f
DM
2286 "rel" : "child"
2287 }
44660702
DM
2288 ],
2289 "type" : "array"
7aacca6f 2290 }
44660702 2291 },
7aacca6f 2292 "POST" : {
e9cd3bd4 2293 "allowtoken" : 1,
44660702 2294 "description" : "Create new rule.",
7aacca6f 2295 "method" : "POST",
44660702 2296 "name" : "create_rule",
7aacca6f
DM
2297 "parameters" : {
2298 "additionalProperties" : 0,
2299 "properties" : {
44660702
DM
2300 "action" : {
2301 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
2302 "maxLength" : 20,
7aacca6f 2303 "minLength" : 2,
44660702
DM
2304 "optional" : 0,
2305 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2306 "type" : "string"
7aacca6f
DM
2307 },
2308 "comment" : {
e94f0d56 2309 "description" : "Descriptive comment.",
7aacca6f 2310 "optional" : 1,
013dc89f
DM
2311 "type" : "string",
2312 "typetext" : "<string>"
44660702
DM
2313 },
2314 "dest" : {
2315 "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.",
2316 "format" : "pve-fw-addr-spec",
0695fdaf 2317 "maxLength" : 512,
44660702 2318 "optional" : 1,
013dc89f
DM
2319 "type" : "string",
2320 "typetext" : "<string>"
44660702
DM
2321 },
2322 "digest" : {
2323 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2324 "maxLength" : 40,
2325 "optional" : 1,
013dc89f
DM
2326 "type" : "string",
2327 "typetext" : "<string>"
44660702
DM
2328 },
2329 "dport" : {
2330 "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.",
2331 "format" : "pve-fw-dport-spec",
2332 "optional" : 1,
013dc89f
DM
2333 "type" : "string",
2334 "typetext" : "<string>"
44660702
DM
2335 },
2336 "enable" : {
e94f0d56 2337 "description" : "Flag to enable/disable a rule.",
44660702
DM
2338 "minimum" : 0,
2339 "optional" : 1,
4bd7df8b 2340 "type" : "integer",
013dc89f 2341 "typetext" : "<integer> (0 - N)"
44660702 2342 },
4772952b
TL
2343 "icmp-type" : {
2344 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
2345 "format" : "pve-fw-icmp-type-spec",
2346 "optional" : 1,
2347 "type" : "string",
2348 "typetext" : "<string>"
2349 },
44660702
DM
2350 "iface" : {
2351 "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.",
2352 "format" : "pve-iface",
2353 "maxLength" : 20,
2354 "minLength" : 2,
2355 "optional" : 1,
013dc89f
DM
2356 "type" : "string",
2357 "typetext" : "<string>"
44660702 2358 },
95895385
TL
2359 "log" : {
2360 "description" : "Log level for firewall rule.",
2361 "enum" : [
2362 "emerg",
2363 "alert",
2364 "crit",
2365 "err",
2366 "warning",
2367 "notice",
2368 "info",
2369 "debug",
2370 "nolog"
2371 ],
2372 "optional" : 1,
2373 "type" : "string"
2374 },
44660702 2375 "macro" : {
e94f0d56 2376 "description" : "Use predefined standard macro.",
44660702
DM
2377 "maxLength" : 128,
2378 "optional" : 1,
013dc89f
DM
2379 "type" : "string",
2380 "typetext" : "<string>"
44660702
DM
2381 },
2382 "pos" : {
2383 "description" : "Update rule at position <pos>.",
2384 "minimum" : 0,
2385 "optional" : 1,
4bd7df8b 2386 "type" : "integer",
013dc89f 2387 "typetext" : "<integer> (0 - N)"
44660702
DM
2388 },
2389 "proto" : {
2390 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
2391 "format" : "pve-fw-protocol-spec",
2392 "optional" : 1,
013dc89f
DM
2393 "type" : "string",
2394 "typetext" : "<string>"
44660702
DM
2395 },
2396 "source" : {
2397 "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.",
2398 "format" : "pve-fw-addr-spec",
0695fdaf 2399 "maxLength" : 512,
44660702 2400 "optional" : 1,
013dc89f
DM
2401 "type" : "string",
2402 "typetext" : "<string>"
44660702
DM
2403 },
2404 "sport" : {
2405 "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.",
2406 "format" : "pve-fw-sport-spec",
2407 "optional" : 1,
013dc89f
DM
2408 "type" : "string",
2409 "typetext" : "<string>"
44660702
DM
2410 },
2411 "type" : {
e94f0d56 2412 "description" : "Rule type.",
44660702
DM
2413 "enum" : [
2414 "in",
2415 "out",
2416 "group"
2417 ],
2418 "optional" : 0,
2419 "type" : "string"
7aacca6f
DM
2420 }
2421 }
2422 },
2423 "permissions" : {
2424 "check" : [
2425 "perm",
2426 "/",
2427 [
2428 "Sys.Modify"
2429 ]
2430 ]
2431 },
44660702
DM
2432 "protected" : 1,
2433 "proxyto" : null,
7aacca6f 2434 "returns" : {
44660702
DM
2435 "type" : "null"
2436 }
2437 }
2438 },
2439 "leaf" : 0,
2440 "path" : "/cluster/firewall/rules",
2441 "text" : "rules"
2442 },
2443 {
2444 "children" : [
2445 {
2446 "children" : [
2447 {
2448 "info" : {
2449 "DELETE" : {
e9cd3bd4 2450 "allowtoken" : 1,
44660702
DM
2451 "description" : "Remove IP or Network from IPSet.",
2452 "method" : "DELETE",
2453 "name" : "remove_ip",
2454 "parameters" : {
2455 "additionalProperties" : 0,
2456 "properties" : {
2457 "cidr" : {
2458 "description" : "Network/IP specification in CIDR format.",
2459 "format" : "IPorCIDRorAlias",
013dc89f
DM
2460 "type" : "string",
2461 "typetext" : "<string>"
44660702
DM
2462 },
2463 "digest" : {
2464 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2465 "maxLength" : 40,
2466 "optional" : 1,
013dc89f
DM
2467 "type" : "string",
2468 "typetext" : "<string>"
44660702
DM
2469 },
2470 "name" : {
2471 "description" : "IP set name.",
2472 "maxLength" : 64,
2473 "minLength" : 2,
2474 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2475 "type" : "string"
2476 }
2477 }
2478 },
2479 "permissions" : {
2480 "check" : [
2481 "perm",
2482 "/",
2483 [
2484 "Sys.Modify"
2485 ]
2486 ]
2487 },
2488 "protected" : 1,
2489 "returns" : {
2490 "type" : "null"
2491 }
7aacca6f 2492 },
44660702 2493 "GET" : {
e9cd3bd4 2494 "allowtoken" : 1,
44660702
DM
2495 "description" : "Read IP or Network settings from IPSet.",
2496 "method" : "GET",
2497 "name" : "read_ip",
2498 "parameters" : {
2499 "additionalProperties" : 0,
2500 "properties" : {
2501 "cidr" : {
2502 "description" : "Network/IP specification in CIDR format.",
2503 "format" : "IPorCIDRorAlias",
013dc89f
DM
2504 "type" : "string",
2505 "typetext" : "<string>"
44660702
DM
2506 },
2507 "name" : {
2508 "description" : "IP set name.",
2509 "maxLength" : 64,
2510 "minLength" : 2,
2511 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2512 "type" : "string"
2513 }
2514 }
2515 },
2516 "permissions" : {
2517 "check" : [
2518 "perm",
2519 "/",
2520 [
2521 "Sys.Audit"
2522 ]
2523 ]
2524 },
2525 "protected" : 1,
2526 "returns" : {
2527 "type" : "object"
2528 }
7aacca6f 2529 },
44660702 2530 "PUT" : {
e9cd3bd4 2531 "allowtoken" : 1,
44660702
DM
2532 "description" : "Update IP or Network settings",
2533 "method" : "PUT",
2534 "name" : "update_ip",
2535 "parameters" : {
2536 "additionalProperties" : 0,
2537 "properties" : {
2538 "cidr" : {
2539 "description" : "Network/IP specification in CIDR format.",
2540 "format" : "IPorCIDRorAlias",
013dc89f
DM
2541 "type" : "string",
2542 "typetext" : "<string>"
44660702
DM
2543 },
2544 "comment" : {
2545 "optional" : 1,
013dc89f
DM
2546 "type" : "string",
2547 "typetext" : "<string>"
44660702
DM
2548 },
2549 "digest" : {
2550 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2551 "maxLength" : 40,
2552 "optional" : 1,
013dc89f
DM
2553 "type" : "string",
2554 "typetext" : "<string>"
44660702
DM
2555 },
2556 "name" : {
2557 "description" : "IP set name.",
2558 "maxLength" : 64,
2559 "minLength" : 2,
2560 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2561 "type" : "string"
2562 },
2563 "nomatch" : {
2564 "optional" : 1,
013dc89f
DM
2565 "type" : "boolean",
2566 "typetext" : "<boolean>"
44660702
DM
2567 }
2568 }
2569 },
2570 "permissions" : {
2571 "check" : [
2572 "perm",
2573 "/",
2574 [
2575 "Sys.Modify"
2576 ]
2577 ]
2578 },
2579 "protected" : 1,
2580 "returns" : {
2581 "type" : "null"
2582 }
7aacca6f
DM
2583 }
2584 },
44660702
DM
2585 "leaf" : 1,
2586 "path" : "/cluster/firewall/ipset/{name}/{cidr}",
2587 "text" : "{cidr}"
7aacca6f 2588 }
44660702 2589 ],
7aacca6f
DM
2590 "info" : {
2591 "DELETE" : {
e9cd3bd4 2592 "allowtoken" : 1,
44660702
DM
2593 "description" : "Delete IPSet",
2594 "method" : "DELETE",
2595 "name" : "delete_ipset",
56122987 2596 "parameters" : {
44660702 2597 "additionalProperties" : 0,
56122987 2598 "properties" : {
81a3384d
TL
2599 "force" : {
2600 "description" : "Delete all members of the IPSet, if there are any.",
2601 "optional" : 1,
2602 "type" : "boolean",
2603 "typetext" : "<boolean>"
2604 },
56122987 2605 "name" : {
44660702 2606 "description" : "IP set name.",
56122987 2607 "maxLength" : 64,
44660702 2608 "minLength" : 2,
56122987 2609 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 2610 "type" : "string"
56122987 2611 }
44660702 2612 }
7aacca6f 2613 },
56122987
DM
2614 "permissions" : {
2615 "check" : [
2616 "perm",
2617 "/",
2618 [
2619 "Sys.Modify"
2620 ]
2621 ]
2622 },
7aacca6f
DM
2623 "protected" : 1,
2624 "returns" : {
2625 "type" : "null"
44660702 2626 }
7aacca6f 2627 },
44660702 2628 "GET" : {
e9cd3bd4 2629 "allowtoken" : 1,
44660702
DM
2630 "description" : "List IPSet content",
2631 "method" : "GET",
2632 "name" : "get_ipset",
56122987
DM
2633 "parameters" : {
2634 "additionalProperties" : 0,
2635 "properties" : {
7aacca6f 2636 "name" : {
44660702 2637 "description" : "IP set name.",
7aacca6f 2638 "maxLength" : 64,
7aacca6f 2639 "minLength" : 2,
44660702 2640 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 2641 "type" : "string"
56122987 2642 }
7aacca6f 2643 }
56122987 2644 },
56122987
DM
2645 "permissions" : {
2646 "check" : [
2647 "perm",
2648 "/",
2649 [
44660702 2650 "Sys.Audit"
56122987
DM
2651 ]
2652 ]
44660702
DM
2653 },
2654 "returns" : {
2655 "items" : {
2656 "properties" : {
2657 "cidr" : {
2658 "type" : "string"
2659 },
2660 "comment" : {
2661 "optional" : 1,
2662 "type" : "string"
2663 },
2664 "digest" : {
2665 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2666 "maxLength" : 40,
2667 "optional" : 0,
2668 "type" : "string"
2669 },
2670 "nomatch" : {
2671 "optional" : 1,
2672 "type" : "boolean"
2673 }
2674 },
2675 "type" : "object"
2676 },
2677 "links" : [
2678 {
2679 "href" : "{cidr}",
2680 "rel" : "child"
2681 }
2682 ],
2683 "type" : "array"
7aacca6f
DM
2684 }
2685 },
44660702 2686 "POST" : {
e9cd3bd4 2687 "allowtoken" : 1,
44660702
DM
2688 "description" : "Add IP or Network to IPSet.",
2689 "method" : "POST",
2690 "name" : "create_ip",
56122987
DM
2691 "parameters" : {
2692 "additionalProperties" : 0,
2693 "properties" : {
44660702
DM
2694 "cidr" : {
2695 "description" : "Network/IP specification in CIDR format.",
2696 "format" : "IPorCIDRorAlias",
013dc89f
DM
2697 "type" : "string",
2698 "typetext" : "<string>"
44660702
DM
2699 },
2700 "comment" : {
2701 "optional" : 1,
013dc89f
DM
2702 "type" : "string",
2703 "typetext" : "<string>"
44660702
DM
2704 },
2705 "name" : {
2706 "description" : "IP set name.",
2707 "maxLength" : 64,
2708 "minLength" : 2,
2709 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2710 "type" : "string"
2711 },
2712 "nomatch" : {
2713 "optional" : 1,
013dc89f
DM
2714 "type" : "boolean",
2715 "typetext" : "<boolean>"
56122987
DM
2716 }
2717 }
2718 },
56122987
DM
2719 "permissions" : {
2720 "check" : [
2721 "perm",
2722 "/",
2723 [
44660702 2724 "Sys.Modify"
56122987
DM
2725 ]
2726 ]
2727 },
44660702 2728 "protected" : 1,
56122987 2729 "returns" : {
44660702
DM
2730 "type" : "null"
2731 }
56122987
DM
2732 }
2733 },
44660702
DM
2734 "leaf" : 0,
2735 "path" : "/cluster/firewall/ipset/{name}",
2736 "text" : "{name}"
56122987
DM
2737 }
2738 ],
56122987 2739 "info" : {
44660702 2740 "GET" : {
e9cd3bd4 2741 "allowtoken" : 1,
44660702
DM
2742 "description" : "List IPSets",
2743 "method" : "GET",
2744 "name" : "ipset_index",
56122987 2745 "parameters" : {
7aacca6f 2746 "additionalProperties" : 0
56122987 2747 },
56122987
DM
2748 "permissions" : {
2749 "check" : [
2750 "perm",
2751 "/",
2752 [
7aacca6f 2753 "Sys.Audit"
56122987
DM
2754 ]
2755 ]
2756 },
56122987
DM
2757 "returns" : {
2758 "items" : {
2759 "properties" : {
44660702
DM
2760 "comment" : {
2761 "optional" : 1,
2762 "type" : "string"
56122987 2763 },
44660702
DM
2764 "digest" : {
2765 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2766 "maxLength" : 40,
2767 "optional" : 0,
2768 "type" : "string"
2769 },
2770 "name" : {
2771 "description" : "IP set name.",
2772 "maxLength" : 64,
2773 "minLength" : 2,
2774 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f 2775 "type" : "string"
56122987
DM
2776 }
2777 },
2778 "type" : "object"
44660702
DM
2779 },
2780 "links" : [
2781 {
2782 "href" : "{name}",
2783 "rel" : "child"
2784 }
2785 ],
2786 "type" : "array"
56122987 2787 }
44660702
DM
2788 },
2789 "POST" : {
e9cd3bd4 2790 "allowtoken" : 1,
44660702
DM
2791 "description" : "Create new IPSet",
2792 "method" : "POST",
2793 "name" : "create_ipset",
7aacca6f
DM
2794 "parameters" : {
2795 "additionalProperties" : 0,
2796 "properties" : {
44660702
DM
2797 "comment" : {
2798 "optional" : 1,
013dc89f
DM
2799 "type" : "string",
2800 "typetext" : "<string>"
44660702
DM
2801 },
2802 "digest" : {
2803 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2804 "maxLength" : 40,
2805 "optional" : 1,
013dc89f
DM
2806 "type" : "string",
2807 "typetext" : "<string>"
44660702
DM
2808 },
2809 "name" : {
2810 "description" : "IP set name.",
2811 "maxLength" : 64,
2812 "minLength" : 2,
2813 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2814 "type" : "string"
2815 },
2816 "rename" : {
2817 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
2818 "maxLength" : 64,
2819 "minLength" : 2,
2820 "optional" : 1,
2821 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2822 "type" : "string"
7aacca6f
DM
2823 }
2824 }
2825 },
56122987
DM
2826 "permissions" : {
2827 "check" : [
2828 "perm",
2829 "/",
2830 [
44660702 2831 "Sys.Modify"
56122987
DM
2832 ]
2833 ]
2834 },
44660702 2835 "protected" : 1,
56122987 2836 "returns" : {
44660702
DM
2837 "type" : "null"
2838 }
56122987 2839 }
7aacca6f 2840 },
44660702
DM
2841 "leaf" : 0,
2842 "path" : "/cluster/firewall/ipset",
2843 "text" : "ipset"
2844 },
56122987 2845 {
44660702
DM
2846 "children" : [
2847 {
2848 "info" : {
2849 "DELETE" : {
e9cd3bd4 2850 "allowtoken" : 1,
44660702
DM
2851 "description" : "Remove IP or Network alias.",
2852 "method" : "DELETE",
2853 "name" : "remove_alias",
2854 "parameters" : {
2855 "additionalProperties" : 0,
2856 "properties" : {
2857 "digest" : {
2858 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2859 "maxLength" : 40,
2860 "optional" : 1,
013dc89f
DM
2861 "type" : "string",
2862 "typetext" : "<string>"
44660702
DM
2863 },
2864 "name" : {
2865 "description" : "Alias name.",
2866 "maxLength" : 64,
2867 "minLength" : 2,
2868 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2869 "type" : "string"
2870 }
2871 }
2872 },
2873 "permissions" : {
2874 "check" : [
2875 "perm",
2876 "/",
2877 [
2878 "Sys.Modify"
2879 ]
2880 ]
2881 },
2882 "protected" : 1,
2883 "returns" : {
2884 "type" : "null"
2885 }
2886 },
2887 "GET" : {
e9cd3bd4 2888 "allowtoken" : 1,
44660702
DM
2889 "description" : "Read alias.",
2890 "method" : "GET",
2891 "name" : "read_alias",
2892 "parameters" : {
2893 "additionalProperties" : 0,
2894 "properties" : {
2895 "name" : {
2896 "description" : "Alias name.",
2897 "maxLength" : 64,
2898 "minLength" : 2,
2899 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2900 "type" : "string"
2901 }
2902 }
2903 },
2904 "permissions" : {
2905 "check" : [
2906 "perm",
2907 "/",
2908 [
2909 "Sys.Audit"
2910 ]
2911 ]
2912 },
2913 "returns" : {
2914 "type" : "object"
2915 }
2916 },
2917 "PUT" : {
e9cd3bd4 2918 "allowtoken" : 1,
44660702
DM
2919 "description" : "Update IP or Network alias.",
2920 "method" : "PUT",
2921 "name" : "update_alias",
2922 "parameters" : {
2923 "additionalProperties" : 0,
2924 "properties" : {
2925 "cidr" : {
2926 "description" : "Network/IP specification in CIDR format.",
2927 "format" : "IPorCIDR",
013dc89f
DM
2928 "type" : "string",
2929 "typetext" : "<string>"
44660702
DM
2930 },
2931 "comment" : {
2932 "optional" : 1,
013dc89f
DM
2933 "type" : "string",
2934 "typetext" : "<string>"
44660702
DM
2935 },
2936 "digest" : {
2937 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
2938 "maxLength" : 40,
2939 "optional" : 1,
013dc89f
DM
2940 "type" : "string",
2941 "typetext" : "<string>"
44660702
DM
2942 },
2943 "name" : {
2944 "description" : "Alias name.",
2945 "maxLength" : 64,
2946 "minLength" : 2,
2947 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2948 "type" : "string"
2949 },
2950 "rename" : {
2951 "description" : "Rename an existing alias.",
2952 "maxLength" : 64,
2953 "minLength" : 2,
2954 "optional" : 1,
2955 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
2956 "type" : "string"
2957 }
2958 }
2959 },
2960 "permissions" : {
2961 "check" : [
2962 "perm",
2963 "/",
2964 [
2965 "Sys.Modify"
2966 ]
2967 ]
2968 },
2969 "protected" : 1,
2970 "returns" : {
2971 "type" : "null"
2972 }
2973 }
2974 },
2975 "leaf" : 1,
2976 "path" : "/cluster/firewall/aliases/{name}",
2977 "text" : "{name}"
2978 }
2979 ],
2980 "info" : {
2981 "GET" : {
e9cd3bd4 2982 "allowtoken" : 1,
44660702
DM
2983 "description" : "List aliases",
2984 "method" : "GET",
2985 "name" : "get_aliases",
2986 "parameters" : {
2987 "additionalProperties" : 0
2988 },
2989 "permissions" : {
2990 "check" : [
2991 "perm",
2992 "/",
2993 [
2994 "Sys.Audit"
2995 ]
2996 ]
2997 },
2998 "returns" : {
2999 "items" : {
3000 "properties" : {
3001 "cidr" : {
3002 "type" : "string"
3003 },
3004 "comment" : {
3005 "optional" : 1,
3006 "type" : "string"
3007 },
3008 "digest" : {
3009 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
3010 "maxLength" : 40,
3011 "optional" : 0,
3012 "type" : "string"
3013 },
3014 "name" : {
3015 "type" : "string"
3016 }
3017 },
3018 "type" : "object"
3019 },
3020 "links" : [
3021 {
3022 "href" : "{name}",
3023 "rel" : "child"
3024 }
3025 ],
3026 "type" : "array"
3027 }
3028 },
3029 "POST" : {
e9cd3bd4 3030 "allowtoken" : 1,
44660702
DM
3031 "description" : "Create IP or Network Alias.",
3032 "method" : "POST",
3033 "name" : "create_alias",
56122987
DM
3034 "parameters" : {
3035 "additionalProperties" : 0,
3036 "properties" : {
44660702
DM
3037 "cidr" : {
3038 "description" : "Network/IP specification in CIDR format.",
3039 "format" : "IPorCIDR",
013dc89f
DM
3040 "type" : "string",
3041 "typetext" : "<string>"
44660702
DM
3042 },
3043 "comment" : {
3044 "optional" : 1,
013dc89f
DM
3045 "type" : "string",
3046 "typetext" : "<string>"
44660702
DM
3047 },
3048 "name" : {
3049 "description" : "Alias name.",
3050 "maxLength" : 64,
3051 "minLength" : 2,
3052 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
3053 "type" : "string"
56122987
DM
3054 }
3055 }
3056 },
56122987
DM
3057 "permissions" : {
3058 "check" : [
3059 "perm",
3060 "/",
3061 [
3062 "Sys.Modify"
3063 ]
3064 ]
3065 },
44660702 3066 "protected" : 1,
56122987
DM
3067 "returns" : {
3068 "type" : "null"
3069 }
44660702
DM
3070 }
3071 },
3072 "leaf" : 0,
3073 "path" : "/cluster/firewall/aliases",
3074 "text" : "aliases"
3075 },
3076 {
3077 "info" : {
3078 "GET" : {
e9cd3bd4 3079 "allowtoken" : 1,
44660702
DM
3080 "description" : "Get Firewall options.",
3081 "method" : "GET",
3082 "name" : "get_options",
3083 "parameters" : {
3084 "additionalProperties" : 0
7aacca6f 3085 },
56122987
DM
3086 "permissions" : {
3087 "check" : [
3088 "perm",
3089 "/",
3090 [
44660702 3091 "Sys.Audit"
56122987
DM
3092 ]
3093 ]
3094 },
44660702 3095 "returns" : {
56122987 3096 "properties" : {
5da3d723
TL
3097 "ebtables" : {
3098 "default" : 1,
3099 "description" : "Enable ebtables rules cluster wide.",
3100 "optional" : 1,
3101 "type" : "boolean"
3102 },
44660702
DM
3103 "enable" : {
3104 "description" : "Enable or disable the firewall cluster wide.",
3105 "minimum" : 0,
56122987 3106 "optional" : 1,
7aacca6f 3107 "type" : "integer"
56122987 3108 },
95895385
TL
3109 "log_ratelimit" : {
3110 "description" : "Log ratelimiting settings",
3111 "format" : {
3112 "burst" : {
3113 "default" : 5,
4772952b 3114 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
3115 "minimum" : 0,
3116 "optional" : 1,
3117 "type" : "integer"
3118 },
3119 "enable" : {
3120 "default" : "1",
3121 "default_key" : 1,
3122 "description" : "Enable or disable log rate limiting",
3123 "type" : "boolean"
3124 },
3125 "rate" : {
3126 "default" : "1/second",
3127 "description" : "Frequency with which the burst bucket gets refilled",
3128 "format_description" : "rate",
3129 "optional" : 1,
3130 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
3131 "type" : "string"
3132 }
3133 },
3134 "optional" : 1,
3135 "type" : "string"
3136 },
44660702
DM
3137 "policy_in" : {
3138 "description" : "Input policy.",
3139 "enum" : [
3140 "ACCEPT",
3141 "REJECT",
3142 "DROP"
3143 ],
56122987 3144 "optional" : 1,
44660702 3145 "type" : "string"
7aacca6f 3146 },
44660702
DM
3147 "policy_out" : {
3148 "description" : "Output policy.",
3149 "enum" : [
3150 "ACCEPT",
3151 "REJECT",
3152 "DROP"
3153 ],
7aacca6f 3154 "optional" : 1,
44660702
DM
3155 "type" : "string"
3156 }
3157 },
3158 "type" : "object"
3159 }
3160 },
3161 "PUT" : {
e9cd3bd4 3162 "allowtoken" : 1,
44660702
DM
3163 "description" : "Set Firewall options.",
3164 "method" : "PUT",
3165 "name" : "set_options",
3166 "parameters" : {
3167 "additionalProperties" : 0,
3168 "properties" : {
3169 "delete" : {
3170 "description" : "A list of settings you want to delete.",
3171 "format" : "pve-configid-list",
56122987 3172 "optional" : 1,
013dc89f
DM
3173 "type" : "string",
3174 "typetext" : "<string>"
56122987 3175 },
44660702
DM
3176 "digest" : {
3177 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
3178 "maxLength" : 40,
56122987 3179 "optional" : 1,
013dc89f
DM
3180 "type" : "string",
3181 "typetext" : "<string>"
56122987 3182 },
5da3d723
TL
3183 "ebtables" : {
3184 "default" : 1,
3185 "description" : "Enable ebtables rules cluster wide.",
3186 "optional" : 1,
3187 "type" : "boolean",
3188 "typetext" : "<boolean>"
3189 },
44660702
DM
3190 "enable" : {
3191 "description" : "Enable or disable the firewall cluster wide.",
7aacca6f 3192 "minimum" : 0,
56122987 3193 "optional" : 1,
4bd7df8b 3194 "type" : "integer",
013dc89f 3195 "typetext" : "<integer> (0 - N)"
56122987 3196 },
95895385
TL
3197 "log_ratelimit" : {
3198 "description" : "Log ratelimiting settings",
3199 "format" : {
3200 "burst" : {
3201 "default" : 5,
4772952b 3202 "description" : "Initial burst of packages which will always get logged before the rate is applied",
95895385
TL
3203 "minimum" : 0,
3204 "optional" : 1,
3205 "type" : "integer"
3206 },
3207 "enable" : {
3208 "default" : "1",
3209 "default_key" : 1,
3210 "description" : "Enable or disable log rate limiting",
3211 "type" : "boolean"
3212 },
3213 "rate" : {
3214 "default" : "1/second",
3215 "description" : "Frequency with which the burst bucket gets refilled",
3216 "format_description" : "rate",
3217 "optional" : 1,
3218 "pattern" : "[1-9][0-9]*\\/(second|minute|hour|day)",
3219 "type" : "string"
3220 }
3221 },
3222 "optional" : 1,
3223 "type" : "string",
3224 "typetext" : "[enable=]<1|0> [,burst=<integer>] [,rate=<rate>]"
3225 },
44660702
DM
3226 "policy_in" : {
3227 "description" : "Input policy.",
56122987 3228 "enum" : [
44660702
DM
3229 "ACCEPT",
3230 "REJECT",
3231 "DROP"
56122987 3232 ],
56122987 3233 "optional" : 1,
44660702 3234 "type" : "string"
56122987 3235 },
44660702
DM
3236 "policy_out" : {
3237 "description" : "Output policy.",
56122987 3238 "enum" : [
44660702
DM
3239 "ACCEPT",
3240 "REJECT",
3241 "DROP"
56122987 3242 ],
7aacca6f 3243 "optional" : 1,
44660702 3244 "type" : "string"
56122987 3245 }
44660702
DM
3246 }
3247 },
3248 "permissions" : {
3249 "check" : [
3250 "perm",
3251 "/",
3252 [
3253 "Sys.Modify"
3254 ]
3255 ]
7aacca6f
DM
3256 },
3257 "protected" : 1,
44660702
DM
3258 "returns" : {
3259 "type" : "null"
3260 }
3261 }
3262 },
3263 "leaf" : 1,
3264 "path" : "/cluster/firewall/options",
3265 "text" : "options"
3266 },
3267 {
3268 "info" : {
7aacca6f 3269 "GET" : {
e9cd3bd4 3270 "allowtoken" : 1,
44660702 3271 "description" : "List available macros",
7aacca6f 3272 "method" : "GET",
44660702
DM
3273 "name" : "get_macros",
3274 "parameters" : {
3275 "additionalProperties" : 0
7aacca6f 3276 },
44660702
DM
3277 "permissions" : {
3278 "user" : "all"
3279 },
3280 "returns" : {
3281 "items" : {
3282 "properties" : {
3283 "descr" : {
3284 "description" : "More verbose description (if available).",
3285 "type" : "string"
3286 },
3287 "macro" : {
3288 "description" : "Macro name.",
3289 "type" : "string"
3290 }
3291 },
3292 "type" : "object"
3293 },
3294 "type" : "array"
3295 }
3296 }
3297 },
3298 "leaf" : 1,
3299 "path" : "/cluster/firewall/macros",
3300 "text" : "macros"
3301 },
3302 {
3303 "info" : {
3304 "GET" : {
e9cd3bd4 3305 "allowtoken" : 1,
44660702
DM
3306 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
3307 "method" : "GET",
3308 "name" : "refs",
7aacca6f 3309 "parameters" : {
44660702 3310 "additionalProperties" : 0,
7aacca6f 3311 "properties" : {
44660702
DM
3312 "type" : {
3313 "description" : "Only list references of specified type.",
3314 "enum" : [
3315 "alias",
3316 "ipset"
3317 ],
3318 "optional" : 1,
3319 "type" : "string"
7aacca6f 3320 }
44660702 3321 }
7aacca6f
DM
3322 },
3323 "permissions" : {
3324 "check" : [
3325 "perm",
3326 "/",
3327 [
3328 "Sys.Audit"
3329 ]
3330 ]
3331 },
44660702
DM
3332 "returns" : {
3333 "items" : {
3334 "properties" : {
3335 "comment" : {
3336 "optional" : 1,
3337 "type" : "string"
3338 },
3339 "name" : {
3340 "type" : "string"
3341 },
3342 "ref" : {
3343 "type" : "string"
3344 },
3345 "type" : {
3346 "enum" : [
3347 "alias",
3348 "ipset"
3349 ],
3350 "type" : "string"
3351 }
3352 },
3353 "type" : "object"
3354 },
3355 "type" : "array"
3356 }
56122987
DM
3357 }
3358 },
7aacca6f 3359 "leaf" : 1,
44660702
DM
3360 "path" : "/cluster/firewall/refs",
3361 "text" : "refs"
56122987
DM
3362 }
3363 ],
56122987 3364 "info" : {
44660702 3365 "GET" : {
e9cd3bd4 3366 "allowtoken" : 1,
44660702
DM
3367 "description" : "Directory index.",
3368 "method" : "GET",
3369 "name" : "index",
56122987 3370 "parameters" : {
56122987
DM
3371 "additionalProperties" : 0
3372 },
44660702
DM
3373 "permissions" : {
3374 "user" : "all"
3375 },
56122987 3376 "returns" : {
44660702
DM
3377 "items" : {
3378 "properties" : {},
3379 "type" : "object"
3380 },
7aacca6f
DM
3381 "links" : [
3382 {
44660702
DM
3383 "href" : "{name}",
3384 "rel" : "child"
7aacca6f
DM
3385 }
3386 ],
7aacca6f 3387 "type" : "array"
7aacca6f 3388 }
56122987
DM
3389 }
3390 },
44660702
DM
3391 "leaf" : 0,
3392 "path" : "/cluster/firewall",
3393 "text" : "firewall"
7aacca6f
DM
3394 },
3395 {
56122987
DM
3396 "children" : [
3397 {
04d22a9f
TL
3398 "children" : [
3399 {
3400 "info" : {
3401 "GET" : {
3402 "allowtoken" : 1,
3403 "description" : "Returns included guests and the backup status of their disks. Optimized to be used in ExtJS tree views.",
3404 "method" : "GET",
3405 "name" : "get_volume_backup_included",
3406 "parameters" : {
3407 "additionalProperties" : 0,
3408 "properties" : {
3409 "id" : {
3410 "description" : "The job ID.",
3411 "maxLength" : 50,
3412 "type" : "string",
3413 "typetext" : "<string>"
3414 }
3415 }
3416 },
3417 "permissions" : {
3418 "check" : [
3419 "perm",
3420 "/",
3421 [
3422 "Sys.Audit"
3423 ]
3424 ]
3425 },
3426 "protected" : 1,
3427 "returns" : {
3428 "description" : "Root node of the tree object. Children represent guests, grandchildren represent volumes of that guest.",
3429 "properties" : {
3430 "children" : {
3431 "items" : {
3432 "properties" : {
3433 "children" : {
3434 "description" : "The volumes of the guest with the information if they will be included in backups.",
3435 "items" : {
3436 "properties" : {
3437 "id" : {
3438 "description" : "Configuration key of the volume.",
3439 "type" : "string"
3440 },
3441 "included" : {
3442 "description" : "Whether the volume is included in the backup or not.",
3443 "type" : "boolean"
3444 },
3445 "name" : {
3446 "description" : "Name of the volume.",
3447 "type" : "string"
3448 },
3449 "reason" : {
3450 "description" : "The reason why the volume is included (or excluded).",
3451 "type" : "string"
3452 }
3453 },
3454 "type" : "object"
3455 },
3456 "optional" : 1,
3457 "type" : "array"
3458 },
3459 "id" : {
3460 "description" : "VMID of the guest.",
3461 "type" : "integer"
3462 },
3463 "name" : {
3464 "description" : "Name of the guest",
3465 "optional" : 1,
3466 "type" : "string"
3467 },
3468 "type" : {
3469 "description" : "Type of the guest, VM, CT or unknown for removed but not purged guests.",
3470 "enum" : [
3471 "qemu",
3472 "lxc",
3473 "unknown"
3474 ],
3475 "type" : "string"
3476 }
3477 },
3478 "type" : "object"
3479 },
3480 "type" : "array"
3481 }
3482 },
3483 "type" : "object"
3484 }
3485 }
3486 },
3487 "leaf" : 1,
3488 "path" : "/cluster/backup/{id}/included_volumes",
3489 "text" : "included_volumes"
3490 }
3491 ],
56122987 3492 "info" : {
44660702 3493 "DELETE" : {
e9cd3bd4 3494 "allowtoken" : 1,
44660702
DM
3495 "description" : "Delete vzdump backup job definition.",
3496 "method" : "DELETE",
3497 "name" : "delete_job",
3498 "parameters" : {
3499 "additionalProperties" : 0,
3500 "properties" : {
3501 "id" : {
3502 "description" : "The job ID.",
3503 "maxLength" : 50,
013dc89f
DM
3504 "type" : "string",
3505 "typetext" : "<string>"
44660702
DM
3506 }
3507 }
3508 },
3509 "permissions" : {
3510 "check" : [
3511 "perm",
3512 "/",
3513 [
3514 "Sys.Modify"
3515 ]
3516 ]
3517 },
3518 "protected" : 1,
56122987
DM
3519 "returns" : {
3520 "type" : "null"
44660702
DM
3521 }
3522 },
3523 "GET" : {
e9cd3bd4 3524 "allowtoken" : 1,
44660702
DM
3525 "description" : "Read vzdump backup job definition.",
3526 "method" : "GET",
3527 "name" : "read_job",
3528 "parameters" : {
3529 "additionalProperties" : 0,
3530 "properties" : {
3531 "id" : {
3532 "description" : "The job ID.",
3533 "maxLength" : 50,
013dc89f
DM
3534 "type" : "string",
3535 "typetext" : "<string>"
44660702
DM
3536 }
3537 }
56122987 3538 },
7aacca6f
DM
3539 "permissions" : {
3540 "check" : [
3541 "perm",
3542 "/",
3543 [
44660702 3544 "Sys.Audit"
7aacca6f
DM
3545 ]
3546 ]
3547 },
44660702
DM
3548 "returns" : {
3549 "type" : "object"
3550 }
3551 },
3552 "PUT" : {
e9cd3bd4 3553 "allowtoken" : 1,
44660702
DM
3554 "description" : "Update vzdump backup job definition.",
3555 "method" : "PUT",
3556 "name" : "update_job",
56122987 3557 "parameters" : {
44660702 3558 "additionalProperties" : 0,
56122987 3559 "properties" : {
44660702
DM
3560 "all" : {
3561 "default" : 0,
3562 "description" : "Backup all known guest systems on this host.",
7aacca6f 3563 "optional" : 1,
013dc89f
DM
3564 "type" : "boolean",
3565 "typetext" : "<boolean>"
7aacca6f 3566 },
44660702
DM
3567 "bwlimit" : {
3568 "default" : 0,
3569 "description" : "Limit I/O bandwidth (KBytes per second).",
3570 "minimum" : 0,
3571 "optional" : 1,
4bd7df8b 3572 "type" : "integer",
013dc89f 3573 "typetext" : "<integer> (0 - N)"
44660702 3574 },
5370fa8c
TL
3575 "comment" : {
3576 "description" : "Description for the Job.",
3577 "maxLength" : 512,
3578 "optional" : 1,
3579 "type" : "string",
3580 "typetext" : "<string>"
3581 },
44660702
DM
3582 "compress" : {
3583 "default" : "0",
3584 "description" : "Compress dump file.",
7aacca6f 3585 "enum" : [
44660702
DM
3586 "0",
3587 "1",
3588 "gzip",
c5aa7e14
TL
3589 "lzo",
3590 "zstd"
7aacca6f 3591 ],
44660702
DM
3592 "optional" : 1,
3593 "type" : "string"
7aacca6f 3594 },
44660702
DM
3595 "delete" : {
3596 "description" : "A list of settings you want to delete.",
3597 "format" : "pve-configid-list",
7aacca6f 3598 "optional" : 1,
013dc89f
DM
3599 "type" : "string",
3600 "typetext" : "<string>"
56122987 3601 },
44660702
DM
3602 "dow" : {
3603 "description" : "Day of week selection.",
3604 "format" : "pve-day-of-week-list",
7aacca6f 3605 "optional" : 1,
5370fa8c 3606 "requires" : "starttime",
013dc89f
DM
3607 "type" : "string",
3608 "typetext" : "<string>"
56122987 3609 },
44660702
DM
3610 "dumpdir" : {
3611 "description" : "Store resulting files to specified directory.",
56122987 3612 "optional" : 1,
013dc89f
DM
3613 "type" : "string",
3614 "typetext" : "<string>"
56122987 3615 },
44660702
DM
3616 "enabled" : {
3617 "default" : "1",
3618 "description" : "Enable or disable the job.",
3619 "optional" : 1,
013dc89f
DM
3620 "type" : "boolean",
3621 "typetext" : "<boolean>"
44660702
DM
3622 },
3623 "exclude" : {
3624 "description" : "Exclude specified guest systems (assumes --all)",
3625 "format" : "pve-vmid-list",
3626 "optional" : 1,
013dc89f
DM
3627 "type" : "string",
3628 "typetext" : "<string>"
44660702
DM
3629 },
3630 "exclude-path" : {
d2656385 3631 "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
3632 "format" : "string-alist",
3633 "optional" : 1,
013dc89f
DM
3634 "type" : "string",
3635 "typetext" : "<string>"
44660702
DM
3636 },
3637 "id" : {
3638 "description" : "The job ID.",
3639 "maxLength" : 50,
013dc89f
DM
3640 "type" : "string",
3641 "typetext" : "<string>"
44660702
DM
3642 },
3643 "ionice" : {
3644 "default" : 7,
3645 "description" : "Set CFQ ionice priority.",
3646 "maximum" : 8,
3647 "minimum" : 0,
3648 "optional" : 1,
4bd7df8b 3649 "type" : "integer",
013dc89f 3650 "typetext" : "<integer> (0 - 8)"
44660702
DM
3651 },
3652 "lockwait" : {
3653 "default" : 180,
3654 "description" : "Maximal time to wait for the global lock (minutes).",
3655 "minimum" : 0,
3656 "optional" : 1,
4bd7df8b 3657 "type" : "integer",
013dc89f 3658 "typetext" : "<integer> (0 - N)"
44660702
DM
3659 },
3660 "mailnotification" : {
3661 "default" : "always",
3662 "description" : "Specify when to send an email",
56122987 3663 "enum" : [
44660702
DM
3664 "always",
3665 "failure"
56122987 3666 ],
44660702
DM
3667 "optional" : 1,
3668 "type" : "string"
3669 },
3670 "mailto" : {
d2656385
TL
3671 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
3672 "format" : "email-or-username-list",
44660702 3673 "optional" : 1,
013dc89f
DM
3674 "type" : "string",
3675 "typetext" : "<string>"
44660702
DM
3676 },
3677 "maxfiles" : {
0695fdaf 3678 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
3679 "minimum" : 1,
3680 "optional" : 1,
4bd7df8b 3681 "type" : "integer",
013dc89f 3682 "typetext" : "<integer> (1 - N)"
44660702
DM
3683 },
3684 "mode" : {
3685 "default" : "snapshot",
3686 "description" : "Backup mode.",
3687 "enum" : [
3688 "snapshot",
3689 "suspend",
3690 "stop"
3691 ],
3692 "optional" : 1,
3693 "type" : "string"
3694 },
3695 "node" : {
3696 "description" : "Only run if executed on this node.",
3697 "format" : "pve-node",
3698 "optional" : 1,
013dc89f
DM
3699 "type" : "string",
3700 "typetext" : "<string>"
44660702 3701 },
7af2edf9 3702 "notes-template" : {
4e7f60c2
TL
3703 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
3704 "maxLength" : 1024,
7af2edf9
TL
3705 "optional" : 1,
3706 "requires" : "storage",
3707 "type" : "string",
3708 "typetext" : "<string>"
3709 },
4e7f60c2
TL
3710 "performance" : {
3711 "description" : "Other performance-related settings.",
3712 "format" : "backup-performance",
3713 "optional" : 1,
3714 "type" : "string",
3715 "typetext" : "[max-workers=<integer>]"
3716 },
44660702
DM
3717 "pigz" : {
3718 "default" : 0,
3719 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
3720 "optional" : 1,
013dc89f
DM
3721 "type" : "integer",
3722 "typetext" : "<integer>"
44660702 3723 },
9226ccbc
TL
3724 "pool" : {
3725 "description" : "Backup all known guest systems included in the specified pool.",
3726 "optional" : 1,
3727 "type" : "string",
3728 "typetext" : "<string>"
3729 },
7af2edf9
TL
3730 "protected" : {
3731 "description" : "If true, mark backup(s) as protected.",
3732 "optional" : 1,
3733 "requires" : "storage",
3734 "type" : "boolean",
3735 "typetext" : "<boolean>"
3736 },
739d4d64 3737 "prune-backups" : {
0695fdaf 3738 "default" : "keep-all=1",
739d4d64
TL
3739 "description" : "Use these retention options instead of those from the storage configuration.",
3740 "format" : "prune-backups",
3741 "optional" : 1,
3742 "type" : "string",
4772952b 3743 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 3744 },
44660702
DM
3745 "quiet" : {
3746 "default" : 0,
3747 "description" : "Be quiet.",
3748 "optional" : 1,
013dc89f
DM
3749 "type" : "boolean",
3750 "typetext" : "<boolean>"
44660702
DM
3751 },
3752 "remove" : {
3753 "default" : 1,
0695fdaf 3754 "description" : "Prune older backups according to 'prune-backups'.",
44660702 3755 "optional" : 1,
013dc89f
DM
3756 "type" : "boolean",
3757 "typetext" : "<boolean>"
44660702 3758 },
de786b48
TL
3759 "repeat-missed" : {
3760 "default" : 0,
3761 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
3762 "optional" : 1,
3763 "type" : "boolean",
3764 "typetext" : "<boolean>"
3765 },
5370fa8c
TL
3766 "schedule" : {
3767 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
3768 "format" : "pve-calendar-event",
3769 "maxLength" : 128,
3770 "optional" : 1,
3771 "type" : "string",
3772 "typetext" : "<string>"
3773 },
44660702
DM
3774 "script" : {
3775 "description" : "Use specified hook script.",
3776 "optional" : 1,
013dc89f
DM
3777 "type" : "string",
3778 "typetext" : "<string>"
44660702 3779 },
44660702
DM
3780 "starttime" : {
3781 "description" : "Job Start time.",
5370fa8c 3782 "optional" : 1,
44660702 3783 "pattern" : "\\d{1,2}:\\d{1,2}",
56122987 3784 "type" : "string",
44660702 3785 "typetext" : "HH:MM"
7aacca6f 3786 },
44660702
DM
3787 "stdexcludes" : {
3788 "default" : 1,
3789 "description" : "Exclude temporary files and logs.",
3790 "optional" : 1,
013dc89f
DM
3791 "type" : "boolean",
3792 "typetext" : "<boolean>"
44660702
DM
3793 },
3794 "stop" : {
3795 "default" : 0,
1e3f8156 3796 "description" : "Stop running backup jobs on this host.",
44660702 3797 "optional" : 1,
013dc89f
DM
3798 "type" : "boolean",
3799 "typetext" : "<boolean>"
44660702
DM
3800 },
3801 "stopwait" : {
3802 "default" : 10,
3803 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
3804 "minimum" : 0,
3805 "optional" : 1,
4bd7df8b 3806 "type" : "integer",
013dc89f 3807 "typetext" : "<integer> (0 - N)"
44660702
DM
3808 },
3809 "storage" : {
3810 "description" : "Store resulting file to this storage.",
3811 "format" : "pve-storage-id",
3812 "optional" : 1,
013dc89f
DM
3813 "type" : "string",
3814 "typetext" : "<string>"
56122987 3815 },
44660702
DM
3816 "tmpdir" : {
3817 "description" : "Store temporary files to specified directory.",
3818 "optional" : 1,
013dc89f
DM
3819 "type" : "string",
3820 "typetext" : "<string>"
44660702
DM
3821 },
3822 "vmid" : {
3823 "description" : "The ID of the guest system you want to backup.",
3824 "format" : "pve-vmid-list",
3825 "optional" : 1,
013dc89f
DM
3826 "type" : "string",
3827 "typetext" : "<string>"
c5aa7e14
TL
3828 },
3829 "zstd" : {
3830 "default" : 1,
3831 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
3832 "optional" : 1,
3833 "type" : "integer",
3834 "typetext" : "<integer>"
56122987 3835 }
44660702 3836 }
56122987
DM
3837 },
3838 "permissions" : {
3839 "check" : [
3840 "perm",
3841 "/",
3842 [
44660702 3843 "Sys.Modify"
56122987 3844 ]
04d22a9f
TL
3845 ],
3846 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
56122987 3847 },
44660702
DM
3848 "protected" : 1,
3849 "returns" : {
3850 "type" : "null"
7aacca6f 3851 }
56122987
DM
3852 }
3853 },
04d22a9f 3854 "leaf" : 0,
44660702
DM
3855 "path" : "/cluster/backup/{id}",
3856 "text" : "{id}"
3857 }
3858 ],
3859 "info" : {
3860 "GET" : {
e9cd3bd4 3861 "allowtoken" : 1,
44660702
DM
3862 "description" : "List vzdump backup schedule.",
3863 "method" : "GET",
3864 "name" : "index",
3865 "parameters" : {
3866 "additionalProperties" : 0
3867 },
3868 "permissions" : {
3869 "check" : [
3870 "perm",
3871 "/",
3872 [
3873 "Sys.Audit"
3874 ]
3875 ]
3876 },
3877 "returns" : {
3878 "items" : {
3879 "properties" : {
3880 "id" : {
1c532546
TL
3881 "description" : "The job ID.",
3882 "maxLength" : 50,
44660702
DM
3883 "type" : "string"
3884 }
3885 },
3886 "type" : "object"
3887 },
3888 "links" : [
3889 {
3890 "href" : "{id}",
3891 "rel" : "child"
3892 }
3893 ],
3894 "type" : "array"
3895 }
3896 },
3897 "POST" : {
e9cd3bd4 3898 "allowtoken" : 1,
44660702
DM
3899 "description" : "Create new vzdump backup job.",
3900 "method" : "POST",
3901 "name" : "create_job",
3902 "parameters" : {
3903 "additionalProperties" : 0,
3904 "properties" : {
3905 "all" : {
3906 "default" : 0,
3907 "description" : "Backup all known guest systems on this host.",
3908 "optional" : 1,
013dc89f
DM
3909 "type" : "boolean",
3910 "typetext" : "<boolean>"
44660702
DM
3911 },
3912 "bwlimit" : {
3913 "default" : 0,
3914 "description" : "Limit I/O bandwidth (KBytes per second).",
3915 "minimum" : 0,
3916 "optional" : 1,
4bd7df8b 3917 "type" : "integer",
013dc89f 3918 "typetext" : "<integer> (0 - N)"
44660702 3919 },
5370fa8c
TL
3920 "comment" : {
3921 "description" : "Description for the Job.",
3922 "maxLength" : 512,
3923 "optional" : 1,
3924 "type" : "string",
3925 "typetext" : "<string>"
3926 },
44660702
DM
3927 "compress" : {
3928 "default" : "0",
3929 "description" : "Compress dump file.",
3930 "enum" : [
3931 "0",
3932 "1",
3933 "gzip",
c5aa7e14
TL
3934 "lzo",
3935 "zstd"
44660702
DM
3936 ],
3937 "optional" : 1,
3938 "type" : "string"
3939 },
3940 "dow" : {
3941 "default" : "mon,tue,wed,thu,fri,sat,sun",
3942 "description" : "Day of week selection.",
3943 "format" : "pve-day-of-week-list",
3944 "optional" : 1,
5370fa8c 3945 "requires" : "starttime",
013dc89f
DM
3946 "type" : "string",
3947 "typetext" : "<string>"
44660702
DM
3948 },
3949 "dumpdir" : {
3950 "description" : "Store resulting files to specified directory.",
3951 "optional" : 1,
013dc89f
DM
3952 "type" : "string",
3953 "typetext" : "<string>"
44660702
DM
3954 },
3955 "enabled" : {
3956 "default" : "1",
3957 "description" : "Enable or disable the job.",
3958 "optional" : 1,
013dc89f
DM
3959 "type" : "boolean",
3960 "typetext" : "<boolean>"
44660702
DM
3961 },
3962 "exclude" : {
3963 "description" : "Exclude specified guest systems (assumes --all)",
3964 "format" : "pve-vmid-list",
3965 "optional" : 1,
013dc89f
DM
3966 "type" : "string",
3967 "typetext" : "<string>"
44660702
DM
3968 },
3969 "exclude-path" : {
d2656385 3970 "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
3971 "format" : "string-alist",
3972 "optional" : 1,
013dc89f
DM
3973 "type" : "string",
3974 "typetext" : "<string>"
44660702 3975 },
5370fa8c
TL
3976 "id" : {
3977 "description" : "Job ID (will be autogenerated).",
3978 "format" : "pve-configid",
3979 "optional" : 1,
3980 "type" : "string",
3981 "typetext" : "<string>"
3982 },
44660702
DM
3983 "ionice" : {
3984 "default" : 7,
3985 "description" : "Set CFQ ionice priority.",
3986 "maximum" : 8,
3987 "minimum" : 0,
3988 "optional" : 1,
4bd7df8b 3989 "type" : "integer",
013dc89f 3990 "typetext" : "<integer> (0 - 8)"
44660702
DM
3991 },
3992 "lockwait" : {
3993 "default" : 180,
3994 "description" : "Maximal time to wait for the global lock (minutes).",
3995 "minimum" : 0,
3996 "optional" : 1,
4bd7df8b 3997 "type" : "integer",
013dc89f 3998 "typetext" : "<integer> (0 - N)"
44660702
DM
3999 },
4000 "mailnotification" : {
4001 "default" : "always",
4002 "description" : "Specify when to send an email",
4003 "enum" : [
4004 "always",
4005 "failure"
4006 ],
4007 "optional" : 1,
4008 "type" : "string"
4009 },
4010 "mailto" : {
d2656385
TL
4011 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
4012 "format" : "email-or-username-list",
44660702 4013 "optional" : 1,
013dc89f
DM
4014 "type" : "string",
4015 "typetext" : "<string>"
44660702
DM
4016 },
4017 "maxfiles" : {
0695fdaf 4018 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
44660702
DM
4019 "minimum" : 1,
4020 "optional" : 1,
4bd7df8b 4021 "type" : "integer",
013dc89f 4022 "typetext" : "<integer> (1 - N)"
44660702
DM
4023 },
4024 "mode" : {
4025 "default" : "snapshot",
4026 "description" : "Backup mode.",
4027 "enum" : [
4028 "snapshot",
4029 "suspend",
4030 "stop"
4031 ],
4032 "optional" : 1,
4033 "type" : "string"
4034 },
4035 "node" : {
4036 "description" : "Only run if executed on this node.",
4037 "format" : "pve-node",
4038 "optional" : 1,
013dc89f
DM
4039 "type" : "string",
4040 "typetext" : "<string>"
44660702 4041 },
7af2edf9 4042 "notes-template" : {
4e7f60c2
TL
4043 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
4044 "maxLength" : 1024,
7af2edf9
TL
4045 "optional" : 1,
4046 "requires" : "storage",
4047 "type" : "string",
4048 "typetext" : "<string>"
4049 },
4e7f60c2
TL
4050 "performance" : {
4051 "description" : "Other performance-related settings.",
4052 "format" : "backup-performance",
4053 "optional" : 1,
4054 "type" : "string",
4055 "typetext" : "[max-workers=<integer>]"
4056 },
44660702
DM
4057 "pigz" : {
4058 "default" : 0,
4059 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
4060 "optional" : 1,
013dc89f
DM
4061 "type" : "integer",
4062 "typetext" : "<integer>"
44660702 4063 },
9226ccbc
TL
4064 "pool" : {
4065 "description" : "Backup all known guest systems included in the specified pool.",
4066 "optional" : 1,
4067 "type" : "string",
4068 "typetext" : "<string>"
4069 },
7af2edf9
TL
4070 "protected" : {
4071 "description" : "If true, mark backup(s) as protected.",
4072 "optional" : 1,
4073 "requires" : "storage",
4074 "type" : "boolean",
4075 "typetext" : "<boolean>"
4076 },
739d4d64 4077 "prune-backups" : {
0695fdaf 4078 "default" : "keep-all=1",
739d4d64
TL
4079 "description" : "Use these retention options instead of those from the storage configuration.",
4080 "format" : "prune-backups",
4081 "optional" : 1,
4082 "type" : "string",
4772952b 4083 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 4084 },
44660702
DM
4085 "quiet" : {
4086 "default" : 0,
4087 "description" : "Be quiet.",
4088 "optional" : 1,
013dc89f
DM
4089 "type" : "boolean",
4090 "typetext" : "<boolean>"
44660702
DM
4091 },
4092 "remove" : {
4093 "default" : 1,
0695fdaf 4094 "description" : "Prune older backups according to 'prune-backups'.",
44660702 4095 "optional" : 1,
013dc89f
DM
4096 "type" : "boolean",
4097 "typetext" : "<boolean>"
44660702 4098 },
de786b48
TL
4099 "repeat-missed" : {
4100 "default" : 0,
4101 "description" : "If true, the job will be run as soon as possible if it was missed while the scheduler was not running.",
4102 "optional" : 1,
4103 "type" : "boolean",
4104 "typetext" : "<boolean>"
4105 },
5370fa8c
TL
4106 "schedule" : {
4107 "description" : "Backup schedule. The format is a subset of `systemd` calendar events.",
4108 "format" : "pve-calendar-event",
4109 "maxLength" : 128,
4110 "optional" : 1,
4111 "type" : "string",
4112 "typetext" : "<string>"
4113 },
44660702
DM
4114 "script" : {
4115 "description" : "Use specified hook script.",
4116 "optional" : 1,
013dc89f
DM
4117 "type" : "string",
4118 "typetext" : "<string>"
44660702 4119 },
44660702
DM
4120 "starttime" : {
4121 "description" : "Job Start time.",
5370fa8c 4122 "optional" : 1,
44660702
DM
4123 "pattern" : "\\d{1,2}:\\d{1,2}",
4124 "type" : "string",
4125 "typetext" : "HH:MM"
4126 },
4127 "stdexcludes" : {
4128 "default" : 1,
4129 "description" : "Exclude temporary files and logs.",
4130 "optional" : 1,
013dc89f
DM
4131 "type" : "boolean",
4132 "typetext" : "<boolean>"
44660702
DM
4133 },
4134 "stop" : {
4135 "default" : 0,
1e3f8156 4136 "description" : "Stop running backup jobs on this host.",
44660702 4137 "optional" : 1,
013dc89f
DM
4138 "type" : "boolean",
4139 "typetext" : "<boolean>"
44660702
DM
4140 },
4141 "stopwait" : {
4142 "default" : 10,
4143 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
4144 "minimum" : 0,
4145 "optional" : 1,
4bd7df8b 4146 "type" : "integer",
013dc89f 4147 "typetext" : "<integer> (0 - N)"
44660702
DM
4148 },
4149 "storage" : {
4150 "description" : "Store resulting file to this storage.",
4151 "format" : "pve-storage-id",
4152 "optional" : 1,
013dc89f
DM
4153 "type" : "string",
4154 "typetext" : "<string>"
44660702
DM
4155 },
4156 "tmpdir" : {
4157 "description" : "Store temporary files to specified directory.",
4158 "optional" : 1,
013dc89f
DM
4159 "type" : "string",
4160 "typetext" : "<string>"
44660702
DM
4161 },
4162 "vmid" : {
4163 "description" : "The ID of the guest system you want to backup.",
4164 "format" : "pve-vmid-list",
4165 "optional" : 1,
013dc89f
DM
4166 "type" : "string",
4167 "typetext" : "<string>"
c5aa7e14
TL
4168 },
4169 "zstd" : {
4170 "default" : 1,
4171 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
4172 "optional" : 1,
4173 "type" : "integer",
4174 "typetext" : "<integer>"
44660702
DM
4175 }
4176 }
4177 },
4178 "permissions" : {
4179 "check" : [
4180 "perm",
4181 "/",
4182 [
4183 "Sys.Modify"
4184 ]
de0983cb
DM
4185 ],
4186 "description" : "The 'tmpdir', 'dumpdir' and 'script' parameters are additionally restricted to the 'root@pam' user."
44660702
DM
4187 },
4188 "protected" : 1,
4189 "returns" : {
4190 "type" : "null"
4191 }
4192 }
4193 },
4194 "leaf" : 0,
4195 "path" : "/cluster/backup",
4196 "text" : "backup"
4197 },
04d22a9f
TL
4198 {
4199 "children" : [
4200 {
4201 "info" : {
4202 "GET" : {
4203 "allowtoken" : 1,
4204 "description" : "Shows all guests which are not covered by any backup job.",
4205 "method" : "GET",
4206 "name" : "get_guests_not_in_backup",
4207 "parameters" : {
4208 "additionalProperties" : 0
4209 },
4210 "permissions" : {
4211 "check" : [
4212 "perm",
4213 "/",
4214 [
4215 "Sys.Audit"
4216 ]
4217 ]
4218 },
4219 "protected" : 1,
4220 "returns" : {
4221 "description" : "Contains the guest objects.",
4222 "items" : {
4223 "properties" : {
4224 "name" : {
4225 "description" : "Name of the guest",
4226 "optional" : 1,
4227 "type" : "string"
4228 },
4229 "type" : {
4230 "description" : "Type of the guest.",
4231 "enum" : [
4232 "qemu",
4233 "lxc"
4234 ],
4235 "type" : "string"
4236 },
4237 "vmid" : {
4238 "description" : "VMID of the guest.",
4239 "type" : "integer"
4240 }
4241 },
4242 "type" : "object"
4243 },
4244 "type" : "array"
4245 }
4246 }
4247 },
4248 "leaf" : 1,
34f3e481
TL
4249 "path" : "/cluster/backup-info/not-backed-up",
4250 "text" : "not-backed-up"
04d22a9f
TL
4251 }
4252 ],
4253 "info" : {
4254 "GET" : {
4255 "allowtoken" : 1,
34f3e481 4256 "description" : "Index for backup info related endpoints",
04d22a9f 4257 "method" : "GET",
34f3e481 4258 "name" : "index",
04d22a9f
TL
4259 "parameters" : {
4260 "additionalProperties" : 0
4261 },
04d22a9f 4262 "returns" : {
34f3e481
TL
4263 "description" : "Directory index.",
4264 "items" : {
4265 "properties" : {
4266 "subdir" : {
4267 "description" : "API sub-directory endpoint",
4268 "type" : "string"
4269 }
4270 },
4271 "type" : "object"
4272 },
4273 "links" : [
4274 {
4275 "href" : "{subdir}",
4276 "rel" : "child"
4277 }
4278 ],
4279 "type" : "array"
04d22a9f
TL
4280 }
4281 }
4282 },
4283 "leaf" : 0,
34f3e481
TL
4284 "path" : "/cluster/backup-info",
4285 "text" : "backup-info"
04d22a9f 4286 },
44660702
DM
4287 {
4288 "children" : [
4289 {
4290 "children" : [
4291 {
4292 "children" : [
56122987 4293 {
56122987
DM
4294 "info" : {
4295 "POST" : {
e9cd3bd4 4296 "allowtoken" : 1,
44660702
DM
4297 "description" : "Request resource migration (online) to another node.",
4298 "method" : "POST",
4299 "name" : "migrate",
56122987 4300 "parameters" : {
7aacca6f 4301 "additionalProperties" : 0,
56122987
DM
4302 "properties" : {
4303 "node" : {
95895385 4304 "description" : "Target node.",
44660702 4305 "format" : "pve-node",
013dc89f
DM
4306 "type" : "string",
4307 "typetext" : "<string>"
56122987
DM
4308 },
4309 "sid" : {
44660702 4310 "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 4311 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4312 "type" : "string",
44660702 4313 "typetext" : "<type>:<name>"
56122987 4314 }
7aacca6f 4315 }
56122987 4316 },
56122987
DM
4317 "permissions" : {
4318 "check" : [
4319 "perm",
4320 "/",
4321 [
4322 "Sys.Console"
4323 ]
4324 ]
4325 },
7aacca6f 4326 "protected" : 1,
7aacca6f
DM
4327 "returns" : {
4328 "type" : "null"
44660702 4329 }
56122987 4330 }
44660702
DM
4331 },
4332 "leaf" : 1,
4333 "path" : "/cluster/ha/resources/{sid}/migrate",
4334 "text" : "migrate"
4335 },
4336 {
4337 "info" : {
4338 "POST" : {
e9cd3bd4 4339 "allowtoken" : 1,
44660702
DM
4340 "description" : "Request resource relocatzion to another node. This stops the service on the old node, and restarts it on the target node.",
4341 "method" : "POST",
4342 "name" : "relocate",
4343 "parameters" : {
4344 "additionalProperties" : 0,
4345 "properties" : {
4346 "node" : {
95895385 4347 "description" : "Target node.",
44660702 4348 "format" : "pve-node",
013dc89f
DM
4349 "type" : "string",
4350 "typetext" : "<string>"
44660702
DM
4351 },
4352 "sid" : {
4353 "description" : "HA resource ID. This consists of a resource type followed by a resource specific name, separated with colon (example: vm:100 / ct:100). For virtual machines and containers, you can simply use the VM or CT id as a shortcut (example: 100).",
4354 "format" : "pve-ha-resource-or-vm-id",
4355 "type" : "string",
4356 "typetext" : "<type>:<name>"
4357 }
4358 }
4359 },
4360 "permissions" : {
4361 "check" : [
4362 "perm",
4363 "/",
4364 [
4365 "Sys.Console"
4366 ]
4367 ]
4368 },
4369 "protected" : 1,
4370 "returns" : {
4371 "type" : "null"
4372 }
4373 }
4374 },
4375 "leaf" : 1,
4376 "path" : "/cluster/ha/resources/{sid}/relocate",
4377 "text" : "relocate"
4378 }
4379 ],
4380 "info" : {
4381 "DELETE" : {
e9cd3bd4 4382 "allowtoken" : 1,
44660702
DM
4383 "description" : "Delete resource configuration.",
4384 "method" : "DELETE",
4385 "name" : "delete",
7aacca6f 4386 "parameters" : {
44660702 4387 "additionalProperties" : 0,
7aacca6f
DM
4388 "properties" : {
4389 "sid" : {
4390 "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 4391 "format" : "pve-ha-resource-or-vm-id",
7aacca6f 4392 "type" : "string",
44660702
DM
4393 "typetext" : "<type>:<name>"
4394 }
4395 }
4396 },
4397 "permissions" : {
4398 "check" : [
4399 "perm",
4400 "/",
4401 [
4402 "Sys.Console"
4403 ]
4404 ]
4405 },
4406 "protected" : 1,
4407 "returns" : {
4408 "type" : "null"
4409 }
4410 },
4411 "GET" : {
e9cd3bd4 4412 "allowtoken" : 1,
44660702
DM
4413 "description" : "Read resource configuration.",
4414 "method" : "GET",
4415 "name" : "read",
4416 "parameters" : {
4417 "additionalProperties" : 0,
4418 "properties" : {
4419 "sid" : {
4420 "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 4421 "format" : "pve-ha-resource-or-vm-id",
44660702 4422 "type" : "string",
7aacca6f
DM
4423 "typetext" : "<type>:<name>"
4424 }
44660702 4425 }
7aacca6f
DM
4426 },
4427 "permissions" : {
4428 "check" : [
4429 "perm",
4430 "/",
4431 [
4432 "Sys.Audit"
4433 ]
4434 ]
4435 },
5f26e15b
TL
4436 "returns" : {
4437 "properties" : {
4438 "comment" : {
4439 "description" : "Description.",
4440 "optional" : 1,
4441 "type" : "string"
4442 },
4443 "digest" : {
4444 "description" : "Can be used to prevent concurrent modifications.",
4445 "type" : "string"
4446 },
4447 "group" : {
4448 "description" : "The HA group identifier.",
4449 "format" : "pve-configid",
4450 "optional" : 1,
4451 "type" : "string"
4452 },
4453 "max_relocate" : {
4454 "description" : "Maximal number of service relocate tries when a service failes to start.",
4455 "optional" : 1,
4456 "type" : "integer"
4457 },
4458 "max_restart" : {
4459 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4460 "optional" : 1,
4461 "type" : "integer"
4462 },
4463 "sid" : {
4464 "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).",
4465 "format" : "pve-ha-resource-or-vm-id",
4466 "type" : "string",
4467 "typetext" : "<type>:<name>"
4468 },
4469 "state" : {
4470 "description" : "Requested resource state.",
4471 "enum" : [
4472 "started",
4473 "stopped",
4474 "enabled",
4475 "disabled",
4476 "ignored"
4477 ],
4478 "optional" : 1,
4479 "type" : "string"
4480 },
4481 "type" : {
4482 "description" : "The type of the resources.",
4483 "type" : "string"
4484 }
4485 },
4486 "type" : "object"
4487 }
7aacca6f 4488 },
56122987 4489 "PUT" : {
e9cd3bd4 4490 "allowtoken" : 1,
44660702 4491 "description" : "Update resource configuration.",
7aacca6f 4492 "method" : "PUT",
44660702 4493 "name" : "update",
56122987
DM
4494 "parameters" : {
4495 "additionalProperties" : 0,
4496 "properties" : {
44660702
DM
4497 "comment" : {
4498 "description" : "Description.",
4499 "maxLength" : 4096,
56122987 4500 "optional" : 1,
013dc89f
DM
4501 "type" : "string",
4502 "typetext" : "<string>"
56122987 4503 },
7aacca6f
DM
4504 "delete" : {
4505 "description" : "A list of settings you want to delete.",
7aacca6f 4506 "format" : "pve-configid-list",
44660702
DM
4507 "maxLength" : 4096,
4508 "optional" : 1,
013dc89f
DM
4509 "type" : "string",
4510 "typetext" : "<string>"
56122987 4511 },
44660702
DM
4512 "digest" : {
4513 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4514 "maxLength" : 40,
4515 "optional" : 1,
013dc89f
DM
4516 "type" : "string",
4517 "typetext" : "<string>"
56122987 4518 },
44660702
DM
4519 "group" : {
4520 "description" : "The HA group identifier.",
4521 "format" : "pve-configid",
7aacca6f 4522 "optional" : 1,
013dc89f
DM
4523 "type" : "string",
4524 "typetext" : "<string>"
56122987
DM
4525 },
4526 "max_relocate" : {
7aacca6f 4527 "default" : 1,
56122987 4528 "description" : "Maximal number of service relocate tries when a service failes to start.",
44660702
DM
4529 "minimum" : 0,
4530 "optional" : 1,
4bd7df8b 4531 "type" : "integer",
013dc89f 4532 "typetext" : "<integer> (0 - N)"
7aacca6f 4533 },
44660702
DM
4534 "max_restart" : {
4535 "default" : 1,
4536 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4537 "minimum" : 0,
7aacca6f 4538 "optional" : 1,
4bd7df8b 4539 "type" : "integer",
013dc89f 4540 "typetext" : "<integer> (0 - N)"
44660702
DM
4541 },
4542 "sid" : {
4543 "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).",
4544 "format" : "pve-ha-resource-or-vm-id",
4545 "type" : "string",
4546 "typetext" : "<type>:<name>"
7aacca6f
DM
4547 },
4548 "state" : {
f13c1238
DM
4549 "default" : "started",
4550 "description" : "Requested resource state.",
7aacca6f 4551 "enum" : [
f13c1238
DM
4552 "started",
4553 "stopped",
7aacca6f 4554 "enabled",
2489d6df
WB
4555 "disabled",
4556 "ignored"
7aacca6f 4557 ],
7aacca6f 4558 "optional" : 1,
f13c1238 4559 "type" : "string",
2489d6df 4560 "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 4561 }
44660702
DM
4562 },
4563 "type" : "object"
56122987 4564 },
56122987
DM
4565 "permissions" : {
4566 "check" : [
4567 "perm",
4568 "/",
4569 [
4570 "Sys.Console"
4571 ]
4572 ]
4573 },
7aacca6f 4574 "protected" : 1,
56122987
DM
4575 "returns" : {
4576 "type" : "null"
4577 }
4578 }
4579 },
44660702 4580 "leaf" : 0,
7aacca6f 4581 "path" : "/cluster/ha/resources/{sid}",
44660702 4582 "text" : "{sid}"
56122987
DM
4583 }
4584 ],
7aacca6f
DM
4585 "info" : {
4586 "GET" : {
e9cd3bd4 4587 "allowtoken" : 1,
44660702
DM
4588 "description" : "List HA resources.",
4589 "method" : "GET",
4590 "name" : "index",
7aacca6f 4591 "parameters" : {
44660702
DM
4592 "additionalProperties" : 0,
4593 "properties" : {
4594 "type" : {
4595 "description" : "Only list resources of specific type",
4596 "enum" : [
4597 "ct",
4598 "vm"
4599 ],
4600 "optional" : 1,
4601 "type" : "string"
4602 }
4603 }
7aacca6f 4604 },
7aacca6f
DM
4605 "permissions" : {
4606 "check" : [
4607 "perm",
4608 "/",
4609 [
4610 "Sys.Audit"
4611 ]
4612 ]
4613 },
7aacca6f 4614 "returns" : {
7aacca6f 4615 "items" : {
7aacca6f 4616 "properties" : {
44660702 4617 "sid" : {
7aacca6f
DM
4618 "type" : "string"
4619 }
44660702
DM
4620 },
4621 "type" : "object"
7aacca6f
DM
4622 },
4623 "links" : [
4624 {
44660702 4625 "href" : "{sid}",
7aacca6f
DM
4626 "rel" : "child"
4627 }
44660702
DM
4628 ],
4629 "type" : "array"
7aacca6f
DM
4630 }
4631 },
4632 "POST" : {
e9cd3bd4 4633 "allowtoken" : 1,
44660702 4634 "description" : "Create a new HA resource.",
7aacca6f 4635 "method" : "POST",
44660702 4636 "name" : "create",
7aacca6f 4637 "parameters" : {
44660702 4638 "additionalProperties" : 0,
7aacca6f
DM
4639 "properties" : {
4640 "comment" : {
7aacca6f 4641 "description" : "Description.",
44660702 4642 "maxLength" : 4096,
7aacca6f 4643 "optional" : 1,
013dc89f
DM
4644 "type" : "string",
4645 "typetext" : "<string>"
7aacca6f 4646 },
44660702
DM
4647 "group" : {
4648 "description" : "The HA group identifier.",
4649 "format" : "pve-configid",
7aacca6f 4650 "optional" : 1,
013dc89f
DM
4651 "type" : "string",
4652 "typetext" : "<string>"
7aacca6f 4653 },
44660702
DM
4654 "max_relocate" : {
4655 "default" : 1,
4656 "description" : "Maximal number of service relocate tries when a service failes to start.",
4657 "minimum" : 0,
7aacca6f 4658 "optional" : 1,
4bd7df8b 4659 "type" : "integer",
013dc89f 4660 "typetext" : "<integer> (0 - N)"
7aacca6f 4661 },
44660702
DM
4662 "max_restart" : {
4663 "default" : 1,
4664 "description" : "Maximal number of tries to restart the service on a node after its start failed.",
4665 "minimum" : 0,
4666 "optional" : 1,
4bd7df8b 4667 "type" : "integer",
013dc89f 4668 "typetext" : "<integer> (0 - N)"
44660702
DM
4669 },
4670 "sid" : {
4671 "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).",
4672 "format" : "pve-ha-resource-or-vm-id",
4673 "type" : "string",
4674 "typetext" : "<type>:<name>"
4675 },
4676 "state" : {
f13c1238
DM
4677 "default" : "started",
4678 "description" : "Requested resource state.",
7aacca6f 4679 "enum" : [
f13c1238
DM
4680 "started",
4681 "stopped",
44660702 4682 "enabled",
2489d6df
WB
4683 "disabled",
4684 "ignored"
7aacca6f 4685 ],
7aacca6f 4686 "optional" : 1,
f13c1238 4687 "type" : "string",
2489d6df 4688 "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 4689 },
44660702
DM
4690 "type" : {
4691 "description" : "Resource type.",
4692 "enum" : [
4693 "ct",
4694 "vm"
4695 ],
4696 "optional" : 1,
4697 "type" : "string"
4698 }
7aacca6f 4699 },
44660702 4700 "type" : "object"
7aacca6f
DM
4701 },
4702 "permissions" : {
4703 "check" : [
4704 "perm",
4705 "/",
4706 [
4707 "Sys.Console"
4708 ]
4709 ]
4710 },
44660702
DM
4711 "protected" : 1,
4712 "returns" : {
4713 "type" : "null"
4714 }
7aacca6f
DM
4715 }
4716 },
44660702
DM
4717 "leaf" : 0,
4718 "path" : "/cluster/ha/resources",
4719 "text" : "resources"
4720 },
4721 {
56122987
DM
4722 "children" : [
4723 {
56122987 4724 "info" : {
44660702 4725 "DELETE" : {
e9cd3bd4 4726 "allowtoken" : 1,
44660702
DM
4727 "description" : "Delete ha group configuration.",
4728 "method" : "DELETE",
4729 "name" : "delete",
56122987 4730 "parameters" : {
7aacca6f 4731 "additionalProperties" : 0,
56122987 4732 "properties" : {
7aacca6f
DM
4733 "group" : {
4734 "description" : "The HA group identifier.",
44660702 4735 "format" : "pve-configid",
013dc89f
DM
4736 "type" : "string",
4737 "typetext" : "<string>"
56122987 4738 }
7aacca6f 4739 }
56122987 4740 },
56122987
DM
4741 "permissions" : {
4742 "check" : [
4743 "perm",
4744 "/",
4745 [
7aacca6f 4746 "Sys.Console"
56122987
DM
4747 ]
4748 ]
4749 },
44660702 4750 "protected" : 1,
7aacca6f
DM
4751 "returns" : {
4752 "type" : "null"
56122987
DM
4753 }
4754 },
44660702 4755 "GET" : {
e9cd3bd4 4756 "allowtoken" : 1,
44660702
DM
4757 "description" : "Read ha group configuration.",
4758 "method" : "GET",
4759 "name" : "read",
56122987 4760 "parameters" : {
44660702 4761 "additionalProperties" : 0,
56122987
DM
4762 "properties" : {
4763 "group" : {
4764 "description" : "The HA group identifier.",
44660702 4765 "format" : "pve-configid",
013dc89f
DM
4766 "type" : "string",
4767 "typetext" : "<string>"
56122987 4768 }
44660702 4769 }
56122987 4770 },
56122987
DM
4771 "permissions" : {
4772 "check" : [
4773 "perm",
4774 "/",
4775 [
44660702 4776 "Sys.Audit"
56122987
DM
4777 ]
4778 ]
4779 },
44660702 4780 "returns" : {}
7aacca6f 4781 },
44660702 4782 "PUT" : {
e9cd3bd4 4783 "allowtoken" : 1,
44660702
DM
4784 "description" : "Update ha group configuration.",
4785 "method" : "PUT",
4786 "name" : "update",
7aacca6f 4787 "parameters" : {
44660702 4788 "additionalProperties" : 0,
7aacca6f 4789 "properties" : {
44660702
DM
4790 "comment" : {
4791 "description" : "Description.",
4792 "maxLength" : 4096,
4793 "optional" : 1,
013dc89f
DM
4794 "type" : "string",
4795 "typetext" : "<string>"
44660702
DM
4796 },
4797 "delete" : {
4798 "description" : "A list of settings you want to delete.",
4799 "format" : "pve-configid-list",
4800 "maxLength" : 4096,
4801 "optional" : 1,
013dc89f
DM
4802 "type" : "string",
4803 "typetext" : "<string>"
44660702
DM
4804 },
4805 "digest" : {
4806 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
4807 "maxLength" : 40,
4808 "optional" : 1,
013dc89f
DM
4809 "type" : "string",
4810 "typetext" : "<string>"
44660702 4811 },
7aacca6f
DM
4812 "group" : {
4813 "description" : "The HA group identifier.",
44660702 4814 "format" : "pve-configid",
013dc89f
DM
4815 "type" : "string",
4816 "typetext" : "<string>"
44660702
DM
4817 },
4818 "nodes" : {
f13c1238 4819 "description" : "List of cluster node names with optional priority.",
44660702
DM
4820 "format" : "pve-ha-group-node-list",
4821 "optional" : 1,
7aacca6f 4822 "type" : "string",
f13c1238
DM
4823 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4824 "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
4825 },
4826 "nofailback" : {
4827 "default" : 0,
4828 "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.",
4829 "optional" : 1,
013dc89f
DM
4830 "type" : "boolean",
4831 "typetext" : "<boolean>"
44660702
DM
4832 },
4833 "restricted" : {
4834 "default" : 0,
c4808e75 4835 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4836 "optional" : 1,
013dc89f 4837 "type" : "boolean",
c4808e75
DM
4838 "typetext" : "<boolean>",
4839 "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
4840 }
4841 },
44660702 4842 "type" : "object"
7aacca6f 4843 },
7aacca6f
DM
4844 "permissions" : {
4845 "check" : [
4846 "perm",
4847 "/",
4848 [
44660702 4849 "Sys.Console"
7aacca6f
DM
4850 ]
4851 ]
4852 },
44660702
DM
4853 "protected" : 1,
4854 "returns" : {
4855 "type" : "null"
4856 }
56122987
DM
4857 }
4858 },
4859 "leaf" : 1,
44660702
DM
4860 "path" : "/cluster/ha/groups/{group}",
4861 "text" : "{group}"
56122987 4862 }
44660702
DM
4863 ],
4864 "info" : {
4865 "GET" : {
e9cd3bd4 4866 "allowtoken" : 1,
44660702
DM
4867 "description" : "Get HA groups.",
4868 "method" : "GET",
4869 "name" : "index",
4870 "parameters" : {
4871 "additionalProperties" : 0
4872 },
4873 "permissions" : {
4874 "check" : [
4875 "perm",
4876 "/",
4877 [
4878 "Sys.Audit"
4879 ]
4880 ]
4881 },
4882 "returns" : {
4883 "items" : {
4884 "properties" : {
4885 "group" : {
4886 "type" : "string"
4887 }
4888 },
4889 "type" : "object"
4890 },
4891 "links" : [
4892 {
4893 "href" : "{group}",
4894 "rel" : "child"
4895 }
4896 ],
4897 "type" : "array"
4898 }
4899 },
4900 "POST" : {
e9cd3bd4 4901 "allowtoken" : 1,
44660702
DM
4902 "description" : "Create a new HA group.",
4903 "method" : "POST",
4904 "name" : "create",
4905 "parameters" : {
4906 "additionalProperties" : 0,
4907 "properties" : {
4908 "comment" : {
4909 "description" : "Description.",
4910 "maxLength" : 4096,
4911 "optional" : 1,
013dc89f
DM
4912 "type" : "string",
4913 "typetext" : "<string>"
44660702
DM
4914 },
4915 "group" : {
4916 "description" : "The HA group identifier.",
4917 "format" : "pve-configid",
013dc89f
DM
4918 "type" : "string",
4919 "typetext" : "<string>"
44660702
DM
4920 },
4921 "nodes" : {
f13c1238 4922 "description" : "List of cluster node names with optional priority.",
44660702
DM
4923 "format" : "pve-ha-group-node-list",
4924 "optional" : 0,
4925 "type" : "string",
f13c1238
DM
4926 "typetext" : "<node>[:<pri>]{,<node>[:<pri>]}*",
4927 "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
4928 },
4929 "nofailback" : {
4930 "default" : 0,
4931 "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.",
4932 "optional" : 1,
013dc89f
DM
4933 "type" : "boolean",
4934 "typetext" : "<boolean>"
44660702
DM
4935 },
4936 "restricted" : {
4937 "default" : 0,
c4808e75 4938 "description" : "Resources bound to restricted groups may only run on nodes defined by the group.",
44660702 4939 "optional" : 1,
013dc89f 4940 "type" : "boolean",
c4808e75
DM
4941 "typetext" : "<boolean>",
4942 "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
4943 },
4944 "type" : {
4945 "description" : "Group type.",
4946 "enum" : [
4947 "group"
4948 ],
4949 "optional" : 1,
4950 "type" : "string"
4951 }
4952 },
4953 "type" : "object"
4954 },
4955 "permissions" : {
4956 "check" : [
4957 "perm",
4958 "/",
4959 [
4960 "Sys.Console"
4961 ]
4962 ]
4963 },
4964 "protected" : 1,
4965 "returns" : {
4966 "type" : "null"
4967 }
4968 }
4969 },
4970 "leaf" : 0,
4971 "path" : "/cluster/ha/groups",
4972 "text" : "groups"
7aacca6f
DM
4973 },
4974 {
7aacca6f
DM
4975 "children" : [
4976 {
4977 "info" : {
4978 "GET" : {
e9cd3bd4 4979 "allowtoken" : 1,
56122987 4980 "description" : "Get HA manger status.",
44660702 4981 "method" : "GET",
7aacca6f 4982 "name" : "status",
44660702
DM
4983 "parameters" : {
4984 "additionalProperties" : 0
4985 },
56122987
DM
4986 "permissions" : {
4987 "check" : [
4988 "perm",
4989 "/",
4990 [
4991 "Sys.Audit"
4992 ]
4993 ]
7aacca6f 4994 },
44660702
DM
4995 "returns" : {
4996 "type" : "array"
56122987
DM
4997 }
4998 }
7aacca6f 4999 },
7aacca6f 5000 "leaf" : 1,
44660702
DM
5001 "path" : "/cluster/ha/status/current",
5002 "text" : "current"
56122987
DM
5003 },
5004 {
5005 "info" : {
5006 "GET" : {
e9cd3bd4 5007 "allowtoken" : 1,
7aacca6f 5008 "description" : "Get full HA manger status, including LRM status.",
44660702
DM
5009 "method" : "GET",
5010 "name" : "manager_status",
7aacca6f
DM
5011 "parameters" : {
5012 "additionalProperties" : 0
5013 },
56122987
DM
5014 "permissions" : {
5015 "check" : [
5016 "perm",
5017 "/",
5018 [
5019 "Sys.Audit"
5020 ]
5021 ]
44660702
DM
5022 },
5023 "returns" : {
5024 "type" : "object"
7aacca6f 5025 }
56122987
DM
5026 }
5027 },
56122987 5028 "leaf" : 1,
44660702
DM
5029 "path" : "/cluster/ha/status/manager_status",
5030 "text" : "manager_status"
56122987
DM
5031 }
5032 ],
56122987
DM
5033 "info" : {
5034 "GET" : {
e9cd3bd4 5035 "allowtoken" : 1,
44660702 5036 "description" : "Directory index.",
7aacca6f 5037 "method" : "GET",
44660702
DM
5038 "name" : "index",
5039 "parameters" : {
5040 "additionalProperties" : 0
5041 },
5042 "permissions" : {
5043 "user" : "all"
5044 },
56122987 5045 "returns" : {
56122987
DM
5046 "items" : {
5047 "properties" : {},
5048 "type" : "object"
5049 },
5050 "links" : [
5051 {
44660702
DM
5052 "href" : "{name}",
5053 "rel" : "child"
56122987 5054 }
7aacca6f
DM
5055 ],
5056 "type" : "array"
44660702 5057 }
56122987 5058 }
7aacca6f 5059 },
44660702 5060 "leaf" : 0,
7aacca6f 5061 "path" : "/cluster/ha/status",
44660702 5062 "text" : "status"
56122987
DM
5063 }
5064 ],
56122987
DM
5065 "info" : {
5066 "GET" : {
e9cd3bd4 5067 "allowtoken" : 1,
7aacca6f 5068 "description" : "Directory index.",
44660702
DM
5069 "method" : "GET",
5070 "name" : "index",
5071 "parameters" : {
5072 "additionalProperties" : 0
5073 },
7aacca6f
DM
5074 "permissions" : {
5075 "check" : [
5076 "perm",
5077 "/",
5078 [
5079 "Sys.Audit"
5080 ]
5081 ]
5082 },
56122987 5083 "returns" : {
56122987 5084 "items" : {
7aacca6f
DM
5085 "properties" : {
5086 "id" : {
5087 "type" : "string"
5088 }
44660702
DM
5089 },
5090 "type" : "object"
7aacca6f
DM
5091 },
5092 "links" : [
5093 {
5094 "href" : "{id}",
5095 "rel" : "child"
5096 }
44660702
DM
5097 ],
5098 "type" : "array"
7aacca6f
DM
5099 }
5100 }
44660702
DM
5101 },
5102 "leaf" : 0,
5103 "path" : "/cluster/ha",
5104 "text" : "ha"
7aacca6f 5105 },
a9a8e3d1
DM
5106 {
5107 "children" : [
c5aa7e14
TL
5108 {
5109 "children" : [
5110 {
5111 "info" : {
5112 "DELETE" : {
5113 "allowtoken" : 1,
5114 "description" : "Delete ACME plugin configuration.",
5115 "method" : "DELETE",
5116 "name" : "delete_plugin",
5117 "parameters" : {
5118 "additionalProperties" : 0,
5119 "properties" : {
5120 "id" : {
5121 "description" : "Unique identifier for ACME plugin instance.",
5122 "format" : "pve-configid",
5123 "type" : "string",
5124 "typetext" : "<string>"
5125 }
5126 }
5127 },
5128 "permissions" : {
5129 "check" : [
5130 "perm",
5131 "/",
5132 [
5133 "Sys.Modify"
5134 ]
5135 ]
5136 },
5137 "protected" : 1,
5138 "returns" : {
5139 "type" : "null"
5140 }
5141 },
5142 "GET" : {
5143 "allowtoken" : 1,
5144 "description" : "Get ACME plugin configuration.",
5145 "method" : "GET",
5146 "name" : "get_plugin_config",
5147 "parameters" : {
5148 "additionalProperties" : 0,
5149 "properties" : {
5150 "id" : {
5151 "description" : "Unique identifier for ACME plugin instance.",
5152 "format" : "pve-configid",
5153 "type" : "string",
5154 "typetext" : "<string>"
5155 }
5156 }
5157 },
5158 "permissions" : {
5159 "check" : [
5160 "perm",
5161 "/",
5162 [
5163 "Sys.Modify"
5164 ]
5165 ]
5166 },
5167 "protected" : 1,
5168 "returns" : {
5169 "type" : "object"
5170 }
5171 },
5172 "PUT" : {
5173 "allowtoken" : 1,
5174 "description" : "Update ACME plugin configuration.",
5175 "method" : "PUT",
5176 "name" : "update_plugin",
5177 "parameters" : {
5178 "additionalProperties" : 0,
5179 "properties" : {
5180 "api" : {
5181 "description" : "API plugin name",
5182 "enum" : [
d2656385 5183 "1984hosting",
c5aa7e14
TL
5184 "acmedns",
5185 "acmeproxy",
5186 "active24",
5187 "ad",
5188 "ali",
d2656385
TL
5189 "anx",
5190 "arvan",
e7084ef7 5191 "aurora",
c5aa7e14
TL
5192 "autodns",
5193 "aws",
5370fa8c 5194 "azion",
c5aa7e14
TL
5195 "azure",
5196 "cf",
5197 "clouddns",
5198 "cloudns",
5199 "cn",
5200 "conoha",
5201 "constellix",
5202 "cx",
5203 "cyon",
5204 "da",
5205 "ddnss",
5206 "desec",
ac70d7d1 5207 "df",
c5aa7e14
TL
5208 "dgon",
5209 "dnsimple",
5210 "do",
5211 "doapi",
5212 "domeneshop",
5213 "dp",
5214 "dpi",
5215 "dreamhost",
5216 "duckdns",
5217 "durabledns",
5218 "dyn",
5219 "dynu",
5220 "dynv6",
5221 "easydns",
d2656385 5222 "edgedns",
c5aa7e14
TL
5223 "euserv",
5224 "exoscale",
5225 "freedns",
5226 "gandi_livedns",
5227 "gcloud",
5228 "gd",
5229 "gdnsdk",
5230 "he",
d2656385 5231 "hetzner",
c5aa7e14
TL
5232 "hexonet",
5233 "hostingde",
d2656385 5234 "huaweicloud",
c5aa7e14 5235 "infoblox",
d2656385 5236 "infomaniak",
c5aa7e14
TL
5237 "internetbs",
5238 "inwx",
d2656385 5239 "ionos",
c5aa7e14
TL
5240 "ispconfig",
5241 "jd",
d2656385
TL
5242 "joker",
5243 "kappernet",
c5aa7e14
TL
5244 "kas",
5245 "kinghost",
5246 "knot",
5247 "leaseweb",
5248 "lexicon",
5249 "linode",
5250 "linode_v4",
5251 "loopia",
5252 "lua",
5253 "maradns",
5254 "me",
5255 "miab",
5256 "misaka",
5257 "myapi",
5258 "mydevil",
5259 "mydnsjp",
5260 "namecheap",
5261 "namecom",
5262 "namesilo",
5263 "nederhost",
5264 "neodigit",
5265 "netcup",
d2656385 5266 "netlify",
c5aa7e14 5267 "nic",
d2656385
TL
5268 "njalla",
5269 "nm",
c5aa7e14
TL
5270 "nsd",
5271 "nsone",
5272 "nsupdate",
5273 "nw",
5370fa8c 5274 "oci",
c5aa7e14
TL
5275 "one",
5276 "online",
5277 "openprovider",
d2656385 5278 "openstack",
c5aa7e14
TL
5279 "opnsense",
5280 "ovh",
5281 "pdns",
5282 "pleskxml",
5283 "pointhq",
e7084ef7 5284 "porkbun",
d2656385 5285 "rackcorp",
c5aa7e14
TL
5286 "rackspace",
5287 "rcode0",
5288 "regru",
d2656385 5289 "scaleway",
c5aa7e14
TL
5290 "schlundtech",
5291 "selectel",
5292 "servercow",
d2656385 5293 "simply",
c5aa7e14 5294 "tele3",
d2656385 5295 "transip",
c5aa7e14
TL
5296 "ultra",
5297 "unoeuro",
5298 "variomedia",
5370fa8c 5299 "veesp",
c5aa7e14
TL
5300 "vscale",
5301 "vultr",
e7084ef7 5302 "websupport",
d2656385 5303 "world4you",
c5aa7e14
TL
5304 "yandex",
5305 "zilore",
5306 "zone",
5307 "zonomi"
5308 ],
5309 "optional" : 1,
5310 "type" : "string"
5311 },
5312 "data" : {
5313 "description" : "DNS plugin data. (base64 encoded)",
5314 "optional" : 1,
5315 "type" : "string",
5316 "typetext" : "<string>"
5317 },
5318 "delete" : {
5319 "description" : "A list of settings you want to delete.",
5320 "format" : "pve-configid-list",
5321 "maxLength" : 4096,
5322 "optional" : 1,
5323 "type" : "string",
5324 "typetext" : "<string>"
5325 },
5326 "digest" : {
5327 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
5328 "maxLength" : 40,
5329 "optional" : 1,
5330 "type" : "string",
5331 "typetext" : "<string>"
5332 },
5333 "disable" : {
5334 "description" : "Flag to disable the config.",
5335 "optional" : 1,
5336 "type" : "boolean",
5337 "typetext" : "<boolean>"
5338 },
5339 "id" : {
5340 "description" : "ACME Plugin ID name",
5341 "format" : "pve-configid",
5342 "type" : "string",
5343 "typetext" : "<string>"
5344 },
5345 "nodes" : {
5346 "description" : "List of cluster node names.",
5347 "format" : "pve-node-list",
5348 "optional" : 1,
5349 "type" : "string",
5350 "typetext" : "<string>"
5351 },
5352 "validation-delay" : {
5353 "default" : 30,
5354 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5355 "maximum" : 172800,
5356 "minimum" : 0,
5357 "optional" : 1,
5358 "type" : "integer",
5359 "typetext" : "<integer> (0 - 172800)"
5360 }
5361 },
5362 "type" : "object"
5363 },
5364 "permissions" : {
5365 "check" : [
5366 "perm",
5367 "/",
5368 [
5369 "Sys.Modify"
5370 ]
5371 ]
5372 },
5373 "protected" : 1,
5374 "returns" : {
5375 "type" : "null"
5376 }
5377 }
5378 },
5379 "leaf" : 1,
5380 "path" : "/cluster/acme/plugins/{id}",
5381 "text" : "{id}"
5382 }
5383 ],
5384 "info" : {
5385 "GET" : {
5386 "allowtoken" : 1,
5387 "description" : "ACME plugin index.",
5388 "method" : "GET",
5389 "name" : "index",
5390 "parameters" : {
5391 "additionalProperties" : 0,
5392 "properties" : {
5393 "type" : {
5394 "description" : "Only list ACME plugins of a specific type",
5395 "enum" : [
5396 "dns",
5397 "standalone"
5398 ],
5399 "optional" : 1,
5400 "type" : "string"
5401 }
5402 }
5403 },
5404 "permissions" : {
5405 "check" : [
5406 "perm",
5407 "/",
5408 [
5409 "Sys.Modify"
5410 ]
5411 ]
5412 },
5413 "protected" : 1,
5414 "returns" : {
5415 "items" : {
5416 "properties" : {
5417 "plugin" : {
5418 "description" : "Unique identifier for ACME plugin instance.",
5419 "format" : "pve-configid",
5420 "type" : "string"
5421 }
5422 },
5423 "type" : "object"
5424 },
5425 "links" : [
5426 {
5427 "href" : "{plugin}",
5428 "rel" : "child"
5429 }
5430 ],
5431 "type" : "array"
5432 }
5433 },
5434 "POST" : {
5435 "allowtoken" : 1,
5436 "description" : "Add ACME plugin configuration.",
5437 "method" : "POST",
5438 "name" : "add_plugin",
5439 "parameters" : {
5440 "additionalProperties" : 0,
5441 "properties" : {
5442 "api" : {
5443 "description" : "API plugin name",
5444 "enum" : [
d2656385 5445 "1984hosting",
c5aa7e14
TL
5446 "acmedns",
5447 "acmeproxy",
5448 "active24",
5449 "ad",
5450 "ali",
d2656385
TL
5451 "anx",
5452 "arvan",
e7084ef7 5453 "aurora",
c5aa7e14
TL
5454 "autodns",
5455 "aws",
5370fa8c 5456 "azion",
c5aa7e14
TL
5457 "azure",
5458 "cf",
5459 "clouddns",
5460 "cloudns",
5461 "cn",
5462 "conoha",
5463 "constellix",
5464 "cx",
5465 "cyon",
5466 "da",
5467 "ddnss",
5468 "desec",
ac70d7d1 5469 "df",
c5aa7e14
TL
5470 "dgon",
5471 "dnsimple",
5472 "do",
5473 "doapi",
5474 "domeneshop",
5475 "dp",
5476 "dpi",
5477 "dreamhost",
5478 "duckdns",
5479 "durabledns",
5480 "dyn",
5481 "dynu",
5482 "dynv6",
5483 "easydns",
d2656385 5484 "edgedns",
c5aa7e14
TL
5485 "euserv",
5486 "exoscale",
5487 "freedns",
5488 "gandi_livedns",
5489 "gcloud",
5490 "gd",
5491 "gdnsdk",
5492 "he",
d2656385 5493 "hetzner",
c5aa7e14
TL
5494 "hexonet",
5495 "hostingde",
d2656385 5496 "huaweicloud",
c5aa7e14 5497 "infoblox",
d2656385 5498 "infomaniak",
c5aa7e14
TL
5499 "internetbs",
5500 "inwx",
d2656385 5501 "ionos",
c5aa7e14
TL
5502 "ispconfig",
5503 "jd",
d2656385
TL
5504 "joker",
5505 "kappernet",
c5aa7e14
TL
5506 "kas",
5507 "kinghost",
5508 "knot",
5509 "leaseweb",
5510 "lexicon",
5511 "linode",
5512 "linode_v4",
5513 "loopia",
5514 "lua",
5515 "maradns",
5516 "me",
5517 "miab",
5518 "misaka",
5519 "myapi",
5520 "mydevil",
5521 "mydnsjp",
5522 "namecheap",
5523 "namecom",
5524 "namesilo",
5525 "nederhost",
5526 "neodigit",
5527 "netcup",
d2656385 5528 "netlify",
c5aa7e14 5529 "nic",
d2656385
TL
5530 "njalla",
5531 "nm",
c5aa7e14
TL
5532 "nsd",
5533 "nsone",
5534 "nsupdate",
5535 "nw",
5370fa8c 5536 "oci",
c5aa7e14
TL
5537 "one",
5538 "online",
5539 "openprovider",
d2656385 5540 "openstack",
c5aa7e14
TL
5541 "opnsense",
5542 "ovh",
5543 "pdns",
5544 "pleskxml",
5545 "pointhq",
e7084ef7 5546 "porkbun",
d2656385 5547 "rackcorp",
c5aa7e14
TL
5548 "rackspace",
5549 "rcode0",
5550 "regru",
d2656385 5551 "scaleway",
c5aa7e14
TL
5552 "schlundtech",
5553 "selectel",
5554 "servercow",
d2656385 5555 "simply",
c5aa7e14 5556 "tele3",
d2656385 5557 "transip",
c5aa7e14
TL
5558 "ultra",
5559 "unoeuro",
5560 "variomedia",
5370fa8c 5561 "veesp",
c5aa7e14
TL
5562 "vscale",
5563 "vultr",
e7084ef7 5564 "websupport",
d2656385 5565 "world4you",
c5aa7e14
TL
5566 "yandex",
5567 "zilore",
5568 "zone",
5569 "zonomi"
5570 ],
5571 "optional" : 1,
5572 "type" : "string"
5573 },
5574 "data" : {
5575 "description" : "DNS plugin data. (base64 encoded)",
5576 "optional" : 1,
5577 "type" : "string",
5578 "typetext" : "<string>"
5579 },
5580 "disable" : {
5581 "description" : "Flag to disable the config.",
5582 "optional" : 1,
5583 "type" : "boolean",
5584 "typetext" : "<boolean>"
5585 },
5586 "id" : {
5587 "description" : "ACME Plugin ID name",
5588 "format" : "pve-configid",
5589 "type" : "string",
5590 "typetext" : "<string>"
5591 },
5592 "nodes" : {
5593 "description" : "List of cluster node names.",
5594 "format" : "pve-node-list",
5595 "optional" : 1,
5596 "type" : "string",
5597 "typetext" : "<string>"
5598 },
5599 "type" : {
5600 "description" : "ACME challenge type.",
5601 "enum" : [
5602 "dns",
5603 "standalone"
5604 ],
5605 "type" : "string"
5606 },
5607 "validation-delay" : {
5608 "default" : 30,
5609 "description" : "Extra delay in seconds to wait before requesting validation. Allows to cope with a long TTL of DNS records.",
5610 "maximum" : 172800,
5611 "minimum" : 0,
5612 "optional" : 1,
5613 "type" : "integer",
5614 "typetext" : "<integer> (0 - 172800)"
5615 }
5616 },
5617 "type" : "object"
5618 },
5619 "permissions" : {
5620 "check" : [
5621 "perm",
5622 "/",
5623 [
5624 "Sys.Modify"
5625 ]
5626 ]
5627 },
5628 "protected" : 1,
5629 "returns" : {
5630 "type" : "null"
5631 }
5632 }
5633 },
5634 "leaf" : 0,
5635 "path" : "/cluster/acme/plugins",
5636 "text" : "plugins"
5637 },
a9a8e3d1
DM
5638 {
5639 "children" : [
5640 {
5641 "info" : {
5642 "DELETE" : {
e9cd3bd4 5643 "allowtoken" : 1,
a9a8e3d1
DM
5644 "description" : "Deactivate existing ACME account at CA.",
5645 "method" : "DELETE",
5646 "name" : "deactivate_account",
5647 "parameters" : {
5648 "additionalProperties" : 0,
5649 "properties" : {
5650 "name" : {
5651 "default" : "default",
5652 "description" : "ACME account config file name.",
5653 "format" : "pve-configid",
5654 "format_description" : "name",
5655 "optional" : 1,
5656 "type" : "string",
5657 "typetext" : "<name>"
5658 }
5659 }
5660 },
5661 "protected" : 1,
5662 "returns" : {
5663 "type" : "string"
5664 }
5665 },
5666 "GET" : {
e9cd3bd4 5667 "allowtoken" : 1,
a9a8e3d1
DM
5668 "description" : "Return existing ACME account information.",
5669 "method" : "GET",
5670 "name" : "get_account",
5671 "parameters" : {
5672 "additionalProperties" : 0,
5673 "properties" : {
5674 "name" : {
5675 "default" : "default",
5676 "description" : "ACME account config file name.",
5677 "format" : "pve-configid",
5678 "format_description" : "name",
5679 "optional" : 1,
5680 "type" : "string",
5681 "typetext" : "<name>"
5682 }
5683 }
5684 },
5685 "protected" : 1,
5686 "returns" : {
5687 "additionalProperties" : 0,
5688 "properties" : {
5689 "account" : {
5690 "optional" : 1,
4d47f125 5691 "renderer" : "yaml",
a9a8e3d1
DM
5692 "type" : "object"
5693 },
5694 "directory" : {
5695 "description" : "URL of ACME CA directory endpoint.",
5696 "optional" : 1,
5697 "pattern" : "^https?://.*",
5698 "type" : "string"
5699 },
5700 "location" : {
5701 "optional" : 1,
5702 "type" : "string"
5703 },
5704 "tos" : {
5705 "optional" : 1,
5706 "type" : "string"
5707 }
5708 },
5709 "type" : "object"
5710 }
5711 },
5712 "PUT" : {
e9cd3bd4 5713 "allowtoken" : 1,
a9a8e3d1
DM
5714 "description" : "Update existing ACME account information with CA. Note: not specifying any new account information triggers a refresh.",
5715 "method" : "PUT",
5716 "name" : "update_account",
5717 "parameters" : {
5718 "additionalProperties" : 0,
5719 "properties" : {
5720 "contact" : {
5721 "description" : "Contact email addresses.",
5722 "format" : "email-list",
5723 "optional" : 1,
5724 "type" : "string",
5725 "typetext" : "<string>"
5726 },
5727 "name" : {
5728 "default" : "default",
5729 "description" : "ACME account config file name.",
5730 "format" : "pve-configid",
5731 "format_description" : "name",
5732 "optional" : 1,
5733 "type" : "string",
5734 "typetext" : "<name>"
5735 }
5736 }
5737 },
5738 "protected" : 1,
5739 "returns" : {
5740 "type" : "string"
5741 }
5742 }
5743 },
5744 "leaf" : 1,
5745 "path" : "/cluster/acme/account/{name}",
5746 "text" : "{name}"
5747 }
5748 ],
5749 "info" : {
5750 "GET" : {
e9cd3bd4 5751 "allowtoken" : 1,
a9a8e3d1
DM
5752 "description" : "ACMEAccount index.",
5753 "method" : "GET",
5754 "name" : "account_index",
5755 "parameters" : {
5756 "additionalProperties" : 0
5757 },
5758 "permissions" : {
5759 "user" : "all"
5760 },
5761 "protected" : 1,
5762 "returns" : {
5763 "items" : {
5764 "properties" : {},
5765 "type" : "object"
5766 },
5767 "links" : [
5768 {
5769 "href" : "{name}",
5770 "rel" : "child"
5771 }
5772 ],
5773 "type" : "array"
5774 }
5775 },
5776 "POST" : {
e9cd3bd4 5777 "allowtoken" : 1,
a9a8e3d1
DM
5778 "description" : "Register a new ACME account with CA.",
5779 "method" : "POST",
5780 "name" : "register_account",
5781 "parameters" : {
5782 "additionalProperties" : 0,
5783 "properties" : {
5784 "contact" : {
5785 "description" : "Contact email addresses.",
5786 "format" : "email-list",
5787 "type" : "string",
5788 "typetext" : "<string>"
5789 },
5790 "directory" : {
5791 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5792 "description" : "URL of ACME CA directory endpoint.",
5793 "optional" : 1,
5794 "pattern" : "^https?://.*",
5795 "type" : "string"
5796 },
5797 "name" : {
5798 "default" : "default",
5799 "description" : "ACME account config file name.",
5800 "format" : "pve-configid",
5801 "format_description" : "name",
5802 "optional" : 1,
5803 "type" : "string",
5804 "typetext" : "<name>"
5805 },
5806 "tos_url" : {
5807 "description" : "URL of CA TermsOfService - setting this indicates agreement.",
5808 "optional" : 1,
5809 "type" : "string",
5810 "typetext" : "<string>"
5811 }
5812 }
5813 },
5814 "protected" : 1,
5815 "returns" : {
5816 "type" : "string"
5817 }
5818 }
5819 },
5820 "leaf" : 0,
5821 "path" : "/cluster/acme/account",
5822 "text" : "account"
5823 },
5824 {
5825 "info" : {
5826 "GET" : {
e9cd3bd4 5827 "allowtoken" : 1,
a9a8e3d1
DM
5828 "description" : "Retrieve ACME TermsOfService URL from CA.",
5829 "method" : "GET",
5830 "name" : "get_tos",
5831 "parameters" : {
5832 "additionalProperties" : 0,
5833 "properties" : {
5834 "directory" : {
5835 "default" : "https://acme-v02.api.letsencrypt.org/directory",
5836 "description" : "URL of ACME CA directory endpoint.",
5837 "optional" : 1,
5838 "pattern" : "^https?://.*",
5839 "type" : "string"
5840 }
5841 }
5842 },
5da3d723
TL
5843 "permissions" : {
5844 "user" : "all"
5845 },
a9a8e3d1
DM
5846 "returns" : {
5847 "description" : "ACME TermsOfService URL.",
5c1699e5 5848 "optional" : 1,
a9a8e3d1
DM
5849 "type" : "string"
5850 }
5851 }
5852 },
5853 "leaf" : 1,
5854 "path" : "/cluster/acme/tos",
5855 "text" : "tos"
5856 },
5857 {
5858 "info" : {
5859 "GET" : {
e9cd3bd4 5860 "allowtoken" : 1,
a9a8e3d1
DM
5861 "description" : "Get named known ACME directory endpoints.",
5862 "method" : "GET",
5863 "name" : "get_directories",
5864 "parameters" : {
5865 "additionalProperties" : 0
5866 },
5da3d723
TL
5867 "permissions" : {
5868 "user" : "all"
5869 },
a9a8e3d1
DM
5870 "returns" : {
5871 "items" : {
5872 "additionalProperties" : 0,
5873 "properties" : {
5874 "name" : {
5875 "type" : "string"
5876 },
5877 "url" : {
5878 "description" : "URL of ACME CA directory endpoint.",
5879 "pattern" : "^https?://.*",
5880 "type" : "string"
5881 }
5882 },
5883 "type" : "object"
5884 },
5885 "type" : "array"
5886 }
5887 }
5888 },
5889 "leaf" : 1,
5890 "path" : "/cluster/acme/directories",
5891 "text" : "directories"
ac70d7d1
TL
5892 },
5893 {
5894 "info" : {
5895 "GET" : {
5896 "allowtoken" : 1,
5897 "description" : "Get schema of ACME challenge types.",
5898 "method" : "GET",
5899 "name" : "challengeschema",
5900 "parameters" : {
5901 "additionalProperties" : 0
5902 },
5903 "permissions" : {
5904 "user" : "all"
5905 },
5906 "returns" : {
5907 "items" : {
5908 "additionalProperties" : 0,
5909 "properties" : {
5910 "id" : {
5911 "type" : "string"
5912 },
5913 "name" : {
5914 "description" : "Human readable name, falls back to id",
5915 "type" : "string"
5916 },
5917 "schema" : {
5918 "type" : "object"
5919 },
5920 "type" : {
5921 "type" : "string"
5922 }
5923 },
5924 "type" : "object"
5925 },
5926 "type" : "array"
5927 }
5928 }
5929 },
5930 "leaf" : 1,
5931 "path" : "/cluster/acme/challenge-schema",
5932 "text" : "challenge-schema"
a9a8e3d1
DM
5933 }
5934 ],
5935 "info" : {
5936 "GET" : {
e9cd3bd4 5937 "allowtoken" : 1,
a9a8e3d1
DM
5938 "description" : "ACMEAccount index.",
5939 "method" : "GET",
5940 "name" : "index",
5941 "parameters" : {
5942 "additionalProperties" : 0
5943 },
5944 "permissions" : {
5945 "user" : "all"
5946 },
5947 "returns" : {
5948 "items" : {
5949 "properties" : {},
5950 "type" : "object"
5951 },
5952 "links" : [
5953 {
5954 "href" : "{name}",
5955 "rel" : "child"
5956 }
5957 ],
5958 "type" : "array"
5959 }
5960 }
5961 },
5962 "leaf" : 0,
5963 "path" : "/cluster/acme",
5964 "text" : "acme"
5965 },
1c532546
TL
5966 {
5967 "children" : [
5968 {
5969 "info" : {
5970 "GET" : {
e9cd3bd4 5971 "allowtoken" : 1,
1c532546
TL
5972 "description" : "Get ceph metadata.",
5973 "method" : "GET",
5974 "name" : "metadata",
5975 "parameters" : {
c5aa7e14
TL
5976 "additionalProperties" : 0,
5977 "properties" : {
5978 "scope" : {
5979 "default" : "all",
5980 "enum" : [
5981 "all",
5982 "versions"
5983 ],
5984 "optional" : 1,
5985 "type" : "string"
5986 }
5987 }
1c532546
TL
5988 },
5989 "permissions" : {
5990 "check" : [
5991 "perm",
5992 "/",
5993 [
5994 "Sys.Audit",
5995 "Datastore.Audit"
5996 ],
5997 "any",
5998 1
5999 ]
6000 },
6001 "protected" : 1,
6002 "returns" : {
6003 "type" : "object"
6004 }
6005 }
6006 },
6007 "leaf" : 1,
6008 "path" : "/cluster/ceph/metadata",
6009 "text" : "metadata"
6010 },
6011 {
6012 "info" : {
6013 "GET" : {
e9cd3bd4 6014 "allowtoken" : 1,
1c532546
TL
6015 "description" : "Get ceph status.",
6016 "method" : "GET",
6017 "name" : "status",
6018 "parameters" : {
6019 "additionalProperties" : 0
6020 },
6021 "permissions" : {
6022 "check" : [
6023 "perm",
6024 "/",
6025 [
6026 "Sys.Audit",
6027 "Datastore.Audit"
6028 ],
6029 "any",
6030 1
6031 ]
6032 },
6033 "protected" : 1,
6034 "returns" : {
6035 "type" : "object"
6036 }
6037 }
6038 },
6039 "leaf" : 1,
6040 "path" : "/cluster/ceph/status",
6041 "text" : "status"
6042 },
6043 {
6044 "children" : [
6045 {
6046 "info" : {
6047 "GET" : {
e9cd3bd4 6048 "allowtoken" : 1,
1c532546
TL
6049 "description" : "Get the status of a specific ceph flag.",
6050 "method" : "GET",
6051 "name" : "get_flag",
6052 "parameters" : {
6053 "additionalProperties" : 0,
6054 "properties" : {
6055 "flag" : {
6056 "description" : "The name of the flag name to get.",
6057 "enum" : [
6058 "nobackfill",
6059 "nodeep-scrub",
6060 "nodown",
6061 "noin",
6062 "noout",
6063 "norebalance",
6064 "norecover",
6065 "noscrub",
6066 "notieragent",
6067 "noup",
6068 "pause"
6069 ],
6070 "type" : "string"
6071 }
6072 }
6073 },
6074 "permissions" : {
6075 "check" : [
6076 "perm",
6077 "/",
6078 [
6079 "Sys.Audit"
6080 ]
6081 ]
6082 },
6083 "protected" : 1,
6084 "returns" : {
6085 "type" : "boolean"
6086 }
6087 },
6088 "PUT" : {
e9cd3bd4 6089 "allowtoken" : 1,
1c532546
TL
6090 "description" : "Set or clear (unset) a specific ceph flag",
6091 "method" : "PUT",
6092 "name" : "update_flag",
6093 "parameters" : {
6094 "additionalProperties" : 0,
6095 "properties" : {
6096 "flag" : {
6097 "description" : "The ceph flag to update",
6098 "enum" : [
6099 "nobackfill",
6100 "nodeep-scrub",
6101 "nodown",
6102 "noin",
6103 "noout",
6104 "norebalance",
6105 "norecover",
6106 "noscrub",
6107 "notieragent",
6108 "noup",
6109 "pause"
6110 ],
6111 "type" : "string"
6112 },
6113 "value" : {
6114 "description" : "The new value of the flag",
6115 "type" : "boolean",
6116 "typetext" : "<boolean>"
6117 }
6118 }
6119 },
6120 "permissions" : {
6121 "check" : [
6122 "perm",
6123 "/",
6124 [
6125 "Sys.Modify"
6126 ]
6127 ]
6128 },
6129 "protected" : 1,
6130 "returns" : {
6131 "type" : "null"
6132 }
6133 }
6134 },
6135 "leaf" : 1,
6136 "path" : "/cluster/ceph/flags/{flag}",
6137 "text" : "{flag}"
6138 }
6139 ],
6140 "info" : {
6141 "GET" : {
e9cd3bd4 6142 "allowtoken" : 1,
1c532546
TL
6143 "description" : "get the status of all ceph flags",
6144 "method" : "GET",
6145 "name" : "get_all_flags",
6146 "parameters" : {
6147 "additionalProperties" : 0
6148 },
6149 "permissions" : {
6150 "check" : [
6151 "perm",
6152 "/",
6153 [
6154 "Sys.Audit"
6155 ]
6156 ]
6157 },
6158 "protected" : 1,
6159 "returns" : {
6160 "items" : {
6161 "additionalProperties" : 1,
6162 "properties" : {
6163 "name" : {
6164 "description" : "Flag name.",
6165 "enum" : [
6166 "nobackfill",
6167 "nodeep-scrub",
6168 "nodown",
6169 "noin",
6170 "noout",
6171 "norebalance",
6172 "norecover",
6173 "noscrub",
6174 "notieragent",
6175 "noup",
6176 "pause"
6177 ],
6178 "type" : "string"
6179 }
6180 },
6181 "type" : "object"
6182 },
6183 "links" : [
6184 {
6185 "href" : "{name}",
6186 "rel" : "child"
6187 }
6188 ],
6189 "type" : "array"
6190 }
6191 },
6192 "PUT" : {
e9cd3bd4 6193 "allowtoken" : 1,
1c532546
TL
6194 "description" : "Set/Unset multiple ceph flags at once.",
6195 "method" : "PUT",
6196 "name" : "set_flags",
6197 "parameters" : {
6198 "additionalProperties" : 0,
6199 "properties" : {
6200 "nobackfill" : {
6201 "description" : "Backfilling of PGs is suspended.",
6202 "optional" : 1,
6203 "type" : "boolean",
6204 "typetext" : "<boolean>"
6205 },
6206 "nodeep-scrub" : {
6207 "description" : "Deep Scrubbing is disabled.",
6208 "optional" : 1,
6209 "type" : "boolean",
6210 "typetext" : "<boolean>"
6211 },
6212 "nodown" : {
6213 "description" : "OSD failure reports are being ignored, such that the monitors will not mark OSDs down.",
6214 "optional" : 1,
6215 "type" : "boolean",
6216 "typetext" : "<boolean>"
6217 },
6218 "noin" : {
6219 "description" : "OSDs that were previously marked out will not be marked back in when they start.",
6220 "optional" : 1,
6221 "type" : "boolean",
6222 "typetext" : "<boolean>"
6223 },
6224 "noout" : {
6225 "description" : "OSDs will not automatically be marked out after the configured interval.",
6226 "optional" : 1,
6227 "type" : "boolean",
6228 "typetext" : "<boolean>"
6229 },
6230 "norebalance" : {
6231 "description" : "Rebalancing of PGs is suspended.",
6232 "optional" : 1,
6233 "type" : "boolean",
6234 "typetext" : "<boolean>"
6235 },
6236 "norecover" : {
6237 "description" : "Recovery of PGs is suspended.",
6238 "optional" : 1,
6239 "type" : "boolean",
6240 "typetext" : "<boolean>"
6241 },
6242 "noscrub" : {
6243 "description" : "Scrubbing is disabled.",
6244 "optional" : 1,
6245 "type" : "boolean",
6246 "typetext" : "<boolean>"
6247 },
6248 "notieragent" : {
6249 "description" : "Cache tiering activity is suspended.",
6250 "optional" : 1,
6251 "type" : "boolean",
6252 "typetext" : "<boolean>"
6253 },
6254 "noup" : {
6255 "description" : "OSDs are not allowed to start.",
6256 "optional" : 1,
6257 "type" : "boolean",
6258 "typetext" : "<boolean>"
6259 },
6260 "pause" : {
6261 "description" : "Pauses read and writes.",
6262 "optional" : 1,
6263 "type" : "boolean",
6264 "typetext" : "<boolean>"
6265 }
6266 }
6267 },
6268 "permissions" : {
6269 "check" : [
6270 "perm",
6271 "/",
6272 [
6273 "Sys.Modify"
6274 ]
6275 ]
6276 },
6277 "protected" : 1,
6278 "returns" : {
6279 "type" : "string"
6280 }
6281 }
6282 },
6283 "leaf" : 0,
6284 "path" : "/cluster/ceph/flags",
6285 "text" : "flags"
6286 }
6287 ],
6288 "info" : {
6289 "GET" : {
e9cd3bd4 6290 "allowtoken" : 1,
1c532546
TL
6291 "description" : "Cluster ceph index.",
6292 "method" : "GET",
6293 "name" : "cephindex",
6294 "parameters" : {
6295 "additionalProperties" : 0
6296 },
6297 "permissions" : {
6298 "user" : "all"
6299 },
6300 "returns" : {
6301 "items" : {
6302 "properties" : {},
6303 "type" : "object"
6304 },
6305 "links" : [
6306 {
6307 "href" : "{name}",
6308 "rel" : "child"
6309 }
6310 ],
6311 "type" : "array"
6312 }
6313 }
6314 },
6315 "leaf" : 0,
6316 "path" : "/cluster/ceph",
6317 "text" : "ceph"
6318 },
5370fa8c
TL
6319 {
6320 "children" : [
6321 {
6322 "info" : {
6323 "GET" : {
6324 "allowtoken" : 1,
6325 "description" : "Returns a list of future schedule runtimes.",
6326 "method" : "GET",
6327 "name" : "schedule-analyze",
6328 "parameters" : {
6329 "additionalProperties" : 0,
6330 "properties" : {
6331 "iterations" : {
6332 "default" : 10,
6333 "description" : "Number of event-iteration to simulate and return.",
6334 "maximum" : 100,
6335 "minimum" : 1,
6336 "optional" : 1,
6337 "type" : "integer",
6338 "typetext" : "<integer> (1 - 100)"
6339 },
6340 "schedule" : {
6341 "description" : "Job schedule. The format is a subset of `systemd` calendar events.",
6342 "format" : "pve-calendar-event",
6343 "maxLength" : 128,
6344 "type" : "string",
6345 "typetext" : "<string>"
6346 },
6347 "starttime" : {
6348 "description" : "UNIX timestamp to start the calculation from. Defaults to the current time.",
6349 "optional" : 1,
6350 "type" : "integer",
6351 "typetext" : "<integer>"
6352 }
6353 }
6354 },
6355 "permissions" : {
6356 "user" : "all"
6357 },
6358 "returns" : {
6359 "description" : "An array of the next <iterations> events since <starttime>.",
6360 "items" : {
6361 "properties" : {
6362 "timestamp" : {
6363 "description" : "UNIX timestamp for the run.",
6364 "type" : "integer"
6365 },
6366 "utc" : {
6367 "description" : "UTC timestamp for the run.",
6368 "type" : "string"
6369 }
6370 },
6371 "type" : "object"
6372 },
6373 "type" : "array"
6374 }
6375 }
6376 },
6377 "leaf" : 1,
6378 "path" : "/cluster/jobs/schedule-analyze",
6379 "text" : "schedule-analyze"
6380 }
6381 ],
6382 "info" : {
6383 "GET" : {
6384 "allowtoken" : 1,
6385 "description" : "Index for jobs related endpoints.",
6386 "method" : "GET",
6387 "name" : "index",
6388 "parameters" : {
6389 "additionalProperties" : 0
6390 },
6391 "permissions" : {
6392 "user" : "all"
6393 },
6394 "returns" : {
6395 "description" : "Directory index.",
6396 "items" : {
6397 "properties" : {
6398 "subdir" : {
6399 "description" : "API sub-directory endpoint",
6400 "type" : "string"
6401 }
6402 },
6403 "type" : "object"
6404 },
6405 "links" : [
6406 {
6407 "href" : "{subdir}",
6408 "rel" : "child"
6409 }
6410 ],
6411 "type" : "array"
6412 }
6413 }
6414 },
6415 "leaf" : 0,
6416 "path" : "/cluster/jobs",
6417 "text" : "jobs"
6418 },
c5aa7e14
TL
6419 {
6420 "children" : [
6421 {
6422 "children" : [
6423 {
d2656385
TL
6424 "children" : [
6425 {
6426 "children" : [
6427 {
6428 "info" : {
6429 "DELETE" : {
6430 "allowtoken" : 1,
6431 "description" : "Delete sdn subnet object configuration.",
6432 "method" : "DELETE",
6433 "name" : "delete",
6434 "parameters" : {
6435 "additionalProperties" : 0,
6436 "properties" : {
6437 "subnet" : {
6438 "description" : "The SDN subnet object identifier.",
6439 "format" : "pve-sdn-subnet-id",
6440 "type" : "string",
6441 "typetext" : "<string>"
6442 },
6443 "vnet" : {
6444 "description" : "The SDN vnet object identifier.",
6445 "format" : "pve-sdn-vnet-id",
6446 "type" : "string",
6447 "typetext" : "<string>"
6448 }
6449 }
6450 },
6451 "permissions" : {
6452 "check" : [
6453 "perm",
6454 "/sdn/vnets/{vnet}/subnets",
6455 [
6456 "SDN.Allocate"
6457 ]
6458 ]
6459 },
6460 "protected" : 1,
6461 "returns" : {
6462 "type" : "null"
6463 }
6464 },
6465 "GET" : {
6466 "allowtoken" : 1,
6467 "description" : "Read sdn subnet configuration.",
6468 "method" : "GET",
6469 "name" : "read",
6470 "parameters" : {
6471 "additionalProperties" : 0,
6472 "properties" : {
6473 "pending" : {
6474 "description" : "Display pending config.",
6475 "optional" : 1,
6476 "type" : "boolean",
6477 "typetext" : "<boolean>"
6478 },
6479 "running" : {
6480 "description" : "Display running config.",
6481 "optional" : 1,
6482 "type" : "boolean",
6483 "typetext" : "<boolean>"
6484 },
6485 "subnet" : {
6486 "description" : "The SDN subnet object identifier.",
6487 "format" : "pve-sdn-subnet-id",
6488 "type" : "string",
6489 "typetext" : "<string>"
6490 },
6491 "vnet" : {
6492 "description" : "The SDN vnet object identifier.",
6493 "format" : "pve-sdn-vnet-id",
6494 "type" : "string",
6495 "typetext" : "<string>"
6496 }
6497 }
6498 },
6499 "permissions" : {
6500 "check" : [
6501 "perm",
6502 "/sdn/vnets/{vnet}/subnets/{subnet}",
6503 [
6504 "SDN.Allocate"
6505 ]
6506 ]
6507 },
6508 "returns" : {
6509 "type" : "object"
6510 }
6511 },
6512 "PUT" : {
6513 "allowtoken" : 1,
6514 "description" : "Update sdn subnet object configuration.",
6515 "method" : "PUT",
6516 "name" : "update",
6517 "parameters" : {
6518 "additionalProperties" : 0,
6519 "properties" : {
6520 "delete" : {
6521 "description" : "A list of settings you want to delete.",
6522 "format" : "pve-configid-list",
6523 "maxLength" : 4096,
6524 "optional" : 1,
6525 "type" : "string",
6526 "typetext" : "<string>"
6527 },
6528 "digest" : {
6529 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
6530 "maxLength" : 40,
6531 "optional" : 1,
6532 "type" : "string",
6533 "typetext" : "<string>"
6534 },
6535 "dnszoneprefix" : {
6536 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
6537 "format" : "dns-name",
6538 "optional" : 1,
6539 "type" : "string",
6540 "typetext" : "<string>"
6541 },
6542 "gateway" : {
6543 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
6544 "format" : "ip",
6545 "optional" : 1,
6546 "type" : "string",
6547 "typetext" : "<string>"
6548 },
6549 "snat" : {
6550 "description" : "enable masquerade for this subnet if pve-firewall",
6551 "optional" : 1,
6552 "type" : "boolean",
6553 "typetext" : "<boolean>"
6554 },
6555 "subnet" : {
6556 "description" : "The SDN subnet object identifier.",
6557 "format" : "pve-sdn-subnet-id",
6558 "type" : "string",
6559 "typetext" : "<string>"
6560 },
6561 "vnet" : {
6562 "description" : "associated vnet",
6563 "optional" : 1,
6564 "type" : "string",
6565 "typetext" : "<string>"
6566 }
6567 },
6568 "type" : "object"
6569 },
6570 "permissions" : {
6571 "check" : [
6572 "perm",
6573 "/sdn/vnets/{vnet}/subnets",
6574 [
6575 "SDN.Allocate"
6576 ]
6577 ]
6578 },
6579 "protected" : 1,
6580 "returns" : {
6581 "type" : "null"
6582 }
6583 }
6584 },
6585 "leaf" : 1,
6586 "path" : "/cluster/sdn/vnets/{vnet}/subnets/{subnet}",
6587 "text" : "{subnet}"
6588 }
6589 ],
6590 "info" : {
6591 "GET" : {
6592 "allowtoken" : 1,
6593 "description" : "SDN subnets index.",
6594 "method" : "GET",
6595 "name" : "index",
6596 "parameters" : {
6597 "additionalProperties" : 0,
6598 "properties" : {
6599 "pending" : {
6600 "description" : "Display pending config.",
6601 "optional" : 1,
6602 "type" : "boolean",
6603 "typetext" : "<boolean>"
6604 },
6605 "running" : {
6606 "description" : "Display running config.",
6607 "optional" : 1,
6608 "type" : "boolean",
6609 "typetext" : "<boolean>"
6610 },
6611 "vnet" : {
6612 "description" : "The SDN vnet object identifier.",
6613 "format" : "pve-sdn-vnet-id",
6614 "type" : "string",
6615 "typetext" : "<string>"
6616 }
6617 }
6618 },
6619 "permissions" : {
6620 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/subnets/<subnet>'",
6621 "user" : "all"
6622 },
6623 "returns" : {
6624 "items" : {
6625 "properties" : {},
6626 "type" : "object"
6627 },
6628 "links" : [
6629 {
6630 "href" : "{subnet}",
6631 "rel" : "child"
6632 }
6633 ],
6634 "type" : "array"
6635 }
6636 },
6637 "POST" : {
6638 "allowtoken" : 1,
6639 "description" : "Create a new sdn subnet object.",
6640 "method" : "POST",
6641 "name" : "create",
6642 "parameters" : {
6643 "additionalProperties" : 0,
6644 "properties" : {
6645 "dnszoneprefix" : {
6646 "description" : "dns domain zone prefix ex: 'adm' -> <hostname>.adm.mydomain.com",
6647 "format" : "dns-name",
6648 "optional" : 1,
6649 "type" : "string",
6650 "typetext" : "<string>"
6651 },
6652 "gateway" : {
6653 "description" : "Subnet Gateway: Will be assign on vnet for layer3 zones",
6654 "format" : "ip",
6655 "optional" : 1,
6656 "type" : "string",
6657 "typetext" : "<string>"
6658 },
6659 "snat" : {
6660 "description" : "enable masquerade for this subnet if pve-firewall",
6661 "optional" : 1,
6662 "type" : "boolean",
6663 "typetext" : "<boolean>"
6664 },
6665 "subnet" : {
6666 "description" : "The SDN subnet object identifier.",
6667 "format" : "pve-sdn-subnet-id",
6668 "type" : "string",
6669 "typetext" : "<string>"
6670 },
6671 "type" : {
6672 "enum" : [
6673 "subnet"
6674 ],
6675 "type" : "string"
6676 },
6677 "vnet" : {
6678 "description" : "associated vnet",
6679 "optional" : 0,
6680 "type" : "string",
6681 "typetext" : "<string>"
6682 }
6683 },
6684 "type" : "object"
6685 },
6686 "permissions" : {
6687 "check" : [
6688 "perm",
6689 "/sdn/vnets/{vnet}/subnets",
6690 [
6691 "SDN.Allocate"
6692 ]
6693 ]
6694 },
6695 "protected" : 1,
6696 "returns" : {
6697 "type" : "null"
6698 }
6699 }
6700 },
6701 "leaf" : 0,
6702 "path" : "/cluster/sdn/vnets/{vnet}/subnets",
6703 "text" : "subnets"
6704 }
6705 ],
c5aa7e14
TL
6706 "info" : {
6707 "DELETE" : {
6708 "allowtoken" : 1,
6709 "description" : "Delete sdn vnet object configuration.",
6710 "method" : "DELETE",
6711 "name" : "delete",
6712 "parameters" : {
6713 "additionalProperties" : 0,
6714 "properties" : {
6715 "vnet" : {
6716 "description" : "The SDN vnet object identifier.",
6717 "format" : "pve-sdn-vnet-id",
6718 "type" : "string",
6719 "typetext" : "<string>"
6720 }
6721 }
6722 },
6723 "permissions" : {
6724 "check" : [
6725 "perm",
6726 "/sdn/vnets",
6727 [
6728 "SDN.Allocate"
6729 ]
6730 ]
6731 },
6732 "protected" : 1,
6733 "returns" : {
6734 "type" : "null"
6735 }
6736 },
6737 "GET" : {
6738 "allowtoken" : 1,
6739 "description" : "Read sdn vnet configuration.",
6740 "method" : "GET",
6741 "name" : "read",
6742 "parameters" : {
6743 "additionalProperties" : 0,
6744 "properties" : {
d2656385
TL
6745 "pending" : {
6746 "description" : "Display pending config.",
6747 "optional" : 1,
6748 "type" : "boolean",
6749 "typetext" : "<boolean>"
6750 },
6751 "running" : {
6752 "description" : "Display running config.",
6753 "optional" : 1,
6754 "type" : "boolean",
6755 "typetext" : "<boolean>"
6756 },
c5aa7e14
TL
6757 "vnet" : {
6758 "description" : "The SDN vnet object identifier.",
6759 "format" : "pve-sdn-vnet-id",
6760 "type" : "string",
6761 "typetext" : "<string>"
6762 }
6763 }
6764 },
6765 "permissions" : {
6766 "check" : [
6767 "perm",
6768 "/sdn/vnets/{vnet}",
6769 [
6770 "SDN.Allocate"
6771 ]
6772 ]
6773 },
6774 "returns" : {
6775 "type" : "object"
6776 }
6777 },
6778 "PUT" : {
6779 "allowtoken" : 1,
6780 "description" : "Update sdn vnet object configuration.",
6781 "method" : "PUT",
6782 "name" : "update",
6783 "parameters" : {
6784 "additionalProperties" : 0,
6785 "properties" : {
6786 "alias" : {
6787 "description" : "alias name of the vnet",
5370fa8c 6788 "maxLength" : 256,
c5aa7e14 6789 "optional" : 1,
5370fa8c
TL
6790 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
6791 "type" : "string"
c5aa7e14
TL
6792 },
6793 "delete" : {
6794 "description" : "A list of settings you want to delete.",
6795 "format" : "pve-configid-list",
6796 "maxLength" : 4096,
6797 "optional" : 1,
6798 "type" : "string",
6799 "typetext" : "<string>"
6800 },
6801 "digest" : {
6802 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
6803 "maxLength" : 40,
6804 "optional" : 1,
6805 "type" : "string",
6806 "typetext" : "<string>"
6807 },
c5aa7e14
TL
6808 "tag" : {
6809 "description" : "vlan or vxlan id",
6810 "optional" : 1,
6811 "type" : "integer",
6812 "typetext" : "<integer>"
6813 },
ac70d7d1
TL
6814 "vlanaware" : {
6815 "description" : "Allow vm VLANs to pass through this vnet.",
6816 "optional" : 1,
6817 "type" : "boolean",
6818 "typetext" : "<boolean>"
6819 },
c5aa7e14
TL
6820 "vnet" : {
6821 "description" : "The SDN vnet object identifier.",
6822 "format" : "pve-sdn-vnet-id",
6823 "type" : "string",
6824 "typetext" : "<string>"
6825 },
6826 "zone" : {
6827 "description" : "zone id",
6828 "optional" : 1,
6829 "type" : "string",
6830 "typetext" : "<string>"
6831 }
6832 },
6833 "type" : "object"
6834 },
6835 "permissions" : {
6836 "check" : [
6837 "perm",
6838 "/sdn/vnets",
6839 [
6840 "SDN.Allocate"
6841 ]
6842 ]
6843 },
6844 "protected" : 1,
6845 "returns" : {
6846 "type" : "null"
6847 }
6848 }
6849 },
d2656385 6850 "leaf" : 0,
c5aa7e14
TL
6851 "path" : "/cluster/sdn/vnets/{vnet}",
6852 "text" : "{vnet}"
6853 }
6854 ],
6855 "info" : {
6856 "GET" : {
6857 "allowtoken" : 1,
6858 "description" : "SDN vnets index.",
6859 "method" : "GET",
6860 "name" : "index",
6861 "parameters" : {
d2656385
TL
6862 "additionalProperties" : 0,
6863 "properties" : {
6864 "pending" : {
6865 "description" : "Display pending config.",
6866 "optional" : 1,
6867 "type" : "boolean",
6868 "typetext" : "<boolean>"
6869 },
6870 "running" : {
6871 "description" : "Display running config.",
6872 "optional" : 1,
6873 "type" : "boolean",
6874 "typetext" : "<boolean>"
6875 }
6876 }
c5aa7e14
TL
6877 },
6878 "permissions" : {
6879 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/vnets/<vnet>'",
6880 "user" : "all"
6881 },
6882 "returns" : {
6883 "items" : {
6884 "properties" : {},
6885 "type" : "object"
6886 },
6887 "links" : [
6888 {
6889 "href" : "{vnet}",
6890 "rel" : "child"
6891 }
6892 ],
6893 "type" : "array"
6894 }
6895 },
6896 "POST" : {
6897 "allowtoken" : 1,
6898 "description" : "Create a new sdn vnet object.",
6899 "method" : "POST",
6900 "name" : "create",
6901 "parameters" : {
6902 "additionalProperties" : 0,
6903 "properties" : {
6904 "alias" : {
6905 "description" : "alias name of the vnet",
5370fa8c 6906 "maxLength" : 256,
c5aa7e14 6907 "optional" : 1,
5370fa8c
TL
6908 "pattern" : "(?^i:[\\(\\)-_.\\w\\d\\s]{0,256})",
6909 "type" : "string"
c5aa7e14 6910 },
c5aa7e14
TL
6911 "tag" : {
6912 "description" : "vlan or vxlan id",
ac70d7d1 6913 "optional" : 1,
c5aa7e14
TL
6914 "type" : "integer",
6915 "typetext" : "<integer>"
6916 },
6917 "type" : {
6918 "description" : "Type",
6919 "enum" : [
6920 "vnet"
6921 ],
6922 "optional" : 1,
6923 "type" : "string"
6924 },
ac70d7d1
TL
6925 "vlanaware" : {
6926 "description" : "Allow vm VLANs to pass through this vnet.",
6927 "optional" : 1,
6928 "type" : "boolean",
6929 "typetext" : "<boolean>"
6930 },
c5aa7e14
TL
6931 "vnet" : {
6932 "description" : "The SDN vnet object identifier.",
6933 "format" : "pve-sdn-vnet-id",
6934 "type" : "string",
6935 "typetext" : "<string>"
6936 },
6937 "zone" : {
6938 "description" : "zone id",
6939 "optional" : 0,
6940 "type" : "string",
6941 "typetext" : "<string>"
6942 }
6943 },
6944 "type" : "object"
6945 },
6946 "permissions" : {
6947 "check" : [
6948 "perm",
6949 "/sdn/vnets",
6950 [
6951 "SDN.Allocate"
6952 ]
6953 ]
6954 },
6955 "protected" : 1,
6956 "returns" : {
6957 "type" : "null"
6958 }
6959 }
6960 },
6961 "leaf" : 0,
6962 "path" : "/cluster/sdn/vnets",
6963 "text" : "vnets"
6964 },
6965 {
6966 "children" : [
6967 {
6968 "info" : {
6969 "DELETE" : {
6970 "allowtoken" : 1,
6971 "description" : "Delete sdn zone object configuration.",
6972 "method" : "DELETE",
6973 "name" : "delete",
6974 "parameters" : {
6975 "additionalProperties" : 0,
6976 "properties" : {
6977 "zone" : {
6978 "description" : "The SDN zone object identifier.",
6979 "format" : "pve-sdn-zone-id",
6980 "type" : "string",
6981 "typetext" : "<string>"
6982 }
6983 }
6984 },
6985 "permissions" : {
6986 "check" : [
6987 "perm",
6988 "/sdn/zones",
6989 [
6990 "SDN.Allocate"
6991 ]
6992 ]
6993 },
6994 "protected" : 1,
6995 "returns" : {
6996 "type" : "null"
6997 }
6998 },
6999 "GET" : {
7000 "allowtoken" : 1,
7001 "description" : "Read sdn zone configuration.",
7002 "method" : "GET",
7003 "name" : "read",
7004 "parameters" : {
7005 "additionalProperties" : 0,
7006 "properties" : {
d2656385
TL
7007 "pending" : {
7008 "description" : "Display pending config.",
7009 "optional" : 1,
7010 "type" : "boolean",
7011 "typetext" : "<boolean>"
7012 },
7013 "running" : {
7014 "description" : "Display running config.",
7015 "optional" : 1,
7016 "type" : "boolean",
7017 "typetext" : "<boolean>"
7018 },
c5aa7e14
TL
7019 "zone" : {
7020 "description" : "The SDN zone object identifier.",
7021 "format" : "pve-sdn-zone-id",
7022 "type" : "string",
7023 "typetext" : "<string>"
7024 }
7025 }
7026 },
7027 "permissions" : {
7028 "check" : [
7029 "perm",
7030 "/sdn/zones/{zone}",
7031 [
7032 "SDN.Allocate"
7033 ]
7034 ]
7035 },
7036 "returns" : {
7037 "type" : "object"
7038 }
7039 },
7040 "PUT" : {
7041 "allowtoken" : 1,
7042 "description" : "Update sdn zone object configuration.",
7043 "method" : "PUT",
7044 "name" : "update",
7045 "parameters" : {
7046 "additionalProperties" : 0,
7047 "properties" : {
5370fa8c
TL
7048 "advertise-subnets" : {
7049 "description" : "Advertise evpn subnets if you have silent hosts",
7050 "optional" : 1,
7051 "type" : "boolean",
7052 "typetext" : "<boolean>"
7053 },
c5aa7e14
TL
7054 "bridge" : {
7055 "optional" : 1,
7056 "type" : "string",
7057 "typetext" : "<string>"
7058 },
7af2edf9
TL
7059 "bridge-disable-mac-learning" : {
7060 "description" : "Disable auto mac learning.",
7061 "optional" : 1,
7062 "type" : "boolean",
7063 "typetext" : "<boolean>"
7064 },
c5aa7e14
TL
7065 "controller" : {
7066 "description" : "Frr router name",
7067 "optional" : 1,
7068 "type" : "string",
7069 "typetext" : "<string>"
7070 },
7071 "delete" : {
7072 "description" : "A list of settings you want to delete.",
7073 "format" : "pve-configid-list",
7074 "maxLength" : 4096,
7075 "optional" : 1,
7076 "type" : "string",
7077 "typetext" : "<string>"
7078 },
7079 "digest" : {
7080 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7081 "maxLength" : 40,
7082 "optional" : 1,
7083 "type" : "string",
7084 "typetext" : "<string>"
7085 },
5370fa8c
TL
7086 "disable-arp-nd-suppression" : {
7087 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
7088 "optional" : 1,
7089 "type" : "boolean",
7090 "typetext" : "<boolean>"
7091 },
d2656385
TL
7092 "dns" : {
7093 "description" : "dns api server",
7094 "optional" : 1,
7095 "type" : "string",
7096 "typetext" : "<string>"
7097 },
7098 "dnszone" : {
7099 "description" : "dns domain zone ex: mydomain.com",
7100 "format" : "dns-name",
7101 "optional" : 1,
7102 "type" : "string",
7103 "typetext" : "<string>"
7104 },
c5aa7e14
TL
7105 "dp-id" : {
7106 "description" : "Faucet dataplane id",
7107 "optional" : 1,
7108 "type" : "integer",
7109 "typetext" : "<integer>"
7110 },
d2656385
TL
7111 "exitnodes" : {
7112 "description" : "List of cluster node names.",
7113 "format" : "pve-node-list",
7114 "optional" : 1,
7115 "type" : "string",
7116 "typetext" : "<string>"
7117 },
5370fa8c
TL
7118 "exitnodes-local-routing" : {
7119 "description" : "Allow exitnodes to connect to evpn guests",
7120 "optional" : 1,
7121 "type" : "boolean",
7122 "typetext" : "<boolean>"
7123 },
c30bb419
TL
7124 "exitnodes-primary" : {
7125 "description" : "Force traffic to this exitnode first.",
7126 "format" : "pve-node",
7127 "optional" : 1,
7128 "type" : "string",
7129 "typetext" : "<string>"
7130 },
d2656385
TL
7131 "ipam" : {
7132 "description" : "use a specific ipam",
e7084ef7 7133 "optional" : 1,
d2656385
TL
7134 "type" : "string",
7135 "typetext" : "<string>"
7136 },
7137 "mac" : {
7138 "description" : "Anycast logical router mac address",
7139 "format" : "mac-addr",
7140 "optional" : 1,
7141 "type" : "string",
7142 "typetext" : "<string>"
7143 },
c5aa7e14 7144 "mtu" : {
ac70d7d1 7145 "description" : "MTU",
c5aa7e14
TL
7146 "optional" : 1,
7147 "type" : "integer",
7148 "typetext" : "<integer>"
7149 },
7150 "nodes" : {
7151 "description" : "List of cluster node names.",
7152 "format" : "pve-node-list",
7153 "optional" : 1,
7154 "type" : "string",
7155 "typetext" : "<string>"
7156 },
7157 "peers" : {
7158 "description" : "peers address list.",
7159 "format" : "ip-list",
7160 "optional" : 1,
7161 "type" : "string",
7162 "typetext" : "<string>"
7163 },
d2656385
TL
7164 "reversedns" : {
7165 "description" : "reverse dns api server",
7166 "optional" : 1,
7167 "type" : "string",
7168 "typetext" : "<string>"
7169 },
c30bb419
TL
7170 "rt-import" : {
7171 "description" : "Route-Target import",
7172 "format" : "pve-sdn-bgp-rt-list",
7173 "optional" : 1,
7174 "type" : "string",
7175 "typetext" : "<string>"
7176 },
c5aa7e14 7177 "tag" : {
ac70d7d1
TL
7178 "description" : "Service-VLAN Tag",
7179 "minimum" : 0,
c5aa7e14
TL
7180 "optional" : 1,
7181 "type" : "integer",
ac70d7d1
TL
7182 "typetext" : "<integer> (0 - N)"
7183 },
7184 "vlan-protocol" : {
7185 "default" : "802.1q",
7186 "enum" : [
7187 "802.1q",
7188 "802.1ad"
7189 ],
7190 "optional" : 1,
7191 "type" : "string"
c5aa7e14
TL
7192 },
7193 "vrf-vxlan" : {
7194 "description" : "l3vni.",
7195 "optional" : 1,
7196 "type" : "integer",
7197 "typetext" : "<integer>"
7198 },
7199 "zone" : {
7200 "description" : "The SDN zone object identifier.",
7201 "format" : "pve-sdn-zone-id",
7202 "type" : "string",
7203 "typetext" : "<string>"
7204 }
7205 },
7206 "type" : "object"
7207 },
7208 "permissions" : {
7209 "check" : [
7210 "perm",
7211 "/sdn/zones",
7212 [
7213 "SDN.Allocate"
7214 ]
7215 ]
7216 },
7217 "protected" : 1,
7218 "returns" : {
7219 "type" : "null"
7220 }
7221 }
7222 },
7223 "leaf" : 1,
7224 "path" : "/cluster/sdn/zones/{zone}",
7225 "text" : "{zone}"
7226 }
7227 ],
7228 "info" : {
7229 "GET" : {
7230 "allowtoken" : 1,
7231 "description" : "SDN zones index.",
7232 "method" : "GET",
7233 "name" : "index",
7234 "parameters" : {
7235 "additionalProperties" : 0,
7236 "properties" : {
d2656385
TL
7237 "pending" : {
7238 "description" : "Display pending config.",
7239 "optional" : 1,
7240 "type" : "boolean",
7241 "typetext" : "<boolean>"
7242 },
7243 "running" : {
7244 "description" : "Display running config.",
7245 "optional" : 1,
7246 "type" : "boolean",
7247 "typetext" : "<boolean>"
7248 },
c5aa7e14 7249 "type" : {
e7084ef7 7250 "description" : "Only list SDN zones of specific type",
c5aa7e14
TL
7251 "enum" : [
7252 "evpn",
7253 "faucet",
7254 "qinq",
ac70d7d1 7255 "simple",
c5aa7e14
TL
7256 "vlan",
7257 "vxlan"
7258 ],
7259 "optional" : 1,
7260 "type" : "string"
7261 }
7262 }
7263 },
7264 "permissions" : {
7265 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/zones/<zone>'",
7266 "user" : "all"
7267 },
7268 "returns" : {
7269 "items" : {
7270 "properties" : {
d2656385
TL
7271 "dns" : {
7272 "optional" : 1,
7273 "type" : "string"
7274 },
7275 "dnszone" : {
7276 "optional" : 1,
7277 "type" : "string"
7278 },
7279 "ipam" : {
7280 "optional" : 1,
7281 "type" : "string"
7282 },
7283 "mtu" : {
7284 "optional" : 1,
7285 "type" : "integer"
7286 },
7287 "nodes" : {
7288 "optional" : 1,
7289 "type" : "string"
7290 },
7291 "pending" : {
7292 "optional" : 1
7293 },
7294 "reversedns" : {
7295 "optional" : 1,
7296 "type" : "string"
7297 },
7298 "state" : {
7299 "optional" : 1,
7300 "type" : "string"
7301 },
c5aa7e14
TL
7302 "type" : {
7303 "type" : "string"
7304 },
7305 "zone" : {
7306 "type" : "string"
7307 }
7308 },
7309 "type" : "object"
7310 },
7311 "links" : [
7312 {
7313 "href" : "{zone}",
7314 "rel" : "child"
7315 }
7316 ],
7317 "type" : "array"
7318 }
7319 },
7320 "POST" : {
7321 "allowtoken" : 1,
7322 "description" : "Create a new sdn zone object.",
7323 "method" : "POST",
7324 "name" : "create",
7325 "parameters" : {
7326 "additionalProperties" : 0,
7327 "properties" : {
5370fa8c
TL
7328 "advertise-subnets" : {
7329 "description" : "Advertise evpn subnets if you have silent hosts",
7330 "optional" : 1,
7331 "type" : "boolean",
7332 "typetext" : "<boolean>"
7333 },
c5aa7e14
TL
7334 "bridge" : {
7335 "optional" : 1,
7336 "type" : "string",
7337 "typetext" : "<string>"
7338 },
7af2edf9
TL
7339 "bridge-disable-mac-learning" : {
7340 "description" : "Disable auto mac learning.",
7341 "optional" : 1,
7342 "type" : "boolean",
7343 "typetext" : "<boolean>"
7344 },
c5aa7e14
TL
7345 "controller" : {
7346 "description" : "Frr router name",
7347 "optional" : 1,
7348 "type" : "string",
7349 "typetext" : "<string>"
7350 },
5370fa8c
TL
7351 "disable-arp-nd-suppression" : {
7352 "description" : "Disable ipv4 arp && ipv6 neighbour discovery suppression",
7353 "optional" : 1,
7354 "type" : "boolean",
7355 "typetext" : "<boolean>"
7356 },
d2656385
TL
7357 "dns" : {
7358 "description" : "dns api server",
7359 "optional" : 1,
7360 "type" : "string",
7361 "typetext" : "<string>"
7362 },
7363 "dnszone" : {
7364 "description" : "dns domain zone ex: mydomain.com",
7365 "format" : "dns-name",
7366 "optional" : 1,
7367 "type" : "string",
7368 "typetext" : "<string>"
7369 },
c5aa7e14
TL
7370 "dp-id" : {
7371 "description" : "Faucet dataplane id",
7372 "optional" : 1,
7373 "type" : "integer",
7374 "typetext" : "<integer>"
7375 },
d2656385
TL
7376 "exitnodes" : {
7377 "description" : "List of cluster node names.",
7378 "format" : "pve-node-list",
7379 "optional" : 1,
7380 "type" : "string",
7381 "typetext" : "<string>"
7382 },
5370fa8c
TL
7383 "exitnodes-local-routing" : {
7384 "description" : "Allow exitnodes to connect to evpn guests",
7385 "optional" : 1,
7386 "type" : "boolean",
7387 "typetext" : "<boolean>"
7388 },
c30bb419
TL
7389 "exitnodes-primary" : {
7390 "description" : "Force traffic to this exitnode first.",
7391 "format" : "pve-node",
7392 "optional" : 1,
7393 "type" : "string",
7394 "typetext" : "<string>"
7395 },
d2656385
TL
7396 "ipam" : {
7397 "description" : "use a specific ipam",
e7084ef7 7398 "optional" : 1,
d2656385
TL
7399 "type" : "string",
7400 "typetext" : "<string>"
7401 },
7402 "mac" : {
7403 "description" : "Anycast logical router mac address",
7404 "format" : "mac-addr",
7405 "optional" : 1,
7406 "type" : "string",
7407 "typetext" : "<string>"
7408 },
c5aa7e14 7409 "mtu" : {
ac70d7d1 7410 "description" : "MTU",
c5aa7e14
TL
7411 "optional" : 1,
7412 "type" : "integer",
7413 "typetext" : "<integer>"
7414 },
7415 "nodes" : {
7416 "description" : "List of cluster node names.",
7417 "format" : "pve-node-list",
7418 "optional" : 1,
7419 "type" : "string",
7420 "typetext" : "<string>"
7421 },
7422 "peers" : {
7423 "description" : "peers address list.",
7424 "format" : "ip-list",
7425 "optional" : 1,
7426 "type" : "string",
7427 "typetext" : "<string>"
7428 },
d2656385
TL
7429 "reversedns" : {
7430 "description" : "reverse dns api server",
7431 "optional" : 1,
7432 "type" : "string",
7433 "typetext" : "<string>"
7434 },
c30bb419
TL
7435 "rt-import" : {
7436 "description" : "Route-Target import",
7437 "format" : "pve-sdn-bgp-rt-list",
7438 "optional" : 1,
7439 "type" : "string",
7440 "typetext" : "<string>"
7441 },
c5aa7e14 7442 "tag" : {
ac70d7d1
TL
7443 "description" : "Service-VLAN Tag",
7444 "minimum" : 0,
c5aa7e14
TL
7445 "optional" : 1,
7446 "type" : "integer",
ac70d7d1 7447 "typetext" : "<integer> (0 - N)"
c5aa7e14
TL
7448 },
7449 "type" : {
7450 "description" : "Plugin type.",
7451 "enum" : [
7452 "evpn",
7453 "faucet",
7454 "qinq",
ac70d7d1 7455 "simple",
c5aa7e14
TL
7456 "vlan",
7457 "vxlan"
7458 ],
7459 "format" : "pve-configid",
7460 "type" : "string"
7461 },
ac70d7d1
TL
7462 "vlan-protocol" : {
7463 "default" : "802.1q",
7464 "enum" : [
7465 "802.1q",
7466 "802.1ad"
7467 ],
7468 "optional" : 1,
7469 "type" : "string"
7470 },
c5aa7e14
TL
7471 "vrf-vxlan" : {
7472 "description" : "l3vni.",
7473 "optional" : 1,
7474 "type" : "integer",
7475 "typetext" : "<integer>"
7476 },
7477 "zone" : {
7478 "description" : "The SDN zone object identifier.",
7479 "format" : "pve-sdn-zone-id",
7480 "type" : "string",
7481 "typetext" : "<string>"
7482 }
7483 },
7484 "type" : "object"
7485 },
7486 "permissions" : {
7487 "check" : [
7488 "perm",
7489 "/sdn/zones",
7490 [
7491 "SDN.Allocate"
7492 ]
7493 ]
7494 },
7495 "protected" : 1,
7496 "returns" : {
7497 "type" : "null"
7498 }
7499 }
7500 },
7501 "leaf" : 0,
7502 "path" : "/cluster/sdn/zones",
7503 "text" : "zones"
7504 },
7505 {
7506 "children" : [
7507 {
7508 "info" : {
7509 "DELETE" : {
7510 "allowtoken" : 1,
7511 "description" : "Delete sdn controller object configuration.",
7512 "method" : "DELETE",
7513 "name" : "delete",
7514 "parameters" : {
7515 "additionalProperties" : 0,
7516 "properties" : {
7517 "controller" : {
7518 "description" : "The SDN controller object identifier.",
7519 "format" : "pve-sdn-controller-id",
7520 "type" : "string",
7521 "typetext" : "<string>"
7522 }
7523 }
7524 },
7525 "permissions" : {
7526 "check" : [
7527 "perm",
7528 "/sdn/controllers",
7529 [
7530 "SDN.Allocate"
7531 ]
7532 ]
7533 },
7534 "protected" : 1,
7535 "returns" : {
7536 "type" : "null"
7537 }
7538 },
7539 "GET" : {
7540 "allowtoken" : 1,
7541 "description" : "Read sdn controller configuration.",
7542 "method" : "GET",
7543 "name" : "read",
7544 "parameters" : {
7545 "additionalProperties" : 0,
7546 "properties" : {
7547 "controller" : {
7548 "description" : "The SDN controller object identifier.",
7549 "format" : "pve-sdn-controller-id",
7550 "type" : "string",
7551 "typetext" : "<string>"
d2656385
TL
7552 },
7553 "pending" : {
7554 "description" : "Display pending config.",
7555 "optional" : 1,
7556 "type" : "boolean",
7557 "typetext" : "<boolean>"
7558 },
7559 "running" : {
7560 "description" : "Display running config.",
7561 "optional" : 1,
7562 "type" : "boolean",
7563 "typetext" : "<boolean>"
c5aa7e14
TL
7564 }
7565 }
7566 },
7567 "permissions" : {
7568 "check" : [
7569 "perm",
7570 "/sdn/controllers/{controller}",
7571 [
7572 "SDN.Allocate"
7573 ]
7574 ]
7575 },
7576 "returns" : {
7577 "type" : "object"
7578 }
7579 },
7580 "PUT" : {
7581 "allowtoken" : 1,
7582 "description" : "Update sdn controller object configuration.",
7583 "method" : "PUT",
7584 "name" : "update",
7585 "parameters" : {
7586 "additionalProperties" : 0,
7587 "properties" : {
7588 "asn" : {
7589 "description" : "autonomous system number",
c30bb419
TL
7590 "maximum" : 4294967296,
7591 "minimum" : 0,
c5aa7e14
TL
7592 "optional" : 1,
7593 "type" : "integer",
c30bb419
TL
7594 "typetext" : "<integer> (0 - 4294967296)"
7595 },
7596 "bgp-multipath-as-path-relax" : {
7597 "optional" : 1,
7598 "type" : "boolean",
7599 "typetext" : "<boolean>"
c5aa7e14
TL
7600 },
7601 "controller" : {
7602 "description" : "The SDN controller object identifier.",
7603 "format" : "pve-sdn-controller-id",
7604 "type" : "string",
7605 "typetext" : "<string>"
7606 },
7607 "delete" : {
7608 "description" : "A list of settings you want to delete.",
7609 "format" : "pve-configid-list",
7610 "maxLength" : 4096,
7611 "optional" : 1,
7612 "type" : "string",
7613 "typetext" : "<string>"
7614 },
7615 "digest" : {
7616 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7617 "maxLength" : 40,
7618 "optional" : 1,
7619 "type" : "string",
7620 "typetext" : "<string>"
7621 },
d2656385
TL
7622 "ebgp" : {
7623 "description" : "Enable ebgp. (remote-as external)",
7624 "optional" : 1,
7625 "type" : "boolean",
7626 "typetext" : "<boolean>"
7627 },
7628 "ebgp-multihop" : {
7629 "optional" : 1,
7630 "type" : "integer",
7631 "typetext" : "<integer>"
7632 },
7633 "loopback" : {
7634 "description" : "source loopback interface.",
c5aa7e14
TL
7635 "optional" : 1,
7636 "type" : "string",
7637 "typetext" : "<string>"
7638 },
d2656385
TL
7639 "node" : {
7640 "description" : "The cluster node name.",
7641 "format" : "pve-node",
c5aa7e14
TL
7642 "optional" : 1,
7643 "type" : "string",
7644 "typetext" : "<string>"
7645 },
7646 "peers" : {
7647 "description" : "peers address list.",
7648 "format" : "ip-list",
7649 "optional" : 1,
7650 "type" : "string",
7651 "typetext" : "<string>"
7652 }
7653 },
7654 "type" : "object"
7655 },
7656 "permissions" : {
7657 "check" : [
7658 "perm",
7659 "/sdn/controllers",
7660 [
7661 "SDN.Allocate"
7662 ]
7663 ]
7664 },
7665 "protected" : 1,
7666 "returns" : {
7667 "type" : "null"
7668 }
7669 }
7670 },
7671 "leaf" : 1,
7672 "path" : "/cluster/sdn/controllers/{controller}",
7673 "text" : "{controller}"
7674 }
7675 ],
7676 "info" : {
7677 "GET" : {
7678 "allowtoken" : 1,
7679 "description" : "SDN controllers index.",
7680 "method" : "GET",
7681 "name" : "index",
7682 "parameters" : {
7683 "additionalProperties" : 0,
7684 "properties" : {
d2656385
TL
7685 "pending" : {
7686 "description" : "Display pending config.",
7687 "optional" : 1,
7688 "type" : "boolean",
7689 "typetext" : "<boolean>"
7690 },
7691 "running" : {
7692 "description" : "Display running config.",
7693 "optional" : 1,
7694 "type" : "boolean",
7695 "typetext" : "<boolean>"
7696 },
c5aa7e14
TL
7697 "type" : {
7698 "description" : "Only list sdn controllers of specific type",
7699 "enum" : [
d2656385 7700 "bgp",
c5aa7e14
TL
7701 "evpn",
7702 "faucet"
7703 ],
7704 "optional" : 1,
7705 "type" : "string"
7706 }
7707 }
7708 },
7709 "permissions" : {
7710 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/controllers/<controller>'",
7711 "user" : "all"
7712 },
7713 "returns" : {
7714 "items" : {
7715 "properties" : {
7716 "controller" : {
7717 "type" : "string"
7718 },
d2656385
TL
7719 "pending" : {
7720 "optional" : 1
7721 },
7722 "state" : {
7723 "optional" : 1,
7724 "type" : "string"
7725 },
c5aa7e14
TL
7726 "type" : {
7727 "type" : "string"
7728 }
7729 },
7730 "type" : "object"
7731 },
7732 "links" : [
7733 {
7734 "href" : "{controller}",
7735 "rel" : "child"
7736 }
7737 ],
7738 "type" : "array"
7739 }
7740 },
7741 "POST" : {
7742 "allowtoken" : 1,
7743 "description" : "Create a new sdn controller object.",
7744 "method" : "POST",
7745 "name" : "create",
7746 "parameters" : {
7747 "additionalProperties" : 0,
7748 "properties" : {
7749 "asn" : {
7750 "description" : "autonomous system number",
c30bb419
TL
7751 "maximum" : 4294967296,
7752 "minimum" : 0,
c5aa7e14
TL
7753 "optional" : 1,
7754 "type" : "integer",
c30bb419
TL
7755 "typetext" : "<integer> (0 - 4294967296)"
7756 },
7757 "bgp-multipath-as-path-relax" : {
7758 "optional" : 1,
7759 "type" : "boolean",
7760 "typetext" : "<boolean>"
c5aa7e14
TL
7761 },
7762 "controller" : {
7763 "description" : "The SDN controller object identifier.",
7764 "format" : "pve-sdn-controller-id",
7765 "type" : "string",
7766 "typetext" : "<string>"
7767 },
d2656385
TL
7768 "ebgp" : {
7769 "description" : "Enable ebgp. (remote-as external)",
7770 "optional" : 1,
7771 "type" : "boolean",
7772 "typetext" : "<boolean>"
7773 },
7774 "ebgp-multihop" : {
7775 "optional" : 1,
7776 "type" : "integer",
7777 "typetext" : "<integer>"
7778 },
7779 "loopback" : {
7780 "description" : "source loopback interface.",
c5aa7e14
TL
7781 "optional" : 1,
7782 "type" : "string",
7783 "typetext" : "<string>"
7784 },
d2656385
TL
7785 "node" : {
7786 "description" : "The cluster node name.",
7787 "format" : "pve-node",
c5aa7e14
TL
7788 "optional" : 1,
7789 "type" : "string",
7790 "typetext" : "<string>"
7791 },
7792 "peers" : {
7793 "description" : "peers address list.",
7794 "format" : "ip-list",
7795 "optional" : 1,
7796 "type" : "string",
7797 "typetext" : "<string>"
7798 },
7799 "type" : {
7800 "description" : "Plugin type.",
7801 "enum" : [
d2656385 7802 "bgp",
c5aa7e14
TL
7803 "evpn",
7804 "faucet"
7805 ],
7806 "format" : "pve-configid",
7807 "type" : "string"
7808 }
7809 },
7810 "type" : "object"
7811 },
7812 "permissions" : {
7813 "check" : [
7814 "perm",
7815 "/sdn/controllers",
7816 [
7817 "SDN.Allocate"
7818 ]
7819 ]
7820 },
7821 "protected" : 1,
7822 "returns" : {
7823 "type" : "null"
7824 }
7825 }
7826 },
7827 "leaf" : 0,
7828 "path" : "/cluster/sdn/controllers",
7829 "text" : "controllers"
d2656385
TL
7830 },
7831 {
7832 "children" : [
7833 {
7834 "info" : {
7835 "DELETE" : {
7836 "allowtoken" : 1,
7837 "description" : "Delete sdn ipam object configuration.",
7838 "method" : "DELETE",
7839 "name" : "delete",
7840 "parameters" : {
7841 "additionalProperties" : 0,
7842 "properties" : {
7843 "ipam" : {
7844 "description" : "The SDN ipam object identifier.",
7845 "format" : "pve-sdn-ipam-id",
7846 "type" : "string",
7847 "typetext" : "<string>"
7848 }
7849 }
7850 },
7851 "permissions" : {
7852 "check" : [
7853 "perm",
7854 "/sdn/ipams",
7855 [
7856 "SDN.Allocate"
7857 ]
7858 ]
7859 },
7860 "protected" : 1,
7861 "returns" : {
7862 "type" : "null"
7863 }
7864 },
7865 "GET" : {
7866 "allowtoken" : 1,
7867 "description" : "Read sdn ipam configuration.",
7868 "method" : "GET",
7869 "name" : "read",
7870 "parameters" : {
7871 "additionalProperties" : 0,
7872 "properties" : {
7873 "ipam" : {
7874 "description" : "The SDN ipam object identifier.",
7875 "format" : "pve-sdn-ipam-id",
7876 "type" : "string",
7877 "typetext" : "<string>"
7878 }
7879 }
7880 },
7881 "permissions" : {
7882 "check" : [
7883 "perm",
7884 "/sdn/ipams/{ipam}",
7885 [
7886 "SDN.Allocate"
7887 ]
7888 ]
7889 },
7890 "returns" : {
7891 "type" : "object"
7892 }
7893 },
7894 "PUT" : {
7895 "allowtoken" : 1,
7896 "description" : "Update sdn ipam object configuration.",
7897 "method" : "PUT",
7898 "name" : "update",
7899 "parameters" : {
7900 "additionalProperties" : 0,
7901 "properties" : {
7902 "delete" : {
7903 "description" : "A list of settings you want to delete.",
7904 "format" : "pve-configid-list",
7905 "maxLength" : 4096,
7906 "optional" : 1,
7907 "type" : "string",
7908 "typetext" : "<string>"
7909 },
7910 "digest" : {
7911 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7912 "maxLength" : 40,
7913 "optional" : 1,
7914 "type" : "string",
7915 "typetext" : "<string>"
7916 },
7917 "ipam" : {
7918 "description" : "The SDN ipam object identifier.",
7919 "format" : "pve-sdn-ipam-id",
7920 "type" : "string",
7921 "typetext" : "<string>"
7922 },
7923 "section" : {
7924 "optional" : 1,
7925 "type" : "integer",
7926 "typetext" : "<integer>"
7927 },
7928 "token" : {
7929 "optional" : 1,
7930 "type" : "string",
7931 "typetext" : "<string>"
7932 },
7933 "url" : {
7934 "optional" : 1,
7935 "type" : "string",
7936 "typetext" : "<string>"
7937 }
7938 },
7939 "type" : "object"
7940 },
7941 "permissions" : {
7942 "check" : [
7943 "perm",
7944 "/sdn/ipams",
7945 [
7946 "SDN.Allocate"
7947 ]
7948 ]
7949 },
7950 "protected" : 1,
7951 "returns" : {
7952 "type" : "null"
7953 }
c5aa7e14
TL
7954 }
7955 },
d2656385
TL
7956 "leaf" : 1,
7957 "path" : "/cluster/sdn/ipams/{ipam}",
7958 "text" : "{ipam}"
7aacca6f 7959 }
d2656385
TL
7960 ],
7961 "info" : {
7962 "GET" : {
7963 "allowtoken" : 1,
7964 "description" : "SDN ipams index.",
7965 "method" : "GET",
7966 "name" : "index",
7967 "parameters" : {
7968 "additionalProperties" : 0,
7969 "properties" : {
7970 "type" : {
7971 "description" : "Only list sdn ipams of specific type",
7972 "enum" : [
7973 "netbox",
7974 "phpipam",
7975 "pve"
7976 ],
7977 "optional" : 1,
7978 "type" : "string"
7979 }
7980 }
7981 },
7982 "permissions" : {
7983 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/ipams/<ipam>'",
7984 "user" : "all"
7985 },
7986 "returns" : {
7987 "items" : {
7988 "properties" : {
7989 "ipam" : {
7990 "type" : "string"
7991 },
7992 "type" : {
7993 "type" : "string"
7994 }
7995 },
7996 "type" : "object"
7997 },
7998 "links" : [
7999 {
8000 "href" : "{ipam}",
8001 "rel" : "child"
8002 }
44660702 8003 ],
d2656385
TL
8004 "type" : "array"
8005 }
8006 },
8007 "POST" : {
8008 "allowtoken" : 1,
8009 "description" : "Create a new sdn ipam object.",
8010 "method" : "POST",
8011 "name" : "create",
8012 "parameters" : {
8013 "additionalProperties" : 0,
8014 "properties" : {
8015 "ipam" : {
8016 "description" : "The SDN ipam object identifier.",
8017 "format" : "pve-sdn-ipam-id",
8018 "type" : "string",
8019 "typetext" : "<string>"
8020 },
8021 "section" : {
8022 "optional" : 1,
8023 "type" : "integer",
8024 "typetext" : "<integer>"
8025 },
8026 "token" : {
8027 "optional" : 1,
8028 "type" : "string",
8029 "typetext" : "<string>"
8030 },
8031 "type" : {
8032 "description" : "Plugin type.",
8033 "enum" : [
8034 "netbox",
8035 "phpipam",
8036 "pve"
8037 ],
8038 "format" : "pve-configid",
8039 "type" : "string"
8040 },
8041 "url" : {
8042 "optional" : 1,
8043 "type" : "string",
8044 "typetext" : "<string>"
8045 }
8046 },
8047 "type" : "object"
8048 },
8049 "permissions" : {
8050 "check" : [
8051 "perm",
8052 "/sdn/ipams",
8053 [
8054 "SDN.Allocate"
8055 ]
8056 ]
8057 },
8058 "protected" : 1,
8059 "returns" : {
8060 "type" : "null"
56122987
DM
8061 }
8062 }
8063 },
d2656385
TL
8064 "leaf" : 0,
8065 "path" : "/cluster/sdn/ipams",
8066 "text" : "ipams"
8067 },
8068 {
8069 "children" : [
8070 {
8071 "info" : {
8072 "DELETE" : {
8073 "allowtoken" : 1,
8074 "description" : "Delete sdn dns object configuration.",
8075 "method" : "DELETE",
8076 "name" : "delete",
8077 "parameters" : {
8078 "additionalProperties" : 0,
8079 "properties" : {
8080 "dns" : {
8081 "description" : "The SDN dns object identifier.",
8082 "format" : "pve-sdn-dns-id",
8083 "type" : "string",
8084 "typetext" : "<string>"
8085 }
8086 }
8087 },
8088 "permissions" : {
8089 "check" : [
8090 "perm",
8091 "/sdn/dns",
8092 [
8093 "SDN.Allocate"
8094 ]
8095 ]
8096 },
8097 "protected" : 1,
8098 "returns" : {
8099 "type" : "null"
8100 }
8101 },
8102 "GET" : {
8103 "allowtoken" : 1,
8104 "description" : "Read sdn dns configuration.",
8105 "method" : "GET",
8106 "name" : "read",
8107 "parameters" : {
8108 "additionalProperties" : 0,
8109 "properties" : {
8110 "dns" : {
8111 "description" : "The SDN dns object identifier.",
8112 "format" : "pve-sdn-dns-id",
8113 "type" : "string",
8114 "typetext" : "<string>"
8115 }
8116 }
8117 },
8118 "permissions" : {
8119 "check" : [
8120 "perm",
8121 "/sdn/dns/{dns}",
8122 [
8123 "SDN.Allocate"
8124 ]
8125 ]
8126 },
8127 "returns" : {
8128 "type" : "object"
8129 }
8130 },
8131 "PUT" : {
8132 "allowtoken" : 1,
8133 "description" : "Update sdn dns object configuration.",
8134 "method" : "PUT",
8135 "name" : "update",
8136 "parameters" : {
8137 "additionalProperties" : 0,
8138 "properties" : {
8139 "delete" : {
8140 "description" : "A list of settings you want to delete.",
8141 "format" : "pve-configid-list",
8142 "maxLength" : 4096,
8143 "optional" : 1,
8144 "type" : "string",
8145 "typetext" : "<string>"
8146 },
8147 "digest" : {
8148 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
8149 "maxLength" : 40,
8150 "optional" : 1,
8151 "type" : "string",
8152 "typetext" : "<string>"
8153 },
8154 "dns" : {
8155 "description" : "The SDN dns object identifier.",
8156 "format" : "pve-sdn-dns-id",
8157 "type" : "string",
8158 "typetext" : "<string>"
8159 },
8160 "key" : {
8161 "optional" : 1,
8162 "type" : "string",
8163 "typetext" : "<string>"
8164 },
8165 "reversemaskv6" : {
8166 "optional" : 1,
8167 "type" : "integer",
8168 "typetext" : "<integer>"
8169 },
8170 "ttl" : {
8171 "optional" : 1,
8172 "type" : "integer",
8173 "typetext" : "<integer>"
8174 },
8175 "url" : {
8176 "optional" : 1,
8177 "type" : "string",
8178 "typetext" : "<string>"
8179 }
8180 },
8181 "type" : "object"
8182 },
8183 "permissions" : {
8184 "check" : [
8185 "perm",
8186 "/sdn/dns",
8187 [
8188 "SDN.Allocate"
8189 ]
8190 ]
8191 },
8192 "protected" : 1,
8193 "returns" : {
8194 "type" : "null"
8195 }
8196 }
8197 },
8198 "leaf" : 1,
8199 "path" : "/cluster/sdn/dns/{dns}",
8200 "text" : "{dns}"
8201 }
8202 ],
8203 "info" : {
8204 "GET" : {
8205 "allowtoken" : 1,
8206 "description" : "SDN dns index.",
8207 "method" : "GET",
8208 "name" : "index",
8209 "parameters" : {
8210 "additionalProperties" : 0,
8211 "properties" : {
8212 "type" : {
8213 "description" : "Only list sdn dns of specific type",
8214 "enum" : [
8215 "powerdns"
8216 ],
8217 "optional" : 1,
8218 "type" : "string"
8219 }
8220 }
8221 },
8222 "permissions" : {
8223 "description" : "Only list entries where you have 'SDN.Audit' or 'SDN.Allocate' permissions on '/sdn/dns/<dns>'",
8224 "user" : "all"
8225 },
8226 "returns" : {
8227 "items" : {
8228 "properties" : {
8229 "dns" : {
8230 "type" : "string"
8231 },
8232 "type" : {
8233 "type" : "string"
8234 }
8235 },
8236 "type" : "object"
8237 },
8238 "links" : [
8239 {
8240 "href" : "{dns}",
8241 "rel" : "child"
8242 }
8243 ],
8244 "type" : "array"
8245 }
8246 },
8247 "POST" : {
8248 "allowtoken" : 1,
8249 "description" : "Create a new sdn dns object.",
8250 "method" : "POST",
8251 "name" : "create",
8252 "parameters" : {
8253 "additionalProperties" : 0,
8254 "properties" : {
8255 "dns" : {
8256 "description" : "The SDN dns object identifier.",
8257 "format" : "pve-sdn-dns-id",
8258 "type" : "string",
8259 "typetext" : "<string>"
8260 },
8261 "key" : {
8262 "optional" : 0,
8263 "type" : "string",
8264 "typetext" : "<string>"
8265 },
8266 "reversemaskv6" : {
8267 "optional" : 1,
8268 "type" : "integer",
8269 "typetext" : "<integer>"
8270 },
8271 "reversev6mask" : {
8272 "optional" : 1,
8273 "type" : "integer",
8274 "typetext" : "<integer>"
8275 },
8276 "ttl" : {
8277 "optional" : 1,
8278 "type" : "integer",
8279 "typetext" : "<integer>"
8280 },
8281 "type" : {
8282 "description" : "Plugin type.",
8283 "enum" : [
8284 "powerdns"
8285 ],
8286 "format" : "pve-configid",
8287 "type" : "string"
8288 },
8289 "url" : {
8290 "optional" : 0,
8291 "type" : "string",
8292 "typetext" : "<string>"
8293 }
8294 },
8295 "type" : "object"
8296 },
8297 "permissions" : {
8298 "check" : [
8299 "perm",
8300 "/sdn/dns",
8301 [
8302 "SDN.Allocate"
8303 ]
8304 ]
8305 },
8306 "protected" : 1,
8307 "returns" : {
8308 "type" : "null"
8309 }
8310 }
8311 },
8312 "leaf" : 0,
8313 "path" : "/cluster/sdn/dns",
8314 "text" : "dns"
8315 }
8316 ],
8317 "info" : {
8318 "GET" : {
8319 "allowtoken" : 1,
8320 "description" : "Directory index.",
8321 "method" : "GET",
8322 "name" : "index",
8323 "parameters" : {
8324 "additionalProperties" : 0
8325 },
8326 "permissions" : {
8327 "check" : [
8328 "perm",
8329 "/",
8330 [
8331 "SDN.Audit"
8332 ]
8333 ]
8334 },
8335 "returns" : {
8336 "items" : {
8337 "properties" : {
8338 "id" : {
8339 "type" : "string"
8340 }
8341 },
8342 "type" : "object"
8343 },
8344 "links" : [
8345 {
8346 "href" : "{id}",
8347 "rel" : "child"
8348 }
8349 ],
8350 "type" : "array"
8351 }
8352 },
8353 "PUT" : {
8354 "allowtoken" : 1,
8355 "description" : "Apply sdn controller changes && reload.",
8356 "method" : "PUT",
8357 "name" : "reload",
8358 "parameters" : {
8359 "additionalProperties" : 0
8360 },
8361 "permissions" : {
8362 "check" : [
8363 "perm",
8364 "/sdn",
8365 [
8366 "SDN.Allocate"
8367 ]
8368 ]
8369 },
8370 "protected" : 1,
8371 "returns" : {
8372 "type" : "string"
8373 }
8374 }
8375 },
8376 "leaf" : 0,
8377 "path" : "/cluster/sdn",
8378 "text" : "sdn"
8379 },
8380 {
8381 "info" : {
8382 "GET" : {
8383 "allowtoken" : 1,
8384 "description" : "Read cluster log",
8385 "method" : "GET",
8386 "name" : "log",
8387 "parameters" : {
8388 "additionalProperties" : 0,
8389 "properties" : {
8390 "max" : {
8391 "description" : "Maximum number of entries.",
8392 "minimum" : 1,
8393 "optional" : 1,
8394 "type" : "integer",
8395 "typetext" : "<integer> (1 - N)"
8396 }
8397 }
8398 },
8399 "permissions" : {
8400 "user" : "all"
8401 },
8402 "returns" : {
8403 "items" : {
8404 "properties" : {},
8405 "type" : "object"
8406 },
8407 "type" : "array"
8408 }
8409 }
8410 },
8411 "leaf" : 1,
8412 "path" : "/cluster/log",
8413 "text" : "log"
8414 },
8415 {
8416 "info" : {
8417 "GET" : {
8418 "allowtoken" : 1,
8419 "description" : "Resources index (cluster wide).",
8420 "method" : "GET",
8421 "name" : "resources",
8422 "parameters" : {
8423 "additionalProperties" : 0,
8424 "properties" : {
8425 "type" : {
8426 "enum" : [
8427 "vm",
8428 "storage",
8429 "node",
8430 "sdn"
8431 ],
8432 "optional" : 1,
8433 "type" : "string"
8434 }
8435 }
8436 },
8437 "permissions" : {
8438 "user" : "all"
8439 },
8440 "returns" : {
8441 "items" : {
8442 "properties" : {
81a3384d
TL
8443 "cgroup-mode" : {
8444 "description" : "The cgroup mode the node operates under (when type == node).",
8445 "optional" : 1,
8446 "type" : "integer"
8447 },
d2656385
TL
8448 "content" : {
8449 "description" : "Allowed storage content types (when type == storage).",
8450 "format" : "pve-storage-content-list",
8451 "optional" : 1,
8452 "type" : "string"
8453 },
8454 "cpu" : {
8455 "description" : "CPU utilization (when type in node,qemu,lxc).",
4e7f60c2 8456 "minimum" : 0,
4d47f125
TL
8457 "optional" : 1,
8458 "renderer" : "fraction_as_percentage",
8459 "type" : "number"
8460 },
8461 "disk" : {
8462 "description" : "Used disk space in bytes (when type in storage), used root image spave for VMs (type in qemu,lxc).",
4e7f60c2 8463 "minimum" : 0,
4d47f125
TL
8464 "optional" : 1,
8465 "renderer" : "bytes",
4e7f60c2 8466 "type" : "integer"
4d47f125
TL
8467 },
8468 "hastate" : {
8469 "description" : "HA service status (for HA managed VMs).",
8470 "optional" : 1,
8471 "type" : "string"
8472 },
8473 "id" : {
8474 "type" : "string"
8475 },
8476 "level" : {
8477 "description" : "Support level (when type == node).",
8478 "optional" : 1,
8479 "type" : "string"
8480 },
8481 "maxcpu" : {
8482 "description" : "Number of available CPUs (when type in node,qemu,lxc).",
4e7f60c2 8483 "minimum" : 0,
4d47f125
TL
8484 "optional" : 1,
8485 "type" : "number"
8486 },
8487 "maxdisk" : {
8488 "description" : "Storage size in bytes (when type in storage), root image size for VMs (type in qemu,lxc).",
4e7f60c2 8489 "minimum" : 0,
4d47f125
TL
8490 "optional" : 1,
8491 "renderer" : "bytes",
8492 "type" : "integer"
8493 },
8494 "maxmem" : {
8495 "description" : "Number of available memory in bytes (when type in node,qemu,lxc).",
8496 "optional" : 1,
8497 "renderer" : "bytes",
8498 "type" : "integer"
8499 },
8500 "mem" : {
8501 "description" : "Used memory in bytes (when type in node,qemu,lxc).",
4e7f60c2 8502 "minimum" : 0,
4d47f125
TL
8503 "optional" : 1,
8504 "renderer" : "bytes",
4e7f60c2 8505 "type" : "integer"
4d47f125 8506 },
34f3e481
TL
8507 "name" : {
8508 "description" : "Name of the resource.",
8509 "optional" : 1,
8510 "type" : "string"
8511 },
4d47f125
TL
8512 "node" : {
8513 "description" : "The cluster node name (when type in node,storage,qemu,lxc).",
8514 "format" : "pve-node",
8515 "optional" : 1,
8516 "type" : "string"
8517 },
d2656385
TL
8518 "plugintype" : {
8519 "description" : "More specific type, if available.",
8520 "optional" : 1,
8521 "type" : "string"
8522 },
4d47f125
TL
8523 "pool" : {
8524 "description" : "The pool name (when type in pool,qemu,lxc).",
8525 "optional" : 1,
8526 "type" : "string"
8527 },
8528 "status" : {
8529 "description" : "Resource type dependent status.",
8530 "optional" : 1,
8531 "type" : "string"
8532 },
8533 "storage" : {
8534 "description" : "The storage identifier (when type == storage).",
8535 "format" : "pve-storage-id",
8536 "optional" : 1,
8537 "type" : "string"
8538 },
8539 "type" : {
8540 "description" : "Resource type.",
8541 "enum" : [
8542 "node",
8543 "storage",
8544 "pool",
8545 "qemu",
8546 "lxc",
1c532546
TL
8547 "openvz",
8548 "sdn"
4d47f125
TL
8549 ],
8550 "type" : "string"
8551 },
8552 "uptime" : {
8553 "description" : "Node uptime in seconds (when type in node,qemu,lxc).",
8554 "optional" : 1,
8555 "renderer" : "duration",
8556 "type" : "integer"
4e7f60c2
TL
8557 },
8558 "vmid" : {
8559 "description" : "The numerical vmid (when type in qemu,lxc).",
8560 "minimum" : 1,
8561 "optional" : 1,
8562 "type" : "integer"
4d47f125
TL
8563 }
8564 },
44660702
DM
8565 "type" : "object"
8566 },
8567 "type" : "array"
8568 }
56122987
DM
8569 }
8570 },
7aacca6f 8571 "leaf" : 1,
44660702
DM
8572 "path" : "/cluster/resources",
8573 "text" : "resources"
56122987
DM
8574 },
8575 {
56122987
DM
8576 "info" : {
8577 "GET" : {
e9cd3bd4 8578 "allowtoken" : 1,
7aacca6f 8579 "description" : "List recent tasks (cluster wide).",
44660702 8580 "method" : "GET",
7aacca6f 8581 "name" : "tasks",
56122987
DM
8582 "parameters" : {
8583 "additionalProperties" : 0
8584 },
44660702
DM
8585 "permissions" : {
8586 "user" : "all"
8587 },
56122987
DM
8588 "returns" : {
8589 "items" : {
8590 "properties" : {
8591 "upid" : {
8592 "type" : "string"
8593 }
44660702
DM
8594 },
8595 "type" : "object"
8596 },
8597 "type" : "array"
7aacca6f 8598 }
56122987
DM
8599 }
8600 },
7aacca6f 8601 "leaf" : 1,
44660702
DM
8602 "path" : "/cluster/tasks",
8603 "text" : "tasks"
56122987
DM
8604 },
8605 {
56122987 8606 "info" : {
7aacca6f 8607 "GET" : {
e9cd3bd4 8608 "allowtoken" : 1,
81a3384d 8609 "description" : "Get datacenter options. Without 'Sys.Audit' on '/' not all options are returned.",
44660702
DM
8610 "method" : "GET",
8611 "name" : "get_options",
56122987 8612 "parameters" : {
7aacca6f
DM
8613 "additionalProperties" : 0
8614 },
8615 "permissions" : {
8616 "check" : [
8617 "perm",
8618 "/",
8619 [
8620 "Sys.Audit"
8621 ]
81a3384d
TL
8622 ],
8623 "user" : "all"
7aacca6f 8624 },
7aacca6f 8625 "returns" : {
44660702 8626 "type" : "object"
7aacca6f
DM
8627 }
8628 },
8629 "PUT" : {
e9cd3bd4 8630 "allowtoken" : 1,
44660702
DM
8631 "description" : "Set datacenter options.",
8632 "method" : "PUT",
7aacca6f
DM
8633 "name" : "set_options",
8634 "parameters" : {
8635 "additionalProperties" : 0,
8636 "properties" : {
27a7acb2
DM
8637 "bwlimit" : {
8638 "description" : "Set bandwidth/io limits various operations.",
8639 "format" : {
8640 "clone" : {
95895385 8641 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
8642 "format_description" : "LIMIT",
8643 "minimum" : "0",
8644 "optional" : 1,
8645 "type" : "number"
8646 },
8647 "default" : {
95895385 8648 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
8649 "format_description" : "LIMIT",
8650 "minimum" : "0",
8651 "optional" : 1,
8652 "type" : "number"
8653 },
8654 "migration" : {
95895385 8655 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
8656 "format_description" : "LIMIT",
8657 "minimum" : "0",
8658 "optional" : 1,
8659 "type" : "number"
8660 },
8661 "move" : {
95895385 8662 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
8663 "format_description" : "LIMIT",
8664 "minimum" : "0",
8665 "optional" : 1,
8666 "type" : "number"
8667 },
8668 "restore" : {
95895385 8669 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
8670 "format_description" : "LIMIT",
8671 "minimum" : "0",
8672 "optional" : 1,
8673 "type" : "number"
8674 }
8675 },
8676 "optional" : 1,
8677 "type" : "string",
8678 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
8679 },
56122987 8680 "console" : {
a9a8e3d1 8681 "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
8682 "enum" : [
8683 "applet",
8684 "vv",
a9a8e3d1
DM
8685 "html5",
8686 "xtermjs"
44660702
DM
8687 ],
8688 "optional" : 1,
8689 "type" : "string"
56122987 8690 },
81a3384d
TL
8691 "crs" : {
8692 "description" : "Cluster resource scheduling settings.",
8693 "format" : {
8694 "ha" : {
8695 "default" : "basic",
8696 "description" : "Use this resource scheduler mode for HA.",
8697 "enum" : [
8698 "basic",
8699 "static"
8700 ],
8701 "type" : "string",
8702 "verbose_description" : "Configures how the HA manager should select nodes to start or recover services. With 'basic', only the number of services is used, with 'static', static CPU and memory configuration of services is considered."
8703 }
8704 },
8705 "optional" : 1,
8706 "type" : "string",
8707 "typetext" : "ha=<basic|static>"
8708 },
7aacca6f 8709 "delete" : {
7aacca6f 8710 "description" : "A list of settings you want to delete.",
44660702 8711 "format" : "pve-configid-list",
7aacca6f 8712 "optional" : 1,
013dc89f
DM
8713 "type" : "string",
8714 "typetext" : "<string>"
7aacca6f 8715 },
5370fa8c
TL
8716 "description" : {
8717 "description" : "Datacenter description. Shown in the web-interface datacenter notes panel. This is saved as comment inside the configuration file.",
8718 "maxLength" : 65536,
8719 "optional" : 1,
8720 "type" : "string",
8721 "typetext" : "<string>"
8722 },
44660702
DM
8723 "email_from" : {
8724 "description" : "Specify email address to send notification from (default is root@$hostname)",
8725 "format" : "email-opt",
7aacca6f 8726 "optional" : 1,
013dc89f
DM
8727 "type" : "string",
8728 "typetext" : "<string>"
44660702
DM
8729 },
8730 "fencing" : {
8731 "default" : "watchdog",
8732 "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 8733 "enum" : [
44660702
DM
8734 "watchdog",
8735 "hardware",
8736 "both"
7aacca6f 8737 ],
44660702
DM
8738 "optional" : 1,
8739 "type" : "string"
8740 },
5f26e15b
TL
8741 "ha" : {
8742 "description" : "Cluster wide HA settings.",
8743 "format" : {
8744 "shutdown_policy" : {
8745 "default" : "conditional",
5c1699e5 8746 "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
8747 "enum" : [
8748 "freeze",
8749 "failover",
5c1699e5
TL
8750 "conditional",
8751 "migrate"
5f26e15b
TL
8752 ],
8753 "type" : "string",
e9cd3bd4 8754 "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
8755 }
8756 },
8757 "optional" : 1,
8758 "type" : "string",
5c1699e5 8759 "typetext" : "shutdown_policy=<enum>"
5f26e15b 8760 },
44660702
DM
8761 "http_proxy" : {
8762 "description" : "Specify external http proxy which is used for downloads (example: 'http://username:password@host:port/')",
8763 "optional" : 1,
8764 "pattern" : "http://.*",
8765 "type" : "string"
7aacca6f 8766 },
56122987 8767 "keyboard" : {
44660702 8768 "description" : "Default keybord layout for vnc server.",
56122987 8769 "enum" : [
44660702
DM
8770 "de",
8771 "de-ch",
7aacca6f 8772 "da",
56122987 8773 "en-gb",
44660702
DM
8774 "en-us",
8775 "es",
8776 "fi",
8777 "fr",
8778 "fr-be",
8779 "fr-ca",
8780 "fr-ch",
8781 "hu",
7aacca6f 8782 "is",
44660702
DM
8783 "it",
8784 "ja",
8785 "lt",
56122987 8786 "mk",
7aacca6f 8787 "nl",
56122987 8788 "no",
44660702 8789 "pl",
7aacca6f 8790 "pt",
44660702
DM
8791 "pt-br",
8792 "sv",
8793 "sl",
8794 "tr"
56122987 8795 ],
56122987
DM
8796 "optional" : 1,
8797 "type" : "string"
8798 },
44660702
DM
8799 "language" : {
8800 "description" : "Default GUI language.",
8801 "enum" : [
4d47f125 8802 "ca",
1c532546
TL
8803 "da",
8804 "de",
44660702 8805 "en",
1c532546 8806 "es",
4d47f125 8807 "eu",
1c532546 8808 "fa",
4d47f125 8809 "fr",
1c532546 8810 "he",
4d47f125 8811 "it",
4d47f125
TL
8812 "ja",
8813 "nb",
8814 "nn",
4d47f125
TL
8815 "pl",
8816 "pt_BR",
8817 "ru",
8818 "sl",
8819 "sv",
1c532546
TL
8820 "tr",
8821 "zh_CN",
8822 "zh_TW"
44660702 8823 ],
56122987 8824 "optional" : 1,
44660702 8825 "type" : "string"
56122987 8826 },
4bd7df8b
DM
8827 "mac_prefix" : {
8828 "description" : "Prefix for autogenerated MAC addresses.",
95895385 8829 "format" : "mac-prefix",
4bd7df8b 8830 "optional" : 1,
95895385
TL
8831 "type" : "string",
8832 "typetext" : "<string>"
4bd7df8b 8833 },
44660702
DM
8834 "max_workers" : {
8835 "description" : "Defines how many workers (per node) are maximal started on actions like 'stopall VMs' or task from the ha-manager.",
8836 "minimum" : 1,
56122987 8837 "optional" : 1,
4bd7df8b 8838 "type" : "integer",
013dc89f 8839 "typetext" : "<integer> (1 - N)"
56122987 8840 },
de0983cb
DM
8841 "migration" : {
8842 "description" : "For cluster wide migration settings.",
8843 "format" : {
8844 "network" : {
8845 "description" : "CIDR of the (sub) network that is used for migration.",
8846 "format" : "CIDR",
8847 "format_description" : "CIDR",
8848 "optional" : 1,
8849 "type" : "string"
8850 },
8851 "type" : {
8852 "default" : "secure",
8853 "default_key" : 1,
8854 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
8855 "enum" : [
8856 "secure",
8857 "insecure"
8858 ],
8859 "type" : "string"
8860 }
8861 },
8862 "optional" : 1,
8863 "type" : "string",
8864 "typetext" : "[type=]<secure|insecure> [,network=<CIDR>]"
8865 },
7aacca6f 8866 "migration_unsecure" : {
de0983cb 8867 "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 8868 "optional" : 1,
013dc89f
DM
8869 "type" : "boolean",
8870 "typetext" : "<boolean>"
95895385 8871 },
7af2edf9
TL
8872 "next-id" : {
8873 "description" : "Control the range for the free VMID auto-selection pool.",
8874 "format" : {
8875 "lower" : {
8876 "default" : 100,
8877 "description" : "Lower, inclusive boundary for free next-id API range.",
8878 "max" : 999999999,
8879 "min" : 100,
8880 "optional" : 1,
8881 "type" : "integer"
8882 },
8883 "upper" : {
8884 "default" : 1000000,
460359c5 8885 "description" : "Upper, exclusive boundary for free next-id API range.",
de786b48 8886 "max" : 1000000000,
7af2edf9
TL
8887 "min" : 100,
8888 "optional" : 1,
8889 "type" : "integer"
8890 }
8891 },
8892 "optional" : 1,
8893 "type" : "string",
8894 "typetext" : "[lower=<integer>] [,upper=<integer>]"
8895 },
81a3384d
TL
8896 "registered-tags" : {
8897 "description" : "A list of tags that require a `Sys.Modify` on '/' to set and delete. Tags set here that are also in 'user-tag-access' also require `Sys.Modify`.",
8898 "optional" : 1,
8899 "pattern" : "(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*);)*(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)",
8900 "type" : "string",
8901 "typetext" : "<tag>[;<tag>...]"
8902 },
8903 "tag-style" : {
8904 "description" : "Tag style options.",
8905 "format" : {
e7e885f9
TL
8906 "case-sensitive" : {
8907 "default" : 0,
8908 "description" : "Controls if filtering for unique tags on update should check case-sensitive.",
8909 "optional" : 1,
8910 "type" : "boolean"
8911 },
81a3384d
TL
8912 "color-map" : {
8913 "description" : "Manual color mapping for tags (semicolon separated).",
8914 "optional" : 1,
8915 "pattern" : "(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*):[0-9a-fA-F]{6}(?::[0-9a-fA-F]{6})?)(?:;(?:(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*):[0-9a-fA-F]{6}(?::[0-9a-fA-F]{6})?))*",
8916 "type" : "string",
8917 "typetext" : "<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]"
8918 },
8919 "ordering" : {
8920 "default" : "alphabetical",
e7e885f9 8921 "description" : "Controls the sorting of the tags in the web-interface and the API update.",
81a3384d
TL
8922 "enum" : [
8923 "config",
8924 "alphabetical"
8925 ],
8926 "optional" : 1,
8927 "type" : "string"
8928 },
8929 "shape" : {
8930 "default" : "circle",
8931 "description" : "Tag shape for the web ui tree. 'full' draws the full tag. 'circle' draws only a circle with the background color. 'dense' only draws a small rectancle (useful when many tags are assigned to each guest).'none' disables showing the tags.",
8932 "enum" : [
8933 "full",
8934 "circle",
8935 "dense",
8936 "none"
8937 ],
8938 "optional" : 1,
8939 "type" : "string"
8940 }
8941 },
8942 "optional" : 1,
8943 "type" : "string",
e7e885f9 8944 "typetext" : "[case-sensitive=<1|0>] [,color-map=<tag>:<hex-color>[:<hex-color-for-text>][;<tag>=...]] [,ordering=<config|alphabetical>] [,shape=<enum>]"
81a3384d 8945 },
95895385
TL
8946 "u2f" : {
8947 "description" : "u2f",
8948 "format" : {
8949 "appid" : {
8950 "description" : "U2F AppId URL override. Defaults to the origin.",
8951 "format_description" : "APPID",
8952 "optional" : 1,
8953 "type" : "string"
8954 },
8955 "origin" : {
8956 "description" : "U2F Origin override. Mostly useful for single nodes with a single URL.",
8957 "format_description" : "URL",
8958 "optional" : 1,
8959 "type" : "string"
8960 }
8961 },
8962 "optional" : 1,
8963 "type" : "string",
8964 "typetext" : "[appid=<APPID>] [,origin=<URL>]"
5370fa8c 8965 },
81a3384d
TL
8966 "user-tag-access" : {
8967 "description" : "Privilege options for user-settable tags",
8968 "format" : {
8969 "user-allow" : {
8970 "default" : "free",
8971 "description" : "Controls tag usage for users without `Sys.Modify` on `/` by either allowing `none`, a `list`, already `existing` or anything (`free`).",
8972 "enum" : [
8973 "none",
8974 "list",
8975 "existing",
8976 "free"
8977 ],
8978 "optional" : 1,
8979 "type" : "string",
e7e885f9 8980 "verbose_description" : "Controls which tags can be set or deleted on resources a user controls (such as guests). Users with the `Sys.Modify` privilege on `/` are always unrestricted. 'none' no tags are usable. 'list' tags from 'user-allow-list' are usable. 'existing' like list, but already existing tags of resources are also usable.'free' no tag restrictions."
81a3384d
TL
8981 },
8982 "user-allow-list" : {
8983 "description" : "List of tags users are allowed to set and delete (semicolon separated) for 'user-allow' values 'list' and 'existing'.",
8984 "optional" : 1,
8985 "pattern" : "(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*)(?:;(?^i:[a-z0-9_][a-z0-9_\\-\\+\\.]*))*",
8986 "type" : "string",
8987 "typetext" : "<tag>[;<tag>...]"
8988 }
8989 },
8990 "optional" : 1,
8991 "type" : "string",
8992 "typetext" : "[user-allow=<enum>] [,user-allow-list=<tag>[;<tag>...]]"
8993 },
5370fa8c
TL
8994 "webauthn" : {
8995 "description" : "webauthn configuration",
8996 "format" : {
81a3384d
TL
8997 "allow-subdomains" : {
8998 "default" : 1,
8999 "description" : "Whether to allow the origin to be a subdomain, rather than the exact URL.",
9000 "optional" : 1,
9001 "type" : "boolean"
9002 },
5370fa8c 9003 "id" : {
81a3384d 9004 "description" : "Relying party ID. Must be the domain name without protocol, port or location. Changing this *will* break existing credentials.",
5370fa8c
TL
9005 "format_description" : "DOMAINNAME",
9006 "optional" : 1,
9007 "type" : "string"
9008 },
9009 "origin" : {
9010 "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.",
9011 "format_description" : "URL",
9012 "optional" : 1,
9013 "type" : "string"
9014 },
9015 "rp" : {
9016 "description" : "Relying party name. Any text identifier. Changing this *may* break existing credentials.",
9017 "format_description" : "RELYING_PARTY",
9018 "optional" : 1,
9019 "type" : "string"
9020 }
9021 },
9022 "optional" : 1,
9023 "type" : "string",
81a3384d 9024 "typetext" : "[allow-subdomains=<1|0>] [,id=<DOMAINNAME>] [,origin=<URL>] [,rp=<RELYING_PARTY>]"
56122987
DM
9025 }
9026 }
9027 },
44660702
DM
9028 "permissions" : {
9029 "check" : [
9030 "perm",
9031 "/",
9032 [
9033 "Sys.Modify"
9034 ]
9035 ]
9036 },
56122987 9037 "protected" : 1,
7aacca6f
DM
9038 "returns" : {
9039 "type" : "null"
44660702 9040 }
7aacca6f
DM
9041 }
9042 },
44660702
DM
9043 "leaf" : 1,
9044 "path" : "/cluster/options",
7aacca6f
DM
9045 "text" : "options"
9046 },
9047 {
7aacca6f 9048 "info" : {
56122987 9049 "GET" : {
e9cd3bd4 9050 "allowtoken" : 1,
1e3f8156 9051 "description" : "Get cluster status information.",
44660702
DM
9052 "method" : "GET",
9053 "name" : "get_status",
56122987
DM
9054 "parameters" : {
9055 "additionalProperties" : 0
9056 },
56122987
DM
9057 "permissions" : {
9058 "check" : [
9059 "perm",
9060 "/",
9061 [
9062 "Sys.Audit"
9063 ]
9064 ]
9065 },
7aacca6f 9066 "protected" : 1,
56122987 9067 "returns" : {
56122987 9068 "items" : {
56122987 9069 "properties" : {
e9cd3bd4
TL
9070 "id" : {
9071 "type" : "string"
9072 },
9073 "ip" : {
9074 "description" : "[node] IP of the resolved nodename.",
9075 "optional" : 1,
9076 "type" : "string"
9077 },
9078 "level" : {
9079 "description" : "[node] Proxmox VE Subscription level, indicates if eligible for enterprise support as well as access to the stable Proxmox VE Enterprise Repository.",
9080 "optional" : 1,
9081 "type" : "string"
9082 },
9083 "local" : {
9084 "description" : "[node] Indicates if this is the responding node.",
9085 "optional" : 1,
9086 "type" : "boolean"
9087 },
9088 "name" : {
9089 "type" : "string"
9090 },
9091 "nodeid" : {
9092 "description" : "[node] ID of the node from the corosync configuration.",
9093 "optional" : 1,
9094 "type" : "integer"
9095 },
9096 "nodes" : {
9097 "description" : "[cluster] Nodes count, including offline nodes.",
9098 "optional" : 1,
9099 "type" : "integer"
9100 },
9101 "online" : {
9102 "description" : "[node] Indicates if the node is online or offline.",
9103 "optional" : 1,
9104 "type" : "boolean"
9105 },
9106 "quorate" : {
9107 "description" : "[cluster] Indicates if there is a majority of nodes online to make decisions",
9108 "optional" : 1,
9109 "type" : "boolean"
9110 },
56122987 9111 "type" : {
e9cd3bd4
TL
9112 "description" : "Indicates the type, either cluster or node. The type defines the object properties e.g. quorate available for type cluster.",
9113 "enum" : [
9114 "cluster",
9115 "node"
9116 ],
56122987 9117 "type" : "string"
e9cd3bd4
TL
9118 },
9119 "version" : {
9120 "description" : "[cluster] Current version of the corosync configuration file.",
9121 "optional" : 1,
9122 "type" : "integer"
56122987 9123 }
44660702
DM
9124 },
9125 "type" : "object"
7aacca6f
DM
9126 },
9127 "type" : "array"
56122987
DM
9128 }
9129 }
9130 },
44660702 9131 "leaf" : 1,
7aacca6f 9132 "path" : "/cluster/status",
44660702 9133 "text" : "status"
56122987
DM
9134 },
9135 {
56122987
DM
9136 "info" : {
9137 "GET" : {
e9cd3bd4 9138 "allowtoken" : 1,
c30bb419 9139 "description" : "Get next free VMID. Pass a VMID to assert that its free (at time of check).",
44660702
DM
9140 "method" : "GET",
9141 "name" : "nextid",
56122987 9142 "parameters" : {
44660702 9143 "additionalProperties" : 0,
56122987
DM
9144 "properties" : {
9145 "vmid" : {
44660702 9146 "description" : "The (unique) ID of the VM.",
56122987 9147 "format" : "pve-vmid",
7aacca6f 9148 "minimum" : 1,
7aacca6f 9149 "optional" : 1,
4bd7df8b 9150 "type" : "integer",
013dc89f 9151 "typetext" : "<integer> (1 - N)"
56122987 9152 }
44660702 9153 }
56122987 9154 },
7aacca6f
DM
9155 "permissions" : {
9156 "user" : "all"
44660702
DM
9157 },
9158 "returns" : {
9159 "description" : "The next free VMID.",
9160 "type" : "integer"
7aacca6f 9161 }
56122987
DM
9162 }
9163 },
7aacca6f 9164 "leaf" : 1,
44660702
DM
9165 "path" : "/cluster/nextid",
9166 "text" : "nextid"
56122987
DM
9167 }
9168 ],
44660702
DM
9169 "info" : {
9170 "GET" : {
e9cd3bd4 9171 "allowtoken" : 1,
44660702
DM
9172 "description" : "Cluster index.",
9173 "method" : "GET",
9174 "name" : "index",
9175 "parameters" : {
9176 "additionalProperties" : 0
9177 },
9178 "permissions" : {
9179 "user" : "all"
9180 },
9181 "returns" : {
9182 "items" : {
9183 "properties" : {},
9184 "type" : "object"
9185 },
9186 "links" : [
9187 {
9188 "href" : "{name}",
9189 "rel" : "child"
9190 }
9191 ],
9192 "type" : "array"
9193 }
9194 }
9195 },
9196 "leaf" : 0,
9197 "path" : "/cluster",
7aacca6f 9198 "text" : "cluster"
56122987
DM
9199 },
9200 {
56122987
DM
9201 "children" : [
9202 {
7aacca6f
DM
9203 "children" : [
9204 {
9205 "children" : [
9206 {
56122987
DM
9207 "children" : [
9208 {
56122987
DM
9209 "children" : [
9210 {
9211 "children" : [
9212 {
56122987
DM
9213 "info" : {
9214 "DELETE" : {
e9cd3bd4 9215 "allowtoken" : 1,
44660702 9216 "description" : "Delete rule.",
7aacca6f 9217 "method" : "DELETE",
44660702 9218 "name" : "delete_rule",
56122987 9219 "parameters" : {
44660702 9220 "additionalProperties" : 0,
56122987 9221 "properties" : {
44660702
DM
9222 "digest" : {
9223 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9224 "maxLength" : 40,
9225 "optional" : 1,
013dc89f
DM
9226 "type" : "string",
9227 "typetext" : "<string>"
44660702 9228 },
56122987 9229 "node" : {
7aacca6f 9230 "description" : "The cluster node name.",
44660702 9231 "format" : "pve-node",
013dc89f
DM
9232 "type" : "string",
9233 "typetext" : "<string>"
7aacca6f 9234 },
56122987 9235 "pos" : {
7aacca6f 9236 "description" : "Update rule at position <pos>.",
44660702 9237 "minimum" : 0,
56122987 9238 "optional" : 1,
4bd7df8b 9239 "type" : "integer",
013dc89f 9240 "typetext" : "<integer> (0 - N)"
44660702
DM
9241 },
9242 "vmid" : {
9243 "description" : "The (unique) ID of the VM.",
9244 "format" : "pve-vmid",
9245 "minimum" : 1,
4bd7df8b 9246 "type" : "integer",
013dc89f 9247 "typetext" : "<integer> (1 - N)"
56122987 9248 }
44660702 9249 }
7aacca6f 9250 },
56122987
DM
9251 "permissions" : {
9252 "check" : [
9253 "perm",
9254 "/vms/{vmid}",
9255 [
9256 "VM.Config.Network"
9257 ]
9258 ]
9259 },
44660702
DM
9260 "protected" : 1,
9261 "proxyto" : null,
56122987
DM
9262 "returns" : {
9263 "type" : "null"
44660702
DM
9264 }
9265 },
9266 "GET" : {
e9cd3bd4 9267 "allowtoken" : 1,
44660702
DM
9268 "description" : "Get single rule data.",
9269 "method" : "GET",
9270 "name" : "get_rule",
9271 "parameters" : {
9272 "additionalProperties" : 0,
9273 "properties" : {
9274 "node" : {
9275 "description" : "The cluster node name.",
9276 "format" : "pve-node",
013dc89f
DM
9277 "type" : "string",
9278 "typetext" : "<string>"
44660702
DM
9279 },
9280 "pos" : {
9281 "description" : "Update rule at position <pos>.",
9282 "minimum" : 0,
9283 "optional" : 1,
4bd7df8b 9284 "type" : "integer",
013dc89f 9285 "typetext" : "<integer> (0 - N)"
44660702
DM
9286 },
9287 "vmid" : {
9288 "description" : "The (unique) ID of the VM.",
9289 "format" : "pve-vmid",
9290 "minimum" : 1,
4bd7df8b 9291 "type" : "integer",
013dc89f 9292 "typetext" : "<integer> (1 - N)"
44660702
DM
9293 }
9294 }
56122987 9295 },
56122987
DM
9296 "permissions" : {
9297 "check" : [
9298 "perm",
9299 "/vms/{vmid}",
9300 [
44660702 9301 "VM.Audit"
56122987
DM
9302 ]
9303 ]
9304 },
56122987 9305 "proxyto" : null,
44660702
DM
9306 "returns" : {
9307 "properties" : {
e2d681b3
TL
9308 "action" : {
9309 "type" : "string"
9310 },
9311 "comment" : {
9312 "optional" : 1,
9313 "type" : "string"
9314 },
9315 "dest" : {
9316 "optional" : 1,
9317 "type" : "string"
9318 },
9319 "dport" : {
9320 "optional" : 1,
9321 "type" : "string"
9322 },
9323 "enable" : {
9324 "optional" : 1,
9325 "type" : "integer"
9326 },
4772952b
TL
9327 "icmp-type" : {
9328 "optional" : 1,
9329 "type" : "string"
9330 },
e2d681b3
TL
9331 "iface" : {
9332 "optional" : 1,
9333 "type" : "string"
9334 },
9335 "ipversion" : {
9336 "optional" : 1,
9337 "type" : "integer"
9338 },
95895385
TL
9339 "log" : {
9340 "description" : "Log level for firewall rule",
9341 "enum" : [
9342 "emerg",
9343 "alert",
9344 "crit",
9345 "err",
9346 "warning",
9347 "notice",
9348 "info",
9349 "debug",
9350 "nolog"
9351 ],
9352 "optional" : 1,
9353 "type" : "string"
9354 },
e2d681b3
TL
9355 "macro" : {
9356 "optional" : 1,
5f26e15b 9357 "type" : "string"
e2d681b3 9358 },
44660702
DM
9359 "pos" : {
9360 "type" : "integer"
e2d681b3
TL
9361 },
9362 "proto" : {
9363 "optional" : 1,
9364 "type" : "string"
9365 },
9366 "source" : {
9367 "optional" : 1,
9368 "type" : "string"
9369 },
9370 "sport" : {
9371 "optional" : 1,
9372 "type" : "string"
9373 },
9374 "type" : {
9375 "type" : "string"
44660702
DM
9376 }
9377 },
9378 "type" : "object"
9379 }
9380 },
9381 "PUT" : {
e9cd3bd4 9382 "allowtoken" : 1,
7aacca6f
DM
9383 "description" : "Modify rule data.",
9384 "method" : "PUT",
44660702 9385 "name" : "update_rule",
56122987 9386 "parameters" : {
44660702 9387 "additionalProperties" : 0,
56122987 9388 "properties" : {
44660702
DM
9389 "action" : {
9390 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
9391 "maxLength" : 20,
9392 "minLength" : 2,
56122987 9393 "optional" : 1,
44660702 9394 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
7aacca6f
DM
9395 "type" : "string"
9396 },
7aacca6f 9397 "comment" : {
e94f0d56 9398 "description" : "Descriptive comment.",
7aacca6f 9399 "optional" : 1,
013dc89f
DM
9400 "type" : "string",
9401 "typetext" : "<string>"
7aacca6f
DM
9402 },
9403 "delete" : {
7aacca6f 9404 "description" : "A list of settings you want to delete.",
44660702
DM
9405 "format" : "pve-configid-list",
9406 "optional" : 1,
013dc89f
DM
9407 "type" : "string",
9408 "typetext" : "<string>"
7aacca6f
DM
9409 },
9410 "dest" : {
44660702 9411 "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 9412 "format" : "pve-fw-addr-spec",
0695fdaf 9413 "maxLength" : 512,
56122987 9414 "optional" : 1,
013dc89f
DM
9415 "type" : "string",
9416 "typetext" : "<string>"
56122987 9417 },
7aacca6f 9418 "digest" : {
44660702 9419 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 9420 "maxLength" : 40,
56122987 9421 "optional" : 1,
013dc89f
DM
9422 "type" : "string",
9423 "typetext" : "<string>"
44660702
DM
9424 },
9425 "dport" : {
9426 "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.",
9427 "format" : "pve-fw-dport-spec",
9428 "optional" : 1,
013dc89f
DM
9429 "type" : "string",
9430 "typetext" : "<string>"
56122987 9431 },
7aacca6f 9432 "enable" : {
e94f0d56 9433 "description" : "Flag to enable/disable a rule.",
44660702 9434 "minimum" : 0,
56122987 9435 "optional" : 1,
4bd7df8b 9436 "type" : "integer",
013dc89f 9437 "typetext" : "<integer> (0 - N)"
7aacca6f 9438 },
4772952b
TL
9439 "icmp-type" : {
9440 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
9441 "format" : "pve-fw-icmp-type-spec",
9442 "optional" : 1,
9443 "type" : "string",
9444 "typetext" : "<string>"
9445 },
44660702
DM
9446 "iface" : {
9447 "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.",
9448 "format" : "pve-iface",
9449 "maxLength" : 20,
7aacca6f 9450 "minLength" : 2,
56122987 9451 "optional" : 1,
013dc89f
DM
9452 "type" : "string",
9453 "typetext" : "<string>"
56122987 9454 },
95895385
TL
9455 "log" : {
9456 "description" : "Log level for firewall rule.",
9457 "enum" : [
9458 "emerg",
9459 "alert",
9460 "crit",
9461 "err",
9462 "warning",
9463 "notice",
9464 "info",
9465 "debug",
9466 "nolog"
9467 ],
9468 "optional" : 1,
9469 "type" : "string"
9470 },
44660702 9471 "macro" : {
e94f0d56 9472 "description" : "Use predefined standard macro.",
44660702 9473 "maxLength" : 128,
56122987 9474 "optional" : 1,
013dc89f
DM
9475 "type" : "string",
9476 "typetext" : "<string>"
56122987 9477 },
44660702
DM
9478 "moveto" : {
9479 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
9480 "minimum" : 0,
56122987 9481 "optional" : 1,
4bd7df8b 9482 "type" : "integer",
013dc89f 9483 "typetext" : "<integer> (0 - N)"
56122987 9484 },
44660702
DM
9485 "node" : {
9486 "description" : "The cluster node name.",
9487 "format" : "pve-node",
013dc89f
DM
9488 "type" : "string",
9489 "typetext" : "<string>"
44660702
DM
9490 },
9491 "pos" : {
9492 "description" : "Update rule at position <pos>.",
9493 "minimum" : 0,
9494 "optional" : 1,
4bd7df8b 9495 "type" : "integer",
013dc89f 9496 "typetext" : "<integer> (0 - N)"
56122987 9497 },
44660702
DM
9498 "proto" : {
9499 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
9500 "format" : "pve-fw-protocol-spec",
9501 "optional" : 1,
013dc89f
DM
9502 "type" : "string",
9503 "typetext" : "<string>"
7aacca6f 9504 },
44660702
DM
9505 "source" : {
9506 "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.",
9507 "format" : "pve-fw-addr-spec",
0695fdaf 9508 "maxLength" : 512,
56122987 9509 "optional" : 1,
013dc89f
DM
9510 "type" : "string",
9511 "typetext" : "<string>"
56122987
DM
9512 },
9513 "sport" : {
9514 "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
9515 "format" : "pve-fw-sport-spec",
9516 "optional" : 1,
013dc89f
DM
9517 "type" : "string",
9518 "typetext" : "<string>"
44660702
DM
9519 },
9520 "type" : {
e94f0d56 9521 "description" : "Rule type.",
44660702
DM
9522 "enum" : [
9523 "in",
9524 "out",
9525 "group"
9526 ],
56122987 9527 "optional" : 1,
56122987 9528 "type" : "string"
44660702
DM
9529 },
9530 "vmid" : {
9531 "description" : "The (unique) ID of the VM.",
9532 "format" : "pve-vmid",
9533 "minimum" : 1,
4bd7df8b 9534 "type" : "integer",
013dc89f 9535 "typetext" : "<integer> (1 - N)"
56122987 9536 }
44660702 9537 }
56122987 9538 },
56122987
DM
9539 "permissions" : {
9540 "check" : [
9541 "perm",
9542 "/vms/{vmid}",
9543 [
44660702 9544 "VM.Config.Network"
56122987
DM
9545 ]
9546 ]
7aacca6f 9547 },
44660702 9548 "protected" : 1,
7aacca6f 9549 "proxyto" : null,
7aacca6f 9550 "returns" : {
44660702
DM
9551 "type" : "null"
9552 }
56122987 9553 }
7aacca6f 9554 },
44660702 9555 "leaf" : 1,
7aacca6f 9556 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules/{pos}",
44660702 9557 "text" : "{pos}"
56122987
DM
9558 }
9559 ],
56122987 9560 "info" : {
44660702 9561 "GET" : {
e9cd3bd4 9562 "allowtoken" : 1,
44660702
DM
9563 "description" : "List rules.",
9564 "method" : "GET",
9565 "name" : "get_rules",
9566 "parameters" : {
9567 "additionalProperties" : 0,
9568 "properties" : {
9569 "node" : {
9570 "description" : "The cluster node name.",
9571 "format" : "pve-node",
013dc89f
DM
9572 "type" : "string",
9573 "typetext" : "<string>"
44660702
DM
9574 },
9575 "vmid" : {
9576 "description" : "The (unique) ID of the VM.",
9577 "format" : "pve-vmid",
9578 "minimum" : 1,
4bd7df8b 9579 "type" : "integer",
013dc89f 9580 "typetext" : "<integer> (1 - N)"
44660702
DM
9581 }
9582 }
56122987 9583 },
56122987
DM
9584 "permissions" : {
9585 "check" : [
9586 "perm",
9587 "/vms/{vmid}",
9588 [
44660702 9589 "VM.Audit"
56122987
DM
9590 ]
9591 ]
7aacca6f 9592 },
44660702
DM
9593 "proxyto" : null,
9594 "returns" : {
9595 "items" : {
9596 "properties" : {
9597 "pos" : {
9598 "type" : "integer"
9599 }
9600 },
9601 "type" : "object"
9602 },
9603 "links" : [
9604 {
9605 "href" : "{pos}",
9606 "rel" : "child"
9607 }
9608 ],
9609 "type" : "array"
9610 }
9611 },
9612 "POST" : {
e9cd3bd4 9613 "allowtoken" : 1,
44660702 9614 "description" : "Create new rule.",
7aacca6f 9615 "method" : "POST",
44660702 9616 "name" : "create_rule",
56122987 9617 "parameters" : {
44660702 9618 "additionalProperties" : 0,
56122987 9619 "properties" : {
44660702
DM
9620 "action" : {
9621 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
9622 "maxLength" : 20,
9623 "minLength" : 2,
9624 "optional" : 0,
9625 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
9626 "type" : "string"
56122987 9627 },
44660702 9628 "comment" : {
e94f0d56 9629 "description" : "Descriptive comment.",
56122987 9630 "optional" : 1,
013dc89f
DM
9631 "type" : "string",
9632 "typetext" : "<string>"
56122987 9633 },
44660702
DM
9634 "dest" : {
9635 "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.",
9636 "format" : "pve-fw-addr-spec",
0695fdaf 9637 "maxLength" : 512,
44660702 9638 "optional" : 1,
013dc89f
DM
9639 "type" : "string",
9640 "typetext" : "<string>"
56122987 9641 },
44660702
DM
9642 "digest" : {
9643 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9644 "maxLength" : 40,
56122987 9645 "optional" : 1,
013dc89f
DM
9646 "type" : "string",
9647 "typetext" : "<string>"
56122987 9648 },
7aacca6f
DM
9649 "dport" : {
9650 "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 9651 "format" : "pve-fw-dport-spec",
7aacca6f 9652 "optional" : 1,
013dc89f
DM
9653 "type" : "string",
9654 "typetext" : "<string>"
56122987
DM
9655 },
9656 "enable" : {
e94f0d56 9657 "description" : "Flag to enable/disable a rule.",
56122987 9658 "minimum" : 0,
44660702 9659 "optional" : 1,
4bd7df8b 9660 "type" : "integer",
013dc89f 9661 "typetext" : "<integer> (0 - N)"
56122987 9662 },
4772952b
TL
9663 "icmp-type" : {
9664 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
9665 "format" : "pve-fw-icmp-type-spec",
9666 "optional" : 1,
9667 "type" : "string",
9668 "typetext" : "<string>"
9669 },
44660702
DM
9670 "iface" : {
9671 "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.",
9672 "format" : "pve-iface",
9673 "maxLength" : 20,
7aacca6f 9674 "minLength" : 2,
44660702 9675 "optional" : 1,
013dc89f
DM
9676 "type" : "string",
9677 "typetext" : "<string>"
56122987 9678 },
95895385
TL
9679 "log" : {
9680 "description" : "Log level for firewall rule.",
9681 "enum" : [
9682 "emerg",
9683 "alert",
9684 "crit",
9685 "err",
9686 "warning",
9687 "notice",
9688 "info",
9689 "debug",
9690 "nolog"
9691 ],
9692 "optional" : 1,
9693 "type" : "string"
9694 },
44660702 9695 "macro" : {
e94f0d56 9696 "description" : "Use predefined standard macro.",
44660702 9697 "maxLength" : 128,
56122987 9698 "optional" : 1,
013dc89f
DM
9699 "type" : "string",
9700 "typetext" : "<string>"
7aacca6f 9701 },
44660702
DM
9702 "node" : {
9703 "description" : "The cluster node name.",
9704 "format" : "pve-node",
013dc89f
DM
9705 "type" : "string",
9706 "typetext" : "<string>"
44660702
DM
9707 },
9708 "pos" : {
9709 "description" : "Update rule at position <pos>.",
9710 "minimum" : 0,
9711 "optional" : 1,
4bd7df8b 9712 "type" : "integer",
013dc89f 9713 "typetext" : "<integer> (0 - N)"
44660702
DM
9714 },
9715 "proto" : {
9716 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
9717 "format" : "pve-fw-protocol-spec",
7aacca6f 9718 "optional" : 1,
013dc89f
DM
9719 "type" : "string",
9720 "typetext" : "<string>"
7aacca6f
DM
9721 },
9722 "source" : {
9723 "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 9724 "format" : "pve-fw-addr-spec",
0695fdaf 9725 "maxLength" : 512,
7aacca6f 9726 "optional" : 1,
013dc89f
DM
9727 "type" : "string",
9728 "typetext" : "<string>"
7aacca6f 9729 },
44660702
DM
9730 "sport" : {
9731 "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.",
9732 "format" : "pve-fw-sport-spec",
7aacca6f 9733 "optional" : 1,
013dc89f
DM
9734 "type" : "string",
9735 "typetext" : "<string>"
7aacca6f 9736 },
44660702 9737 "type" : {
e94f0d56 9738 "description" : "Rule type.",
44660702
DM
9739 "enum" : [
9740 "in",
9741 "out",
9742 "group"
9743 ],
9744 "optional" : 0,
9745 "type" : "string"
7aacca6f 9746 },
7aacca6f 9747 "vmid" : {
44660702 9748 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
9749 "format" : "pve-vmid",
9750 "minimum" : 1,
4bd7df8b 9751 "type" : "integer",
013dc89f 9752 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
9753 }
9754 }
9755 },
56122987
DM
9756 "permissions" : {
9757 "check" : [
9758 "perm",
9759 "/vms/{vmid}",
9760 [
44660702 9761 "VM.Config.Network"
56122987
DM
9762 ]
9763 ]
9764 },
44660702
DM
9765 "protected" : 1,
9766 "proxyto" : null,
56122987 9767 "returns" : {
44660702
DM
9768 "type" : "null"
9769 }
56122987
DM
9770 }
9771 },
44660702 9772 "leaf" : 0,
7aacca6f 9773 "path" : "/nodes/{node}/qemu/{vmid}/firewall/rules",
44660702 9774 "text" : "rules"
56122987
DM
9775 },
9776 {
9777 "children" : [
9778 {
56122987 9779 "info" : {
44660702 9780 "DELETE" : {
e9cd3bd4 9781 "allowtoken" : 1,
44660702
DM
9782 "description" : "Remove IP or Network alias.",
9783 "method" : "DELETE",
9784 "name" : "remove_alias",
56122987 9785 "parameters" : {
44660702 9786 "additionalProperties" : 0,
56122987 9787 "properties" : {
44660702
DM
9788 "digest" : {
9789 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
9790 "maxLength" : 40,
9791 "optional" : 1,
013dc89f
DM
9792 "type" : "string",
9793 "typetext" : "<string>"
56122987
DM
9794 },
9795 "name" : {
56122987 9796 "description" : "Alias name.",
44660702 9797 "maxLength" : 64,
7aacca6f 9798 "minLength" : 2,
44660702 9799 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987
DM
9800 "type" : "string"
9801 },
7aacca6f 9802 "node" : {
44660702 9803 "description" : "The cluster node name.",
7aacca6f 9804 "format" : "pve-node",
013dc89f
DM
9805 "type" : "string",
9806 "typetext" : "<string>"
44660702
DM
9807 },
9808 "vmid" : {
9809 "description" : "The (unique) ID of the VM.",
9810 "format" : "pve-vmid",
9811 "minimum" : 1,
4bd7df8b 9812 "type" : "integer",
013dc89f 9813 "typetext" : "<integer> (1 - N)"
56122987 9814 }
44660702 9815 }
56122987 9816 },
7aacca6f
DM
9817 "permissions" : {
9818 "check" : [
9819 "perm",
9820 "/vms/{vmid}",
9821 [
9822 "VM.Config.Network"
9823 ]
9824 ]
56122987 9825 },
44660702
DM
9826 "protected" : 1,
9827 "returns" : {
9828 "type" : "null"
9829 }
9830 },
9831 "GET" : {
e9cd3bd4 9832 "allowtoken" : 1,
44660702
DM
9833 "description" : "Read alias.",
9834 "method" : "GET",
9835 "name" : "read_alias",
56122987 9836 "parameters" : {
44660702 9837 "additionalProperties" : 0,
56122987 9838 "properties" : {
56122987 9839 "name" : {
7aacca6f 9840 "description" : "Alias name.",
44660702 9841 "maxLength" : 64,
56122987 9842 "minLength" : 2,
44660702 9843 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
56122987 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>"
44660702
DM
9851 },
9852 "vmid" : {
9853 "description" : "The (unique) ID of the VM.",
9854 "format" : "pve-vmid",
9855 "minimum" : 1,
4bd7df8b 9856 "type" : "integer",
013dc89f 9857 "typetext" : "<integer> (1 - N)"
56122987 9858 }
44660702 9859 }
56122987 9860 },
44660702
DM
9861 "permissions" : {
9862 "check" : [
9863 "perm",
9864 "/vms/{vmid}",
9865 [
9866 "VM.Audit"
9867 ]
9868 ]
56122987 9869 },
44660702
DM
9870 "returns" : {
9871 "type" : "object"
9872 }
7aacca6f 9873 },
44660702 9874 "PUT" : {
e9cd3bd4 9875 "allowtoken" : 1,
44660702
DM
9876 "description" : "Update IP or Network alias.",
9877 "method" : "PUT",
9878 "name" : "update_alias",
56122987
DM
9879 "parameters" : {
9880 "additionalProperties" : 0,
9881 "properties" : {
44660702
DM
9882 "cidr" : {
9883 "description" : "Network/IP specification in CIDR format.",
9884 "format" : "IPorCIDR",
013dc89f
DM
9885 "type" : "string",
9886 "typetext" : "<string>"
44660702
DM
9887 },
9888 "comment" : {
9889 "optional" : 1,
013dc89f
DM
9890 "type" : "string",
9891 "typetext" : "<string>"
56122987
DM
9892 },
9893 "digest" : {
44660702 9894 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
56122987
DM
9895 "maxLength" : 40,
9896 "optional" : 1,
013dc89f
DM
9897 "type" : "string",
9898 "typetext" : "<string>"
56122987 9899 },
7aacca6f 9900 "name" : {
44660702 9901 "description" : "Alias name.",
56122987
DM
9902 "maxLength" : 64,
9903 "minLength" : 2,
9904 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 9905 "type" : "string"
7aacca6f
DM
9906 },
9907 "node" : {
7aacca6f 9908 "description" : "The cluster node name.",
44660702 9909 "format" : "pve-node",
013dc89f
DM
9910 "type" : "string",
9911 "typetext" : "<string>"
44660702
DM
9912 },
9913 "rename" : {
9914 "description" : "Rename an existing alias.",
9915 "maxLength" : 64,
9916 "minLength" : 2,
9917 "optional" : 1,
9918 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
9919 "type" : "string"
9920 },
9921 "vmid" : {
9922 "description" : "The (unique) ID of the VM.",
9923 "format" : "pve-vmid",
9924 "minimum" : 1,
4bd7df8b 9925 "type" : "integer",
013dc89f 9926 "typetext" : "<integer> (1 - N)"
56122987
DM
9927 }
9928 }
9929 },
7aacca6f
DM
9930 "permissions" : {
9931 "check" : [
9932 "perm",
9933 "/vms/{vmid}",
9934 [
9935 "VM.Config.Network"
9936 ]
9937 ]
9938 },
9939 "protected" : 1,
7aacca6f
DM
9940 "returns" : {
9941 "type" : "null"
44660702 9942 }
56122987
DM
9943 }
9944 },
44660702 9945 "leaf" : 1,
7aacca6f 9946 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases/{name}",
44660702 9947 "text" : "{name}"
56122987
DM
9948 }
9949 ],
9950 "info" : {
44660702 9951 "GET" : {
e9cd3bd4 9952 "allowtoken" : 1,
44660702
DM
9953 "description" : "List aliases",
9954 "method" : "GET",
9955 "name" : "get_aliases",
56122987 9956 "parameters" : {
44660702 9957 "additionalProperties" : 0,
56122987 9958 "properties" : {
7aacca6f 9959 "node" : {
7aacca6f 9960 "description" : "The cluster node name.",
44660702 9961 "format" : "pve-node",
013dc89f
DM
9962 "type" : "string",
9963 "typetext" : "<string>"
56122987 9964 },
44660702
DM
9965 "vmid" : {
9966 "description" : "The (unique) ID of the VM.",
9967 "format" : "pve-vmid",
9968 "minimum" : 1,
4bd7df8b 9969 "type" : "integer",
013dc89f 9970 "typetext" : "<integer> (1 - N)"
56122987 9971 }
44660702 9972 }
56122987 9973 },
56122987
DM
9974 "permissions" : {
9975 "check" : [
9976 "perm",
9977 "/vms/{vmid}",
9978 [
44660702 9979 "VM.Audit"
56122987
DM
9980 ]
9981 ]
9982 },
56122987
DM
9983 "returns" : {
9984 "items" : {
9985 "properties" : {
44660702 9986 "cidr" : {
56122987
DM
9987 "type" : "string"
9988 },
44660702
DM
9989 "comment" : {
9990 "optional" : 1,
7aacca6f 9991 "type" : "string"
56122987
DM
9992 },
9993 "digest" : {
56122987 9994 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 9995 "maxLength" : 40,
56122987
DM
9996 "optional" : 0,
9997 "type" : "string"
9998 },
44660702 9999 "name" : {
56122987
DM
10000 "type" : "string"
10001 }
44660702
DM
10002 },
10003 "type" : "object"
56122987 10004 },
56122987
DM
10005 "links" : [
10006 {
10007 "href" : "{name}",
10008 "rel" : "child"
10009 }
44660702
DM
10010 ],
10011 "type" : "array"
10012 }
10013 },
10014 "POST" : {
e9cd3bd4 10015 "allowtoken" : 1,
44660702
DM
10016 "description" : "Create IP or Network Alias.",
10017 "method" : "POST",
10018 "name" : "create_alias",
56122987 10019 "parameters" : {
7aacca6f 10020 "additionalProperties" : 0,
56122987 10021 "properties" : {
44660702
DM
10022 "cidr" : {
10023 "description" : "Network/IP specification in CIDR format.",
10024 "format" : "IPorCIDR",
013dc89f
DM
10025 "type" : "string",
10026 "typetext" : "<string>"
44660702
DM
10027 },
10028 "comment" : {
10029 "optional" : 1,
013dc89f
DM
10030 "type" : "string",
10031 "typetext" : "<string>"
44660702
DM
10032 },
10033 "name" : {
10034 "description" : "Alias name.",
10035 "maxLength" : 64,
10036 "minLength" : 2,
10037 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10038 "type" : "string"
56122987
DM
10039 },
10040 "node" : {
7aacca6f 10041 "description" : "The cluster node name.",
44660702 10042 "format" : "pve-node",
013dc89f
DM
10043 "type" : "string",
10044 "typetext" : "<string>"
44660702
DM
10045 },
10046 "vmid" : {
10047 "description" : "The (unique) ID of the VM.",
10048 "format" : "pve-vmid",
10049 "minimum" : 1,
4bd7df8b 10050 "type" : "integer",
013dc89f 10051 "typetext" : "<integer> (1 - N)"
56122987 10052 }
7aacca6f 10053 }
56122987 10054 },
44660702
DM
10055 "permissions" : {
10056 "check" : [
10057 "perm",
10058 "/vms/{vmid}",
10059 [
10060 "VM.Config.Network"
10061 ]
10062 ]
10063 },
10064 "protected" : 1,
10065 "returns" : {
10066 "type" : "null"
10067 }
56122987 10068 }
44660702
DM
10069 },
10070 "leaf" : 0,
10071 "path" : "/nodes/{node}/qemu/{vmid}/firewall/aliases",
10072 "text" : "aliases"
56122987
DM
10073 },
10074 {
56122987
DM
10075 "children" : [
10076 {
7aacca6f
DM
10077 "children" : [
10078 {
10079 "info" : {
10080 "DELETE" : {
e9cd3bd4 10081 "allowtoken" : 1,
44660702 10082 "description" : "Remove IP or Network from IPSet.",
7aacca6f 10083 "method" : "DELETE",
44660702 10084 "name" : "remove_ip",
7aacca6f 10085 "parameters" : {
44660702 10086 "additionalProperties" : 0,
7aacca6f 10087 "properties" : {
44660702
DM
10088 "cidr" : {
10089 "description" : "Network/IP specification in CIDR format.",
10090 "format" : "IPorCIDRorAlias",
013dc89f
DM
10091 "type" : "string",
10092 "typetext" : "<string>"
44660702
DM
10093 },
10094 "digest" : {
10095 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10096 "maxLength" : 40,
10097 "optional" : 1,
013dc89f
DM
10098 "type" : "string",
10099 "typetext" : "<string>"
44660702 10100 },
7aacca6f 10101 "name" : {
7aacca6f 10102 "description" : "IP set name.",
44660702
DM
10103 "maxLength" : 64,
10104 "minLength" : 2,
7aacca6f 10105 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 10106 "type" : "string"
7aacca6f
DM
10107 },
10108 "node" : {
10109 "description" : "The cluster node name.",
44660702 10110 "format" : "pve-node",
013dc89f
DM
10111 "type" : "string",
10112 "typetext" : "<string>"
7aacca6f
DM
10113 },
10114 "vmid" : {
44660702 10115 "description" : "The (unique) ID of the VM.",
7aacca6f 10116 "format" : "pve-vmid",
44660702 10117 "minimum" : 1,
4bd7df8b 10118 "type" : "integer",
013dc89f 10119 "typetext" : "<integer> (1 - N)"
7aacca6f 10120 }
44660702 10121 }
7aacca6f 10122 },
7aacca6f
DM
10123 "permissions" : {
10124 "check" : [
10125 "perm",
10126 "/vms/{vmid}",
10127 [
10128 "VM.Config.Network"
10129 ]
10130 ]
10131 },
10132 "protected" : 1,
44660702
DM
10133 "returns" : {
10134 "type" : "null"
10135 }
56122987 10136 },
44660702 10137 "GET" : {
e9cd3bd4 10138 "allowtoken" : 1,
44660702
DM
10139 "description" : "Read IP or Network settings from IPSet.",
10140 "method" : "GET",
10141 "name" : "read_ip",
7aacca6f 10142 "parameters" : {
44660702 10143 "additionalProperties" : 0,
7aacca6f 10144 "properties" : {
7aacca6f 10145 "cidr" : {
44660702 10146 "description" : "Network/IP specification in CIDR format.",
7aacca6f 10147 "format" : "IPorCIDRorAlias",
013dc89f
DM
10148 "type" : "string",
10149 "typetext" : "<string>"
7aacca6f
DM
10150 },
10151 "name" : {
7aacca6f 10152 "description" : "IP set name.",
44660702 10153 "maxLength" : 64,
7aacca6f 10154 "minLength" : 2,
44660702
DM
10155 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10156 "type" : "string"
7aacca6f 10157 },
44660702
DM
10158 "node" : {
10159 "description" : "The cluster node name.",
10160 "format" : "pve-node",
013dc89f
DM
10161 "type" : "string",
10162 "typetext" : "<string>"
7aacca6f 10163 },
44660702
DM
10164 "vmid" : {
10165 "description" : "The (unique) ID of the VM.",
10166 "format" : "pve-vmid",
10167 "minimum" : 1,
4bd7df8b 10168 "type" : "integer",
013dc89f 10169 "typetext" : "<integer> (1 - N)"
7aacca6f 10170 }
44660702 10171 }
7aacca6f 10172 },
44660702
DM
10173 "permissions" : {
10174 "check" : [
10175 "perm",
10176 "/vms/{vmid}",
10177 [
10178 "VM.Audit"
10179 ]
10180 ]
10181 },
10182 "protected" : 1,
7aacca6f 10183 "returns" : {
44660702 10184 "type" : "object"
7aacca6f 10185 }
56122987 10186 },
44660702 10187 "PUT" : {
e9cd3bd4 10188 "allowtoken" : 1,
44660702
DM
10189 "description" : "Update IP or Network settings",
10190 "method" : "PUT",
10191 "name" : "update_ip",
7aacca6f
DM
10192 "parameters" : {
10193 "additionalProperties" : 0,
10194 "properties" : {
44660702
DM
10195 "cidr" : {
10196 "description" : "Network/IP specification in CIDR format.",
10197 "format" : "IPorCIDRorAlias",
013dc89f
DM
10198 "type" : "string",
10199 "typetext" : "<string>"
44660702
DM
10200 },
10201 "comment" : {
10202 "optional" : 1,
013dc89f
DM
10203 "type" : "string",
10204 "typetext" : "<string>"
44660702
DM
10205 },
10206 "digest" : {
10207 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10208 "maxLength" : 40,
10209 "optional" : 1,
013dc89f
DM
10210 "type" : "string",
10211 "typetext" : "<string>"
44660702 10212 },
7aacca6f 10213 "name" : {
7aacca6f 10214 "description" : "IP set name.",
44660702 10215 "maxLength" : 64,
7aacca6f 10216 "minLength" : 2,
44660702
DM
10217 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10218 "type" : "string"
7aacca6f
DM
10219 },
10220 "node" : {
7aacca6f 10221 "description" : "The cluster node name.",
44660702 10222 "format" : "pve-node",
013dc89f
DM
10223 "type" : "string",
10224 "typetext" : "<string>"
7aacca6f 10225 },
44660702
DM
10226 "nomatch" : {
10227 "optional" : 1,
013dc89f
DM
10228 "type" : "boolean",
10229 "typetext" : "<boolean>"
7aacca6f
DM
10230 },
10231 "vmid" : {
10232 "description" : "The (unique) ID of the VM.",
44660702 10233 "format" : "pve-vmid",
7aacca6f 10234 "minimum" : 1,
4bd7df8b 10235 "type" : "integer",
013dc89f 10236 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
10237 }
10238 }
10239 },
10240 "permissions" : {
10241 "check" : [
10242 "perm",
10243 "/vms/{vmid}",
10244 [
44660702 10245 "VM.Config.Network"
7aacca6f
DM
10246 ]
10247 ]
10248 },
7aacca6f 10249 "protected" : 1,
7aacca6f 10250 "returns" : {
44660702 10251 "type" : "null"
7aacca6f 10252 }
56122987 10253 }
7aacca6f 10254 },
7aacca6f 10255 "leaf" : 1,
44660702
DM
10256 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}/{cidr}",
10257 "text" : "{cidr}"
7aacca6f 10258 }
44660702
DM
10259 ],
10260 "info" : {
10261 "DELETE" : {
e9cd3bd4 10262 "allowtoken" : 1,
44660702
DM
10263 "description" : "Delete IPSet",
10264 "method" : "DELETE",
10265 "name" : "delete_ipset",
10266 "parameters" : {
10267 "additionalProperties" : 0,
10268 "properties" : {
81a3384d
TL
10269 "force" : {
10270 "description" : "Delete all members of the IPSet, if there are any.",
10271 "optional" : 1,
10272 "type" : "boolean",
10273 "typetext" : "<boolean>"
10274 },
44660702
DM
10275 "name" : {
10276 "description" : "IP set name.",
10277 "maxLength" : 64,
10278 "minLength" : 2,
10279 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10280 "type" : "string"
10281 },
10282 "node" : {
10283 "description" : "The cluster node name.",
10284 "format" : "pve-node",
013dc89f
DM
10285 "type" : "string",
10286 "typetext" : "<string>"
44660702
DM
10287 },
10288 "vmid" : {
10289 "description" : "The (unique) ID of the VM.",
10290 "format" : "pve-vmid",
10291 "minimum" : 1,
4bd7df8b 10292 "type" : "integer",
013dc89f 10293 "typetext" : "<integer> (1 - N)"
44660702
DM
10294 }
10295 }
7aacca6f 10296 },
44660702
DM
10297 "permissions" : {
10298 "check" : [
10299 "perm",
10300 "/vms/{vmid}",
10301 [
10302 "VM.Config.Network"
10303 ]
10304 ]
7aacca6f 10305 },
44660702
DM
10306 "protected" : 1,
10307 "returns" : {
10308 "type" : "null"
10309 }
10310 },
10311 "GET" : {
e9cd3bd4 10312 "allowtoken" : 1,
44660702
DM
10313 "description" : "List IPSet content",
10314 "method" : "GET",
10315 "name" : "get_ipset",
10316 "parameters" : {
10317 "additionalProperties" : 0,
10318 "properties" : {
10319 "name" : {
10320 "description" : "IP set name.",
10321 "maxLength" : 64,
10322 "minLength" : 2,
10323 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10324 "type" : "string"
10325 },
10326 "node" : {
10327 "description" : "The cluster node name.",
10328 "format" : "pve-node",
013dc89f
DM
10329 "type" : "string",
10330 "typetext" : "<string>"
44660702
DM
10331 },
10332 "vmid" : {
10333 "description" : "The (unique) ID of the VM.",
10334 "format" : "pve-vmid",
10335 "minimum" : 1,
4bd7df8b 10336 "type" : "integer",
013dc89f 10337 "typetext" : "<integer> (1 - N)"
44660702
DM
10338 }
10339 }
7aacca6f 10340 },
44660702
DM
10341 "permissions" : {
10342 "check" : [
10343 "perm",
10344 "/vms/{vmid}",
10345 [
10346 "VM.Audit"
10347 ]
10348 ]
7aacca6f 10349 },
44660702
DM
10350 "returns" : {
10351 "items" : {
10352 "properties" : {
10353 "cidr" : {
10354 "type" : "string"
10355 },
10356 "comment" : {
10357 "optional" : 1,
10358 "type" : "string"
10359 },
10360 "digest" : {
10361 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10362 "maxLength" : 40,
10363 "optional" : 0,
10364 "type" : "string"
10365 },
10366 "nomatch" : {
10367 "optional" : 1,
10368 "type" : "boolean"
10369 }
10370 },
10371 "type" : "object"
10372 },
10373 "links" : [
10374 {
10375 "href" : "{cidr}",
10376 "rel" : "child"
10377 }
10378 ],
10379 "type" : "array"
56122987
DM
10380 }
10381 },
44660702 10382 "POST" : {
e9cd3bd4 10383 "allowtoken" : 1,
44660702
DM
10384 "description" : "Add IP or Network to IPSet.",
10385 "method" : "POST",
10386 "name" : "create_ip",
10387 "parameters" : {
10388 "additionalProperties" : 0,
10389 "properties" : {
10390 "cidr" : {
10391 "description" : "Network/IP specification in CIDR format.",
10392 "format" : "IPorCIDRorAlias",
013dc89f
DM
10393 "type" : "string",
10394 "typetext" : "<string>"
44660702
DM
10395 },
10396 "comment" : {
10397 "optional" : 1,
013dc89f
DM
10398 "type" : "string",
10399 "typetext" : "<string>"
44660702
DM
10400 },
10401 "name" : {
10402 "description" : "IP set name.",
10403 "maxLength" : 64,
10404 "minLength" : 2,
10405 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10406 "type" : "string"
10407 },
10408 "node" : {
10409 "description" : "The cluster node name.",
10410 "format" : "pve-node",
013dc89f
DM
10411 "type" : "string",
10412 "typetext" : "<string>"
44660702
DM
10413 },
10414 "nomatch" : {
10415 "optional" : 1,
013dc89f
DM
10416 "type" : "boolean",
10417 "typetext" : "<boolean>"
44660702
DM
10418 },
10419 "vmid" : {
10420 "description" : "The (unique) ID of the VM.",
10421 "format" : "pve-vmid",
10422 "minimum" : 1,
4bd7df8b 10423 "type" : "integer",
013dc89f 10424 "typetext" : "<integer> (1 - N)"
44660702
DM
10425 }
10426 }
10427 },
10428 "permissions" : {
10429 "check" : [
10430 "perm",
10431 "/vms/{vmid}",
10432 [
10433 "VM.Config.Network"
10434 ]
10435 ]
10436 },
10437 "protected" : 1,
10438 "returns" : {
10439 "type" : "null"
10440 }
10441 }
10442 },
10443 "leaf" : 0,
10444 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset/{name}",
10445 "text" : "{name}"
10446 }
10447 ],
10448 "info" : {
10449 "GET" : {
e9cd3bd4 10450 "allowtoken" : 1,
44660702
DM
10451 "description" : "List IPSets",
10452 "method" : "GET",
10453 "name" : "ipset_index",
10454 "parameters" : {
10455 "additionalProperties" : 0,
10456 "properties" : {
10457 "node" : {
10458 "description" : "The cluster node name.",
10459 "format" : "pve-node",
013dc89f
DM
10460 "type" : "string",
10461 "typetext" : "<string>"
44660702
DM
10462 },
10463 "vmid" : {
10464 "description" : "The (unique) ID of the VM.",
10465 "format" : "pve-vmid",
10466 "minimum" : 1,
4bd7df8b 10467 "type" : "integer",
013dc89f 10468 "typetext" : "<integer> (1 - N)"
44660702
DM
10469 }
10470 }
56122987
DM
10471 },
10472 "permissions" : {
10473 "check" : [
10474 "perm",
10475 "/vms/{vmid}",
10476 [
44660702 10477 "VM.Audit"
56122987
DM
10478 ]
10479 ]
10480 },
7aacca6f 10481 "returns" : {
7aacca6f
DM
10482 "items" : {
10483 "properties" : {
7aacca6f
DM
10484 "comment" : {
10485 "optional" : 1,
10486 "type" : "string"
10487 },
10488 "digest" : {
7aacca6f 10489 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
10490 "maxLength" : 40,
10491 "optional" : 0,
10492 "type" : "string"
10493 },
10494 "name" : {
10495 "description" : "IP set name.",
10496 "maxLength" : 64,
10497 "minLength" : 2,
10498 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10499 "type" : "string"
7aacca6f
DM
10500 }
10501 },
10502 "type" : "object"
10503 },
10504 "links" : [
10505 {
44660702
DM
10506 "href" : "{name}",
10507 "rel" : "child"
7aacca6f 10508 }
44660702
DM
10509 ],
10510 "type" : "array"
10511 }
10512 },
10513 "POST" : {
e9cd3bd4 10514 "allowtoken" : 1,
44660702
DM
10515 "description" : "Create new IPSet",
10516 "method" : "POST",
10517 "name" : "create_ipset",
56122987
DM
10518 "parameters" : {
10519 "additionalProperties" : 0,
10520 "properties" : {
44660702
DM
10521 "comment" : {
10522 "optional" : 1,
013dc89f
DM
10523 "type" : "string",
10524 "typetext" : "<string>"
56122987 10525 },
44660702
DM
10526 "digest" : {
10527 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
10528 "maxLength" : 40,
10529 "optional" : 1,
013dc89f
DM
10530 "type" : "string",
10531 "typetext" : "<string>"
44660702
DM
10532 },
10533 "name" : {
10534 "description" : "IP set name.",
10535 "maxLength" : 64,
10536 "minLength" : 2,
10537 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10538 "type" : "string"
10539 },
10540 "node" : {
10541 "description" : "The cluster node name.",
10542 "format" : "pve-node",
013dc89f
DM
10543 "type" : "string",
10544 "typetext" : "<string>"
44660702
DM
10545 },
10546 "rename" : {
10547 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
10548 "maxLength" : 64,
10549 "minLength" : 2,
10550 "optional" : 1,
10551 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
10552 "type" : "string"
10553 },
10554 "vmid" : {
10555 "description" : "The (unique) ID of the VM.",
10556 "format" : "pve-vmid",
10557 "minimum" : 1,
4bd7df8b 10558 "type" : "integer",
013dc89f 10559 "typetext" : "<integer> (1 - N)"
44660702
DM
10560 }
10561 }
10562 },
7aacca6f
DM
10563 "permissions" : {
10564 "check" : [
10565 "perm",
10566 "/vms/{vmid}",
10567 [
10568 "VM.Config.Network"
10569 ]
10570 ]
10571 },
44660702 10572 "protected" : 1,
56122987 10573 "returns" : {
7aacca6f 10574 "type" : "null"
44660702
DM
10575 }
10576 }
10577 },
10578 "leaf" : 0,
10579 "path" : "/nodes/{node}/qemu/{vmid}/firewall/ipset",
10580 "text" : "ipset"
10581 },
10582 {
10583 "info" : {
10584 "GET" : {
e9cd3bd4 10585 "allowtoken" : 1,
44660702
DM
10586 "description" : "Get VM firewall options.",
10587 "method" : "GET",
10588 "name" : "get_options",
7aacca6f
DM
10589 "parameters" : {
10590 "additionalProperties" : 0,
56122987 10591 "properties" : {
7aacca6f
DM
10592 "node" : {
10593 "description" : "The cluster node name.",
44660702 10594 "format" : "pve-node",
013dc89f
DM
10595 "type" : "string",
10596 "typetext" : "<string>"
7aacca6f 10597 },
44660702
DM
10598 "vmid" : {
10599 "description" : "The (unique) ID of the VM.",
10600 "format" : "pve-vmid",
10601 "minimum" : 1,
4bd7df8b 10602 "type" : "integer",
013dc89f 10603 "typetext" : "<integer> (1 - N)"
44660702
DM
10604 }
10605 }
10606 },
10607 "permissions" : {
10608 "check" : [
10609 "perm",
10610 "/vms/{vmid}",
10611 [
10612 "VM.Audit"
10613 ]
10614 ]
10615 },
10616 "proxyto" : "node",
10617 "returns" : {
10618 "properties" : {
10619 "dhcp" : {
5c1699e5 10620 "default" : 0,
44660702 10621 "description" : "Enable DHCP.",
56122987 10622 "optional" : 1,
44660702 10623 "type" : "boolean"
56122987 10624 },
44660702 10625 "enable" : {
5c1699e5 10626 "default" : 0,
44660702 10627 "description" : "Enable/disable firewall rules.",
7aacca6f 10628 "optional" : 1,
44660702 10629 "type" : "boolean"
56122987 10630 },
44660702
DM
10631 "ipfilter" : {
10632 "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 10633 "optional" : 1,
44660702 10634 "type" : "boolean"
7aacca6f 10635 },
56122987 10636 "log_level_in" : {
7aacca6f 10637 "description" : "Log level for incoming traffic.",
56122987
DM
10638 "enum" : [
10639 "emerg",
10640 "alert",
10641 "crit",
10642 "err",
10643 "warning",
10644 "notice",
10645 "info",
10646 "debug",
10647 "nolog"
10648 ],
56122987
DM
10649 "optional" : 1,
10650 "type" : "string"
10651 },
44660702
DM
10652 "log_level_out" : {
10653 "description" : "Log level for outgoing traffic.",
10654 "enum" : [
10655 "emerg",
10656 "alert",
10657 "crit",
10658 "err",
10659 "warning",
10660 "notice",
10661 "info",
10662 "debug",
10663 "nolog"
10664 ],
10665 "optional" : 1,
10666 "type" : "string"
10667 },
10668 "macfilter" : {
de786b48 10669 "default" : 1,
44660702 10670 "description" : "Enable/disable MAC address filter.",
56122987 10671 "optional" : 1,
7aacca6f 10672 "type" : "boolean"
56122987
DM
10673 },
10674 "ndp" : {
5c1699e5
TL
10675 "default" : 0,
10676 "description" : "Enable NDP (Neighbor Discovery Protocol).",
56122987 10677 "optional" : 1,
44660702 10678 "type" : "boolean"
56122987
DM
10679 },
10680 "policy_in" : {
56122987
DM
10681 "description" : "Input policy.",
10682 "enum" : [
10683 "ACCEPT",
10684 "REJECT",
10685 "DROP"
44660702
DM
10686 ],
10687 "optional" : 1,
10688 "type" : "string"
56122987 10689 },
44660702
DM
10690 "policy_out" : {
10691 "description" : "Output policy.",
10692 "enum" : [
10693 "ACCEPT",
10694 "REJECT",
10695 "DROP"
10696 ],
10697 "optional" : 1,
10698 "type" : "string"
10699 },
10700 "radv" : {
10701 "description" : "Allow sending Router Advertisement.",
10702 "optional" : 1,
10703 "type" : "boolean"
10704 }
10705 },
10706 "type" : "object"
10707 }
10708 },
10709 "PUT" : {
e9cd3bd4 10710 "allowtoken" : 1,
44660702
DM
10711 "description" : "Set Firewall options.",
10712 "method" : "PUT",
10713 "name" : "set_options",
10714 "parameters" : {
10715 "additionalProperties" : 0,
10716 "properties" : {
10717 "delete" : {
10718 "description" : "A list of settings you want to delete.",
10719 "format" : "pve-configid-list",
10720 "optional" : 1,
013dc89f
DM
10721 "type" : "string",
10722 "typetext" : "<string>"
44660702
DM
10723 },
10724 "dhcp" : {
5c1699e5 10725 "default" : 0,
44660702 10726 "description" : "Enable DHCP.",
7aacca6f 10727 "optional" : 1,
013dc89f
DM
10728 "type" : "boolean",
10729 "typetext" : "<boolean>"
7aacca6f
DM
10730 },
10731 "digest" : {
10732 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 10733 "maxLength" : 40,
7aacca6f 10734 "optional" : 1,
013dc89f
DM
10735 "type" : "string",
10736 "typetext" : "<string>"
7aacca6f
DM
10737 },
10738 "enable" : {
5c1699e5 10739 "default" : 0,
7aacca6f 10740 "description" : "Enable/disable firewall rules.",
56122987 10741 "optional" : 1,
013dc89f
DM
10742 "type" : "boolean",
10743 "typetext" : "<boolean>"
7aacca6f 10744 },
44660702
DM
10745 "ipfilter" : {
10746 "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.",
10747 "optional" : 1,
013dc89f
DM
10748 "type" : "boolean",
10749 "typetext" : "<boolean>"
44660702
DM
10750 },
10751 "log_level_in" : {
10752 "description" : "Log level for incoming traffic.",
56122987
DM
10753 "enum" : [
10754 "emerg",
10755 "alert",
10756 "crit",
10757 "err",
10758 "warning",
10759 "notice",
10760 "info",
10761 "debug",
10762 "nolog"
7aacca6f 10763 ],
7aacca6f 10764 "optional" : 1,
44660702 10765 "type" : "string"
7aacca6f 10766 },
44660702
DM
10767 "log_level_out" : {
10768 "description" : "Log level for outgoing traffic.",
56122987
DM
10769 "enum" : [
10770 "emerg",
10771 "alert",
10772 "crit",
10773 "err",
10774 "warning",
10775 "notice",
10776 "info",
10777 "debug",
10778 "nolog"
10779 ],
56122987 10780 "optional" : 1,
44660702 10781 "type" : "string"
56122987
DM
10782 },
10783 "macfilter" : {
de786b48 10784 "default" : 1,
56122987 10785 "description" : "Enable/disable MAC address filter.",
7aacca6f 10786 "optional" : 1,
013dc89f
DM
10787 "type" : "boolean",
10788 "typetext" : "<boolean>"
56122987 10789 },
44660702 10790 "ndp" : {
5c1699e5
TL
10791 "default" : 0,
10792 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702 10793 "optional" : 1,
013dc89f
DM
10794 "type" : "boolean",
10795 "typetext" : "<boolean>"
44660702
DM
10796 },
10797 "node" : {
10798 "description" : "The cluster node name.",
10799 "format" : "pve-node",
013dc89f
DM
10800 "type" : "string",
10801 "typetext" : "<string>"
44660702 10802 },
56122987 10803 "policy_in" : {
44660702 10804 "description" : "Input policy.",
56122987
DM
10805 "enum" : [
10806 "ACCEPT",
10807 "REJECT",
10808 "DROP"
7aacca6f 10809 ],
56122987 10810 "optional" : 1,
7aacca6f 10811 "type" : "string"
56122987 10812 },
44660702
DM
10813 "policy_out" : {
10814 "description" : "Output policy.",
10815 "enum" : [
10816 "ACCEPT",
10817 "REJECT",
10818 "DROP"
10819 ],
56122987 10820 "optional" : 1,
44660702 10821 "type" : "string"
56122987 10822 },
44660702
DM
10823 "radv" : {
10824 "description" : "Allow sending Router Advertisement.",
56122987 10825 "optional" : 1,
013dc89f
DM
10826 "type" : "boolean",
10827 "typetext" : "<boolean>"
7aacca6f
DM
10828 },
10829 "vmid" : {
10830 "description" : "The (unique) ID of the VM.",
44660702 10831 "format" : "pve-vmid",
7aacca6f 10832 "minimum" : 1,
4bd7df8b 10833 "type" : "integer",
013dc89f 10834 "typetext" : "<integer> (1 - N)"
56122987
DM
10835 }
10836 }
10837 },
56122987
DM
10838 "permissions" : {
10839 "check" : [
10840 "perm",
10841 "/vms/{vmid}",
10842 [
44660702 10843 "VM.Config.Network"
56122987
DM
10844 ]
10845 ]
7aacca6f 10846 },
44660702 10847 "protected" : 1,
7aacca6f 10848 "proxyto" : "node",
44660702
DM
10849 "returns" : {
10850 "type" : "null"
10851 }
56122987
DM
10852 }
10853 },
44660702 10854 "leaf" : 1,
7aacca6f 10855 "path" : "/nodes/{node}/qemu/{vmid}/firewall/options",
44660702 10856 "text" : "options"
56122987
DM
10857 },
10858 {
56122987
DM
10859 "info" : {
10860 "GET" : {
e9cd3bd4 10861 "allowtoken" : 1,
44660702
DM
10862 "description" : "Read firewall log",
10863 "method" : "GET",
10864 "name" : "log",
10865 "parameters" : {
10866 "additionalProperties" : 0,
10867 "properties" : {
10868 "limit" : {
10869 "minimum" : 0,
10870 "optional" : 1,
4bd7df8b 10871 "type" : "integer",
013dc89f 10872 "typetext" : "<integer> (0 - N)"
56122987 10873 },
44660702
DM
10874 "node" : {
10875 "description" : "The cluster node name.",
10876 "format" : "pve-node",
013dc89f
DM
10877 "type" : "string",
10878 "typetext" : "<string>"
44660702
DM
10879 },
10880 "start" : {
10881 "minimum" : 0,
10882 "optional" : 1,
4bd7df8b 10883 "type" : "integer",
013dc89f 10884 "typetext" : "<integer> (0 - N)"
44660702
DM
10885 },
10886 "vmid" : {
10887 "description" : "The (unique) ID of the VM.",
10888 "format" : "pve-vmid",
10889 "minimum" : 1,
4bd7df8b 10890 "type" : "integer",
013dc89f 10891 "typetext" : "<integer> (1 - N)"
44660702
DM
10892 }
10893 }
7aacca6f 10894 },
7aacca6f
DM
10895 "permissions" : {
10896 "check" : [
10897 "perm",
10898 "/vms/{vmid}",
10899 [
10900 "VM.Console"
10901 ]
10902 ]
56122987 10903 },
7aacca6f 10904 "protected" : 1,
44660702
DM
10905 "proxyto" : "node",
10906 "returns" : {
10907 "items" : {
10908 "properties" : {
10909 "n" : {
10910 "description" : "Line number",
10911 "type" : "integer"
10912 },
10913 "t" : {
10914 "description" : "Line text",
10915 "type" : "string"
10916 }
56122987 10917 },
44660702 10918 "type" : "object"
7aacca6f 10919 },
44660702 10920 "type" : "array"
7aacca6f
DM
10921 }
10922 }
10923 },
44660702 10924 "leaf" : 1,
7aacca6f 10925 "path" : "/nodes/{node}/qemu/{vmid}/firewall/log",
44660702 10926 "text" : "log"
7aacca6f
DM
10927 },
10928 {
7aacca6f
DM
10929 "info" : {
10930 "GET" : {
e9cd3bd4 10931 "allowtoken" : 1,
7aacca6f 10932 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702
DM
10933 "method" : "GET",
10934 "name" : "refs",
56122987 10935 "parameters" : {
44660702 10936 "additionalProperties" : 0,
56122987
DM
10937 "properties" : {
10938 "node" : {
7aacca6f 10939 "description" : "The cluster node name.",
44660702 10940 "format" : "pve-node",
013dc89f
DM
10941 "type" : "string",
10942 "typetext" : "<string>"
56122987
DM
10943 },
10944 "type" : {
56122987
DM
10945 "description" : "Only list references of specified type.",
10946 "enum" : [
10947 "alias",
10948 "ipset"
7aacca6f 10949 ],
44660702
DM
10950 "optional" : 1,
10951 "type" : "string"
10952 },
10953 "vmid" : {
10954 "description" : "The (unique) ID of the VM.",
10955 "format" : "pve-vmid",
10956 "minimum" : 1,
4bd7df8b 10957 "type" : "integer",
013dc89f 10958 "typetext" : "<integer> (1 - N)"
56122987 10959 }
44660702
DM
10960 }
10961 },
10962 "permissions" : {
10963 "check" : [
10964 "perm",
10965 "/vms/{vmid}",
10966 [
10967 "VM.Audit"
10968 ]
10969 ]
56122987
DM
10970 },
10971 "returns" : {
56122987
DM
10972 "items" : {
10973 "properties" : {
44660702
DM
10974 "comment" : {
10975 "optional" : 1,
56122987
DM
10976 "type" : "string"
10977 },
10978 "name" : {
10979 "type" : "string"
10980 },
44660702
DM
10981 "type" : {
10982 "enum" : [
10983 "alias",
10984 "ipset"
10985 ],
7aacca6f 10986 "type" : "string"
56122987
DM
10987 }
10988 },
10989 "type" : "object"
7aacca6f
DM
10990 },
10991 "type" : "array"
10992 }
56122987 10993 }
44660702
DM
10994 },
10995 "leaf" : 1,
10996 "path" : "/nodes/{node}/qemu/{vmid}/firewall/refs",
10997 "text" : "refs"
56122987
DM
10998 }
10999 ],
56122987
DM
11000 "info" : {
11001 "GET" : {
e9cd3bd4 11002 "allowtoken" : 1,
44660702 11003 "description" : "Directory index.",
56122987 11004 "method" : "GET",
44660702 11005 "name" : "index",
56122987 11006 "parameters" : {
44660702 11007 "additionalProperties" : 0,
56122987
DM
11008 "properties" : {
11009 "node" : {
11010 "description" : "The cluster node name.",
44660702 11011 "format" : "pve-node",
013dc89f
DM
11012 "type" : "string",
11013 "typetext" : "<string>"
56122987
DM
11014 },
11015 "vmid" : {
44660702 11016 "description" : "The (unique) ID of the VM.",
56122987
DM
11017 "format" : "pve-vmid",
11018 "minimum" : 1,
4bd7df8b 11019 "type" : "integer",
013dc89f 11020 "typetext" : "<integer> (1 - N)"
56122987 11021 }
44660702 11022 }
56122987 11023 },
56122987 11024 "permissions" : {
27a7acb2
DM
11025 "user" : "all"
11026 },
11027 "returns" : {
11028 "items" : {
11029 "properties" : {},
11030 "type" : "object"
11031 },
11032 "links" : [
11033 {
11034 "href" : "{name}",
11035 "rel" : "child"
11036 }
11037 ],
11038 "type" : "array"
11039 }
11040 }
11041 },
11042 "leaf" : 0,
11043 "path" : "/nodes/{node}/qemu/{vmid}/firewall",
11044 "text" : "firewall"
11045 },
11046 {
11047 "children" : [
11048 {
11049 "info" : {
11050 "POST" : {
e9cd3bd4 11051 "allowtoken" : 1,
27a7acb2
DM
11052 "description" : "Execute fsfreeze-freeze.",
11053 "method" : "POST",
11054 "name" : "fsfreeze-freeze",
11055 "parameters" : {
11056 "additionalProperties" : 0,
11057 "properties" : {
11058 "node" : {
11059 "description" : "The cluster node name.",
11060 "format" : "pve-node",
11061 "type" : "string",
11062 "typetext" : "<string>"
11063 },
11064 "vmid" : {
11065 "description" : "The (unique) ID of the VM.",
11066 "format" : "pve-vmid",
11067 "minimum" : 1,
11068 "type" : "integer",
11069 "typetext" : "<integer> (1 - N)"
11070 }
11071 }
11072 },
11073 "permissions" : {
11074 "check" : [
11075 "perm",
11076 "/vms/{vmid}",
11077 [
11078 "VM.Monitor"
11079 ]
11080 ]
11081 },
11082 "protected" : 1,
11083 "proxyto" : "node",
11084 "returns" : {
11085 "description" : "Returns an object with a single `result` property.",
11086 "type" : "object"
11087 }
11088 }
11089 },
11090 "leaf" : 1,
11091 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-freeze",
11092 "text" : "fsfreeze-freeze"
11093 },
11094 {
11095 "info" : {
11096 "POST" : {
e9cd3bd4 11097 "allowtoken" : 1,
27a7acb2
DM
11098 "description" : "Execute fsfreeze-status.",
11099 "method" : "POST",
11100 "name" : "fsfreeze-status",
11101 "parameters" : {
11102 "additionalProperties" : 0,
11103 "properties" : {
11104 "node" : {
11105 "description" : "The cluster node name.",
11106 "format" : "pve-node",
11107 "type" : "string",
11108 "typetext" : "<string>"
11109 },
11110 "vmid" : {
11111 "description" : "The (unique) ID of the VM.",
11112 "format" : "pve-vmid",
11113 "minimum" : 1,
11114 "type" : "integer",
11115 "typetext" : "<integer> (1 - N)"
11116 }
11117 }
11118 },
11119 "permissions" : {
11120 "check" : [
11121 "perm",
11122 "/vms/{vmid}",
11123 [
11124 "VM.Monitor"
11125 ]
11126 ]
11127 },
11128 "protected" : 1,
11129 "proxyto" : "node",
11130 "returns" : {
11131 "description" : "Returns an object with a single `result` property.",
11132 "type" : "object"
11133 }
11134 }
11135 },
11136 "leaf" : 1,
11137 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-status",
11138 "text" : "fsfreeze-status"
11139 },
11140 {
11141 "info" : {
11142 "POST" : {
e9cd3bd4 11143 "allowtoken" : 1,
27a7acb2
DM
11144 "description" : "Execute fsfreeze-thaw.",
11145 "method" : "POST",
11146 "name" : "fsfreeze-thaw",
11147 "parameters" : {
11148 "additionalProperties" : 0,
11149 "properties" : {
11150 "node" : {
11151 "description" : "The cluster node name.",
11152 "format" : "pve-node",
11153 "type" : "string",
11154 "typetext" : "<string>"
11155 },
11156 "vmid" : {
11157 "description" : "The (unique) ID of the VM.",
11158 "format" : "pve-vmid",
11159 "minimum" : 1,
11160 "type" : "integer",
11161 "typetext" : "<integer> (1 - N)"
11162 }
11163 }
11164 },
11165 "permissions" : {
11166 "check" : [
11167 "perm",
11168 "/vms/{vmid}",
11169 [
11170 "VM.Monitor"
11171 ]
11172 ]
11173 },
11174 "protected" : 1,
11175 "proxyto" : "node",
11176 "returns" : {
11177 "description" : "Returns an object with a single `result` property.",
11178 "type" : "object"
11179 }
11180 }
11181 },
11182 "leaf" : 1,
11183 "path" : "/nodes/{node}/qemu/{vmid}/agent/fsfreeze-thaw",
11184 "text" : "fsfreeze-thaw"
11185 },
11186 {
11187 "info" : {
11188 "POST" : {
e9cd3bd4 11189 "allowtoken" : 1,
27a7acb2
DM
11190 "description" : "Execute fstrim.",
11191 "method" : "POST",
11192 "name" : "fstrim",
11193 "parameters" : {
11194 "additionalProperties" : 0,
11195 "properties" : {
11196 "node" : {
11197 "description" : "The cluster node name.",
11198 "format" : "pve-node",
11199 "type" : "string",
11200 "typetext" : "<string>"
11201 },
11202 "vmid" : {
11203 "description" : "The (unique) ID of the VM.",
11204 "format" : "pve-vmid",
11205 "minimum" : 1,
11206 "type" : "integer",
11207 "typetext" : "<integer> (1 - N)"
11208 }
11209 }
11210 },
11211 "permissions" : {
11212 "check" : [
11213 "perm",
11214 "/vms/{vmid}",
11215 [
11216 "VM.Monitor"
11217 ]
11218 ]
11219 },
11220 "protected" : 1,
11221 "proxyto" : "node",
11222 "returns" : {
11223 "description" : "Returns an object with a single `result` property.",
11224 "type" : "object"
11225 }
11226 }
11227 },
11228 "leaf" : 1,
11229 "path" : "/nodes/{node}/qemu/{vmid}/agent/fstrim",
11230 "text" : "fstrim"
11231 },
11232 {
11233 "info" : {
11234 "GET" : {
e9cd3bd4 11235 "allowtoken" : 1,
27a7acb2
DM
11236 "description" : "Execute get-fsinfo.",
11237 "method" : "GET",
11238 "name" : "get-fsinfo",
11239 "parameters" : {
11240 "additionalProperties" : 0,
11241 "properties" : {
11242 "node" : {
11243 "description" : "The cluster node name.",
11244 "format" : "pve-node",
11245 "type" : "string",
11246 "typetext" : "<string>"
11247 },
11248 "vmid" : {
11249 "description" : "The (unique) ID of the VM.",
11250 "format" : "pve-vmid",
11251 "minimum" : 1,
11252 "type" : "integer",
11253 "typetext" : "<integer> (1 - N)"
11254 }
11255 }
11256 },
11257 "permissions" : {
11258 "check" : [
11259 "perm",
11260 "/vms/{vmid}",
11261 [
11262 "VM.Monitor"
11263 ]
11264 ]
11265 },
11266 "protected" : 1,
11267 "proxyto" : "node",
11268 "returns" : {
11269 "description" : "Returns an object with a single `result` property.",
11270 "type" : "object"
11271 }
11272 }
11273 },
11274 "leaf" : 1,
11275 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-fsinfo",
11276 "text" : "get-fsinfo"
11277 },
11278 {
11279 "info" : {
11280 "GET" : {
e9cd3bd4 11281 "allowtoken" : 1,
27a7acb2
DM
11282 "description" : "Execute get-host-name.",
11283 "method" : "GET",
11284 "name" : "get-host-name",
11285 "parameters" : {
11286 "additionalProperties" : 0,
11287 "properties" : {
11288 "node" : {
11289 "description" : "The cluster node name.",
11290 "format" : "pve-node",
11291 "type" : "string",
11292 "typetext" : "<string>"
11293 },
11294 "vmid" : {
11295 "description" : "The (unique) ID of the VM.",
11296 "format" : "pve-vmid",
11297 "minimum" : 1,
11298 "type" : "integer",
11299 "typetext" : "<integer> (1 - N)"
11300 }
11301 }
11302 },
11303 "permissions" : {
11304 "check" : [
11305 "perm",
11306 "/vms/{vmid}",
11307 [
11308 "VM.Monitor"
11309 ]
11310 ]
11311 },
11312 "protected" : 1,
11313 "proxyto" : "node",
11314 "returns" : {
11315 "description" : "Returns an object with a single `result` property.",
11316 "type" : "object"
11317 }
11318 }
11319 },
11320 "leaf" : 1,
11321 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-host-name",
11322 "text" : "get-host-name"
11323 },
11324 {
11325 "info" : {
11326 "GET" : {
e9cd3bd4 11327 "allowtoken" : 1,
27a7acb2
DM
11328 "description" : "Execute get-memory-block-info.",
11329 "method" : "GET",
11330 "name" : "get-memory-block-info",
11331 "parameters" : {
11332 "additionalProperties" : 0,
11333 "properties" : {
11334 "node" : {
11335 "description" : "The cluster node name.",
11336 "format" : "pve-node",
11337 "type" : "string",
11338 "typetext" : "<string>"
11339 },
11340 "vmid" : {
11341 "description" : "The (unique) ID of the VM.",
11342 "format" : "pve-vmid",
11343 "minimum" : 1,
11344 "type" : "integer",
11345 "typetext" : "<integer> (1 - N)"
11346 }
11347 }
11348 },
11349 "permissions" : {
11350 "check" : [
11351 "perm",
11352 "/vms/{vmid}",
11353 [
11354 "VM.Monitor"
11355 ]
11356 ]
11357 },
11358 "protected" : 1,
11359 "proxyto" : "node",
11360 "returns" : {
11361 "description" : "Returns an object with a single `result` property.",
11362 "type" : "object"
11363 }
11364 }
11365 },
11366 "leaf" : 1,
11367 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-block-info",
11368 "text" : "get-memory-block-info"
11369 },
11370 {
11371 "info" : {
11372 "GET" : {
e9cd3bd4 11373 "allowtoken" : 1,
27a7acb2
DM
11374 "description" : "Execute get-memory-blocks.",
11375 "method" : "GET",
11376 "name" : "get-memory-blocks",
11377 "parameters" : {
11378 "additionalProperties" : 0,
11379 "properties" : {
11380 "node" : {
11381 "description" : "The cluster node name.",
11382 "format" : "pve-node",
11383 "type" : "string",
11384 "typetext" : "<string>"
11385 },
11386 "vmid" : {
11387 "description" : "The (unique) ID of the VM.",
11388 "format" : "pve-vmid",
11389 "minimum" : 1,
11390 "type" : "integer",
11391 "typetext" : "<integer> (1 - N)"
11392 }
11393 }
11394 },
11395 "permissions" : {
11396 "check" : [
11397 "perm",
11398 "/vms/{vmid}",
11399 [
11400 "VM.Monitor"
11401 ]
11402 ]
11403 },
11404 "protected" : 1,
11405 "proxyto" : "node",
11406 "returns" : {
11407 "description" : "Returns an object with a single `result` property.",
11408 "type" : "object"
11409 }
11410 }
11411 },
11412 "leaf" : 1,
11413 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-memory-blocks",
11414 "text" : "get-memory-blocks"
11415 },
11416 {
11417 "info" : {
11418 "GET" : {
e9cd3bd4 11419 "allowtoken" : 1,
27a7acb2
DM
11420 "description" : "Execute get-osinfo.",
11421 "method" : "GET",
11422 "name" : "get-osinfo",
11423 "parameters" : {
11424 "additionalProperties" : 0,
11425 "properties" : {
11426 "node" : {
11427 "description" : "The cluster node name.",
11428 "format" : "pve-node",
11429 "type" : "string",
11430 "typetext" : "<string>"
11431 },
11432 "vmid" : {
11433 "description" : "The (unique) ID of the VM.",
11434 "format" : "pve-vmid",
11435 "minimum" : 1,
11436 "type" : "integer",
11437 "typetext" : "<integer> (1 - N)"
11438 }
11439 }
11440 },
11441 "permissions" : {
11442 "check" : [
11443 "perm",
11444 "/vms/{vmid}",
11445 [
11446 "VM.Monitor"
11447 ]
11448 ]
11449 },
11450 "protected" : 1,
11451 "proxyto" : "node",
11452 "returns" : {
11453 "description" : "Returns an object with a single `result` property.",
11454 "type" : "object"
11455 }
11456 }
11457 },
11458 "leaf" : 1,
11459 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-osinfo",
11460 "text" : "get-osinfo"
11461 },
11462 {
11463 "info" : {
11464 "GET" : {
e9cd3bd4 11465 "allowtoken" : 1,
27a7acb2
DM
11466 "description" : "Execute get-time.",
11467 "method" : "GET",
11468 "name" : "get-time",
11469 "parameters" : {
11470 "additionalProperties" : 0,
11471 "properties" : {
11472 "node" : {
11473 "description" : "The cluster node name.",
11474 "format" : "pve-node",
11475 "type" : "string",
11476 "typetext" : "<string>"
11477 },
11478 "vmid" : {
11479 "description" : "The (unique) ID of the VM.",
11480 "format" : "pve-vmid",
11481 "minimum" : 1,
11482 "type" : "integer",
11483 "typetext" : "<integer> (1 - N)"
11484 }
11485 }
11486 },
11487 "permissions" : {
11488 "check" : [
11489 "perm",
11490 "/vms/{vmid}",
11491 [
11492 "VM.Monitor"
11493 ]
11494 ]
11495 },
11496 "protected" : 1,
11497 "proxyto" : "node",
11498 "returns" : {
11499 "description" : "Returns an object with a single `result` property.",
11500 "type" : "object"
11501 }
11502 }
11503 },
11504 "leaf" : 1,
11505 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-time",
11506 "text" : "get-time"
11507 },
11508 {
11509 "info" : {
11510 "GET" : {
e9cd3bd4 11511 "allowtoken" : 1,
27a7acb2
DM
11512 "description" : "Execute get-timezone.",
11513 "method" : "GET",
11514 "name" : "get-timezone",
11515 "parameters" : {
11516 "additionalProperties" : 0,
11517 "properties" : {
11518 "node" : {
11519 "description" : "The cluster node name.",
11520 "format" : "pve-node",
11521 "type" : "string",
11522 "typetext" : "<string>"
11523 },
11524 "vmid" : {
11525 "description" : "The (unique) ID of the VM.",
11526 "format" : "pve-vmid",
11527 "minimum" : 1,
11528 "type" : "integer",
11529 "typetext" : "<integer> (1 - N)"
11530 }
11531 }
11532 },
11533 "permissions" : {
11534 "check" : [
11535 "perm",
11536 "/vms/{vmid}",
11537 [
11538 "VM.Monitor"
11539 ]
11540 ]
11541 },
11542 "protected" : 1,
11543 "proxyto" : "node",
11544 "returns" : {
11545 "description" : "Returns an object with a single `result` property.",
11546 "type" : "object"
11547 }
11548 }
11549 },
11550 "leaf" : 1,
11551 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-timezone",
11552 "text" : "get-timezone"
11553 },
11554 {
11555 "info" : {
11556 "GET" : {
e9cd3bd4 11557 "allowtoken" : 1,
27a7acb2
DM
11558 "description" : "Execute get-users.",
11559 "method" : "GET",
11560 "name" : "get-users",
11561 "parameters" : {
11562 "additionalProperties" : 0,
11563 "properties" : {
11564 "node" : {
11565 "description" : "The cluster node name.",
11566 "format" : "pve-node",
11567 "type" : "string",
11568 "typetext" : "<string>"
11569 },
11570 "vmid" : {
11571 "description" : "The (unique) ID of the VM.",
11572 "format" : "pve-vmid",
11573 "minimum" : 1,
11574 "type" : "integer",
11575 "typetext" : "<integer> (1 - N)"
11576 }
11577 }
11578 },
11579 "permissions" : {
11580 "check" : [
11581 "perm",
11582 "/vms/{vmid}",
11583 [
11584 "VM.Monitor"
11585 ]
11586 ]
11587 },
11588 "protected" : 1,
11589 "proxyto" : "node",
11590 "returns" : {
11591 "description" : "Returns an object with a single `result` property.",
11592 "type" : "object"
11593 }
11594 }
11595 },
11596 "leaf" : 1,
11597 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-users",
11598 "text" : "get-users"
11599 },
11600 {
11601 "info" : {
11602 "GET" : {
e9cd3bd4 11603 "allowtoken" : 1,
27a7acb2
DM
11604 "description" : "Execute get-vcpus.",
11605 "method" : "GET",
11606 "name" : "get-vcpus",
11607 "parameters" : {
11608 "additionalProperties" : 0,
11609 "properties" : {
11610 "node" : {
11611 "description" : "The cluster node name.",
11612 "format" : "pve-node",
11613 "type" : "string",
11614 "typetext" : "<string>"
11615 },
11616 "vmid" : {
11617 "description" : "The (unique) ID of the VM.",
11618 "format" : "pve-vmid",
11619 "minimum" : 1,
11620 "type" : "integer",
11621 "typetext" : "<integer> (1 - N)"
11622 }
11623 }
11624 },
11625 "permissions" : {
11626 "check" : [
11627 "perm",
11628 "/vms/{vmid}",
11629 [
11630 "VM.Monitor"
11631 ]
11632 ]
11633 },
11634 "protected" : 1,
11635 "proxyto" : "node",
11636 "returns" : {
11637 "description" : "Returns an object with a single `result` property.",
11638 "type" : "object"
11639 }
11640 }
11641 },
11642 "leaf" : 1,
11643 "path" : "/nodes/{node}/qemu/{vmid}/agent/get-vcpus",
11644 "text" : "get-vcpus"
11645 },
11646 {
11647 "info" : {
11648 "GET" : {
e9cd3bd4 11649 "allowtoken" : 1,
27a7acb2
DM
11650 "description" : "Execute info.",
11651 "method" : "GET",
11652 "name" : "info",
11653 "parameters" : {
11654 "additionalProperties" : 0,
11655 "properties" : {
11656 "node" : {
11657 "description" : "The cluster node name.",
11658 "format" : "pve-node",
11659 "type" : "string",
11660 "typetext" : "<string>"
11661 },
11662 "vmid" : {
11663 "description" : "The (unique) ID of the VM.",
11664 "format" : "pve-vmid",
11665 "minimum" : 1,
11666 "type" : "integer",
11667 "typetext" : "<integer> (1 - N)"
11668 }
11669 }
11670 },
11671 "permissions" : {
11672 "check" : [
11673 "perm",
11674 "/vms/{vmid}",
11675 [
11676 "VM.Monitor"
11677 ]
11678 ]
11679 },
11680 "protected" : 1,
11681 "proxyto" : "node",
11682 "returns" : {
11683 "description" : "Returns an object with a single `result` property.",
11684 "type" : "object"
11685 }
11686 }
11687 },
11688 "leaf" : 1,
11689 "path" : "/nodes/{node}/qemu/{vmid}/agent/info",
11690 "text" : "info"
11691 },
11692 {
11693 "info" : {
11694 "GET" : {
e9cd3bd4 11695 "allowtoken" : 1,
27a7acb2
DM
11696 "description" : "Execute network-get-interfaces.",
11697 "method" : "GET",
11698 "name" : "network-get-interfaces",
11699 "parameters" : {
11700 "additionalProperties" : 0,
11701 "properties" : {
11702 "node" : {
11703 "description" : "The cluster node name.",
11704 "format" : "pve-node",
11705 "type" : "string",
11706 "typetext" : "<string>"
11707 },
11708 "vmid" : {
11709 "description" : "The (unique) ID of the VM.",
11710 "format" : "pve-vmid",
11711 "minimum" : 1,
11712 "type" : "integer",
11713 "typetext" : "<integer> (1 - N)"
11714 }
11715 }
11716 },
11717 "permissions" : {
11718 "check" : [
11719 "perm",
11720 "/vms/{vmid}",
11721 [
11722 "VM.Monitor"
11723 ]
11724 ]
11725 },
11726 "protected" : 1,
11727 "proxyto" : "node",
11728 "returns" : {
11729 "description" : "Returns an object with a single `result` property.",
11730 "type" : "object"
11731 }
11732 }
11733 },
11734 "leaf" : 1,
11735 "path" : "/nodes/{node}/qemu/{vmid}/agent/network-get-interfaces",
11736 "text" : "network-get-interfaces"
11737 },
11738 {
11739 "info" : {
11740 "POST" : {
e9cd3bd4 11741 "allowtoken" : 1,
27a7acb2
DM
11742 "description" : "Execute ping.",
11743 "method" : "POST",
11744 "name" : "ping",
11745 "parameters" : {
11746 "additionalProperties" : 0,
11747 "properties" : {
11748 "node" : {
11749 "description" : "The cluster node name.",
11750 "format" : "pve-node",
11751 "type" : "string",
11752 "typetext" : "<string>"
11753 },
11754 "vmid" : {
11755 "description" : "The (unique) ID of the VM.",
11756 "format" : "pve-vmid",
11757 "minimum" : 1,
11758 "type" : "integer",
11759 "typetext" : "<integer> (1 - N)"
11760 }
11761 }
11762 },
11763 "permissions" : {
11764 "check" : [
11765 "perm",
11766 "/vms/{vmid}",
11767 [
11768 "VM.Monitor"
11769 ]
11770 ]
11771 },
11772 "protected" : 1,
11773 "proxyto" : "node",
11774 "returns" : {
11775 "description" : "Returns an object with a single `result` property.",
11776 "type" : "object"
11777 }
11778 }
11779 },
11780 "leaf" : 1,
11781 "path" : "/nodes/{node}/qemu/{vmid}/agent/ping",
11782 "text" : "ping"
11783 },
11784 {
11785 "info" : {
11786 "POST" : {
e9cd3bd4 11787 "allowtoken" : 1,
27a7acb2
DM
11788 "description" : "Execute shutdown.",
11789 "method" : "POST",
11790 "name" : "shutdown",
11791 "parameters" : {
11792 "additionalProperties" : 0,
11793 "properties" : {
11794 "node" : {
11795 "description" : "The cluster node name.",
11796 "format" : "pve-node",
11797 "type" : "string",
11798 "typetext" : "<string>"
11799 },
11800 "vmid" : {
11801 "description" : "The (unique) ID of the VM.",
11802 "format" : "pve-vmid",
11803 "minimum" : 1,
11804 "type" : "integer",
11805 "typetext" : "<integer> (1 - N)"
11806 }
11807 }
11808 },
11809 "permissions" : {
11810 "check" : [
11811 "perm",
11812 "/vms/{vmid}",
11813 [
11814 "VM.Monitor"
11815 ]
11816 ]
11817 },
11818 "protected" : 1,
11819 "proxyto" : "node",
11820 "returns" : {
11821 "description" : "Returns an object with a single `result` property.",
11822 "type" : "object"
11823 }
11824 }
11825 },
11826 "leaf" : 1,
11827 "path" : "/nodes/{node}/qemu/{vmid}/agent/shutdown",
11828 "text" : "shutdown"
11829 },
11830 {
11831 "info" : {
11832 "POST" : {
e9cd3bd4 11833 "allowtoken" : 1,
27a7acb2
DM
11834 "description" : "Execute suspend-disk.",
11835 "method" : "POST",
11836 "name" : "suspend-disk",
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 "vmid" : {
11847 "description" : "The (unique) ID of the VM.",
11848 "format" : "pve-vmid",
11849 "minimum" : 1,
11850 "type" : "integer",
11851 "typetext" : "<integer> (1 - N)"
11852 }
11853 }
11854 },
11855 "permissions" : {
11856 "check" : [
11857 "perm",
11858 "/vms/{vmid}",
11859 [
11860 "VM.Monitor"
11861 ]
11862 ]
11863 },
11864 "protected" : 1,
11865 "proxyto" : "node",
11866 "returns" : {
11867 "description" : "Returns an object with a single `result` property.",
11868 "type" : "object"
11869 }
11870 }
11871 },
11872 "leaf" : 1,
11873 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-disk",
11874 "text" : "suspend-disk"
11875 },
11876 {
11877 "info" : {
11878 "POST" : {
e9cd3bd4 11879 "allowtoken" : 1,
27a7acb2
DM
11880 "description" : "Execute suspend-hybrid.",
11881 "method" : "POST",
11882 "name" : "suspend-hybrid",
11883 "parameters" : {
11884 "additionalProperties" : 0,
11885 "properties" : {
11886 "node" : {
11887 "description" : "The cluster node name.",
11888 "format" : "pve-node",
11889 "type" : "string",
11890 "typetext" : "<string>"
11891 },
11892 "vmid" : {
11893 "description" : "The (unique) ID of the VM.",
11894 "format" : "pve-vmid",
11895 "minimum" : 1,
11896 "type" : "integer",
11897 "typetext" : "<integer> (1 - N)"
11898 }
11899 }
11900 },
11901 "permissions" : {
11902 "check" : [
11903 "perm",
11904 "/vms/{vmid}",
11905 [
11906 "VM.Monitor"
11907 ]
11908 ]
11909 },
11910 "protected" : 1,
11911 "proxyto" : "node",
11912 "returns" : {
11913 "description" : "Returns an object with a single `result` property.",
11914 "type" : "object"
11915 }
11916 }
11917 },
11918 "leaf" : 1,
11919 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-hybrid",
11920 "text" : "suspend-hybrid"
11921 },
11922 {
11923 "info" : {
11924 "POST" : {
e9cd3bd4 11925 "allowtoken" : 1,
27a7acb2
DM
11926 "description" : "Execute suspend-ram.",
11927 "method" : "POST",
11928 "name" : "suspend-ram",
11929 "parameters" : {
11930 "additionalProperties" : 0,
11931 "properties" : {
11932 "node" : {
11933 "description" : "The cluster node name.",
11934 "format" : "pve-node",
11935 "type" : "string",
11936 "typetext" : "<string>"
11937 },
11938 "vmid" : {
11939 "description" : "The (unique) ID of the VM.",
11940 "format" : "pve-vmid",
11941 "minimum" : 1,
11942 "type" : "integer",
11943 "typetext" : "<integer> (1 - N)"
11944 }
11945 }
11946 },
11947 "permissions" : {
11948 "check" : [
11949 "perm",
11950 "/vms/{vmid}",
11951 [
11952 "VM.Monitor"
11953 ]
11954 ]
11955 },
11956 "protected" : 1,
11957 "proxyto" : "node",
11958 "returns" : {
11959 "description" : "Returns an object with a single `result` property.",
11960 "type" : "object"
11961 }
11962 }
11963 },
11964 "leaf" : 1,
11965 "path" : "/nodes/{node}/qemu/{vmid}/agent/suspend-ram",
11966 "text" : "suspend-ram"
4d47f125
TL
11967 },
11968 {
11969 "info" : {
11970 "POST" : {
e9cd3bd4 11971 "allowtoken" : 1,
4d47f125
TL
11972 "description" : "Sets the password for the given user to the given password",
11973 "method" : "POST",
11974 "name" : "set-user-password",
11975 "parameters" : {
11976 "additionalProperties" : 0,
11977 "properties" : {
11978 "crypted" : {
11979 "default" : 0,
11980 "description" : "set to 1 if the password has already been passed through crypt()",
11981 "optional" : 1,
11982 "type" : "boolean",
11983 "typetext" : "<boolean>"
11984 },
11985 "node" : {
11986 "description" : "The cluster node name.",
11987 "format" : "pve-node",
11988 "type" : "string",
11989 "typetext" : "<string>"
11990 },
11991 "password" : {
11992 "description" : "The new password.",
1c532546 11993 "maxLength" : 1024,
4d47f125
TL
11994 "minLength" : 5,
11995 "type" : "string",
11996 "typetext" : "<string>"
11997 },
11998 "username" : {
11999 "description" : "The user to set the password for.",
12000 "type" : "string",
12001 "typetext" : "<string>"
12002 },
12003 "vmid" : {
12004 "description" : "The (unique) ID of the VM.",
12005 "format" : "pve-vmid",
12006 "minimum" : 1,
12007 "type" : "integer",
12008 "typetext" : "<integer> (1 - N)"
12009 }
12010 }
27a7acb2 12011 },
4d47f125
TL
12012 "permissions" : {
12013 "check" : [
12014 "perm",
12015 "/vms/{vmid}",
12016 [
12017 "VM.Monitor"
12018 ]
12019 ]
12020 },
12021 "protected" : 1,
12022 "proxyto" : "node",
12023 "returns" : {
12024 "description" : "Returns an object with a single `result` property.",
12025 "type" : "object"
27a7acb2
DM
12026 }
12027 }
12028 },
4d47f125
TL
12029 "leaf" : 1,
12030 "path" : "/nodes/{node}/qemu/{vmid}/agent/set-user-password",
12031 "text" : "set-user-password"
27a7acb2 12032 },
4d47f125
TL
12033 {
12034 "info" : {
12035 "POST" : {
e9cd3bd4 12036 "allowtoken" : 1,
4d47f125
TL
12037 "description" : "Executes the given command in the vm via the guest-agent and returns an object with the pid.",
12038 "method" : "POST",
12039 "name" : "exec",
12040 "parameters" : {
12041 "additionalProperties" : 0,
12042 "properties" : {
12043 "command" : {
12044 "description" : "The command as a list of program + arguments",
12045 "format" : "string-alist",
c5aa7e14
TL
12046 "optional" : 1,
12047 "type" : "string",
12048 "typetext" : "<string>"
12049 },
12050 "input-data" : {
12051 "description" : "Data to pass as 'input-data' to the guest. Usually treated as STDIN to 'command'.",
12052 "maxLength" : 65536,
12053 "optional" : 1,
4d47f125
TL
12054 "type" : "string",
12055 "typetext" : "<string>"
12056 },
12057 "node" : {
12058 "description" : "The cluster node name.",
12059 "format" : "pve-node",
12060 "type" : "string",
12061 "typetext" : "<string>"
12062 },
12063 "vmid" : {
12064 "description" : "The (unique) ID of the VM.",
12065 "format" : "pve-vmid",
12066 "minimum" : 1,
12067 "type" : "integer",
12068 "typetext" : "<integer> (1 - N)"
12069 }
12070 }
27a7acb2 12071 },
4d47f125
TL
12072 "permissions" : {
12073 "check" : [
12074 "perm",
12075 "/vms/{vmid}",
12076 [
12077 "VM.Monitor"
12078 ]
12079 ]
27a7acb2 12080 },
4d47f125
TL
12081 "protected" : 1,
12082 "proxyto" : "node",
12083 "returns" : {
12084 "properties" : {
12085 "pid" : {
12086 "description" : "The PID of the process started by the guest-agent.",
12087 "type" : "integer"
12088 }
12089 },
12090 "type" : "object"
27a7acb2
DM
12091 }
12092 }
12093 },
4d47f125
TL
12094 "leaf" : 1,
12095 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec",
12096 "text" : "exec"
12097 },
12098 {
12099 "info" : {
12100 "GET" : {
e9cd3bd4 12101 "allowtoken" : 1,
4d47f125
TL
12102 "description" : "Gets the status of the given pid started by the guest-agent",
12103 "method" : "GET",
12104 "name" : "exec-status",
12105 "parameters" : {
12106 "additionalProperties" : 0,
12107 "properties" : {
12108 "node" : {
12109 "description" : "The cluster node name.",
12110 "format" : "pve-node",
12111 "type" : "string",
12112 "typetext" : "<string>"
12113 },
12114 "pid" : {
12115 "description" : "The PID to query",
12116 "type" : "integer",
12117 "typetext" : "<integer>"
12118 },
12119 "vmid" : {
12120 "description" : "The (unique) ID of the VM.",
12121 "format" : "pve-vmid",
12122 "minimum" : 1,
12123 "type" : "integer",
12124 "typetext" : "<integer> (1 - N)"
12125 }
12126 }
56122987 12127 },
4d47f125
TL
12128 "permissions" : {
12129 "check" : [
12130 "perm",
12131 "/vms/{vmid}",
12132 [
12133 "VM.Monitor"
12134 ]
12135 ]
56122987 12136 },
4d47f125
TL
12137 "protected" : 1,
12138 "proxyto" : "node",
12139 "returns" : {
12140 "properties" : {
12141 "err-data" : {
12142 "description" : "stderr of the process",
12143 "optional" : 1,
12144 "type" : "string"
12145 },
12146 "err-truncated" : {
12147 "description" : "true if stderr was not fully captured",
12148 "optional" : 1,
12149 "type" : "boolean"
12150 },
12151 "exitcode" : {
12152 "description" : "process exit code if it was normally terminated.",
12153 "optional" : 1,
12154 "type" : "integer"
12155 },
12156 "exited" : {
12157 "description" : "Tells if the given command has exited yet.",
12158 "type" : "boolean"
12159 },
12160 "out-data" : {
12161 "description" : "stdout of the process",
12162 "optional" : 1,
12163 "type" : "string"
12164 },
12165 "out-truncated" : {
12166 "description" : "true if stdout was not fully captured",
12167 "optional" : 1,
12168 "type" : "boolean"
12169 },
12170 "signal" : {
12171 "description" : "signal number or exception code if the process was abnormally terminated.",
12172 "optional" : 1,
12173 "type" : "integer"
12174 }
12175 },
12176 "type" : "object"
56122987
DM
12177 }
12178 }
12179 },
4d47f125
TL
12180 "leaf" : 1,
12181 "path" : "/nodes/{node}/qemu/{vmid}/agent/exec-status",
12182 "text" : "exec-status"
12183 },
12184 {
12185 "info" : {
12186 "GET" : {
e9cd3bd4 12187 "allowtoken" : 1,
4d47f125
TL
12188 "description" : "Reads the given file via guest agent. Is limited to 16777216 bytes.",
12189 "method" : "GET",
12190 "name" : "file-read",
12191 "parameters" : {
12192 "additionalProperties" : 0,
12193 "properties" : {
12194 "file" : {
12195 "description" : "The path to the file",
12196 "type" : "string",
12197 "typetext" : "<string>"
12198 },
12199 "node" : {
12200 "description" : "The cluster node name.",
12201 "format" : "pve-node",
12202 "type" : "string",
12203 "typetext" : "<string>"
12204 },
12205 "vmid" : {
12206 "description" : "The (unique) ID of the VM.",
12207 "format" : "pve-vmid",
12208 "minimum" : 1,
12209 "type" : "integer",
12210 "typetext" : "<integer> (1 - N)"
12211 }
12212 }
12213 },
12214 "permissions" : {
12215 "check" : [
12216 "perm",
12217 "/vms/{vmid}",
12218 [
12219 "VM.Monitor"
12220 ]
12221 ]
12222 },
12223 "protected" : 1,
12224 "proxyto" : "node",
12225 "returns" : {
12226 "description" : "Returns an object with a `content` property.",
12227 "properties" : {
12228 "content" : {
12229 "description" : "The content of the file, maximum 16777216",
12230 "type" : "string"
12231 },
12232 "truncated" : {
12233 "description" : "If set to 1, the output is truncated and not complete",
12234 "optional" : 1,
12235 "type" : "boolean"
12236 }
12237 },
12238 "type" : "object"
12239 }
12240 }
56122987 12241 },
4d47f125
TL
12242 "leaf" : 1,
12243 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-read",
12244 "text" : "file-read"
12245 },
12246 {
12247 "info" : {
12248 "POST" : {
e9cd3bd4 12249 "allowtoken" : 1,
4d47f125
TL
12250 "description" : "Writes the given file via guest agent.",
12251 "method" : "POST",
12252 "name" : "file-write",
12253 "parameters" : {
12254 "additionalProperties" : 0,
12255 "properties" : {
12256 "content" : {
12257 "description" : "The content to write into the file.",
12258 "maxLength" : 61440,
12259 "type" : "string",
12260 "typetext" : "<string>"
12261 },
7af2edf9
TL
12262 "encode" : {
12263 "default" : 1,
12264 "description" : "If set, the content will be encoded as base64 (required by QEMU).Otherwise the content needs to be encoded beforehand - defaults to true.",
12265 "optional" : 1,
12266 "type" : "boolean",
12267 "typetext" : "<boolean>"
12268 },
4d47f125
TL
12269 "file" : {
12270 "description" : "The path to the file.",
12271 "type" : "string",
12272 "typetext" : "<string>"
12273 },
12274 "node" : {
12275 "description" : "The cluster node name.",
12276 "format" : "pve-node",
12277 "type" : "string",
12278 "typetext" : "<string>"
12279 },
12280 "vmid" : {
12281 "description" : "The (unique) ID of the VM.",
12282 "format" : "pve-vmid",
12283 "minimum" : 1,
12284 "type" : "integer",
12285 "typetext" : "<integer> (1 - N)"
12286 }
12287 }
12288 },
12289 "permissions" : {
12290 "check" : [
12291 "perm",
12292 "/vms/{vmid}",
12293 [
12294 "VM.Monitor"
12295 ]
12296 ]
12297 },
12298 "protected" : 1,
12299 "proxyto" : "node",
12300 "returns" : {
12301 "type" : "null"
7aacca6f 12302 }
4d47f125
TL
12303 }
12304 },
12305 "leaf" : 1,
12306 "path" : "/nodes/{node}/qemu/{vmid}/agent/file-write",
12307 "text" : "file-write"
56122987 12308 }
4d47f125 12309 ],
7aacca6f 12310 "info" : {
56122987 12311 "GET" : {
e9cd3bd4 12312 "allowtoken" : 1,
4d47f125 12313 "description" : "Qemu Agent command index.",
44660702 12314 "method" : "GET",
4d47f125 12315 "name" : "index",
56122987 12316 "parameters" : {
4d47f125 12317 "additionalProperties" : 1,
56122987
DM
12318 "properties" : {
12319 "node" : {
44660702 12320 "description" : "The cluster node name.",
56122987 12321 "format" : "pve-node",
013dc89f
DM
12322 "type" : "string",
12323 "typetext" : "<string>"
56122987 12324 },
7aacca6f 12325 "vmid" : {
7aacca6f
DM
12326 "description" : "The (unique) ID of the VM.",
12327 "format" : "pve-vmid",
44660702 12328 "minimum" : 1,
4bd7df8b 12329 "type" : "integer",
013dc89f 12330 "typetext" : "<integer> (1 - N)"
56122987 12331 }
44660702 12332 }
56122987 12333 },
56122987 12334 "permissions" : {
4d47f125 12335 "user" : "all"
56122987 12336 },
4d47f125 12337 "proxyto" : "node",
7aacca6f 12338 "returns" : {
4d47f125 12339 "description" : "Returns the list of Qemu Agent commands",
7aacca6f 12340 "items" : {
44660702
DM
12341 "properties" : {},
12342 "type" : "object"
12343 },
4d47f125
TL
12344 "links" : [
12345 {
12346 "href" : "{name}",
12347 "rel" : "child"
12348 }
12349 ],
44660702 12350 "type" : "array"
7aacca6f 12351 }
4d47f125
TL
12352 },
12353 "POST" : {
e9cd3bd4 12354 "allowtoken" : 1,
4d47f125
TL
12355 "description" : "Execute Qemu Guest Agent commands.",
12356 "method" : "POST",
12357 "name" : "agent",
44660702
DM
12358 "parameters" : {
12359 "additionalProperties" : 0,
12360 "properties" : {
4d47f125
TL
12361 "command" : {
12362 "description" : "The QGA command.",
12363 "enum" : [
12364 "fsfreeze-freeze",
12365 "fsfreeze-status",
12366 "fsfreeze-thaw",
12367 "fstrim",
12368 "get-fsinfo",
12369 "get-host-name",
12370 "get-memory-block-info",
12371 "get-memory-blocks",
12372 "get-osinfo",
12373 "get-time",
12374 "get-timezone",
12375 "get-users",
12376 "get-vcpus",
12377 "info",
12378 "network-get-interfaces",
12379 "ping",
12380 "shutdown",
12381 "suspend-disk",
12382 "suspend-hybrid",
12383 "suspend-ram"
12384 ],
12385 "type" : "string"
12386 },
12387 "node" : {
12388 "description" : "The cluster node name.",
12389 "format" : "pve-node",
12390 "type" : "string",
12391 "typetext" : "<string>"
12392 },
12393 "vmid" : {
12394 "description" : "The (unique) ID of the VM.",
12395 "format" : "pve-vmid",
12396 "minimum" : 1,
12397 "type" : "integer",
12398 "typetext" : "<integer> (1 - N)"
12399 }
12400 }
12401 },
12402 "permissions" : {
12403 "check" : [
12404 "perm",
12405 "/vms/{vmid}",
12406 [
12407 "VM.Monitor"
12408 ]
12409 ]
12410 },
12411 "protected" : 1,
12412 "proxyto" : "node",
12413 "returns" : {
12414 "description" : "Returns an object with a single `result` property.",
12415 "type" : "object"
12416 }
12417 }
12418 },
12419 "leaf" : 0,
12420 "path" : "/nodes/{node}/qemu/{vmid}/agent",
12421 "text" : "agent"
12422 },
12423 {
12424 "info" : {
12425 "GET" : {
e9cd3bd4 12426 "allowtoken" : 1,
4d47f125
TL
12427 "description" : "Read VM RRD statistics (returns PNG)",
12428 "method" : "GET",
12429 "name" : "rrd",
12430 "parameters" : {
12431 "additionalProperties" : 0,
12432 "properties" : {
12433 "cf" : {
12434 "description" : "The RRD consolidation function",
12435 "enum" : [
12436 "AVERAGE",
12437 "MAX"
12438 ],
44660702 12439 "optional" : 1,
4d47f125
TL
12440 "type" : "string"
12441 },
12442 "ds" : {
12443 "description" : "The list of datasources you want to display.",
12444 "format" : "pve-configid-list",
12445 "type" : "string",
12446 "typetext" : "<string>"
44660702
DM
12447 },
12448 "node" : {
12449 "description" : "The cluster node name.",
12450 "format" : "pve-node",
013dc89f
DM
12451 "type" : "string",
12452 "typetext" : "<string>"
44660702 12453 },
4d47f125
TL
12454 "timeframe" : {
12455 "description" : "Specify the time frame you are interested in.",
12456 "enum" : [
12457 "hour",
12458 "day",
12459 "week",
12460 "month",
12461 "year"
12462 ],
12463 "type" : "string"
12464 },
44660702
DM
12465 "vmid" : {
12466 "description" : "The (unique) ID of the VM.",
12467 "format" : "pve-vmid",
12468 "minimum" : 1,
4bd7df8b 12469 "type" : "integer",
013dc89f 12470 "typetext" : "<integer> (1 - N)"
44660702
DM
12471 }
12472 }
7aacca6f 12473 },
56122987
DM
12474 "permissions" : {
12475 "check" : [
12476 "perm",
12477 "/vms/{vmid}",
12478 [
44660702
DM
12479 "VM.Audit"
12480 ]
56122987
DM
12481 ]
12482 },
4d47f125 12483 "protected" : 1,
44660702
DM
12484 "returns" : {
12485 "properties" : {
4d47f125 12486 "filename" : {
44660702
DM
12487 "type" : "string"
12488 }
12489 },
12490 "type" : "object"
12491 }
4d47f125
TL
12492 }
12493 },
12494 "leaf" : 1,
12495 "path" : "/nodes/{node}/qemu/{vmid}/rrd",
12496 "text" : "rrd"
12497 },
12498 {
12499 "info" : {
12500 "GET" : {
e9cd3bd4 12501 "allowtoken" : 1,
4d47f125
TL
12502 "description" : "Read VM RRD statistics",
12503 "method" : "GET",
12504 "name" : "rrddata",
12505 "parameters" : {
12506 "additionalProperties" : 0,
12507 "properties" : {
12508 "cf" : {
12509 "description" : "The RRD consolidation function",
12510 "enum" : [
12511 "AVERAGE",
12512 "MAX"
12513 ],
12514 "optional" : 1,
12515 "type" : "string"
12516 },
12517 "node" : {
12518 "description" : "The cluster node name.",
12519 "format" : "pve-node",
12520 "type" : "string",
12521 "typetext" : "<string>"
12522 },
12523 "timeframe" : {
12524 "description" : "Specify the time frame you are interested in.",
12525 "enum" : [
12526 "hour",
12527 "day",
12528 "week",
12529 "month",
12530 "year"
12531 ],
12532 "type" : "string"
12533 },
12534 "vmid" : {
12535 "description" : "The (unique) ID of the VM.",
12536 "format" : "pve-vmid",
12537 "minimum" : 1,
12538 "type" : "integer",
12539 "typetext" : "<integer> (1 - N)"
12540 }
12541 }
12542 },
12543 "permissions" : {
12544 "check" : [
12545 "perm",
12546 "/vms/{vmid}",
12547 [
12548 "VM.Audit"
12549 ]
12550 ]
12551 },
12552 "protected" : 1,
12553 "returns" : {
12554 "items" : {
12555 "properties" : {},
12556 "type" : "object"
12557 },
12558 "type" : "array"
12559 }
12560 }
12561 },
12562 "leaf" : 1,
12563 "path" : "/nodes/{node}/qemu/{vmid}/rrddata",
12564 "text" : "rrddata"
12565 },
12566 {
12567 "info" : {
12568 "GET" : {
e9cd3bd4
TL
12569 "allowtoken" : 1,
12570 "description" : "Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead.",
4d47f125
TL
12571 "method" : "GET",
12572 "name" : "vm_config",
56122987 12573 "parameters" : {
44660702 12574 "additionalProperties" : 0,
4d47f125
TL
12575 "properties" : {
12576 "current" : {
12577 "default" : 0,
12578 "description" : "Get current values (instead of pending values).",
12579 "optional" : 1,
12580 "type" : "boolean",
12581 "typetext" : "<boolean>"
12582 },
12583 "node" : {
12584 "description" : "The cluster node name.",
12585 "format" : "pve-node",
12586 "type" : "string",
12587 "typetext" : "<string>"
12588 },
5f26e15b
TL
12589 "snapshot" : {
12590 "description" : "Fetch config values from given snapshot.",
12591 "format" : "pve-configid",
12592 "maxLength" : 40,
12593 "optional" : 1,
12594 "type" : "string",
12595 "typetext" : "<string>"
12596 },
4d47f125
TL
12597 "vmid" : {
12598 "description" : "The (unique) ID of the VM.",
12599 "format" : "pve-vmid",
12600 "minimum" : 1,
12601 "type" : "integer",
12602 "typetext" : "<integer> (1 - N)"
12603 }
12604 }
12605 },
12606 "permissions" : {
12607 "check" : [
12608 "perm",
12609 "/vms/{vmid}",
12610 [
12611 "VM.Audit"
12612 ]
12613 ]
12614 },
12615 "proxyto" : "node",
12616 "returns" : {
e9cd3bd4 12617 "description" : "The VM configuration.",
56122987 12618 "properties" : {
44660702
DM
12619 "acpi" : {
12620 "default" : 1,
12621 "description" : "Enable/disable ACPI.",
12622 "optional" : 1,
4d47f125 12623 "type" : "boolean"
44660702 12624 },
4e7f60c2 12625 "affinity" : {
81a3384d 12626 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
12627 "format" : "pve-cpuset",
12628 "optional" : 1,
12629 "type" : "string"
12630 },
44660702 12631 "agent" : {
5370fa8c 12632 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
12633 "format" : {
12634 "enabled" : {
12635 "default" : 0,
12636 "default_key" : 1,
5370fa8c 12637 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
12638 "type" : "boolean"
12639 },
12640 "fstrim_cloned_disks" : {
12641 "default" : 0,
d2656385 12642 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
12643 "optional" : 1,
12644 "type" : "boolean"
5c1699e5
TL
12645 },
12646 "type" : {
12647 "default" : "virtio",
12648 "description" : "Select the agent type",
12649 "enum" : [
12650 "virtio",
12651 "isa"
12652 ],
12653 "optional" : 1,
12654 "type" : "string"
4d47f125
TL
12655 }
12656 },
7aacca6f 12657 "optional" : 1,
4d47f125 12658 "type" : "string"
7aacca6f 12659 },
e2d681b3
TL
12660 "arch" : {
12661 "description" : "Virtual processor architecture. Defaults to the host.",
12662 "enum" : [
12663 "x86_64",
12664 "aarch64"
12665 ],
12666 "optional" : 1,
12667 "type" : "string"
12668 },
44660702 12669 "args" : {
c2993fe5 12670 "description" : "Arbitrary arguments passed to kvm.",
44660702 12671 "optional" : 1,
c2993fe5
DM
12672 "type" : "string",
12673 "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 12674 },
1c532546
TL
12675 "audio0" : {
12676 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
12677 "format" : {
12678 "device" : {
12679 "description" : "Configure an audio device.",
12680 "enum" : [
12681 "ich9-intel-hda",
12682 "intel-hda",
12683 "AC97"
12684 ],
12685 "type" : "string"
12686 },
12687 "driver" : {
12688 "default" : "spice",
12689 "description" : "Driver backend for the audio device.",
12690 "enum" : [
d2656385
TL
12691 "spice",
12692 "none"
1c532546
TL
12693 ],
12694 "optional" : 1,
12695 "type" : "string"
12696 }
12697 },
12698 "optional" : 1,
12699 "type" : "string"
12700 },
44660702
DM
12701 "autostart" : {
12702 "default" : 0,
12703 "description" : "Automatic restart after crash (currently ignored).",
56122987 12704 "optional" : 1,
4d47f125 12705 "type" : "boolean"
56122987 12706 },
4d47f125
TL
12707 "balloon" : {
12708 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
12709 "minimum" : 0,
7aacca6f 12710 "optional" : 1,
4d47f125 12711 "type" : "integer"
7aacca6f 12712 },
44660702
DM
12713 "bios" : {
12714 "default" : "seabios",
12715 "description" : "Select BIOS implementation.",
12716 "enum" : [
12717 "seabios",
12718 "ovmf"
12719 ],
56122987 12720 "optional" : 1,
44660702 12721 "type" : "string"
7aacca6f 12722 },
44660702 12723 "boot" : {
5370fa8c 12724 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 12725 "format" : "pve-qm-boot",
44660702 12726 "optional" : 1,
44660702
DM
12727 "type" : "string"
12728 },
12729 "bootdisk" : {
4772952b 12730 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
12731 "format" : "pve-qm-bootdisk",
12732 "optional" : 1,
12733 "pattern" : "(ide|sata|scsi|virtio)\\d+",
12734 "type" : "string"
12735 },
12736 "cdrom" : {
12737 "description" : "This is an alias for option -ide2",
de0983cb 12738 "format" : "pve-qm-ide",
44660702 12739 "optional" : 1,
7aacca6f 12740 "type" : "string",
013dc89f 12741 "typetext" : "<volume>"
44660702 12742 },
95895385
TL
12743 "cicustom" : {
12744 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
12745 "format" : "pve-qm-cicustom",
12746 "optional" : 1,
12747 "type" : "string"
12748 },
27a7acb2
DM
12749 "cipassword" : {
12750 "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.",
12751 "optional" : 1,
4d47f125 12752 "type" : "string"
27a7acb2
DM
12753 },
12754 "citype" : {
12755 "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.",
12756 "enum" : [
12757 "configdrive2",
d2656385
TL
12758 "nocloud",
12759 "opennebula"
27a7acb2
DM
12760 ],
12761 "optional" : 1,
12762 "type" : "string"
12763 },
12764 "ciuser" : {
12765 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
12766 "optional" : 1,
4d47f125 12767 "type" : "string"
27a7acb2 12768 },
44660702
DM
12769 "cores" : {
12770 "default" : 1,
12771 "description" : "The number of cores per socket.",
12772 "minimum" : 1,
7aacca6f 12773 "optional" : 1,
4d47f125 12774 "type" : "integer"
7aacca6f 12775 },
44660702
DM
12776 "cpu" : {
12777 "description" : "Emulated CPU type.",
c5aa7e14 12778 "format" : "pve-vm-cpu-conf",
44660702 12779 "optional" : 1,
4d47f125 12780 "type" : "string"
44660702
DM
12781 },
12782 "cpulimit" : {
12783 "default" : 0,
c2993fe5 12784 "description" : "Limit of CPU usage.",
44660702
DM
12785 "maximum" : 128,
12786 "minimum" : 0,
12787 "optional" : 1,
c2993fe5
DM
12788 "type" : "number",
12789 "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
12790 },
12791 "cpuunits" : {
5370fa8c
TL
12792 "default" : "cgroup v1: 1024, cgroup v2: 100",
12793 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 12794 "maximum" : 262144,
7af2edf9 12795 "minimum" : 1,
44660702 12796 "optional" : 1,
c2993fe5 12797 "type" : "integer",
2489d6df 12798 "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 12799 },
44660702 12800 "description" : {
8f4d9c87
TL
12801 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
12802 "maxLength" : 8192,
44660702 12803 "optional" : 1,
4d47f125 12804 "type" : "string"
44660702
DM
12805 },
12806 "digest" : {
4d47f125
TL
12807 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
12808 "type" : "string"
44660702 12809 },
4d47f125 12810 "efidisk0" : {
7af2edf9 12811 "description" : "Configure a Disk for storing EFI vars.",
4d47f125 12812 "format" : {
5370fa8c
TL
12813 "efitype" : {
12814 "default" : "2m",
12815 "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.",
12816 "enum" : [
12817 "2m",
12818 "4m"
12819 ],
12820 "optional" : 1,
12821 "type" : "string"
12822 },
4d47f125
TL
12823 "file" : {
12824 "default_key" : 1,
12825 "description" : "The drive's backing volume.",
12826 "format" : "pve-volume-id-or-qm-path",
12827 "format_description" : "volume",
12828 "type" : "string"
12829 },
12830 "format" : {
12831 "description" : "The drive's backing file's data format.",
12832 "enum" : [
12833 "raw",
12834 "cow",
12835 "qcow",
12836 "qed",
12837 "qcow2",
12838 "vmdk",
12839 "cloop"
12840 ],
12841 "optional" : 1,
12842 "type" : "string"
12843 },
5370fa8c
TL
12844 "pre-enrolled-keys" : {
12845 "default" : 0,
12846 "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.",
12847 "optional" : 1,
12848 "type" : "boolean"
12849 },
4d47f125
TL
12850 "size" : {
12851 "description" : "Disk size. This is purely informational and has no effect.",
12852 "format" : "disk-size",
12853 "format_description" : "DiskSize",
12854 "optional" : 1,
12855 "type" : "string"
12856 },
12857 "volume" : {
12858 "alias" : "file"
12859 }
12860 },
44660702 12861 "optional" : 1,
4d47f125 12862 "type" : "string"
44660702
DM
12863 },
12864 "freeze" : {
12865 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
12866 "optional" : 1,
4d47f125 12867 "type" : "boolean"
44660702 12868 },
5f26e15b
TL
12869 "hookscript" : {
12870 "description" : "Script that will be executed during various steps in the vms lifetime.",
12871 "format" : "pve-volume-id",
12872 "optional" : 1,
12873 "type" : "string"
12874 },
44660702 12875 "hostpci[n]" : {
c2993fe5 12876 "description" : "Map host PCI devices into guest.",
44660702
DM
12877 "format" : "pve-qm-hostpci",
12878 "optional" : 1,
57b78691 12879 "type" : "string",
bb4c8cf8 12880 "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
12881 },
12882 "hotplug" : {
12883 "default" : "network,disk,usb",
4e7f60c2 12884 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7.",
44660702
DM
12885 "format" : "pve-hotplug-features",
12886 "optional" : 1,
4d47f125 12887 "type" : "string"
44660702 12888 },
4bd7df8b
DM
12889 "hugepages" : {
12890 "description" : "Enable/disable hugepages memory.",
12891 "enum" : [
12892 "any",
12893 "2",
12894 "1024"
12895 ],
12896 "optional" : 1,
12897 "type" : "string"
12898 },
44660702 12899 "ide[n]" : {
7af2edf9 12900 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3).",
44660702
DM
12901 "format" : {
12902 "aio" : {
12903 "description" : "AIO type to use.",
12904 "enum" : [
12905 "native",
8f4d9c87
TL
12906 "threads",
12907 "io_uring"
56122987 12908 ],
56122987 12909 "optional" : 1,
44660702 12910 "type" : "string"
56122987 12911 },
44660702
DM
12912 "backup" : {
12913 "description" : "Whether the drive should be included when making backups.",
56122987 12914 "optional" : 1,
44660702 12915 "type" : "boolean"
56122987 12916 },
7aacca6f 12917 "bps" : {
de0983cb 12918 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
12919 "format_description" : "bps",
12920 "optional" : 1,
12921 "type" : "integer"
12922 },
de0983cb
DM
12923 "bps_max_length" : {
12924 "description" : "Maximum length of I/O bursts in seconds.",
12925 "format_description" : "seconds",
12926 "minimum" : 1,
12927 "optional" : 1,
12928 "type" : "integer"
12929 },
44660702 12930 "bps_rd" : {
de0983cb 12931 "description" : "Maximum read speed in bytes per second.",
44660702 12932 "format_description" : "bps",
56122987 12933 "optional" : 1,
44660702 12934 "type" : "integer"
56122987 12935 },
de0983cb 12936 "bps_rd_length" : {
5d9c884c
DM
12937 "alias" : "bps_rd_max_length"
12938 },
12939 "bps_rd_max_length" : {
de0983cb
DM
12940 "description" : "Maximum length of read I/O bursts in seconds.",
12941 "format_description" : "seconds",
12942 "minimum" : 1,
12943 "optional" : 1,
12944 "type" : "integer"
12945 },
44660702 12946 "bps_wr" : {
de0983cb 12947 "description" : "Maximum write speed in bytes per second.",
44660702
DM
12948 "format_description" : "bps",
12949 "optional" : 1,
12950 "type" : "integer"
12951 },
de0983cb 12952 "bps_wr_length" : {
5d9c884c
DM
12953 "alias" : "bps_wr_max_length"
12954 },
12955 "bps_wr_max_length" : {
de0983cb
DM
12956 "description" : "Maximum length of write I/O bursts in seconds.",
12957 "format_description" : "seconds",
12958 "minimum" : 1,
12959 "optional" : 1,
12960 "type" : "integer"
12961 },
44660702
DM
12962 "cache" : {
12963 "description" : "The drive's cache mode",
12964 "enum" : [
12965 "none",
12966 "writethrough",
12967 "writeback",
12968 "unsafe",
12969 "directsync"
12970 ],
44660702
DM
12971 "optional" : 1,
12972 "type" : "string"
12973 },
12974 "cyls" : {
12975 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
12976 "optional" : 1,
12977 "type" : "integer"
12978 },
12979 "detect_zeroes" : {
12980 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
12981 "optional" : 1,
12982 "type" : "boolean"
12983 },
12984 "discard" : {
12985 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
12986 "enum" : [
12987 "ignore",
12988 "on"
12989 ],
56122987 12990 "optional" : 1,
44660702
DM
12991 "type" : "string"
12992 },
12993 "file" : {
12994 "default_key" : 1,
12995 "description" : "The drive's backing volume.",
12996 "format" : "pve-volume-id-or-qm-path",
12997 "format_description" : "volume",
12998 "type" : "string"
56122987 12999 },
7aacca6f 13000 "format" : {
7aacca6f 13001 "description" : "The drive's backing file's data format.",
56122987 13002 "enum" : [
7aacca6f
DM
13003 "raw",
13004 "cow",
13005 "qcow",
13006 "qed",
13007 "qcow2",
13008 "vmdk",
13009 "cloop"
56122987
DM
13010 ],
13011 "optional" : 1,
56122987
DM
13012 "type" : "string"
13013 },
44660702
DM
13014 "heads" : {
13015 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
13016 "optional" : 1,
13017 "type" : "integer"
7aacca6f 13018 },
44660702 13019 "iops" : {
de0983cb 13020 "description" : "Maximum r/w I/O in operations per second.",
44660702 13021 "format_description" : "iops",
56122987 13022 "optional" : 1,
44660702 13023 "type" : "integer"
56122987 13024 },
44660702 13025 "iops_max" : {
de0983cb 13026 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 13027 "format_description" : "iops",
56122987 13028 "optional" : 1,
44660702 13029 "type" : "integer"
56122987 13030 },
de0983cb
DM
13031 "iops_max_length" : {
13032 "description" : "Maximum length of I/O bursts in seconds.",
13033 "format_description" : "seconds",
13034 "minimum" : 1,
13035 "optional" : 1,
13036 "type" : "integer"
13037 },
44660702 13038 "iops_rd" : {
de0983cb 13039 "description" : "Maximum read I/O in operations per second.",
44660702
DM
13040 "format_description" : "iops",
13041 "optional" : 1,
13042 "type" : "integer"
13043 },
de0983cb 13044 "iops_rd_length" : {
5d9c884c 13045 "alias" : "iops_rd_max_length"
de0983cb 13046 },
44660702 13047 "iops_rd_max" : {
de0983cb 13048 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 13049 "format_description" : "iops",
44660702
DM
13050 "optional" : 1,
13051 "type" : "integer"
13052 },
5d9c884c
DM
13053 "iops_rd_max_length" : {
13054 "description" : "Maximum length of read I/O bursts in seconds.",
13055 "format_description" : "seconds",
13056 "minimum" : 1,
13057 "optional" : 1,
13058 "type" : "integer"
13059 },
44660702 13060 "iops_wr" : {
de0983cb 13061 "description" : "Maximum write I/O in operations per second.",
44660702 13062 "format_description" : "iops",
56122987 13063 "optional" : 1,
7aacca6f 13064 "type" : "integer"
56122987 13065 },
de0983cb 13066 "iops_wr_length" : {
5d9c884c 13067 "alias" : "iops_wr_max_length"
de0983cb 13068 },
44660702 13069 "iops_wr_max" : {
de0983cb 13070 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 13071 "format_description" : "iops",
7aacca6f 13072 "optional" : 1,
44660702 13073 "type" : "integer"
56122987 13074 },
5d9c884c
DM
13075 "iops_wr_max_length" : {
13076 "description" : "Maximum length of write I/O bursts in seconds.",
13077 "format_description" : "seconds",
13078 "minimum" : 1,
13079 "optional" : 1,
13080 "type" : "integer"
13081 },
44660702 13082 "mbps" : {
de0983cb 13083 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
13084 "format_description" : "mbps",
13085 "optional" : 1,
13086 "type" : "number"
13087 },
13088 "mbps_max" : {
de0983cb 13089 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
13090 "format_description" : "mbps",
13091 "optional" : 1,
13092 "type" : "number"
13093 },
13094 "mbps_rd" : {
de0983cb 13095 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
13096 "format_description" : "mbps",
13097 "optional" : 1,
13098 "type" : "number"
13099 },
13100 "mbps_rd_max" : {
de0983cb 13101 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
13102 "format_description" : "mbps",
13103 "optional" : 1,
13104 "type" : "number"
13105 },
13106 "mbps_wr" : {
de0983cb 13107 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
13108 "format_description" : "mbps",
13109 "optional" : 1,
13110 "type" : "number"
13111 },
13112 "mbps_wr_max" : {
de0983cb 13113 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 13114 "format_description" : "mbps",
56122987 13115 "optional" : 1,
44660702 13116 "type" : "number"
56122987 13117 },
7aacca6f 13118 "media" : {
7aacca6f 13119 "default" : "disk",
7aacca6f
DM
13120 "description" : "The drive's media type.",
13121 "enum" : [
13122 "cdrom",
13123 "disk"
44660702 13124 ],
44660702
DM
13125 "optional" : 1,
13126 "type" : "string"
56122987 13127 },
44660702
DM
13128 "model" : {
13129 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
13130 "format" : "urlencoded",
13131 "format_description" : "model",
13132 "maxLength" : 120,
56122987 13133 "optional" : 1,
44660702 13134 "type" : "string"
56122987 13135 },
5d9c884c
DM
13136 "replicate" : {
13137 "default" : 1,
13138 "description" : "Whether the drive should considered for replication jobs.",
13139 "optional" : 1,
13140 "type" : "boolean"
13141 },
44660702
DM
13142 "rerror" : {
13143 "description" : "Read error action.",
13144 "enum" : [
13145 "ignore",
13146 "report",
13147 "stop"
13148 ],
56122987 13149 "optional" : 1,
44660702
DM
13150 "type" : "string"
13151 },
13152 "secs" : {
13153 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
13154 "optional" : 1,
13155 "type" : "integer"
13156 },
13157 "serial" : {
13158 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
13159 "format" : "urlencoded",
13160 "format_description" : "serial",
13161 "maxLength" : 60,
13162 "optional" : 1,
13163 "type" : "string"
13164 },
27a7acb2
DM
13165 "shared" : {
13166 "default" : 0,
13167 "description" : "Mark this locally-managed volume as available on all nodes",
13168 "optional" : 1,
13169 "type" : "boolean",
13170 "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!"
13171 },
44660702
DM
13172 "size" : {
13173 "description" : "Disk size. This is purely informational and has no effect.",
13174 "format" : "disk-size",
f004f5b9 13175 "format_description" : "DiskSize",
44660702
DM
13176 "optional" : 1,
13177 "type" : "string"
13178 },
13179 "snapshot" : {
27a7acb2 13180 "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
13181 "optional" : 1,
13182 "type" : "boolean"
13183 },
25203dc1
NC
13184 "ssd" : {
13185 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
13186 "optional" : 1,
13187 "type" : "boolean"
13188 },
44660702
DM
13189 "trans" : {
13190 "description" : "Force disk geometry bios translation mode.",
13191 "enum" : [
13192 "none",
13193 "lba",
13194 "auto"
13195 ],
44660702
DM
13196 "optional" : 1,
13197 "type" : "string"
13198 },
13199 "volume" : {
13200 "alias" : "file"
13201 },
13202 "werror" : {
13203 "description" : "Write error action.",
13204 "enum" : [
13205 "enospc",
13206 "ignore",
13207 "report",
13208 "stop"
13209 ],
44660702
DM
13210 "optional" : 1,
13211 "type" : "string"
95895385
TL
13212 },
13213 "wwn" : {
13214 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
13215 "format_description" : "wwn",
13216 "optional" : 1,
13217 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
13218 "type" : "string"
56122987
DM
13219 }
13220 },
44660702 13221 "optional" : 1,
4d47f125 13222 "type" : "string"
27a7acb2
DM
13223 },
13224 "ipconfig[n]" : {
d2656385 13225 "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
13226 "format" : "pve-qm-ipconfig",
13227 "optional" : 1,
4d47f125 13228 "type" : "string"
56122987 13229 },
95895385
TL
13230 "ivshmem" : {
13231 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
13232 "format" : {
13233 "name" : {
13234 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
13235 "format_description" : "string",
13236 "optional" : 1,
13237 "pattern" : "[a-zA-Z0-9\\-]+",
13238 "type" : "string"
13239 },
13240 "size" : {
13241 "description" : "The size of the file in MB.",
13242 "minimum" : 1,
13243 "type" : "integer"
13244 }
13245 },
13246 "optional" : 1,
13247 "type" : "string"
13248 },
4772952b
TL
13249 "keephugepages" : {
13250 "default" : 0,
13251 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
13252 "optional" : 1,
13253 "type" : "boolean"
13254 },
44660702 13255 "keyboard" : {
35a75dd3 13256 "default" : null,
7af2edf9 13257 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
13258 "enum" : [
13259 "de",
13260 "de-ch",
13261 "da",
13262 "en-gb",
13263 "en-us",
13264 "es",
13265 "fi",
13266 "fr",
13267 "fr-be",
13268 "fr-ca",
13269 "fr-ch",
13270 "hu",
13271 "is",
13272 "it",
13273 "ja",
13274 "lt",
13275 "mk",
13276 "nl",
13277 "no",
13278 "pl",
13279 "pt",
13280 "pt-br",
13281 "sv",
13282 "sl",
13283 "tr"
13284 ],
56122987 13285 "optional" : 1,
44660702
DM
13286 "type" : "string"
13287 },
13288 "kvm" : {
7aacca6f 13289 "default" : 1,
44660702
DM
13290 "description" : "Enable/disable KVM hardware virtualization.",
13291 "optional" : 1,
4d47f125 13292 "type" : "boolean"
56122987 13293 },
44660702 13294 "localtime" : {
5370fa8c 13295 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 13296 "optional" : 1,
4d47f125 13297 "type" : "boolean"
56122987 13298 },
44660702
DM
13299 "lock" : {
13300 "description" : "Lock/unlock the VM.",
13301 "enum" : [
44660702 13302 "backup",
5f26e15b
TL
13303 "clone",
13304 "create",
13305 "migrate",
13306 "rollback",
44660702 13307 "snapshot",
95895385
TL
13308 "snapshot-delete",
13309 "suspending",
13310 "suspended"
44660702 13311 ],
7aacca6f 13312 "optional" : 1,
44660702
DM
13313 "type" : "string"
13314 },
13315 "machine" : {
4d47f125 13316 "description" : "Specifies the Qemu machine type.",
44660702
DM
13317 "maxLength" : 40,
13318 "optional" : 1,
5c1699e5 13319 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
13320 "type" : "string"
13321 },
13322 "memory" : {
13323 "default" : 512,
13324 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
13325 "minimum" : 16,
13326 "optional" : 1,
4d47f125 13327 "type" : "integer"
44660702
DM
13328 },
13329 "migrate_downtime" : {
13330 "default" : 0.1,
13331 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
13332 "minimum" : 0,
13333 "optional" : 1,
4d47f125 13334 "type" : "number"
44660702
DM
13335 },
13336 "migrate_speed" : {
13337 "default" : 0,
13338 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
13339 "minimum" : 0,
13340 "optional" : 1,
4d47f125 13341 "type" : "integer"
44660702
DM
13342 },
13343 "name" : {
13344 "description" : "Set a name for the VM. Only used on the configuration web interface.",
13345 "format" : "dns-name",
13346 "optional" : 1,
4d47f125 13347 "type" : "string"
44660702 13348 },
27a7acb2 13349 "nameserver" : {
de786b48 13350 "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
27a7acb2
DM
13351 "format" : "address-list",
13352 "optional" : 1,
4d47f125 13353 "type" : "string"
27a7acb2 13354 },
44660702 13355 "net[n]" : {
c2993fe5 13356 "description" : "Specify network devices.",
f004f5b9
DM
13357 "format" : {
13358 "bridge" : {
c2993fe5 13359 "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2 Gateway\n 10.0.2.3 DNS Server\n 10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
7af2edf9 13360 "format" : "pve-bridge-id",
f004f5b9
DM
13361 "format_description" : "bridge",
13362 "optional" : 1,
13363 "type" : "string"
13364 },
13365 "e1000" : {
13366 "alias" : "macaddr",
13367 "keyAlias" : "model"
13368 },
13369 "e1000-82540em" : {
13370 "alias" : "macaddr",
13371 "keyAlias" : "model"
13372 },
13373 "e1000-82544gc" : {
13374 "alias" : "macaddr",
13375 "keyAlias" : "model"
13376 },
13377 "e1000-82545em" : {
13378 "alias" : "macaddr",
13379 "keyAlias" : "model"
13380 },
5370fa8c
TL
13381 "e1000e" : {
13382 "alias" : "macaddr",
13383 "keyAlias" : "model"
13384 },
f004f5b9
DM
13385 "firewall" : {
13386 "description" : "Whether this interface should be protected by the firewall.",
13387 "optional" : 1,
13388 "type" : "boolean"
13389 },
13390 "i82551" : {
13391 "alias" : "macaddr",
13392 "keyAlias" : "model"
13393 },
13394 "i82557b" : {
13395 "alias" : "macaddr",
13396 "keyAlias" : "model"
13397 },
13398 "i82559er" : {
13399 "alias" : "macaddr",
13400 "keyAlias" : "model"
13401 },
13402 "link_down" : {
c2993fe5 13403 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
13404 "optional" : 1,
13405 "type" : "boolean"
13406 },
13407 "macaddr" : {
c2993fe5 13408 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 13409 "format" : "mac-addr",
f004f5b9 13410 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 13411 "optional" : 1,
95895385
TL
13412 "type" : "string",
13413 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
13414 },
13415 "model" : {
13416 "default_key" : 1,
c2993fe5 13417 "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 13418 "enum" : [
f004f5b9 13419 "e1000",
5370fa8c
TL
13420 "e1000-82540em",
13421 "e1000-82544gc",
13422 "e1000-82545em",
13423 "e1000e",
f004f5b9
DM
13424 "i82551",
13425 "i82557b",
13426 "i82559er",
5370fa8c
TL
13427 "ne2k_isa",
13428 "ne2k_pci",
13429 "pcnet",
13430 "rtl8139",
13431 "virtio",
13432 "vmxnet3"
f004f5b9 13433 ],
f004f5b9
DM
13434 "type" : "string"
13435 },
ac70d7d1
TL
13436 "mtu" : {
13437 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
13438 "maximum" : 65520,
13439 "minimum" : 1,
13440 "optional" : 1,
13441 "type" : "integer"
13442 },
f004f5b9
DM
13443 "ne2k_isa" : {
13444 "alias" : "macaddr",
13445 "keyAlias" : "model"
13446 },
13447 "ne2k_pci" : {
13448 "alias" : "macaddr",
13449 "keyAlias" : "model"
13450 },
13451 "pcnet" : {
13452 "alias" : "macaddr",
13453 "keyAlias" : "model"
13454 },
13455 "queues" : {
13456 "description" : "Number of packet queues to be used on the device.",
81a3384d 13457 "maximum" : 64,
f004f5b9
DM
13458 "minimum" : 0,
13459 "optional" : 1,
13460 "type" : "integer"
13461 },
13462 "rate" : {
c2993fe5 13463 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
13464 "minimum" : 0,
13465 "optional" : 1,
13466 "type" : "number"
13467 },
13468 "rtl8139" : {
13469 "alias" : "macaddr",
13470 "keyAlias" : "model"
13471 },
13472 "tag" : {
13473 "description" : "VLAN tag to apply to packets on this interface.",
13474 "maximum" : 4094,
c2993fe5 13475 "minimum" : 1,
f004f5b9
DM
13476 "optional" : 1,
13477 "type" : "integer"
13478 },
13479 "trunks" : {
13480 "description" : "VLAN trunks to pass through this interface.",
13481 "format_description" : "vlanid[;vlanid...]",
13482 "optional" : 1,
13483 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
13484 "type" : "string"
13485 },
13486 "virtio" : {
13487 "alias" : "macaddr",
13488 "keyAlias" : "model"
13489 },
13490 "vmxnet3" : {
13491 "alias" : "macaddr",
13492 "keyAlias" : "model"
13493 }
13494 },
44660702 13495 "optional" : 1,
4d47f125 13496 "type" : "string"
44660702
DM
13497 },
13498 "numa" : {
13499 "default" : 0,
13500 "description" : "Enable/disable NUMA.",
13501 "optional" : 1,
4d47f125 13502 "type" : "boolean"
44660702
DM
13503 },
13504 "numa[n]" : {
c2993fe5 13505 "description" : "NUMA topology.",
56122987 13506 "format" : {
7aacca6f 13507 "cpus" : {
c2993fe5 13508 "description" : "CPUs accessing this NUMA node.",
44660702
DM
13509 "format_description" : "id[-id];...",
13510 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
13511 "type" : "string"
7aacca6f
DM
13512 },
13513 "hostnodes" : {
c2993fe5 13514 "description" : "Host NUMA nodes to use.",
44660702 13515 "format_description" : "id[-id];...",
7aacca6f 13516 "optional" : 1,
7aacca6f 13517 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
44660702 13518 "type" : "string"
7aacca6f 13519 },
44660702 13520 "memory" : {
c2993fe5 13521 "description" : "Amount of memory this NUMA node provides.",
7aacca6f 13522 "optional" : 1,
44660702
DM
13523 "type" : "number"
13524 },
13525 "policy" : {
c2993fe5 13526 "description" : "NUMA allocation policy.",
7aacca6f
DM
13527 "enum" : [
13528 "preferred",
13529 "bind",
13530 "interleave"
13531 ],
44660702
DM
13532 "optional" : 1,
13533 "type" : "string"
56122987 13534 }
44660702 13535 },
56122987 13536 "optional" : 1,
4d47f125 13537 "type" : "string"
56122987 13538 },
44660702 13539 "onboot" : {
7aacca6f 13540 "default" : 0,
44660702
DM
13541 "description" : "Specifies whether a VM will be started during system bootup.",
13542 "optional" : 1,
4d47f125 13543 "type" : "boolean"
7aacca6f
DM
13544 },
13545 "ostype" : {
c2993fe5 13546 "description" : "Specify guest operating system.",
7aacca6f
DM
13547 "enum" : [
13548 "other",
13549 "wxp",
13550 "w2k",
13551 "w2k3",
13552 "w2k8",
13553 "wvista",
13554 "win7",
13555 "win8",
32d876b5 13556 "win10",
5370fa8c 13557 "win11",
7aacca6f
DM
13558 "l24",
13559 "l26",
13560 "solaris"
13561 ],
7aacca6f 13562 "optional" : 1,
c2993fe5 13563 "type" : "string",
5370fa8c 13564 "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 13565 },
44660702 13566 "parallel[n]" : {
c2993fe5 13567 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 13568 "optional" : 1,
44660702 13569 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 13570 "type" : "string",
4772952b 13571 "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
13572 },
13573 "protection" : {
13574 "default" : 0,
c2993fe5 13575 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 13576 "optional" : 1,
4d47f125 13577 "type" : "boolean"
7aacca6f 13578 },
44660702
DM
13579 "reboot" : {
13580 "default" : 1,
13581 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 13582 "optional" : 1,
4d47f125 13583 "type" : "boolean"
44660702 13584 },
c5aa7e14
TL
13585 "rng0" : {
13586 "description" : "Configure a VirtIO-based Random Number Generator.",
13587 "format" : {
13588 "max_bytes" : {
13589 "default" : 1024,
5370fa8c 13590 "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
13591 "optional" : 1,
13592 "type" : "integer"
13593 },
13594 "period" : {
13595 "default" : 1000,
13596 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
13597 "optional" : 1,
13598 "type" : "integer"
13599 },
13600 "source" : {
13601 "default_key" : 1,
5370fa8c 13602 "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
13603 "enum" : [
13604 "/dev/urandom",
13605 "/dev/random",
13606 "/dev/hwrng"
13607 ],
13608 "type" : "string"
13609 }
13610 },
13611 "optional" : 1,
13612 "type" : "string"
13613 },
44660702 13614 "sata[n]" : {
7af2edf9 13615 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5).",
56122987 13616 "format" : {
44660702
DM
13617 "aio" : {
13618 "description" : "AIO type to use.",
7aacca6f 13619 "enum" : [
44660702 13620 "native",
8f4d9c87
TL
13621 "threads",
13622 "io_uring"
7aacca6f 13623 ],
44660702
DM
13624 "optional" : 1,
13625 "type" : "string"
7aacca6f 13626 },
44660702
DM
13627 "backup" : {
13628 "description" : "Whether the drive should be included when making backups.",
56122987 13629 "optional" : 1,
7aacca6f 13630 "type" : "boolean"
44660702
DM
13631 },
13632 "bps" : {
de0983cb 13633 "description" : "Maximum r/w speed in bytes per second.",
44660702 13634 "format_description" : "bps",
7aacca6f 13635 "optional" : 1,
44660702 13636 "type" : "integer"
56122987 13637 },
de0983cb
DM
13638 "bps_max_length" : {
13639 "description" : "Maximum length of I/O bursts in seconds.",
13640 "format_description" : "seconds",
13641 "minimum" : 1,
13642 "optional" : 1,
13643 "type" : "integer"
13644 },
44660702 13645 "bps_rd" : {
de0983cb 13646 "description" : "Maximum read speed in bytes per second.",
44660702 13647 "format_description" : "bps",
56122987 13648 "optional" : 1,
44660702 13649 "type" : "integer"
56122987 13650 },
de0983cb 13651 "bps_rd_length" : {
5d9c884c
DM
13652 "alias" : "bps_rd_max_length"
13653 },
13654 "bps_rd_max_length" : {
de0983cb
DM
13655 "description" : "Maximum length of read I/O bursts in seconds.",
13656 "format_description" : "seconds",
13657 "minimum" : 1,
13658 "optional" : 1,
13659 "type" : "integer"
13660 },
44660702 13661 "bps_wr" : {
de0983cb 13662 "description" : "Maximum write speed in bytes per second.",
44660702 13663 "format_description" : "bps",
56122987 13664 "optional" : 1,
44660702 13665 "type" : "integer"
56122987 13666 },
de0983cb 13667 "bps_wr_length" : {
5d9c884c
DM
13668 "alias" : "bps_wr_max_length"
13669 },
13670 "bps_wr_max_length" : {
de0983cb
DM
13671 "description" : "Maximum length of write I/O bursts in seconds.",
13672 "format_description" : "seconds",
13673 "minimum" : 1,
13674 "optional" : 1,
13675 "type" : "integer"
13676 },
56122987 13677 "cache" : {
44660702 13678 "description" : "The drive's cache mode",
56122987
DM
13679 "enum" : [
13680 "none",
13681 "writethrough",
13682 "writeback",
13683 "unsafe",
13684 "directsync"
13685 ],
56122987 13686 "optional" : 1,
44660702 13687 "type" : "string"
56122987 13688 },
44660702
DM
13689 "cyls" : {
13690 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 13691 "optional" : 1,
44660702 13692 "type" : "integer"
7aacca6f
DM
13693 },
13694 "detect_zeroes" : {
13695 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 13696 "optional" : 1,
44660702 13697 "type" : "boolean"
56122987 13698 },
44660702
DM
13699 "discard" : {
13700 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
13701 "enum" : [
13702 "ignore",
13703 "on"
13704 ],
56122987 13705 "optional" : 1,
44660702 13706 "type" : "string"
7aacca6f 13707 },
44660702
DM
13708 "file" : {
13709 "default_key" : 1,
13710 "description" : "The drive's backing volume.",
13711 "format" : "pve-volume-id-or-qm-path",
13712 "format_description" : "volume",
13713 "type" : "string"
56122987 13714 },
7aacca6f 13715 "format" : {
44660702 13716 "description" : "The drive's backing file's data format.",
7aacca6f
DM
13717 "enum" : [
13718 "raw",
13719 "cow",
13720 "qcow",
13721 "qed",
13722 "qcow2",
13723 "vmdk",
13724 "cloop"
13725 ],
7aacca6f 13726 "optional" : 1,
44660702 13727 "type" : "string"
56122987 13728 },
7aacca6f 13729 "heads" : {
7aacca6f 13730 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 13731 "optional" : 1,
7aacca6f 13732 "type" : "integer"
56122987 13733 },
44660702 13734 "iops" : {
de0983cb 13735 "description" : "Maximum r/w I/O in operations per second.",
44660702 13736 "format_description" : "iops",
56122987 13737 "optional" : 1,
44660702 13738 "type" : "integer"
56122987 13739 },
44660702 13740 "iops_max" : {
de0983cb 13741 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 13742 "format_description" : "iops",
56122987 13743 "optional" : 1,
44660702 13744 "type" : "integer"
56122987 13745 },
de0983cb
DM
13746 "iops_max_length" : {
13747 "description" : "Maximum length of I/O bursts in seconds.",
13748 "format_description" : "seconds",
13749 "minimum" : 1,
13750 "optional" : 1,
13751 "type" : "integer"
13752 },
44660702 13753 "iops_rd" : {
de0983cb 13754 "description" : "Maximum read I/O in operations per second.",
44660702 13755 "format_description" : "iops",
7aacca6f 13756 "optional" : 1,
44660702 13757 "type" : "integer"
56122987 13758 },
de0983cb 13759 "iops_rd_length" : {
5d9c884c 13760 "alias" : "iops_rd_max_length"
de0983cb 13761 },
44660702 13762 "iops_rd_max" : {
de0983cb 13763 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 13764 "format_description" : "iops",
56122987 13765 "optional" : 1,
44660702 13766 "type" : "integer"
7aacca6f 13767 },
5d9c884c
DM
13768 "iops_rd_max_length" : {
13769 "description" : "Maximum length of read I/O bursts in seconds.",
13770 "format_description" : "seconds",
13771 "minimum" : 1,
13772 "optional" : 1,
13773 "type" : "integer"
13774 },
44660702 13775 "iops_wr" : {
de0983cb 13776 "description" : "Maximum write I/O in operations per second.",
44660702 13777 "format_description" : "iops",
56122987 13778 "optional" : 1,
44660702 13779 "type" : "integer"
56122987 13780 },
de0983cb 13781 "iops_wr_length" : {
5d9c884c 13782 "alias" : "iops_wr_max_length"
de0983cb 13783 },
56122987 13784 "iops_wr_max" : {
de0983cb 13785 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 13786 "format_description" : "iops",
56122987 13787 "optional" : 1,
44660702 13788 "type" : "integer"
56122987 13789 },
5d9c884c
DM
13790 "iops_wr_max_length" : {
13791 "description" : "Maximum length of write I/O bursts in seconds.",
13792 "format_description" : "seconds",
13793 "minimum" : 1,
13794 "optional" : 1,
13795 "type" : "integer"
13796 },
44660702 13797 "mbps" : {
de0983cb 13798 "description" : "Maximum r/w speed in megabytes per second.",
44660702 13799 "format_description" : "mbps",
56122987 13800 "optional" : 1,
44660702 13801 "type" : "number"
56122987 13802 },
44660702 13803 "mbps_max" : {
de0983cb 13804 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
13805 "format_description" : "mbps",
13806 "optional" : 1,
13807 "type" : "number"
56122987 13808 },
44660702 13809 "mbps_rd" : {
de0983cb 13810 "description" : "Maximum read speed in megabytes per second.",
44660702 13811 "format_description" : "mbps",
56122987 13812 "optional" : 1,
44660702 13813 "type" : "number"
56122987 13814 },
44660702 13815 "mbps_rd_max" : {
de0983cb 13816 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 13817 "format_description" : "mbps",
56122987 13818 "optional" : 1,
44660702 13819 "type" : "number"
56122987 13820 },
44660702 13821 "mbps_wr" : {
de0983cb 13822 "description" : "Maximum write speed in megabytes per second.",
56122987 13823 "format_description" : "mbps",
44660702
DM
13824 "optional" : 1,
13825 "type" : "number"
56122987 13826 },
44660702 13827 "mbps_wr_max" : {
de0983cb 13828 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
13829 "format_description" : "mbps",
13830 "optional" : 1,
13831 "type" : "number"
7aacca6f 13832 },
44660702
DM
13833 "media" : {
13834 "default" : "disk",
13835 "description" : "The drive's media type.",
13836 "enum" : [
13837 "cdrom",
13838 "disk"
13839 ],
56122987 13840 "optional" : 1,
44660702
DM
13841 "type" : "string"
13842 },
5d9c884c
DM
13843 "replicate" : {
13844 "default" : 1,
13845 "description" : "Whether the drive should considered for replication jobs.",
13846 "optional" : 1,
13847 "type" : "boolean"
13848 },
44660702
DM
13849 "rerror" : {
13850 "description" : "Read error action.",
7aacca6f 13851 "enum" : [
44660702
DM
13852 "ignore",
13853 "report",
13854 "stop"
13855 ],
7aacca6f 13856 "optional" : 1,
44660702 13857 "type" : "string"
56122987 13858 },
44660702
DM
13859 "secs" : {
13860 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 13861 "optional" : 1,
44660702 13862 "type" : "integer"
56122987 13863 },
44660702
DM
13864 "serial" : {
13865 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
13866 "format" : "urlencoded",
13867 "format_description" : "serial",
13868 "maxLength" : 60,
56122987 13869 "optional" : 1,
44660702 13870 "type" : "string"
56122987 13871 },
27a7acb2
DM
13872 "shared" : {
13873 "default" : 0,
13874 "description" : "Mark this locally-managed volume as available on all nodes",
13875 "optional" : 1,
13876 "type" : "boolean",
13877 "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!"
13878 },
44660702
DM
13879 "size" : {
13880 "description" : "Disk size. This is purely informational and has no effect.",
13881 "format" : "disk-size",
f004f5b9 13882 "format_description" : "DiskSize",
44660702
DM
13883 "optional" : 1,
13884 "type" : "string"
13885 },
13886 "snapshot" : {
27a7acb2 13887 "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 13888 "optional" : 1,
44660702
DM
13889 "type" : "boolean"
13890 },
25203dc1
NC
13891 "ssd" : {
13892 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
13893 "optional" : 1,
13894 "type" : "boolean"
13895 },
44660702
DM
13896 "trans" : {
13897 "description" : "Force disk geometry bios translation mode.",
56122987 13898 "enum" : [
7aacca6f
DM
13899 "none",
13900 "lba",
13901 "auto"
56122987 13902 ],
44660702
DM
13903 "optional" : 1,
13904 "type" : "string"
56122987 13905 },
7aacca6f
DM
13906 "volume" : {
13907 "alias" : "file"
56122987 13908 },
44660702
DM
13909 "werror" : {
13910 "description" : "Write error action.",
13911 "enum" : [
13912 "enospc",
13913 "ignore",
13914 "report",
13915 "stop"
13916 ],
7aacca6f 13917 "optional" : 1,
44660702 13918 "type" : "string"
95895385
TL
13919 },
13920 "wwn" : {
13921 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
13922 "format_description" : "wwn",
13923 "optional" : 1,
13924 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
13925 "type" : "string"
44660702
DM
13926 }
13927 },
13928 "optional" : 1,
4d47f125 13929 "type" : "string"
44660702
DM
13930 },
13931 "scsi[n]" : {
7af2edf9 13932 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30).",
44660702 13933 "format" : {
56122987 13934 "aio" : {
56122987
DM
13935 "description" : "AIO type to use.",
13936 "enum" : [
13937 "native",
8f4d9c87
TL
13938 "threads",
13939 "io_uring"
56122987 13940 ],
7aacca6f 13941 "optional" : 1,
44660702 13942 "type" : "string"
56122987 13943 },
44660702
DM
13944 "backup" : {
13945 "description" : "Whether the drive should be included when making backups.",
56122987 13946 "optional" : 1,
44660702 13947 "type" : "boolean"
56122987 13948 },
44660702 13949 "bps" : {
de0983cb 13950 "description" : "Maximum r/w speed in bytes per second.",
44660702 13951 "format_description" : "bps",
56122987 13952 "optional" : 1,
44660702 13953 "type" : "integer"
56122987 13954 },
de0983cb
DM
13955 "bps_max_length" : {
13956 "description" : "Maximum length of I/O bursts in seconds.",
13957 "format_description" : "seconds",
13958 "minimum" : 1,
13959 "optional" : 1,
13960 "type" : "integer"
13961 },
44660702 13962 "bps_rd" : {
de0983cb 13963 "description" : "Maximum read speed in bytes per second.",
44660702 13964 "format_description" : "bps",
56122987 13965 "optional" : 1,
44660702 13966 "type" : "integer"
56122987 13967 },
de0983cb 13968 "bps_rd_length" : {
5d9c884c
DM
13969 "alias" : "bps_rd_max_length"
13970 },
13971 "bps_rd_max_length" : {
de0983cb
DM
13972 "description" : "Maximum length of read I/O bursts in seconds.",
13973 "format_description" : "seconds",
13974 "minimum" : 1,
13975 "optional" : 1,
13976 "type" : "integer"
13977 },
7aacca6f 13978 "bps_wr" : {
de0983cb 13979 "description" : "Maximum write speed in bytes per second.",
7aacca6f 13980 "format_description" : "bps",
56122987 13981 "optional" : 1,
44660702 13982 "type" : "integer"
56122987 13983 },
de0983cb 13984 "bps_wr_length" : {
5d9c884c
DM
13985 "alias" : "bps_wr_max_length"
13986 },
13987 "bps_wr_max_length" : {
de0983cb
DM
13988 "description" : "Maximum length of write I/O bursts in seconds.",
13989 "format_description" : "seconds",
13990 "minimum" : 1,
13991 "optional" : 1,
13992 "type" : "integer"
13993 },
44660702
DM
13994 "cache" : {
13995 "description" : "The drive's cache mode",
7aacca6f 13996 "enum" : [
44660702
DM
13997 "none",
13998 "writethrough",
13999 "writeback",
14000 "unsafe",
14001 "directsync"
7aacca6f 14002 ],
56122987 14003 "optional" : 1,
44660702 14004 "type" : "string"
56122987 14005 },
44660702
DM
14006 "cyls" : {
14007 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 14008 "optional" : 1,
44660702 14009 "type" : "integer"
56122987 14010 },
44660702
DM
14011 "detect_zeroes" : {
14012 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 14013 "optional" : 1,
44660702 14014 "type" : "boolean"
56122987 14015 },
44660702
DM
14016 "discard" : {
14017 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
14018 "enum" : [
14019 "ignore",
14020 "on"
14021 ],
7aacca6f 14022 "optional" : 1,
44660702 14023 "type" : "string"
56122987 14024 },
44660702
DM
14025 "file" : {
14026 "default_key" : 1,
14027 "description" : "The drive's backing volume.",
14028 "format" : "pve-volume-id-or-qm-path",
14029 "format_description" : "volume",
14030 "type" : "string"
56122987 14031 },
7aacca6f 14032 "format" : {
44660702 14033 "description" : "The drive's backing file's data format.",
56122987 14034 "enum" : [
7aacca6f
DM
14035 "raw",
14036 "cow",
14037 "qcow",
14038 "qed",
14039 "qcow2",
14040 "vmdk",
14041 "cloop"
14042 ],
44660702
DM
14043 "optional" : 1,
14044 "type" : "string"
56122987 14045 },
44660702
DM
14046 "heads" : {
14047 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 14048 "optional" : 1,
7aacca6f 14049 "type" : "integer"
56122987 14050 },
44660702 14051 "iops" : {
de0983cb 14052 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 14053 "format_description" : "iops",
44660702
DM
14054 "optional" : 1,
14055 "type" : "integer"
7aacca6f 14056 },
44660702 14057 "iops_max" : {
de0983cb 14058 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 14059 "format_description" : "iops",
56122987 14060 "optional" : 1,
44660702 14061 "type" : "integer"
7aacca6f 14062 },
de0983cb
DM
14063 "iops_max_length" : {
14064 "description" : "Maximum length of I/O bursts in seconds.",
14065 "format_description" : "seconds",
14066 "minimum" : 1,
14067 "optional" : 1,
14068 "type" : "integer"
14069 },
44660702 14070 "iops_rd" : {
de0983cb 14071 "description" : "Maximum read I/O in operations per second.",
44660702 14072 "format_description" : "iops",
7aacca6f 14073 "optional" : 1,
44660702 14074 "type" : "integer"
56122987 14075 },
de0983cb 14076 "iops_rd_length" : {
5d9c884c 14077 "alias" : "iops_rd_max_length"
de0983cb 14078 },
44660702 14079 "iops_rd_max" : {
de0983cb 14080 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
14081 "format_description" : "iops",
14082 "optional" : 1,
14083 "type" : "integer"
14084 },
5d9c884c
DM
14085 "iops_rd_max_length" : {
14086 "description" : "Maximum length of read I/O bursts in seconds.",
14087 "format_description" : "seconds",
14088 "minimum" : 1,
14089 "optional" : 1,
14090 "type" : "integer"
14091 },
44660702 14092 "iops_wr" : {
de0983cb 14093 "description" : "Maximum write I/O in operations per second.",
44660702 14094 "format_description" : "iops",
56122987 14095 "optional" : 1,
44660702
DM
14096 "type" : "integer"
14097 },
de0983cb 14098 "iops_wr_length" : {
5d9c884c 14099 "alias" : "iops_wr_max_length"
de0983cb 14100 },
44660702 14101 "iops_wr_max" : {
de0983cb 14102 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
14103 "format_description" : "iops",
14104 "optional" : 1,
14105 "type" : "integer"
56122987 14106 },
5d9c884c
DM
14107 "iops_wr_max_length" : {
14108 "description" : "Maximum length of write I/O bursts in seconds.",
14109 "format_description" : "seconds",
14110 "minimum" : 1,
14111 "optional" : 1,
14112 "type" : "integer"
14113 },
7aacca6f 14114 "iothread" : {
7aacca6f 14115 "description" : "Whether to use iothreads for this drive",
56122987 14116 "optional" : 1,
56122987
DM
14117 "type" : "boolean"
14118 },
44660702 14119 "mbps" : {
de0983cb 14120 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
14121 "format_description" : "mbps",
14122 "optional" : 1,
14123 "type" : "number"
14124 },
14125 "mbps_max" : {
de0983cb 14126 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
14127 "format_description" : "mbps",
14128 "optional" : 1,
14129 "type" : "number"
14130 },
14131 "mbps_rd" : {
de0983cb 14132 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
14133 "format_description" : "mbps",
14134 "optional" : 1,
14135 "type" : "number"
14136 },
14137 "mbps_rd_max" : {
de0983cb 14138 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
14139 "format_description" : "mbps",
14140 "optional" : 1,
14141 "type" : "number"
14142 },
14143 "mbps_wr" : {
de0983cb 14144 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
14145 "format_description" : "mbps",
14146 "optional" : 1,
14147 "type" : "number"
14148 },
14149 "mbps_wr_max" : {
de0983cb 14150 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
14151 "format_description" : "mbps",
14152 "optional" : 1,
14153 "type" : "number"
14154 },
7aacca6f 14155 "media" : {
44660702
DM
14156 "default" : "disk",
14157 "description" : "The drive's media type.",
7aacca6f
DM
14158 "enum" : [
14159 "cdrom",
14160 "disk"
14161 ],
56122987 14162 "optional" : 1,
44660702
DM
14163 "type" : "string"
14164 },
14165 "queues" : {
14166 "description" : "Number of queues.",
44660702
DM
14167 "minimum" : 2,
14168 "optional" : 1,
14169 "type" : "integer"
14170 },
5d9c884c
DM
14171 "replicate" : {
14172 "default" : 1,
14173 "description" : "Whether the drive should considered for replication jobs.",
14174 "optional" : 1,
14175 "type" : "boolean"
14176 },
14177 "rerror" : {
14178 "description" : "Read error action.",
14179 "enum" : [
14180 "ignore",
14181 "report",
14182 "stop"
14183 ],
14184 "optional" : 1,
14185 "type" : "string"
14186 },
5370fa8c
TL
14187 "ro" : {
14188 "description" : "Whether the drive is read-only.",
14189 "optional" : 1,
14190 "type" : "boolean"
14191 },
52e44c50
FG
14192 "scsiblock" : {
14193 "default" : 0,
14194 "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",
14195 "optional" : 1,
14196 "type" : "boolean"
14197 },
44660702
DM
14198 "secs" : {
14199 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
14200 "optional" : 1,
14201 "type" : "integer"
14202 },
14203 "serial" : {
14204 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
14205 "format" : "urlencoded",
14206 "format_description" : "serial",
14207 "maxLength" : 60,
14208 "optional" : 1,
14209 "type" : "string"
14210 },
27a7acb2
DM
14211 "shared" : {
14212 "default" : 0,
14213 "description" : "Mark this locally-managed volume as available on all nodes",
14214 "optional" : 1,
14215 "type" : "boolean",
14216 "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!"
14217 },
44660702
DM
14218 "size" : {
14219 "description" : "Disk size. This is purely informational and has no effect.",
14220 "format" : "disk-size",
f004f5b9 14221 "format_description" : "DiskSize",
44660702
DM
14222 "optional" : 1,
14223 "type" : "string"
56122987 14224 },
7aacca6f 14225 "snapshot" : {
27a7acb2 14226 "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 14227 "optional" : 1,
44660702 14228 "type" : "boolean"
7aacca6f 14229 },
25203dc1
NC
14230 "ssd" : {
14231 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
14232 "optional" : 1,
14233 "type" : "boolean"
14234 },
44660702
DM
14235 "trans" : {
14236 "description" : "Force disk geometry bios translation mode.",
14237 "enum" : [
14238 "none",
14239 "lba",
14240 "auto"
14241 ],
44660702
DM
14242 "optional" : 1,
14243 "type" : "string"
14244 },
14245 "volume" : {
14246 "alias" : "file"
14247 },
14248 "werror" : {
14249 "description" : "Write error action.",
14250 "enum" : [
14251 "enospc",
14252 "ignore",
14253 "report",
14254 "stop"
14255 ],
56122987 14256 "optional" : 1,
44660702 14257 "type" : "string"
95895385
TL
14258 },
14259 "wwn" : {
14260 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
14261 "format_description" : "wwn",
14262 "optional" : 1,
14263 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
14264 "type" : "string"
56122987 14265 }
44660702 14266 },
7aacca6f 14267 "optional" : 1,
4d47f125 14268 "type" : "string"
44660702
DM
14269 },
14270 "scsihw" : {
14271 "default" : "lsi",
c2993fe5 14272 "description" : "SCSI controller model",
7aacca6f 14273 "enum" : [
44660702
DM
14274 "lsi",
14275 "lsi53c810",
14276 "virtio-scsi-pci",
14277 "virtio-scsi-single",
14278 "megasas",
14279 "pvscsi"
7aacca6f 14280 ],
44660702
DM
14281 "optional" : 1,
14282 "type" : "string"
56122987 14283 },
27a7acb2 14284 "searchdomain" : {
de786b48 14285 "description" : "cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
27a7acb2 14286 "optional" : 1,
4d47f125 14287 "type" : "string"
27a7acb2 14288 },
44660702 14289 "serial[n]" : {
c2993fe5 14290 "description" : "Create a serial device inside the VM (n is 0 to 3)",
7aacca6f 14291 "optional" : 1,
44660702 14292 "pattern" : "(/dev/.+|socket)",
c2993fe5 14293 "type" : "string",
4772952b 14294 "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 14295 },
44660702
DM
14296 "shares" : {
14297 "default" : 1000,
5da3d723 14298 "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
14299 "maximum" : 50000,
14300 "minimum" : 0,
56122987 14301 "optional" : 1,
4d47f125 14302 "type" : "integer"
56122987 14303 },
44660702
DM
14304 "smbios1" : {
14305 "description" : "Specify SMBIOS type 1 fields.",
14306 "format" : "pve-qm-smbios1",
1e3f8156 14307 "maxLength" : 512,
56122987 14308 "optional" : 1,
4d47f125 14309 "type" : "string"
56122987 14310 },
44660702
DM
14311 "smp" : {
14312 "default" : 1,
14313 "description" : "The number of CPUs. Please use option -sockets instead.",
7aacca6f 14314 "minimum" : 1,
7aacca6f 14315 "optional" : 1,
4d47f125 14316 "type" : "integer"
7aacca6f 14317 },
44660702
DM
14318 "sockets" : {
14319 "default" : 1,
14320 "description" : "The number of CPU sockets.",
14321 "minimum" : 1,
7aacca6f 14322 "optional" : 1,
4d47f125 14323 "type" : "integer"
56122987 14324 },
1c532546
TL
14325 "spice_enhancements" : {
14326 "description" : "Configure additional enhancements for SPICE.",
14327 "format" : {
14328 "foldersharing" : {
14329 "default" : "0",
14330 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
14331 "optional" : 1,
14332 "type" : "boolean"
14333 },
14334 "videostreaming" : {
14335 "default" : "off",
14336 "description" : "Enable video streaming. Uses compression for detected video streams.",
14337 "enum" : [
14338 "off",
14339 "all",
14340 "filter"
14341 ],
14342 "optional" : 1,
14343 "type" : "string"
14344 }
14345 },
14346 "optional" : 1,
14347 "type" : "string"
14348 },
27a7acb2
DM
14349 "sshkeys" : {
14350 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
14351 "format" : "urlencoded",
14352 "optional" : 1,
4d47f125 14353 "type" : "string"
27a7acb2 14354 },
44660702
DM
14355 "startdate" : {
14356 "default" : "now",
4772952b 14357 "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 14358 "optional" : 1,
44660702 14359 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 14360 "type" : "string",
44660702 14361 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
56122987 14362 },
7aacca6f 14363 "startup" : {
7aacca6f 14364 "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 14365 "format" : "pve-startup-order",
56122987 14366 "optional" : 1,
44660702
DM
14367 "type" : "string",
14368 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
56122987 14369 },
44660702 14370 "tablet" : {
7aacca6f 14371 "default" : 1,
c2993fe5 14372 "description" : "Enable/disable the USB tablet device.",
7aacca6f 14373 "optional" : 1,
c2993fe5 14374 "type" : "boolean",
4772952b 14375 "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 14376 },
5c1699e5
TL
14377 "tags" : {
14378 "description" : "Tags of the VM. This is only meta information.",
14379 "format" : "pve-tag-list",
14380 "optional" : 1,
14381 "type" : "string"
14382 },
44660702
DM
14383 "tdf" : {
14384 "default" : 0,
14385 "description" : "Enable/disable time drift fix.",
7aacca6f 14386 "optional" : 1,
4d47f125 14387 "type" : "boolean"
7aacca6f 14388 },
44660702
DM
14389 "template" : {
14390 "default" : 0,
14391 "description" : "Enable/disable Template.",
7aacca6f 14392 "optional" : 1,
4d47f125 14393 "type" : "boolean"
7aacca6f 14394 },
5370fa8c 14395 "tpmstate0" : {
7af2edf9 14396 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'.",
5370fa8c
TL
14397 "format" : {
14398 "file" : {
14399 "default_key" : 1,
14400 "description" : "The drive's backing volume.",
14401 "format" : "pve-volume-id-or-qm-path",
14402 "format_description" : "volume",
14403 "type" : "string"
14404 },
14405 "size" : {
14406 "description" : "Disk size. This is purely informational and has no effect.",
14407 "format" : "disk-size",
14408 "format_description" : "DiskSize",
14409 "optional" : 1,
14410 "type" : "string"
14411 },
14412 "version" : {
14413 "default" : "v2.0",
14414 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
14415 "enum" : [
14416 "v1.2",
14417 "v2.0"
14418 ],
14419 "optional" : 1,
14420 "type" : "string"
14421 },
14422 "volume" : {
14423 "alias" : "file"
14424 }
14425 },
14426 "optional" : 1,
14427 "type" : "string"
14428 },
44660702 14429 "unused[n]" : {
c2993fe5 14430 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
14431 "format" : {
14432 "file" : {
14433 "default_key" : 1,
14434 "description" : "The drive's backing volume.",
14435 "format" : "pve-volume-id",
14436 "format_description" : "volume",
14437 "type" : "string"
14438 },
14439 "volume" : {
14440 "alias" : "file"
14441 }
14442 },
7aacca6f 14443 "optional" : 1,
4d47f125 14444 "type" : "string"
7aacca6f 14445 },
44660702 14446 "usb[n]" : {
4e7f60c2 14447 "description" : "Configure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).",
44660702
DM
14448 "format" : {
14449 "host" : {
14450 "default_key" : 1,
4772952b 14451 "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
14452 "format" : "pve-qm-usb-device",
14453 "format_description" : "HOSTUSBDEVICE|spice",
14454 "type" : "string"
14455 },
14456 "usb3" : {
c2993fe5 14457 "default" : 0,
4e7f60c2 14458 "description" : "Specifies whether if given host option is a USB3 device or port. For modern guests (machine version >= 7.1 and ostype l26 and windows > 7), this flag is irrelevant (all devices are plugged into a xhci controller).",
44660702
DM
14459 "optional" : 1,
14460 "type" : "boolean"
14461 }
14462 },
7aacca6f 14463 "optional" : 1,
4d47f125 14464 "type" : "string"
56122987 14465 },
44660702
DM
14466 "vcpus" : {
14467 "default" : 0,
14468 "description" : "Number of hotplugged vcpus.",
14469 "minimum" : 1,
56122987 14470 "optional" : 1,
4d47f125 14471 "type" : "integer"
56122987 14472 },
44660702 14473 "vga" : {
e2d681b3
TL
14474 "description" : "Configure the VGA hardware.",
14475 "format" : {
14476 "memory" : {
14477 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
14478 "maximum" : 512,
14479 "minimum" : 4,
14480 "optional" : 1,
14481 "type" : "integer"
14482 },
14483 "type" : {
14484 "default" : "std",
14485 "default_key" : 1,
14486 "description" : "Select the VGA type.",
14487 "enum" : [
14488 "cirrus",
14489 "qxl",
14490 "qxl2",
14491 "qxl3",
14492 "qxl4",
5f26e15b 14493 "none",
e2d681b3
TL
14494 "serial0",
14495 "serial1",
14496 "serial2",
14497 "serial3",
14498 "std",
14499 "virtio",
7af2edf9 14500 "virtio-gl",
e2d681b3
TL
14501 "vmware"
14502 ],
14503 "optional" : 1,
14504 "type" : "string"
14505 }
14506 },
56122987 14507 "optional" : 1,
c2993fe5 14508 "type" : "string",
e2d681b3 14509 "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 14510 },
44660702 14511 "virtio[n]" : {
7af2edf9 14512 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15).",
56122987 14513 "format" : {
44660702
DM
14514 "aio" : {
14515 "description" : "AIO type to use.",
56122987 14516 "enum" : [
44660702 14517 "native",
8f4d9c87
TL
14518 "threads",
14519 "io_uring"
56122987 14520 ],
56122987
DM
14521 "optional" : 1,
14522 "type" : "string"
14523 },
44660702
DM
14524 "backup" : {
14525 "description" : "Whether the drive should be included when making backups.",
44660702
DM
14526 "optional" : 1,
14527 "type" : "boolean"
7aacca6f 14528 },
44660702 14529 "bps" : {
de0983cb 14530 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
14531 "format_description" : "bps",
14532 "optional" : 1,
14533 "type" : "integer"
56122987 14534 },
de0983cb
DM
14535 "bps_max_length" : {
14536 "description" : "Maximum length of I/O bursts in seconds.",
14537 "format_description" : "seconds",
14538 "minimum" : 1,
14539 "optional" : 1,
14540 "type" : "integer"
14541 },
44660702 14542 "bps_rd" : {
de0983cb 14543 "description" : "Maximum read speed in bytes per second.",
44660702 14544 "format_description" : "bps",
56122987 14545 "optional" : 1,
44660702 14546 "type" : "integer"
56122987 14547 },
de0983cb 14548 "bps_rd_length" : {
5d9c884c
DM
14549 "alias" : "bps_rd_max_length"
14550 },
14551 "bps_rd_max_length" : {
de0983cb
DM
14552 "description" : "Maximum length of read I/O bursts in seconds.",
14553 "format_description" : "seconds",
14554 "minimum" : 1,
14555 "optional" : 1,
14556 "type" : "integer"
14557 },
44660702 14558 "bps_wr" : {
de0983cb 14559 "description" : "Maximum write speed in bytes per second.",
44660702 14560 "format_description" : "bps",
56122987 14561 "optional" : 1,
44660702
DM
14562 "type" : "integer"
14563 },
de0983cb 14564 "bps_wr_length" : {
5d9c884c
DM
14565 "alias" : "bps_wr_max_length"
14566 },
14567 "bps_wr_max_length" : {
de0983cb
DM
14568 "description" : "Maximum length of write I/O bursts in seconds.",
14569 "format_description" : "seconds",
14570 "minimum" : 1,
14571 "optional" : 1,
14572 "type" : "integer"
14573 },
44660702
DM
14574 "cache" : {
14575 "description" : "The drive's cache mode",
56122987 14576 "enum" : [
44660702
DM
14577 "none",
14578 "writethrough",
14579 "writeback",
14580 "unsafe",
14581 "directsync"
56122987 14582 ],
56122987 14583 "optional" : 1,
44660702 14584 "type" : "string"
56122987 14585 },
44660702
DM
14586 "cyls" : {
14587 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 14588 "optional" : 1,
44660702 14589 "type" : "integer"
7aacca6f 14590 },
44660702
DM
14591 "detect_zeroes" : {
14592 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
14593 "optional" : 1,
14594 "type" : "boolean"
7aacca6f 14595 },
44660702
DM
14596 "discard" : {
14597 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
14598 "enum" : [
14599 "ignore",
14600 "on"
14601 ],
56122987 14602 "optional" : 1,
44660702 14603 "type" : "string"
56122987
DM
14604 },
14605 "file" : {
7aacca6f 14606 "default_key" : 1,
44660702 14607 "description" : "The drive's backing volume.",
7aacca6f 14608 "format" : "pve-volume-id-or-qm-path",
44660702
DM
14609 "format_description" : "volume",
14610 "type" : "string"
7aacca6f
DM
14611 },
14612 "format" : {
7aacca6f
DM
14613 "description" : "The drive's backing file's data format.",
14614 "enum" : [
14615 "raw",
14616 "cow",
14617 "qcow",
14618 "qed",
14619 "qcow2",
14620 "vmdk",
14621 "cloop"
56122987
DM
14622 ],
14623 "optional" : 1,
56122987
DM
14624 "type" : "string"
14625 },
44660702
DM
14626 "heads" : {
14627 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 14628 "optional" : 1,
44660702 14629 "type" : "integer"
56122987 14630 },
44660702 14631 "iops" : {
de0983cb 14632 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 14633 "format_description" : "iops",
56122987 14634 "optional" : 1,
44660702 14635 "type" : "integer"
56122987 14636 },
44660702 14637 "iops_max" : {
de0983cb 14638 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 14639 "format_description" : "iops",
56122987 14640 "optional" : 1,
56122987
DM
14641 "type" : "integer"
14642 },
de0983cb
DM
14643 "iops_max_length" : {
14644 "description" : "Maximum length of I/O bursts in seconds.",
14645 "format_description" : "seconds",
14646 "minimum" : 1,
14647 "optional" : 1,
14648 "type" : "integer"
14649 },
44660702 14650 "iops_rd" : {
de0983cb 14651 "description" : "Maximum read I/O in operations per second.",
44660702 14652 "format_description" : "iops",
56122987 14653 "optional" : 1,
44660702 14654 "type" : "integer"
56122987 14655 },
de0983cb 14656 "iops_rd_length" : {
5d9c884c 14657 "alias" : "iops_rd_max_length"
de0983cb 14658 },
44660702 14659 "iops_rd_max" : {
de0983cb 14660 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 14661 "format_description" : "iops",
7aacca6f 14662 "optional" : 1,
44660702 14663 "type" : "integer"
56122987 14664 },
5d9c884c
DM
14665 "iops_rd_max_length" : {
14666 "description" : "Maximum length of read I/O bursts in seconds.",
14667 "format_description" : "seconds",
14668 "minimum" : 1,
14669 "optional" : 1,
14670 "type" : "integer"
14671 },
44660702 14672 "iops_wr" : {
de0983cb 14673 "description" : "Maximum write I/O in operations per second.",
44660702 14674 "format_description" : "iops",
7aacca6f 14675 "optional" : 1,
44660702 14676 "type" : "integer"
56122987 14677 },
de0983cb 14678 "iops_wr_length" : {
5d9c884c 14679 "alias" : "iops_wr_max_length"
de0983cb 14680 },
44660702 14681 "iops_wr_max" : {
de0983cb 14682 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 14683 "format_description" : "iops",
56122987
DM
14684 "optional" : 1,
14685 "type" : "integer"
14686 },
5d9c884c
DM
14687 "iops_wr_max_length" : {
14688 "description" : "Maximum length of write I/O bursts in seconds.",
14689 "format_description" : "seconds",
14690 "minimum" : 1,
14691 "optional" : 1,
14692 "type" : "integer"
14693 },
44660702
DM
14694 "iothread" : {
14695 "description" : "Whether to use iothreads for this drive",
44660702
DM
14696 "optional" : 1,
14697 "type" : "boolean"
14698 },
14699 "mbps" : {
de0983cb 14700 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 14701 "format_description" : "mbps",
44660702
DM
14702 "optional" : 1,
14703 "type" : "number"
14704 },
14705 "mbps_max" : {
de0983cb 14706 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
14707 "format_description" : "mbps",
14708 "optional" : 1,
14709 "type" : "number"
7aacca6f 14710 },
44660702 14711 "mbps_rd" : {
de0983cb 14712 "description" : "Maximum read speed in megabytes per second.",
44660702 14713 "format_description" : "mbps",
56122987 14714 "optional" : 1,
44660702 14715 "type" : "number"
56122987 14716 },
44660702 14717 "mbps_rd_max" : {
de0983cb 14718 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 14719 "format_description" : "mbps",
7aacca6f 14720 "optional" : 1,
44660702 14721 "type" : "number"
56122987 14722 },
44660702 14723 "mbps_wr" : {
de0983cb 14724 "description" : "Maximum write speed in megabytes per second.",
44660702 14725 "format_description" : "mbps",
56122987 14726 "optional" : 1,
44660702 14727 "type" : "number"
56122987 14728 },
44660702 14729 "mbps_wr_max" : {
de0983cb 14730 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 14731 "format_description" : "mbps",
56122987 14732 "optional" : 1,
44660702 14733 "type" : "number"
56122987
DM
14734 },
14735 "media" : {
7aacca6f 14736 "default" : "disk",
44660702 14737 "description" : "The drive's media type.",
56122987
DM
14738 "enum" : [
14739 "cdrom",
14740 "disk"
14741 ],
44660702
DM
14742 "optional" : 1,
14743 "type" : "string"
56122987 14744 },
5d9c884c
DM
14745 "replicate" : {
14746 "default" : 1,
14747 "description" : "Whether the drive should considered for replication jobs.",
14748 "optional" : 1,
14749 "type" : "boolean"
14750 },
7aacca6f 14751 "rerror" : {
44660702 14752 "description" : "Read error action.",
56122987 14753 "enum" : [
7aacca6f
DM
14754 "ignore",
14755 "report",
14756 "stop"
56122987 14757 ],
56122987 14758 "optional" : 1,
44660702 14759 "type" : "string"
56122987 14760 },
5370fa8c
TL
14761 "ro" : {
14762 "description" : "Whether the drive is read-only.",
14763 "optional" : 1,
14764 "type" : "boolean"
14765 },
44660702
DM
14766 "secs" : {
14767 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
14768 "optional" : 1,
14769 "type" : "integer"
14770 },
14771 "serial" : {
14772 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
14773 "format" : "urlencoded",
14774 "format_description" : "serial",
14775 "maxLength" : 60,
56122987 14776 "optional" : 1,
7aacca6f 14777 "type" : "string"
56122987 14778 },
27a7acb2
DM
14779 "shared" : {
14780 "default" : 0,
14781 "description" : "Mark this locally-managed volume as available on all nodes",
14782 "optional" : 1,
14783 "type" : "boolean",
14784 "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!"
14785 },
44660702
DM
14786 "size" : {
14787 "description" : "Disk size. This is purely informational and has no effect.",
14788 "format" : "disk-size",
f004f5b9 14789 "format_description" : "DiskSize",
56122987 14790 "optional" : 1,
44660702 14791 "type" : "string"
56122987 14792 },
44660702 14793 "snapshot" : {
27a7acb2 14794 "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 14795 "optional" : 1,
44660702 14796 "type" : "boolean"
56122987 14797 },
44660702
DM
14798 "trans" : {
14799 "description" : "Force disk geometry bios translation mode.",
14800 "enum" : [
14801 "none",
14802 "lba",
14803 "auto"
14804 ],
44660702
DM
14805 "optional" : 1,
14806 "type" : "string"
14807 },
14808 "volume" : {
14809 "alias" : "file"
14810 },
14811 "werror" : {
14812 "description" : "Write error action.",
14813 "enum" : [
14814 "enospc",
14815 "ignore",
14816 "report",
14817 "stop"
14818 ],
56122987 14819 "optional" : 1,
44660702 14820 "type" : "string"
56122987 14821 }
44660702 14822 },
56122987 14823 "optional" : 1,
4d47f125 14824 "type" : "string"
56122987 14825 },
4d47f125
TL
14826 "vmgenid" : {
14827 "default" : "1 (autogenerated)",
14828 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
14829 "format_description" : "UUID",
14830 "optional" : 1,
14831 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
14832 "type" : "string",
4772952b 14833 "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 14834 },
2489d6df
WB
14835 "vmstatestorage" : {
14836 "description" : "Default storage for VM state volumes/files.",
14837 "format" : "pve-storage-id",
14838 "optional" : 1,
4d47f125 14839 "type" : "string"
2489d6df 14840 },
44660702 14841 "watchdog" : {
c2993fe5 14842 "description" : "Create a virtual hardware watchdog device.",
44660702 14843 "format" : "pve-qm-watchdog",
56122987 14844 "optional" : 1,
c2993fe5
DM
14845 "type" : "string",
14846 "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 14847 }
4d47f125
TL
14848 },
14849 "type" : "object"
44660702 14850 }
56122987 14851 },
4d47f125 14852 "POST" : {
e9cd3bd4 14853 "allowtoken" : 1,
4d47f125
TL
14854 "description" : "Set virtual machine options (asynchrounous API).",
14855 "method" : "POST",
14856 "name" : "update_vm_async",
56122987 14857 "parameters" : {
7aacca6f 14858 "additionalProperties" : 0,
56122987 14859 "properties" : {
44660702
DM
14860 "acpi" : {
14861 "default" : 1,
14862 "description" : "Enable/disable ACPI.",
7aacca6f 14863 "optional" : 1,
013dc89f
DM
14864 "type" : "boolean",
14865 "typetext" : "<boolean>"
7aacca6f 14866 },
4e7f60c2 14867 "affinity" : {
81a3384d 14868 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
14869 "format" : "pve-cpuset",
14870 "optional" : 1,
14871 "type" : "string",
14872 "typetext" : "<string>"
14873 },
44660702 14874 "agent" : {
5370fa8c 14875 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
14876 "format" : {
14877 "enabled" : {
14878 "default" : 0,
14879 "default_key" : 1,
5370fa8c 14880 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
14881 "type" : "boolean"
14882 },
14883 "fstrim_cloned_disks" : {
14884 "default" : 0,
d2656385 14885 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
14886 "optional" : 1,
14887 "type" : "boolean"
5c1699e5
TL
14888 },
14889 "type" : {
14890 "default" : "virtio",
14891 "description" : "Select the agent type",
14892 "enum" : [
14893 "virtio",
14894 "isa"
14895 ],
14896 "optional" : 1,
14897 "type" : "string"
4d47f125
TL
14898 }
14899 },
7aacca6f 14900 "optional" : 1,
4d47f125 14901 "type" : "string",
5c1699e5 14902 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 14903 },
e2d681b3
TL
14904 "arch" : {
14905 "description" : "Virtual processor architecture. Defaults to the host.",
14906 "enum" : [
14907 "x86_64",
14908 "aarch64"
14909 ],
14910 "optional" : 1,
14911 "type" : "string"
14912 },
44660702 14913 "args" : {
c2993fe5 14914 "description" : "Arbitrary arguments passed to kvm.",
7aacca6f 14915 "optional" : 1,
c2993fe5 14916 "type" : "string",
013dc89f 14917 "typetext" : "<string>",
c2993fe5 14918 "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 14919 },
1c532546
TL
14920 "audio0" : {
14921 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
14922 "format" : {
14923 "device" : {
14924 "description" : "Configure an audio device.",
14925 "enum" : [
14926 "ich9-intel-hda",
14927 "intel-hda",
14928 "AC97"
14929 ],
14930 "type" : "string"
14931 },
14932 "driver" : {
14933 "default" : "spice",
14934 "description" : "Driver backend for the audio device.",
14935 "enum" : [
d2656385
TL
14936 "spice",
14937 "none"
1c532546
TL
14938 ],
14939 "optional" : 1,
14940 "type" : "string"
14941 }
14942 },
14943 "optional" : 1,
14944 "type" : "string",
d2656385 14945 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 14946 },
44660702
DM
14947 "autostart" : {
14948 "default" : 0,
14949 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 14950 "optional" : 1,
013dc89f
DM
14951 "type" : "boolean",
14952 "typetext" : "<boolean>"
7aacca6f 14953 },
4d47f125
TL
14954 "background_delay" : {
14955 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
14956 "maximum" : 30,
14957 "minimum" : 1,
14958 "optional" : 1,
14959 "type" : "integer",
14960 "typetext" : "<integer> (1 - 30)"
14961 },
44660702
DM
14962 "balloon" : {
14963 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
14964 "minimum" : 0,
14965 "optional" : 1,
4bd7df8b 14966 "type" : "integer",
013dc89f 14967 "typetext" : "<integer> (0 - N)"
44660702
DM
14968 },
14969 "bios" : {
14970 "default" : "seabios",
14971 "description" : "Select BIOS implementation.",
7aacca6f 14972 "enum" : [
44660702
DM
14973 "seabios",
14974 "ovmf"
7aacca6f 14975 ],
56122987 14976 "optional" : 1,
7aacca6f
DM
14977 "type" : "string"
14978 },
44660702 14979 "boot" : {
5370fa8c 14980 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 14981 "format" : "pve-qm-boot",
7aacca6f 14982 "optional" : 1,
4772952b
TL
14983 "type" : "string",
14984 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 14985 },
44660702 14986 "bootdisk" : {
4772952b 14987 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
14988 "format" : "pve-qm-bootdisk",
14989 "optional" : 1,
14990 "pattern" : "(ide|sata|scsi|virtio)\\d+",
14991 "type" : "string"
14992 },
14993 "cdrom" : {
14994 "description" : "This is an alias for option -ide2",
de0983cb 14995 "format" : "pve-qm-ide",
56122987 14996 "optional" : 1,
7aacca6f 14997 "type" : "string",
013dc89f 14998 "typetext" : "<volume>"
44660702 14999 },
95895385
TL
15000 "cicustom" : {
15001 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
15002 "format" : "pve-qm-cicustom",
15003 "optional" : 1,
15004 "type" : "string",
5370fa8c 15005 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 15006 },
27a7acb2
DM
15007 "cipassword" : {
15008 "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.",
15009 "optional" : 1,
15010 "type" : "string",
15011 "typetext" : "<string>"
15012 },
15013 "citype" : {
15014 "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.",
15015 "enum" : [
15016 "configdrive2",
d2656385
TL
15017 "nocloud",
15018 "opennebula"
27a7acb2
DM
15019 ],
15020 "optional" : 1,
15021 "type" : "string"
15022 },
15023 "ciuser" : {
15024 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
15025 "optional" : 1,
15026 "type" : "string",
15027 "typetext" : "<string>"
15028 },
44660702
DM
15029 "cores" : {
15030 "default" : 1,
15031 "description" : "The number of cores per socket.",
15032 "minimum" : 1,
15033 "optional" : 1,
4bd7df8b 15034 "type" : "integer",
013dc89f 15035 "typetext" : "<integer> (1 - N)"
44660702
DM
15036 },
15037 "cpu" : {
15038 "description" : "Emulated CPU type.",
c5aa7e14 15039 "format" : "pve-vm-cpu-conf",
44660702 15040 "optional" : 1,
4bd7df8b 15041 "type" : "string",
04d22a9f 15042 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702
DM
15043 },
15044 "cpulimit" : {
15045 "default" : 0,
c2993fe5 15046 "description" : "Limit of CPU usage.",
44660702
DM
15047 "maximum" : 128,
15048 "minimum" : 0,
15049 "optional" : 1,
c2993fe5 15050 "type" : "number",
013dc89f 15051 "typetext" : "<number> (0 - 128)",
c2993fe5 15052 "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
15053 },
15054 "cpuunits" : {
5370fa8c
TL
15055 "default" : "cgroup v1: 1024, cgroup v2: 100",
15056 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 15057 "maximum" : 262144,
7af2edf9 15058 "minimum" : 1,
44660702 15059 "optional" : 1,
c2993fe5 15060 "type" : "integer",
7af2edf9 15061 "typetext" : "<integer> (1 - 262144)",
2489d6df 15062 "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
15063 },
15064 "delete" : {
15065 "description" : "A list of settings you want to delete.",
15066 "format" : "pve-configid-list",
15067 "optional" : 1,
013dc89f
DM
15068 "type" : "string",
15069 "typetext" : "<string>"
44660702
DM
15070 },
15071 "description" : {
8f4d9c87
TL
15072 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
15073 "maxLength" : 8192,
44660702 15074 "optional" : 1,
013dc89f
DM
15075 "type" : "string",
15076 "typetext" : "<string>"
44660702
DM
15077 },
15078 "digest" : {
15079 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
15080 "maxLength" : 40,
15081 "optional" : 1,
013dc89f
DM
15082 "type" : "string",
15083 "typetext" : "<string>"
44660702 15084 },
4d47f125 15085 "efidisk0" : {
7af2edf9 15086 "description" : "Configure a Disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125 15087 "format" : {
5370fa8c
TL
15088 "efitype" : {
15089 "default" : "2m",
15090 "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.",
15091 "enum" : [
15092 "2m",
15093 "4m"
15094 ],
15095 "optional" : 1,
15096 "type" : "string"
15097 },
4d47f125
TL
15098 "file" : {
15099 "default_key" : 1,
15100 "description" : "The drive's backing volume.",
15101 "format" : "pve-volume-id-or-qm-path",
15102 "format_description" : "volume",
15103 "type" : "string"
15104 },
15105 "format" : {
15106 "description" : "The drive's backing file's data format.",
15107 "enum" : [
15108 "raw",
15109 "cow",
15110 "qcow",
15111 "qed",
15112 "qcow2",
15113 "vmdk",
15114 "cloop"
15115 ],
15116 "optional" : 1,
15117 "type" : "string"
15118 },
7af2edf9
TL
15119 "import-from" : {
15120 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
15121 "format" : "pve-volume-id-or-absolute-path",
15122 "format_description" : "source volume",
15123 "optional" : 1,
15124 "type" : "string"
15125 },
5370fa8c
TL
15126 "pre-enrolled-keys" : {
15127 "default" : 0,
15128 "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.",
15129 "optional" : 1,
15130 "type" : "boolean"
15131 },
4d47f125
TL
15132 "size" : {
15133 "description" : "Disk size. This is purely informational and has no effect.",
15134 "format" : "disk-size",
15135 "format_description" : "DiskSize",
15136 "optional" : 1,
15137 "type" : "string"
15138 },
15139 "volume" : {
15140 "alias" : "file"
15141 }
15142 },
15143 "optional" : 1,
15144 "type" : "string",
7af2edf9 15145 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 15146 },
44660702
DM
15147 "force" : {
15148 "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.",
15149 "optional" : 1,
15150 "requires" : "delete",
013dc89f
DM
15151 "type" : "boolean",
15152 "typetext" : "<boolean>"
44660702
DM
15153 },
15154 "freeze" : {
15155 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
15156 "optional" : 1,
013dc89f
DM
15157 "type" : "boolean",
15158 "typetext" : "<boolean>"
44660702 15159 },
5f26e15b
TL
15160 "hookscript" : {
15161 "description" : "Script that will be executed during various steps in the vms lifetime.",
15162 "format" : "pve-volume-id",
15163 "optional" : 1,
15164 "type" : "string",
15165 "typetext" : "<string>"
15166 },
44660702 15167 "hostpci[n]" : {
c2993fe5 15168 "description" : "Map host PCI devices into guest.",
44660702
DM
15169 "format" : "pve-qm-hostpci",
15170 "optional" : 1,
57b78691 15171 "type" : "string",
7af2edf9 15172 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 15173 "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 15174 },
7aacca6f 15175 "hotplug" : {
7aacca6f 15176 "default" : "network,disk,usb",
4e7f60c2 15177 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7.",
44660702 15178 "format" : "pve-hotplug-features",
56122987 15179 "optional" : 1,
013dc89f
DM
15180 "type" : "string",
15181 "typetext" : "<string>"
56122987 15182 },
4bd7df8b
DM
15183 "hugepages" : {
15184 "description" : "Enable/disable hugepages memory.",
15185 "enum" : [
15186 "any",
15187 "2",
15188 "1024"
15189 ],
15190 "optional" : 1,
15191 "type" : "string"
15192 },
56122987 15193 "ide[n]" : {
7af2edf9 15194 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
56122987 15195 "format" : {
44660702
DM
15196 "aio" : {
15197 "description" : "AIO type to use.",
15198 "enum" : [
15199 "native",
8f4d9c87
TL
15200 "threads",
15201 "io_uring"
44660702 15202 ],
56122987 15203 "optional" : 1,
44660702 15204 "type" : "string"
56122987 15205 },
44660702
DM
15206 "backup" : {
15207 "description" : "Whether the drive should be included when making backups.",
44660702
DM
15208 "optional" : 1,
15209 "type" : "boolean"
15210 },
15211 "bps" : {
de0983cb 15212 "description" : "Maximum r/w speed in bytes per second.",
44660702 15213 "format_description" : "bps",
56122987 15214 "optional" : 1,
44660702 15215 "type" : "integer"
56122987 15216 },
de0983cb
DM
15217 "bps_max_length" : {
15218 "description" : "Maximum length of I/O bursts in seconds.",
15219 "format_description" : "seconds",
15220 "minimum" : 1,
15221 "optional" : 1,
15222 "type" : "integer"
15223 },
44660702 15224 "bps_rd" : {
de0983cb 15225 "description" : "Maximum read speed in bytes per second.",
44660702 15226 "format_description" : "bps",
56122987 15227 "optional" : 1,
44660702 15228 "type" : "integer"
56122987 15229 },
de0983cb 15230 "bps_rd_length" : {
5d9c884c
DM
15231 "alias" : "bps_rd_max_length"
15232 },
15233 "bps_rd_max_length" : {
de0983cb
DM
15234 "description" : "Maximum length of read I/O bursts in seconds.",
15235 "format_description" : "seconds",
15236 "minimum" : 1,
15237 "optional" : 1,
15238 "type" : "integer"
15239 },
7aacca6f 15240 "bps_wr" : {
de0983cb 15241 "description" : "Maximum write speed in bytes per second.",
44660702
DM
15242 "format_description" : "bps",
15243 "optional" : 1,
15244 "type" : "integer"
7aacca6f 15245 },
de0983cb 15246 "bps_wr_length" : {
5d9c884c
DM
15247 "alias" : "bps_wr_max_length"
15248 },
15249 "bps_wr_max_length" : {
de0983cb
DM
15250 "description" : "Maximum length of write I/O bursts in seconds.",
15251 "format_description" : "seconds",
15252 "minimum" : 1,
15253 "optional" : 1,
15254 "type" : "integer"
15255 },
44660702
DM
15256 "cache" : {
15257 "description" : "The drive's cache mode",
15258 "enum" : [
15259 "none",
15260 "writethrough",
15261 "writeback",
15262 "unsafe",
15263 "directsync"
15264 ],
56122987 15265 "optional" : 1,
44660702
DM
15266 "type" : "string"
15267 },
15268 "cyls" : {
15269 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
15270 "optional" : 1,
15271 "type" : "integer"
15272 },
15273 "detect_zeroes" : {
15274 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
15275 "optional" : 1,
15276 "type" : "boolean"
56122987 15277 },
7aacca6f 15278 "discard" : {
7aacca6f 15279 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 15280 "enum" : [
7aacca6f
DM
15281 "ignore",
15282 "on"
56122987
DM
15283 ],
15284 "optional" : 1,
44660702 15285 "type" : "string"
7aacca6f 15286 },
44660702
DM
15287 "file" : {
15288 "default_key" : 1,
15289 "description" : "The drive's backing volume.",
15290 "format" : "pve-volume-id-or-qm-path",
15291 "format_description" : "volume",
15292 "type" : "string"
7aacca6f
DM
15293 },
15294 "format" : {
44660702 15295 "description" : "The drive's backing file's data format.",
7aacca6f
DM
15296 "enum" : [
15297 "raw",
15298 "cow",
15299 "qcow",
15300 "qed",
15301 "qcow2",
15302 "vmdk",
15303 "cloop"
15304 ],
7aacca6f 15305 "optional" : 1,
44660702 15306 "type" : "string"
56122987 15307 },
7aacca6f 15308 "heads" : {
44660702 15309 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 15310 "optional" : 1,
44660702 15311 "type" : "integer"
7aacca6f 15312 },
7af2edf9
TL
15313 "import-from" : {
15314 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
15315 "format" : "pve-volume-id-or-absolute-path",
15316 "format_description" : "source volume",
15317 "optional" : 1,
15318 "type" : "string"
15319 },
44660702 15320 "iops" : {
de0983cb 15321 "description" : "Maximum r/w I/O in operations per second.",
44660702 15322 "format_description" : "iops",
7aacca6f 15323 "optional" : 1,
44660702 15324 "type" : "integer"
56122987 15325 },
44660702 15326 "iops_max" : {
de0983cb 15327 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 15328 "format_description" : "iops",
56122987 15329 "optional" : 1,
44660702 15330 "type" : "integer"
56122987 15331 },
de0983cb
DM
15332 "iops_max_length" : {
15333 "description" : "Maximum length of I/O bursts in seconds.",
15334 "format_description" : "seconds",
15335 "minimum" : 1,
15336 "optional" : 1,
15337 "type" : "integer"
15338 },
44660702 15339 "iops_rd" : {
de0983cb 15340 "description" : "Maximum read I/O in operations per second.",
44660702 15341 "format_description" : "iops",
56122987 15342 "optional" : 1,
44660702 15343 "type" : "integer"
7aacca6f 15344 },
de0983cb 15345 "iops_rd_length" : {
5d9c884c 15346 "alias" : "iops_rd_max_length"
de0983cb 15347 },
44660702 15348 "iops_rd_max" : {
de0983cb 15349 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 15350 "format_description" : "iops",
7aacca6f 15351 "optional" : 1,
44660702 15352 "type" : "integer"
7aacca6f 15353 },
5d9c884c
DM
15354 "iops_rd_max_length" : {
15355 "description" : "Maximum length of read I/O bursts in seconds.",
15356 "format_description" : "seconds",
15357 "minimum" : 1,
15358 "optional" : 1,
15359 "type" : "integer"
15360 },
44660702 15361 "iops_wr" : {
de0983cb 15362 "description" : "Maximum write I/O in operations per second.",
44660702 15363 "format_description" : "iops",
7aacca6f 15364 "optional" : 1,
44660702 15365 "type" : "integer"
56122987 15366 },
de0983cb 15367 "iops_wr_length" : {
5d9c884c 15368 "alias" : "iops_wr_max_length"
de0983cb 15369 },
44660702 15370 "iops_wr_max" : {
de0983cb 15371 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 15372 "format_description" : "iops",
7aacca6f 15373 "optional" : 1,
44660702 15374 "type" : "integer"
7aacca6f 15375 },
5d9c884c
DM
15376 "iops_wr_max_length" : {
15377 "description" : "Maximum length of write I/O bursts in seconds.",
15378 "format_description" : "seconds",
15379 "minimum" : 1,
15380 "optional" : 1,
15381 "type" : "integer"
15382 },
7aacca6f 15383 "mbps" : {
de0983cb 15384 "description" : "Maximum r/w speed in megabytes per second.",
7aacca6f 15385 "format_description" : "mbps",
7aacca6f 15386 "optional" : 1,
44660702 15387 "type" : "number"
7aacca6f 15388 },
44660702 15389 "mbps_max" : {
de0983cb 15390 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 15391 "format_description" : "mbps",
7aacca6f 15392 "optional" : 1,
44660702 15393 "type" : "number"
7aacca6f 15394 },
44660702 15395 "mbps_rd" : {
de0983cb 15396 "description" : "Maximum read speed in megabytes per second.",
44660702 15397 "format_description" : "mbps",
7aacca6f 15398 "optional" : 1,
44660702 15399 "type" : "number"
7aacca6f 15400 },
44660702 15401 "mbps_rd_max" : {
de0983cb 15402 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
15403 "format_description" : "mbps",
15404 "optional" : 1,
15405 "type" : "number"
7aacca6f 15406 },
44660702 15407 "mbps_wr" : {
de0983cb 15408 "description" : "Maximum write speed in megabytes per second.",
44660702 15409 "format_description" : "mbps",
7aacca6f 15410 "optional" : 1,
44660702
DM
15411 "type" : "number"
15412 },
15413 "mbps_wr_max" : {
de0983cb 15414 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
15415 "format_description" : "mbps",
15416 "optional" : 1,
15417 "type" : "number"
15418 },
15419 "media" : {
15420 "default" : "disk",
15421 "description" : "The drive's media type.",
56122987 15422 "enum" : [
44660702
DM
15423 "cdrom",
15424 "disk"
56122987 15425 ],
44660702
DM
15426 "optional" : 1,
15427 "type" : "string"
56122987 15428 },
7aacca6f 15429 "model" : {
44660702 15430 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
56122987 15431 "format" : "urlencoded",
7aacca6f 15432 "format_description" : "model",
44660702 15433 "maxLength" : 120,
56122987 15434 "optional" : 1,
44660702 15435 "type" : "string"
56122987 15436 },
5d9c884c
DM
15437 "replicate" : {
15438 "default" : 1,
15439 "description" : "Whether the drive should considered for replication jobs.",
15440 "optional" : 1,
15441 "type" : "boolean"
15442 },
44660702
DM
15443 "rerror" : {
15444 "description" : "Read error action.",
15445 "enum" : [
15446 "ignore",
15447 "report",
15448 "stop"
15449 ],
56122987 15450 "optional" : 1,
44660702 15451 "type" : "string"
56122987 15452 },
44660702
DM
15453 "secs" : {
15454 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
15455 "optional" : 1,
15456 "type" : "integer"
56122987 15457 },
44660702
DM
15458 "serial" : {
15459 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
15460 "format" : "urlencoded",
15461 "format_description" : "serial",
15462 "maxLength" : 60,
56122987 15463 "optional" : 1,
44660702 15464 "type" : "string"
56122987 15465 },
27a7acb2
DM
15466 "shared" : {
15467 "default" : 0,
15468 "description" : "Mark this locally-managed volume as available on all nodes",
15469 "optional" : 1,
15470 "type" : "boolean",
15471 "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!"
15472 },
44660702
DM
15473 "size" : {
15474 "description" : "Disk size. This is purely informational and has no effect.",
15475 "format" : "disk-size",
f004f5b9 15476 "format_description" : "DiskSize",
56122987 15477 "optional" : 1,
44660702 15478 "type" : "string"
56122987 15479 },
44660702 15480 "snapshot" : {
27a7acb2 15481 "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 15482 "optional" : 1,
44660702 15483 "type" : "boolean"
56122987 15484 },
25203dc1
NC
15485 "ssd" : {
15486 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
15487 "optional" : 1,
15488 "type" : "boolean"
15489 },
44660702
DM
15490 "trans" : {
15491 "description" : "Force disk geometry bios translation mode.",
15492 "enum" : [
15493 "none",
15494 "lba",
15495 "auto"
15496 ],
56122987 15497 "optional" : 1,
44660702
DM
15498 "type" : "string"
15499 },
15500 "volume" : {
15501 "alias" : "file"
56122987 15502 },
7aacca6f 15503 "werror" : {
44660702 15504 "description" : "Write error action.",
7aacca6f
DM
15505 "enum" : [
15506 "enospc",
15507 "ignore",
15508 "report",
15509 "stop"
15510 ],
56122987 15511 "optional" : 1,
44660702 15512 "type" : "string"
95895385
TL
15513 },
15514 "wwn" : {
15515 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
15516 "format_description" : "wwn",
15517 "optional" : 1,
15518 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
15519 "type" : "string"
7aacca6f 15520 }
44660702
DM
15521 },
15522 "optional" : 1,
4bd7df8b 15523 "type" : "string",
7af2edf9 15524 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
27a7acb2
DM
15525 },
15526 "ipconfig[n]" : {
d2656385 15527 "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
15528 "format" : "pve-qm-ipconfig",
15529 "optional" : 1,
15530 "type" : "string",
15531 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
7aacca6f 15532 },
95895385
TL
15533 "ivshmem" : {
15534 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
15535 "format" : {
15536 "name" : {
15537 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
15538 "format_description" : "string",
15539 "optional" : 1,
15540 "pattern" : "[a-zA-Z0-9\\-]+",
15541 "type" : "string"
15542 },
15543 "size" : {
15544 "description" : "The size of the file in MB.",
15545 "minimum" : 1,
15546 "type" : "integer"
15547 }
15548 },
15549 "optional" : 1,
15550 "type" : "string",
15551 "typetext" : "size=<integer> [,name=<string>]"
15552 },
4772952b
TL
15553 "keephugepages" : {
15554 "default" : 0,
15555 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
15556 "optional" : 1,
15557 "type" : "boolean",
15558 "typetext" : "<boolean>"
15559 },
44660702 15560 "keyboard" : {
35a75dd3 15561 "default" : null,
7af2edf9 15562 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
44660702
DM
15563 "enum" : [
15564 "de",
15565 "de-ch",
15566 "da",
15567 "en-gb",
15568 "en-us",
15569 "es",
15570 "fi",
15571 "fr",
15572 "fr-be",
15573 "fr-ca",
15574 "fr-ch",
15575 "hu",
15576 "is",
15577 "it",
15578 "ja",
15579 "lt",
15580 "mk",
15581 "nl",
15582 "no",
15583 "pl",
15584 "pt",
15585 "pt-br",
15586 "sv",
15587 "sl",
15588 "tr"
15589 ],
7aacca6f 15590 "optional" : 1,
44660702 15591 "type" : "string"
7aacca6f 15592 },
44660702 15593 "kvm" : {
7aacca6f 15594 "default" : 1,
44660702 15595 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 15596 "optional" : 1,
013dc89f
DM
15597 "type" : "boolean",
15598 "typetext" : "<boolean>"
7aacca6f 15599 },
44660702 15600 "localtime" : {
5370fa8c 15601 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
7aacca6f 15602 "optional" : 1,
013dc89f
DM
15603 "type" : "boolean",
15604 "typetext" : "<boolean>"
7aacca6f 15605 },
44660702
DM
15606 "lock" : {
15607 "description" : "Lock/unlock the VM.",
15608 "enum" : [
44660702 15609 "backup",
5f26e15b
TL
15610 "clone",
15611 "create",
15612 "migrate",
15613 "rollback",
44660702 15614 "snapshot",
95895385
TL
15615 "snapshot-delete",
15616 "suspending",
15617 "suspended"
44660702 15618 ],
7aacca6f 15619 "optional" : 1,
44660702 15620 "type" : "string"
7aacca6f 15621 },
44660702 15622 "machine" : {
4d47f125 15623 "description" : "Specifies the Qemu machine type.",
44660702 15624 "maxLength" : 40,
7aacca6f 15625 "optional" : 1,
5c1699e5 15626 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702 15627 "type" : "string"
7aacca6f 15628 },
44660702
DM
15629 "memory" : {
15630 "default" : 512,
15631 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
15632 "minimum" : 16,
7aacca6f 15633 "optional" : 1,
4bd7df8b 15634 "type" : "integer",
013dc89f 15635 "typetext" : "<integer> (16 - N)"
7aacca6f 15636 },
44660702
DM
15637 "migrate_downtime" : {
15638 "default" : 0.1,
15639 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
15640 "minimum" : 0,
7aacca6f 15641 "optional" : 1,
4bd7df8b 15642 "type" : "number",
013dc89f 15643 "typetext" : "<number> (0 - N)"
7aacca6f 15644 },
44660702 15645 "migrate_speed" : {
7aacca6f 15646 "default" : 0,
44660702
DM
15647 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
15648 "minimum" : 0,
15649 "optional" : 1,
4bd7df8b 15650 "type" : "integer",
013dc89f 15651 "typetext" : "<integer> (0 - N)"
7aacca6f 15652 },
44660702
DM
15653 "name" : {
15654 "description" : "Set a name for the VM. Only used on the configuration web interface.",
15655 "format" : "dns-name",
7aacca6f 15656 "optional" : 1,
013dc89f
DM
15657 "type" : "string",
15658 "typetext" : "<string>"
7aacca6f 15659 },
27a7acb2 15660 "nameserver" : {
de786b48 15661 "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
27a7acb2
DM
15662 "format" : "address-list",
15663 "optional" : 1,
15664 "type" : "string",
15665 "typetext" : "<string>"
15666 },
44660702 15667 "net[n]" : {
c2993fe5 15668 "description" : "Specify network devices.",
f004f5b9
DM
15669 "format" : {
15670 "bridge" : {
c2993fe5 15671 "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2 Gateway\n 10.0.2.3 DNS Server\n 10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
7af2edf9 15672 "format" : "pve-bridge-id",
f004f5b9
DM
15673 "format_description" : "bridge",
15674 "optional" : 1,
15675 "type" : "string"
15676 },
15677 "e1000" : {
15678 "alias" : "macaddr",
15679 "keyAlias" : "model"
15680 },
15681 "e1000-82540em" : {
15682 "alias" : "macaddr",
15683 "keyAlias" : "model"
15684 },
15685 "e1000-82544gc" : {
15686 "alias" : "macaddr",
15687 "keyAlias" : "model"
15688 },
15689 "e1000-82545em" : {
15690 "alias" : "macaddr",
15691 "keyAlias" : "model"
15692 },
5370fa8c
TL
15693 "e1000e" : {
15694 "alias" : "macaddr",
15695 "keyAlias" : "model"
15696 },
f004f5b9
DM
15697 "firewall" : {
15698 "description" : "Whether this interface should be protected by the firewall.",
15699 "optional" : 1,
15700 "type" : "boolean"
15701 },
15702 "i82551" : {
15703 "alias" : "macaddr",
15704 "keyAlias" : "model"
15705 },
15706 "i82557b" : {
15707 "alias" : "macaddr",
15708 "keyAlias" : "model"
15709 },
15710 "i82559er" : {
15711 "alias" : "macaddr",
15712 "keyAlias" : "model"
15713 },
15714 "link_down" : {
c2993fe5 15715 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
15716 "optional" : 1,
15717 "type" : "boolean"
15718 },
15719 "macaddr" : {
c2993fe5 15720 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 15721 "format" : "mac-addr",
f004f5b9 15722 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 15723 "optional" : 1,
95895385
TL
15724 "type" : "string",
15725 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
15726 },
15727 "model" : {
15728 "default_key" : 1,
c2993fe5 15729 "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 15730 "enum" : [
f004f5b9 15731 "e1000",
5370fa8c
TL
15732 "e1000-82540em",
15733 "e1000-82544gc",
15734 "e1000-82545em",
15735 "e1000e",
f004f5b9
DM
15736 "i82551",
15737 "i82557b",
15738 "i82559er",
5370fa8c
TL
15739 "ne2k_isa",
15740 "ne2k_pci",
15741 "pcnet",
15742 "rtl8139",
15743 "virtio",
15744 "vmxnet3"
f004f5b9 15745 ],
f004f5b9
DM
15746 "type" : "string"
15747 },
ac70d7d1
TL
15748 "mtu" : {
15749 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
15750 "maximum" : 65520,
15751 "minimum" : 1,
15752 "optional" : 1,
15753 "type" : "integer"
15754 },
f004f5b9
DM
15755 "ne2k_isa" : {
15756 "alias" : "macaddr",
15757 "keyAlias" : "model"
15758 },
15759 "ne2k_pci" : {
15760 "alias" : "macaddr",
15761 "keyAlias" : "model"
15762 },
15763 "pcnet" : {
15764 "alias" : "macaddr",
15765 "keyAlias" : "model"
15766 },
15767 "queues" : {
15768 "description" : "Number of packet queues to be used on the device.",
81a3384d 15769 "maximum" : 64,
f004f5b9
DM
15770 "minimum" : 0,
15771 "optional" : 1,
15772 "type" : "integer"
15773 },
15774 "rate" : {
c2993fe5 15775 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
15776 "minimum" : 0,
15777 "optional" : 1,
15778 "type" : "number"
15779 },
15780 "rtl8139" : {
15781 "alias" : "macaddr",
15782 "keyAlias" : "model"
15783 },
15784 "tag" : {
15785 "description" : "VLAN tag to apply to packets on this interface.",
15786 "maximum" : 4094,
c2993fe5 15787 "minimum" : 1,
f004f5b9
DM
15788 "optional" : 1,
15789 "type" : "integer"
15790 },
15791 "trunks" : {
15792 "description" : "VLAN trunks to pass through this interface.",
15793 "format_description" : "vlanid[;vlanid...]",
15794 "optional" : 1,
15795 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15796 "type" : "string"
15797 },
15798 "virtio" : {
15799 "alias" : "macaddr",
15800 "keyAlias" : "model"
15801 },
15802 "vmxnet3" : {
15803 "alias" : "macaddr",
15804 "keyAlias" : "model"
15805 }
15806 },
7aacca6f 15807 "optional" : 1,
4bd7df8b 15808 "type" : "string",
ac70d7d1 15809 "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 15810 },
44660702
DM
15811 "node" : {
15812 "description" : "The cluster node name.",
15813 "format" : "pve-node",
013dc89f
DM
15814 "type" : "string",
15815 "typetext" : "<string>"
44660702
DM
15816 },
15817 "numa" : {
15818 "default" : 0,
15819 "description" : "Enable/disable NUMA.",
7aacca6f 15820 "optional" : 1,
013dc89f
DM
15821 "type" : "boolean",
15822 "typetext" : "<boolean>"
7aacca6f 15823 },
44660702 15824 "numa[n]" : {
c2993fe5 15825 "description" : "NUMA topology.",
44660702
DM
15826 "format" : {
15827 "cpus" : {
c2993fe5 15828 "description" : "CPUs accessing this NUMA node.",
44660702
DM
15829 "format_description" : "id[-id];...",
15830 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15831 "type" : "string"
15832 },
15833 "hostnodes" : {
c2993fe5 15834 "description" : "Host NUMA nodes to use.",
44660702
DM
15835 "format_description" : "id[-id];...",
15836 "optional" : 1,
15837 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
15838 "type" : "string"
15839 },
15840 "memory" : {
c2993fe5 15841 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
15842 "optional" : 1,
15843 "type" : "number"
15844 },
15845 "policy" : {
c2993fe5 15846 "description" : "NUMA allocation policy.",
44660702
DM
15847 "enum" : [
15848 "preferred",
15849 "bind",
15850 "interleave"
15851 ],
44660702
DM
15852 "optional" : 1,
15853 "type" : "string"
15854 }
15855 },
7aacca6f 15856 "optional" : 1,
4bd7df8b
DM
15857 "type" : "string",
15858 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
7aacca6f 15859 },
44660702
DM
15860 "onboot" : {
15861 "default" : 0,
15862 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 15863 "optional" : 1,
013dc89f
DM
15864 "type" : "boolean",
15865 "typetext" : "<boolean>"
7aacca6f 15866 },
44660702 15867 "ostype" : {
c2993fe5 15868 "description" : "Specify guest operating system.",
44660702
DM
15869 "enum" : [
15870 "other",
15871 "wxp",
15872 "w2k",
15873 "w2k3",
15874 "w2k8",
15875 "wvista",
15876 "win7",
15877 "win8",
32d876b5 15878 "win10",
5370fa8c 15879 "win11",
44660702
DM
15880 "l24",
15881 "l26",
15882 "solaris"
15883 ],
7aacca6f 15884 "optional" : 1,
c2993fe5 15885 "type" : "string",
5370fa8c 15886 "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 15887 },
44660702 15888 "parallel[n]" : {
c2993fe5 15889 "description" : "Map host parallel devices (n is 0 to 2).",
7aacca6f 15890 "optional" : 1,
44660702 15891 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 15892 "type" : "string",
4772952b 15893 "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 15894 },
44660702
DM
15895 "protection" : {
15896 "default" : 0,
c2993fe5 15897 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
7aacca6f 15898 "optional" : 1,
013dc89f
DM
15899 "type" : "boolean",
15900 "typetext" : "<boolean>"
7aacca6f 15901 },
44660702
DM
15902 "reboot" : {
15903 "default" : 1,
15904 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
7aacca6f 15905 "optional" : 1,
013dc89f
DM
15906 "type" : "boolean",
15907 "typetext" : "<boolean>"
7aacca6f 15908 },
44660702
DM
15909 "revert" : {
15910 "description" : "Revert a pending change.",
15911 "format" : "pve-configid-list",
7aacca6f 15912 "optional" : 1,
013dc89f
DM
15913 "type" : "string",
15914 "typetext" : "<string>"
7aacca6f 15915 },
c5aa7e14
TL
15916 "rng0" : {
15917 "description" : "Configure a VirtIO-based Random Number Generator.",
15918 "format" : {
15919 "max_bytes" : {
15920 "default" : 1024,
5370fa8c 15921 "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
15922 "optional" : 1,
15923 "type" : "integer"
15924 },
15925 "period" : {
15926 "default" : 1000,
15927 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
15928 "optional" : 1,
15929 "type" : "integer"
15930 },
15931 "source" : {
15932 "default_key" : 1,
5370fa8c 15933 "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
15934 "enum" : [
15935 "/dev/urandom",
15936 "/dev/random",
15937 "/dev/hwrng"
15938 ],
15939 "type" : "string"
15940 }
15941 },
15942 "optional" : 1,
15943 "type" : "string",
15944 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
15945 },
44660702 15946 "sata[n]" : {
7af2edf9 15947 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
7aacca6f 15948 "format" : {
44660702
DM
15949 "aio" : {
15950 "description" : "AIO type to use.",
15951 "enum" : [
15952 "native",
8f4d9c87
TL
15953 "threads",
15954 "io_uring"
44660702 15955 ],
44660702
DM
15956 "optional" : 1,
15957 "type" : "string"
15958 },
15959 "backup" : {
15960 "description" : "Whether the drive should be included when making backups.",
44660702
DM
15961 "optional" : 1,
15962 "type" : "boolean"
15963 },
15964 "bps" : {
de0983cb 15965 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 15966 "format_description" : "bps",
7aacca6f
DM
15967 "optional" : 1,
15968 "type" : "integer"
56122987 15969 },
de0983cb
DM
15970 "bps_max_length" : {
15971 "description" : "Maximum length of I/O bursts in seconds.",
15972 "format_description" : "seconds",
15973 "minimum" : 1,
15974 "optional" : 1,
15975 "type" : "integer"
15976 },
44660702 15977 "bps_rd" : {
de0983cb 15978 "description" : "Maximum read speed in bytes per second.",
44660702 15979 "format_description" : "bps",
7aacca6f 15980 "optional" : 1,
44660702 15981 "type" : "integer"
7aacca6f 15982 },
de0983cb 15983 "bps_rd_length" : {
5d9c884c
DM
15984 "alias" : "bps_rd_max_length"
15985 },
15986 "bps_rd_max_length" : {
de0983cb
DM
15987 "description" : "Maximum length of read I/O bursts in seconds.",
15988 "format_description" : "seconds",
15989 "minimum" : 1,
15990 "optional" : 1,
15991 "type" : "integer"
15992 },
44660702 15993 "bps_wr" : {
de0983cb 15994 "description" : "Maximum write speed in bytes per second.",
44660702 15995 "format_description" : "bps",
7aacca6f 15996 "optional" : 1,
44660702 15997 "type" : "integer"
7aacca6f 15998 },
de0983cb 15999 "bps_wr_length" : {
5d9c884c
DM
16000 "alias" : "bps_wr_max_length"
16001 },
16002 "bps_wr_max_length" : {
de0983cb
DM
16003 "description" : "Maximum length of write I/O bursts in seconds.",
16004 "format_description" : "seconds",
16005 "minimum" : 1,
16006 "optional" : 1,
16007 "type" : "integer"
16008 },
44660702
DM
16009 "cache" : {
16010 "description" : "The drive's cache mode",
16011 "enum" : [
16012 "none",
16013 "writethrough",
16014 "writeback",
16015 "unsafe",
16016 "directsync"
16017 ],
7aacca6f 16018 "optional" : 1,
44660702 16019 "type" : "string"
7aacca6f 16020 },
44660702
DM
16021 "cyls" : {
16022 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
7aacca6f 16023 "optional" : 1,
44660702 16024 "type" : "integer"
7aacca6f 16025 },
44660702
DM
16026 "detect_zeroes" : {
16027 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
7aacca6f 16028 "optional" : 1,
44660702 16029 "type" : "boolean"
7aacca6f 16030 },
44660702
DM
16031 "discard" : {
16032 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
16033 "enum" : [
16034 "ignore",
16035 "on"
16036 ],
7aacca6f 16037 "optional" : 1,
44660702
DM
16038 "type" : "string"
16039 },
16040 "file" : {
16041 "default_key" : 1,
16042 "description" : "The drive's backing volume.",
16043 "format" : "pve-volume-id-or-qm-path",
16044 "format_description" : "volume",
16045 "type" : "string"
7aacca6f
DM
16046 },
16047 "format" : {
7aacca6f 16048 "description" : "The drive's backing file's data format.",
56122987
DM
16049 "enum" : [
16050 "raw",
16051 "cow",
16052 "qcow",
16053 "qed",
16054 "qcow2",
16055 "vmdk",
16056 "cloop"
16057 ],
16058 "optional" : 1,
7aacca6f 16059 "type" : "string"
56122987 16060 },
7aacca6f 16061 "heads" : {
7aacca6f 16062 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
16063 "optional" : 1,
16064 "type" : "integer"
56122987 16065 },
7af2edf9
TL
16066 "import-from" : {
16067 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
16068 "format" : "pve-volume-id-or-absolute-path",
16069 "format_description" : "source volume",
16070 "optional" : 1,
16071 "type" : "string"
16072 },
44660702 16073 "iops" : {
de0983cb 16074 "description" : "Maximum r/w I/O in operations per second.",
44660702 16075 "format_description" : "iops",
56122987 16076 "optional" : 1,
44660702 16077 "type" : "integer"
7aacca6f 16078 },
44660702 16079 "iops_max" : {
de0983cb 16080 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 16081 "format_description" : "iops",
7aacca6f 16082 "optional" : 1,
44660702 16083 "type" : "integer"
56122987 16084 },
de0983cb
DM
16085 "iops_max_length" : {
16086 "description" : "Maximum length of I/O bursts in seconds.",
16087 "format_description" : "seconds",
16088 "minimum" : 1,
16089 "optional" : 1,
16090 "type" : "integer"
16091 },
44660702 16092 "iops_rd" : {
de0983cb 16093 "description" : "Maximum read I/O in operations per second.",
44660702 16094 "format_description" : "iops",
56122987 16095 "optional" : 1,
44660702 16096 "type" : "integer"
7aacca6f 16097 },
de0983cb 16098 "iops_rd_length" : {
5d9c884c 16099 "alias" : "iops_rd_max_length"
de0983cb 16100 },
44660702 16101 "iops_rd_max" : {
de0983cb 16102 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 16103 "format_description" : "iops",
56122987 16104 "optional" : 1,
44660702 16105 "type" : "integer"
56122987 16106 },
5d9c884c
DM
16107 "iops_rd_max_length" : {
16108 "description" : "Maximum length of read I/O bursts in seconds.",
16109 "format_description" : "seconds",
16110 "minimum" : 1,
16111 "optional" : 1,
16112 "type" : "integer"
16113 },
44660702 16114 "iops_wr" : {
de0983cb 16115 "description" : "Maximum write I/O in operations per second.",
44660702
DM
16116 "format_description" : "iops",
16117 "optional" : 1,
16118 "type" : "integer"
56122987 16119 },
de0983cb 16120 "iops_wr_length" : {
5d9c884c 16121 "alias" : "iops_wr_max_length"
de0983cb 16122 },
44660702 16123 "iops_wr_max" : {
de0983cb 16124 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
16125 "format_description" : "iops",
16126 "optional" : 1,
16127 "type" : "integer"
16128 },
5d9c884c
DM
16129 "iops_wr_max_length" : {
16130 "description" : "Maximum length of write I/O bursts in seconds.",
16131 "format_description" : "seconds",
16132 "minimum" : 1,
16133 "optional" : 1,
16134 "type" : "integer"
16135 },
44660702 16136 "mbps" : {
de0983cb 16137 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
16138 "format_description" : "mbps",
16139 "optional" : 1,
16140 "type" : "number"
16141 },
16142 "mbps_max" : {
de0983cb 16143 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
16144 "format_description" : "mbps",
16145 "optional" : 1,
16146 "type" : "number"
16147 },
16148 "mbps_rd" : {
de0983cb 16149 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
16150 "format_description" : "mbps",
16151 "optional" : 1,
16152 "type" : "number"
16153 },
16154 "mbps_rd_max" : {
de0983cb 16155 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
16156 "format_description" : "mbps",
16157 "optional" : 1,
16158 "type" : "number"
16159 },
16160 "mbps_wr" : {
de0983cb 16161 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
16162 "format_description" : "mbps",
16163 "optional" : 1,
16164 "type" : "number"
16165 },
16166 "mbps_wr_max" : {
de0983cb 16167 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
16168 "format_description" : "mbps",
16169 "optional" : 1,
16170 "type" : "number"
16171 },
16172 "media" : {
16173 "default" : "disk",
16174 "description" : "The drive's media type.",
16175 "enum" : [
16176 "cdrom",
16177 "disk"
16178 ],
56122987 16179 "optional" : 1,
44660702
DM
16180 "type" : "string"
16181 },
5d9c884c
DM
16182 "replicate" : {
16183 "default" : 1,
16184 "description" : "Whether the drive should considered for replication jobs.",
16185 "optional" : 1,
16186 "type" : "boolean"
16187 },
44660702 16188 "rerror" : {
7aacca6f
DM
16189 "description" : "Read error action.",
16190 "enum" : [
16191 "ignore",
16192 "report",
16193 "stop"
44660702 16194 ],
56122987 16195 "optional" : 1,
44660702 16196 "type" : "string"
56122987 16197 },
7aacca6f 16198 "secs" : {
44660702 16199 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 16200 "optional" : 1,
44660702 16201 "type" : "integer"
56122987 16202 },
44660702
DM
16203 "serial" : {
16204 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16205 "format" : "urlencoded",
16206 "format_description" : "serial",
16207 "maxLength" : 60,
56122987 16208 "optional" : 1,
44660702 16209 "type" : "string"
56122987 16210 },
27a7acb2
DM
16211 "shared" : {
16212 "default" : 0,
16213 "description" : "Mark this locally-managed volume as available on all nodes",
16214 "optional" : 1,
16215 "type" : "boolean",
16216 "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!"
16217 },
44660702
DM
16218 "size" : {
16219 "description" : "Disk size. This is purely informational and has no effect.",
16220 "format" : "disk-size",
f004f5b9 16221 "format_description" : "DiskSize",
56122987 16222 "optional" : 1,
44660702 16223 "type" : "string"
56122987
DM
16224 },
16225 "snapshot" : {
27a7acb2 16226 "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 16227 "optional" : 1,
44660702 16228 "type" : "boolean"
56122987 16229 },
25203dc1
NC
16230 "ssd" : {
16231 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
16232 "optional" : 1,
16233 "type" : "boolean"
16234 },
56122987 16235 "trans" : {
7aacca6f 16236 "description" : "Force disk geometry bios translation mode.",
56122987
DM
16237 "enum" : [
16238 "none",
16239 "lba",
16240 "auto"
16241 ],
16242 "optional" : 1,
44660702 16243 "type" : "string"
56122987 16244 },
44660702
DM
16245 "volume" : {
16246 "alias" : "file"
56122987 16247 },
7aacca6f 16248 "werror" : {
44660702 16249 "description" : "Write error action.",
56122987 16250 "enum" : [
7aacca6f 16251 "enospc",
56122987 16252 "ignore",
7aacca6f
DM
16253 "report",
16254 "stop"
16255 ],
7aacca6f 16256 "optional" : 1,
44660702 16257 "type" : "string"
95895385
TL
16258 },
16259 "wwn" : {
16260 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
16261 "format_description" : "wwn",
16262 "optional" : 1,
16263 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
16264 "type" : "string"
44660702
DM
16265 }
16266 },
16267 "optional" : 1,
4bd7df8b 16268 "type" : "string",
7af2edf9 16269 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
44660702
DM
16270 },
16271 "scsi[n]" : {
7af2edf9 16272 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
44660702
DM
16273 "format" : {
16274 "aio" : {
7aacca6f 16275 "description" : "AIO type to use.",
56122987
DM
16276 "enum" : [
16277 "native",
8f4d9c87
TL
16278 "threads",
16279 "io_uring"
44660702 16280 ],
56122987 16281 "optional" : 1,
44660702 16282 "type" : "string"
56122987 16283 },
7aacca6f 16284 "backup" : {
7aacca6f 16285 "description" : "Whether the drive should be included when making backups.",
7aacca6f 16286 "optional" : 1,
44660702 16287 "type" : "boolean"
56122987 16288 },
44660702 16289 "bps" : {
de0983cb 16290 "description" : "Maximum r/w speed in bytes per second.",
44660702 16291 "format_description" : "bps",
7aacca6f 16292 "optional" : 1,
44660702 16293 "type" : "integer"
7aacca6f 16294 },
de0983cb
DM
16295 "bps_max_length" : {
16296 "description" : "Maximum length of I/O bursts in seconds.",
16297 "format_description" : "seconds",
16298 "minimum" : 1,
16299 "optional" : 1,
16300 "type" : "integer"
16301 },
44660702 16302 "bps_rd" : {
de0983cb 16303 "description" : "Maximum read speed in bytes per second.",
44660702 16304 "format_description" : "bps",
56122987 16305 "optional" : 1,
44660702 16306 "type" : "integer"
56122987 16307 },
de0983cb 16308 "bps_rd_length" : {
5d9c884c
DM
16309 "alias" : "bps_rd_max_length"
16310 },
16311 "bps_rd_max_length" : {
de0983cb
DM
16312 "description" : "Maximum length of read I/O bursts in seconds.",
16313 "format_description" : "seconds",
16314 "minimum" : 1,
16315 "optional" : 1,
16316 "type" : "integer"
16317 },
44660702 16318 "bps_wr" : {
de0983cb 16319 "description" : "Maximum write speed in bytes per second.",
44660702 16320 "format_description" : "bps",
56122987 16321 "optional" : 1,
44660702 16322 "type" : "integer"
56122987 16323 },
de0983cb 16324 "bps_wr_length" : {
5d9c884c
DM
16325 "alias" : "bps_wr_max_length"
16326 },
16327 "bps_wr_max_length" : {
de0983cb
DM
16328 "description" : "Maximum length of write I/O bursts in seconds.",
16329 "format_description" : "seconds",
16330 "minimum" : 1,
16331 "optional" : 1,
16332 "type" : "integer"
16333 },
44660702
DM
16334 "cache" : {
16335 "description" : "The drive's cache mode",
16336 "enum" : [
16337 "none",
16338 "writethrough",
16339 "writeback",
16340 "unsafe",
16341 "directsync"
16342 ],
56122987 16343 "optional" : 1,
44660702
DM
16344 "type" : "string"
16345 },
16346 "cyls" : {
16347 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16348 "optional" : 1,
16349 "type" : "integer"
16350 },
16351 "detect_zeroes" : {
16352 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16353 "optional" : 1,
16354 "type" : "boolean"
16355 },
16356 "discard" : {
16357 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
16358 "enum" : [
16359 "ignore",
16360 "on"
16361 ],
44660702
DM
16362 "optional" : 1,
16363 "type" : "string"
16364 },
16365 "file" : {
16366 "default_key" : 1,
16367 "description" : "The drive's backing volume.",
16368 "format" : "pve-volume-id-or-qm-path",
16369 "format_description" : "volume",
16370 "type" : "string"
56122987 16371 },
7aacca6f 16372 "format" : {
44660702 16373 "description" : "The drive's backing file's data format.",
7aacca6f
DM
16374 "enum" : [
16375 "raw",
16376 "cow",
16377 "qcow",
16378 "qed",
16379 "qcow2",
16380 "vmdk",
16381 "cloop"
16382 ],
56122987 16383 "optional" : 1,
44660702 16384 "type" : "string"
56122987 16385 },
44660702
DM
16386 "heads" : {
16387 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 16388 "optional" : 1,
44660702 16389 "type" : "integer"
56122987 16390 },
7af2edf9
TL
16391 "import-from" : {
16392 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
16393 "format" : "pve-volume-id-or-absolute-path",
16394 "format_description" : "source volume",
16395 "optional" : 1,
16396 "type" : "string"
16397 },
44660702 16398 "iops" : {
de0983cb 16399 "description" : "Maximum r/w I/O in operations per second.",
44660702 16400 "format_description" : "iops",
7aacca6f 16401 "optional" : 1,
44660702 16402 "type" : "integer"
56122987 16403 },
44660702 16404 "iops_max" : {
de0983cb 16405 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
7aacca6f 16406 "format_description" : "iops",
7aacca6f 16407 "optional" : 1,
44660702 16408 "type" : "integer"
56122987 16409 },
de0983cb
DM
16410 "iops_max_length" : {
16411 "description" : "Maximum length of I/O bursts in seconds.",
16412 "format_description" : "seconds",
16413 "minimum" : 1,
16414 "optional" : 1,
16415 "type" : "integer"
16416 },
44660702 16417 "iops_rd" : {
de0983cb 16418 "description" : "Maximum read I/O in operations per second.",
44660702 16419 "format_description" : "iops",
56122987 16420 "optional" : 1,
44660702 16421 "type" : "integer"
56122987 16422 },
de0983cb 16423 "iops_rd_length" : {
5d9c884c 16424 "alias" : "iops_rd_max_length"
de0983cb 16425 },
44660702 16426 "iops_rd_max" : {
de0983cb 16427 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 16428 "format_description" : "iops",
56122987 16429 "optional" : 1,
44660702 16430 "type" : "integer"
56122987 16431 },
5d9c884c
DM
16432 "iops_rd_max_length" : {
16433 "description" : "Maximum length of read I/O bursts in seconds.",
16434 "format_description" : "seconds",
16435 "minimum" : 1,
16436 "optional" : 1,
16437 "type" : "integer"
16438 },
44660702 16439 "iops_wr" : {
de0983cb 16440 "description" : "Maximum write I/O in operations per second.",
44660702 16441 "format_description" : "iops",
56122987 16442 "optional" : 1,
44660702 16443 "type" : "integer"
56122987 16444 },
de0983cb 16445 "iops_wr_length" : {
5d9c884c 16446 "alias" : "iops_wr_max_length"
de0983cb 16447 },
44660702 16448 "iops_wr_max" : {
de0983cb 16449 "description" : "Maximum unthrottled write I/O pool in operations per second.",
7aacca6f 16450 "format_description" : "iops",
44660702
DM
16451 "optional" : 1,
16452 "type" : "integer"
7aacca6f 16453 },
5d9c884c
DM
16454 "iops_wr_max_length" : {
16455 "description" : "Maximum length of write I/O bursts in seconds.",
16456 "format_description" : "seconds",
16457 "minimum" : 1,
16458 "optional" : 1,
16459 "type" : "integer"
16460 },
7aacca6f 16461 "iothread" : {
44660702 16462 "description" : "Whether to use iothreads for this drive",
56122987 16463 "optional" : 1,
44660702 16464 "type" : "boolean"
56122987 16465 },
44660702 16466 "mbps" : {
de0983cb 16467 "description" : "Maximum r/w speed in megabytes per second.",
44660702 16468 "format_description" : "mbps",
56122987 16469 "optional" : 1,
44660702 16470 "type" : "number"
56122987 16471 },
44660702 16472 "mbps_max" : {
de0983cb 16473 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 16474 "format_description" : "mbps",
56122987 16475 "optional" : 1,
44660702 16476 "type" : "number"
56122987 16477 },
44660702 16478 "mbps_rd" : {
de0983cb 16479 "description" : "Maximum read speed in megabytes per second.",
44660702 16480 "format_description" : "mbps",
7aacca6f 16481 "optional" : 1,
44660702 16482 "type" : "number"
56122987 16483 },
44660702 16484 "mbps_rd_max" : {
de0983cb 16485 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 16486 "format_description" : "mbps",
7aacca6f 16487 "optional" : 1,
44660702 16488 "type" : "number"
7aacca6f 16489 },
44660702 16490 "mbps_wr" : {
de0983cb 16491 "description" : "Maximum write speed in megabytes per second.",
44660702 16492 "format_description" : "mbps",
56122987 16493 "optional" : 1,
44660702 16494 "type" : "number"
56122987 16495 },
44660702 16496 "mbps_wr_max" : {
de0983cb 16497 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 16498 "format_description" : "mbps",
56122987 16499 "optional" : 1,
44660702
DM
16500 "type" : "number"
16501 },
16502 "media" : {
16503 "default" : "disk",
16504 "description" : "The drive's media type.",
7aacca6f 16505 "enum" : [
44660702
DM
16506 "cdrom",
16507 "disk"
7aacca6f 16508 ],
56122987 16509 "optional" : 1,
44660702 16510 "type" : "string"
56122987 16511 },
7aacca6f 16512 "queues" : {
44660702 16513 "description" : "Number of queues.",
7aacca6f 16514 "minimum" : 2,
7aacca6f
DM
16515 "optional" : 1,
16516 "type" : "integer"
56122987 16517 },
5d9c884c
DM
16518 "replicate" : {
16519 "default" : 1,
16520 "description" : "Whether the drive should considered for replication jobs.",
16521 "optional" : 1,
16522 "type" : "boolean"
16523 },
16524 "rerror" : {
16525 "description" : "Read error action.",
16526 "enum" : [
16527 "ignore",
16528 "report",
16529 "stop"
16530 ],
16531 "optional" : 1,
16532 "type" : "string"
16533 },
5370fa8c
TL
16534 "ro" : {
16535 "description" : "Whether the drive is read-only.",
16536 "optional" : 1,
16537 "type" : "boolean"
16538 },
52e44c50
FG
16539 "scsiblock" : {
16540 "default" : 0,
16541 "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",
16542 "optional" : 1,
16543 "type" : "boolean"
16544 },
44660702
DM
16545 "secs" : {
16546 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 16547 "optional" : 1,
44660702 16548 "type" : "integer"
56122987 16549 },
44660702
DM
16550 "serial" : {
16551 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
16552 "format" : "urlencoded",
16553 "format_description" : "serial",
16554 "maxLength" : 60,
56122987 16555 "optional" : 1,
44660702 16556 "type" : "string"
56122987 16557 },
27a7acb2
DM
16558 "shared" : {
16559 "default" : 0,
16560 "description" : "Mark this locally-managed volume as available on all nodes",
16561 "optional" : 1,
16562 "type" : "boolean",
16563 "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!"
16564 },
44660702
DM
16565 "size" : {
16566 "description" : "Disk size. This is purely informational and has no effect.",
16567 "format" : "disk-size",
f004f5b9 16568 "format_description" : "DiskSize",
44660702
DM
16569 "optional" : 1,
16570 "type" : "string"
16571 },
16572 "snapshot" : {
27a7acb2 16573 "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 16574 "optional" : 1,
44660702
DM
16575 "type" : "boolean"
16576 },
25203dc1
NC
16577 "ssd" : {
16578 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
16579 "optional" : 1,
16580 "type" : "boolean"
16581 },
44660702
DM
16582 "trans" : {
16583 "description" : "Force disk geometry bios translation mode.",
56122987 16584 "enum" : [
44660702
DM
16585 "none",
16586 "lba",
16587 "auto"
56122987 16588 ],
44660702
DM
16589 "optional" : 1,
16590 "type" : "string"
16591 },
16592 "volume" : {
16593 "alias" : "file"
56122987 16594 },
7aacca6f 16595 "werror" : {
7aacca6f
DM
16596 "description" : "Write error action.",
16597 "enum" : [
16598 "enospc",
16599 "ignore",
16600 "report",
16601 "stop"
44660702 16602 ],
56122987 16603 "optional" : 1,
7aacca6f 16604 "type" : "string"
95895385
TL
16605 },
16606 "wwn" : {
16607 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
16608 "format_description" : "wwn",
16609 "optional" : 1,
16610 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
16611 "type" : "string"
56122987 16612 }
44660702 16613 },
56122987 16614 "optional" : 1,
4bd7df8b 16615 "type" : "string",
7af2edf9 16616 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
56122987
DM
16617 },
16618 "scsihw" : {
44660702 16619 "default" : "lsi",
c2993fe5 16620 "description" : "SCSI controller model",
56122987
DM
16621 "enum" : [
16622 "lsi",
16623 "lsi53c810",
16624 "virtio-scsi-pci",
16625 "virtio-scsi-single",
16626 "megasas",
16627 "pvscsi"
16628 ],
16629 "optional" : 1,
56122987
DM
16630 "type" : "string"
16631 },
27a7acb2 16632 "searchdomain" : {
de786b48 16633 "description" : "cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
27a7acb2
DM
16634 "optional" : 1,
16635 "type" : "string",
16636 "typetext" : "<string>"
16637 },
44660702 16638 "serial[n]" : {
c2993fe5 16639 "description" : "Create a serial device inside the VM (n is 0 to 3)",
56122987 16640 "optional" : 1,
44660702 16641 "pattern" : "(/dev/.+|socket)",
c2993fe5 16642 "type" : "string",
4772952b 16643 "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 16644 },
44660702
DM
16645 "shares" : {
16646 "default" : 1000,
5da3d723 16647 "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
16648 "maximum" : 50000,
16649 "minimum" : 0,
7aacca6f 16650 "optional" : 1,
4bd7df8b 16651 "type" : "integer",
013dc89f 16652 "typetext" : "<integer> (0 - 50000)"
56122987 16653 },
7aacca6f
DM
16654 "skiplock" : {
16655 "description" : "Ignore locks - only root is allowed to use this option.",
44660702 16656 "optional" : 1,
013dc89f
DM
16657 "type" : "boolean",
16658 "typetext" : "<boolean>"
56122987 16659 },
44660702
DM
16660 "smbios1" : {
16661 "description" : "Specify SMBIOS type 1 fields.",
16662 "format" : "pve-qm-smbios1",
1e3f8156 16663 "maxLength" : 512,
56122987 16664 "optional" : 1,
4bd7df8b 16665 "type" : "string",
1e3f8156 16666 "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 16667 },
44660702
DM
16668 "smp" : {
16669 "default" : 1,
16670 "description" : "The number of CPUs. Please use option -sockets instead.",
16671 "minimum" : 1,
56122987 16672 "optional" : 1,
4bd7df8b 16673 "type" : "integer",
013dc89f 16674 "typetext" : "<integer> (1 - N)"
56122987 16675 },
44660702
DM
16676 "sockets" : {
16677 "default" : 1,
16678 "description" : "The number of CPU sockets.",
16679 "minimum" : 1,
56122987 16680 "optional" : 1,
4bd7df8b 16681 "type" : "integer",
013dc89f 16682 "typetext" : "<integer> (1 - N)"
56122987 16683 },
1c532546
TL
16684 "spice_enhancements" : {
16685 "description" : "Configure additional enhancements for SPICE.",
16686 "format" : {
16687 "foldersharing" : {
16688 "default" : "0",
16689 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
16690 "optional" : 1,
16691 "type" : "boolean"
16692 },
16693 "videostreaming" : {
16694 "default" : "off",
16695 "description" : "Enable video streaming. Uses compression for detected video streams.",
16696 "enum" : [
16697 "off",
16698 "all",
16699 "filter"
16700 ],
16701 "optional" : 1,
16702 "type" : "string"
16703 }
16704 },
16705 "optional" : 1,
16706 "type" : "string",
16707 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
16708 },
27a7acb2
DM
16709 "sshkeys" : {
16710 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
16711 "format" : "urlencoded",
16712 "optional" : 1,
16713 "type" : "string",
16714 "typetext" : "<string>"
16715 },
44660702
DM
16716 "startdate" : {
16717 "default" : "now",
4772952b 16718 "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
16719 "optional" : 1,
16720 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
7aacca6f 16721 "type" : "string",
44660702
DM
16722 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
16723 },
16724 "startup" : {
16725 "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.",
16726 "format" : "pve-startup-order",
7aacca6f 16727 "optional" : 1,
44660702
DM
16728 "type" : "string",
16729 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
7aacca6f 16730 },
44660702
DM
16731 "tablet" : {
16732 "default" : 1,
c2993fe5 16733 "description" : "Enable/disable the USB tablet device.",
7aacca6f 16734 "optional" : 1,
c2993fe5 16735 "type" : "boolean",
013dc89f 16736 "typetext" : "<boolean>",
4772952b 16737 "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 16738 },
5c1699e5
TL
16739 "tags" : {
16740 "description" : "Tags of the VM. This is only meta information.",
16741 "format" : "pve-tag-list",
16742 "optional" : 1,
16743 "type" : "string",
16744 "typetext" : "<string>"
16745 },
44660702
DM
16746 "tdf" : {
16747 "default" : 0,
16748 "description" : "Enable/disable time drift fix.",
7aacca6f 16749 "optional" : 1,
013dc89f
DM
16750 "type" : "boolean",
16751 "typetext" : "<boolean>"
7aacca6f 16752 },
44660702
DM
16753 "template" : {
16754 "default" : 0,
16755 "description" : "Enable/disable Template.",
7aacca6f 16756 "optional" : 1,
013dc89f
DM
16757 "type" : "boolean",
16758 "typetext" : "<boolean>"
7aacca6f 16759 },
5370fa8c 16760 "tpmstate0" : {
7af2edf9 16761 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
5370fa8c
TL
16762 "format" : {
16763 "file" : {
16764 "default_key" : 1,
16765 "description" : "The drive's backing volume.",
16766 "format" : "pve-volume-id-or-qm-path",
16767 "format_description" : "volume",
16768 "type" : "string"
16769 },
7af2edf9
TL
16770 "import-from" : {
16771 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
16772 "format" : "pve-volume-id-or-absolute-path",
16773 "format_description" : "source volume",
16774 "optional" : 1,
16775 "type" : "string"
16776 },
5370fa8c
TL
16777 "size" : {
16778 "description" : "Disk size. This is purely informational and has no effect.",
16779 "format" : "disk-size",
16780 "format_description" : "DiskSize",
16781 "optional" : 1,
16782 "type" : "string"
16783 },
16784 "version" : {
16785 "default" : "v2.0",
16786 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
16787 "enum" : [
16788 "v1.2",
16789 "v2.0"
16790 ],
16791 "optional" : 1,
16792 "type" : "string"
16793 },
16794 "volume" : {
16795 "alias" : "file"
16796 }
16797 },
16798 "optional" : 1,
16799 "type" : "string",
7af2edf9 16800 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 16801 },
44660702 16802 "unused[n]" : {
c2993fe5 16803 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
16804 "format" : {
16805 "file" : {
16806 "default_key" : 1,
16807 "description" : "The drive's backing volume.",
16808 "format" : "pve-volume-id",
16809 "format_description" : "volume",
16810 "type" : "string"
16811 },
16812 "volume" : {
16813 "alias" : "file"
16814 }
16815 },
7aacca6f 16816 "optional" : 1,
013dc89f 16817 "type" : "string",
c5aa7e14 16818 "typetext" : "[file=]<volume>"
7aacca6f 16819 },
44660702 16820 "usb[n]" : {
4e7f60c2 16821 "description" : "Configure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).",
56122987 16822 "format" : {
44660702
DM
16823 "host" : {
16824 "default_key" : 1,
4772952b 16825 "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
16826 "format" : "pve-qm-usb-device",
16827 "format_description" : "HOSTUSBDEVICE|spice",
16828 "type" : "string"
7aacca6f 16829 },
44660702 16830 "usb3" : {
c2993fe5 16831 "default" : 0,
4e7f60c2 16832 "description" : "Specifies whether if given host option is a USB3 device or port. For modern guests (machine version >= 7.1 and ostype l26 and windows > 7), this flag is irrelevant (all devices are plugged into a xhci controller).",
7aacca6f 16833 "optional" : 1,
44660702 16834 "type" : "boolean"
7aacca6f 16835 }
44660702 16836 },
7aacca6f 16837 "optional" : 1,
4bd7df8b
DM
16838 "type" : "string",
16839 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
7aacca6f 16840 },
44660702 16841 "vcpus" : {
7aacca6f 16842 "default" : 0,
44660702
DM
16843 "description" : "Number of hotplugged vcpus.",
16844 "minimum" : 1,
7aacca6f 16845 "optional" : 1,
4bd7df8b 16846 "type" : "integer",
013dc89f 16847 "typetext" : "<integer> (1 - N)"
7aacca6f 16848 },
44660702 16849 "vga" : {
e2d681b3
TL
16850 "description" : "Configure the VGA hardware.",
16851 "format" : {
16852 "memory" : {
16853 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
16854 "maximum" : 512,
16855 "minimum" : 4,
16856 "optional" : 1,
16857 "type" : "integer"
16858 },
16859 "type" : {
16860 "default" : "std",
16861 "default_key" : 1,
16862 "description" : "Select the VGA type.",
16863 "enum" : [
16864 "cirrus",
16865 "qxl",
16866 "qxl2",
16867 "qxl3",
16868 "qxl4",
5f26e15b 16869 "none",
e2d681b3
TL
16870 "serial0",
16871 "serial1",
16872 "serial2",
16873 "serial3",
16874 "std",
16875 "virtio",
7af2edf9 16876 "virtio-gl",
e2d681b3
TL
16877 "vmware"
16878 ],
16879 "optional" : 1,
16880 "type" : "string"
16881 }
16882 },
7aacca6f 16883 "optional" : 1,
c2993fe5 16884 "type" : "string",
e2d681b3
TL
16885 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
16886 "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 16887 },
44660702 16888 "virtio[n]" : {
7af2edf9 16889 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
7aacca6f 16890 "format" : {
7aacca6f 16891 "aio" : {
7aacca6f 16892 "description" : "AIO type to use.",
56122987 16893 "enum" : [
7aacca6f 16894 "native",
8f4d9c87
TL
16895 "threads",
16896 "io_uring"
7aacca6f 16897 ],
44660702
DM
16898 "optional" : 1,
16899 "type" : "string"
56122987 16900 },
44660702
DM
16901 "backup" : {
16902 "description" : "Whether the drive should be included when making backups.",
56122987 16903 "optional" : 1,
44660702 16904 "type" : "boolean"
7aacca6f 16905 },
44660702 16906 "bps" : {
de0983cb 16907 "description" : "Maximum r/w speed in bytes per second.",
44660702 16908 "format_description" : "bps",
7aacca6f 16909 "optional" : 1,
44660702 16910 "type" : "integer"
56122987 16911 },
de0983cb
DM
16912 "bps_max_length" : {
16913 "description" : "Maximum length of I/O bursts in seconds.",
16914 "format_description" : "seconds",
16915 "minimum" : 1,
16916 "optional" : 1,
16917 "type" : "integer"
16918 },
56122987 16919 "bps_rd" : {
de0983cb 16920 "description" : "Maximum read speed in bytes per second.",
44660702 16921 "format_description" : "bps",
56122987 16922 "optional" : 1,
7aacca6f 16923 "type" : "integer"
56122987 16924 },
de0983cb 16925 "bps_rd_length" : {
5d9c884c
DM
16926 "alias" : "bps_rd_max_length"
16927 },
16928 "bps_rd_max_length" : {
de0983cb
DM
16929 "description" : "Maximum length of read I/O bursts in seconds.",
16930 "format_description" : "seconds",
16931 "minimum" : 1,
16932 "optional" : 1,
16933 "type" : "integer"
16934 },
44660702 16935 "bps_wr" : {
de0983cb 16936 "description" : "Maximum write speed in bytes per second.",
44660702 16937 "format_description" : "bps",
56122987 16938 "optional" : 1,
7aacca6f 16939 "type" : "integer"
56122987 16940 },
de0983cb 16941 "bps_wr_length" : {
5d9c884c
DM
16942 "alias" : "bps_wr_max_length"
16943 },
16944 "bps_wr_max_length" : {
de0983cb
DM
16945 "description" : "Maximum length of write I/O bursts in seconds.",
16946 "format_description" : "seconds",
16947 "minimum" : 1,
16948 "optional" : 1,
16949 "type" : "integer"
16950 },
7aacca6f 16951 "cache" : {
44660702 16952 "description" : "The drive's cache mode",
7aacca6f
DM
16953 "enum" : [
16954 "none",
16955 "writethrough",
16956 "writeback",
16957 "unsafe",
16958 "directsync"
16959 ],
56122987 16960 "optional" : 1,
44660702 16961 "type" : "string"
7aacca6f 16962 },
44660702
DM
16963 "cyls" : {
16964 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
16965 "optional" : 1,
16966 "type" : "integer"
16967 },
16968 "detect_zeroes" : {
16969 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
16970 "optional" : 1,
16971 "type" : "boolean"
16972 },
16973 "discard" : {
16974 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
56122987 16975 "enum" : [
44660702
DM
16976 "ignore",
16977 "on"
56122987
DM
16978 ],
16979 "optional" : 1,
44660702 16980 "type" : "string"
56122987 16981 },
44660702
DM
16982 "file" : {
16983 "default_key" : 1,
16984 "description" : "The drive's backing volume.",
16985 "format" : "pve-volume-id-or-qm-path",
16986 "format_description" : "volume",
16987 "type" : "string"
16988 },
16989 "format" : {
16990 "description" : "The drive's backing file's data format.",
16991 "enum" : [
16992 "raw",
16993 "cow",
16994 "qcow",
16995 "qed",
16996 "qcow2",
16997 "vmdk",
16998 "cloop"
16999 ],
56122987 17000 "optional" : 1,
44660702 17001 "type" : "string"
56122987 17002 },
44660702
DM
17003 "heads" : {
17004 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
17005 "optional" : 1,
17006 "type" : "integer"
17007 },
7af2edf9
TL
17008 "import-from" : {
17009 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
17010 "format" : "pve-volume-id-or-absolute-path",
17011 "format_description" : "source volume",
17012 "optional" : 1,
17013 "type" : "string"
17014 },
44660702 17015 "iops" : {
de0983cb 17016 "description" : "Maximum r/w I/O in operations per second.",
44660702 17017 "format_description" : "iops",
56122987 17018 "optional" : 1,
44660702
DM
17019 "type" : "integer"
17020 },
17021 "iops_max" : {
de0983cb 17022 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
17023 "format_description" : "iops",
17024 "optional" : 1,
17025 "type" : "integer"
56122987 17026 },
de0983cb
DM
17027 "iops_max_length" : {
17028 "description" : "Maximum length of I/O bursts in seconds.",
17029 "format_description" : "seconds",
17030 "minimum" : 1,
17031 "optional" : 1,
17032 "type" : "integer"
17033 },
7aacca6f 17034 "iops_rd" : {
de0983cb 17035 "description" : "Maximum read I/O in operations per second.",
7aacca6f 17036 "format_description" : "iops",
7aacca6f 17037 "optional" : 1,
44660702 17038 "type" : "integer"
56122987 17039 },
de0983cb 17040 "iops_rd_length" : {
5d9c884c 17041 "alias" : "iops_rd_max_length"
de0983cb 17042 },
44660702 17043 "iops_rd_max" : {
de0983cb 17044 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
17045 "format_description" : "iops",
17046 "optional" : 1,
17047 "type" : "integer"
17048 },
5d9c884c
DM
17049 "iops_rd_max_length" : {
17050 "description" : "Maximum length of read I/O bursts in seconds.",
17051 "format_description" : "seconds",
17052 "minimum" : 1,
17053 "optional" : 1,
17054 "type" : "integer"
17055 },
44660702 17056 "iops_wr" : {
de0983cb 17057 "description" : "Maximum write I/O in operations per second.",
44660702
DM
17058 "format_description" : "iops",
17059 "optional" : 1,
17060 "type" : "integer"
17061 },
de0983cb 17062 "iops_wr_length" : {
5d9c884c 17063 "alias" : "iops_wr_max_length"
de0983cb 17064 },
44660702 17065 "iops_wr_max" : {
de0983cb 17066 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
17067 "format_description" : "iops",
17068 "optional" : 1,
17069 "type" : "integer"
17070 },
5d9c884c
DM
17071 "iops_wr_max_length" : {
17072 "description" : "Maximum length of write I/O bursts in seconds.",
17073 "format_description" : "seconds",
17074 "minimum" : 1,
17075 "optional" : 1,
17076 "type" : "integer"
17077 },
44660702
DM
17078 "iothread" : {
17079 "description" : "Whether to use iothreads for this drive",
44660702
DM
17080 "optional" : 1,
17081 "type" : "boolean"
17082 },
17083 "mbps" : {
de0983cb 17084 "description" : "Maximum r/w speed in megabytes per second.",
44660702 17085 "format_description" : "mbps",
7aacca6f 17086 "optional" : 1,
44660702 17087 "type" : "number"
7aacca6f
DM
17088 },
17089 "mbps_max" : {
de0983cb 17090 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 17091 "format_description" : "mbps",
56122987 17092 "optional" : 1,
44660702 17093 "type" : "number"
56122987 17094 },
44660702 17095 "mbps_rd" : {
de0983cb 17096 "description" : "Maximum read speed in megabytes per second.",
44660702 17097 "format_description" : "mbps",
56122987 17098 "optional" : 1,
44660702 17099 "type" : "number"
56122987 17100 },
44660702 17101 "mbps_rd_max" : {
de0983cb 17102 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
17103 "format_description" : "mbps",
17104 "optional" : 1,
17105 "type" : "number"
17106 },
17107 "mbps_wr" : {
de0983cb 17108 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
17109 "format_description" : "mbps",
17110 "optional" : 1,
17111 "type" : "number"
17112 },
17113 "mbps_wr_max" : {
de0983cb 17114 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
17115 "format_description" : "mbps",
17116 "optional" : 1,
17117 "type" : "number"
17118 },
17119 "media" : {
17120 "default" : "disk",
17121 "description" : "The drive's media type.",
56122987 17122 "enum" : [
44660702
DM
17123 "cdrom",
17124 "disk"
56122987
DM
17125 ],
17126 "optional" : 1,
44660702 17127 "type" : "string"
56122987 17128 },
5d9c884c
DM
17129 "replicate" : {
17130 "default" : 1,
17131 "description" : "Whether the drive should considered for replication jobs.",
17132 "optional" : 1,
17133 "type" : "boolean"
17134 },
44660702
DM
17135 "rerror" : {
17136 "description" : "Read error action.",
17137 "enum" : [
17138 "ignore",
17139 "report",
17140 "stop"
17141 ],
56122987 17142 "optional" : 1,
44660702 17143 "type" : "string"
56122987 17144 },
5370fa8c
TL
17145 "ro" : {
17146 "description" : "Whether the drive is read-only.",
17147 "optional" : 1,
17148 "type" : "boolean"
17149 },
44660702
DM
17150 "secs" : {
17151 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 17152 "optional" : 1,
44660702 17153 "type" : "integer"
56122987 17154 },
7aacca6f
DM
17155 "serial" : {
17156 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
7aacca6f 17157 "format" : "urlencoded",
44660702 17158 "format_description" : "serial",
7aacca6f 17159 "maxLength" : 60,
44660702
DM
17160 "optional" : 1,
17161 "type" : "string"
56122987 17162 },
27a7acb2
DM
17163 "shared" : {
17164 "default" : 0,
17165 "description" : "Mark this locally-managed volume as available on all nodes",
17166 "optional" : 1,
17167 "type" : "boolean",
17168 "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!"
17169 },
44660702
DM
17170 "size" : {
17171 "description" : "Disk size. This is purely informational and has no effect.",
17172 "format" : "disk-size",
f004f5b9 17173 "format_description" : "DiskSize",
44660702
DM
17174 "optional" : 1,
17175 "type" : "string"
56122987 17176 },
44660702 17177 "snapshot" : {
27a7acb2 17178 "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 17179 "optional" : 1,
44660702 17180 "type" : "boolean"
56122987 17181 },
44660702
DM
17182 "trans" : {
17183 "description" : "Force disk geometry bios translation mode.",
17184 "enum" : [
17185 "none",
17186 "lba",
17187 "auto"
17188 ],
7aacca6f 17189 "optional" : 1,
44660702 17190 "type" : "string"
7aacca6f 17191 },
44660702
DM
17192 "volume" : {
17193 "alias" : "file"
17194 },
17195 "werror" : {
17196 "description" : "Write error action.",
17197 "enum" : [
17198 "enospc",
17199 "ignore",
17200 "report",
17201 "stop"
17202 ],
7aacca6f 17203 "optional" : 1,
44660702 17204 "type" : "string"
56122987
DM
17205 }
17206 },
7aacca6f 17207 "optional" : 1,
4bd7df8b 17208 "type" : "string",
7af2edf9 17209 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
7aacca6f 17210 },
4d47f125
TL
17211 "vmgenid" : {
17212 "default" : "1 (autogenerated)",
17213 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
17214 "format_description" : "UUID",
17215 "optional" : 1,
17216 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
17217 "type" : "string",
4772952b 17218 "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 17219 },
44660702
DM
17220 "vmid" : {
17221 "description" : "The (unique) ID of the VM.",
17222 "format" : "pve-vmid",
17223 "minimum" : 1,
4bd7df8b 17224 "type" : "integer",
013dc89f 17225 "typetext" : "<integer> (1 - N)"
56122987 17226 },
2489d6df
WB
17227 "vmstatestorage" : {
17228 "description" : "Default storage for VM state volumes/files.",
17229 "format" : "pve-storage-id",
17230 "optional" : 1,
17231 "type" : "string",
17232 "typetext" : "<string>"
17233 },
44660702 17234 "watchdog" : {
c2993fe5 17235 "description" : "Create a virtual hardware watchdog device.",
44660702 17236 "format" : "pve-qm-watchdog",
56122987 17237 "optional" : 1,
c2993fe5 17238 "type" : "string",
013dc89f 17239 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 17240 "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 17241 }
7aacca6f 17242 }
56122987 17243 },
56122987
DM
17244 "permissions" : {
17245 "check" : [
17246 "perm",
17247 "/vms/{vmid}",
17248 [
17249 "VM.Config.Disk",
17250 "VM.Config.CDROM",
17251 "VM.Config.CPU",
17252 "VM.Config.Memory",
17253 "VM.Config.Network",
17254 "VM.Config.HWType",
ac70d7d1
TL
17255 "VM.Config.Options",
17256 "VM.Config.Cloudinit"
56122987
DM
17257 ],
17258 "any",
17259 1
17260 ]
17261 },
44660702 17262 "protected" : 1,
7aacca6f 17263 "proxyto" : "node",
56122987 17264 "returns" : {
4d47f125
TL
17265 "optional" : 1,
17266 "type" : "string"
7aacca6f 17267 }
4d47f125
TL
17268 },
17269 "PUT" : {
e9cd3bd4 17270 "allowtoken" : 1,
4d47f125
TL
17271 "description" : "Set virtual machine options (synchrounous API) - You should consider using the POST method instead for any actions involving hotplug or storage allocation.",
17272 "method" : "PUT",
17273 "name" : "update_vm",
7aacca6f 17274 "parameters" : {
44660702 17275 "additionalProperties" : 0,
7aacca6f 17276 "properties" : {
4d47f125
TL
17277 "acpi" : {
17278 "default" : 1,
17279 "description" : "Enable/disable ACPI.",
17280 "optional" : 1,
17281 "type" : "boolean",
17282 "typetext" : "<boolean>"
7aacca6f 17283 },
4e7f60c2 17284 "affinity" : {
81a3384d 17285 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
17286 "format" : "pve-cpuset",
17287 "optional" : 1,
17288 "type" : "string",
17289 "typetext" : "<string>"
17290 },
4d47f125 17291 "agent" : {
5370fa8c 17292 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
17293 "format" : {
17294 "enabled" : {
17295 "default" : 0,
17296 "default_key" : 1,
5370fa8c 17297 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
17298 "type" : "boolean"
17299 },
17300 "fstrim_cloned_disks" : {
17301 "default" : 0,
d2656385 17302 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
17303 "optional" : 1,
17304 "type" : "boolean"
5c1699e5
TL
17305 },
17306 "type" : {
17307 "default" : "virtio",
17308 "description" : "Select the agent type",
17309 "enum" : [
17310 "virtio",
17311 "isa"
17312 ],
17313 "optional" : 1,
17314 "type" : "string"
4d47f125 17315 }
44660702 17316 },
4d47f125
TL
17317 "optional" : 1,
17318 "type" : "string",
5c1699e5 17319 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
44660702 17320 },
e2d681b3
TL
17321 "arch" : {
17322 "description" : "Virtual processor architecture. Defaults to the host.",
17323 "enum" : [
17324 "x86_64",
17325 "aarch64"
17326 ],
17327 "optional" : 1,
17328 "type" : "string"
17329 },
4d47f125
TL
17330 "args" : {
17331 "description" : "Arbitrary arguments passed to kvm.",
17332 "optional" : 1,
17333 "type" : "string",
17334 "typetext" : "<string>",
17335 "verbose_description" : "Arbitrary arguments passed to kvm, for example:\n\nargs: -no-reboot -no-hpet\n\nNOTE: this option is for experts only.\n"
17336 },
1c532546
TL
17337 "audio0" : {
17338 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
17339 "format" : {
17340 "device" : {
17341 "description" : "Configure an audio device.",
17342 "enum" : [
17343 "ich9-intel-hda",
17344 "intel-hda",
17345 "AC97"
17346 ],
17347 "type" : "string"
17348 },
17349 "driver" : {
17350 "default" : "spice",
17351 "description" : "Driver backend for the audio device.",
17352 "enum" : [
d2656385
TL
17353 "spice",
17354 "none"
1c532546
TL
17355 ],
17356 "optional" : 1,
17357 "type" : "string"
17358 }
17359 },
17360 "optional" : 1,
17361 "type" : "string",
d2656385 17362 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 17363 },
4d47f125
TL
17364 "autostart" : {
17365 "default" : 0,
17366 "description" : "Automatic restart after crash (currently ignored).",
7aacca6f 17367 "optional" : 1,
013dc89f
DM
17368 "type" : "boolean",
17369 "typetext" : "<boolean>"
7aacca6f 17370 },
4d47f125
TL
17371 "balloon" : {
17372 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
17373 "minimum" : 0,
17374 "optional" : 1,
17375 "type" : "integer",
17376 "typetext" : "<integer> (0 - N)"
17377 },
17378 "bios" : {
17379 "default" : "seabios",
17380 "description" : "Select BIOS implementation.",
17381 "enum" : [
17382 "seabios",
17383 "ovmf"
17384 ],
17385 "optional" : 1,
17386 "type" : "string"
17387 },
17388 "boot" : {
5370fa8c 17389 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 17390 "format" : "pve-qm-boot",
4d47f125 17391 "optional" : 1,
4772952b
TL
17392 "type" : "string",
17393 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
4d47f125
TL
17394 },
17395 "bootdisk" : {
4772952b 17396 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
4d47f125
TL
17397 "format" : "pve-qm-bootdisk",
17398 "optional" : 1,
17399 "pattern" : "(ide|sata|scsi|virtio)\\d+",
17400 "type" : "string"
17401 },
17402 "cdrom" : {
17403 "description" : "This is an alias for option -ide2",
17404 "format" : "pve-qm-ide",
17405 "optional" : 1,
17406 "type" : "string",
17407 "typetext" : "<volume>"
17408 },
95895385
TL
17409 "cicustom" : {
17410 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
17411 "format" : "pve-qm-cicustom",
17412 "optional" : 1,
17413 "type" : "string",
5370fa8c 17414 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 17415 },
4d47f125
TL
17416 "cipassword" : {
17417 "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.",
17418 "optional" : 1,
013dc89f
DM
17419 "type" : "string",
17420 "typetext" : "<string>"
44660702 17421 },
4d47f125
TL
17422 "citype" : {
17423 "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.",
17424 "enum" : [
17425 "configdrive2",
d2656385
TL
17426 "nocloud",
17427 "opennebula"
4d47f125
TL
17428 ],
17429 "optional" : 1,
17430 "type" : "string"
17431 },
17432 "ciuser" : {
17433 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
17434 "optional" : 1,
013dc89f
DM
17435 "type" : "string",
17436 "typetext" : "<string>"
56122987 17437 },
4d47f125
TL
17438 "cores" : {
17439 "default" : 1,
17440 "description" : "The number of cores per socket.",
7aacca6f 17441 "minimum" : 1,
4d47f125 17442 "optional" : 1,
4bd7df8b 17443 "type" : "integer",
013dc89f 17444 "typetext" : "<integer> (1 - N)"
4d47f125
TL
17445 },
17446 "cpu" : {
17447 "description" : "Emulated CPU type.",
c5aa7e14 17448 "format" : "pve-vm-cpu-conf",
4d47f125 17449 "optional" : 1,
013dc89f 17450 "type" : "string",
04d22a9f 17451 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
44660702 17452 },
4d47f125
TL
17453 "cpulimit" : {
17454 "default" : 0,
17455 "description" : "Limit of CPU usage.",
17456 "maximum" : 128,
17457 "minimum" : 0,
17458 "optional" : 1,
17459 "type" : "number",
17460 "typetext" : "<number> (0 - 128)",
17461 "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."
17462 },
17463 "cpuunits" : {
5370fa8c
TL
17464 "default" : "cgroup v1: 1024, cgroup v2: 100",
17465 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
4d47f125 17466 "maximum" : 262144,
7af2edf9 17467 "minimum" : 1,
4d47f125 17468 "optional" : 1,
4bd7df8b 17469 "type" : "integer",
7af2edf9 17470 "typetext" : "<integer> (1 - 262144)",
4d47f125 17471 "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 17472 },
4d47f125
TL
17473 "delete" : {
17474 "description" : "A list of settings you want to delete.",
17475 "format" : "pve-configid-list",
17476 "optional" : 1,
17477 "type" : "string",
17478 "typetext" : "<string>"
17479 },
17480 "description" : {
8f4d9c87
TL
17481 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
17482 "maxLength" : 8192,
4d47f125
TL
17483 "optional" : 1,
17484 "type" : "string",
17485 "typetext" : "<string>"
17486 },
17487 "digest" : {
17488 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
17489 "maxLength" : 40,
44660702 17490 "optional" : 1,
4d47f125
TL
17491 "type" : "string",
17492 "typetext" : "<string>"
17493 },
17494 "efidisk0" : {
7af2edf9 17495 "description" : "Configure a Disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125 17496 "format" : {
5370fa8c
TL
17497 "efitype" : {
17498 "default" : "2m",
17499 "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.",
17500 "enum" : [
17501 "2m",
17502 "4m"
17503 ],
17504 "optional" : 1,
17505 "type" : "string"
17506 },
4d47f125
TL
17507 "file" : {
17508 "default_key" : 1,
17509 "description" : "The drive's backing volume.",
17510 "format" : "pve-volume-id-or-qm-path",
17511 "format_description" : "volume",
17512 "type" : "string"
17513 },
17514 "format" : {
17515 "description" : "The drive's backing file's data format.",
17516 "enum" : [
17517 "raw",
17518 "cow",
17519 "qcow",
17520 "qed",
17521 "qcow2",
17522 "vmdk",
17523 "cloop"
17524 ],
17525 "optional" : 1,
17526 "type" : "string"
17527 },
7af2edf9
TL
17528 "import-from" : {
17529 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
17530 "format" : "pve-volume-id-or-absolute-path",
17531 "format_description" : "source volume",
17532 "optional" : 1,
17533 "type" : "string"
17534 },
5370fa8c
TL
17535 "pre-enrolled-keys" : {
17536 "default" : 0,
17537 "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.",
17538 "optional" : 1,
17539 "type" : "boolean"
17540 },
4d47f125
TL
17541 "size" : {
17542 "description" : "Disk size. This is purely informational and has no effect.",
17543 "format" : "disk-size",
17544 "format_description" : "DiskSize",
17545 "optional" : 1,
17546 "type" : "string"
17547 },
17548 "volume" : {
17549 "alias" : "file"
17550 }
17551 },
17552 "optional" : 1,
17553 "type" : "string",
7af2edf9 17554 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125
TL
17555 },
17556 "force" : {
17557 "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.",
17558 "optional" : 1,
17559 "requires" : "delete",
013dc89f
DM
17560 "type" : "boolean",
17561 "typetext" : "<boolean>"
56122987 17562 },
4d47f125
TL
17563 "freeze" : {
17564 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
17565 "optional" : 1,
17566 "type" : "boolean",
17567 "typetext" : "<boolean>"
7aacca6f 17568 },
5f26e15b
TL
17569 "hookscript" : {
17570 "description" : "Script that will be executed during various steps in the vms lifetime.",
17571 "format" : "pve-volume-id",
17572 "optional" : 1,
17573 "type" : "string",
17574 "typetext" : "<string>"
17575 },
4d47f125
TL
17576 "hostpci[n]" : {
17577 "description" : "Map host PCI devices into guest.",
17578 "format" : "pve-qm-hostpci",
17579 "optional" : 1,
17580 "type" : "string",
7af2edf9 17581 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 17582 "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 17583 },
4d47f125
TL
17584 "hotplug" : {
17585 "default" : "network,disk,usb",
4e7f60c2 17586 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7.",
4d47f125
TL
17587 "format" : "pve-hotplug-features",
17588 "optional" : 1,
35a75dd3
DM
17589 "type" : "string",
17590 "typetext" : "<string>"
17591 },
4d47f125
TL
17592 "hugepages" : {
17593 "description" : "Enable/disable hugepages memory.",
35a75dd3 17594 "enum" : [
4d47f125
TL
17595 "any",
17596 "2",
17597 "1024"
35a75dd3
DM
17598 ],
17599 "optional" : 1,
17600 "type" : "string"
17601 },
4d47f125 17602 "ide[n]" : {
7af2edf9 17603 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125
TL
17604 "format" : {
17605 "aio" : {
17606 "description" : "AIO type to use.",
17607 "enum" : [
17608 "native",
8f4d9c87
TL
17609 "threads",
17610 "io_uring"
4d47f125 17611 ],
44660702 17612 "optional" : 1,
44660702
DM
17613 "type" : "string"
17614 },
4d47f125
TL
17615 "backup" : {
17616 "description" : "Whether the drive should be included when making backups.",
56122987 17617 "optional" : 1,
4d47f125 17618 "type" : "boolean"
56122987 17619 },
4d47f125
TL
17620 "bps" : {
17621 "description" : "Maximum r/w speed in bytes per second.",
17622 "format_description" : "bps",
de0983cb 17623 "optional" : 1,
4d47f125 17624 "type" : "integer"
de0983cb 17625 },
4d47f125
TL
17626 "bps_max_length" : {
17627 "description" : "Maximum length of I/O bursts in seconds.",
17628 "format_description" : "seconds",
17629 "minimum" : 1,
de0983cb 17630 "optional" : 1,
4d47f125 17631 "type" : "integer"
7aacca6f 17632 },
4d47f125
TL
17633 "bps_rd" : {
17634 "description" : "Maximum read speed in bytes per second.",
17635 "format_description" : "bps",
7aacca6f 17636 "optional" : 1,
4d47f125 17637 "type" : "integer"
56122987 17638 },
4d47f125
TL
17639 "bps_rd_length" : {
17640 "alias" : "bps_rd_max_length"
17641 },
17642 "bps_rd_max_length" : {
17643 "description" : "Maximum length of read I/O bursts in seconds.",
17644 "format_description" : "seconds",
17645 "minimum" : 1,
56122987 17646 "optional" : 1,
4d47f125 17647 "type" : "integer"
56122987 17648 },
4d47f125
TL
17649 "bps_wr" : {
17650 "description" : "Maximum write speed in bytes per second.",
17651 "format_description" : "bps",
52e44c50 17652 "optional" : 1,
4d47f125 17653 "type" : "integer"
52e44c50 17654 },
4d47f125
TL
17655 "bps_wr_length" : {
17656 "alias" : "bps_wr_max_length"
17657 },
17658 "bps_wr_max_length" : {
17659 "description" : "Maximum length of write I/O bursts in seconds.",
17660 "format_description" : "seconds",
44660702 17661 "minimum" : 1,
56122987 17662 "optional" : 1,
4d47f125 17663 "type" : "integer"
56122987 17664 },
4d47f125
TL
17665 "cache" : {
17666 "description" : "The drive's cache mode",
17667 "enum" : [
17668 "none",
17669 "writethrough",
17670 "writeback",
17671 "unsafe",
17672 "directsync"
17673 ],
7aacca6f 17674 "optional" : 1,
4d47f125 17675 "type" : "string"
7aacca6f 17676 },
4d47f125
TL
17677 "cyls" : {
17678 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
17679 "optional" : 1,
17680 "type" : "integer"
56122987 17681 },
4d47f125
TL
17682 "detect_zeroes" : {
17683 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 17684 "optional" : 1,
4d47f125 17685 "type" : "boolean"
56122987 17686 },
4d47f125
TL
17687 "discard" : {
17688 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
17689 "enum" : [
17690 "ignore",
17691 "on"
17692 ],
56122987 17693 "optional" : 1,
4d47f125 17694 "type" : "string"
7aacca6f 17695 },
4d47f125
TL
17696 "file" : {
17697 "default_key" : 1,
17698 "description" : "The drive's backing volume.",
17699 "format" : "pve-volume-id-or-qm-path",
17700 "format_description" : "volume",
17701 "type" : "string"
56122987 17702 },
4d47f125
TL
17703 "format" : {
17704 "description" : "The drive's backing file's data format.",
17705 "enum" : [
17706 "raw",
17707 "cow",
17708 "qcow",
17709 "qed",
17710 "qcow2",
17711 "vmdk",
17712 "cloop"
17713 ],
7aacca6f 17714 "optional" : 1,
4d47f125 17715 "type" : "string"
7aacca6f 17716 },
4d47f125
TL
17717 "heads" : {
17718 "description" : "Force the drive's physical geometry to have a specific head count.",
7aacca6f 17719 "optional" : 1,
4d47f125 17720 "type" : "integer"
56122987 17721 },
7af2edf9
TL
17722 "import-from" : {
17723 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
17724 "format" : "pve-volume-id-or-absolute-path",
17725 "format_description" : "source volume",
17726 "optional" : 1,
17727 "type" : "string"
17728 },
4d47f125
TL
17729 "iops" : {
17730 "description" : "Maximum r/w I/O in operations per second.",
17731 "format_description" : "iops",
44660702 17732 "optional" : 1,
4d47f125 17733 "type" : "integer"
44660702 17734 },
4d47f125
TL
17735 "iops_max" : {
17736 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
17737 "format_description" : "iops",
44660702 17738 "optional" : 1,
4d47f125 17739 "type" : "integer"
56122987 17740 },
4d47f125
TL
17741 "iops_max_length" : {
17742 "description" : "Maximum length of I/O bursts in seconds.",
17743 "format_description" : "seconds",
17744 "minimum" : 1,
7aacca6f 17745 "optional" : 1,
4d47f125 17746 "type" : "integer"
7aacca6f 17747 },
4d47f125
TL
17748 "iops_rd" : {
17749 "description" : "Maximum read I/O in operations per second.",
17750 "format_description" : "iops",
17751 "optional" : 1,
17752 "type" : "integer"
17753 },
17754 "iops_rd_length" : {
17755 "alias" : "iops_rd_max_length"
17756 },
17757 "iops_rd_max" : {
17758 "description" : "Maximum unthrottled read I/O pool in operations per second.",
17759 "format_description" : "iops",
17760 "optional" : 1,
17761 "type" : "integer"
17762 },
17763 "iops_rd_max_length" : {
17764 "description" : "Maximum length of read I/O bursts in seconds.",
17765 "format_description" : "seconds",
44660702 17766 "minimum" : 1,
4d47f125
TL
17767 "optional" : 1,
17768 "type" : "integer"
7aacca6f 17769 },
4d47f125
TL
17770 "iops_wr" : {
17771 "description" : "Maximum write I/O in operations per second.",
17772 "format_description" : "iops",
44660702 17773 "optional" : 1,
4d47f125 17774 "type" : "integer"
44660702 17775 },
4d47f125
TL
17776 "iops_wr_length" : {
17777 "alias" : "iops_wr_max_length"
17778 },
17779 "iops_wr_max" : {
17780 "description" : "Maximum unthrottled write I/O pool in operations per second.",
17781 "format_description" : "iops",
17782 "optional" : 1,
17783 "type" : "integer"
17784 },
17785 "iops_wr_max_length" : {
17786 "description" : "Maximum length of write I/O bursts in seconds.",
17787 "format_description" : "seconds",
44660702 17788 "minimum" : 1,
44660702 17789 "optional" : 1,
4d47f125 17790 "type" : "integer"
44660702 17791 },
4d47f125
TL
17792 "mbps" : {
17793 "description" : "Maximum r/w speed in megabytes per second.",
17794 "format_description" : "mbps",
17795 "optional" : 1,
17796 "type" : "number"
56122987 17797 },
4d47f125
TL
17798 "mbps_max" : {
17799 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
17800 "format_description" : "mbps",
17801 "optional" : 1,
17802 "type" : "number"
17803 },
17804 "mbps_rd" : {
17805 "description" : "Maximum read speed in megabytes per second.",
17806 "format_description" : "mbps",
17807 "optional" : 1,
17808 "type" : "number"
17809 },
17810 "mbps_rd_max" : {
17811 "description" : "Maximum unthrottled read pool in megabytes per second.",
17812 "format_description" : "mbps",
17813 "optional" : 1,
17814 "type" : "number"
17815 },
17816 "mbps_wr" : {
17817 "description" : "Maximum write speed in megabytes per second.",
17818 "format_description" : "mbps",
17819 "optional" : 1,
17820 "type" : "number"
17821 },
17822 "mbps_wr_max" : {
17823 "description" : "Maximum unthrottled write pool in megabytes per second.",
17824 "format_description" : "mbps",
17825 "optional" : 1,
17826 "type" : "number"
17827 },
17828 "media" : {
17829 "default" : "disk",
17830 "description" : "The drive's media type.",
17831 "enum" : [
17832 "cdrom",
17833 "disk"
17834 ],
17835 "optional" : 1,
17836 "type" : "string"
17837 },
17838 "model" : {
17839 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
17840 "format" : "urlencoded",
17841 "format_description" : "model",
17842 "maxLength" : 120,
17843 "optional" : 1,
17844 "type" : "string"
17845 },
17846 "replicate" : {
17847 "default" : 1,
17848 "description" : "Whether the drive should considered for replication jobs.",
17849 "optional" : 1,
17850 "type" : "boolean"
17851 },
17852 "rerror" : {
17853 "description" : "Read error action.",
17854 "enum" : [
17855 "ignore",
17856 "report",
17857 "stop"
17858 ],
17859 "optional" : 1,
17860 "type" : "string"
17861 },
17862 "secs" : {
17863 "description" : "Force the drive's physical geometry to have a specific sector count.",
17864 "optional" : 1,
17865 "type" : "integer"
17866 },
17867 "serial" : {
17868 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
17869 "format" : "urlencoded",
17870 "format_description" : "serial",
17871 "maxLength" : 60,
17872 "optional" : 1,
17873 "type" : "string"
17874 },
17875 "shared" : {
17876 "default" : 0,
17877 "description" : "Mark this locally-managed volume as available on all nodes",
44660702 17878 "optional" : 1,
013dc89f 17879 "type" : "boolean",
4d47f125 17880 "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 17881 },
4d47f125
TL
17882 "size" : {
17883 "description" : "Disk size. This is purely informational and has no effect.",
17884 "format" : "disk-size",
17885 "format_description" : "DiskSize",
17886 "optional" : 1,
17887 "type" : "string"
17888 },
17889 "snapshot" : {
17890 "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.",
17891 "optional" : 1,
17892 "type" : "boolean"
17893 },
25203dc1
NC
17894 "ssd" : {
17895 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
17896 "optional" : 1,
17897 "type" : "boolean"
17898 },
4d47f125
TL
17899 "trans" : {
17900 "description" : "Force disk geometry bios translation mode.",
17901 "enum" : [
17902 "none",
17903 "lba",
17904 "auto"
17905 ],
17906 "optional" : 1,
17907 "type" : "string"
17908 },
17909 "volume" : {
17910 "alias" : "file"
17911 },
17912 "werror" : {
17913 "description" : "Write error action.",
17914 "enum" : [
17915 "enospc",
17916 "ignore",
17917 "report",
17918 "stop"
17919 ],
17920 "optional" : 1,
17921 "type" : "string"
95895385
TL
17922 },
17923 "wwn" : {
17924 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
17925 "format_description" : "wwn",
17926 "optional" : 1,
17927 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
17928 "type" : "string"
4d47f125
TL
17929 }
17930 },
17931 "optional" : 1,
013dc89f 17932 "type" : "string",
7af2edf9 17933 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
44660702 17934 },
4d47f125 17935 "ipconfig[n]" : {
d2656385 17936 "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
17937 "format" : "pve-qm-ipconfig",
17938 "optional" : 1,
013dc89f 17939 "type" : "string",
4d47f125 17940 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
44660702 17941 },
95895385
TL
17942 "ivshmem" : {
17943 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
17944 "format" : {
17945 "name" : {
17946 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
17947 "format_description" : "string",
17948 "optional" : 1,
17949 "pattern" : "[a-zA-Z0-9\\-]+",
17950 "type" : "string"
17951 },
17952 "size" : {
17953 "description" : "The size of the file in MB.",
17954 "minimum" : 1,
17955 "type" : "integer"
17956 }
17957 },
17958 "optional" : 1,
17959 "type" : "string",
17960 "typetext" : "size=<integer> [,name=<string>]"
17961 },
4772952b
TL
17962 "keephugepages" : {
17963 "default" : 0,
17964 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
17965 "optional" : 1,
17966 "type" : "boolean",
17967 "typetext" : "<boolean>"
17968 },
4d47f125
TL
17969 "keyboard" : {
17970 "default" : null,
7af2edf9 17971 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
4d47f125
TL
17972 "enum" : [
17973 "de",
17974 "de-ch",
17975 "da",
17976 "en-gb",
17977 "en-us",
17978 "es",
17979 "fi",
17980 "fr",
17981 "fr-be",
17982 "fr-ca",
17983 "fr-ch",
17984 "hu",
17985 "is",
17986 "it",
17987 "ja",
17988 "lt",
17989 "mk",
17990 "nl",
17991 "no",
17992 "pl",
17993 "pt",
17994 "pt-br",
17995 "sv",
17996 "sl",
17997 "tr"
17998 ],
17999 "optional" : 1,
18000 "type" : "string"
44660702 18001 },
4d47f125
TL
18002 "kvm" : {
18003 "default" : 1,
18004 "description" : "Enable/disable KVM hardware virtualization.",
44660702 18005 "optional" : 1,
013dc89f
DM
18006 "type" : "boolean",
18007 "typetext" : "<boolean>"
7aacca6f 18008 },
4d47f125 18009 "localtime" : {
5370fa8c 18010 "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
18011 "optional" : 1,
18012 "type" : "boolean",
18013 "typetext" : "<boolean>"
18014 },
18015 "lock" : {
18016 "description" : "Lock/unlock the VM.",
56122987 18017 "enum" : [
4d47f125 18018 "backup",
5f26e15b
TL
18019 "clone",
18020 "create",
18021 "migrate",
18022 "rollback",
56122987 18023 "snapshot",
95895385
TL
18024 "snapshot-delete",
18025 "suspending",
18026 "suspended"
56122987 18027 ],
4d47f125 18028 "optional" : 1,
44660702
DM
18029 "type" : "string"
18030 },
4d47f125
TL
18031 "machine" : {
18032 "description" : "Specifies the Qemu machine type.",
18033 "maxLength" : 40,
18034 "optional" : 1,
5c1699e5 18035 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
18036 "type" : "string"
18037 },
18038 "memory" : {
18039 "default" : 512,
18040 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
18041 "minimum" : 16,
18042 "optional" : 1,
18043 "type" : "integer",
18044 "typetext" : "<integer> (16 - N)"
18045 },
18046 "migrate_downtime" : {
18047 "default" : 0.1,
18048 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
18049 "minimum" : 0,
18050 "optional" : 1,
18051 "type" : "number",
18052 "typetext" : "<number> (0 - N)"
18053 },
18054 "migrate_speed" : {
18055 "default" : 0,
18056 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
18057 "minimum" : 0,
18058 "optional" : 1,
18059 "type" : "integer",
18060 "typetext" : "<integer> (0 - N)"
18061 },
18062 "name" : {
18063 "description" : "Set a name for the VM. Only used on the configuration web interface.",
18064 "format" : "dns-name",
18065 "optional" : 1,
013dc89f
DM
18066 "type" : "string",
18067 "typetext" : "<string>"
56122987 18068 },
4d47f125 18069 "nameserver" : {
de786b48 18070 "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
4d47f125 18071 "format" : "address-list",
7aacca6f 18072 "optional" : 1,
013dc89f
DM
18073 "type" : "string",
18074 "typetext" : "<string>"
7aacca6f 18075 },
4d47f125
TL
18076 "net[n]" : {
18077 "description" : "Specify network devices.",
18078 "format" : {
18079 "bridge" : {
18080 "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2 Gateway\n 10.0.2.3 DNS Server\n 10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
7af2edf9 18081 "format" : "pve-bridge-id",
4d47f125
TL
18082 "format_description" : "bridge",
18083 "optional" : 1,
18084 "type" : "string"
18085 },
18086 "e1000" : {
18087 "alias" : "macaddr",
18088 "keyAlias" : "model"
18089 },
18090 "e1000-82540em" : {
18091 "alias" : "macaddr",
18092 "keyAlias" : "model"
18093 },
18094 "e1000-82544gc" : {
18095 "alias" : "macaddr",
18096 "keyAlias" : "model"
18097 },
18098 "e1000-82545em" : {
18099 "alias" : "macaddr",
18100 "keyAlias" : "model"
18101 },
5370fa8c
TL
18102 "e1000e" : {
18103 "alias" : "macaddr",
18104 "keyAlias" : "model"
18105 },
4d47f125
TL
18106 "firewall" : {
18107 "description" : "Whether this interface should be protected by the firewall.",
18108 "optional" : 1,
18109 "type" : "boolean"
18110 },
18111 "i82551" : {
18112 "alias" : "macaddr",
18113 "keyAlias" : "model"
18114 },
18115 "i82557b" : {
18116 "alias" : "macaddr",
18117 "keyAlias" : "model"
18118 },
18119 "i82559er" : {
18120 "alias" : "macaddr",
18121 "keyAlias" : "model"
18122 },
18123 "link_down" : {
18124 "description" : "Whether this interface should be disconnected (like pulling the plug).",
18125 "optional" : 1,
18126 "type" : "boolean"
18127 },
18128 "macaddr" : {
18129 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 18130 "format" : "mac-addr",
4d47f125
TL
18131 "format_description" : "XX:XX:XX:XX:XX:XX",
18132 "optional" : 1,
95895385
TL
18133 "type" : "string",
18134 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
18135 },
18136 "model" : {
18137 "default_key" : 1,
18138 "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'.",
18139 "enum" : [
4d47f125 18140 "e1000",
5370fa8c
TL
18141 "e1000-82540em",
18142 "e1000-82544gc",
18143 "e1000-82545em",
18144 "e1000e",
4d47f125
TL
18145 "i82551",
18146 "i82557b",
18147 "i82559er",
5370fa8c
TL
18148 "ne2k_isa",
18149 "ne2k_pci",
18150 "pcnet",
18151 "rtl8139",
18152 "virtio",
18153 "vmxnet3"
4d47f125
TL
18154 ],
18155 "type" : "string"
18156 },
ac70d7d1
TL
18157 "mtu" : {
18158 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
18159 "maximum" : 65520,
18160 "minimum" : 1,
18161 "optional" : 1,
18162 "type" : "integer"
18163 },
4d47f125
TL
18164 "ne2k_isa" : {
18165 "alias" : "macaddr",
18166 "keyAlias" : "model"
18167 },
18168 "ne2k_pci" : {
18169 "alias" : "macaddr",
18170 "keyAlias" : "model"
18171 },
18172 "pcnet" : {
18173 "alias" : "macaddr",
18174 "keyAlias" : "model"
18175 },
18176 "queues" : {
18177 "description" : "Number of packet queues to be used on the device.",
81a3384d 18178 "maximum" : 64,
4d47f125
TL
18179 "minimum" : 0,
18180 "optional" : 1,
18181 "type" : "integer"
18182 },
18183 "rate" : {
18184 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
18185 "minimum" : 0,
18186 "optional" : 1,
18187 "type" : "number"
18188 },
18189 "rtl8139" : {
18190 "alias" : "macaddr",
18191 "keyAlias" : "model"
18192 },
18193 "tag" : {
18194 "description" : "VLAN tag to apply to packets on this interface.",
18195 "maximum" : 4094,
18196 "minimum" : 1,
18197 "optional" : 1,
18198 "type" : "integer"
18199 },
18200 "trunks" : {
18201 "description" : "VLAN trunks to pass through this interface.",
18202 "format_description" : "vlanid[;vlanid...]",
18203 "optional" : 1,
18204 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
18205 "type" : "string"
18206 },
18207 "virtio" : {
18208 "alias" : "macaddr",
18209 "keyAlias" : "model"
18210 },
18211 "vmxnet3" : {
18212 "alias" : "macaddr",
18213 "keyAlias" : "model"
18214 }
44660702 18215 },
44660702 18216 "optional" : 1,
013dc89f 18217 "type" : "string",
ac70d7d1 18218 "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
18219 },
18220 "node" : {
18221 "description" : "The cluster node name.",
18222 "format" : "pve-node",
013dc89f
DM
18223 "type" : "string",
18224 "typetext" : "<string>"
7aacca6f 18225 },
4d47f125
TL
18226 "numa" : {
18227 "default" : 0,
18228 "description" : "Enable/disable NUMA.",
56122987 18229 "optional" : 1,
4d47f125
TL
18230 "type" : "boolean",
18231 "typetext" : "<boolean>"
56122987 18232 },
4d47f125
TL
18233 "numa[n]" : {
18234 "description" : "NUMA topology.",
18235 "format" : {
18236 "cpus" : {
18237 "description" : "CPUs accessing this NUMA node.",
18238 "format_description" : "id[-id];...",
18239 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
18240 "type" : "string"
18241 },
18242 "hostnodes" : {
18243 "description" : "Host NUMA nodes to use.",
18244 "format_description" : "id[-id];...",
18245 "optional" : 1,
18246 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
18247 "type" : "string"
18248 },
18249 "memory" : {
18250 "description" : "Amount of memory this NUMA node provides.",
18251 "optional" : 1,
18252 "type" : "number"
18253 },
18254 "policy" : {
18255 "description" : "NUMA allocation policy.",
18256 "enum" : [
18257 "preferred",
18258 "bind",
18259 "interleave"
18260 ],
18261 "optional" : 1,
18262 "type" : "string"
18263 }
18264 },
7aacca6f 18265 "optional" : 1,
013dc89f 18266 "type" : "string",
4d47f125 18267 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 18268 },
4d47f125 18269 "onboot" : {
44660702 18270 "default" : 0,
4d47f125 18271 "description" : "Specifies whether a VM will be started during system bootup.",
7aacca6f 18272 "optional" : 1,
013dc89f
DM
18273 "type" : "boolean",
18274 "typetext" : "<boolean>"
56122987 18275 },
4d47f125
TL
18276 "ostype" : {
18277 "description" : "Specify guest operating system.",
7aacca6f 18278 "enum" : [
4d47f125
TL
18279 "other",
18280 "wxp",
18281 "w2k",
18282 "w2k3",
18283 "w2k8",
18284 "wvista",
18285 "win7",
18286 "win8",
18287 "win10",
5370fa8c 18288 "win11",
4d47f125
TL
18289 "l24",
18290 "l26",
18291 "solaris"
7aacca6f
DM
18292 ],
18293 "optional" : 1,
013dc89f 18294 "type" : "string",
5370fa8c 18295 "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 18296 },
4d47f125
TL
18297 "parallel[n]" : {
18298 "description" : "Map host parallel devices (n is 0 to 2).",
18299 "optional" : 1,
18300 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
013dc89f 18301 "type" : "string",
4772952b 18302 "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 18303 },
4d47f125
TL
18304 "protection" : {
18305 "default" : 0,
18306 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
44660702 18307 "optional" : 1,
013dc89f
DM
18308 "type" : "boolean",
18309 "typetext" : "<boolean>"
44660702 18310 },
4d47f125
TL
18311 "reboot" : {
18312 "default" : 1,
18313 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
56122987 18314 "optional" : 1,
013dc89f
DM
18315 "type" : "boolean",
18316 "typetext" : "<boolean>"
56122987 18317 },
4d47f125
TL
18318 "revert" : {
18319 "description" : "Revert a pending change.",
18320 "format" : "pve-configid-list",
18321 "optional" : 1,
013dc89f
DM
18322 "type" : "string",
18323 "typetext" : "<string>"
56122987 18324 },
c5aa7e14
TL
18325 "rng0" : {
18326 "description" : "Configure a VirtIO-based Random Number Generator.",
18327 "format" : {
18328 "max_bytes" : {
18329 "default" : 1024,
5370fa8c 18330 "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
18331 "optional" : 1,
18332 "type" : "integer"
18333 },
18334 "period" : {
18335 "default" : 1000,
18336 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
18337 "optional" : 1,
18338 "type" : "integer"
18339 },
18340 "source" : {
18341 "default_key" : 1,
5370fa8c 18342 "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
18343 "enum" : [
18344 "/dev/urandom",
18345 "/dev/random",
18346 "/dev/hwrng"
18347 ],
18348 "type" : "string"
18349 }
18350 },
18351 "optional" : 1,
18352 "type" : "string",
18353 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
18354 },
4d47f125 18355 "sata[n]" : {
7af2edf9 18356 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125
TL
18357 "format" : {
18358 "aio" : {
18359 "description" : "AIO type to use.",
18360 "enum" : [
18361 "native",
8f4d9c87
TL
18362 "threads",
18363 "io_uring"
4d47f125
TL
18364 ],
18365 "optional" : 1,
18366 "type" : "string"
18367 },
18368 "backup" : {
18369 "description" : "Whether the drive should be included when making backups.",
18370 "optional" : 1,
18371 "type" : "boolean"
18372 },
18373 "bps" : {
18374 "description" : "Maximum r/w speed in bytes per second.",
18375 "format_description" : "bps",
18376 "optional" : 1,
18377 "type" : "integer"
18378 },
18379 "bps_max_length" : {
18380 "description" : "Maximum length of I/O bursts in seconds.",
18381 "format_description" : "seconds",
18382 "minimum" : 1,
18383 "optional" : 1,
18384 "type" : "integer"
18385 },
18386 "bps_rd" : {
18387 "description" : "Maximum read speed in bytes per second.",
18388 "format_description" : "bps",
18389 "optional" : 1,
18390 "type" : "integer"
18391 },
18392 "bps_rd_length" : {
18393 "alias" : "bps_rd_max_length"
18394 },
18395 "bps_rd_max_length" : {
18396 "description" : "Maximum length of read I/O bursts in seconds.",
18397 "format_description" : "seconds",
18398 "minimum" : 1,
18399 "optional" : 1,
18400 "type" : "integer"
18401 },
18402 "bps_wr" : {
18403 "description" : "Maximum write speed in bytes per second.",
18404 "format_description" : "bps",
18405 "optional" : 1,
18406 "type" : "integer"
18407 },
18408 "bps_wr_length" : {
18409 "alias" : "bps_wr_max_length"
18410 },
18411 "bps_wr_max_length" : {
18412 "description" : "Maximum length of write I/O bursts in seconds.",
18413 "format_description" : "seconds",
18414 "minimum" : 1,
18415 "optional" : 1,
18416 "type" : "integer"
18417 },
18418 "cache" : {
18419 "description" : "The drive's cache mode",
18420 "enum" : [
18421 "none",
18422 "writethrough",
18423 "writeback",
18424 "unsafe",
18425 "directsync"
18426 ],
18427 "optional" : 1,
18428 "type" : "string"
18429 },
18430 "cyls" : {
18431 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
18432 "optional" : 1,
18433 "type" : "integer"
18434 },
18435 "detect_zeroes" : {
18436 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
18437 "optional" : 1,
18438 "type" : "boolean"
18439 },
18440 "discard" : {
18441 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
18442 "enum" : [
18443 "ignore",
18444 "on"
18445 ],
18446 "optional" : 1,
18447 "type" : "string"
18448 },
18449 "file" : {
18450 "default_key" : 1,
18451 "description" : "The drive's backing volume.",
18452 "format" : "pve-volume-id-or-qm-path",
18453 "format_description" : "volume",
18454 "type" : "string"
18455 },
18456 "format" : {
18457 "description" : "The drive's backing file's data format.",
18458 "enum" : [
18459 "raw",
18460 "cow",
18461 "qcow",
18462 "qed",
18463 "qcow2",
18464 "vmdk",
18465 "cloop"
18466 ],
18467 "optional" : 1,
18468 "type" : "string"
18469 },
18470 "heads" : {
18471 "description" : "Force the drive's physical geometry to have a specific head count.",
18472 "optional" : 1,
18473 "type" : "integer"
18474 },
7af2edf9
TL
18475 "import-from" : {
18476 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
18477 "format" : "pve-volume-id-or-absolute-path",
18478 "format_description" : "source volume",
18479 "optional" : 1,
18480 "type" : "string"
18481 },
4d47f125
TL
18482 "iops" : {
18483 "description" : "Maximum r/w I/O in operations per second.",
18484 "format_description" : "iops",
18485 "optional" : 1,
18486 "type" : "integer"
18487 },
18488 "iops_max" : {
18489 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
18490 "format_description" : "iops",
18491 "optional" : 1,
18492 "type" : "integer"
18493 },
18494 "iops_max_length" : {
18495 "description" : "Maximum length of I/O bursts in seconds.",
18496 "format_description" : "seconds",
18497 "minimum" : 1,
18498 "optional" : 1,
18499 "type" : "integer"
18500 },
18501 "iops_rd" : {
18502 "description" : "Maximum read I/O in operations per second.",
18503 "format_description" : "iops",
18504 "optional" : 1,
18505 "type" : "integer"
18506 },
18507 "iops_rd_length" : {
18508 "alias" : "iops_rd_max_length"
18509 },
18510 "iops_rd_max" : {
18511 "description" : "Maximum unthrottled read I/O pool in operations per second.",
18512 "format_description" : "iops",
18513 "optional" : 1,
18514 "type" : "integer"
18515 },
18516 "iops_rd_max_length" : {
18517 "description" : "Maximum length of read I/O bursts in seconds.",
18518 "format_description" : "seconds",
18519 "minimum" : 1,
18520 "optional" : 1,
18521 "type" : "integer"
18522 },
18523 "iops_wr" : {
18524 "description" : "Maximum write I/O in operations per second.",
18525 "format_description" : "iops",
18526 "optional" : 1,
18527 "type" : "integer"
18528 },
18529 "iops_wr_length" : {
18530 "alias" : "iops_wr_max_length"
18531 },
18532 "iops_wr_max" : {
18533 "description" : "Maximum unthrottled write I/O pool in operations per second.",
18534 "format_description" : "iops",
18535 "optional" : 1,
18536 "type" : "integer"
18537 },
18538 "iops_wr_max_length" : {
18539 "description" : "Maximum length of write I/O bursts in seconds.",
18540 "format_description" : "seconds",
18541 "minimum" : 1,
18542 "optional" : 1,
18543 "type" : "integer"
18544 },
18545 "mbps" : {
18546 "description" : "Maximum r/w speed in megabytes per second.",
18547 "format_description" : "mbps",
18548 "optional" : 1,
18549 "type" : "number"
18550 },
18551 "mbps_max" : {
18552 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
18553 "format_description" : "mbps",
18554 "optional" : 1,
18555 "type" : "number"
18556 },
18557 "mbps_rd" : {
18558 "description" : "Maximum read speed in megabytes per second.",
18559 "format_description" : "mbps",
18560 "optional" : 1,
18561 "type" : "number"
18562 },
18563 "mbps_rd_max" : {
18564 "description" : "Maximum unthrottled read pool in megabytes per second.",
18565 "format_description" : "mbps",
18566 "optional" : 1,
18567 "type" : "number"
18568 },
18569 "mbps_wr" : {
18570 "description" : "Maximum write speed in megabytes per second.",
18571 "format_description" : "mbps",
18572 "optional" : 1,
18573 "type" : "number"
18574 },
18575 "mbps_wr_max" : {
18576 "description" : "Maximum unthrottled write pool in megabytes per second.",
18577 "format_description" : "mbps",
18578 "optional" : 1,
18579 "type" : "number"
18580 },
18581 "media" : {
18582 "default" : "disk",
18583 "description" : "The drive's media type.",
18584 "enum" : [
18585 "cdrom",
18586 "disk"
18587 ],
18588 "optional" : 1,
18589 "type" : "string"
18590 },
18591 "replicate" : {
18592 "default" : 1,
18593 "description" : "Whether the drive should considered for replication jobs.",
18594 "optional" : 1,
18595 "type" : "boolean"
18596 },
18597 "rerror" : {
18598 "description" : "Read error action.",
18599 "enum" : [
18600 "ignore",
18601 "report",
18602 "stop"
18603 ],
18604 "optional" : 1,
18605 "type" : "string"
18606 },
18607 "secs" : {
18608 "description" : "Force the drive's physical geometry to have a specific sector count.",
18609 "optional" : 1,
18610 "type" : "integer"
18611 },
18612 "serial" : {
18613 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18614 "format" : "urlencoded",
18615 "format_description" : "serial",
18616 "maxLength" : 60,
18617 "optional" : 1,
18618 "type" : "string"
18619 },
18620 "shared" : {
18621 "default" : 0,
18622 "description" : "Mark this locally-managed volume as available on all nodes",
18623 "optional" : 1,
18624 "type" : "boolean",
18625 "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!"
18626 },
18627 "size" : {
18628 "description" : "Disk size. This is purely informational and has no effect.",
18629 "format" : "disk-size",
18630 "format_description" : "DiskSize",
18631 "optional" : 1,
18632 "type" : "string"
18633 },
18634 "snapshot" : {
18635 "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.",
18636 "optional" : 1,
18637 "type" : "boolean"
18638 },
25203dc1
NC
18639 "ssd" : {
18640 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18641 "optional" : 1,
18642 "type" : "boolean"
18643 },
4d47f125
TL
18644 "trans" : {
18645 "description" : "Force disk geometry bios translation mode.",
18646 "enum" : [
18647 "none",
18648 "lba",
18649 "auto"
18650 ],
18651 "optional" : 1,
18652 "type" : "string"
18653 },
18654 "volume" : {
18655 "alias" : "file"
18656 },
18657 "werror" : {
18658 "description" : "Write error action.",
18659 "enum" : [
18660 "enospc",
18661 "ignore",
18662 "report",
18663 "stop"
18664 ],
18665 "optional" : 1,
18666 "type" : "string"
95895385
TL
18667 },
18668 "wwn" : {
18669 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
18670 "format_description" : "wwn",
18671 "optional" : 1,
18672 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
18673 "type" : "string"
4d47f125
TL
18674 }
18675 },
18676 "optional" : 1,
18677 "type" : "string",
7af2edf9 18678 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
4d47f125
TL
18679 },
18680 "scsi[n]" : {
7af2edf9 18681 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125
TL
18682 "format" : {
18683 "aio" : {
18684 "description" : "AIO type to use.",
18685 "enum" : [
18686 "native",
8f4d9c87
TL
18687 "threads",
18688 "io_uring"
4d47f125
TL
18689 ],
18690 "optional" : 1,
18691 "type" : "string"
18692 },
18693 "backup" : {
18694 "description" : "Whether the drive should be included when making backups.",
18695 "optional" : 1,
18696 "type" : "boolean"
18697 },
18698 "bps" : {
18699 "description" : "Maximum r/w speed in bytes per second.",
18700 "format_description" : "bps",
18701 "optional" : 1,
18702 "type" : "integer"
18703 },
18704 "bps_max_length" : {
18705 "description" : "Maximum length of I/O bursts in seconds.",
18706 "format_description" : "seconds",
18707 "minimum" : 1,
18708 "optional" : 1,
18709 "type" : "integer"
18710 },
18711 "bps_rd" : {
18712 "description" : "Maximum read speed in bytes per second.",
18713 "format_description" : "bps",
18714 "optional" : 1,
18715 "type" : "integer"
18716 },
18717 "bps_rd_length" : {
18718 "alias" : "bps_rd_max_length"
18719 },
18720 "bps_rd_max_length" : {
18721 "description" : "Maximum length of read I/O bursts in seconds.",
18722 "format_description" : "seconds",
18723 "minimum" : 1,
18724 "optional" : 1,
18725 "type" : "integer"
18726 },
18727 "bps_wr" : {
18728 "description" : "Maximum write speed in bytes per second.",
18729 "format_description" : "bps",
18730 "optional" : 1,
18731 "type" : "integer"
18732 },
18733 "bps_wr_length" : {
18734 "alias" : "bps_wr_max_length"
18735 },
18736 "bps_wr_max_length" : {
18737 "description" : "Maximum length of write I/O bursts in seconds.",
18738 "format_description" : "seconds",
18739 "minimum" : 1,
18740 "optional" : 1,
18741 "type" : "integer"
18742 },
18743 "cache" : {
18744 "description" : "The drive's cache mode",
18745 "enum" : [
18746 "none",
18747 "writethrough",
18748 "writeback",
18749 "unsafe",
18750 "directsync"
18751 ],
18752 "optional" : 1,
18753 "type" : "string"
18754 },
18755 "cyls" : {
18756 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
18757 "optional" : 1,
18758 "type" : "integer"
18759 },
18760 "detect_zeroes" : {
18761 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
18762 "optional" : 1,
18763 "type" : "boolean"
18764 },
18765 "discard" : {
18766 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
18767 "enum" : [
18768 "ignore",
18769 "on"
18770 ],
18771 "optional" : 1,
18772 "type" : "string"
18773 },
18774 "file" : {
18775 "default_key" : 1,
18776 "description" : "The drive's backing volume.",
18777 "format" : "pve-volume-id-or-qm-path",
18778 "format_description" : "volume",
18779 "type" : "string"
18780 },
18781 "format" : {
18782 "description" : "The drive's backing file's data format.",
18783 "enum" : [
18784 "raw",
18785 "cow",
18786 "qcow",
18787 "qed",
18788 "qcow2",
18789 "vmdk",
18790 "cloop"
18791 ],
18792 "optional" : 1,
18793 "type" : "string"
18794 },
18795 "heads" : {
18796 "description" : "Force the drive's physical geometry to have a specific head count.",
18797 "optional" : 1,
18798 "type" : "integer"
18799 },
7af2edf9
TL
18800 "import-from" : {
18801 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
18802 "format" : "pve-volume-id-or-absolute-path",
18803 "format_description" : "source volume",
18804 "optional" : 1,
18805 "type" : "string"
18806 },
4d47f125
TL
18807 "iops" : {
18808 "description" : "Maximum r/w I/O in operations per second.",
18809 "format_description" : "iops",
18810 "optional" : 1,
18811 "type" : "integer"
18812 },
18813 "iops_max" : {
18814 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
18815 "format_description" : "iops",
18816 "optional" : 1,
18817 "type" : "integer"
18818 },
18819 "iops_max_length" : {
18820 "description" : "Maximum length of I/O bursts in seconds.",
18821 "format_description" : "seconds",
18822 "minimum" : 1,
18823 "optional" : 1,
18824 "type" : "integer"
18825 },
18826 "iops_rd" : {
18827 "description" : "Maximum read I/O in operations per second.",
18828 "format_description" : "iops",
18829 "optional" : 1,
18830 "type" : "integer"
18831 },
18832 "iops_rd_length" : {
18833 "alias" : "iops_rd_max_length"
18834 },
18835 "iops_rd_max" : {
18836 "description" : "Maximum unthrottled read I/O pool in operations per second.",
18837 "format_description" : "iops",
18838 "optional" : 1,
18839 "type" : "integer"
18840 },
18841 "iops_rd_max_length" : {
18842 "description" : "Maximum length of read I/O bursts in seconds.",
18843 "format_description" : "seconds",
18844 "minimum" : 1,
18845 "optional" : 1,
18846 "type" : "integer"
18847 },
18848 "iops_wr" : {
18849 "description" : "Maximum write I/O in operations per second.",
18850 "format_description" : "iops",
18851 "optional" : 1,
18852 "type" : "integer"
18853 },
18854 "iops_wr_length" : {
18855 "alias" : "iops_wr_max_length"
18856 },
18857 "iops_wr_max" : {
18858 "description" : "Maximum unthrottled write I/O pool in operations per second.",
18859 "format_description" : "iops",
18860 "optional" : 1,
18861 "type" : "integer"
18862 },
18863 "iops_wr_max_length" : {
18864 "description" : "Maximum length of write I/O bursts in seconds.",
18865 "format_description" : "seconds",
18866 "minimum" : 1,
18867 "optional" : 1,
18868 "type" : "integer"
18869 },
18870 "iothread" : {
18871 "description" : "Whether to use iothreads for this drive",
18872 "optional" : 1,
18873 "type" : "boolean"
18874 },
18875 "mbps" : {
18876 "description" : "Maximum r/w speed in megabytes per second.",
18877 "format_description" : "mbps",
18878 "optional" : 1,
18879 "type" : "number"
18880 },
18881 "mbps_max" : {
18882 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
18883 "format_description" : "mbps",
18884 "optional" : 1,
18885 "type" : "number"
18886 },
18887 "mbps_rd" : {
18888 "description" : "Maximum read speed in megabytes per second.",
18889 "format_description" : "mbps",
18890 "optional" : 1,
18891 "type" : "number"
18892 },
18893 "mbps_rd_max" : {
18894 "description" : "Maximum unthrottled read pool in megabytes per second.",
18895 "format_description" : "mbps",
18896 "optional" : 1,
18897 "type" : "number"
18898 },
18899 "mbps_wr" : {
18900 "description" : "Maximum write speed in megabytes per second.",
18901 "format_description" : "mbps",
18902 "optional" : 1,
18903 "type" : "number"
18904 },
18905 "mbps_wr_max" : {
18906 "description" : "Maximum unthrottled write pool in megabytes per second.",
18907 "format_description" : "mbps",
18908 "optional" : 1,
18909 "type" : "number"
18910 },
18911 "media" : {
18912 "default" : "disk",
18913 "description" : "The drive's media type.",
18914 "enum" : [
18915 "cdrom",
18916 "disk"
18917 ],
18918 "optional" : 1,
18919 "type" : "string"
18920 },
18921 "queues" : {
18922 "description" : "Number of queues.",
18923 "minimum" : 2,
18924 "optional" : 1,
18925 "type" : "integer"
18926 },
18927 "replicate" : {
18928 "default" : 1,
18929 "description" : "Whether the drive should considered for replication jobs.",
18930 "optional" : 1,
18931 "type" : "boolean"
18932 },
18933 "rerror" : {
18934 "description" : "Read error action.",
18935 "enum" : [
18936 "ignore",
18937 "report",
18938 "stop"
18939 ],
18940 "optional" : 1,
18941 "type" : "string"
18942 },
5370fa8c
TL
18943 "ro" : {
18944 "description" : "Whether the drive is read-only.",
18945 "optional" : 1,
18946 "type" : "boolean"
18947 },
4d47f125
TL
18948 "scsiblock" : {
18949 "default" : 0,
18950 "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",
18951 "optional" : 1,
18952 "type" : "boolean"
18953 },
18954 "secs" : {
18955 "description" : "Force the drive's physical geometry to have a specific sector count.",
18956 "optional" : 1,
18957 "type" : "integer"
18958 },
18959 "serial" : {
18960 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
18961 "format" : "urlencoded",
18962 "format_description" : "serial",
18963 "maxLength" : 60,
18964 "optional" : 1,
18965 "type" : "string"
18966 },
18967 "shared" : {
18968 "default" : 0,
18969 "description" : "Mark this locally-managed volume as available on all nodes",
18970 "optional" : 1,
18971 "type" : "boolean",
18972 "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!"
18973 },
18974 "size" : {
18975 "description" : "Disk size. This is purely informational and has no effect.",
18976 "format" : "disk-size",
18977 "format_description" : "DiskSize",
18978 "optional" : 1,
18979 "type" : "string"
18980 },
18981 "snapshot" : {
18982 "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.",
18983 "optional" : 1,
18984 "type" : "boolean"
18985 },
25203dc1
NC
18986 "ssd" : {
18987 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
18988 "optional" : 1,
18989 "type" : "boolean"
18990 },
4d47f125
TL
18991 "trans" : {
18992 "description" : "Force disk geometry bios translation mode.",
18993 "enum" : [
18994 "none",
18995 "lba",
18996 "auto"
18997 ],
18998 "optional" : 1,
18999 "type" : "string"
19000 },
19001 "volume" : {
19002 "alias" : "file"
19003 },
19004 "werror" : {
19005 "description" : "Write error action.",
19006 "enum" : [
19007 "enospc",
19008 "ignore",
19009 "report",
19010 "stop"
19011 ],
19012 "optional" : 1,
19013 "type" : "string"
95895385
TL
19014 },
19015 "wwn" : {
19016 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
19017 "format_description" : "wwn",
19018 "optional" : 1,
19019 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
19020 "type" : "string"
4d47f125
TL
19021 }
19022 },
19023 "optional" : 1,
19024 "type" : "string",
7af2edf9 19025 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
4d47f125
TL
19026 },
19027 "scsihw" : {
19028 "default" : "lsi",
19029 "description" : "SCSI controller model",
19030 "enum" : [
19031 "lsi",
19032 "lsi53c810",
19033 "virtio-scsi-pci",
19034 "virtio-scsi-single",
19035 "megasas",
19036 "pvscsi"
19037 ],
19038 "optional" : 1,
19039 "type" : "string"
19040 },
19041 "searchdomain" : {
de786b48 19042 "description" : "cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
4d47f125
TL
19043 "optional" : 1,
19044 "type" : "string",
19045 "typetext" : "<string>"
19046 },
19047 "serial[n]" : {
19048 "description" : "Create a serial device inside the VM (n is 0 to 3)",
19049 "optional" : 1,
19050 "pattern" : "(/dev/.+|socket)",
19051 "type" : "string",
4772952b 19052 "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
19053 },
19054 "shares" : {
19055 "default" : 1000,
19056 "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.",
19057 "maximum" : 50000,
19058 "minimum" : 0,
19059 "optional" : 1,
19060 "type" : "integer",
19061 "typetext" : "<integer> (0 - 50000)"
19062 },
19063 "skiplock" : {
19064 "description" : "Ignore locks - only root is allowed to use this option.",
19065 "optional" : 1,
19066 "type" : "boolean",
19067 "typetext" : "<boolean>"
19068 },
19069 "smbios1" : {
19070 "description" : "Specify SMBIOS type 1 fields.",
19071 "format" : "pve-qm-smbios1",
1e3f8156 19072 "maxLength" : 512,
4d47f125
TL
19073 "optional" : 1,
19074 "type" : "string",
1e3f8156 19075 "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
19076 },
19077 "smp" : {
19078 "default" : 1,
19079 "description" : "The number of CPUs. Please use option -sockets instead.",
19080 "minimum" : 1,
19081 "optional" : 1,
19082 "type" : "integer",
19083 "typetext" : "<integer> (1 - N)"
19084 },
19085 "sockets" : {
19086 "default" : 1,
19087 "description" : "The number of CPU sockets.",
19088 "minimum" : 1,
19089 "optional" : 1,
19090 "type" : "integer",
19091 "typetext" : "<integer> (1 - N)"
19092 },
1c532546
TL
19093 "spice_enhancements" : {
19094 "description" : "Configure additional enhancements for SPICE.",
19095 "format" : {
19096 "foldersharing" : {
19097 "default" : "0",
19098 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
19099 "optional" : 1,
19100 "type" : "boolean"
19101 },
19102 "videostreaming" : {
19103 "default" : "off",
19104 "description" : "Enable video streaming. Uses compression for detected video streams.",
19105 "enum" : [
19106 "off",
19107 "all",
19108 "filter"
19109 ],
19110 "optional" : 1,
19111 "type" : "string"
19112 }
19113 },
19114 "optional" : 1,
19115 "type" : "string",
19116 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
19117 },
4d47f125
TL
19118 "sshkeys" : {
19119 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
19120 "format" : "urlencoded",
19121 "optional" : 1,
19122 "type" : "string",
19123 "typetext" : "<string>"
19124 },
19125 "startdate" : {
19126 "default" : "now",
4772952b 19127 "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
19128 "optional" : 1,
19129 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
19130 "type" : "string",
19131 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
19132 },
19133 "startup" : {
19134 "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.",
19135 "format" : "pve-startup-order",
19136 "optional" : 1,
19137 "type" : "string",
19138 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
19139 },
19140 "tablet" : {
19141 "default" : 1,
19142 "description" : "Enable/disable the USB tablet device.",
19143 "optional" : 1,
19144 "type" : "boolean",
19145 "typetext" : "<boolean>",
4772952b 19146 "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 19147 },
5c1699e5
TL
19148 "tags" : {
19149 "description" : "Tags of the VM. This is only meta information.",
19150 "format" : "pve-tag-list",
19151 "optional" : 1,
19152 "type" : "string",
19153 "typetext" : "<string>"
19154 },
4d47f125
TL
19155 "tdf" : {
19156 "default" : 0,
19157 "description" : "Enable/disable time drift fix.",
19158 "optional" : 1,
19159 "type" : "boolean",
19160 "typetext" : "<boolean>"
19161 },
19162 "template" : {
19163 "default" : 0,
19164 "description" : "Enable/disable Template.",
19165 "optional" : 1,
19166 "type" : "boolean",
19167 "typetext" : "<boolean>"
19168 },
5370fa8c 19169 "tpmstate0" : {
7af2edf9 19170 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
5370fa8c
TL
19171 "format" : {
19172 "file" : {
19173 "default_key" : 1,
19174 "description" : "The drive's backing volume.",
19175 "format" : "pve-volume-id-or-qm-path",
19176 "format_description" : "volume",
19177 "type" : "string"
19178 },
7af2edf9
TL
19179 "import-from" : {
19180 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
19181 "format" : "pve-volume-id-or-absolute-path",
19182 "format_description" : "source volume",
19183 "optional" : 1,
19184 "type" : "string"
19185 },
5370fa8c
TL
19186 "size" : {
19187 "description" : "Disk size. This is purely informational and has no effect.",
19188 "format" : "disk-size",
19189 "format_description" : "DiskSize",
19190 "optional" : 1,
19191 "type" : "string"
19192 },
19193 "version" : {
19194 "default" : "v2.0",
19195 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
19196 "enum" : [
19197 "v1.2",
19198 "v2.0"
19199 ],
19200 "optional" : 1,
19201 "type" : "string"
19202 },
19203 "volume" : {
19204 "alias" : "file"
19205 }
19206 },
19207 "optional" : 1,
19208 "type" : "string",
7af2edf9 19209 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 19210 },
4d47f125
TL
19211 "unused[n]" : {
19212 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
19213 "format" : {
19214 "file" : {
19215 "default_key" : 1,
19216 "description" : "The drive's backing volume.",
19217 "format" : "pve-volume-id",
19218 "format_description" : "volume",
19219 "type" : "string"
19220 },
19221 "volume" : {
19222 "alias" : "file"
19223 }
19224 },
4d47f125
TL
19225 "optional" : 1,
19226 "type" : "string",
c5aa7e14 19227 "typetext" : "[file=]<volume>"
4d47f125
TL
19228 },
19229 "usb[n]" : {
4e7f60c2 19230 "description" : "Configure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).",
4d47f125
TL
19231 "format" : {
19232 "host" : {
19233 "default_key" : 1,
4772952b 19234 "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
19235 "format" : "pve-qm-usb-device",
19236 "format_description" : "HOSTUSBDEVICE|spice",
19237 "type" : "string"
19238 },
19239 "usb3" : {
19240 "default" : 0,
4e7f60c2 19241 "description" : "Specifies whether if given host option is a USB3 device or port. For modern guests (machine version >= 7.1 and ostype l26 and windows > 7), this flag is irrelevant (all devices are plugged into a xhci controller).",
4d47f125
TL
19242 "optional" : 1,
19243 "type" : "boolean"
19244 }
19245 },
19246 "optional" : 1,
19247 "type" : "string",
19248 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
19249 },
19250 "vcpus" : {
19251 "default" : 0,
19252 "description" : "Number of hotplugged vcpus.",
19253 "minimum" : 1,
19254 "optional" : 1,
19255 "type" : "integer",
19256 "typetext" : "<integer> (1 - N)"
19257 },
19258 "vga" : {
e2d681b3
TL
19259 "description" : "Configure the VGA hardware.",
19260 "format" : {
19261 "memory" : {
19262 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
19263 "maximum" : 512,
19264 "minimum" : 4,
19265 "optional" : 1,
19266 "type" : "integer"
19267 },
19268 "type" : {
19269 "default" : "std",
19270 "default_key" : 1,
19271 "description" : "Select the VGA type.",
19272 "enum" : [
19273 "cirrus",
19274 "qxl",
19275 "qxl2",
19276 "qxl3",
19277 "qxl4",
5f26e15b 19278 "none",
e2d681b3
TL
19279 "serial0",
19280 "serial1",
19281 "serial2",
19282 "serial3",
19283 "std",
19284 "virtio",
7af2edf9 19285 "virtio-gl",
e2d681b3
TL
19286 "vmware"
19287 ],
19288 "optional" : 1,
19289 "type" : "string"
19290 }
19291 },
4d47f125
TL
19292 "optional" : 1,
19293 "type" : "string",
e2d681b3
TL
19294 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
19295 "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
19296 },
19297 "virtio[n]" : {
7af2edf9 19298 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125
TL
19299 "format" : {
19300 "aio" : {
19301 "description" : "AIO type to use.",
19302 "enum" : [
19303 "native",
8f4d9c87
TL
19304 "threads",
19305 "io_uring"
4d47f125
TL
19306 ],
19307 "optional" : 1,
19308 "type" : "string"
19309 },
19310 "backup" : {
19311 "description" : "Whether the drive should be included when making backups.",
19312 "optional" : 1,
19313 "type" : "boolean"
19314 },
19315 "bps" : {
19316 "description" : "Maximum r/w speed in bytes per second.",
19317 "format_description" : "bps",
19318 "optional" : 1,
19319 "type" : "integer"
19320 },
19321 "bps_max_length" : {
19322 "description" : "Maximum length of I/O bursts in seconds.",
19323 "format_description" : "seconds",
19324 "minimum" : 1,
19325 "optional" : 1,
19326 "type" : "integer"
19327 },
19328 "bps_rd" : {
19329 "description" : "Maximum read speed in bytes per second.",
19330 "format_description" : "bps",
19331 "optional" : 1,
19332 "type" : "integer"
19333 },
19334 "bps_rd_length" : {
19335 "alias" : "bps_rd_max_length"
19336 },
19337 "bps_rd_max_length" : {
19338 "description" : "Maximum length of read I/O bursts in seconds.",
19339 "format_description" : "seconds",
19340 "minimum" : 1,
19341 "optional" : 1,
19342 "type" : "integer"
19343 },
19344 "bps_wr" : {
19345 "description" : "Maximum write speed in bytes per second.",
19346 "format_description" : "bps",
19347 "optional" : 1,
19348 "type" : "integer"
19349 },
19350 "bps_wr_length" : {
19351 "alias" : "bps_wr_max_length"
19352 },
19353 "bps_wr_max_length" : {
19354 "description" : "Maximum length of write I/O bursts in seconds.",
19355 "format_description" : "seconds",
19356 "minimum" : 1,
19357 "optional" : 1,
19358 "type" : "integer"
19359 },
19360 "cache" : {
19361 "description" : "The drive's cache mode",
19362 "enum" : [
19363 "none",
19364 "writethrough",
19365 "writeback",
19366 "unsafe",
19367 "directsync"
19368 ],
19369 "optional" : 1,
19370 "type" : "string"
19371 },
19372 "cyls" : {
19373 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
19374 "optional" : 1,
19375 "type" : "integer"
19376 },
19377 "detect_zeroes" : {
19378 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
19379 "optional" : 1,
19380 "type" : "boolean"
19381 },
19382 "discard" : {
19383 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
19384 "enum" : [
19385 "ignore",
19386 "on"
19387 ],
19388 "optional" : 1,
19389 "type" : "string"
19390 },
19391 "file" : {
19392 "default_key" : 1,
19393 "description" : "The drive's backing volume.",
19394 "format" : "pve-volume-id-or-qm-path",
19395 "format_description" : "volume",
19396 "type" : "string"
19397 },
19398 "format" : {
19399 "description" : "The drive's backing file's data format.",
19400 "enum" : [
19401 "raw",
19402 "cow",
19403 "qcow",
19404 "qed",
19405 "qcow2",
19406 "vmdk",
19407 "cloop"
19408 ],
19409 "optional" : 1,
19410 "type" : "string"
19411 },
19412 "heads" : {
19413 "description" : "Force the drive's physical geometry to have a specific head count.",
19414 "optional" : 1,
19415 "type" : "integer"
19416 },
7af2edf9
TL
19417 "import-from" : {
19418 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
19419 "format" : "pve-volume-id-or-absolute-path",
19420 "format_description" : "source volume",
19421 "optional" : 1,
19422 "type" : "string"
19423 },
4d47f125
TL
19424 "iops" : {
19425 "description" : "Maximum r/w I/O in operations per second.",
19426 "format_description" : "iops",
19427 "optional" : 1,
19428 "type" : "integer"
19429 },
19430 "iops_max" : {
19431 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
19432 "format_description" : "iops",
19433 "optional" : 1,
19434 "type" : "integer"
19435 },
19436 "iops_max_length" : {
19437 "description" : "Maximum length of I/O bursts in seconds.",
19438 "format_description" : "seconds",
19439 "minimum" : 1,
19440 "optional" : 1,
19441 "type" : "integer"
19442 },
19443 "iops_rd" : {
19444 "description" : "Maximum read I/O in operations per second.",
19445 "format_description" : "iops",
19446 "optional" : 1,
19447 "type" : "integer"
19448 },
19449 "iops_rd_length" : {
19450 "alias" : "iops_rd_max_length"
19451 },
19452 "iops_rd_max" : {
19453 "description" : "Maximum unthrottled read I/O pool in operations per second.",
19454 "format_description" : "iops",
19455 "optional" : 1,
19456 "type" : "integer"
19457 },
19458 "iops_rd_max_length" : {
19459 "description" : "Maximum length of read I/O bursts in seconds.",
19460 "format_description" : "seconds",
19461 "minimum" : 1,
19462 "optional" : 1,
19463 "type" : "integer"
19464 },
19465 "iops_wr" : {
19466 "description" : "Maximum write I/O in operations per second.",
19467 "format_description" : "iops",
19468 "optional" : 1,
19469 "type" : "integer"
19470 },
19471 "iops_wr_length" : {
19472 "alias" : "iops_wr_max_length"
19473 },
19474 "iops_wr_max" : {
19475 "description" : "Maximum unthrottled write I/O pool in operations per second.",
19476 "format_description" : "iops",
19477 "optional" : 1,
19478 "type" : "integer"
19479 },
19480 "iops_wr_max_length" : {
19481 "description" : "Maximum length of write I/O bursts in seconds.",
19482 "format_description" : "seconds",
19483 "minimum" : 1,
19484 "optional" : 1,
19485 "type" : "integer"
19486 },
19487 "iothread" : {
19488 "description" : "Whether to use iothreads for this drive",
19489 "optional" : 1,
19490 "type" : "boolean"
19491 },
19492 "mbps" : {
19493 "description" : "Maximum r/w speed in megabytes per second.",
19494 "format_description" : "mbps",
19495 "optional" : 1,
19496 "type" : "number"
19497 },
19498 "mbps_max" : {
19499 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
19500 "format_description" : "mbps",
19501 "optional" : 1,
19502 "type" : "number"
19503 },
19504 "mbps_rd" : {
19505 "description" : "Maximum read speed in megabytes per second.",
19506 "format_description" : "mbps",
19507 "optional" : 1,
19508 "type" : "number"
19509 },
19510 "mbps_rd_max" : {
19511 "description" : "Maximum unthrottled read pool in megabytes per second.",
19512 "format_description" : "mbps",
19513 "optional" : 1,
19514 "type" : "number"
19515 },
19516 "mbps_wr" : {
19517 "description" : "Maximum write speed in megabytes per second.",
19518 "format_description" : "mbps",
19519 "optional" : 1,
19520 "type" : "number"
19521 },
19522 "mbps_wr_max" : {
19523 "description" : "Maximum unthrottled write pool in megabytes per second.",
19524 "format_description" : "mbps",
19525 "optional" : 1,
19526 "type" : "number"
19527 },
19528 "media" : {
19529 "default" : "disk",
19530 "description" : "The drive's media type.",
19531 "enum" : [
19532 "cdrom",
19533 "disk"
19534 ],
19535 "optional" : 1,
19536 "type" : "string"
19537 },
19538 "replicate" : {
19539 "default" : 1,
19540 "description" : "Whether the drive should considered for replication jobs.",
19541 "optional" : 1,
19542 "type" : "boolean"
19543 },
19544 "rerror" : {
19545 "description" : "Read error action.",
19546 "enum" : [
19547 "ignore",
19548 "report",
19549 "stop"
19550 ],
19551 "optional" : 1,
19552 "type" : "string"
19553 },
5370fa8c
TL
19554 "ro" : {
19555 "description" : "Whether the drive is read-only.",
19556 "optional" : 1,
19557 "type" : "boolean"
19558 },
4d47f125
TL
19559 "secs" : {
19560 "description" : "Force the drive's physical geometry to have a specific sector count.",
19561 "optional" : 1,
19562 "type" : "integer"
19563 },
19564 "serial" : {
19565 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
19566 "format" : "urlencoded",
19567 "format_description" : "serial",
19568 "maxLength" : 60,
19569 "optional" : 1,
19570 "type" : "string"
19571 },
19572 "shared" : {
19573 "default" : 0,
19574 "description" : "Mark this locally-managed volume as available on all nodes",
19575 "optional" : 1,
19576 "type" : "boolean",
19577 "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!"
19578 },
19579 "size" : {
19580 "description" : "Disk size. This is purely informational and has no effect.",
19581 "format" : "disk-size",
19582 "format_description" : "DiskSize",
19583 "optional" : 1,
19584 "type" : "string"
19585 },
19586 "snapshot" : {
19587 "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.",
19588 "optional" : 1,
19589 "type" : "boolean"
19590 },
19591 "trans" : {
19592 "description" : "Force disk geometry bios translation mode.",
19593 "enum" : [
19594 "none",
19595 "lba",
19596 "auto"
19597 ],
19598 "optional" : 1,
19599 "type" : "string"
19600 },
19601 "volume" : {
19602 "alias" : "file"
19603 },
19604 "werror" : {
19605 "description" : "Write error action.",
19606 "enum" : [
19607 "enospc",
19608 "ignore",
19609 "report",
19610 "stop"
19611 ],
19612 "optional" : 1,
19613 "type" : "string"
19614 }
19615 },
19616 "optional" : 1,
19617 "type" : "string",
7af2edf9 19618 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
4d47f125
TL
19619 },
19620 "vmgenid" : {
19621 "default" : "1 (autogenerated)",
19622 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
19623 "format_description" : "UUID",
19624 "optional" : 1,
19625 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
19626 "type" : "string",
4772952b 19627 "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
19628 },
19629 "vmid" : {
19630 "description" : "The (unique) ID of the VM.",
19631 "format" : "pve-vmid",
19632 "minimum" : 1,
19633 "type" : "integer",
19634 "typetext" : "<integer> (1 - N)"
19635 },
19636 "vmstatestorage" : {
19637 "description" : "Default storage for VM state volumes/files.",
19638 "format" : "pve-storage-id",
19639 "optional" : 1,
19640 "type" : "string",
19641 "typetext" : "<string>"
19642 },
19643 "watchdog" : {
19644 "description" : "Create a virtual hardware watchdog device.",
19645 "format" : "pve-qm-watchdog",
19646 "optional" : 1,
19647 "type" : "string",
19648 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
19649 "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)"
19650 }
19651 }
19652 },
19653 "permissions" : {
19654 "check" : [
19655 "perm",
19656 "/vms/{vmid}",
19657 [
19658 "VM.Config.Disk",
19659 "VM.Config.CDROM",
19660 "VM.Config.CPU",
19661 "VM.Config.Memory",
19662 "VM.Config.Network",
19663 "VM.Config.HWType",
ac70d7d1
TL
19664 "VM.Config.Options",
19665 "VM.Config.Cloudinit"
4d47f125
TL
19666 ],
19667 "any",
19668 1
19669 ]
19670 },
19671 "protected" : 1,
19672 "proxyto" : "node",
19673 "returns" : {
19674 "type" : "null"
19675 }
19676 }
19677 },
19678 "leaf" : 1,
19679 "path" : "/nodes/{node}/qemu/{vmid}/config",
19680 "text" : "config"
19681 },
19682 {
19683 "info" : {
19684 "GET" : {
e9cd3bd4
TL
19685 "allowtoken" : 1,
19686 "description" : "Get the virtual machine configuration with both current and pending values.",
4d47f125
TL
19687 "method" : "GET",
19688 "name" : "vm_pending",
19689 "parameters" : {
19690 "additionalProperties" : 0,
19691 "properties" : {
19692 "node" : {
19693 "description" : "The cluster node name.",
19694 "format" : "pve-node",
19695 "type" : "string",
19696 "typetext" : "<string>"
19697 },
19698 "vmid" : {
19699 "description" : "The (unique) ID of the VM.",
19700 "format" : "pve-vmid",
19701 "minimum" : 1,
19702 "type" : "integer",
19703 "typetext" : "<integer> (1 - N)"
19704 }
19705 }
19706 },
19707 "permissions" : {
19708 "check" : [
19709 "perm",
19710 "/vms/{vmid}",
19711 [
19712 "VM.Audit"
19713 ]
19714 ]
19715 },
19716 "proxyto" : "node",
19717 "returns" : {
19718 "items" : {
19719 "properties" : {
19720 "delete" : {
19721 "description" : "Indicates a pending delete request if present and not 0. The value 2 indicates a force-delete request.",
19722 "maximum" : 2,
19723 "minimum" : 0,
19724 "optional" : 1,
19725 "type" : "integer"
19726 },
19727 "key" : {
19728 "description" : "Configuration option name.",
19729 "type" : "string"
19730 },
19731 "pending" : {
19732 "description" : "Pending value.",
19733 "optional" : 1,
19734 "type" : "string"
19735 },
19736 "value" : {
19737 "description" : "Current value.",
19738 "optional" : 1,
19739 "type" : "string"
19740 }
19741 },
19742 "type" : "object"
19743 },
19744 "type" : "array"
19745 }
19746 }
19747 },
19748 "leaf" : 1,
19749 "path" : "/nodes/{node}/qemu/{vmid}/pending",
19750 "text" : "pending"
19751 },
4e7f60c2
TL
19752 {
19753 "children" : [
19754 {
19755 "info" : {
19756 "GET" : {
19757 "allowtoken" : 1,
19758 "description" : "Get automatically generated cloudinit config.",
19759 "method" : "GET",
19760 "name" : "cloudinit_generated_config_dump",
19761 "parameters" : {
19762 "additionalProperties" : 0,
19763 "properties" : {
19764 "node" : {
19765 "description" : "The cluster node name.",
19766 "format" : "pve-node",
19767 "type" : "string",
19768 "typetext" : "<string>"
19769 },
19770 "type" : {
19771 "description" : "Config type.",
19772 "enum" : [
19773 "user",
19774 "network",
19775 "meta"
19776 ],
19777 "type" : "string"
19778 },
19779 "vmid" : {
19780 "description" : "The (unique) ID of the VM.",
19781 "format" : "pve-vmid",
19782 "minimum" : 1,
19783 "type" : "integer",
19784 "typetext" : "<integer> (1 - N)"
19785 }
19786 }
19787 },
19788 "permissions" : {
19789 "check" : [
19790 "perm",
19791 "/vms/{vmid}",
19792 [
19793 "VM.Audit"
19794 ]
19795 ]
19796 },
19797 "proxyto" : "node",
19798 "returns" : {
19799 "type" : "string"
19800 }
19801 }
19802 },
19803 "leaf" : 1,
19804 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit/dump",
19805 "text" : "dump"
19806 }
19807 ],
19808 "info" : {
19809 "GET" : {
19810 "allowtoken" : 1,
19811 "description" : "Get the cloudinit configuration with both current and pending values.",
19812 "method" : "GET",
19813 "name" : "cloudinit_pending",
19814 "parameters" : {
19815 "additionalProperties" : 0,
19816 "properties" : {
19817 "node" : {
19818 "description" : "The cluster node name.",
19819 "format" : "pve-node",
19820 "type" : "string",
19821 "typetext" : "<string>"
19822 },
19823 "vmid" : {
19824 "description" : "The (unique) ID of the VM.",
19825 "format" : "pve-vmid",
19826 "minimum" : 1,
19827 "type" : "integer",
19828 "typetext" : "<integer> (1 - N)"
19829 }
19830 }
19831 },
19832 "permissions" : {
19833 "check" : [
19834 "perm",
19835 "/vms/{vmid}",
19836 [
19837 "VM.Audit"
19838 ]
19839 ]
19840 },
19841 "proxyto" : "node",
19842 "returns" : {
19843 "items" : {
19844 "properties" : {
4e7f60c2
TL
19845 "key" : {
19846 "description" : "Configuration option name.",
19847 "type" : "string"
19848 },
81a3384d
TL
19849 "new" : {
19850 "description" : "The new pending value.",
4e7f60c2
TL
19851 "optional" : 1,
19852 "type" : "string"
19853 },
81a3384d
TL
19854 "old" : {
19855 "description" : "Value as it was used to generate the current cloudinit image.",
4e7f60c2
TL
19856 "optional" : 1,
19857 "type" : "string"
19858 }
19859 },
19860 "type" : "object"
19861 },
19862 "type" : "array"
19863 }
19864 },
19865 "PUT" : {
19866 "allowtoken" : 1,
19867 "description" : "Regenerate and change cloudinit config drive.",
19868 "method" : "PUT",
19869 "name" : "cloudinit_update",
19870 "parameters" : {
19871 "additionalProperties" : 0,
19872 "properties" : {
19873 "node" : {
19874 "description" : "The cluster node name.",
19875 "format" : "pve-node",
19876 "type" : "string",
19877 "typetext" : "<string>"
19878 },
19879 "vmid" : {
19880 "description" : "The (unique) ID of the VM.",
19881 "format" : "pve-vmid",
19882 "minimum" : 1,
19883 "type" : "integer",
19884 "typetext" : "<integer> (1 - N)"
19885 }
19886 }
19887 },
19888 "permissions" : {
19889 "check" : [
19890 "perm",
19891 "/vms/{vmid}",
19892 "VM.Config.Cloudinit"
19893 ]
19894 },
19895 "protected" : 1,
19896 "proxyto" : "node",
19897 "returns" : {
19898 "type" : "null"
19899 }
19900 }
19901 },
19902 "leaf" : 0,
19903 "path" : "/nodes/{node}/qemu/{vmid}/cloudinit",
19904 "text" : "cloudinit"
19905 },
4d47f125
TL
19906 {
19907 "info" : {
19908 "PUT" : {
e9cd3bd4 19909 "allowtoken" : 1,
4d47f125
TL
19910 "description" : "Unlink/delete disk images.",
19911 "method" : "PUT",
19912 "name" : "unlink",
19913 "parameters" : {
19914 "additionalProperties" : 0,
19915 "properties" : {
19916 "force" : {
19917 "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.",
19918 "optional" : 1,
19919 "type" : "boolean",
19920 "typetext" : "<boolean>"
19921 },
19922 "idlist" : {
19923 "description" : "A list of disk IDs you want to delete.",
19924 "format" : "pve-configid-list",
19925 "type" : "string",
19926 "typetext" : "<string>"
19927 },
19928 "node" : {
19929 "description" : "The cluster node name.",
19930 "format" : "pve-node",
19931 "type" : "string",
19932 "typetext" : "<string>"
19933 },
19934 "vmid" : {
19935 "description" : "The (unique) ID of the VM.",
19936 "format" : "pve-vmid",
19937 "minimum" : 1,
19938 "type" : "integer",
19939 "typetext" : "<integer> (1 - N)"
19940 }
19941 }
19942 },
19943 "permissions" : {
19944 "check" : [
19945 "perm",
19946 "/vms/{vmid}",
19947 [
19948 "VM.Config.Disk"
19949 ]
19950 ]
19951 },
19952 "protected" : 1,
19953 "proxyto" : "node",
19954 "returns" : {
19955 "type" : "null"
19956 }
19957 }
19958 },
19959 "leaf" : 1,
19960 "path" : "/nodes/{node}/qemu/{vmid}/unlink",
19961 "text" : "unlink"
19962 },
19963 {
19964 "info" : {
19965 "POST" : {
e9cd3bd4 19966 "allowtoken" : 1,
4d47f125
TL
19967 "description" : "Creates a TCP VNC proxy connections.",
19968 "method" : "POST",
19969 "name" : "vncproxy",
19970 "parameters" : {
19971 "additionalProperties" : 0,
19972 "properties" : {
ac70d7d1
TL
19973 "generate-password" : {
19974 "default" : 0,
19975 "description" : "Generates a random password to be used as ticket instead of the API ticket.",
19976 "optional" : 1,
19977 "type" : "boolean",
19978 "typetext" : "<boolean>"
19979 },
4d47f125
TL
19980 "node" : {
19981 "description" : "The cluster node name.",
19982 "format" : "pve-node",
19983 "type" : "string",
19984 "typetext" : "<string>"
19985 },
19986 "vmid" : {
19987 "description" : "The (unique) ID of the VM.",
19988 "format" : "pve-vmid",
19989 "minimum" : 1,
19990 "type" : "integer",
19991 "typetext" : "<integer> (1 - N)"
19992 },
19993 "websocket" : {
19994 "description" : "starts websockify instead of vncproxy",
19995 "optional" : 1,
19996 "type" : "boolean",
19997 "typetext" : "<boolean>"
19998 }
19999 }
20000 },
20001 "permissions" : {
20002 "check" : [
20003 "perm",
20004 "/vms/{vmid}",
20005 [
20006 "VM.Console"
20007 ]
20008 ]
20009 },
20010 "protected" : 1,
20011 "returns" : {
20012 "additionalProperties" : 0,
20013 "properties" : {
20014 "cert" : {
20015 "type" : "string"
20016 },
ac70d7d1
TL
20017 "password" : {
20018 "description" : "Returned if requested with 'generate-password' param. Consists of printable ASCII characters ('!' .. '~').",
20019 "optional" : 1,
20020 "type" : "string"
20021 },
4d47f125
TL
20022 "port" : {
20023 "type" : "integer"
20024 },
20025 "ticket" : {
20026 "type" : "string"
20027 },
20028 "upid" : {
20029 "type" : "string"
20030 },
20031 "user" : {
20032 "type" : "string"
20033 }
20034 }
20035 }
20036 }
20037 },
20038 "leaf" : 1,
20039 "path" : "/nodes/{node}/qemu/{vmid}/vncproxy",
20040 "text" : "vncproxy"
20041 },
20042 {
20043 "info" : {
20044 "POST" : {
e9cd3bd4 20045 "allowtoken" : 1,
4d47f125
TL
20046 "description" : "Creates a TCP proxy connections.",
20047 "method" : "POST",
20048 "name" : "termproxy",
20049 "parameters" : {
20050 "additionalProperties" : 0,
20051 "properties" : {
20052 "node" : {
20053 "description" : "The cluster node name.",
20054 "format" : "pve-node",
20055 "type" : "string",
20056 "typetext" : "<string>"
20057 },
20058 "serial" : {
20059 "description" : "opens a serial terminal (defaults to display)",
20060 "enum" : [
20061 "serial0",
20062 "serial1",
20063 "serial2",
20064 "serial3"
20065 ],
20066 "optional" : 1,
20067 "type" : "string"
20068 },
20069 "vmid" : {
20070 "description" : "The (unique) ID of the VM.",
20071 "format" : "pve-vmid",
20072 "minimum" : 1,
20073 "type" : "integer",
20074 "typetext" : "<integer> (1 - N)"
20075 }
20076 }
20077 },
20078 "permissions" : {
20079 "check" : [
20080 "perm",
20081 "/vms/{vmid}",
20082 [
20083 "VM.Console"
20084 ]
20085 ]
20086 },
20087 "protected" : 1,
20088 "returns" : {
20089 "additionalProperties" : 0,
20090 "properties" : {
20091 "port" : {
20092 "type" : "integer"
20093 },
20094 "ticket" : {
20095 "type" : "string"
20096 },
20097 "upid" : {
20098 "type" : "string"
20099 },
20100 "user" : {
20101 "type" : "string"
20102 }
20103 }
20104 }
20105 }
20106 },
20107 "leaf" : 1,
20108 "path" : "/nodes/{node}/qemu/{vmid}/termproxy",
20109 "text" : "termproxy"
20110 },
20111 {
20112 "info" : {
20113 "GET" : {
e9cd3bd4 20114 "allowtoken" : 1,
4d47f125
TL
20115 "description" : "Opens a weksocket for VNC traffic.",
20116 "method" : "GET",
20117 "name" : "vncwebsocket",
20118 "parameters" : {
20119 "additionalProperties" : 0,
20120 "properties" : {
20121 "node" : {
20122 "description" : "The cluster node name.",
20123 "format" : "pve-node",
20124 "type" : "string",
20125 "typetext" : "<string>"
20126 },
20127 "port" : {
20128 "description" : "Port number returned by previous vncproxy call.",
20129 "maximum" : 5999,
20130 "minimum" : 5900,
20131 "type" : "integer",
20132 "typetext" : "<integer> (5900 - 5999)"
20133 },
20134 "vmid" : {
20135 "description" : "The (unique) ID of the VM.",
20136 "format" : "pve-vmid",
20137 "minimum" : 1,
20138 "type" : "integer",
20139 "typetext" : "<integer> (1 - N)"
20140 },
20141 "vncticket" : {
20142 "description" : "Ticket from previous call to vncproxy.",
20143 "maxLength" : 512,
20144 "type" : "string",
20145 "typetext" : "<string>"
20146 }
20147 }
20148 },
20149 "permissions" : {
20150 "check" : [
20151 "perm",
20152 "/vms/{vmid}",
20153 [
20154 "VM.Console"
20155 ]
20156 ],
20157 "description" : "You also need to pass a valid ticket (vncticket)."
20158 },
20159 "returns" : {
20160 "properties" : {
20161 "port" : {
20162 "type" : "string"
20163 }
20164 },
20165 "type" : "object"
20166 }
20167 }
20168 },
20169 "leaf" : 1,
20170 "path" : "/nodes/{node}/qemu/{vmid}/vncwebsocket",
20171 "text" : "vncwebsocket"
20172 },
20173 {
20174 "info" : {
20175 "POST" : {
e9cd3bd4 20176 "allowtoken" : 1,
4d47f125
TL
20177 "description" : "Returns a SPICE configuration to connect to the VM.",
20178 "method" : "POST",
20179 "name" : "spiceproxy",
20180 "parameters" : {
20181 "additionalProperties" : 0,
20182 "properties" : {
20183 "node" : {
20184 "description" : "The cluster node name.",
20185 "format" : "pve-node",
20186 "type" : "string",
20187 "typetext" : "<string>"
20188 },
20189 "proxy" : {
20190 "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).",
20191 "format" : "address",
20192 "optional" : 1,
20193 "type" : "string",
20194 "typetext" : "<string>"
20195 },
20196 "vmid" : {
20197 "description" : "The (unique) ID of the VM.",
20198 "format" : "pve-vmid",
20199 "minimum" : 1,
20200 "type" : "integer",
20201 "typetext" : "<integer> (1 - N)"
20202 }
20203 }
20204 },
20205 "permissions" : {
20206 "check" : [
20207 "perm",
20208 "/vms/{vmid}",
20209 [
20210 "VM.Console"
20211 ]
20212 ]
20213 },
20214 "protected" : 1,
20215 "proxyto" : "node",
20216 "returns" : {
20217 "additionalProperties" : 1,
20218 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
20219 "properties" : {
20220 "host" : {
20221 "type" : "string"
20222 },
20223 "password" : {
20224 "type" : "string"
20225 },
20226 "proxy" : {
20227 "type" : "string"
20228 },
20229 "tls-port" : {
20230 "type" : "integer"
20231 },
20232 "type" : {
20233 "type" : "string"
20234 }
20235 }
20236 }
20237 }
20238 },
20239 "leaf" : 1,
20240 "path" : "/nodes/{node}/qemu/{vmid}/spiceproxy",
20241 "text" : "spiceproxy"
20242 },
20243 {
20244 "children" : [
20245 {
20246 "info" : {
20247 "GET" : {
e9cd3bd4 20248 "allowtoken" : 1,
4d47f125
TL
20249 "description" : "Get virtual machine status.",
20250 "method" : "GET",
20251 "name" : "vm_status",
20252 "parameters" : {
20253 "additionalProperties" : 0,
20254 "properties" : {
20255 "node" : {
20256 "description" : "The cluster node name.",
20257 "format" : "pve-node",
20258 "type" : "string",
20259 "typetext" : "<string>"
20260 },
20261 "vmid" : {
20262 "description" : "The (unique) ID of the VM.",
20263 "format" : "pve-vmid",
20264 "minimum" : 1,
20265 "type" : "integer",
20266 "typetext" : "<integer> (1 - N)"
20267 }
20268 }
20269 },
20270 "permissions" : {
20271 "check" : [
20272 "perm",
20273 "/vms/{vmid}",
20274 [
20275 "VM.Audit"
20276 ]
20277 ]
20278 },
20279 "protected" : 1,
20280 "proxyto" : "node",
20281 "returns" : {
20282 "properties" : {
20283 "agent" : {
20284 "description" : "Qemu GuestAgent enabled in config.",
20285 "optional" : 1,
20286 "type" : "boolean"
20287 },
20288 "cpus" : {
20289 "description" : "Maximum usable CPUs.",
20290 "optional" : 1,
20291 "type" : "number"
20292 },
20293 "ha" : {
20294 "description" : "HA manager service status.",
20295 "type" : "object"
20296 },
95895385
TL
20297 "lock" : {
20298 "description" : "The current config lock, if any.",
20299 "optional" : 1,
20300 "type" : "string"
20301 },
4d47f125
TL
20302 "maxdisk" : {
20303 "description" : "Root disk size in bytes.",
20304 "optional" : 1,
20305 "renderer" : "bytes",
20306 "type" : "integer"
20307 },
20308 "maxmem" : {
20309 "description" : "Maximum memory in bytes.",
20310 "optional" : 1,
20311 "renderer" : "bytes",
20312 "type" : "integer"
20313 },
20314 "name" : {
20315 "description" : "VM name.",
20316 "optional" : 1,
20317 "type" : "string"
20318 },
20319 "pid" : {
20320 "description" : "PID of running qemu process.",
20321 "optional" : 1,
20322 "type" : "integer"
20323 },
20324 "qmpstatus" : {
20325 "description" : "Qemu QMP agent status.",
20326 "optional" : 1,
20327 "type" : "string"
20328 },
d2656385
TL
20329 "running-machine" : {
20330 "description" : "The currently running machine type (if running).",
20331 "optional" : 1,
20332 "type" : "string"
20333 },
20334 "running-qemu" : {
20335 "description" : "The currently running QEMU version (if running).",
20336 "optional" : 1,
20337 "type" : "string"
20338 },
4d47f125
TL
20339 "spice" : {
20340 "description" : "Qemu VGA configuration supports spice.",
20341 "optional" : 1,
20342 "type" : "boolean"
20343 },
20344 "status" : {
20345 "description" : "Qemu process status.",
20346 "enum" : [
20347 "stopped",
20348 "running"
20349 ],
20350 "type" : "string"
20351 },
5c1699e5
TL
20352 "tags" : {
20353 "description" : "The current configured tags, if any",
20354 "optional" : 1,
20355 "type" : "string"
20356 },
4d47f125
TL
20357 "uptime" : {
20358 "description" : "Uptime.",
20359 "optional" : 1,
20360 "renderer" : "duration",
20361 "type" : "integer"
20362 },
20363 "vmid" : {
20364 "description" : "The (unique) ID of the VM.",
20365 "format" : "pve-vmid",
20366 "minimum" : 1,
20367 "type" : "integer"
20368 }
20369 },
20370 "type" : "object"
20371 }
20372 }
20373 },
20374 "leaf" : 1,
20375 "path" : "/nodes/{node}/qemu/{vmid}/status/current",
20376 "text" : "current"
20377 },
20378 {
20379 "info" : {
20380 "POST" : {
e9cd3bd4 20381 "allowtoken" : 1,
4d47f125
TL
20382 "description" : "Start virtual machine.",
20383 "method" : "POST",
20384 "name" : "vm_start",
20385 "parameters" : {
20386 "additionalProperties" : 0,
20387 "properties" : {
c5aa7e14
TL
20388 "force-cpu" : {
20389 "description" : "Override QEMU's -cpu argument with the given string.",
20390 "optional" : 1,
20391 "type" : "string",
20392 "typetext" : "<string>"
20393 },
4d47f125
TL
20394 "machine" : {
20395 "description" : "Specifies the Qemu machine type.",
20396 "maxLength" : 40,
20397 "optional" : 1,
5c1699e5 20398 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
4d47f125
TL
20399 "type" : "string"
20400 },
20401 "migratedfrom" : {
20402 "description" : "The cluster node name.",
20403 "format" : "pve-node",
20404 "optional" : 1,
20405 "type" : "string",
20406 "typetext" : "<string>"
20407 },
20408 "migration_network" : {
20409 "description" : "CIDR of the (sub) network that is used for migration.",
20410 "format" : "CIDR",
20411 "optional" : 1,
20412 "type" : "string",
20413 "typetext" : "<string>"
20414 },
20415 "migration_type" : {
20416 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
20417 "enum" : [
20418 "secure",
20419 "insecure"
20420 ],
20421 "optional" : 1,
20422 "type" : "string"
20423 },
20424 "node" : {
20425 "description" : "The cluster node name.",
20426 "format" : "pve-node",
20427 "type" : "string",
20428 "typetext" : "<string>"
20429 },
20430 "skiplock" : {
20431 "description" : "Ignore locks - only root is allowed to use this option.",
20432 "optional" : 1,
20433 "type" : "boolean",
20434 "typetext" : "<boolean>"
20435 },
20436 "stateuri" : {
20437 "description" : "Some command save/restore state from this location.",
20438 "maxLength" : 128,
20439 "optional" : 1,
20440 "type" : "string",
20441 "typetext" : "<string>"
20442 },
20443 "targetstorage" : {
c5aa7e14 20444 "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 20445 "format" : "storage-pair-list",
4d47f125
TL
20446 "optional" : 1,
20447 "type" : "string",
20448 "typetext" : "<string>"
20449 },
e9cd3bd4
TL
20450 "timeout" : {
20451 "default" : "max(30, vm memory in GiB)",
20452 "description" : "Wait maximal timeout seconds.",
20453 "minimum" : 0,
20454 "optional" : 1,
20455 "type" : "integer",
20456 "typetext" : "<integer> (0 - N)"
20457 },
4d47f125
TL
20458 "vmid" : {
20459 "description" : "The (unique) ID of the VM.",
20460 "format" : "pve-vmid",
20461 "minimum" : 1,
20462 "type" : "integer",
20463 "typetext" : "<integer> (1 - N)"
20464 }
20465 }
20466 },
20467 "permissions" : {
20468 "check" : [
20469 "perm",
20470 "/vms/{vmid}",
20471 [
20472 "VM.PowerMgmt"
20473 ]
20474 ]
20475 },
20476 "protected" : 1,
20477 "proxyto" : "node",
20478 "returns" : {
20479 "type" : "string"
20480 }
20481 }
20482 },
20483 "leaf" : 1,
20484 "path" : "/nodes/{node}/qemu/{vmid}/status/start",
20485 "text" : "start"
20486 },
20487 {
20488 "info" : {
20489 "POST" : {
e9cd3bd4 20490 "allowtoken" : 1,
4d47f125
TL
20491 "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",
20492 "method" : "POST",
20493 "name" : "vm_stop",
20494 "parameters" : {
20495 "additionalProperties" : 0,
20496 "properties" : {
20497 "keepActive" : {
20498 "default" : 0,
20499 "description" : "Do not deactivate storage volumes.",
20500 "optional" : 1,
20501 "type" : "boolean",
20502 "typetext" : "<boolean>"
20503 },
20504 "migratedfrom" : {
20505 "description" : "The cluster node name.",
20506 "format" : "pve-node",
20507 "optional" : 1,
20508 "type" : "string",
20509 "typetext" : "<string>"
20510 },
20511 "node" : {
20512 "description" : "The cluster node name.",
20513 "format" : "pve-node",
20514 "type" : "string",
20515 "typetext" : "<string>"
20516 },
20517 "skiplock" : {
20518 "description" : "Ignore locks - only root is allowed to use this option.",
20519 "optional" : 1,
20520 "type" : "boolean",
20521 "typetext" : "<boolean>"
20522 },
20523 "timeout" : {
20524 "description" : "Wait maximal timeout seconds.",
20525 "minimum" : 0,
20526 "optional" : 1,
20527 "type" : "integer",
20528 "typetext" : "<integer> (0 - N)"
20529 },
20530 "vmid" : {
20531 "description" : "The (unique) ID of the VM.",
20532 "format" : "pve-vmid",
20533 "minimum" : 1,
20534 "type" : "integer",
20535 "typetext" : "<integer> (1 - N)"
20536 }
20537 }
20538 },
20539 "permissions" : {
20540 "check" : [
20541 "perm",
20542 "/vms/{vmid}",
20543 [
20544 "VM.PowerMgmt"
20545 ]
20546 ]
20547 },
20548 "protected" : 1,
20549 "proxyto" : "node",
20550 "returns" : {
20551 "type" : "string"
20552 }
20553 }
20554 },
20555 "leaf" : 1,
20556 "path" : "/nodes/{node}/qemu/{vmid}/status/stop",
20557 "text" : "stop"
20558 },
20559 {
20560 "info" : {
20561 "POST" : {
e9cd3bd4 20562 "allowtoken" : 1,
4d47f125
TL
20563 "description" : "Reset virtual machine.",
20564 "method" : "POST",
20565 "name" : "vm_reset",
20566 "parameters" : {
20567 "additionalProperties" : 0,
20568 "properties" : {
20569 "node" : {
20570 "description" : "The cluster node name.",
20571 "format" : "pve-node",
20572 "type" : "string",
20573 "typetext" : "<string>"
20574 },
20575 "skiplock" : {
20576 "description" : "Ignore locks - only root is allowed to use this option.",
20577 "optional" : 1,
20578 "type" : "boolean",
20579 "typetext" : "<boolean>"
20580 },
20581 "vmid" : {
20582 "description" : "The (unique) ID of the VM.",
20583 "format" : "pve-vmid",
20584 "minimum" : 1,
20585 "type" : "integer",
20586 "typetext" : "<integer> (1 - N)"
20587 }
20588 }
20589 },
20590 "permissions" : {
20591 "check" : [
20592 "perm",
20593 "/vms/{vmid}",
20594 [
20595 "VM.PowerMgmt"
20596 ]
20597 ]
20598 },
20599 "protected" : 1,
20600 "proxyto" : "node",
20601 "returns" : {
20602 "type" : "string"
20603 }
20604 }
20605 },
20606 "leaf" : 1,
20607 "path" : "/nodes/{node}/qemu/{vmid}/status/reset",
20608 "text" : "reset"
20609 },
20610 {
20611 "info" : {
20612 "POST" : {
e9cd3bd4 20613 "allowtoken" : 1,
4d47f125
TL
20614 "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.",
20615 "method" : "POST",
20616 "name" : "vm_shutdown",
20617 "parameters" : {
20618 "additionalProperties" : 0,
20619 "properties" : {
20620 "forceStop" : {
20621 "default" : 0,
20622 "description" : "Make sure the VM stops.",
20623 "optional" : 1,
20624 "type" : "boolean",
20625 "typetext" : "<boolean>"
20626 },
20627 "keepActive" : {
20628 "default" : 0,
20629 "description" : "Do not deactivate storage volumes.",
20630 "optional" : 1,
20631 "type" : "boolean",
20632 "typetext" : "<boolean>"
20633 },
20634 "node" : {
20635 "description" : "The cluster node name.",
20636 "format" : "pve-node",
20637 "type" : "string",
20638 "typetext" : "<string>"
20639 },
20640 "skiplock" : {
20641 "description" : "Ignore locks - only root is allowed to use this option.",
20642 "optional" : 1,
20643 "type" : "boolean",
20644 "typetext" : "<boolean>"
20645 },
20646 "timeout" : {
20647 "description" : "Wait maximal timeout seconds.",
20648 "minimum" : 0,
20649 "optional" : 1,
20650 "type" : "integer",
20651 "typetext" : "<integer> (0 - N)"
20652 },
20653 "vmid" : {
20654 "description" : "The (unique) ID of the VM.",
20655 "format" : "pve-vmid",
20656 "minimum" : 1,
20657 "type" : "integer",
20658 "typetext" : "<integer> (1 - N)"
20659 }
20660 }
20661 },
20662 "permissions" : {
20663 "check" : [
20664 "perm",
20665 "/vms/{vmid}",
20666 [
20667 "VM.PowerMgmt"
20668 ]
20669 ]
20670 },
20671 "protected" : 1,
20672 "proxyto" : "node",
20673 "returns" : {
20674 "type" : "string"
20675 }
20676 }
20677 },
20678 "leaf" : 1,
20679 "path" : "/nodes/{node}/qemu/{vmid}/status/shutdown",
20680 "text" : "shutdown"
20681 },
1c532546
TL
20682 {
20683 "info" : {
20684 "POST" : {
e9cd3bd4 20685 "allowtoken" : 1,
1c532546
TL
20686 "description" : "Reboot the VM by shutting it down, and starting it again. Applies pending changes.",
20687 "method" : "POST",
20688 "name" : "vm_reboot",
20689 "parameters" : {
20690 "additionalProperties" : 0,
20691 "properties" : {
20692 "node" : {
20693 "description" : "The cluster node name.",
20694 "format" : "pve-node",
20695 "type" : "string",
20696 "typetext" : "<string>"
20697 },
20698 "timeout" : {
20699 "description" : "Wait maximal timeout seconds for the shutdown.",
20700 "minimum" : 0,
20701 "optional" : 1,
20702 "type" : "integer",
20703 "typetext" : "<integer> (0 - N)"
20704 },
20705 "vmid" : {
20706 "description" : "The (unique) ID of the VM.",
20707 "format" : "pve-vmid",
20708 "minimum" : 1,
20709 "type" : "integer",
20710 "typetext" : "<integer> (1 - N)"
20711 }
20712 }
20713 },
20714 "permissions" : {
20715 "check" : [
20716 "perm",
20717 "/vms/{vmid}",
20718 [
20719 "VM.PowerMgmt"
20720 ]
20721 ]
20722 },
20723 "protected" : 1,
20724 "proxyto" : "node",
20725 "returns" : {
20726 "type" : "string"
20727 }
20728 }
20729 },
20730 "leaf" : 1,
20731 "path" : "/nodes/{node}/qemu/{vmid}/status/reboot",
20732 "text" : "reboot"
20733 },
4d47f125
TL
20734 {
20735 "info" : {
20736 "POST" : {
e9cd3bd4 20737 "allowtoken" : 1,
4d47f125
TL
20738 "description" : "Suspend virtual machine.",
20739 "method" : "POST",
20740 "name" : "vm_suspend",
20741 "parameters" : {
20742 "additionalProperties" : 0,
20743 "properties" : {
20744 "node" : {
20745 "description" : "The cluster node name.",
20746 "format" : "pve-node",
20747 "type" : "string",
20748 "typetext" : "<string>"
20749 },
20750 "skiplock" : {
20751 "description" : "Ignore locks - only root is allowed to use this option.",
20752 "optional" : 1,
20753 "type" : "boolean",
20754 "typetext" : "<boolean>"
20755 },
95895385
TL
20756 "statestorage" : {
20757 "description" : "The storage for the VM state",
20758 "format" : "pve-storage-id",
20759 "optional" : 1,
20760 "requires" : "todisk",
20761 "type" : "string",
20762 "typetext" : "<string>"
20763 },
20764 "todisk" : {
20765 "default" : 0,
20766 "description" : "If set, suspends the VM to disk. Will be resumed on next VM start.",
20767 "optional" : 1,
20768 "type" : "boolean",
20769 "typetext" : "<boolean>"
20770 },
4d47f125
TL
20771 "vmid" : {
20772 "description" : "The (unique) ID of the VM.",
20773 "format" : "pve-vmid",
20774 "minimum" : 1,
20775 "type" : "integer",
20776 "typetext" : "<integer> (1 - N)"
20777 }
20778 }
20779 },
20780 "permissions" : {
20781 "check" : [
20782 "perm",
20783 "/vms/{vmid}",
20784 [
20785 "VM.PowerMgmt"
20786 ]
e9cd3bd4
TL
20787 ],
20788 "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
20789 },
20790 "protected" : 1,
20791 "proxyto" : "node",
20792 "returns" : {
20793 "type" : "string"
20794 }
20795 }
20796 },
20797 "leaf" : 1,
20798 "path" : "/nodes/{node}/qemu/{vmid}/status/suspend",
20799 "text" : "suspend"
20800 },
20801 {
20802 "info" : {
20803 "POST" : {
e9cd3bd4 20804 "allowtoken" : 1,
4d47f125
TL
20805 "description" : "Resume virtual machine.",
20806 "method" : "POST",
20807 "name" : "vm_resume",
20808 "parameters" : {
20809 "additionalProperties" : 0,
20810 "properties" : {
20811 "nocheck" : {
20812 "optional" : 1,
20813 "type" : "boolean",
20814 "typetext" : "<boolean>"
20815 },
20816 "node" : {
20817 "description" : "The cluster node name.",
20818 "format" : "pve-node",
20819 "type" : "string",
20820 "typetext" : "<string>"
20821 },
20822 "skiplock" : {
20823 "description" : "Ignore locks - only root is allowed to use this option.",
20824 "optional" : 1,
20825 "type" : "boolean",
20826 "typetext" : "<boolean>"
20827 },
20828 "vmid" : {
20829 "description" : "The (unique) ID of the VM.",
20830 "format" : "pve-vmid",
20831 "minimum" : 1,
20832 "type" : "integer",
20833 "typetext" : "<integer> (1 - N)"
20834 }
20835 }
20836 },
20837 "permissions" : {
20838 "check" : [
20839 "perm",
20840 "/vms/{vmid}",
20841 [
20842 "VM.PowerMgmt"
20843 ]
20844 ]
20845 },
20846 "protected" : 1,
20847 "proxyto" : "node",
20848 "returns" : {
20849 "type" : "string"
20850 }
20851 }
20852 },
20853 "leaf" : 1,
20854 "path" : "/nodes/{node}/qemu/{vmid}/status/resume",
20855 "text" : "resume"
20856 }
20857 ],
20858 "info" : {
20859 "GET" : {
e9cd3bd4 20860 "allowtoken" : 1,
4d47f125
TL
20861 "description" : "Directory index",
20862 "method" : "GET",
20863 "name" : "vmcmdidx",
20864 "parameters" : {
20865 "additionalProperties" : 0,
20866 "properties" : {
20867 "node" : {
20868 "description" : "The cluster node name.",
20869 "format" : "pve-node",
20870 "type" : "string",
20871 "typetext" : "<string>"
20872 },
20873 "vmid" : {
20874 "description" : "The (unique) ID of the VM.",
20875 "format" : "pve-vmid",
20876 "minimum" : 1,
20877 "type" : "integer",
20878 "typetext" : "<integer> (1 - N)"
20879 }
20880 }
20881 },
20882 "permissions" : {
20883 "user" : "all"
20884 },
20885 "proxyto" : "node",
20886 "returns" : {
20887 "items" : {
20888 "properties" : {
20889 "subdir" : {
20890 "type" : "string"
20891 }
20892 },
20893 "type" : "object"
20894 },
20895 "links" : [
20896 {
20897 "href" : "{subdir}",
20898 "rel" : "child"
20899 }
20900 ],
20901 "type" : "array"
20902 }
20903 }
20904 },
20905 "leaf" : 0,
20906 "path" : "/nodes/{node}/qemu/{vmid}/status",
20907 "text" : "status"
20908 },
20909 {
20910 "info" : {
20911 "PUT" : {
e9cd3bd4 20912 "allowtoken" : 1,
4d47f125
TL
20913 "description" : "Send key event to virtual machine.",
20914 "method" : "PUT",
20915 "name" : "vm_sendkey",
20916 "parameters" : {
20917 "additionalProperties" : 0,
20918 "properties" : {
20919 "key" : {
20920 "description" : "The key (qemu monitor encoding).",
20921 "type" : "string",
20922 "typetext" : "<string>"
20923 },
20924 "node" : {
20925 "description" : "The cluster node name.",
20926 "format" : "pve-node",
20927 "type" : "string",
20928 "typetext" : "<string>"
20929 },
20930 "skiplock" : {
20931 "description" : "Ignore locks - only root is allowed to use this option.",
20932 "optional" : 1,
20933 "type" : "boolean",
20934 "typetext" : "<boolean>"
20935 },
20936 "vmid" : {
20937 "description" : "The (unique) ID of the VM.",
20938 "format" : "pve-vmid",
20939 "minimum" : 1,
20940 "type" : "integer",
20941 "typetext" : "<integer> (1 - N)"
20942 }
20943 }
20944 },
20945 "permissions" : {
20946 "check" : [
20947 "perm",
20948 "/vms/{vmid}",
20949 [
20950 "VM.Console"
20951 ]
20952 ]
20953 },
20954 "protected" : 1,
20955 "proxyto" : "node",
20956 "returns" : {
20957 "type" : "null"
20958 }
20959 }
20960 },
20961 "leaf" : 1,
20962 "path" : "/nodes/{node}/qemu/{vmid}/sendkey",
20963 "text" : "sendkey"
20964 },
20965 {
20966 "info" : {
20967 "GET" : {
e9cd3bd4 20968 "allowtoken" : 1,
4d47f125
TL
20969 "description" : "Check if feature for virtual machine is available.",
20970 "method" : "GET",
20971 "name" : "vm_feature",
20972 "parameters" : {
20973 "additionalProperties" : 0,
20974 "properties" : {
20975 "feature" : {
20976 "description" : "Feature to check.",
20977 "enum" : [
20978 "snapshot",
20979 "clone",
20980 "copy"
20981 ],
20982 "type" : "string"
20983 },
20984 "node" : {
20985 "description" : "The cluster node name.",
20986 "format" : "pve-node",
20987 "type" : "string",
20988 "typetext" : "<string>"
20989 },
20990 "snapname" : {
20991 "description" : "The name of the snapshot.",
20992 "format" : "pve-configid",
20993 "maxLength" : 40,
20994 "optional" : 1,
20995 "type" : "string",
20996 "typetext" : "<string>"
20997 },
20998 "vmid" : {
20999 "description" : "The (unique) ID of the VM.",
21000 "format" : "pve-vmid",
21001 "minimum" : 1,
21002 "type" : "integer",
21003 "typetext" : "<integer> (1 - N)"
21004 }
21005 }
21006 },
21007 "permissions" : {
21008 "check" : [
21009 "perm",
21010 "/vms/{vmid}",
21011 [
21012 "VM.Audit"
21013 ]
21014 ]
21015 },
21016 "protected" : 1,
21017 "proxyto" : "node",
21018 "returns" : {
21019 "properties" : {
21020 "hasFeature" : {
21021 "type" : "boolean"
21022 },
21023 "nodes" : {
21024 "items" : {
21025 "type" : "string"
21026 },
21027 "type" : "array"
21028 }
21029 },
21030 "type" : "object"
21031 }
21032 }
21033 },
21034 "leaf" : 1,
21035 "path" : "/nodes/{node}/qemu/{vmid}/feature",
21036 "text" : "feature"
21037 },
21038 {
21039 "info" : {
21040 "POST" : {
e9cd3bd4 21041 "allowtoken" : 1,
4d47f125
TL
21042 "description" : "Create a copy of virtual machine/template.",
21043 "method" : "POST",
21044 "name" : "clone_vm",
21045 "parameters" : {
21046 "additionalProperties" : 0,
21047 "properties" : {
95895385
TL
21048 "bwlimit" : {
21049 "default" : "clone limit from datacenter or storage config",
21050 "description" : "Override I/O bandwidth limit (in KiB/s).",
21051 "minimum" : "0",
21052 "optional" : 1,
21053 "type" : "integer",
21054 "typetext" : "<integer> (0 - N)"
21055 },
4d47f125
TL
21056 "description" : {
21057 "description" : "Description for the new VM.",
21058 "optional" : 1,
21059 "type" : "string",
21060 "typetext" : "<string>"
21061 },
21062 "format" : {
21063 "description" : "Target format for file storage. Only valid for full clone.",
21064 "enum" : [
21065 "raw",
21066 "qcow2",
21067 "vmdk"
21068 ],
21069 "optional" : 1,
21070 "type" : "string"
21071 },
21072 "full" : {
21073 "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.",
21074 "optional" : 1,
21075 "type" : "boolean",
21076 "typetext" : "<boolean>"
21077 },
21078 "name" : {
21079 "description" : "Set a name for the new VM.",
21080 "format" : "dns-name",
21081 "optional" : 1,
21082 "type" : "string",
21083 "typetext" : "<string>"
21084 },
21085 "newid" : {
21086 "description" : "VMID for the clone.",
21087 "format" : "pve-vmid",
21088 "minimum" : 1,
21089 "type" : "integer",
21090 "typetext" : "<integer> (1 - N)"
21091 },
21092 "node" : {
21093 "description" : "The cluster node name.",
21094 "format" : "pve-node",
21095 "type" : "string",
21096 "typetext" : "<string>"
21097 },
21098 "pool" : {
21099 "description" : "Add the new VM to the specified pool.",
21100 "format" : "pve-poolid",
21101 "optional" : 1,
21102 "type" : "string",
21103 "typetext" : "<string>"
21104 },
21105 "snapname" : {
21106 "description" : "The name of the snapshot.",
21107 "format" : "pve-configid",
21108 "maxLength" : 40,
21109 "optional" : 1,
21110 "type" : "string",
21111 "typetext" : "<string>"
21112 },
21113 "storage" : {
21114 "description" : "Target storage for full clone.",
21115 "format" : "pve-storage-id",
21116 "optional" : 1,
21117 "type" : "string",
21118 "typetext" : "<string>"
21119 },
21120 "target" : {
21121 "description" : "Target node. Only allowed if the original VM is on shared storage.",
21122 "format" : "pve-node",
21123 "optional" : 1,
21124 "type" : "string",
21125 "typetext" : "<string>"
21126 },
21127 "vmid" : {
21128 "description" : "The (unique) ID of the VM.",
21129 "format" : "pve-vmid",
21130 "minimum" : 1,
21131 "type" : "integer",
21132 "typetext" : "<integer> (1 - N)"
21133 }
21134 }
21135 },
21136 "permissions" : {
21137 "check" : [
21138 "and",
21139 [
21140 "perm",
21141 "/vms/{vmid}",
21142 [
21143 "VM.Clone"
21144 ]
21145 ],
21146 [
21147 "or",
21148 [
21149 "perm",
21150 "/vms/{newid}",
21151 [
21152 "VM.Allocate"
21153 ]
21154 ],
21155 [
21156 "perm",
21157 "/pool/{pool}",
21158 [
21159 "VM.Allocate"
21160 ],
21161 "require_param",
21162 "pool"
21163 ]
21164 ]
21165 ],
21166 "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."
21167 },
21168 "protected" : 1,
21169 "proxyto" : "node",
21170 "returns" : {
21171 "type" : "string"
21172 }
21173 }
21174 },
21175 "leaf" : 1,
21176 "path" : "/nodes/{node}/qemu/{vmid}/clone",
21177 "text" : "clone"
21178 },
21179 {
21180 "info" : {
21181 "POST" : {
e9cd3bd4 21182 "allowtoken" : 1,
5370fa8c 21183 "description" : "Move volume to different storage or to a different VM.",
4d47f125
TL
21184 "method" : "POST",
21185 "name" : "move_vm_disk",
21186 "parameters" : {
21187 "additionalProperties" : 0,
21188 "properties" : {
95895385
TL
21189 "bwlimit" : {
21190 "default" : "move limit from datacenter or storage config",
21191 "description" : "Override I/O bandwidth limit (in KiB/s).",
21192 "minimum" : "0",
21193 "optional" : 1,
21194 "type" : "integer",
21195 "typetext" : "<integer> (0 - N)"
21196 },
4d47f125
TL
21197 "delete" : {
21198 "default" : 0,
21199 "description" : "Delete the original disk after successful copy. By default the original disk is kept as unused disk.",
21200 "optional" : 1,
21201 "type" : "boolean",
21202 "typetext" : "<boolean>"
21203 },
21204 "digest" : {
5370fa8c 21205 "description" : "Prevent changes if current configuration file has different SHA1\"\n\t\t .\" digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
21206 "maxLength" : 40,
21207 "optional" : 1,
21208 "type" : "string",
21209 "typetext" : "<string>"
21210 },
21211 "disk" : {
21212 "description" : "The disk you want to move.",
21213 "enum" : [
21214 "ide0",
21215 "ide1",
21216 "ide2",
21217 "ide3",
21218 "scsi0",
21219 "scsi1",
21220 "scsi2",
21221 "scsi3",
21222 "scsi4",
21223 "scsi5",
21224 "scsi6",
21225 "scsi7",
21226 "scsi8",
21227 "scsi9",
21228 "scsi10",
21229 "scsi11",
21230 "scsi12",
21231 "scsi13",
e9cd3bd4
TL
21232 "scsi14",
21233 "scsi15",
21234 "scsi16",
21235 "scsi17",
21236 "scsi18",
21237 "scsi19",
21238 "scsi20",
21239 "scsi21",
21240 "scsi22",
21241 "scsi23",
21242 "scsi24",
21243 "scsi25",
21244 "scsi26",
21245 "scsi27",
21246 "scsi28",
21247 "scsi29",
21248 "scsi30",
4d47f125
TL
21249 "virtio0",
21250 "virtio1",
21251 "virtio2",
21252 "virtio3",
21253 "virtio4",
21254 "virtio5",
21255 "virtio6",
21256 "virtio7",
21257 "virtio8",
21258 "virtio9",
21259 "virtio10",
21260 "virtio11",
21261 "virtio12",
21262 "virtio13",
21263 "virtio14",
21264 "virtio15",
21265 "sata0",
21266 "sata1",
21267 "sata2",
21268 "sata3",
21269 "sata4",
21270 "sata5",
5370fa8c
TL
21271 "efidisk0",
21272 "tpmstate0",
21273 "unused0",
21274 "unused1",
21275 "unused2",
21276 "unused3",
21277 "unused4",
21278 "unused5",
21279 "unused6",
21280 "unused7",
21281 "unused8",
21282 "unused9",
21283 "unused10",
21284 "unused11",
21285 "unused12",
21286 "unused13",
21287 "unused14",
21288 "unused15",
21289 "unused16",
21290 "unused17",
21291 "unused18",
21292 "unused19",
21293 "unused20",
21294 "unused21",
21295 "unused22",
21296 "unused23",
21297 "unused24",
21298 "unused25",
21299 "unused26",
21300 "unused27",
21301 "unused28",
21302 "unused29",
21303 "unused30",
21304 "unused31",
21305 "unused32",
21306 "unused33",
21307 "unused34",
21308 "unused35",
21309 "unused36",
21310 "unused37",
21311 "unused38",
21312 "unused39",
21313 "unused40",
21314 "unused41",
21315 "unused42",
21316 "unused43",
21317 "unused44",
21318 "unused45",
21319 "unused46",
21320 "unused47",
21321 "unused48",
21322 "unused49",
21323 "unused50",
21324 "unused51",
21325 "unused52",
21326 "unused53",
21327 "unused54",
21328 "unused55",
21329 "unused56",
21330 "unused57",
21331 "unused58",
21332 "unused59",
21333 "unused60",
21334 "unused61",
21335 "unused62",
21336 "unused63",
21337 "unused64",
21338 "unused65",
21339 "unused66",
21340 "unused67",
21341 "unused68",
21342 "unused69",
21343 "unused70",
21344 "unused71",
21345 "unused72",
21346 "unused73",
21347 "unused74",
21348 "unused75",
21349 "unused76",
21350 "unused77",
21351 "unused78",
21352 "unused79",
21353 "unused80",
21354 "unused81",
21355 "unused82",
21356 "unused83",
21357 "unused84",
21358 "unused85",
21359 "unused86",
21360 "unused87",
21361 "unused88",
21362 "unused89",
21363 "unused90",
21364 "unused91",
21365 "unused92",
21366 "unused93",
21367 "unused94",
21368 "unused95",
21369 "unused96",
21370 "unused97",
21371 "unused98",
21372 "unused99",
21373 "unused100",
21374 "unused101",
21375 "unused102",
21376 "unused103",
21377 "unused104",
21378 "unused105",
21379 "unused106",
21380 "unused107",
21381 "unused108",
21382 "unused109",
21383 "unused110",
21384 "unused111",
21385 "unused112",
21386 "unused113",
21387 "unused114",
21388 "unused115",
21389 "unused116",
21390 "unused117",
21391 "unused118",
21392 "unused119",
21393 "unused120",
21394 "unused121",
21395 "unused122",
21396 "unused123",
21397 "unused124",
21398 "unused125",
21399 "unused126",
21400 "unused127",
21401 "unused128",
21402 "unused129",
21403 "unused130",
21404 "unused131",
21405 "unused132",
21406 "unused133",
21407 "unused134",
21408 "unused135",
21409 "unused136",
21410 "unused137",
21411 "unused138",
21412 "unused139",
21413 "unused140",
21414 "unused141",
21415 "unused142",
21416 "unused143",
21417 "unused144",
21418 "unused145",
21419 "unused146",
21420 "unused147",
21421 "unused148",
21422 "unused149",
21423 "unused150",
21424 "unused151",
21425 "unused152",
21426 "unused153",
21427 "unused154",
21428 "unused155",
21429 "unused156",
21430 "unused157",
21431 "unused158",
21432 "unused159",
21433 "unused160",
21434 "unused161",
21435 "unused162",
21436 "unused163",
21437 "unused164",
21438 "unused165",
21439 "unused166",
21440 "unused167",
21441 "unused168",
21442 "unused169",
21443 "unused170",
21444 "unused171",
21445 "unused172",
21446 "unused173",
21447 "unused174",
21448 "unused175",
21449 "unused176",
21450 "unused177",
21451 "unused178",
21452 "unused179",
21453 "unused180",
21454 "unused181",
21455 "unused182",
21456 "unused183",
21457 "unused184",
21458 "unused185",
21459 "unused186",
21460 "unused187",
21461 "unused188",
21462 "unused189",
21463 "unused190",
21464 "unused191",
21465 "unused192",
21466 "unused193",
21467 "unused194",
21468 "unused195",
21469 "unused196",
21470 "unused197",
21471 "unused198",
21472 "unused199",
21473 "unused200",
21474 "unused201",
21475 "unused202",
21476 "unused203",
21477 "unused204",
21478 "unused205",
21479 "unused206",
21480 "unused207",
21481 "unused208",
21482 "unused209",
21483 "unused210",
21484 "unused211",
21485 "unused212",
21486 "unused213",
21487 "unused214",
21488 "unused215",
21489 "unused216",
21490 "unused217",
21491 "unused218",
21492 "unused219",
21493 "unused220",
21494 "unused221",
21495 "unused222",
21496 "unused223",
21497 "unused224",
21498 "unused225",
21499 "unused226",
21500 "unused227",
21501 "unused228",
21502 "unused229",
21503 "unused230",
21504 "unused231",
21505 "unused232",
21506 "unused233",
21507 "unused234",
21508 "unused235",
21509 "unused236",
21510 "unused237",
21511 "unused238",
21512 "unused239",
21513 "unused240",
21514 "unused241",
21515 "unused242",
21516 "unused243",
21517 "unused244",
21518 "unused245",
21519 "unused246",
21520 "unused247",
21521 "unused248",
21522 "unused249",
21523 "unused250",
21524 "unused251",
21525 "unused252",
21526 "unused253",
21527 "unused254",
21528 "unused255"
4d47f125
TL
21529 ],
21530 "type" : "string"
21531 },
21532 "format" : {
21533 "description" : "Target Format.",
21534 "enum" : [
21535 "raw",
21536 "qcow2",
21537 "vmdk"
21538 ],
21539 "optional" : 1,
21540 "type" : "string"
21541 },
21542 "node" : {
21543 "description" : "The cluster node name.",
21544 "format" : "pve-node",
21545 "type" : "string",
21546 "typetext" : "<string>"
21547 },
21548 "storage" : {
21549 "description" : "Target storage.",
21550 "format" : "pve-storage-id",
5370fa8c 21551 "optional" : 1,
4d47f125
TL
21552 "type" : "string",
21553 "typetext" : "<string>"
21554 },
5370fa8c
TL
21555 "target-digest" : {
21556 "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.",
21557 "maxLength" : 40,
21558 "optional" : 1,
21559 "type" : "string",
21560 "typetext" : "<string>"
21561 },
21562 "target-disk" : {
21563 "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.",
21564 "enum" : [
21565 "ide0",
21566 "ide1",
21567 "ide2",
21568 "ide3",
21569 "scsi0",
21570 "scsi1",
21571 "scsi2",
21572 "scsi3",
21573 "scsi4",
21574 "scsi5",
21575 "scsi6",
21576 "scsi7",
21577 "scsi8",
21578 "scsi9",
21579 "scsi10",
21580 "scsi11",
21581 "scsi12",
21582 "scsi13",
21583 "scsi14",
21584 "scsi15",
21585 "scsi16",
21586 "scsi17",
21587 "scsi18",
21588 "scsi19",
21589 "scsi20",
21590 "scsi21",
21591 "scsi22",
21592 "scsi23",
21593 "scsi24",
21594 "scsi25",
21595 "scsi26",
21596 "scsi27",
21597 "scsi28",
21598 "scsi29",
21599 "scsi30",
21600 "virtio0",
21601 "virtio1",
21602 "virtio2",
21603 "virtio3",
21604 "virtio4",
21605 "virtio5",
21606 "virtio6",
21607 "virtio7",
21608 "virtio8",
21609 "virtio9",
21610 "virtio10",
21611 "virtio11",
21612 "virtio12",
21613 "virtio13",
21614 "virtio14",
21615 "virtio15",
21616 "sata0",
21617 "sata1",
21618 "sata2",
21619 "sata3",
21620 "sata4",
21621 "sata5",
21622 "efidisk0",
21623 "tpmstate0",
21624 "unused0",
21625 "unused1",
21626 "unused2",
21627 "unused3",
21628 "unused4",
21629 "unused5",
21630 "unused6",
21631 "unused7",
21632 "unused8",
21633 "unused9",
21634 "unused10",
21635 "unused11",
21636 "unused12",
21637 "unused13",
21638 "unused14",
21639 "unused15",
21640 "unused16",
21641 "unused17",
21642 "unused18",
21643 "unused19",
21644 "unused20",
21645 "unused21",
21646 "unused22",
21647 "unused23",
21648 "unused24",
21649 "unused25",
21650 "unused26",
21651 "unused27",
21652 "unused28",
21653 "unused29",
21654 "unused30",
21655 "unused31",
21656 "unused32",
21657 "unused33",
21658 "unused34",
21659 "unused35",
21660 "unused36",
21661 "unused37",
21662 "unused38",
21663 "unused39",
21664 "unused40",
21665 "unused41",
21666 "unused42",
21667 "unused43",
21668 "unused44",
21669 "unused45",
21670 "unused46",
21671 "unused47",
21672 "unused48",
21673 "unused49",
21674 "unused50",
21675 "unused51",
21676 "unused52",
21677 "unused53",
21678 "unused54",
21679 "unused55",
21680 "unused56",
21681 "unused57",
21682 "unused58",
21683 "unused59",
21684 "unused60",
21685 "unused61",
21686 "unused62",
21687 "unused63",
21688 "unused64",
21689 "unused65",
21690 "unused66",
21691 "unused67",
21692 "unused68",
21693 "unused69",
21694 "unused70",
21695 "unused71",
21696 "unused72",
21697 "unused73",
21698 "unused74",
21699 "unused75",
21700 "unused76",
21701 "unused77",
21702 "unused78",
21703 "unused79",
21704 "unused80",
21705 "unused81",
21706 "unused82",
21707 "unused83",
21708 "unused84",
21709 "unused85",
21710 "unused86",
21711 "unused87",
21712 "unused88",
21713 "unused89",
21714 "unused90",
21715 "unused91",
21716 "unused92",
21717 "unused93",
21718 "unused94",
21719 "unused95",
21720 "unused96",
21721 "unused97",
21722 "unused98",
21723 "unused99",
21724 "unused100",
21725 "unused101",
21726 "unused102",
21727 "unused103",
21728 "unused104",
21729 "unused105",
21730 "unused106",
21731 "unused107",
21732 "unused108",
21733 "unused109",
21734 "unused110",
21735 "unused111",
21736 "unused112",
21737 "unused113",
21738 "unused114",
21739 "unused115",
21740 "unused116",
21741 "unused117",
21742 "unused118",
21743 "unused119",
21744 "unused120",
21745 "unused121",
21746 "unused122",
21747 "unused123",
21748 "unused124",
21749 "unused125",
21750 "unused126",
21751 "unused127",
21752 "unused128",
21753 "unused129",
21754 "unused130",
21755 "unused131",
21756 "unused132",
21757 "unused133",
21758 "unused134",
21759 "unused135",
21760 "unused136",
21761 "unused137",
21762 "unused138",
21763 "unused139",
21764 "unused140",
21765 "unused141",
21766 "unused142",
21767 "unused143",
21768 "unused144",
21769 "unused145",
21770 "unused146",
21771 "unused147",
21772 "unused148",
21773 "unused149",
21774 "unused150",
21775 "unused151",
21776 "unused152",
21777 "unused153",
21778 "unused154",
21779 "unused155",
21780 "unused156",
21781 "unused157",
21782 "unused158",
21783 "unused159",
21784 "unused160",
21785 "unused161",
21786 "unused162",
21787 "unused163",
21788 "unused164",
21789 "unused165",
21790 "unused166",
21791 "unused167",
21792 "unused168",
21793 "unused169",
21794 "unused170",
21795 "unused171",
21796 "unused172",
21797 "unused173",
21798 "unused174",
21799 "unused175",
21800 "unused176",
21801 "unused177",
21802 "unused178",
21803 "unused179",
21804 "unused180",
21805 "unused181",
21806 "unused182",
21807 "unused183",
21808 "unused184",
21809 "unused185",
21810 "unused186",
21811 "unused187",
21812 "unused188",
21813 "unused189",
21814 "unused190",
21815 "unused191",
21816 "unused192",
21817 "unused193",
21818 "unused194",
21819 "unused195",
21820 "unused196",
21821 "unused197",
21822 "unused198",
21823 "unused199",
21824 "unused200",
21825 "unused201",
21826 "unused202",
21827 "unused203",
21828 "unused204",
21829 "unused205",
21830 "unused206",
21831 "unused207",
21832 "unused208",
21833 "unused209",
21834 "unused210",
21835 "unused211",
21836 "unused212",
21837 "unused213",
21838 "unused214",
21839 "unused215",
21840 "unused216",
21841 "unused217",
21842 "unused218",
21843 "unused219",
21844 "unused220",
21845 "unused221",
21846 "unused222",
21847 "unused223",
21848 "unused224",
21849 "unused225",
21850 "unused226",
21851 "unused227",
21852 "unused228",
21853 "unused229",
21854 "unused230",
21855 "unused231",
21856 "unused232",
21857 "unused233",
21858 "unused234",
21859 "unused235",
21860 "unused236",
21861 "unused237",
21862 "unused238",
21863 "unused239",
21864 "unused240",
21865 "unused241",
21866 "unused242",
21867 "unused243",
21868 "unused244",
21869 "unused245",
21870 "unused246",
21871 "unused247",
21872 "unused248",
21873 "unused249",
21874 "unused250",
21875 "unused251",
21876 "unused252",
21877 "unused253",
21878 "unused254",
21879 "unused255"
21880 ],
21881 "optional" : 1,
21882 "type" : "string"
21883 },
21884 "target-vmid" : {
21885 "description" : "The (unique) ID of the VM.",
21886 "format" : "pve-vmid",
21887 "minimum" : 1,
21888 "optional" : 1,
21889 "type" : "integer",
21890 "typetext" : "<integer> (1 - N)"
21891 },
4d47f125
TL
21892 "vmid" : {
21893 "description" : "The (unique) ID of the VM.",
21894 "format" : "pve-vmid",
21895 "minimum" : 1,
21896 "type" : "integer",
21897 "typetext" : "<integer> (1 - N)"
21898 }
21899 }
21900 },
21901 "permissions" : {
21902 "check" : [
5370fa8c
TL
21903 "perm",
21904 "/vms/{vmid}",
4d47f125 21905 [
5370fa8c 21906 "VM.Config.Disk"
4d47f125
TL
21907 ]
21908 ],
5370fa8c 21909 "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
21910 },
21911 "protected" : 1,
21912 "proxyto" : "node",
21913 "returns" : {
21914 "description" : "the task ID.",
21915 "type" : "string"
21916 }
21917 }
21918 },
21919 "leaf" : 1,
21920 "path" : "/nodes/{node}/qemu/{vmid}/move_disk",
21921 "text" : "move_disk"
21922 },
21923 {
21924 "info" : {
1e3f8156 21925 "GET" : {
e9cd3bd4 21926 "allowtoken" : 1,
1e3f8156
TL
21927 "description" : "Get preconditions for migration.",
21928 "method" : "GET",
21929 "name" : "migrate_vm_precondition",
21930 "parameters" : {
21931 "additionalProperties" : 0,
21932 "properties" : {
21933 "node" : {
21934 "description" : "The cluster node name.",
21935 "format" : "pve-node",
21936 "type" : "string",
21937 "typetext" : "<string>"
21938 },
21939 "target" : {
21940 "description" : "Target node.",
21941 "format" : "pve-node",
21942 "optional" : 1,
21943 "type" : "string",
21944 "typetext" : "<string>"
21945 },
21946 "vmid" : {
21947 "description" : "The (unique) ID of the VM.",
21948 "format" : "pve-vmid",
21949 "minimum" : 1,
21950 "type" : "integer",
21951 "typetext" : "<integer> (1 - N)"
21952 }
21953 }
21954 },
21955 "permissions" : {
21956 "check" : [
21957 "perm",
21958 "/vms/{vmid}",
21959 [
21960 "VM.Migrate"
21961 ]
21962 ]
21963 },
21964 "protected" : 1,
21965 "proxyto" : "node",
21966 "returns" : {
21967 "properties" : {
21968 "allowed_nodes" : {
9226ccbc 21969 "description" : "List nodes allowed for offline migration, only passed if VM is offline",
1e3f8156
TL
21970 "optional" : 1,
21971 "type" : "array"
21972 },
21973 "local_disks" : {
21974 "description" : "List local disks including CD-Rom, unsused and not referenced disks",
21975 "type" : "array"
21976 },
21977 "local_resources" : {
21978 "description" : "List local resources e.g. pci, usb",
21979 "type" : "array"
21980 },
9226ccbc
TL
21981 "not_allowed_nodes" : {
21982 "description" : "List not allowed nodes with additional informations, only passed if VM is offline",
21983 "optional" : 1,
21984 "type" : "object"
21985 },
1e3f8156
TL
21986 "running" : {
21987 "type" : "boolean"
21988 }
21989 },
21990 "type" : "object"
21991 }
21992 },
4d47f125 21993 "POST" : {
e9cd3bd4 21994 "allowtoken" : 1,
4d47f125
TL
21995 "description" : "Migrate virtual machine. Creates a new migration task.",
21996 "method" : "POST",
21997 "name" : "migrate_vm",
21998 "parameters" : {
21999 "additionalProperties" : 0,
22000 "properties" : {
95895385
TL
22001 "bwlimit" : {
22002 "default" : "migrate limit from datacenter or storage config",
22003 "description" : "Override I/O bandwidth limit (in KiB/s).",
22004 "minimum" : "0",
22005 "optional" : 1,
22006 "type" : "integer",
22007 "typetext" : "<integer> (0 - N)"
22008 },
4d47f125
TL
22009 "force" : {
22010 "description" : "Allow to migrate VMs which use local devices. Only root may use this option.",
22011 "optional" : 1,
22012 "type" : "boolean",
22013 "typetext" : "<boolean>"
22014 },
22015 "migration_network" : {
22016 "description" : "CIDR of the (sub) network that is used for migration.",
22017 "format" : "CIDR",
22018 "optional" : 1,
22019 "type" : "string",
22020 "typetext" : "<string>"
22021 },
22022 "migration_type" : {
22023 "description" : "Migration traffic is encrypted using an SSH tunnel by default. On secure, completely private networks this can be disabled to increase performance.",
22024 "enum" : [
22025 "secure",
22026 "insecure"
22027 ],
22028 "optional" : 1,
22029 "type" : "string"
22030 },
22031 "node" : {
22032 "description" : "The cluster node name.",
22033 "format" : "pve-node",
22034 "type" : "string",
22035 "typetext" : "<string>"
22036 },
22037 "online" : {
1c532546 22038 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
4d47f125
TL
22039 "optional" : 1,
22040 "type" : "boolean",
22041 "typetext" : "<boolean>"
22042 },
22043 "target" : {
22044 "description" : "Target node.",
22045 "format" : "pve-node",
22046 "type" : "string",
22047 "typetext" : "<string>"
22048 },
22049 "targetstorage" : {
c5aa7e14 22050 "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 22051 "format" : "storage-pair-list",
4d47f125 22052 "optional" : 1,
52e44c50
FG
22053 "type" : "string",
22054 "typetext" : "<string>"
22055 },
7aacca6f 22056 "vmid" : {
7aacca6f 22057 "description" : "The (unique) ID of the VM.",
44660702 22058 "format" : "pve-vmid",
7aacca6f 22059 "minimum" : 1,
4bd7df8b 22060 "type" : "integer",
013dc89f 22061 "typetext" : "<integer> (1 - N)"
52e44c50
FG
22062 },
22063 "with-local-disks" : {
22064 "description" : "Enable live storage migration for local disk",
22065 "optional" : 1,
22066 "type" : "boolean",
22067 "typetext" : "<boolean>"
56122987 22068 }
44660702
DM
22069 }
22070 },
22071 "permissions" : {
22072 "check" : [
22073 "perm",
22074 "/vms/{vmid}",
22075 [
22076 "VM.Migrate"
22077 ]
22078 ]
56122987
DM
22079 },
22080 "protected" : 1,
44660702
DM
22081 "proxyto" : "node",
22082 "returns" : {
22083 "description" : "the task ID.",
22084 "type" : "string"
22085 }
56122987 22086 }
7aacca6f 22087 },
44660702
DM
22088 "leaf" : 1,
22089 "path" : "/nodes/{node}/qemu/{vmid}/migrate",
7aacca6f 22090 "text" : "migrate"
56122987 22091 },
81a3384d
TL
22092 {
22093 "info" : {
22094 "POST" : {
22095 "allowtoken" : 1,
22096 "description" : "Migrate virtual machine to a remote cluster. Creates a new migration task. EXPERIMENTAL feature!",
22097 "method" : "POST",
22098 "name" : "remote_migrate_vm",
22099 "parameters" : {
22100 "additionalProperties" : 0,
22101 "properties" : {
22102 "bwlimit" : {
22103 "default" : "migrate limit from datacenter or storage config",
22104 "description" : "Override I/O bandwidth limit (in KiB/s).",
22105 "minimum" : "0",
22106 "optional" : 1,
22107 "type" : "integer",
22108 "typetext" : "<integer> (0 - N)"
22109 },
22110 "delete" : {
22111 "default" : 0,
22112 "description" : "Delete the original VM and related data after successful migration. By default the original VM is kept on the source cluster in a stopped state.",
22113 "optional" : 1,
22114 "type" : "boolean",
22115 "typetext" : "<boolean>"
22116 },
22117 "node" : {
22118 "description" : "The cluster node name.",
22119 "format" : "pve-node",
22120 "type" : "string",
22121 "typetext" : "<string>"
22122 },
22123 "online" : {
22124 "description" : "Use online/live migration if VM is running. Ignored if VM is stopped.",
22125 "optional" : 1,
22126 "type" : "boolean",
22127 "typetext" : "<boolean>"
22128 },
22129 "target-bridge" : {
22130 "description" : "Mapping from source to target bridges. Providing only a single bridge ID maps all source bridges to that bridge. Providing the special value '1' will map each source bridge to itself.",
22131 "format" : "bridge-pair-list",
22132 "type" : "string",
22133 "typetext" : "<string>"
22134 },
22135 "target-endpoint" : {
22136 "description" : "Remote target endpoint",
22137 "format" : "proxmox-remote",
22138 "type" : "string",
22139 "typetext" : "apitoken=<A full Proxmox API token including the secret value.> ,host=<Remote Proxmox hostname or IP> [,fingerprint=<Remote host's certificate fingerprint, if not trusted by system store.>] [,port=<integer>]"
22140 },
22141 "target-storage" : {
22142 "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.",
22143 "format" : "storage-pair-list",
22144 "optional" : 0,
22145 "type" : "string",
22146 "typetext" : "<string>"
22147 },
22148 "target-vmid" : {
22149 "description" : "The (unique) ID of the VM.",
22150 "format" : "pve-vmid",
22151 "minimum" : 1,
22152 "optional" : 1,
22153 "type" : "integer",
22154 "typetext" : "<integer> (1 - N)"
22155 },
22156 "vmid" : {
22157 "description" : "The (unique) ID of the VM.",
22158 "format" : "pve-vmid",
22159 "minimum" : 1,
22160 "type" : "integer",
22161 "typetext" : "<integer> (1 - N)"
22162 }
22163 }
22164 },
22165 "permissions" : {
22166 "check" : [
22167 "perm",
22168 "/vms/{vmid}",
22169 [
22170 "VM.Migrate"
22171 ]
22172 ]
22173 },
22174 "protected" : 1,
22175 "proxyto" : "node",
22176 "returns" : {
22177 "description" : "the task ID.",
22178 "type" : "string"
22179 }
22180 }
22181 },
22182 "leaf" : 1,
22183 "path" : "/nodes/{node}/qemu/{vmid}/remote_migrate",
22184 "text" : "remote_migrate"
22185 },
56122987
DM
22186 {
22187 "info" : {
22188 "POST" : {
e9cd3bd4 22189 "allowtoken" : 1,
44660702 22190 "description" : "Execute Qemu monitor commands.",
56122987 22191 "method" : "POST",
44660702 22192 "name" : "monitor",
56122987 22193 "parameters" : {
7aacca6f 22194 "additionalProperties" : 0,
56122987 22195 "properties" : {
44660702
DM
22196 "command" : {
22197 "description" : "The monitor command.",
013dc89f
DM
22198 "type" : "string",
22199 "typetext" : "<string>"
44660702 22200 },
56122987 22201 "node" : {
44660702 22202 "description" : "The cluster node name.",
7aacca6f 22203 "format" : "pve-node",
013dc89f
DM
22204 "type" : "string",
22205 "typetext" : "<string>"
56122987
DM
22206 },
22207 "vmid" : {
44660702 22208 "description" : "The (unique) ID of the VM.",
56122987 22209 "format" : "pve-vmid",
7aacca6f 22210 "minimum" : 1,
4bd7df8b 22211 "type" : "integer",
013dc89f 22212 "typetext" : "<integer> (1 - N)"
56122987 22213 }
7aacca6f 22214 }
56122987 22215 },
56122987
DM
22216 "permissions" : {
22217 "check" : [
22218 "perm",
22219 "/vms/{vmid}",
22220 [
22221 "VM.Monitor"
22222 ]
32d876b5
DM
22223 ],
22224 "description" : "Sys.Modify is required for (sub)commands which are not read-only ('info *' and 'help')"
7aacca6f 22225 },
44660702
DM
22226 "protected" : 1,
22227 "proxyto" : "node",
22228 "returns" : {
22229 "type" : "string"
22230 }
56122987 22231 }
44660702
DM
22232 },
22233 "leaf" : 1,
22234 "path" : "/nodes/{node}/qemu/{vmid}/monitor",
22235 "text" : "monitor"
56122987
DM
22236 },
22237 {
56122987
DM
22238 "info" : {
22239 "PUT" : {
e9cd3bd4 22240 "allowtoken" : 1,
44660702
DM
22241 "description" : "Extend volume size.",
22242 "method" : "PUT",
22243 "name" : "resize_vm",
56122987 22244 "parameters" : {
44660702 22245 "additionalProperties" : 0,
56122987 22246 "properties" : {
44660702
DM
22247 "digest" : {
22248 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
22249 "maxLength" : 40,
22250 "optional" : 1,
013dc89f
DM
22251 "type" : "string",
22252 "typetext" : "<string>"
56122987 22253 },
56122987
DM
22254 "disk" : {
22255 "description" : "The disk you want to resize.",
22256 "enum" : [
22257 "ide0",
22258 "ide1",
22259 "ide2",
22260 "ide3",
22261 "scsi0",
22262 "scsi1",
22263 "scsi2",
22264 "scsi3",
22265 "scsi4",
22266 "scsi5",
22267 "scsi6",
22268 "scsi7",
22269 "scsi8",
22270 "scsi9",
22271 "scsi10",
22272 "scsi11",
22273 "scsi12",
22274 "scsi13",
e9cd3bd4
TL
22275 "scsi14",
22276 "scsi15",
22277 "scsi16",
22278 "scsi17",
22279 "scsi18",
22280 "scsi19",
22281 "scsi20",
22282 "scsi21",
22283 "scsi22",
22284 "scsi23",
22285 "scsi24",
22286 "scsi25",
22287 "scsi26",
22288 "scsi27",
22289 "scsi28",
22290 "scsi29",
22291 "scsi30",
56122987
DM
22292 "virtio0",
22293 "virtio1",
22294 "virtio2",
22295 "virtio3",
22296 "virtio4",
22297 "virtio5",
22298 "virtio6",
22299 "virtio7",
22300 "virtio8",
22301 "virtio9",
22302 "virtio10",
22303 "virtio11",
22304 "virtio12",
22305 "virtio13",
22306 "virtio14",
22307 "virtio15",
22308 "sata0",
22309 "sata1",
22310 "sata2",
22311 "sata3",
22312 "sata4",
2c0dde61 22313 "sata5",
5370fa8c
TL
22314 "efidisk0",
22315 "tpmstate0"
44660702
DM
22316 ],
22317 "type" : "string"
56122987 22318 },
44660702
DM
22319 "node" : {
22320 "description" : "The cluster node name.",
22321 "format" : "pve-node",
013dc89f
DM
22322 "type" : "string",
22323 "typetext" : "<string>"
7aacca6f 22324 },
44660702 22325 "size" : {
5d9c884c 22326 "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
22327 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
22328 "type" : "string"
56122987
DM
22329 },
22330 "skiplock" : {
22331 "description" : "Ignore locks - only root is allowed to use this option.",
22332 "optional" : 1,
013dc89f
DM
22333 "type" : "boolean",
22334 "typetext" : "<boolean>"
56122987
DM
22335 },
22336 "vmid" : {
7aacca6f 22337 "description" : "The (unique) ID of the VM.",
56122987 22338 "format" : "pve-vmid",
44660702 22339 "minimum" : 1,
4bd7df8b 22340 "type" : "integer",
013dc89f 22341 "typetext" : "<integer> (1 - N)"
56122987
DM
22342 }
22343 }
22344 },
22345 "permissions" : {
22346 "check" : [
22347 "perm",
22348 "/vms/{vmid}",
22349 [
44660702 22350 "VM.Config.Disk"
56122987
DM
22351 ]
22352 ]
22353 },
7aacca6f 22354 "protected" : 1,
7aacca6f 22355 "proxyto" : "node",
44660702
DM
22356 "returns" : {
22357 "type" : "null"
22358 }
7aacca6f
DM
22359 }
22360 },
44660702
DM
22361 "leaf" : 1,
22362 "path" : "/nodes/{node}/qemu/{vmid}/resize",
22363 "text" : "resize"
22364 },
22365 {
56122987
DM
22366 "children" : [
22367 {
22368 "children" : [
22369 {
56122987 22370 "info" : {
44660702 22371 "GET" : {
e9cd3bd4 22372 "allowtoken" : 1,
44660702
DM
22373 "description" : "Get snapshot configuration",
22374 "method" : "GET",
22375 "name" : "get_snapshot_config",
56122987 22376 "parameters" : {
44660702 22377 "additionalProperties" : 0,
56122987 22378 "properties" : {
56122987 22379 "node" : {
44660702 22380 "description" : "The cluster node name.",
56122987 22381 "format" : "pve-node",
013dc89f
DM
22382 "type" : "string",
22383 "typetext" : "<string>"
7aacca6f
DM
22384 },
22385 "snapname" : {
44660702 22386 "description" : "The name of the snapshot.",
7aacca6f 22387 "format" : "pve-configid",
44660702 22388 "maxLength" : 40,
013dc89f
DM
22389 "type" : "string",
22390 "typetext" : "<string>"
7aacca6f
DM
22391 },
22392 "vmid" : {
44660702 22393 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
22394 "format" : "pve-vmid",
22395 "minimum" : 1,
4bd7df8b 22396 "type" : "integer",
013dc89f 22397 "typetext" : "<integer> (1 - N)"
56122987 22398 }
44660702 22399 }
56122987
DM
22400 },
22401 "permissions" : {
22402 "check" : [
22403 "perm",
22404 "/vms/{vmid}",
22405 [
2489d6df 22406 "VM.Snapshot",
e9cd3bd4
TL
22407 "VM.Snapshot.Rollback",
22408 "VM.Audit"
2489d6df
WB
22409 ],
22410 "any",
22411 1
56122987
DM
22412 ]
22413 },
44660702 22414 "proxyto" : "node",
56122987 22415 "returns" : {
44660702 22416 "type" : "object"
7aacca6f
DM
22417 }
22418 },
44660702 22419 "PUT" : {
e9cd3bd4 22420 "allowtoken" : 1,
44660702
DM
22421 "description" : "Update snapshot metadata.",
22422 "method" : "PUT",
22423 "name" : "update_snapshot_config",
56122987 22424 "parameters" : {
44660702 22425 "additionalProperties" : 0,
56122987 22426 "properties" : {
44660702
DM
22427 "description" : {
22428 "description" : "A textual description or comment.",
22429 "optional" : 1,
013dc89f
DM
22430 "type" : "string",
22431 "typetext" : "<string>"
44660702 22432 },
56122987 22433 "node" : {
7aacca6f 22434 "description" : "The cluster node name.",
44660702 22435 "format" : "pve-node",
013dc89f
DM
22436 "type" : "string",
22437 "typetext" : "<string>"
56122987 22438 },
56122987
DM
22439 "snapname" : {
22440 "description" : "The name of the snapshot.",
44660702 22441 "format" : "pve-configid",
7aacca6f 22442 "maxLength" : 40,
013dc89f
DM
22443 "type" : "string",
22444 "typetext" : "<string>"
7aacca6f
DM
22445 },
22446 "vmid" : {
22447 "description" : "The (unique) ID of the VM.",
44660702 22448 "format" : "pve-vmid",
7aacca6f 22449 "minimum" : 1,
4bd7df8b 22450 "type" : "integer",
013dc89f 22451 "typetext" : "<integer> (1 - N)"
56122987 22452 }
44660702 22453 }
56122987 22454 },
7aacca6f
DM
22455 "permissions" : {
22456 "check" : [
22457 "perm",
22458 "/vms/{vmid}",
22459 [
22460 "VM.Snapshot"
22461 ]
22462 ]
44660702
DM
22463 },
22464 "protected" : 1,
22465 "proxyto" : "node",
22466 "returns" : {
22467 "type" : "null"
7aacca6f 22468 }
56122987
DM
22469 }
22470 },
44660702 22471 "leaf" : 1,
7aacca6f 22472 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/config",
44660702 22473 "text" : "config"
56122987
DM
22474 },
22475 {
56122987
DM
22476 "info" : {
22477 "POST" : {
e9cd3bd4 22478 "allowtoken" : 1,
44660702 22479 "description" : "Rollback VM state to specified snapshot.",
7aacca6f 22480 "method" : "POST",
44660702 22481 "name" : "rollback",
56122987
DM
22482 "parameters" : {
22483 "additionalProperties" : 0,
22484 "properties" : {
44660702
DM
22485 "node" : {
22486 "description" : "The cluster node name.",
22487 "format" : "pve-node",
013dc89f
DM
22488 "type" : "string",
22489 "typetext" : "<string>"
44660702 22490 },
56122987 22491 "snapname" : {
44660702 22492 "description" : "The name of the snapshot.",
56122987
DM
22493 "format" : "pve-configid",
22494 "maxLength" : 40,
013dc89f
DM
22495 "type" : "string",
22496 "typetext" : "<string>"
7aacca6f 22497 },
4e7f60c2
TL
22498 "start" : {
22499 "default" : 0,
22500 "description" : "Whether the VM should get started after rolling back successfully",
22501 "optional" : 1,
22502 "type" : "boolean",
22503 "typetext" : "<boolean>"
22504 },
56122987 22505 "vmid" : {
7aacca6f 22506 "description" : "The (unique) ID of the VM.",
44660702 22507 "format" : "pve-vmid",
56122987 22508 "minimum" : 1,
4bd7df8b 22509 "type" : "integer",
013dc89f 22510 "typetext" : "<integer> (1 - N)"
56122987
DM
22511 }
22512 }
22513 },
7aacca6f 22514 "permissions" : {
56122987
DM
22515 "check" : [
22516 "perm",
22517 "/vms/{vmid}",
22518 [
2489d6df
WB
22519 "VM.Snapshot",
22520 "VM.Snapshot.Rollback"
22521 ],
22522 "any",
22523 1
56122987
DM
22524 ]
22525 },
44660702 22526 "protected" : 1,
7aacca6f 22527 "proxyto" : "node",
44660702
DM
22528 "returns" : {
22529 "description" : "the task ID.",
22530 "type" : "string"
22531 }
56122987
DM
22532 }
22533 },
44660702
DM
22534 "leaf" : 1,
22535 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}/rollback",
7aacca6f 22536 "text" : "rollback"
56122987 22537 }
44660702
DM
22538 ],
22539 "info" : {
22540 "DELETE" : {
e9cd3bd4 22541 "allowtoken" : 1,
44660702
DM
22542 "description" : "Delete a VM snapshot.",
22543 "method" : "DELETE",
22544 "name" : "delsnapshot",
22545 "parameters" : {
22546 "additionalProperties" : 0,
22547 "properties" : {
22548 "force" : {
22549 "description" : "For removal from config file, even if removing disk snapshots fails.",
22550 "optional" : 1,
013dc89f
DM
22551 "type" : "boolean",
22552 "typetext" : "<boolean>"
44660702
DM
22553 },
22554 "node" : {
22555 "description" : "The cluster node name.",
22556 "format" : "pve-node",
013dc89f
DM
22557 "type" : "string",
22558 "typetext" : "<string>"
44660702
DM
22559 },
22560 "snapname" : {
22561 "description" : "The name of the snapshot.",
22562 "format" : "pve-configid",
22563 "maxLength" : 40,
013dc89f
DM
22564 "type" : "string",
22565 "typetext" : "<string>"
44660702
DM
22566 },
22567 "vmid" : {
22568 "description" : "The (unique) ID of the VM.",
22569 "format" : "pve-vmid",
22570 "minimum" : 1,
4bd7df8b 22571 "type" : "integer",
013dc89f 22572 "typetext" : "<integer> (1 - N)"
44660702
DM
22573 }
22574 }
22575 },
22576 "permissions" : {
22577 "check" : [
22578 "perm",
22579 "/vms/{vmid}",
22580 [
22581 "VM.Snapshot"
22582 ]
22583 ]
22584 },
22585 "protected" : 1,
22586 "proxyto" : "node",
22587 "returns" : {
22588 "description" : "the task ID.",
22589 "type" : "string"
22590 }
22591 },
22592 "GET" : {
e9cd3bd4 22593 "allowtoken" : 1,
44660702
DM
22594 "description" : "",
22595 "method" : "GET",
22596 "name" : "snapshot_cmd_idx",
22597 "parameters" : {
22598 "additionalProperties" : 0,
22599 "properties" : {
22600 "node" : {
22601 "description" : "The cluster node name.",
22602 "format" : "pve-node",
013dc89f
DM
22603 "type" : "string",
22604 "typetext" : "<string>"
44660702
DM
22605 },
22606 "snapname" : {
22607 "description" : "The name of the snapshot.",
22608 "format" : "pve-configid",
22609 "maxLength" : 40,
013dc89f
DM
22610 "type" : "string",
22611 "typetext" : "<string>"
44660702
DM
22612 },
22613 "vmid" : {
22614 "description" : "The (unique) ID of the VM.",
22615 "format" : "pve-vmid",
22616 "minimum" : 1,
4bd7df8b 22617 "type" : "integer",
013dc89f 22618 "typetext" : "<integer> (1 - N)"
44660702
DM
22619 }
22620 }
22621 },
22622 "permissions" : {
22623 "user" : "all"
22624 },
22625 "returns" : {
22626 "items" : {
22627 "properties" : {},
22628 "type" : "object"
22629 },
22630 "links" : [
22631 {
22632 "href" : "{cmd}",
22633 "rel" : "child"
22634 }
22635 ],
22636 "type" : "array"
22637 }
22638 }
22639 },
22640 "leaf" : 0,
22641 "path" : "/nodes/{node}/qemu/{vmid}/snapshot/{snapname}",
22642 "text" : "{snapname}"
56122987
DM
22643 }
22644 ],
44660702
DM
22645 "info" : {
22646 "GET" : {
e9cd3bd4 22647 "allowtoken" : 1,
44660702
DM
22648 "description" : "List all snapshots.",
22649 "method" : "GET",
22650 "name" : "snapshot_list",
22651 "parameters" : {
22652 "additionalProperties" : 0,
22653 "properties" : {
22654 "node" : {
22655 "description" : "The cluster node name.",
22656 "format" : "pve-node",
013dc89f
DM
22657 "type" : "string",
22658 "typetext" : "<string>"
44660702
DM
22659 },
22660 "vmid" : {
22661 "description" : "The (unique) ID of the VM.",
22662 "format" : "pve-vmid",
22663 "minimum" : 1,
4bd7df8b 22664 "type" : "integer",
013dc89f 22665 "typetext" : "<integer> (1 - N)"
44660702
DM
22666 }
22667 }
22668 },
22669 "permissions" : {
22670 "check" : [
22671 "perm",
22672 "/vms/{vmid}",
22673 [
22674 "VM.Audit"
22675 ]
22676 ]
22677 },
22678 "protected" : 1,
22679 "proxyto" : "node",
22680 "returns" : {
22681 "items" : {
4d47f125
TL
22682 "properties" : {
22683 "description" : {
22684 "description" : "Snapshot description.",
22685 "type" : "string"
22686 },
22687 "name" : {
22688 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
22689 "type" : "string"
22690 },
22691 "parent" : {
22692 "description" : "Parent snapshot identifier.",
22693 "optional" : 1,
22694 "type" : "string"
22695 },
22696 "snaptime" : {
22697 "description" : "Snapshot creation time",
22698 "optional" : 1,
22699 "renderer" : "timestamp",
22700 "type" : "integer"
22701 },
22702 "vmstate" : {
22703 "description" : "Snapshot includes RAM.",
22704 "optional" : 1,
22705 "type" : "boolean"
22706 }
22707 },
44660702
DM
22708 "type" : "object"
22709 },
22710 "links" : [
22711 {
22712 "href" : "{name}",
22713 "rel" : "child"
22714 }
22715 ],
22716 "type" : "array"
22717 }
22718 },
22719 "POST" : {
e9cd3bd4 22720 "allowtoken" : 1,
44660702
DM
22721 "description" : "Snapshot a VM.",
22722 "method" : "POST",
22723 "name" : "snapshot",
22724 "parameters" : {
22725 "additionalProperties" : 0,
22726 "properties" : {
22727 "description" : {
22728 "description" : "A textual description or comment.",
22729 "optional" : 1,
013dc89f
DM
22730 "type" : "string",
22731 "typetext" : "<string>"
44660702
DM
22732 },
22733 "node" : {
22734 "description" : "The cluster node name.",
22735 "format" : "pve-node",
013dc89f
DM
22736 "type" : "string",
22737 "typetext" : "<string>"
44660702
DM
22738 },
22739 "snapname" : {
22740 "description" : "The name of the snapshot.",
22741 "format" : "pve-configid",
22742 "maxLength" : 40,
013dc89f
DM
22743 "type" : "string",
22744 "typetext" : "<string>"
44660702
DM
22745 },
22746 "vmid" : {
22747 "description" : "The (unique) ID of the VM.",
22748 "format" : "pve-vmid",
22749 "minimum" : 1,
4bd7df8b 22750 "type" : "integer",
013dc89f 22751 "typetext" : "<integer> (1 - N)"
44660702
DM
22752 },
22753 "vmstate" : {
22754 "description" : "Save the vmstate",
22755 "optional" : 1,
013dc89f
DM
22756 "type" : "boolean",
22757 "typetext" : "<boolean>"
44660702
DM
22758 }
22759 }
22760 },
22761 "permissions" : {
22762 "check" : [
22763 "perm",
22764 "/vms/{vmid}",
22765 [
22766 "VM.Snapshot"
22767 ]
22768 ]
22769 },
22770 "protected" : 1,
22771 "proxyto" : "node",
22772 "returns" : {
22773 "description" : "the task ID.",
22774 "type" : "string"
22775 }
22776 }
22777 },
22778 "leaf" : 0,
22779 "path" : "/nodes/{node}/qemu/{vmid}/snapshot",
7aacca6f 22780 "text" : "snapshot"
56122987
DM
22781 },
22782 {
56122987
DM
22783 "info" : {
22784 "POST" : {
e9cd3bd4 22785 "allowtoken" : 1,
44660702
DM
22786 "description" : "Create a Template.",
22787 "method" : "POST",
56122987 22788 "name" : "template",
56122987 22789 "parameters" : {
7aacca6f 22790 "additionalProperties" : 0,
56122987 22791 "properties" : {
56122987 22792 "disk" : {
56122987
DM
22793 "description" : "If you want to convert only 1 disk to base image.",
22794 "enum" : [
22795 "ide0",
22796 "ide1",
22797 "ide2",
22798 "ide3",
22799 "scsi0",
22800 "scsi1",
22801 "scsi2",
22802 "scsi3",
22803 "scsi4",
22804 "scsi5",
22805 "scsi6",
22806 "scsi7",
22807 "scsi8",
22808 "scsi9",
22809 "scsi10",
22810 "scsi11",
22811 "scsi12",
22812 "scsi13",
e9cd3bd4
TL
22813 "scsi14",
22814 "scsi15",
22815 "scsi16",
22816 "scsi17",
22817 "scsi18",
22818 "scsi19",
22819 "scsi20",
22820 "scsi21",
22821 "scsi22",
22822 "scsi23",
22823 "scsi24",
22824 "scsi25",
22825 "scsi26",
22826 "scsi27",
22827 "scsi28",
22828 "scsi29",
22829 "scsi30",
56122987
DM
22830 "virtio0",
22831 "virtio1",
22832 "virtio2",
22833 "virtio3",
22834 "virtio4",
22835 "virtio5",
22836 "virtio6",
22837 "virtio7",
22838 "virtio8",
22839 "virtio9",
22840 "virtio10",
22841 "virtio11",
22842 "virtio12",
22843 "virtio13",
22844 "virtio14",
22845 "virtio15",
22846 "sata0",
22847 "sata1",
22848 "sata2",
22849 "sata3",
22850 "sata4",
2c0dde61 22851 "sata5",
5370fa8c
TL
22852 "efidisk0",
22853 "tpmstate0"
56122987 22854 ],
7aacca6f 22855 "optional" : 1,
56122987
DM
22856 "type" : "string"
22857 },
44660702
DM
22858 "node" : {
22859 "description" : "The cluster node name.",
22860 "format" : "pve-node",
013dc89f
DM
22861 "type" : "string",
22862 "typetext" : "<string>"
44660702
DM
22863 },
22864 "vmid" : {
22865 "description" : "The (unique) ID of the VM.",
7aacca6f 22866 "format" : "pve-vmid",
44660702 22867 "minimum" : 1,
4bd7df8b 22868 "type" : "integer",
013dc89f 22869 "typetext" : "<integer> (1 - N)"
56122987 22870 }
7aacca6f 22871 }
56122987 22872 },
7aacca6f
DM
22873 "permissions" : {
22874 "check" : [
22875 "perm",
22876 "/vms/{vmid}",
22877 [
22878 "VM.Allocate"
22879 ]
22880 ],
22881 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
22882 },
44660702 22883 "protected" : 1,
7aacca6f 22884 "proxyto" : "node",
7aacca6f 22885 "returns" : {
5370fa8c
TL
22886 "description" : "the task ID.",
22887 "type" : "string"
7aacca6f 22888 }
56122987
DM
22889 }
22890 },
44660702 22891 "leaf" : 1,
7aacca6f 22892 "path" : "/nodes/{node}/qemu/{vmid}/template",
44660702 22893 "text" : "template"
81a3384d
TL
22894 },
22895 {
22896 "info" : {
22897 "POST" : {
22898 "allowtoken" : 1,
22899 "description" : "Migration tunnel endpoint - only for internal use by VM migration.",
22900 "method" : "POST",
22901 "name" : "mtunnel",
22902 "parameters" : {
22903 "additionalProperties" : 0,
22904 "properties" : {
22905 "bridges" : {
22906 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
22907 "format" : "pve-bridge-id-list",
22908 "optional" : 1,
22909 "type" : "string",
22910 "typetext" : "<string>"
22911 },
22912 "node" : {
22913 "description" : "The cluster node name.",
22914 "format" : "pve-node",
22915 "type" : "string",
22916 "typetext" : "<string>"
22917 },
22918 "storages" : {
22919 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
22920 "format" : "pve-storage-id-list",
22921 "optional" : 1,
22922 "type" : "string",
22923 "typetext" : "<string>"
22924 },
22925 "vmid" : {
22926 "description" : "The (unique) ID of the VM.",
22927 "format" : "pve-vmid",
22928 "minimum" : 1,
22929 "type" : "integer",
22930 "typetext" : "<integer> (1 - N)"
22931 }
22932 }
22933 },
22934 "permissions" : {
22935 "check" : [
22936 "and",
22937 [
22938 "perm",
22939 "/vms/{vmid}",
22940 [
22941 "VM.Allocate"
22942 ]
22943 ],
22944 [
22945 "perm",
22946 "/",
22947 [
22948 "Sys.Incoming"
22949 ]
22950 ]
22951 ],
22952 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
22953 },
22954 "protected" : 1,
22955 "returns" : {
22956 "additionalProperties" : 0,
22957 "properties" : {
22958 "socket" : {
22959 "type" : "string"
22960 },
22961 "ticket" : {
22962 "type" : "string"
22963 },
22964 "upid" : {
22965 "type" : "string"
22966 }
22967 }
22968 }
22969 }
22970 },
22971 "leaf" : 1,
22972 "path" : "/nodes/{node}/qemu/{vmid}/mtunnel",
22973 "text" : "mtunnel"
22974 },
22975 {
22976 "info" : {
22977 "GET" : {
22978 "allowtoken" : 1,
22979 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
22980 "method" : "GET",
22981 "name" : "mtunnelwebsocket",
22982 "parameters" : {
22983 "additionalProperties" : 0,
22984 "properties" : {
22985 "node" : {
22986 "description" : "The cluster node name.",
22987 "format" : "pve-node",
22988 "type" : "string",
22989 "typetext" : "<string>"
22990 },
22991 "socket" : {
22992 "description" : "unix socket to forward to",
22993 "type" : "string",
22994 "typetext" : "<string>"
22995 },
22996 "ticket" : {
22997 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
22998 "type" : "string",
22999 "typetext" : "<string>"
23000 },
23001 "vmid" : {
23002 "description" : "The (unique) ID of the VM.",
23003 "format" : "pve-vmid",
23004 "minimum" : 1,
23005 "type" : "integer",
23006 "typetext" : "<integer> (1 - N)"
23007 }
23008 }
23009 },
23010 "permissions" : {
23011 "description" : "You need to pass a ticket valid for the selected socket. Tickets can be created via the mtunnel API call, which will check permissions accordingly.",
23012 "user" : "all"
23013 },
23014 "returns" : {
23015 "properties" : {
23016 "port" : {
23017 "optional" : 1,
23018 "type" : "string"
23019 },
23020 "socket" : {
23021 "optional" : 1,
23022 "type" : "string"
23023 }
23024 },
23025 "type" : "object"
23026 }
23027 }
23028 },
23029 "leaf" : 1,
23030 "path" : "/nodes/{node}/qemu/{vmid}/mtunnelwebsocket",
23031 "text" : "mtunnelwebsocket"
56122987
DM
23032 }
23033 ],
7aacca6f 23034 "info" : {
44660702 23035 "DELETE" : {
e9cd3bd4 23036 "allowtoken" : 1,
d2656385 23037 "description" : "Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules",
44660702
DM
23038 "method" : "DELETE",
23039 "name" : "destroy_vm",
7aacca6f 23040 "parameters" : {
44660702 23041 "additionalProperties" : 0,
7aacca6f 23042 "properties" : {
d2656385 23043 "destroy-unreferenced-disks" : {
8f4d9c87 23044 "default" : 0,
d2656385
TL
23045 "description" : "If set, destroy additionally all disks not referenced in the config but with a matching VMID from all enabled storages.",
23046 "optional" : 1,
23047 "type" : "boolean",
23048 "typetext" : "<boolean>"
23049 },
7aacca6f 23050 "node" : {
44660702 23051 "description" : "The cluster node name.",
7aacca6f 23052 "format" : "pve-node",
013dc89f
DM
23053 "type" : "string",
23054 "typetext" : "<string>"
44660702 23055 },
1c532546 23056 "purge" : {
d2656385 23057 "description" : "Remove VMID from configurations, like backup & replication jobs and HA.",
1c532546
TL
23058 "optional" : 1,
23059 "type" : "boolean",
23060 "typetext" : "<boolean>"
23061 },
44660702
DM
23062 "skiplock" : {
23063 "description" : "Ignore locks - only root is allowed to use this option.",
23064 "optional" : 1,
013dc89f
DM
23065 "type" : "boolean",
23066 "typetext" : "<boolean>"
7aacca6f
DM
23067 },
23068 "vmid" : {
44660702 23069 "description" : "The (unique) ID of the VM.",
7aacca6f 23070 "format" : "pve-vmid",
44660702 23071 "minimum" : 1,
4bd7df8b 23072 "type" : "integer",
013dc89f 23073 "typetext" : "<integer> (1 - N)"
7aacca6f 23074 }
44660702 23075 }
7aacca6f 23076 },
7aacca6f
DM
23077 "permissions" : {
23078 "check" : [
23079 "perm",
23080 "/vms/{vmid}",
23081 [
23082 "VM.Allocate"
23083 ]
23084 ]
23085 },
44660702
DM
23086 "protected" : 1,
23087 "proxyto" : "node",
7aacca6f
DM
23088 "returns" : {
23089 "type" : "string"
44660702
DM
23090 }
23091 },
23092 "GET" : {
e9cd3bd4 23093 "allowtoken" : 1,
44660702
DM
23094 "description" : "Directory index",
23095 "method" : "GET",
23096 "name" : "vmdiridx",
7aacca6f 23097 "parameters" : {
44660702 23098 "additionalProperties" : 0,
7aacca6f 23099 "properties" : {
7aacca6f 23100 "node" : {
7aacca6f 23101 "description" : "The cluster node name.",
44660702 23102 "format" : "pve-node",
013dc89f
DM
23103 "type" : "string",
23104 "typetext" : "<string>"
44660702
DM
23105 },
23106 "vmid" : {
23107 "description" : "The (unique) ID of the VM.",
23108 "format" : "pve-vmid",
23109 "minimum" : 1,
4bd7df8b 23110 "type" : "integer",
013dc89f 23111 "typetext" : "<integer> (1 - N)"
7aacca6f 23112 }
44660702 23113 }
7aacca6f 23114 },
44660702
DM
23115 "permissions" : {
23116 "user" : "all"
23117 },
23118 "proxyto" : "node",
23119 "returns" : {
23120 "items" : {
23121 "properties" : {
23122 "subdir" : {
23123 "type" : "string"
23124 }
23125 },
23126 "type" : "object"
23127 },
23128 "links" : [
23129 {
23130 "href" : "{subdir}",
23131 "rel" : "child"
23132 }
23133 ],
23134 "type" : "array"
23135 }
7aacca6f 23136 }
44660702
DM
23137 },
23138 "leaf" : 0,
23139 "path" : "/nodes/{node}/qemu/{vmid}",
23140 "text" : "{vmid}"
56122987
DM
23141 }
23142 ],
23143 "info" : {
44660702 23144 "GET" : {
e9cd3bd4 23145 "allowtoken" : 1,
44660702
DM
23146 "description" : "Virtual machine index (per node).",
23147 "method" : "GET",
23148 "name" : "vmlist",
56122987 23149 "parameters" : {
44660702 23150 "additionalProperties" : 0,
56122987 23151 "properties" : {
44660702
DM
23152 "full" : {
23153 "description" : "Determine the full status of active VMs.",
56122987 23154 "optional" : 1,
013dc89f
DM
23155 "type" : "boolean",
23156 "typetext" : "<boolean>"
56122987 23157 },
44660702
DM
23158 "node" : {
23159 "description" : "The cluster node name.",
23160 "format" : "pve-node",
013dc89f
DM
23161 "type" : "string",
23162 "typetext" : "<string>"
44660702
DM
23163 }
23164 }
23165 },
23166 "permissions" : {
23167 "description" : "Only list VMs where you have VM.Audit permissons on /vms/<vmid>.",
23168 "user" : "all"
23169 },
23170 "protected" : 1,
23171 "proxyto" : "node",
23172 "returns" : {
23173 "items" : {
4d47f125
TL
23174 "properties" : {
23175 "cpus" : {
23176 "description" : "Maximum usable CPUs.",
23177 "optional" : 1,
23178 "type" : "number"
23179 },
95895385
TL
23180 "lock" : {
23181 "description" : "The current config lock, if any.",
23182 "optional" : 1,
23183 "type" : "string"
23184 },
4d47f125
TL
23185 "maxdisk" : {
23186 "description" : "Root disk size in bytes.",
23187 "optional" : 1,
23188 "renderer" : "bytes",
23189 "type" : "integer"
23190 },
23191 "maxmem" : {
23192 "description" : "Maximum memory in bytes.",
23193 "optional" : 1,
23194 "renderer" : "bytes",
23195 "type" : "integer"
23196 },
23197 "name" : {
23198 "description" : "VM name.",
23199 "optional" : 1,
23200 "type" : "string"
23201 },
23202 "pid" : {
23203 "description" : "PID of running qemu process.",
23204 "optional" : 1,
23205 "type" : "integer"
23206 },
23207 "qmpstatus" : {
23208 "description" : "Qemu QMP agent status.",
23209 "optional" : 1,
23210 "type" : "string"
23211 },
d2656385
TL
23212 "running-machine" : {
23213 "description" : "The currently running machine type (if running).",
23214 "optional" : 1,
23215 "type" : "string"
23216 },
23217 "running-qemu" : {
23218 "description" : "The currently running QEMU version (if running).",
23219 "optional" : 1,
23220 "type" : "string"
23221 },
4d47f125
TL
23222 "status" : {
23223 "description" : "Qemu process status.",
23224 "enum" : [
23225 "stopped",
23226 "running"
23227 ],
23228 "type" : "string"
23229 },
5c1699e5
TL
23230 "tags" : {
23231 "description" : "The current configured tags, if any",
23232 "optional" : 1,
23233 "type" : "string"
23234 },
4d47f125
TL
23235 "uptime" : {
23236 "description" : "Uptime.",
23237 "optional" : 1,
23238 "renderer" : "duration",
23239 "type" : "integer"
23240 },
23241 "vmid" : {
23242 "description" : "The (unique) ID of the VM.",
23243 "format" : "pve-vmid",
23244 "minimum" : 1,
23245 "type" : "integer"
23246 }
23247 },
44660702
DM
23248 "type" : "object"
23249 },
23250 "links" : [
23251 {
23252 "href" : "{vmid}",
23253 "rel" : "child"
23254 }
23255 ],
23256 "type" : "array"
23257 }
23258 },
23259 "POST" : {
e9cd3bd4 23260 "allowtoken" : 1,
44660702
DM
23261 "description" : "Create or restore a virtual machine.",
23262 "method" : "POST",
23263 "name" : "create_vm",
23264 "parameters" : {
23265 "additionalProperties" : 0,
23266 "properties" : {
7aacca6f 23267 "acpi" : {
7aacca6f 23268 "default" : 1,
44660702 23269 "description" : "Enable/disable ACPI.",
56122987 23270 "optional" : 1,
013dc89f
DM
23271 "type" : "boolean",
23272 "typetext" : "<boolean>"
56122987 23273 },
4e7f60c2 23274 "affinity" : {
81a3384d 23275 "description" : "List of host cores used to execute guest processes, for example: 0,5,8-11",
4e7f60c2
TL
23276 "format" : "pve-cpuset",
23277 "optional" : 1,
23278 "type" : "string",
23279 "typetext" : "<string>"
23280 },
44660702 23281 "agent" : {
5370fa8c 23282 "description" : "Enable/disable communication with the Qemu Guest Agent and its properties.",
4d47f125
TL
23283 "format" : {
23284 "enabled" : {
23285 "default" : 0,
23286 "default_key" : 1,
5370fa8c 23287 "description" : "Enable/disable communication with a Qemu Guest Agent (QGA) running in the VM.",
4d47f125
TL
23288 "type" : "boolean"
23289 },
23290 "fstrim_cloned_disks" : {
23291 "default" : 0,
d2656385 23292 "description" : "Run fstrim after moving a disk or migrating the VM.",
4d47f125
TL
23293 "optional" : 1,
23294 "type" : "boolean"
5c1699e5
TL
23295 },
23296 "type" : {
23297 "default" : "virtio",
23298 "description" : "Select the agent type",
23299 "enum" : [
23300 "virtio",
23301 "isa"
23302 ],
23303 "optional" : 1,
23304 "type" : "string"
4d47f125
TL
23305 }
23306 },
7aacca6f 23307 "optional" : 1,
4d47f125 23308 "type" : "string",
5c1699e5 23309 "typetext" : "[enabled=]<1|0> [,fstrim_cloned_disks=<1|0>] [,type=<virtio|isa>]"
56122987 23310 },
e2d681b3
TL
23311 "arch" : {
23312 "description" : "Virtual processor architecture. Defaults to the host.",
23313 "enum" : [
23314 "x86_64",
23315 "aarch64"
23316 ],
23317 "optional" : 1,
23318 "type" : "string"
23319 },
44660702 23320 "archive" : {
c5aa7e14 23321 "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 23322 "maxLength" : 255,
56122987 23323 "optional" : 1,
013dc89f
DM
23324 "type" : "string",
23325 "typetext" : "<string>"
56122987 23326 },
44660702 23327 "args" : {
c2993fe5 23328 "description" : "Arbitrary arguments passed to kvm.",
56122987 23329 "optional" : 1,
c2993fe5 23330 "type" : "string",
013dc89f 23331 "typetext" : "<string>",
c2993fe5 23332 "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 23333 },
1c532546
TL
23334 "audio0" : {
23335 "description" : "Configure a audio device, useful in combination with QXL/Spice.",
23336 "format" : {
23337 "device" : {
23338 "description" : "Configure an audio device.",
23339 "enum" : [
23340 "ich9-intel-hda",
23341 "intel-hda",
23342 "AC97"
23343 ],
23344 "type" : "string"
23345 },
23346 "driver" : {
23347 "default" : "spice",
23348 "description" : "Driver backend for the audio device.",
23349 "enum" : [
d2656385
TL
23350 "spice",
23351 "none"
1c532546
TL
23352 ],
23353 "optional" : 1,
23354 "type" : "string"
23355 }
23356 },
23357 "optional" : 1,
23358 "type" : "string",
d2656385 23359 "typetext" : "device=<ich9-intel-hda|intel-hda|AC97> [,driver=<spice|none>]"
1c532546 23360 },
44660702 23361 "autostart" : {
7aacca6f 23362 "default" : 0,
44660702
DM
23363 "description" : "Automatic restart after crash (currently ignored).",
23364 "optional" : 1,
013dc89f
DM
23365 "type" : "boolean",
23366 "typetext" : "<boolean>"
7aacca6f 23367 },
44660702
DM
23368 "balloon" : {
23369 "description" : "Amount of target RAM for the VM in MB. Using zero disables the ballon driver.",
23370 "minimum" : 0,
56122987 23371 "optional" : 1,
4bd7df8b 23372 "type" : "integer",
013dc89f 23373 "typetext" : "<integer> (0 - N)"
56122987 23374 },
44660702
DM
23375 "bios" : {
23376 "default" : "seabios",
23377 "description" : "Select BIOS implementation.",
23378 "enum" : [
23379 "seabios",
23380 "ovmf"
23381 ],
56122987 23382 "optional" : 1,
44660702 23383 "type" : "string"
56122987 23384 },
44660702 23385 "boot" : {
5370fa8c 23386 "description" : "Specify guest boot order. Use the 'order=' sub-property as usage with no key or 'legacy=' is deprecated.",
4772952b 23387 "format" : "pve-qm-boot",
56122987 23388 "optional" : 1,
4772952b
TL
23389 "type" : "string",
23390 "typetext" : "[[legacy=]<[acdn]{1,4}>] [,order=<device[;device...]>]"
56122987 23391 },
7aacca6f 23392 "bootdisk" : {
4772952b 23393 "description" : "Enable booting from specified disk. Deprecated: Use 'boot: order=foo;bar' instead.",
44660702
DM
23394 "format" : "pve-qm-bootdisk",
23395 "optional" : 1,
7aacca6f 23396 "pattern" : "(ide|sata|scsi|virtio)\\d+",
44660702
DM
23397 "type" : "string"
23398 },
27a7acb2 23399 "bwlimit" : {
95895385
TL
23400 "default" : "restore limit from datacenter or storage config",
23401 "description" : "Override I/O bandwidth limit (in KiB/s).",
27a7acb2
DM
23402 "minimum" : "0",
23403 "optional" : 1,
23404 "type" : "integer",
23405 "typetext" : "<integer> (0 - N)"
23406 },
44660702
DM
23407 "cdrom" : {
23408 "description" : "This is an alias for option -ide2",
de0983cb 23409 "format" : "pve-qm-ide",
56122987 23410 "optional" : 1,
44660702 23411 "type" : "string",
013dc89f 23412 "typetext" : "<volume>"
56122987 23413 },
95895385
TL
23414 "cicustom" : {
23415 "description" : "cloud-init: Specify custom files to replace the automatically generated ones at start.",
23416 "format" : "pve-qm-cicustom",
23417 "optional" : 1,
23418 "type" : "string",
5370fa8c 23419 "typetext" : "[meta=<volume>] [,network=<volume>] [,user=<volume>] [,vendor=<volume>]"
95895385 23420 },
27a7acb2
DM
23421 "cipassword" : {
23422 "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.",
23423 "optional" : 1,
23424 "type" : "string",
23425 "typetext" : "<string>"
23426 },
23427 "citype" : {
23428 "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.",
23429 "enum" : [
23430 "configdrive2",
d2656385
TL
23431 "nocloud",
23432 "opennebula"
27a7acb2
DM
23433 ],
23434 "optional" : 1,
23435 "type" : "string"
23436 },
23437 "ciuser" : {
23438 "description" : "cloud-init: User name to change ssh keys and password for instead of the image's configured default user.",
23439 "optional" : 1,
23440 "type" : "string",
23441 "typetext" : "<string>"
23442 },
44660702
DM
23443 "cores" : {
23444 "default" : 1,
23445 "description" : "The number of cores per socket.",
7aacca6f 23446 "minimum" : 1,
44660702 23447 "optional" : 1,
4bd7df8b 23448 "type" : "integer",
013dc89f 23449 "typetext" : "<integer> (1 - N)"
7aacca6f 23450 },
44660702
DM
23451 "cpu" : {
23452 "description" : "Emulated CPU type.",
c5aa7e14 23453 "format" : "pve-vm-cpu-conf",
56122987 23454 "optional" : 1,
4bd7df8b 23455 "type" : "string",
04d22a9f 23456 "typetext" : "[[cputype=]<string>] [,flags=<+FLAG[;-FLAG...]>] [,hidden=<1|0>] [,hv-vendor-id=<vendor-id>] [,phys-bits=<8-64|host>] [,reported-model=<enum>]"
56122987 23457 },
44660702 23458 "cpulimit" : {
7aacca6f 23459 "default" : 0,
c2993fe5 23460 "description" : "Limit of CPU usage.",
44660702
DM
23461 "maximum" : 128,
23462 "minimum" : 0,
7aacca6f 23463 "optional" : 1,
c2993fe5 23464 "type" : "number",
013dc89f 23465 "typetext" : "<number> (0 - 128)",
c2993fe5 23466 "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
23467 },
23468 "cpuunits" : {
5370fa8c
TL
23469 "default" : "cgroup v1: 1024, cgroup v2: 100",
23470 "description" : "CPU weight for a VM, will be clamped to [1, 10000] in cgroup v2.",
2489d6df 23471 "maximum" : 262144,
7af2edf9 23472 "minimum" : 1,
44660702 23473 "optional" : 1,
c2993fe5 23474 "type" : "integer",
7af2edf9 23475 "typetext" : "<integer> (1 - 262144)",
2489d6df 23476 "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
23477 },
23478 "description" : {
8f4d9c87
TL
23479 "description" : "Description for the VM. Shown in the web-interface VM's summary. This is saved as comment inside the configuration file.",
23480 "maxLength" : 8192,
56122987 23481 "optional" : 1,
013dc89f
DM
23482 "type" : "string",
23483 "typetext" : "<string>"
44660702 23484 },
4d47f125 23485 "efidisk0" : {
7af2edf9 23486 "description" : "Configure a Disk for storing EFI vars. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and that the default EFI vars are copied to the volume instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
4d47f125 23487 "format" : {
5370fa8c
TL
23488 "efitype" : {
23489 "default" : "2m",
23490 "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.",
23491 "enum" : [
23492 "2m",
23493 "4m"
23494 ],
23495 "optional" : 1,
23496 "type" : "string"
23497 },
4d47f125
TL
23498 "file" : {
23499 "default_key" : 1,
23500 "description" : "The drive's backing volume.",
23501 "format" : "pve-volume-id-or-qm-path",
23502 "format_description" : "volume",
23503 "type" : "string"
23504 },
23505 "format" : {
23506 "description" : "The drive's backing file's data format.",
23507 "enum" : [
23508 "raw",
23509 "cow",
23510 "qcow",
23511 "qed",
23512 "qcow2",
23513 "vmdk",
23514 "cloop"
23515 ],
23516 "optional" : 1,
23517 "type" : "string"
23518 },
7af2edf9
TL
23519 "import-from" : {
23520 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
23521 "format" : "pve-volume-id-or-absolute-path",
23522 "format_description" : "source volume",
23523 "optional" : 1,
23524 "type" : "string"
23525 },
5370fa8c
TL
23526 "pre-enrolled-keys" : {
23527 "default" : 0,
23528 "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.",
23529 "optional" : 1,
23530 "type" : "boolean"
23531 },
4d47f125
TL
23532 "size" : {
23533 "description" : "Disk size. This is purely informational and has no effect.",
23534 "format" : "disk-size",
23535 "format_description" : "DiskSize",
23536 "optional" : 1,
23537 "type" : "string"
23538 },
23539 "volume" : {
23540 "alias" : "file"
23541 }
23542 },
23543 "optional" : 1,
23544 "type" : "string",
7af2edf9 23545 "typetext" : "[file=]<volume> [,efitype=<2m|4m>] [,format=<enum>] [,import-from=<source volume>] [,pre-enrolled-keys=<1|0>] [,size=<DiskSize>]"
4d47f125 23546 },
44660702
DM
23547 "force" : {
23548 "description" : "Allow to overwrite existing VM.",
23549 "optional" : 1,
23550 "requires" : "archive",
013dc89f
DM
23551 "type" : "boolean",
23552 "typetext" : "<boolean>"
44660702
DM
23553 },
23554 "freeze" : {
23555 "description" : "Freeze CPU at startup (use 'c' monitor command to start execution).",
23556 "optional" : 1,
013dc89f
DM
23557 "type" : "boolean",
23558 "typetext" : "<boolean>"
44660702 23559 },
5f26e15b
TL
23560 "hookscript" : {
23561 "description" : "Script that will be executed during various steps in the vms lifetime.",
23562 "format" : "pve-volume-id",
23563 "optional" : 1,
23564 "type" : "string",
23565 "typetext" : "<string>"
23566 },
44660702 23567 "hostpci[n]" : {
c2993fe5 23568 "description" : "Map host PCI devices into guest.",
44660702
DM
23569 "format" : "pve-qm-hostpci",
23570 "optional" : 1,
57b78691 23571 "type" : "string",
7af2edf9 23572 "typetext" : "[host=]<HOSTPCIID[;HOSTPCIID2...]> [,device-id=<hex id>] [,legacy-igd=<1|0>] [,mdev=<string>] [,pcie=<1|0>] [,rombar=<1|0>] [,romfile=<string>] [,sub-device-id=<hex id>] [,sub-vendor-id=<hex id>] [,vendor-id=<hex id>] [,x-vga=<1|0>]",
bb4c8cf8 23573 "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
23574 },
23575 "hotplug" : {
23576 "default" : "network,disk,usb",
4e7f60c2 23577 "description" : "Selectively enable hotplug features. This is a comma separated list of hotplug features: 'network', 'disk', 'cpu', 'memory', 'usb' and 'cloudinit'. Use '0' to disable hotplug completely. Using '1' as value is an alias for the default `network,disk,usb`. USB hotplugging is possible for guests with machine version >= 7.1 and ostype l26 or windows > 7.",
44660702
DM
23578 "format" : "pve-hotplug-features",
23579 "optional" : 1,
013dc89f
DM
23580 "type" : "string",
23581 "typetext" : "<string>"
7aacca6f 23582 },
4bd7df8b
DM
23583 "hugepages" : {
23584 "description" : "Enable/disable hugepages memory.",
23585 "enum" : [
23586 "any",
23587 "2",
23588 "1024"
23589 ],
23590 "optional" : 1,
23591 "type" : "string"
23592 },
7aacca6f 23593 "ide[n]" : {
7af2edf9 23594 "description" : "Use volume as IDE hard disk or CD-ROM (n is 0 to 3). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
56122987 23595 "format" : {
44660702
DM
23596 "aio" : {
23597 "description" : "AIO type to use.",
23598 "enum" : [
23599 "native",
8f4d9c87
TL
23600 "threads",
23601 "io_uring"
44660702 23602 ],
44660702
DM
23603 "optional" : 1,
23604 "type" : "string"
23605 },
23606 "backup" : {
23607 "description" : "Whether the drive should be included when making backups.",
44660702
DM
23608 "optional" : 1,
23609 "type" : "boolean"
23610 },
23611 "bps" : {
de0983cb 23612 "description" : "Maximum r/w speed in bytes per second.",
7aacca6f 23613 "format_description" : "bps",
56122987 23614 "optional" : 1,
44660702 23615 "type" : "integer"
56122987 23616 },
de0983cb
DM
23617 "bps_max_length" : {
23618 "description" : "Maximum length of I/O bursts in seconds.",
23619 "format_description" : "seconds",
23620 "minimum" : 1,
23621 "optional" : 1,
23622 "type" : "integer"
23623 },
44660702 23624 "bps_rd" : {
de0983cb 23625 "description" : "Maximum read speed in bytes per second.",
44660702 23626 "format_description" : "bps",
56122987 23627 "optional" : 1,
44660702 23628 "type" : "integer"
56122987 23629 },
de0983cb 23630 "bps_rd_length" : {
5d9c884c
DM
23631 "alias" : "bps_rd_max_length"
23632 },
23633 "bps_rd_max_length" : {
de0983cb
DM
23634 "description" : "Maximum length of read I/O bursts in seconds.",
23635 "format_description" : "seconds",
23636 "minimum" : 1,
23637 "optional" : 1,
23638 "type" : "integer"
23639 },
44660702 23640 "bps_wr" : {
de0983cb 23641 "description" : "Maximum write speed in bytes per second.",
44660702 23642 "format_description" : "bps",
56122987 23643 "optional" : 1,
44660702 23644 "type" : "integer"
56122987 23645 },
de0983cb 23646 "bps_wr_length" : {
5d9c884c
DM
23647 "alias" : "bps_wr_max_length"
23648 },
23649 "bps_wr_max_length" : {
de0983cb
DM
23650 "description" : "Maximum length of write I/O bursts in seconds.",
23651 "format_description" : "seconds",
23652 "minimum" : 1,
23653 "optional" : 1,
23654 "type" : "integer"
23655 },
44660702
DM
23656 "cache" : {
23657 "description" : "The drive's cache mode",
56122987 23658 "enum" : [
7aacca6f 23659 "none",
44660702
DM
23660 "writethrough",
23661 "writeback",
23662 "unsafe",
23663 "directsync"
56122987 23664 ],
56122987 23665 "optional" : 1,
44660702 23666 "type" : "string"
56122987 23667 },
44660702
DM
23668 "cyls" : {
23669 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
23670 "optional" : 1,
23671 "type" : "integer"
7aacca6f 23672 },
44660702
DM
23673 "detect_zeroes" : {
23674 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 23675 "optional" : 1,
44660702 23676 "type" : "boolean"
56122987 23677 },
44660702
DM
23678 "discard" : {
23679 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
23680 "enum" : [
23681 "ignore",
23682 "on"
23683 ],
56122987 23684 "optional" : 1,
44660702 23685 "type" : "string"
56122987 23686 },
7aacca6f 23687 "file" : {
44660702 23688 "default_key" : 1,
7aacca6f 23689 "description" : "The drive's backing volume.",
7aacca6f
DM
23690 "format" : "pve-volume-id-or-qm-path",
23691 "format_description" : "volume",
7aacca6f 23692 "type" : "string"
56122987 23693 },
44660702
DM
23694 "format" : {
23695 "description" : "The drive's backing file's data format.",
56122987 23696 "enum" : [
44660702
DM
23697 "raw",
23698 "cow",
23699 "qcow",
23700 "qed",
23701 "qcow2",
23702 "vmdk",
23703 "cloop"
7aacca6f 23704 ],
7aacca6f
DM
23705 "optional" : 1,
23706 "type" : "string"
56122987 23707 },
44660702
DM
23708 "heads" : {
23709 "description" : "Force the drive's physical geometry to have a specific head count.",
56122987 23710 "optional" : 1,
44660702 23711 "type" : "integer"
56122987 23712 },
7af2edf9
TL
23713 "import-from" : {
23714 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
23715 "format" : "pve-volume-id-or-absolute-path",
23716 "format_description" : "source volume",
23717 "optional" : 1,
23718 "type" : "string"
23719 },
44660702 23720 "iops" : {
de0983cb 23721 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 23722 "format_description" : "iops",
56122987 23723 "optional" : 1,
44660702 23724 "type" : "integer"
56122987 23725 },
44660702 23726 "iops_max" : {
de0983cb 23727 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 23728 "format_description" : "iops",
56122987 23729 "optional" : 1,
44660702 23730 "type" : "integer"
56122987 23731 },
de0983cb
DM
23732 "iops_max_length" : {
23733 "description" : "Maximum length of I/O bursts in seconds.",
23734 "format_description" : "seconds",
23735 "minimum" : 1,
23736 "optional" : 1,
23737 "type" : "integer"
23738 },
7aacca6f 23739 "iops_rd" : {
de0983cb 23740 "description" : "Maximum read I/O in operations per second.",
44660702
DM
23741 "format_description" : "iops",
23742 "optional" : 1,
23743 "type" : "integer"
7aacca6f 23744 },
de0983cb 23745 "iops_rd_length" : {
5d9c884c 23746 "alias" : "iops_rd_max_length"
de0983cb 23747 },
44660702 23748 "iops_rd_max" : {
de0983cb 23749 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702 23750 "format_description" : "iops",
56122987 23751 "optional" : 1,
44660702 23752 "type" : "integer"
56122987 23753 },
5d9c884c
DM
23754 "iops_rd_max_length" : {
23755 "description" : "Maximum length of read I/O bursts in seconds.",
23756 "format_description" : "seconds",
23757 "minimum" : 1,
23758 "optional" : 1,
23759 "type" : "integer"
23760 },
44660702 23761 "iops_wr" : {
de0983cb 23762 "description" : "Maximum write I/O in operations per second.",
44660702 23763 "format_description" : "iops",
56122987 23764 "optional" : 1,
44660702 23765 "type" : "integer"
7aacca6f 23766 },
de0983cb 23767 "iops_wr_length" : {
5d9c884c 23768 "alias" : "iops_wr_max_length"
de0983cb 23769 },
44660702 23770 "iops_wr_max" : {
de0983cb 23771 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 23772 "format_description" : "iops",
7aacca6f 23773 "optional" : 1,
44660702 23774 "type" : "integer"
56122987 23775 },
5d9c884c
DM
23776 "iops_wr_max_length" : {
23777 "description" : "Maximum length of write I/O bursts in seconds.",
23778 "format_description" : "seconds",
23779 "minimum" : 1,
23780 "optional" : 1,
23781 "type" : "integer"
23782 },
44660702 23783 "mbps" : {
de0983cb 23784 "description" : "Maximum r/w speed in megabytes per second.",
44660702 23785 "format_description" : "mbps",
7aacca6f 23786 "optional" : 1,
44660702 23787 "type" : "number"
56122987 23788 },
44660702 23789 "mbps_max" : {
de0983cb 23790 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
7aacca6f 23791 "format_description" : "mbps",
56122987 23792 "optional" : 1,
44660702 23793 "type" : "number"
56122987 23794 },
44660702 23795 "mbps_rd" : {
de0983cb 23796 "description" : "Maximum read speed in megabytes per second.",
44660702 23797 "format_description" : "mbps",
7aacca6f 23798 "optional" : 1,
44660702 23799 "type" : "number"
7aacca6f 23800 },
44660702 23801 "mbps_rd_max" : {
de0983cb 23802 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 23803 "format_description" : "mbps",
56122987 23804 "optional" : 1,
44660702 23805 "type" : "number"
56122987 23806 },
44660702 23807 "mbps_wr" : {
de0983cb 23808 "description" : "Maximum write speed in megabytes per second.",
44660702 23809 "format_description" : "mbps",
7aacca6f 23810 "optional" : 1,
44660702 23811 "type" : "number"
56122987 23812 },
44660702 23813 "mbps_wr_max" : {
de0983cb 23814 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 23815 "format_description" : "mbps",
56122987 23816 "optional" : 1,
44660702 23817 "type" : "number"
7aacca6f
DM
23818 },
23819 "media" : {
44660702
DM
23820 "default" : "disk",
23821 "description" : "The drive's media type.",
56122987 23822 "enum" : [
7aacca6f
DM
23823 "cdrom",
23824 "disk"
56122987 23825 ],
56122987 23826 "optional" : 1,
44660702 23827 "type" : "string"
56122987 23828 },
44660702
DM
23829 "model" : {
23830 "description" : "The drive's reported model name, url-encoded, up to 40 bytes long.",
23831 "format" : "urlencoded",
23832 "format_description" : "model",
23833 "maxLength" : 120,
56122987 23834 "optional" : 1,
44660702 23835 "type" : "string"
56122987 23836 },
5d9c884c
DM
23837 "replicate" : {
23838 "default" : 1,
23839 "description" : "Whether the drive should considered for replication jobs.",
23840 "optional" : 1,
23841 "type" : "boolean"
23842 },
7aacca6f 23843 "rerror" : {
7aacca6f
DM
23844 "description" : "Read error action.",
23845 "enum" : [
23846 "ignore",
23847 "report",
23848 "stop"
44660702 23849 ],
44660702
DM
23850 "optional" : 1,
23851 "type" : "string"
56122987 23852 },
44660702
DM
23853 "secs" : {
23854 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 23855 "optional" : 1,
44660702
DM
23856 "type" : "integer"
23857 },
23858 "serial" : {
23859 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
23860 "format" : "urlencoded",
23861 "format_description" : "serial",
23862 "maxLength" : 60,
23863 "optional" : 1,
23864 "type" : "string"
23865 },
27a7acb2
DM
23866 "shared" : {
23867 "default" : 0,
23868 "description" : "Mark this locally-managed volume as available on all nodes",
23869 "optional" : 1,
23870 "type" : "boolean",
23871 "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!"
23872 },
44660702
DM
23873 "size" : {
23874 "description" : "Disk size. This is purely informational and has no effect.",
23875 "format" : "disk-size",
f004f5b9 23876 "format_description" : "DiskSize",
44660702
DM
23877 "optional" : 1,
23878 "type" : "string"
7aacca6f
DM
23879 },
23880 "snapshot" : {
27a7acb2 23881 "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 23882 "optional" : 1,
44660702 23883 "type" : "boolean"
7aacca6f 23884 },
25203dc1
NC
23885 "ssd" : {
23886 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
23887 "optional" : 1,
23888 "type" : "boolean"
23889 },
44660702
DM
23890 "trans" : {
23891 "description" : "Force disk geometry bios translation mode.",
23892 "enum" : [
23893 "none",
23894 "lba",
23895 "auto"
23896 ],
7aacca6f 23897 "optional" : 1,
44660702
DM
23898 "type" : "string"
23899 },
23900 "volume" : {
23901 "alias" : "file"
23902 },
23903 "werror" : {
23904 "description" : "Write error action.",
23905 "enum" : [
23906 "enospc",
23907 "ignore",
23908 "report",
23909 "stop"
23910 ],
44660702
DM
23911 "optional" : 1,
23912 "type" : "string"
95895385
TL
23913 },
23914 "wwn" : {
23915 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
23916 "format_description" : "wwn",
23917 "optional" : 1,
23918 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
23919 "type" : "string"
56122987
DM
23920 }
23921 },
56122987 23922 "optional" : 1,
4bd7df8b 23923 "type" : "string",
7af2edf9 23924 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,model=<model>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
27a7acb2
DM
23925 },
23926 "ipconfig[n]" : {
d2656385 23927 "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
23928 "format" : "pve-qm-ipconfig",
23929 "optional" : 1,
23930 "type" : "string",
23931 "typetext" : "[gw=<GatewayIPv4>] [,gw6=<GatewayIPv6>] [,ip=<IPv4Format/CIDR>] [,ip6=<IPv6Format/CIDR>]"
56122987 23932 },
95895385
TL
23933 "ivshmem" : {
23934 "description" : "Inter-VM shared memory. Useful for direct communication between VMs, or to the host.",
23935 "format" : {
23936 "name" : {
23937 "description" : "The name of the file. Will be prefixed with 'pve-shm-'. Default is the VMID. Will be deleted when the VM is stopped.",
23938 "format_description" : "string",
23939 "optional" : 1,
23940 "pattern" : "[a-zA-Z0-9\\-]+",
23941 "type" : "string"
23942 },
23943 "size" : {
23944 "description" : "The size of the file in MB.",
23945 "minimum" : 1,
23946 "type" : "integer"
23947 }
23948 },
23949 "optional" : 1,
23950 "type" : "string",
23951 "typetext" : "size=<integer> [,name=<string>]"
23952 },
4772952b
TL
23953 "keephugepages" : {
23954 "default" : 0,
23955 "description" : "Use together with hugepages. If enabled, hugepages will not not be deleted after VM shutdown and can be used for subsequent starts.",
23956 "optional" : 1,
23957 "type" : "boolean",
23958 "typetext" : "<boolean>"
23959 },
56122987 23960 "keyboard" : {
35a75dd3 23961 "default" : null,
7af2edf9 23962 "description" : "Keyboard layout for VNC server. This option is generally not required and is often better handled from within the guest OS.",
56122987 23963 "enum" : [
44660702
DM
23964 "de",
23965 "de-ch",
7aacca6f 23966 "da",
56122987 23967 "en-gb",
44660702
DM
23968 "en-us",
23969 "es",
23970 "fi",
23971 "fr",
23972 "fr-be",
23973 "fr-ca",
23974 "fr-ch",
23975 "hu",
7aacca6f 23976 "is",
44660702
DM
23977 "it",
23978 "ja",
23979 "lt",
56122987 23980 "mk",
7aacca6f 23981 "nl",
56122987 23982 "no",
44660702 23983 "pl",
7aacca6f 23984 "pt",
44660702
DM
23985 "pt-br",
23986 "sv",
23987 "sl",
23988 "tr"
56122987 23989 ],
44660702
DM
23990 "optional" : 1,
23991 "type" : "string"
56122987 23992 },
44660702
DM
23993 "kvm" : {
23994 "default" : 1,
23995 "description" : "Enable/disable KVM hardware virtualization.",
7aacca6f 23996 "optional" : 1,
013dc89f
DM
23997 "type" : "boolean",
23998 "typetext" : "<boolean>"
7aacca6f 23999 },
d2656385
TL
24000 "live-restore" : {
24001 "description" : "Start the VM immediately from the backup and restore in background. PBS only.",
24002 "optional" : 1,
24003 "requires" : "archive",
24004 "type" : "boolean",
24005 "typetext" : "<boolean>"
24006 },
44660702 24007 "localtime" : {
5370fa8c 24008 "description" : "Set the real time clock (RTC) to local time. This is enabled by default if the `ostype` indicates a Microsoft Windows OS.",
56122987 24009 "optional" : 1,
013dc89f
DM
24010 "type" : "boolean",
24011 "typetext" : "<boolean>"
44660702
DM
24012 },
24013 "lock" : {
24014 "description" : "Lock/unlock the VM.",
7aacca6f 24015 "enum" : [
7aacca6f 24016 "backup",
5f26e15b
TL
24017 "clone",
24018 "create",
24019 "migrate",
24020 "rollback",
7aacca6f 24021 "snapshot",
95895385
TL
24022 "snapshot-delete",
24023 "suspending",
24024 "suspended"
7aacca6f 24025 ],
44660702
DM
24026 "optional" : 1,
24027 "type" : "string"
56122987 24028 },
44660702 24029 "machine" : {
4d47f125 24030 "description" : "Specifies the Qemu machine type.",
44660702
DM
24031 "maxLength" : 40,
24032 "optional" : 1,
5c1699e5 24033 "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)",
44660702
DM
24034 "type" : "string"
24035 },
24036 "memory" : {
24037 "default" : 512,
24038 "description" : "Amount of RAM for the VM in MB. This is the maximum available memory when you use the balloon device.",
24039 "minimum" : 16,
24040 "optional" : 1,
4bd7df8b 24041 "type" : "integer",
013dc89f 24042 "typetext" : "<integer> (16 - N)"
44660702
DM
24043 },
24044 "migrate_downtime" : {
24045 "default" : 0.1,
24046 "description" : "Set maximum tolerated downtime (in seconds) for migrations.",
24047 "minimum" : 0,
24048 "optional" : 1,
4bd7df8b 24049 "type" : "number",
013dc89f 24050 "typetext" : "<number> (0 - N)"
44660702
DM
24051 },
24052 "migrate_speed" : {
56122987 24053 "default" : 0,
44660702
DM
24054 "description" : "Set maximum speed (in MB/s) for migrations. Value 0 is no limit.",
24055 "minimum" : 0,
56122987 24056 "optional" : 1,
4bd7df8b 24057 "type" : "integer",
013dc89f 24058 "typetext" : "<integer> (0 - N)"
56122987 24059 },
27a7acb2
DM
24060 "name" : {
24061 "description" : "Set a name for the VM. Only used on the configuration web interface.",
24062 "format" : "dns-name",
24063 "optional" : 1,
24064 "type" : "string",
24065 "typetext" : "<string>"
24066 },
24067 "nameserver" : {
de786b48 24068 "description" : "cloud-init: Sets DNS server IP address for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
27a7acb2 24069 "format" : "address-list",
44660702 24070 "optional" : 1,
013dc89f
DM
24071 "type" : "string",
24072 "typetext" : "<string>"
44660702
DM
24073 },
24074 "net[n]" : {
c2993fe5 24075 "description" : "Specify network devices.",
f004f5b9
DM
24076 "format" : {
24077 "bridge" : {
c2993fe5 24078 "description" : "Bridge to attach the network device to. The Proxmox VE standard bridge\nis called 'vmbr0'.\n\nIf you do not specify a bridge, we create a kvm user (NATed) network\ndevice, which provides DHCP and DNS services. The following addresses\nare used:\n\n 10.0.2.2 Gateway\n 10.0.2.3 DNS Server\n 10.0.2.4 SMB Server\n\nThe DHCP server assign addresses to the guest starting from 10.0.2.15.\n",
7af2edf9 24079 "format" : "pve-bridge-id",
f004f5b9
DM
24080 "format_description" : "bridge",
24081 "optional" : 1,
24082 "type" : "string"
24083 },
24084 "e1000" : {
24085 "alias" : "macaddr",
24086 "keyAlias" : "model"
24087 },
24088 "e1000-82540em" : {
24089 "alias" : "macaddr",
24090 "keyAlias" : "model"
24091 },
24092 "e1000-82544gc" : {
24093 "alias" : "macaddr",
24094 "keyAlias" : "model"
24095 },
24096 "e1000-82545em" : {
24097 "alias" : "macaddr",
24098 "keyAlias" : "model"
24099 },
5370fa8c
TL
24100 "e1000e" : {
24101 "alias" : "macaddr",
24102 "keyAlias" : "model"
24103 },
f004f5b9
DM
24104 "firewall" : {
24105 "description" : "Whether this interface should be protected by the firewall.",
24106 "optional" : 1,
24107 "type" : "boolean"
24108 },
24109 "i82551" : {
24110 "alias" : "macaddr",
24111 "keyAlias" : "model"
24112 },
24113 "i82557b" : {
24114 "alias" : "macaddr",
24115 "keyAlias" : "model"
24116 },
24117 "i82559er" : {
24118 "alias" : "macaddr",
24119 "keyAlias" : "model"
24120 },
24121 "link_down" : {
c2993fe5 24122 "description" : "Whether this interface should be disconnected (like pulling the plug).",
f004f5b9
DM
24123 "optional" : 1,
24124 "type" : "boolean"
24125 },
24126 "macaddr" : {
c2993fe5 24127 "description" : "MAC address. That address must be unique withing your network. This is automatically generated if not specified.",
95895385 24128 "format" : "mac-addr",
f004f5b9 24129 "format_description" : "XX:XX:XX:XX:XX:XX",
f004f5b9 24130 "optional" : 1,
95895385
TL
24131 "type" : "string",
24132 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
f004f5b9
DM
24133 },
24134 "model" : {
24135 "default_key" : 1,
c2993fe5 24136 "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 24137 "enum" : [
f004f5b9 24138 "e1000",
5370fa8c
TL
24139 "e1000-82540em",
24140 "e1000-82544gc",
24141 "e1000-82545em",
24142 "e1000e",
f004f5b9
DM
24143 "i82551",
24144 "i82557b",
24145 "i82559er",
5370fa8c
TL
24146 "ne2k_isa",
24147 "ne2k_pci",
24148 "pcnet",
24149 "rtl8139",
24150 "virtio",
24151 "vmxnet3"
f004f5b9 24152 ],
f004f5b9
DM
24153 "type" : "string"
24154 },
ac70d7d1
TL
24155 "mtu" : {
24156 "description" : "Force MTU, for VirtIO only. Set to '1' to use the bridge MTU",
24157 "maximum" : 65520,
24158 "minimum" : 1,
24159 "optional" : 1,
24160 "type" : "integer"
24161 },
f004f5b9
DM
24162 "ne2k_isa" : {
24163 "alias" : "macaddr",
24164 "keyAlias" : "model"
24165 },
24166 "ne2k_pci" : {
24167 "alias" : "macaddr",
24168 "keyAlias" : "model"
24169 },
24170 "pcnet" : {
24171 "alias" : "macaddr",
24172 "keyAlias" : "model"
24173 },
24174 "queues" : {
24175 "description" : "Number of packet queues to be used on the device.",
81a3384d 24176 "maximum" : 64,
f004f5b9
DM
24177 "minimum" : 0,
24178 "optional" : 1,
24179 "type" : "integer"
24180 },
24181 "rate" : {
c2993fe5 24182 "description" : "Rate limit in mbps (megabytes per second) as floating point number.",
f004f5b9
DM
24183 "minimum" : 0,
24184 "optional" : 1,
24185 "type" : "number"
24186 },
24187 "rtl8139" : {
24188 "alias" : "macaddr",
24189 "keyAlias" : "model"
24190 },
24191 "tag" : {
24192 "description" : "VLAN tag to apply to packets on this interface.",
24193 "maximum" : 4094,
c2993fe5 24194 "minimum" : 1,
f004f5b9
DM
24195 "optional" : 1,
24196 "type" : "integer"
24197 },
24198 "trunks" : {
24199 "description" : "VLAN trunks to pass through this interface.",
24200 "format_description" : "vlanid[;vlanid...]",
24201 "optional" : 1,
24202 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
24203 "type" : "string"
24204 },
24205 "virtio" : {
24206 "alias" : "macaddr",
24207 "keyAlias" : "model"
24208 },
24209 "vmxnet3" : {
24210 "alias" : "macaddr",
24211 "keyAlias" : "model"
24212 }
24213 },
44660702 24214 "optional" : 1,
4bd7df8b 24215 "type" : "string",
ac70d7d1 24216 "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
24217 },
24218 "node" : {
24219 "description" : "The cluster node name.",
24220 "format" : "pve-node",
013dc89f
DM
24221 "type" : "string",
24222 "typetext" : "<string>"
44660702
DM
24223 },
24224 "numa" : {
7aacca6f 24225 "default" : 0,
44660702
DM
24226 "description" : "Enable/disable NUMA.",
24227 "optional" : 1,
013dc89f
DM
24228 "type" : "boolean",
24229 "typetext" : "<boolean>"
56122987 24230 },
7aacca6f 24231 "numa[n]" : {
c2993fe5 24232 "description" : "NUMA topology.",
7aacca6f 24233 "format" : {
44660702 24234 "cpus" : {
c2993fe5 24235 "description" : "CPUs accessing this NUMA node.",
44660702
DM
24236 "format_description" : "id[-id];...",
24237 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
24238 "type" : "string"
24239 },
7aacca6f 24240 "hostnodes" : {
c2993fe5 24241 "description" : "Host NUMA nodes to use.",
44660702 24242 "format_description" : "id[-id];...",
7aacca6f 24243 "optional" : 1,
44660702
DM
24244 "pattern" : "(?^:\\d+(?:-\\d+)?(?:;\\d+(?:-\\d+)?)*)",
24245 "type" : "string"
7aacca6f 24246 },
44660702 24247 "memory" : {
c2993fe5 24248 "description" : "Amount of memory this NUMA node provides.",
44660702
DM
24249 "optional" : 1,
24250 "type" : "number"
7aacca6f
DM
24251 },
24252 "policy" : {
c2993fe5 24253 "description" : "NUMA allocation policy.",
7aacca6f
DM
24254 "enum" : [
24255 "preferred",
24256 "bind",
24257 "interleave"
24258 ],
7aacca6f 24259 "optional" : 1,
44660702 24260 "type" : "string"
7aacca6f
DM
24261 }
24262 },
56122987 24263 "optional" : 1,
4bd7df8b
DM
24264 "type" : "string",
24265 "typetext" : "cpus=<id[-id];...> [,hostnodes=<id[-id];...>] [,memory=<number>] [,policy=<preferred|bind|interleave>]"
56122987 24266 },
44660702
DM
24267 "onboot" : {
24268 "default" : 0,
24269 "description" : "Specifies whether a VM will be started during system bootup.",
56122987 24270 "optional" : 1,
013dc89f
DM
24271 "type" : "boolean",
24272 "typetext" : "<boolean>"
56122987
DM
24273 },
24274 "ostype" : {
c2993fe5 24275 "description" : "Specify guest operating system.",
56122987
DM
24276 "enum" : [
24277 "other",
24278 "wxp",
24279 "w2k",
24280 "w2k3",
24281 "w2k8",
24282 "wvista",
24283 "win7",
24284 "win8",
32d876b5 24285 "win10",
5370fa8c 24286 "win11",
56122987
DM
24287 "l24",
24288 "l26",
24289 "solaris"
44660702 24290 ],
56122987 24291 "optional" : 1,
c2993fe5 24292 "type" : "string",
5370fa8c 24293 "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 24294 },
44660702 24295 "parallel[n]" : {
c2993fe5 24296 "description" : "Map host parallel devices (n is 0 to 2).",
56122987 24297 "optional" : 1,
44660702 24298 "pattern" : "/dev/parport\\d+|/dev/usb/lp\\d+",
c2993fe5 24299 "type" : "string",
4772952b 24300 "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 24301 },
44660702
DM
24302 "pool" : {
24303 "description" : "Add the VM to the specified pool.",
24304 "format" : "pve-poolid",
56122987 24305 "optional" : 1,
013dc89f
DM
24306 "type" : "string",
24307 "typetext" : "<string>"
56122987 24308 },
44660702
DM
24309 "protection" : {
24310 "default" : 0,
c2993fe5 24311 "description" : "Sets the protection flag of the VM. This will disable the remove VM and remove disk operations.",
56122987 24312 "optional" : 1,
013dc89f
DM
24313 "type" : "boolean",
24314 "typetext" : "<boolean>"
56122987 24315 },
44660702 24316 "reboot" : {
7aacca6f 24317 "default" : 1,
44660702
DM
24318 "description" : "Allow reboot. If set to '0' the VM exit on reboot.",
24319 "optional" : 1,
013dc89f
DM
24320 "type" : "boolean",
24321 "typetext" : "<boolean>"
56122987 24322 },
c5aa7e14
TL
24323 "rng0" : {
24324 "description" : "Configure a VirtIO-based Random Number Generator.",
24325 "format" : {
24326 "max_bytes" : {
24327 "default" : 1024,
5370fa8c 24328 "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
24329 "optional" : 1,
24330 "type" : "integer"
24331 },
24332 "period" : {
24333 "default" : 1000,
24334 "description" : "Every 'period' milliseconds the entropy-injection quota is reset, allowing the guest to retrieve another 'max_bytes' of entropy.",
24335 "optional" : 1,
24336 "type" : "integer"
24337 },
24338 "source" : {
24339 "default_key" : 1,
5370fa8c 24340 "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
24341 "enum" : [
24342 "/dev/urandom",
24343 "/dev/random",
24344 "/dev/hwrng"
24345 ],
24346 "type" : "string"
24347 }
24348 },
24349 "optional" : 1,
24350 "type" : "string",
24351 "typetext" : "[source=]</dev/urandom|/dev/random|/dev/hwrng> [,max_bytes=<integer>] [,period=<integer>]"
24352 },
56122987 24353 "sata[n]" : {
7af2edf9 24354 "description" : "Use volume as SATA hard disk or CD-ROM (n is 0 to 5). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
56122987 24355 "format" : {
7aacca6f 24356 "aio" : {
44660702 24357 "description" : "AIO type to use.",
56122987 24358 "enum" : [
7aacca6f 24359 "native",
8f4d9c87
TL
24360 "threads",
24361 "io_uring"
56122987 24362 ],
7aacca6f 24363 "optional" : 1,
44660702 24364 "type" : "string"
7aacca6f
DM
24365 },
24366 "backup" : {
7aacca6f 24367 "description" : "Whether the drive should be included when making backups.",
7aacca6f 24368 "optional" : 1,
44660702 24369 "type" : "boolean"
56122987 24370 },
44660702 24371 "bps" : {
de0983cb 24372 "description" : "Maximum r/w speed in bytes per second.",
44660702 24373 "format_description" : "bps",
7aacca6f 24374 "optional" : 1,
44660702 24375 "type" : "integer"
56122987 24376 },
de0983cb
DM
24377 "bps_max_length" : {
24378 "description" : "Maximum length of I/O bursts in seconds.",
24379 "format_description" : "seconds",
24380 "minimum" : 1,
24381 "optional" : 1,
24382 "type" : "integer"
24383 },
44660702 24384 "bps_rd" : {
de0983cb 24385 "description" : "Maximum read speed in bytes per second.",
44660702 24386 "format_description" : "bps",
56122987 24387 "optional" : 1,
44660702 24388 "type" : "integer"
7aacca6f 24389 },
de0983cb 24390 "bps_rd_length" : {
5d9c884c
DM
24391 "alias" : "bps_rd_max_length"
24392 },
24393 "bps_rd_max_length" : {
de0983cb
DM
24394 "description" : "Maximum length of read I/O bursts in seconds.",
24395 "format_description" : "seconds",
24396 "minimum" : 1,
24397 "optional" : 1,
24398 "type" : "integer"
24399 },
44660702 24400 "bps_wr" : {
de0983cb 24401 "description" : "Maximum write speed in bytes per second.",
44660702 24402 "format_description" : "bps",
56122987 24403 "optional" : 1,
44660702 24404 "type" : "integer"
56122987 24405 },
de0983cb 24406 "bps_wr_length" : {
5d9c884c
DM
24407 "alias" : "bps_wr_max_length"
24408 },
24409 "bps_wr_max_length" : {
de0983cb
DM
24410 "description" : "Maximum length of write I/O bursts in seconds.",
24411 "format_description" : "seconds",
24412 "minimum" : 1,
24413 "optional" : 1,
24414 "type" : "integer"
24415 },
7aacca6f 24416 "cache" : {
7aacca6f
DM
24417 "description" : "The drive's cache mode",
24418 "enum" : [
24419 "none",
24420 "writethrough",
24421 "writeback",
24422 "unsafe",
24423 "directsync"
24424 ],
44660702
DM
24425 "optional" : 1,
24426 "type" : "string"
56122987 24427 },
44660702
DM
24428 "cyls" : {
24429 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
56122987 24430 "optional" : 1,
7aacca6f 24431 "type" : "integer"
56122987 24432 },
7aacca6f
DM
24433 "detect_zeroes" : {
24434 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 24435 "optional" : 1,
7aacca6f 24436 "type" : "boolean"
56122987 24437 },
44660702
DM
24438 "discard" : {
24439 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
24440 "enum" : [
24441 "ignore",
24442 "on"
24443 ],
56122987 24444 "optional" : 1,
44660702 24445 "type" : "string"
56122987 24446 },
44660702
DM
24447 "file" : {
24448 "default_key" : 1,
24449 "description" : "The drive's backing volume.",
24450 "format" : "pve-volume-id-or-qm-path",
24451 "format_description" : "volume",
24452 "type" : "string"
56122987
DM
24453 },
24454 "format" : {
44660702 24455 "description" : "The drive's backing file's data format.",
56122987
DM
24456 "enum" : [
24457 "raw",
24458 "cow",
24459 "qcow",
24460 "qed",
24461 "qcow2",
24462 "vmdk",
24463 "cloop"
24464 ],
56122987 24465 "optional" : 1,
44660702 24466 "type" : "string"
56122987 24467 },
7aacca6f 24468 "heads" : {
7aacca6f 24469 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
24470 "optional" : 1,
24471 "type" : "integer"
56122987 24472 },
7af2edf9
TL
24473 "import-from" : {
24474 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
24475 "format" : "pve-volume-id-or-absolute-path",
24476 "format_description" : "source volume",
24477 "optional" : 1,
24478 "type" : "string"
24479 },
44660702 24480 "iops" : {
de0983cb 24481 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
24482 "format_description" : "iops",
24483 "optional" : 1,
24484 "type" : "integer"
56122987 24485 },
44660702 24486 "iops_max" : {
de0983cb 24487 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 24488 "format_description" : "iops",
56122987 24489 "optional" : 1,
44660702 24490 "type" : "integer"
56122987 24491 },
de0983cb
DM
24492 "iops_max_length" : {
24493 "description" : "Maximum length of I/O bursts in seconds.",
24494 "format_description" : "seconds",
24495 "minimum" : 1,
24496 "optional" : 1,
24497 "type" : "integer"
24498 },
44660702 24499 "iops_rd" : {
de0983cb 24500 "description" : "Maximum read I/O in operations per second.",
44660702 24501 "format_description" : "iops",
56122987 24502 "optional" : 1,
44660702 24503 "type" : "integer"
56122987 24504 },
de0983cb 24505 "iops_rd_length" : {
5d9c884c 24506 "alias" : "iops_rd_max_length"
de0983cb 24507 },
44660702 24508 "iops_rd_max" : {
de0983cb 24509 "description" : "Maximum unthrottled read I/O pool in operations per second.",
7aacca6f 24510 "format_description" : "iops",
56122987 24511 "optional" : 1,
44660702 24512 "type" : "integer"
56122987 24513 },
5d9c884c
DM
24514 "iops_rd_max_length" : {
24515 "description" : "Maximum length of read I/O bursts in seconds.",
24516 "format_description" : "seconds",
24517 "minimum" : 1,
24518 "optional" : 1,
24519 "type" : "integer"
24520 },
44660702 24521 "iops_wr" : {
de0983cb 24522 "description" : "Maximum write I/O in operations per second.",
44660702 24523 "format_description" : "iops",
7aacca6f 24524 "optional" : 1,
44660702 24525 "type" : "integer"
7aacca6f 24526 },
de0983cb 24527 "iops_wr_length" : {
5d9c884c 24528 "alias" : "iops_wr_max_length"
de0983cb 24529 },
44660702 24530 "iops_wr_max" : {
de0983cb 24531 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 24532 "format_description" : "iops",
56122987 24533 "optional" : 1,
7aacca6f 24534 "type" : "integer"
56122987 24535 },
5d9c884c
DM
24536 "iops_wr_max_length" : {
24537 "description" : "Maximum length of write I/O bursts in seconds.",
24538 "format_description" : "seconds",
24539 "minimum" : 1,
24540 "optional" : 1,
24541 "type" : "integer"
24542 },
44660702 24543 "mbps" : {
de0983cb 24544 "description" : "Maximum r/w speed in megabytes per second.",
44660702 24545 "format_description" : "mbps",
56122987 24546 "optional" : 1,
44660702 24547 "type" : "number"
56122987 24548 },
44660702 24549 "mbps_max" : {
de0983cb 24550 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 24551 "format_description" : "mbps",
7aacca6f 24552 "optional" : 1,
44660702 24553 "type" : "number"
7aacca6f 24554 },
44660702 24555 "mbps_rd" : {
de0983cb 24556 "description" : "Maximum read speed in megabytes per second.",
44660702 24557 "format_description" : "mbps",
7aacca6f 24558 "optional" : 1,
44660702 24559 "type" : "number"
7aacca6f 24560 },
44660702 24561 "mbps_rd_max" : {
de0983cb 24562 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 24563 "format_description" : "mbps",
7aacca6f 24564 "optional" : 1,
44660702 24565 "type" : "number"
7aacca6f 24566 },
44660702 24567 "mbps_wr" : {
de0983cb 24568 "description" : "Maximum write speed in megabytes per second.",
44660702 24569 "format_description" : "mbps",
7aacca6f 24570 "optional" : 1,
44660702 24571 "type" : "number"
7aacca6f
DM
24572 },
24573 "mbps_wr_max" : {
de0983cb 24574 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 24575 "format_description" : "mbps",
7aacca6f 24576 "optional" : 1,
44660702 24577 "type" : "number"
7aacca6f 24578 },
44660702
DM
24579 "media" : {
24580 "default" : "disk",
24581 "description" : "The drive's media type.",
56122987 24582 "enum" : [
44660702
DM
24583 "cdrom",
24584 "disk"
56122987 24585 ],
56122987 24586 "optional" : 1,
44660702 24587 "type" : "string"
56122987 24588 },
5d9c884c
DM
24589 "replicate" : {
24590 "default" : 1,
24591 "description" : "Whether the drive should considered for replication jobs.",
24592 "optional" : 1,
24593 "type" : "boolean"
24594 },
44660702
DM
24595 "rerror" : {
24596 "description" : "Read error action.",
7aacca6f
DM
24597 "enum" : [
24598 "ignore",
44660702
DM
24599 "report",
24600 "stop"
7aacca6f 24601 ],
56122987 24602 "optional" : 1,
44660702 24603 "type" : "string"
56122987 24604 },
44660702
DM
24605 "secs" : {
24606 "description" : "Force the drive's physical geometry to have a specific sector count.",
56122987 24607 "optional" : 1,
44660702 24608 "type" : "integer"
56122987 24609 },
44660702
DM
24610 "serial" : {
24611 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
24612 "format" : "urlencoded",
24613 "format_description" : "serial",
24614 "maxLength" : 60,
24615 "optional" : 1,
24616 "type" : "string"
7aacca6f 24617 },
27a7acb2
DM
24618 "shared" : {
24619 "default" : 0,
24620 "description" : "Mark this locally-managed volume as available on all nodes",
24621 "optional" : 1,
24622 "type" : "boolean",
24623 "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!"
24624 },
7aacca6f
DM
24625 "size" : {
24626 "description" : "Disk size. This is purely informational and has no effect.",
44660702 24627 "format" : "disk-size",
f004f5b9 24628 "format_description" : "DiskSize",
56122987 24629 "optional" : 1,
44660702 24630 "type" : "string"
56122987 24631 },
44660702 24632 "snapshot" : {
27a7acb2 24633 "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 24634 "optional" : 1,
44660702 24635 "type" : "boolean"
56122987 24636 },
25203dc1
NC
24637 "ssd" : {
24638 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
24639 "optional" : 1,
24640 "type" : "boolean"
24641 },
44660702
DM
24642 "trans" : {
24643 "description" : "Force disk geometry bios translation mode.",
56122987 24644 "enum" : [
44660702
DM
24645 "none",
24646 "lba",
24647 "auto"
7aacca6f 24648 ],
44660702
DM
24649 "optional" : 1,
24650 "type" : "string"
24651 },
24652 "volume" : {
24653 "alias" : "file"
56122987
DM
24654 },
24655 "werror" : {
56122987
DM
24656 "description" : "Write error action.",
24657 "enum" : [
24658 "enospc",
24659 "ignore",
24660 "report",
24661 "stop"
24662 ],
56122987 24663 "optional" : 1,
44660702 24664 "type" : "string"
95895385
TL
24665 },
24666 "wwn" : {
24667 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
24668 "format_description" : "wwn",
24669 "optional" : 1,
24670 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
24671 "type" : "string"
44660702
DM
24672 }
24673 },
24674 "optional" : 1,
4bd7df8b 24675 "type" : "string",
7af2edf9 24676 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
44660702
DM
24677 },
24678 "scsi[n]" : {
7af2edf9 24679 "description" : "Use volume as SCSI hard disk or CD-ROM (n is 0 to 30). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
44660702
DM
24680 "format" : {
24681 "aio" : {
24682 "description" : "AIO type to use.",
24683 "enum" : [
24684 "native",
8f4d9c87
TL
24685 "threads",
24686 "io_uring"
44660702 24687 ],
44660702
DM
24688 "optional" : 1,
24689 "type" : "string"
56122987 24690 },
7aacca6f 24691 "backup" : {
44660702 24692 "description" : "Whether the drive should be included when making backups.",
7aacca6f 24693 "optional" : 1,
44660702 24694 "type" : "boolean"
7aacca6f 24695 },
44660702 24696 "bps" : {
de0983cb 24697 "description" : "Maximum r/w speed in bytes per second.",
44660702 24698 "format_description" : "bps",
7aacca6f 24699 "optional" : 1,
44660702 24700 "type" : "integer"
7aacca6f 24701 },
de0983cb
DM
24702 "bps_max_length" : {
24703 "description" : "Maximum length of I/O bursts in seconds.",
24704 "format_description" : "seconds",
24705 "minimum" : 1,
24706 "optional" : 1,
24707 "type" : "integer"
24708 },
44660702 24709 "bps_rd" : {
de0983cb 24710 "description" : "Maximum read speed in bytes per second.",
44660702 24711 "format_description" : "bps",
56122987 24712 "optional" : 1,
44660702 24713 "type" : "integer"
56122987 24714 },
de0983cb 24715 "bps_rd_length" : {
5d9c884c
DM
24716 "alias" : "bps_rd_max_length"
24717 },
24718 "bps_rd_max_length" : {
de0983cb
DM
24719 "description" : "Maximum length of read I/O bursts in seconds.",
24720 "format_description" : "seconds",
24721 "minimum" : 1,
24722 "optional" : 1,
24723 "type" : "integer"
24724 },
44660702 24725 "bps_wr" : {
de0983cb 24726 "description" : "Maximum write speed in bytes per second.",
44660702 24727 "format_description" : "bps",
7aacca6f 24728 "optional" : 1,
44660702 24729 "type" : "integer"
56122987 24730 },
de0983cb 24731 "bps_wr_length" : {
5d9c884c
DM
24732 "alias" : "bps_wr_max_length"
24733 },
24734 "bps_wr_max_length" : {
de0983cb
DM
24735 "description" : "Maximum length of write I/O bursts in seconds.",
24736 "format_description" : "seconds",
24737 "minimum" : 1,
24738 "optional" : 1,
24739 "type" : "integer"
24740 },
44660702
DM
24741 "cache" : {
24742 "description" : "The drive's cache mode",
7aacca6f
DM
24743 "enum" : [
24744 "none",
44660702
DM
24745 "writethrough",
24746 "writeback",
24747 "unsafe",
24748 "directsync"
7aacca6f 24749 ],
56122987 24750 "optional" : 1,
44660702 24751 "type" : "string"
56122987 24752 },
7aacca6f
DM
24753 "cyls" : {
24754 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
24755 "optional" : 1,
44660702 24756 "type" : "integer"
7aacca6f 24757 },
44660702
DM
24758 "detect_zeroes" : {
24759 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
56122987 24760 "optional" : 1,
44660702 24761 "type" : "boolean"
56122987 24762 },
44660702
DM
24763 "discard" : {
24764 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
7aacca6f 24765 "enum" : [
44660702
DM
24766 "ignore",
24767 "on"
7aacca6f 24768 ],
7aacca6f 24769 "optional" : 1,
44660702 24770 "type" : "string"
56122987
DM
24771 },
24772 "file" : {
7aacca6f
DM
24773 "default_key" : 1,
24774 "description" : "The drive's backing volume.",
44660702
DM
24775 "format" : "pve-volume-id-or-qm-path",
24776 "format_description" : "volume",
7aacca6f 24777 "type" : "string"
56122987 24778 },
7aacca6f 24779 "format" : {
44660702 24780 "description" : "The drive's backing file's data format.",
56122987 24781 "enum" : [
7aacca6f
DM
24782 "raw",
24783 "cow",
24784 "qcow",
24785 "qed",
24786 "qcow2",
24787 "vmdk",
24788 "cloop"
56122987 24789 ],
44660702
DM
24790 "optional" : 1,
24791 "type" : "string"
56122987 24792 },
44660702
DM
24793 "heads" : {
24794 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
24795 "optional" : 1,
24796 "type" : "integer"
24797 },
7af2edf9
TL
24798 "import-from" : {
24799 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
24800 "format" : "pve-volume-id-or-absolute-path",
24801 "format_description" : "source volume",
24802 "optional" : 1,
24803 "type" : "string"
24804 },
44660702 24805 "iops" : {
de0983cb 24806 "description" : "Maximum r/w I/O in operations per second.",
7aacca6f 24807 "format_description" : "iops",
56122987 24808 "optional" : 1,
44660702 24809 "type" : "integer"
56122987 24810 },
44660702 24811 "iops_max" : {
de0983cb 24812 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702 24813 "format_description" : "iops",
7aacca6f 24814 "optional" : 1,
44660702 24815 "type" : "integer"
56122987 24816 },
de0983cb
DM
24817 "iops_max_length" : {
24818 "description" : "Maximum length of I/O bursts in seconds.",
24819 "format_description" : "seconds",
24820 "minimum" : 1,
24821 "optional" : 1,
24822 "type" : "integer"
24823 },
44660702 24824 "iops_rd" : {
de0983cb 24825 "description" : "Maximum read I/O in operations per second.",
44660702 24826 "format_description" : "iops",
56122987 24827 "optional" : 1,
44660702 24828 "type" : "integer"
56122987 24829 },
de0983cb 24830 "iops_rd_length" : {
5d9c884c 24831 "alias" : "iops_rd_max_length"
de0983cb 24832 },
44660702 24833 "iops_rd_max" : {
de0983cb 24834 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
24835 "format_description" : "iops",
24836 "optional" : 1,
24837 "type" : "integer"
56122987 24838 },
5d9c884c
DM
24839 "iops_rd_max_length" : {
24840 "description" : "Maximum length of read I/O bursts in seconds.",
24841 "format_description" : "seconds",
24842 "minimum" : 1,
24843 "optional" : 1,
24844 "type" : "integer"
24845 },
44660702 24846 "iops_wr" : {
de0983cb 24847 "description" : "Maximum write I/O in operations per second.",
44660702 24848 "format_description" : "iops",
56122987 24849 "optional" : 1,
44660702 24850 "type" : "integer"
56122987 24851 },
de0983cb 24852 "iops_wr_length" : {
5d9c884c 24853 "alias" : "iops_wr_max_length"
de0983cb 24854 },
44660702 24855 "iops_wr_max" : {
de0983cb 24856 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702 24857 "format_description" : "iops",
56122987 24858 "optional" : 1,
56122987
DM
24859 "type" : "integer"
24860 },
5d9c884c
DM
24861 "iops_wr_max_length" : {
24862 "description" : "Maximum length of write I/O bursts in seconds.",
24863 "format_description" : "seconds",
24864 "minimum" : 1,
24865 "optional" : 1,
24866 "type" : "integer"
24867 },
44660702
DM
24868 "iothread" : {
24869 "description" : "Whether to use iothreads for this drive",
44660702
DM
24870 "optional" : 1,
24871 "type" : "boolean"
24872 },
24873 "mbps" : {
de0983cb 24874 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
24875 "format_description" : "mbps",
24876 "optional" : 1,
24877 "type" : "number"
24878 },
7aacca6f 24879 "mbps_max" : {
de0983cb 24880 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702 24881 "format_description" : "mbps",
56122987 24882 "optional" : 1,
44660702 24883 "type" : "number"
56122987 24884 },
44660702 24885 "mbps_rd" : {
de0983cb 24886 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
24887 "format_description" : "mbps",
24888 "optional" : 1,
24889 "type" : "number"
56122987 24890 },
44660702 24891 "mbps_rd_max" : {
de0983cb 24892 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702 24893 "format_description" : "mbps",
56122987 24894 "optional" : 1,
44660702 24895 "type" : "number"
56122987 24896 },
44660702 24897 "mbps_wr" : {
de0983cb 24898 "description" : "Maximum write speed in megabytes per second.",
44660702 24899 "format_description" : "mbps",
56122987 24900 "optional" : 1,
44660702 24901 "type" : "number"
56122987 24902 },
44660702 24903 "mbps_wr_max" : {
de0983cb 24904 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702 24905 "format_description" : "mbps",
7aacca6f 24906 "optional" : 1,
44660702 24907 "type" : "number"
56122987 24908 },
7aacca6f 24909 "media" : {
44660702 24910 "default" : "disk",
7aacca6f
DM
24911 "description" : "The drive's media type.",
24912 "enum" : [
24913 "cdrom",
24914 "disk"
24915 ],
56122987 24916 "optional" : 1,
44660702 24917 "type" : "string"
56122987 24918 },
44660702
DM
24919 "queues" : {
24920 "description" : "Number of queues.",
44660702
DM
24921 "minimum" : 2,
24922 "optional" : 1,
24923 "type" : "integer"
56122987 24924 },
5d9c884c
DM
24925 "replicate" : {
24926 "default" : 1,
24927 "description" : "Whether the drive should considered for replication jobs.",
24928 "optional" : 1,
24929 "type" : "boolean"
24930 },
24931 "rerror" : {
24932 "description" : "Read error action.",
24933 "enum" : [
24934 "ignore",
24935 "report",
24936 "stop"
24937 ],
24938 "optional" : 1,
24939 "type" : "string"
24940 },
5370fa8c
TL
24941 "ro" : {
24942 "description" : "Whether the drive is read-only.",
24943 "optional" : 1,
24944 "type" : "boolean"
24945 },
52e44c50
FG
24946 "scsiblock" : {
24947 "default" : 0,
24948 "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",
24949 "optional" : 1,
24950 "type" : "boolean"
24951 },
7aacca6f 24952 "secs" : {
7aacca6f 24953 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
24954 "optional" : 1,
24955 "type" : "integer"
24956 },
24957 "serial" : {
24958 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
24959 "format" : "urlencoded",
24960 "format_description" : "serial",
24961 "maxLength" : 60,
24962 "optional" : 1,
24963 "type" : "string"
24964 },
27a7acb2
DM
24965 "shared" : {
24966 "default" : 0,
24967 "description" : "Mark this locally-managed volume as available on all nodes",
24968 "optional" : 1,
24969 "type" : "boolean",
24970 "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!"
24971 },
44660702
DM
24972 "size" : {
24973 "description" : "Disk size. This is purely informational and has no effect.",
24974 "format" : "disk-size",
f004f5b9 24975 "format_description" : "DiskSize",
44660702
DM
24976 "optional" : 1,
24977 "type" : "string"
24978 },
24979 "snapshot" : {
27a7acb2 24980 "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
24981 "optional" : 1,
24982 "type" : "boolean"
24983 },
25203dc1
NC
24984 "ssd" : {
24985 "description" : "Whether to expose this drive as an SSD, rather than a rotational hard disk.",
24986 "optional" : 1,
24987 "type" : "boolean"
24988 },
44660702
DM
24989 "trans" : {
24990 "description" : "Force disk geometry bios translation mode.",
24991 "enum" : [
24992 "none",
24993 "lba",
24994 "auto"
24995 ],
44660702
DM
24996 "optional" : 1,
24997 "type" : "string"
24998 },
24999 "volume" : {
25000 "alias" : "file"
25001 },
25002 "werror" : {
25003 "description" : "Write error action.",
25004 "enum" : [
25005 "enospc",
25006 "ignore",
25007 "report",
25008 "stop"
25009 ],
44660702
DM
25010 "optional" : 1,
25011 "type" : "string"
95895385
TL
25012 },
25013 "wwn" : {
25014 "description" : "The drive's worldwide name, encoded as 16 bytes hex string, prefixed by '0x'.",
25015 "format_description" : "wwn",
25016 "optional" : 1,
25017 "pattern" : "(?^:^(0x)[0-9a-fA-F]{16})",
25018 "type" : "string"
56122987
DM
25019 }
25020 },
7aacca6f 25021 "optional" : 1,
4bd7df8b 25022 "type" : "string",
7af2edf9 25023 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,queues=<integer>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,scsiblock=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,ssd=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>] [,wwn=<wwn>]"
56122987 25024 },
44660702
DM
25025 "scsihw" : {
25026 "default" : "lsi",
c2993fe5 25027 "description" : "SCSI controller model",
44660702
DM
25028 "enum" : [
25029 "lsi",
25030 "lsi53c810",
25031 "virtio-scsi-pci",
25032 "virtio-scsi-single",
25033 "megasas",
25034 "pvscsi"
25035 ],
7aacca6f 25036 "optional" : 1,
44660702 25037 "type" : "string"
7aacca6f 25038 },
27a7acb2 25039 "searchdomain" : {
de786b48 25040 "description" : "cloud-init: Sets DNS search domains for a container. Create will automatically use the setting from the host if neither searchdomain nor nameserver are set.",
27a7acb2
DM
25041 "optional" : 1,
25042 "type" : "string",
25043 "typetext" : "<string>"
25044 },
44660702 25045 "serial[n]" : {
c2993fe5 25046 "description" : "Create a serial device inside the VM (n is 0 to 3)",
44660702
DM
25047 "optional" : 1,
25048 "pattern" : "(/dev/.+|socket)",
c2993fe5 25049 "type" : "string",
4772952b 25050 "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
25051 },
25052 "shares" : {
25053 "default" : 1000,
5da3d723 25054 "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
25055 "maximum" : 50000,
25056 "minimum" : 0,
25057 "optional" : 1,
4bd7df8b 25058 "type" : "integer",
013dc89f 25059 "typetext" : "<integer> (0 - 50000)"
44660702
DM
25060 },
25061 "smbios1" : {
25062 "description" : "Specify SMBIOS type 1 fields.",
25063 "format" : "pve-qm-smbios1",
1e3f8156 25064 "maxLength" : 512,
7aacca6f 25065 "optional" : 1,
4bd7df8b 25066 "type" : "string",
1e3f8156 25067 "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
25068 },
25069 "smp" : {
44660702 25070 "default" : 1,
7aacca6f 25071 "description" : "The number of CPUs. Please use option -sockets instead.",
44660702 25072 "minimum" : 1,
56122987 25073 "optional" : 1,
4bd7df8b 25074 "type" : "integer",
013dc89f 25075 "typetext" : "<integer> (1 - N)"
44660702
DM
25076 },
25077 "sockets" : {
7aacca6f 25078 "default" : 1,
44660702
DM
25079 "description" : "The number of CPU sockets.",
25080 "minimum" : 1,
25081 "optional" : 1,
4bd7df8b 25082 "type" : "integer",
013dc89f 25083 "typetext" : "<integer> (1 - N)"
7aacca6f 25084 },
1c532546
TL
25085 "spice_enhancements" : {
25086 "description" : "Configure additional enhancements for SPICE.",
25087 "format" : {
25088 "foldersharing" : {
25089 "default" : "0",
25090 "description" : "Enable folder sharing via SPICE. Needs Spice-WebDAV daemon installed in the VM.",
25091 "optional" : 1,
25092 "type" : "boolean"
25093 },
25094 "videostreaming" : {
25095 "default" : "off",
25096 "description" : "Enable video streaming. Uses compression for detected video streams.",
25097 "enum" : [
25098 "off",
25099 "all",
25100 "filter"
25101 ],
25102 "optional" : 1,
25103 "type" : "string"
25104 }
25105 },
25106 "optional" : 1,
25107 "type" : "string",
25108 "typetext" : "[foldersharing=<1|0>] [,videostreaming=<off|all|filter>]"
25109 },
27a7acb2
DM
25110 "sshkeys" : {
25111 "description" : "cloud-init: Setup public SSH keys (one key per line, OpenSSH format).",
25112 "format" : "urlencoded",
25113 "optional" : 1,
25114 "type" : "string",
25115 "typetext" : "<string>"
25116 },
5da3d723
TL
25117 "start" : {
25118 "default" : 0,
25119 "description" : "Start VM after it was created successfully.",
25120 "optional" : 1,
25121 "type" : "boolean",
25122 "typetext" : "<boolean>"
25123 },
44660702
DM
25124 "startdate" : {
25125 "default" : "now",
4772952b 25126 "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
25127 "optional" : 1,
25128 "pattern" : "(now|\\d{4}-\\d{1,2}-\\d{1,2}(T\\d{1,2}:\\d{1,2}:\\d{1,2})?)",
25129 "type" : "string",
25130 "typetext" : "(now | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS)"
25131 },
25132 "startup" : {
25133 "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.",
25134 "format" : "pve-startup-order",
25135 "optional" : 1,
25136 "type" : "string",
25137 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
25138 },
25139 "storage" : {
25140 "description" : "Default storage.",
25141 "format" : "pve-storage-id",
7aacca6f 25142 "optional" : 1,
013dc89f
DM
25143 "type" : "string",
25144 "typetext" : "<string>"
56122987 25145 },
44660702
DM
25146 "tablet" : {
25147 "default" : 1,
c2993fe5 25148 "description" : "Enable/disable the USB tablet device.",
56122987 25149 "optional" : 1,
c2993fe5 25150 "type" : "boolean",
013dc89f 25151 "typetext" : "<boolean>",
4772952b 25152 "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 25153 },
5c1699e5
TL
25154 "tags" : {
25155 "description" : "Tags of the VM. This is only meta information.",
25156 "format" : "pve-tag-list",
25157 "optional" : 1,
25158 "type" : "string",
25159 "typetext" : "<string>"
25160 },
44660702
DM
25161 "tdf" : {
25162 "default" : 0,
25163 "description" : "Enable/disable time drift fix.",
25164 "optional" : 1,
013dc89f
DM
25165 "type" : "boolean",
25166 "typetext" : "<boolean>"
7aacca6f
DM
25167 },
25168 "template" : {
7aacca6f 25169 "default" : 0,
44660702 25170 "description" : "Enable/disable Template.",
7aacca6f 25171 "optional" : 1,
013dc89f
DM
25172 "type" : "boolean",
25173 "typetext" : "<boolean>"
7aacca6f 25174 },
5370fa8c 25175 "tpmstate0" : {
7af2edf9 25176 "description" : "Configure a Disk for storing TPM state. The format is fixed to 'raw'. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Note that SIZE_IN_GiB is ignored here and 4 MiB will be used instead. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
5370fa8c
TL
25177 "format" : {
25178 "file" : {
25179 "default_key" : 1,
25180 "description" : "The drive's backing volume.",
25181 "format" : "pve-volume-id-or-qm-path",
25182 "format_description" : "volume",
25183 "type" : "string"
25184 },
7af2edf9
TL
25185 "import-from" : {
25186 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
25187 "format" : "pve-volume-id-or-absolute-path",
25188 "format_description" : "source volume",
25189 "optional" : 1,
25190 "type" : "string"
25191 },
5370fa8c
TL
25192 "size" : {
25193 "description" : "Disk size. This is purely informational and has no effect.",
25194 "format" : "disk-size",
25195 "format_description" : "DiskSize",
25196 "optional" : 1,
25197 "type" : "string"
25198 },
25199 "version" : {
25200 "default" : "v2.0",
25201 "description" : "The TPM interface version. v2.0 is newer and should be preferred. Note that this cannot be changed later on.",
25202 "enum" : [
25203 "v1.2",
25204 "v2.0"
25205 ],
25206 "optional" : 1,
25207 "type" : "string"
25208 },
25209 "volume" : {
25210 "alias" : "file"
25211 }
25212 },
25213 "optional" : 1,
25214 "type" : "string",
7af2edf9 25215 "typetext" : "[file=]<volume> [,import-from=<source volume>] [,size=<DiskSize>] [,version=<v1.2|v2.0>]"
5370fa8c 25216 },
44660702
DM
25217 "unique" : {
25218 "description" : "Assign a unique random ethernet address.",
7aacca6f 25219 "optional" : 1,
44660702 25220 "requires" : "archive",
013dc89f
DM
25221 "type" : "boolean",
25222 "typetext" : "<boolean>"
56122987 25223 },
44660702 25224 "unused[n]" : {
c2993fe5 25225 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
25226 "format" : {
25227 "file" : {
25228 "default_key" : 1,
25229 "description" : "The drive's backing volume.",
25230 "format" : "pve-volume-id",
25231 "format_description" : "volume",
25232 "type" : "string"
25233 },
25234 "volume" : {
25235 "alias" : "file"
25236 }
25237 },
7aacca6f 25238 "optional" : 1,
013dc89f 25239 "type" : "string",
c5aa7e14 25240 "typetext" : "[file=]<volume>"
44660702
DM
25241 },
25242 "usb[n]" : {
4e7f60c2 25243 "description" : "Configure an USB device (n is 0 to 4, for machine version >= 7.1 and ostype l26 or windows > 7, n can be up to 14).",
56122987 25244 "format" : {
7aacca6f
DM
25245 "host" : {
25246 "default_key" : 1,
4772952b 25247 "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 25248 "format" : "pve-qm-usb-device",
44660702
DM
25249 "format_description" : "HOSTUSBDEVICE|spice",
25250 "type" : "string"
7aacca6f 25251 },
56122987 25252 "usb3" : {
c2993fe5 25253 "default" : 0,
4e7f60c2 25254 "description" : "Specifies whether if given host option is a USB3 device or port. For modern guests (machine version >= 7.1 and ostype l26 and windows > 7), this flag is irrelevant (all devices are plugged into a xhci controller).",
56122987 25255 "optional" : 1,
56122987 25256 "type" : "boolean"
7aacca6f 25257 }
56122987 25258 },
56122987 25259 "optional" : 1,
4bd7df8b
DM
25260 "type" : "string",
25261 "typetext" : "[host=]<HOSTUSBDEVICE|spice> [,usb3=<1|0>]"
56122987 25262 },
44660702
DM
25263 "vcpus" : {
25264 "default" : 0,
25265 "description" : "Number of hotplugged vcpus.",
25266 "minimum" : 1,
56122987 25267 "optional" : 1,
4bd7df8b 25268 "type" : "integer",
013dc89f 25269 "typetext" : "<integer> (1 - N)"
7aacca6f 25270 },
44660702 25271 "vga" : {
e2d681b3
TL
25272 "description" : "Configure the VGA hardware.",
25273 "format" : {
25274 "memory" : {
25275 "description" : "Sets the VGA memory (in MiB). Has no effect with serial display.",
25276 "maximum" : 512,
25277 "minimum" : 4,
25278 "optional" : 1,
25279 "type" : "integer"
25280 },
25281 "type" : {
25282 "default" : "std",
25283 "default_key" : 1,
25284 "description" : "Select the VGA type.",
25285 "enum" : [
25286 "cirrus",
25287 "qxl",
25288 "qxl2",
25289 "qxl3",
25290 "qxl4",
5f26e15b 25291 "none",
e2d681b3
TL
25292 "serial0",
25293 "serial1",
25294 "serial2",
25295 "serial3",
25296 "std",
25297 "virtio",
7af2edf9 25298 "virtio-gl",
e2d681b3
TL
25299 "vmware"
25300 ],
25301 "optional" : 1,
25302 "type" : "string"
25303 }
25304 },
44660702 25305 "optional" : 1,
c2993fe5 25306 "type" : "string",
e2d681b3
TL
25307 "typetext" : "[[type=]<enum>] [,memory=<integer>]",
25308 "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 25309 },
44660702 25310 "virtio[n]" : {
7af2edf9 25311 "description" : "Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume. Use STORAGE_ID:0 and the 'import-from' parameter to import from an existing volume.",
44660702
DM
25312 "format" : {
25313 "aio" : {
25314 "description" : "AIO type to use.",
25315 "enum" : [
25316 "native",
8f4d9c87
TL
25317 "threads",
25318 "io_uring"
44660702 25319 ],
44660702
DM
25320 "optional" : 1,
25321 "type" : "string"
25322 },
25323 "backup" : {
25324 "description" : "Whether the drive should be included when making backups.",
44660702
DM
25325 "optional" : 1,
25326 "type" : "boolean"
25327 },
25328 "bps" : {
de0983cb 25329 "description" : "Maximum r/w speed in bytes per second.",
44660702
DM
25330 "format_description" : "bps",
25331 "optional" : 1,
25332 "type" : "integer"
25333 },
de0983cb
DM
25334 "bps_max_length" : {
25335 "description" : "Maximum length of I/O bursts in seconds.",
25336 "format_description" : "seconds",
25337 "minimum" : 1,
25338 "optional" : 1,
25339 "type" : "integer"
25340 },
44660702 25341 "bps_rd" : {
de0983cb 25342 "description" : "Maximum read speed in bytes per second.",
44660702
DM
25343 "format_description" : "bps",
25344 "optional" : 1,
25345 "type" : "integer"
25346 },
de0983cb 25347 "bps_rd_length" : {
5d9c884c
DM
25348 "alias" : "bps_rd_max_length"
25349 },
25350 "bps_rd_max_length" : {
de0983cb
DM
25351 "description" : "Maximum length of read I/O bursts in seconds.",
25352 "format_description" : "seconds",
25353 "minimum" : 1,
25354 "optional" : 1,
25355 "type" : "integer"
25356 },
44660702 25357 "bps_wr" : {
de0983cb 25358 "description" : "Maximum write speed in bytes per second.",
44660702
DM
25359 "format_description" : "bps",
25360 "optional" : 1,
25361 "type" : "integer"
25362 },
de0983cb 25363 "bps_wr_length" : {
5d9c884c
DM
25364 "alias" : "bps_wr_max_length"
25365 },
25366 "bps_wr_max_length" : {
de0983cb
DM
25367 "description" : "Maximum length of write I/O bursts in seconds.",
25368 "format_description" : "seconds",
25369 "minimum" : 1,
25370 "optional" : 1,
25371 "type" : "integer"
25372 },
44660702
DM
25373 "cache" : {
25374 "description" : "The drive's cache mode",
25375 "enum" : [
25376 "none",
25377 "writethrough",
25378 "writeback",
25379 "unsafe",
25380 "directsync"
25381 ],
44660702
DM
25382 "optional" : 1,
25383 "type" : "string"
25384 },
25385 "cyls" : {
25386 "description" : "Force the drive's physical geometry to have a specific cylinder count.",
44660702
DM
25387 "optional" : 1,
25388 "type" : "integer"
25389 },
25390 "detect_zeroes" : {
25391 "description" : "Controls whether to detect and try to optimize writes of zeroes.",
25392 "optional" : 1,
25393 "type" : "boolean"
25394 },
25395 "discard" : {
25396 "description" : "Controls whether to pass discard/trim requests to the underlying storage.",
25397 "enum" : [
25398 "ignore",
25399 "on"
25400 ],
44660702
DM
25401 "optional" : 1,
25402 "type" : "string"
25403 },
25404 "file" : {
25405 "default_key" : 1,
25406 "description" : "The drive's backing volume.",
25407 "format" : "pve-volume-id-or-qm-path",
25408 "format_description" : "volume",
25409 "type" : "string"
25410 },
25411 "format" : {
25412 "description" : "The drive's backing file's data format.",
25413 "enum" : [
25414 "raw",
25415 "cow",
25416 "qcow",
25417 "qed",
25418 "qcow2",
25419 "vmdk",
25420 "cloop"
25421 ],
44660702
DM
25422 "optional" : 1,
25423 "type" : "string"
25424 },
25425 "heads" : {
25426 "description" : "Force the drive's physical geometry to have a specific head count.",
44660702
DM
25427 "optional" : 1,
25428 "type" : "integer"
25429 },
7af2edf9
TL
25430 "import-from" : {
25431 "description" : "Create a new disk, importing from this source (volume ID or absolute path). When an absolute path is specified, it's up to you to ensure that the source is not actively used by another process during the import!",
25432 "format" : "pve-volume-id-or-absolute-path",
25433 "format_description" : "source volume",
25434 "optional" : 1,
25435 "type" : "string"
25436 },
44660702 25437 "iops" : {
de0983cb 25438 "description" : "Maximum r/w I/O in operations per second.",
44660702
DM
25439 "format_description" : "iops",
25440 "optional" : 1,
25441 "type" : "integer"
25442 },
25443 "iops_max" : {
de0983cb 25444 "description" : "Maximum unthrottled r/w I/O pool in operations per second.",
44660702
DM
25445 "format_description" : "iops",
25446 "optional" : 1,
25447 "type" : "integer"
25448 },
de0983cb
DM
25449 "iops_max_length" : {
25450 "description" : "Maximum length of I/O bursts in seconds.",
25451 "format_description" : "seconds",
25452 "minimum" : 1,
25453 "optional" : 1,
25454 "type" : "integer"
25455 },
44660702 25456 "iops_rd" : {
de0983cb 25457 "description" : "Maximum read I/O in operations per second.",
44660702
DM
25458 "format_description" : "iops",
25459 "optional" : 1,
25460 "type" : "integer"
25461 },
de0983cb 25462 "iops_rd_length" : {
5d9c884c 25463 "alias" : "iops_rd_max_length"
de0983cb 25464 },
44660702 25465 "iops_rd_max" : {
de0983cb 25466 "description" : "Maximum unthrottled read I/O pool in operations per second.",
44660702
DM
25467 "format_description" : "iops",
25468 "optional" : 1,
25469 "type" : "integer"
25470 },
5d9c884c
DM
25471 "iops_rd_max_length" : {
25472 "description" : "Maximum length of read I/O bursts in seconds.",
25473 "format_description" : "seconds",
25474 "minimum" : 1,
25475 "optional" : 1,
25476 "type" : "integer"
25477 },
44660702 25478 "iops_wr" : {
de0983cb 25479 "description" : "Maximum write I/O in operations per second.",
44660702
DM
25480 "format_description" : "iops",
25481 "optional" : 1,
25482 "type" : "integer"
25483 },
de0983cb 25484 "iops_wr_length" : {
5d9c884c 25485 "alias" : "iops_wr_max_length"
de0983cb 25486 },
44660702 25487 "iops_wr_max" : {
de0983cb 25488 "description" : "Maximum unthrottled write I/O pool in operations per second.",
44660702
DM
25489 "format_description" : "iops",
25490 "optional" : 1,
25491 "type" : "integer"
25492 },
5d9c884c
DM
25493 "iops_wr_max_length" : {
25494 "description" : "Maximum length of write I/O bursts in seconds.",
25495 "format_description" : "seconds",
25496 "minimum" : 1,
25497 "optional" : 1,
25498 "type" : "integer"
25499 },
44660702
DM
25500 "iothread" : {
25501 "description" : "Whether to use iothreads for this drive",
44660702
DM
25502 "optional" : 1,
25503 "type" : "boolean"
25504 },
25505 "mbps" : {
de0983cb 25506 "description" : "Maximum r/w speed in megabytes per second.",
44660702
DM
25507 "format_description" : "mbps",
25508 "optional" : 1,
25509 "type" : "number"
25510 },
25511 "mbps_max" : {
de0983cb 25512 "description" : "Maximum unthrottled r/w pool in megabytes per second.",
44660702
DM
25513 "format_description" : "mbps",
25514 "optional" : 1,
25515 "type" : "number"
25516 },
25517 "mbps_rd" : {
de0983cb 25518 "description" : "Maximum read speed in megabytes per second.",
44660702
DM
25519 "format_description" : "mbps",
25520 "optional" : 1,
25521 "type" : "number"
25522 },
25523 "mbps_rd_max" : {
de0983cb 25524 "description" : "Maximum unthrottled read pool in megabytes per second.",
44660702
DM
25525 "format_description" : "mbps",
25526 "optional" : 1,
25527 "type" : "number"
25528 },
25529 "mbps_wr" : {
de0983cb 25530 "description" : "Maximum write speed in megabytes per second.",
44660702
DM
25531 "format_description" : "mbps",
25532 "optional" : 1,
25533 "type" : "number"
25534 },
25535 "mbps_wr_max" : {
de0983cb 25536 "description" : "Maximum unthrottled write pool in megabytes per second.",
44660702
DM
25537 "format_description" : "mbps",
25538 "optional" : 1,
25539 "type" : "number"
25540 },
25541 "media" : {
25542 "default" : "disk",
25543 "description" : "The drive's media type.",
25544 "enum" : [
25545 "cdrom",
25546 "disk"
25547 ],
44660702
DM
25548 "optional" : 1,
25549 "type" : "string"
25550 },
5d9c884c
DM
25551 "replicate" : {
25552 "default" : 1,
25553 "description" : "Whether the drive should considered for replication jobs.",
25554 "optional" : 1,
25555 "type" : "boolean"
25556 },
44660702
DM
25557 "rerror" : {
25558 "description" : "Read error action.",
25559 "enum" : [
25560 "ignore",
25561 "report",
25562 "stop"
25563 ],
44660702
DM
25564 "optional" : 1,
25565 "type" : "string"
25566 },
5370fa8c
TL
25567 "ro" : {
25568 "description" : "Whether the drive is read-only.",
25569 "optional" : 1,
25570 "type" : "boolean"
25571 },
44660702
DM
25572 "secs" : {
25573 "description" : "Force the drive's physical geometry to have a specific sector count.",
44660702
DM
25574 "optional" : 1,
25575 "type" : "integer"
25576 },
25577 "serial" : {
25578 "description" : "The drive's reported serial number, url-encoded, up to 20 bytes long.",
25579 "format" : "urlencoded",
25580 "format_description" : "serial",
25581 "maxLength" : 60,
25582 "optional" : 1,
25583 "type" : "string"
25584 },
27a7acb2
DM
25585 "shared" : {
25586 "default" : 0,
25587 "description" : "Mark this locally-managed volume as available on all nodes",
25588 "optional" : 1,
25589 "type" : "boolean",
25590 "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!"
25591 },
44660702
DM
25592 "size" : {
25593 "description" : "Disk size. This is purely informational and has no effect.",
25594 "format" : "disk-size",
f004f5b9 25595 "format_description" : "DiskSize",
44660702
DM
25596 "optional" : 1,
25597 "type" : "string"
25598 },
25599 "snapshot" : {
27a7acb2 25600 "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
25601 "optional" : 1,
25602 "type" : "boolean"
25603 },
25604 "trans" : {
25605 "description" : "Force disk geometry bios translation mode.",
25606 "enum" : [
25607 "none",
25608 "lba",
25609 "auto"
25610 ],
44660702
DM
25611 "optional" : 1,
25612 "type" : "string"
25613 },
25614 "volume" : {
25615 "alias" : "file"
25616 },
25617 "werror" : {
25618 "description" : "Write error action.",
25619 "enum" : [
25620 "enospc",
25621 "ignore",
25622 "report",
25623 "stop"
25624 ],
44660702
DM
25625 "optional" : 1,
25626 "type" : "string"
25627 }
25628 },
25629 "optional" : 1,
4bd7df8b 25630 "type" : "string",
7af2edf9 25631 "typetext" : "[file=]<volume> [,aio=<native|threads|io_uring>] [,backup=<1|0>] [,bps=<bps>] [,bps_max_length=<seconds>] [,bps_rd=<bps>] [,bps_rd_max_length=<seconds>] [,bps_wr=<bps>] [,bps_wr_max_length=<seconds>] [,cache=<enum>] [,cyls=<integer>] [,detect_zeroes=<1|0>] [,discard=<ignore|on>] [,format=<enum>] [,heads=<integer>] [,import-from=<source volume>] [,iops=<iops>] [,iops_max=<iops>] [,iops_max_length=<seconds>] [,iops_rd=<iops>] [,iops_rd_max=<iops>] [,iops_rd_max_length=<seconds>] [,iops_wr=<iops>] [,iops_wr_max=<iops>] [,iops_wr_max_length=<seconds>] [,iothread=<1|0>] [,mbps=<mbps>] [,mbps_max=<mbps>] [,mbps_rd=<mbps>] [,mbps_rd_max=<mbps>] [,mbps_wr=<mbps>] [,mbps_wr_max=<mbps>] [,media=<cdrom|disk>] [,replicate=<1|0>] [,rerror=<ignore|report|stop>] [,ro=<1|0>] [,secs=<integer>] [,serial=<serial>] [,shared=<1|0>] [,size=<DiskSize>] [,snapshot=<1|0>] [,trans=<none|lba|auto>] [,werror=<enum>]"
7aacca6f 25632 },
4d47f125
TL
25633 "vmgenid" : {
25634 "default" : "1 (autogenerated)",
25635 "description" : "Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly.",
25636 "format_description" : "UUID",
25637 "optional" : 1,
25638 "pattern" : "(?:[a-fA-F0-9]{8}(?:-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}|[01])",
25639 "type" : "string",
4772952b 25640 "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 25641 },
44660702
DM
25642 "vmid" : {
25643 "description" : "The (unique) ID of the VM.",
25644 "format" : "pve-vmid",
25645 "minimum" : 1,
4bd7df8b 25646 "type" : "integer",
013dc89f 25647 "typetext" : "<integer> (1 - N)"
44660702 25648 },
2489d6df
WB
25649 "vmstatestorage" : {
25650 "description" : "Default storage for VM state volumes/files.",
25651 "format" : "pve-storage-id",
25652 "optional" : 1,
25653 "type" : "string",
25654 "typetext" : "<string>"
25655 },
44660702 25656 "watchdog" : {
c2993fe5 25657 "description" : "Create a virtual hardware watchdog device.",
44660702 25658 "format" : "pve-qm-watchdog",
7aacca6f 25659 "optional" : 1,
c2993fe5 25660 "type" : "string",
013dc89f 25661 "typetext" : "[[model=]<i6300esb|ib700>] [,action=<enum>]",
c2993fe5 25662 "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 25663 }
44660702 25664 }
56122987 25665 },
56122987 25666 "permissions" : {
44660702
DM
25667 "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.",
25668 "user" : "all"
56122987 25669 },
44660702
DM
25670 "protected" : 1,
25671 "proxyto" : "node",
56122987 25672 "returns" : {
44660702 25673 "type" : "string"
7aacca6f 25674 }
56122987 25675 }
7aacca6f 25676 },
44660702 25677 "leaf" : 0,
7aacca6f 25678 "path" : "/nodes/{node}/qemu",
44660702 25679 "text" : "qemu"
56122987
DM
25680 },
25681 {
25682 "children" : [
25683 {
56122987
DM
25684 "children" : [
25685 {
56122987 25686 "info" : {
44660702 25687 "GET" : {
e9cd3bd4 25688 "allowtoken" : 1,
44660702
DM
25689 "description" : "Get container configuration.",
25690 "method" : "GET",
25691 "name" : "vm_config",
25692 "parameters" : {
25693 "additionalProperties" : 0,
25694 "properties" : {
1c532546
TL
25695 "current" : {
25696 "default" : 0,
25697 "description" : "Get current values (instead of pending values).",
25698 "optional" : 1,
25699 "type" : "boolean",
25700 "typetext" : "<boolean>"
25701 },
44660702
DM
25702 "node" : {
25703 "description" : "The cluster node name.",
25704 "format" : "pve-node",
013dc89f 25705 "type" : "string",
4d47f125
TL
25706 "typetext" : "<string>"
25707 },
5f26e15b
TL
25708 "snapshot" : {
25709 "description" : "Fetch config values from given snapshot.",
25710 "format" : "pve-configid",
25711 "maxLength" : 40,
25712 "optional" : 1,
25713 "type" : "string",
25714 "typetext" : "<string>"
25715 },
4d47f125
TL
25716 "vmid" : {
25717 "description" : "The (unique) ID of the VM.",
25718 "format" : "pve-vmid",
25719 "minimum" : 1,
25720 "type" : "integer",
25721 "typetext" : "<integer> (1 - N)"
25722 }
25723 }
25724 },
25725 "permissions" : {
25726 "check" : [
25727 "perm",
25728 "/vms/{vmid}",
25729 [
25730 "VM.Audit"
25731 ]
25732 ]
25733 },
25734 "proxyto" : "node",
25735 "returns" : {
25736 "properties" : {
25737 "arch" : {
25738 "default" : "amd64",
25739 "description" : "OS architecture type.",
25740 "enum" : [
25741 "amd64",
25742 "i386",
25743 "arm64",
25744 "armhf"
25745 ],
25746 "optional" : 1,
25747 "type" : "string"
25748 },
25749 "cmode" : {
25750 "default" : "tty",
25751 "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).",
25752 "enum" : [
25753 "shell",
25754 "console",
25755 "tty"
25756 ],
25757 "optional" : 1,
25758 "type" : "string"
25759 },
25760 "console" : {
25761 "default" : 1,
25762 "description" : "Attach a console device (/dev/console) to the container.",
25763 "optional" : 1,
25764 "type" : "boolean"
25765 },
25766 "cores" : {
25767 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 25768 "maximum" : 8192,
4d47f125
TL
25769 "minimum" : 1,
25770 "optional" : 1,
25771 "type" : "integer"
25772 },
25773 "cpulimit" : {
25774 "default" : 0,
25775 "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 25776 "maximum" : 8192,
4d47f125
TL
25777 "minimum" : 0,
25778 "optional" : 1,
25779 "type" : "number"
25780 },
25781 "cpuunits" : {
4e7f60c2
TL
25782 "default" : "cgroup v1: 1024, cgroup v2: 100",
25783 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
25784 "maximum" : 500000,
25785 "minimum" : 0,
25786 "optional" : 1,
4e7f60c2
TL
25787 "type" : "integer",
25788 "verbose_description" : "CPU weight for a container. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this container gets. Number is relative to the weights of all the other running guests."
4d47f125 25789 },
739d4d64
TL
25790 "debug" : {
25791 "default" : 0,
25792 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
25793 "optional" : 1,
25794 "type" : "boolean"
25795 },
4d47f125 25796 "description" : {
8f4d9c87
TL
25797 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
25798 "maxLength" : 8192,
4d47f125
TL
25799 "optional" : 1,
25800 "type" : "string"
25801 },
25802 "digest" : {
25803 "description" : "SHA1 digest of configuration file. This can be used to prevent concurrent modifications.",
25804 "type" : "string"
25805 },
25806 "features" : {
25807 "description" : "Allow containers access to advanced features.",
25808 "format" : {
c5aa7e14
TL
25809 "force_rw_sys" : {
25810 "default" : 0,
25811 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
25812 "optional" : 1,
25813 "type" : "boolean"
25814 },
e2d681b3
TL
25815 "fuse" : {
25816 "default" : 0,
25817 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
25818 "optional" : 1,
25819 "type" : "boolean"
25820 },
4d47f125
TL
25821 "keyctl" : {
25822 "default" : 0,
25823 "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.",
25824 "optional" : 1,
25825 "type" : "boolean"
25826 },
c5aa7e14
TL
25827 "mknod" : {
25828 "default" : 0,
25829 "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.",
25830 "optional" : 1,
25831 "type" : "boolean"
25832 },
4d47f125
TL
25833 "mount" : {
25834 "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.",
25835 "format_description" : "fstype;fstype;...",
25836 "optional" : 1,
95895385 25837 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
25838 "type" : "string"
25839 },
25840 "nesting" : {
25841 "default" : 0,
25842 "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.",
25843 "optional" : 1,
25844 "type" : "boolean"
25845 }
25846 },
25847 "optional" : 1,
25848 "type" : "string"
25849 },
5f26e15b
TL
25850 "hookscript" : {
25851 "description" : "Script that will be exectued during various steps in the containers lifetime.",
25852 "format" : "pve-volume-id",
25853 "optional" : 1,
25854 "type" : "string"
25855 },
4d47f125
TL
25856 "hostname" : {
25857 "description" : "Set a host name for the container.",
25858 "format" : "dns-name",
25859 "maxLength" : 255,
25860 "optional" : 1,
25861 "type" : "string"
25862 },
25863 "lock" : {
4e7f60c2 25864 "description" : "Lock/unlock the container.",
4d47f125
TL
25865 "enum" : [
25866 "backup",
bb4c8cf8 25867 "create",
1c532546 25868 "destroyed",
4d47f125 25869 "disk",
bb4c8cf8 25870 "fstrim",
4d47f125
TL
25871 "migrate",
25872 "mounted",
25873 "rollback",
25874 "snapshot",
25875 "snapshot-delete"
25876 ],
25877 "optional" : 1,
25878 "type" : "string"
25879 },
25880 "lxc" : {
25881 "description" : "Array of lxc low-level configurations ([[key1, value1], [key2, value2] ...]).",
25882 "items" : {
25883 "items" : {
25884 "type" : "string"
25885 },
25886 "type" : "array"
25887 },
25888 "optional" : 1,
25889 "type" : "array"
25890 },
25891 "memory" : {
25892 "default" : 512,
4e7f60c2 25893 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
25894 "minimum" : 16,
25895 "optional" : 1,
25896 "type" : "integer"
25897 },
25898 "mp[n]" : {
d2656385 25899 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
25900 "format" : {
25901 "acl" : {
25902 "description" : "Explicitly enable or disable ACL support.",
25903 "optional" : 1,
25904 "type" : "boolean"
25905 },
25906 "backup" : {
25907 "description" : "Whether to include the mount point in backups.",
25908 "optional" : 1,
25909 "type" : "boolean",
25910 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
25911 },
7cbed89a
TL
25912 "mountoptions" : {
25913 "description" : "Extra mount options for rootfs/mps.",
25914 "format_description" : "opt[;opt...]",
25915 "optional" : 1,
c30bb419 25916 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
25917 "type" : "string"
25918 },
4d47f125
TL
25919 "mp" : {
25920 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
25921 "format" : "pve-lxc-mp-string",
25922 "format_description" : "Path",
25923 "type" : "string",
25924 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
25925 },
25926 "quota" : {
25927 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
25928 "optional" : 1,
25929 "type" : "boolean"
25930 },
25931 "replicate" : {
25932 "default" : 1,
25933 "description" : "Will include this volume to a storage replica job.",
25934 "optional" : 1,
25935 "type" : "boolean"
25936 },
25937 "ro" : {
25938 "description" : "Read-only mount point",
25939 "optional" : 1,
25940 "type" : "boolean"
25941 },
25942 "shared" : {
25943 "default" : 0,
25944 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
25945 "optional" : 1,
25946 "type" : "boolean",
25947 "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!"
25948 },
25949 "size" : {
25950 "description" : "Volume size (read only value).",
25951 "format" : "disk-size",
25952 "format_description" : "DiskSize",
25953 "optional" : 1,
25954 "type" : "string"
25955 },
25956 "volume" : {
25957 "default_key" : 1,
25958 "description" : "Volume, device or directory to mount into the container.",
25959 "format" : "pve-lxc-mp-string",
25960 "format_description" : "volume",
25961 "type" : "string"
25962 }
25963 },
25964 "optional" : 1,
25965 "type" : "string"
25966 },
25967 "nameserver" : {
25968 "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 25969 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
25970 "optional" : 1,
25971 "type" : "string"
25972 },
25973 "net[n]" : {
25974 "description" : "Specifies network interfaces for the container.",
25975 "format" : {
25976 "bridge" : {
25977 "description" : "Bridge to attach the network device to.",
25978 "format_description" : "bridge",
25979 "optional" : 1,
25980 "pattern" : "[-_.\\w\\d]+",
25981 "type" : "string"
25982 },
25983 "firewall" : {
25984 "description" : "Controls whether this interface's firewall rules should be used.",
25985 "optional" : 1,
25986 "type" : "boolean"
25987 },
25988 "gw" : {
25989 "description" : "Default gateway for IPv4 traffic.",
25990 "format" : "ipv4",
25991 "format_description" : "GatewayIPv4",
25992 "optional" : 1,
25993 "type" : "string"
25994 },
25995 "gw6" : {
25996 "description" : "Default gateway for IPv6 traffic.",
25997 "format" : "ipv6",
25998 "format_description" : "GatewayIPv6",
25999 "optional" : 1,
26000 "type" : "string"
26001 },
26002 "hwaddr" : {
26003 "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 26004 "format" : "mac-addr",
4d47f125
TL
26005 "format_description" : "XX:XX:XX:XX:XX:XX",
26006 "optional" : 1,
95895385
TL
26007 "type" : "string",
26008 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
26009 },
26010 "ip" : {
26011 "description" : "IPv4 address in CIDR format.",
26012 "format" : "pve-ipv4-config",
26013 "format_description" : "(IPv4/CIDR|dhcp|manual)",
26014 "optional" : 1,
26015 "type" : "string"
26016 },
26017 "ip6" : {
26018 "description" : "IPv6 address in CIDR format.",
26019 "format" : "pve-ipv6-config",
26020 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
26021 "optional" : 1,
26022 "type" : "string"
26023 },
26024 "mtu" : {
26025 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 26026 "maximum" : 65535,
4d47f125
TL
26027 "minimum" : 64,
26028 "optional" : 1,
26029 "type" : "integer"
26030 },
26031 "name" : {
26032 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
26033 "format_description" : "string",
26034 "pattern" : "[-_.\\w\\d]+",
26035 "type" : "string"
26036 },
26037 "rate" : {
26038 "description" : "Apply rate limiting to the interface",
26039 "format_description" : "mbps",
26040 "optional" : 1,
26041 "type" : "number"
26042 },
26043 "tag" : {
26044 "description" : "VLAN tag for this interface.",
26045 "maximum" : 4094,
26046 "minimum" : 1,
26047 "optional" : 1,
26048 "type" : "integer"
26049 },
26050 "trunks" : {
26051 "description" : "VLAN ids to pass through the interface",
26052 "format_description" : "vlanid[;vlanid...]",
26053 "optional" : 1,
26054 "pattern" : "(?^:\\d+(?:;\\d+)*)",
26055 "type" : "string"
26056 },
26057 "type" : {
26058 "description" : "Network interface type.",
26059 "enum" : [
26060 "veth"
26061 ],
26062 "optional" : 1,
26063 "type" : "string"
26064 }
26065 },
26066 "optional" : 1,
26067 "type" : "string"
26068 },
26069 "onboot" : {
26070 "default" : 0,
4e7f60c2 26071 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
26072 "optional" : 1,
26073 "type" : "boolean"
26074 },
26075 "ostype" : {
26076 "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.",
26077 "enum" : [
26078 "debian",
d2656385 26079 "devuan",
4d47f125
TL
26080 "ubuntu",
26081 "centos",
26082 "fedora",
26083 "opensuse",
26084 "archlinux",
26085 "alpine",
26086 "gentoo",
7af2edf9 26087 "nixos",
4d47f125
TL
26088 "unmanaged"
26089 ],
26090 "optional" : 1,
26091 "type" : "string"
26092 },
26093 "protection" : {
26094 "default" : 0,
26095 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
26096 "optional" : 1,
26097 "type" : "boolean"
26098 },
26099 "rootfs" : {
26100 "description" : "Use volume as container root.",
26101 "format" : {
26102 "acl" : {
26103 "description" : "Explicitly enable or disable ACL support.",
26104 "optional" : 1,
26105 "type" : "boolean"
26106 },
7cbed89a
TL
26107 "mountoptions" : {
26108 "description" : "Extra mount options for rootfs/mps.",
26109 "format_description" : "opt[;opt...]",
26110 "optional" : 1,
c30bb419 26111 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
26112 "type" : "string"
26113 },
4d47f125
TL
26114 "quota" : {
26115 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
26116 "optional" : 1,
26117 "type" : "boolean"
26118 },
26119 "replicate" : {
26120 "default" : 1,
26121 "description" : "Will include this volume to a storage replica job.",
26122 "optional" : 1,
26123 "type" : "boolean"
26124 },
26125 "ro" : {
26126 "description" : "Read-only mount point",
26127 "optional" : 1,
26128 "type" : "boolean"
26129 },
26130 "shared" : {
26131 "default" : 0,
26132 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
26133 "optional" : 1,
26134 "type" : "boolean",
26135 "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!"
26136 },
26137 "size" : {
26138 "description" : "Volume size (read only value).",
26139 "format" : "disk-size",
26140 "format_description" : "DiskSize",
26141 "optional" : 1,
26142 "type" : "string"
26143 },
26144 "volume" : {
26145 "default_key" : 1,
26146 "description" : "Volume, device or directory to mount into the container.",
26147 "format" : "pve-lxc-mp-string",
26148 "format_description" : "volume",
26149 "type" : "string"
26150 }
26151 },
26152 "optional" : 1,
26153 "type" : "string"
26154 },
26155 "searchdomain" : {
26156 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
26157 "format" : "dns-name-list",
26158 "optional" : 1,
26159 "type" : "string"
26160 },
26161 "startup" : {
26162 "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.",
26163 "format" : "pve-startup-order",
26164 "optional" : 1,
26165 "type" : "string",
26166 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
26167 },
26168 "swap" : {
26169 "default" : 512,
4e7f60c2 26170 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
26171 "minimum" : 0,
26172 "optional" : 1,
26173 "type" : "integer"
26174 },
5c1699e5
TL
26175 "tags" : {
26176 "description" : "Tags of the Container. This is only meta information.",
26177 "format" : "pve-tag-list",
26178 "optional" : 1,
26179 "type" : "string"
26180 },
4d47f125
TL
26181 "template" : {
26182 "default" : 0,
26183 "description" : "Enable/disable Template.",
26184 "optional" : 1,
26185 "type" : "boolean"
44660702 26186 },
04d22a9f
TL
26187 "timezone" : {
26188 "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",
26189 "format" : "pve-ct-timezone",
26190 "optional" : 1,
26191 "type" : "string"
26192 },
4d47f125
TL
26193 "tty" : {
26194 "default" : 2,
26195 "description" : "Specify the number of tty available to the container",
26196 "maximum" : 6,
26197 "minimum" : 0,
26198 "optional" : 1,
26199 "type" : "integer"
26200 },
26201 "unprivileged" : {
26202 "default" : 0,
26203 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
26204 "optional" : 1,
26205 "type" : "boolean"
26206 },
26207 "unused[n]" : {
26208 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
26209 "format" : {
26210 "volume" : {
26211 "default_key" : 1,
26212 "description" : "The volume that is not used currently.",
26213 "format" : "pve-volume-id",
26214 "format_description" : "volume",
26215 "type" : "string"
26216 }
26217 },
4d47f125 26218 "optional" : 1,
44660702
DM
26219 "type" : "string"
26220 }
26221 },
26222 "type" : "object"
26223 }
26224 },
56122987 26225 "PUT" : {
e9cd3bd4 26226 "allowtoken" : 1,
44660702
DM
26227 "description" : "Set container options.",
26228 "method" : "PUT",
26229 "name" : "update_vm",
56122987 26230 "parameters" : {
44660702 26231 "additionalProperties" : 0,
56122987 26232 "properties" : {
44660702
DM
26233 "arch" : {
26234 "default" : "amd64",
26235 "description" : "OS architecture type.",
26236 "enum" : [
26237 "amd64",
4d47f125
TL
26238 "i386",
26239 "arm64",
26240 "armhf"
44660702 26241 ],
7aacca6f 26242 "optional" : 1,
44660702
DM
26243 "type" : "string"
26244 },
26245 "cmode" : {
7aacca6f 26246 "default" : "tty",
44660702 26247 "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
26248 "enum" : [
26249 "shell",
26250 "console",
26251 "tty"
26252 ],
44660702
DM
26253 "optional" : 1,
26254 "type" : "string"
7aacca6f 26255 },
44660702
DM
26256 "console" : {
26257 "default" : 1,
26258 "description" : "Attach a console device (/dev/console) to the container.",
7aacca6f 26259 "optional" : 1,
013dc89f
DM
26260 "type" : "boolean",
26261 "typetext" : "<boolean>"
7aacca6f 26262 },
de0983cb
DM
26263 "cores" : {
26264 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 26265 "maximum" : 8192,
de0983cb
DM
26266 "minimum" : 1,
26267 "optional" : 1,
26268 "type" : "integer",
4772952b 26269 "typetext" : "<integer> (1 - 8192)"
de0983cb 26270 },
44660702
DM
26271 "cpulimit" : {
26272 "default" : 0,
26273 "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 26274 "maximum" : 8192,
7aacca6f 26275 "minimum" : 0,
7aacca6f 26276 "optional" : 1,
4bd7df8b 26277 "type" : "number",
4772952b 26278 "typetext" : "<number> (0 - 8192)"
7aacca6f 26279 },
44660702 26280 "cpuunits" : {
4e7f60c2
TL
26281 "default" : "cgroup v1: 1024, cgroup v2: 100",
26282 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
44660702
DM
26283 "maximum" : 500000,
26284 "minimum" : 0,
26285 "optional" : 1,
4bd7df8b 26286 "type" : "integer",
4e7f60c2
TL
26287 "typetext" : "<integer> (0 - 500000)",
26288 "verbose_description" : "CPU weight for a container. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this container gets. Number is relative to the weights of all the other running guests."
7aacca6f 26289 },
739d4d64
TL
26290 "debug" : {
26291 "default" : 0,
26292 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
26293 "optional" : 1,
26294 "type" : "boolean",
26295 "typetext" : "<boolean>"
26296 },
44660702
DM
26297 "delete" : {
26298 "description" : "A list of settings you want to delete.",
26299 "format" : "pve-configid-list",
7aacca6f 26300 "optional" : 1,
013dc89f
DM
26301 "type" : "string",
26302 "typetext" : "<string>"
7aacca6f 26303 },
44660702 26304 "description" : {
8f4d9c87
TL
26305 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
26306 "maxLength" : 8192,
7aacca6f 26307 "optional" : 1,
013dc89f
DM
26308 "type" : "string",
26309 "typetext" : "<string>"
7aacca6f 26310 },
44660702
DM
26311 "digest" : {
26312 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
26313 "maxLength" : 40,
7aacca6f 26314 "optional" : 1,
013dc89f
DM
26315 "type" : "string",
26316 "typetext" : "<string>"
7aacca6f 26317 },
4d47f125
TL
26318 "features" : {
26319 "description" : "Allow containers access to advanced features.",
26320 "format" : {
c5aa7e14
TL
26321 "force_rw_sys" : {
26322 "default" : 0,
26323 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
26324 "optional" : 1,
26325 "type" : "boolean"
26326 },
e2d681b3
TL
26327 "fuse" : {
26328 "default" : 0,
26329 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
26330 "optional" : 1,
26331 "type" : "boolean"
26332 },
4d47f125
TL
26333 "keyctl" : {
26334 "default" : 0,
26335 "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.",
26336 "optional" : 1,
26337 "type" : "boolean"
26338 },
c5aa7e14
TL
26339 "mknod" : {
26340 "default" : 0,
26341 "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.",
26342 "optional" : 1,
26343 "type" : "boolean"
26344 },
4d47f125
TL
26345 "mount" : {
26346 "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.",
26347 "format_description" : "fstype;fstype;...",
26348 "optional" : 1,
95895385 26349 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125
TL
26350 "type" : "string"
26351 },
26352 "nesting" : {
26353 "default" : 0,
26354 "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.",
26355 "optional" : 1,
26356 "type" : "boolean"
26357 }
26358 },
26359 "optional" : 1,
26360 "type" : "string",
c5aa7e14 26361 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
4d47f125 26362 },
5f26e15b
TL
26363 "hookscript" : {
26364 "description" : "Script that will be exectued during various steps in the containers lifetime.",
26365 "format" : "pve-volume-id",
26366 "optional" : 1,
26367 "type" : "string",
26368 "typetext" : "<string>"
26369 },
44660702
DM
26370 "hostname" : {
26371 "description" : "Set a host name for the container.",
26372 "format" : "dns-name",
26373 "maxLength" : 255,
56122987 26374 "optional" : 1,
013dc89f
DM
26375 "type" : "string",
26376 "typetext" : "<string>"
44660702
DM
26377 },
26378 "lock" : {
4e7f60c2 26379 "description" : "Lock/unlock the container.",
44660702 26380 "enum" : [
44660702 26381 "backup",
bb4c8cf8 26382 "create",
1c532546 26383 "destroyed",
4d47f125 26384 "disk",
bb4c8cf8 26385 "fstrim",
4d47f125
TL
26386 "migrate",
26387 "mounted",
26388 "rollback",
44660702 26389 "snapshot",
4d47f125 26390 "snapshot-delete"
44660702
DM
26391 ],
26392 "optional" : 1,
26393 "type" : "string"
26394 },
26395 "memory" : {
26396 "default" : 512,
4e7f60c2 26397 "description" : "Amount of RAM for the container in MB.",
44660702
DM
26398 "minimum" : 16,
26399 "optional" : 1,
4bd7df8b 26400 "type" : "integer",
013dc89f 26401 "typetext" : "<integer> (16 - N)"
7aacca6f
DM
26402 },
26403 "mp[n]" : {
d2656385 26404 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
7aacca6f 26405 "format" : {
7aacca6f
DM
26406 "acl" : {
26407 "description" : "Explicitly enable or disable ACL support.",
7aacca6f 26408 "optional" : 1,
44660702 26409 "type" : "boolean"
7aacca6f
DM
26410 },
26411 "backup" : {
de0983cb 26412 "description" : "Whether to include the mount point in backups.",
7aacca6f 26413 "optional" : 1,
4bd7df8b 26414 "type" : "boolean",
de0983cb 26415 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
7aacca6f 26416 },
7cbed89a
TL
26417 "mountoptions" : {
26418 "description" : "Extra mount options for rootfs/mps.",
26419 "format_description" : "opt[;opt...]",
26420 "optional" : 1,
c30bb419 26421 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
26422 "type" : "string"
26423 },
7aacca6f 26424 "mp" : {
de0983cb 26425 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
7aacca6f 26426 "format" : "pve-lxc-mp-string",
44660702 26427 "format_description" : "Path",
4bd7df8b 26428 "type" : "string",
de0983cb 26429 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
44660702 26430 },
5d9c884c
DM
26431 "quota" : {
26432 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
26433 "optional" : 1,
26434 "type" : "boolean"
26435 },
26436 "replicate" : {
26437 "default" : 1,
26438 "description" : "Will include this volume to a storage replica job.",
44660702
DM
26439 "optional" : 1,
26440 "type" : "boolean"
26441 },
26442 "ro" : {
de0983cb 26443 "description" : "Read-only mount point",
44660702
DM
26444 "optional" : 1,
26445 "type" : "boolean"
26446 },
de0983cb
DM
26447 "shared" : {
26448 "default" : 0,
26449 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
26450 "optional" : 1,
26451 "type" : "boolean",
26452 "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!"
26453 },
44660702
DM
26454 "size" : {
26455 "description" : "Volume size (read only value).",
26456 "format" : "disk-size",
26457 "format_description" : "DiskSize",
26458 "optional" : 1,
26459 "type" : "string"
26460 },
26461 "volume" : {
26462 "default_key" : 1,
26463 "description" : "Volume, device or directory to mount into the container.",
26464 "format" : "pve-lxc-mp-string",
26465 "format_description" : "volume",
26466 "type" : "string"
26467 }
26468 },
7aacca6f 26469 "optional" : 1,
4bd7df8b 26470 "type" : "string",
7cbed89a 26471 "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 26472 },
44660702
DM
26473 "nameserver" : {
26474 "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 26475 "format" : "lxc-ip-with-ll-iface-list",
56122987 26476 "optional" : 1,
013dc89f
DM
26477 "type" : "string",
26478 "typetext" : "<string>"
56122987
DM
26479 },
26480 "net[n]" : {
44660702 26481 "description" : "Specifies network interfaces for the container.",
56122987 26482 "format" : {
44660702
DM
26483 "bridge" : {
26484 "description" : "Bridge to attach the network device to.",
f004f5b9 26485 "format_description" : "bridge",
56122987 26486 "optional" : 1,
44660702
DM
26487 "pattern" : "[-_.\\w\\d]+",
26488 "type" : "string"
56122987 26489 },
44660702
DM
26490 "firewall" : {
26491 "description" : "Controls whether this interface's firewall rules should be used.",
56122987 26492 "optional" : 1,
44660702 26493 "type" : "boolean"
56122987 26494 },
44660702
DM
26495 "gw" : {
26496 "description" : "Default gateway for IPv4 traffic.",
26497 "format" : "ipv4",
26498 "format_description" : "GatewayIPv4",
56122987 26499 "optional" : 1,
44660702 26500 "type" : "string"
56122987
DM
26501 },
26502 "gw6" : {
7aacca6f 26503 "description" : "Default gateway for IPv6 traffic.",
44660702
DM
26504 "format" : "ipv6",
26505 "format_description" : "GatewayIPv6",
7aacca6f 26506 "optional" : 1,
56122987
DM
26507 "type" : "string"
26508 },
44660702 26509 "hwaddr" : {
f004f5b9 26510 "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 26511 "format" : "mac-addr",
f004f5b9 26512 "format_description" : "XX:XX:XX:XX:XX:XX",
44660702 26513 "optional" : 1,
95895385
TL
26514 "type" : "string",
26515 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
44660702
DM
26516 },
26517 "ip" : {
26518 "description" : "IPv4 address in CIDR format.",
26519 "format" : "pve-ipv4-config",
2489d6df 26520 "format_description" : "(IPv4/CIDR|dhcp|manual)",
56122987 26521 "optional" : 1,
44660702 26522 "type" : "string"
56122987 26523 },
7aacca6f 26524 "ip6" : {
7aacca6f
DM
26525 "description" : "IPv6 address in CIDR format.",
26526 "format" : "pve-ipv6-config",
2489d6df 26527 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
7aacca6f 26528 "optional" : 1,
44660702 26529 "type" : "string"
56122987 26530 },
44660702
DM
26531 "mtu" : {
26532 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 26533 "maximum" : 65535,
44660702 26534 "minimum" : 64,
56122987 26535 "optional" : 1,
44660702 26536 "type" : "integer"
56122987
DM
26537 },
26538 "name" : {
44660702 26539 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
f004f5b9 26540 "format_description" : "string",
56122987 26541 "pattern" : "[-_.\\w\\d]+",
44660702 26542 "type" : "string"
56122987 26543 },
44660702
DM
26544 "rate" : {
26545 "description" : "Apply rate limiting to the interface",
26546 "format_description" : "mbps",
56122987 26547 "optional" : 1,
44660702 26548 "type" : "number"
7aacca6f 26549 },
44660702
DM
26550 "tag" : {
26551 "description" : "VLAN tag for this interface.",
4bd7df8b
DM
26552 "maximum" : 4094,
26553 "minimum" : 1,
56122987 26554 "optional" : 1,
7aacca6f 26555 "type" : "integer"
56122987 26556 },
44660702
DM
26557 "trunks" : {
26558 "description" : "VLAN ids to pass through the interface",
26559 "format_description" : "vlanid[;vlanid...]",
26560 "optional" : 1,
26561 "pattern" : "(?^:\\d+(?:;\\d+)*)",
26562 "type" : "string"
26563 },
26564 "type" : {
26565 "description" : "Network interface type.",
26566 "enum" : [
26567 "veth"
26568 ],
56122987 26569 "optional" : 1,
44660702 26570 "type" : "string"
56122987
DM
26571 }
26572 },
7aacca6f 26573 "optional" : 1,
4bd7df8b 26574 "type" : "string",
2489d6df 26575 "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 26576 },
44660702
DM
26577 "node" : {
26578 "description" : "The cluster node name.",
26579 "format" : "pve-node",
013dc89f
DM
26580 "type" : "string",
26581 "typetext" : "<string>"
56122987 26582 },
44660702
DM
26583 "onboot" : {
26584 "default" : 0,
4e7f60c2 26585 "description" : "Specifies whether a container will be started during system bootup.",
56122987 26586 "optional" : 1,
013dc89f
DM
26587 "type" : "boolean",
26588 "typetext" : "<boolean>"
56122987 26589 },
44660702
DM
26590 "ostype" : {
26591 "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.",
26592 "enum" : [
26593 "debian",
d2656385 26594 "devuan",
44660702
DM
26595 "ubuntu",
26596 "centos",
26597 "fedora",
26598 "opensuse",
26599 "archlinux",
26600 "alpine",
57b78691 26601 "gentoo",
7af2edf9 26602 "nixos",
44660702
DM
26603 "unmanaged"
26604 ],
56122987 26605 "optional" : 1,
44660702 26606 "type" : "string"
56122987 26607 },
44660702
DM
26608 "protection" : {
26609 "default" : 0,
26610 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
56122987 26611 "optional" : 1,
013dc89f
DM
26612 "type" : "boolean",
26613 "typetext" : "<boolean>"
56122987 26614 },
1c532546
TL
26615 "revert" : {
26616 "description" : "Revert a pending change.",
26617 "format" : "pve-configid-list",
26618 "optional" : 1,
26619 "type" : "string",
26620 "typetext" : "<string>"
26621 },
7aacca6f
DM
26622 "rootfs" : {
26623 "description" : "Use volume as container root.",
56122987
DM
26624 "format" : {
26625 "acl" : {
44660702 26626 "description" : "Explicitly enable or disable ACL support.",
7aacca6f
DM
26627 "optional" : 1,
26628 "type" : "boolean"
56122987 26629 },
7cbed89a
TL
26630 "mountoptions" : {
26631 "description" : "Extra mount options for rootfs/mps.",
26632 "format_description" : "opt[;opt...]",
26633 "optional" : 1,
c30bb419 26634 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
26635 "type" : "string"
26636 },
44660702
DM
26637 "quota" : {
26638 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
44660702
DM
26639 "optional" : 1,
26640 "type" : "boolean"
26641 },
5d9c884c
DM
26642 "replicate" : {
26643 "default" : 1,
26644 "description" : "Will include this volume to a storage replica job.",
26645 "optional" : 1,
26646 "type" : "boolean"
26647 },
44660702 26648 "ro" : {
de0983cb 26649 "description" : "Read-only mount point",
56122987 26650 "optional" : 1,
44660702
DM
26651 "type" : "boolean"
26652 },
de0983cb
DM
26653 "shared" : {
26654 "default" : 0,
26655 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
26656 "optional" : 1,
26657 "type" : "boolean",
26658 "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!"
26659 },
44660702 26660 "size" : {
7aacca6f 26661 "description" : "Volume size (read only value).",
44660702 26662 "format" : "disk-size",
56122987 26663 "format_description" : "DiskSize",
56122987 26664 "optional" : 1,
44660702 26665 "type" : "string"
7aacca6f
DM
26666 },
26667 "volume" : {
7aacca6f
DM
26668 "default_key" : 1,
26669 "description" : "Volume, device or directory to mount into the container.",
44660702
DM
26670 "format" : "pve-lxc-mp-string",
26671 "format_description" : "volume",
7aacca6f 26672 "type" : "string"
56122987 26673 }
44660702
DM
26674 },
26675 "optional" : 1,
4bd7df8b 26676 "type" : "string",
7cbed89a 26677 "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
26678 },
26679 "searchdomain" : {
26680 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
26681 "format" : "dns-name-list",
26682 "optional" : 1,
013dc89f
DM
26683 "type" : "string",
26684 "typetext" : "<string>"
44660702
DM
26685 },
26686 "startup" : {
26687 "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.",
26688 "format" : "pve-startup-order",
26689 "optional" : 1,
26690 "type" : "string",
26691 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
26692 },
26693 "swap" : {
26694 "default" : 512,
4e7f60c2 26695 "description" : "Amount of SWAP for the container in MB.",
44660702
DM
26696 "minimum" : 0,
26697 "optional" : 1,
4bd7df8b 26698 "type" : "integer",
013dc89f 26699 "typetext" : "<integer> (0 - N)"
56122987 26700 },
5c1699e5
TL
26701 "tags" : {
26702 "description" : "Tags of the Container. This is only meta information.",
26703 "format" : "pve-tag-list",
26704 "optional" : 1,
26705 "type" : "string",
26706 "typetext" : "<string>"
26707 },
56122987 26708 "template" : {
44660702 26709 "default" : 0,
7aacca6f 26710 "description" : "Enable/disable Template.",
56122987 26711 "optional" : 1,
013dc89f
DM
26712 "type" : "boolean",
26713 "typetext" : "<boolean>"
56122987 26714 },
04d22a9f
TL
26715 "timezone" : {
26716 "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",
26717 "format" : "pve-ct-timezone",
26718 "optional" : 1,
26719 "type" : "string",
26720 "typetext" : "<string>"
26721 },
44660702
DM
26722 "tty" : {
26723 "default" : 2,
26724 "description" : "Specify the number of tty available to the container",
26725 "maximum" : 6,
26726 "minimum" : 0,
26727 "optional" : 1,
4bd7df8b 26728 "type" : "integer",
013dc89f 26729 "typetext" : "<integer> (0 - 6)"
56122987 26730 },
44660702
DM
26731 "unprivileged" : {
26732 "default" : 0,
26733 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
56122987 26734 "optional" : 1,
013dc89f
DM
26735 "type" : "boolean",
26736 "typetext" : "<boolean>"
56122987 26737 },
44660702 26738 "unused[n]" : {
c2993fe5 26739 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
26740 "format" : {
26741 "volume" : {
26742 "default_key" : 1,
26743 "description" : "The volume that is not used currently.",
26744 "format" : "pve-volume-id",
26745 "format_description" : "volume",
26746 "type" : "string"
26747 }
26748 },
56122987 26749 "optional" : 1,
013dc89f 26750 "type" : "string",
c5aa7e14 26751 "typetext" : "[volume=]<volume>"
44660702
DM
26752 },
26753 "vmid" : {
26754 "description" : "The (unique) ID of the VM.",
26755 "format" : "pve-vmid",
26756 "minimum" : 1,
4bd7df8b 26757 "type" : "integer",
013dc89f 26758 "typetext" : "<integer> (1 - N)"
56122987 26759 }
44660702 26760 }
56122987 26761 },
56122987
DM
26762 "permissions" : {
26763 "check" : [
26764 "perm",
26765 "/vms/{vmid}",
26766 [
26767 "VM.Config.Disk",
26768 "VM.Config.CPU",
26769 "VM.Config.Memory",
26770 "VM.Config.Network",
26771 "VM.Config.Options"
26772 ],
26773 "any",
26774 1
52e44c50
FG
26775 ],
26776 "description" : "non-volume mount points in rootfs and mp[n] are restricted to root@pam"
56122987 26777 },
44660702
DM
26778 "protected" : 1,
26779 "proxyto" : "node",
56122987
DM
26780 "returns" : {
26781 "type" : "null"
7aacca6f 26782 }
56122987 26783 }
7aacca6f 26784 },
44660702 26785 "leaf" : 1,
7aacca6f 26786 "path" : "/nodes/{node}/lxc/{vmid}/config",
44660702 26787 "text" : "config"
56122987
DM
26788 },
26789 {
56122987
DM
26790 "children" : [
26791 {
26792 "info" : {
26793 "GET" : {
e9cd3bd4 26794 "allowtoken" : 1,
44660702 26795 "description" : "Get virtual machine status.",
7aacca6f 26796 "method" : "GET",
44660702 26797 "name" : "vm_status",
56122987 26798 "parameters" : {
44660702 26799 "additionalProperties" : 0,
56122987 26800 "properties" : {
56122987 26801 "node" : {
44660702 26802 "description" : "The cluster node name.",
56122987 26803 "format" : "pve-node",
013dc89f
DM
26804 "type" : "string",
26805 "typetext" : "<string>"
7aacca6f
DM
26806 },
26807 "vmid" : {
26808 "description" : "The (unique) ID of the VM.",
44660702 26809 "format" : "pve-vmid",
7aacca6f 26810 "minimum" : 1,
4bd7df8b 26811 "type" : "integer",
013dc89f 26812 "typetext" : "<integer> (1 - N)"
56122987 26813 }
44660702 26814 }
7aacca6f
DM
26815 },
26816 "permissions" : {
26817 "check" : [
26818 "perm",
26819 "/vms/{vmid}",
26820 [
4d47f125
TL
26821 "VM.Audit"
26822 ]
26823 ]
26824 },
26825 "protected" : 1,
26826 "proxyto" : "node",
26827 "returns" : {
26828 "properties" : {
26829 "cpus" : {
26830 "description" : "Maximum usable CPUs.",
26831 "optional" : 1,
26832 "type" : "number"
26833 },
26834 "ha" : {
26835 "description" : "HA manager service status.",
26836 "type" : "object"
26837 },
95895385
TL
26838 "lock" : {
26839 "description" : "The current config lock, if any.",
26840 "optional" : 1,
26841 "type" : "string"
26842 },
4d47f125
TL
26843 "maxdisk" : {
26844 "description" : "Root disk size in bytes.",
26845 "optional" : 1,
26846 "renderer" : "bytes",
26847 "type" : "integer"
26848 },
26849 "maxmem" : {
26850 "description" : "Maximum memory in bytes.",
26851 "optional" : 1,
26852 "renderer" : "bytes",
26853 "type" : "integer"
26854 },
26855 "maxswap" : {
26856 "description" : "Maximum SWAP memory in bytes.",
26857 "optional" : 1,
26858 "renderer" : "bytes",
26859 "type" : "integer"
26860 },
26861 "name" : {
26862 "description" : "Container name.",
26863 "optional" : 1,
26864 "type" : "string"
26865 },
26866 "status" : {
26867 "description" : "LXC Container status.",
26868 "enum" : [
26869 "stopped",
26870 "running"
26871 ],
26872 "type" : "string"
26873 },
5c1699e5
TL
26874 "tags" : {
26875 "description" : "The current configured tags, if any.",
26876 "optional" : 1,
26877 "type" : "string"
26878 },
4d47f125
TL
26879 "uptime" : {
26880 "description" : "Uptime.",
26881 "optional" : 1,
26882 "renderer" : "duration",
26883 "type" : "integer"
26884 },
26885 "vmid" : {
26886 "description" : "The (unique) ID of the VM.",
26887 "format" : "pve-vmid",
26888 "minimum" : 1,
26889 "type" : "integer"
26890 }
26891 },
26892 "type" : "object"
26893 }
26894 }
26895 },
26896 "leaf" : 1,
26897 "path" : "/nodes/{node}/lxc/{vmid}/status/current",
26898 "text" : "current"
26899 },
26900 {
26901 "info" : {
26902 "POST" : {
e9cd3bd4 26903 "allowtoken" : 1,
4d47f125
TL
26904 "description" : "Start the container.",
26905 "method" : "POST",
26906 "name" : "vm_start",
26907 "parameters" : {
26908 "additionalProperties" : 0,
26909 "properties" : {
739d4d64
TL
26910 "debug" : {
26911 "default" : 0,
26912 "description" : "If set, enables very verbose debug log-level on start.",
26913 "optional" : 1,
26914 "type" : "boolean",
26915 "typetext" : "<boolean>"
26916 },
4d47f125
TL
26917 "node" : {
26918 "description" : "The cluster node name.",
26919 "format" : "pve-node",
26920 "type" : "string",
26921 "typetext" : "<string>"
26922 },
26923 "skiplock" : {
26924 "description" : "Ignore locks - only root is allowed to use this option.",
26925 "optional" : 1,
26926 "type" : "boolean",
26927 "typetext" : "<boolean>"
26928 },
26929 "vmid" : {
26930 "description" : "The (unique) ID of the VM.",
26931 "format" : "pve-vmid",
26932 "minimum" : 1,
26933 "type" : "integer",
26934 "typetext" : "<integer> (1 - N)"
26935 }
26936 }
26937 },
26938 "permissions" : {
26939 "check" : [
26940 "perm",
26941 "/vms/{vmid}",
26942 [
26943 "VM.PowerMgmt"
26944 ]
26945 ]
26946 },
26947 "protected" : 1,
26948 "proxyto" : "node",
26949 "returns" : {
26950 "type" : "string"
26951 }
26952 }
26953 },
26954 "leaf" : 1,
26955 "path" : "/nodes/{node}/lxc/{vmid}/status/start",
26956 "text" : "start"
26957 },
26958 {
26959 "info" : {
26960 "POST" : {
e9cd3bd4 26961 "allowtoken" : 1,
4d47f125
TL
26962 "description" : "Stop the container. This will abruptly stop all processes running in the container.",
26963 "method" : "POST",
26964 "name" : "vm_stop",
26965 "parameters" : {
26966 "additionalProperties" : 0,
26967 "properties" : {
26968 "node" : {
26969 "description" : "The cluster node name.",
26970 "format" : "pve-node",
26971 "type" : "string",
26972 "typetext" : "<string>"
26973 },
26974 "skiplock" : {
26975 "description" : "Ignore locks - only root is allowed to use this option.",
26976 "optional" : 1,
26977 "type" : "boolean",
26978 "typetext" : "<boolean>"
26979 },
26980 "vmid" : {
26981 "description" : "The (unique) ID of the VM.",
26982 "format" : "pve-vmid",
26983 "minimum" : 1,
26984 "type" : "integer",
26985 "typetext" : "<integer> (1 - N)"
26986 }
26987 }
26988 },
26989 "permissions" : {
26990 "check" : [
26991 "perm",
26992 "/vms/{vmid}",
26993 [
26994 "VM.PowerMgmt"
26995 ]
26996 ]
26997 },
26998 "protected" : 1,
26999 "proxyto" : "node",
27000 "returns" : {
27001 "type" : "string"
27002 }
27003 }
27004 },
27005 "leaf" : 1,
27006 "path" : "/nodes/{node}/lxc/{vmid}/status/stop",
27007 "text" : "stop"
27008 },
27009 {
27010 "info" : {
27011 "POST" : {
e9cd3bd4 27012 "allowtoken" : 1,
4d47f125
TL
27013 "description" : "Shutdown the container. This will trigger a clean shutdown of the container, see lxc-stop(1) for details.",
27014 "method" : "POST",
27015 "name" : "vm_shutdown",
27016 "parameters" : {
27017 "additionalProperties" : 0,
27018 "properties" : {
27019 "forceStop" : {
27020 "default" : 0,
27021 "description" : "Make sure the Container stops.",
27022 "optional" : 1,
27023 "type" : "boolean",
27024 "typetext" : "<boolean>"
27025 },
27026 "node" : {
27027 "description" : "The cluster node name.",
27028 "format" : "pve-node",
27029 "type" : "string",
27030 "typetext" : "<string>"
27031 },
27032 "timeout" : {
27033 "default" : 60,
27034 "description" : "Wait maximal timeout seconds.",
27035 "minimum" : 0,
27036 "optional" : 1,
27037 "type" : "integer",
27038 "typetext" : "<integer> (0 - N)"
27039 },
27040 "vmid" : {
27041 "description" : "The (unique) ID of the VM.",
27042 "format" : "pve-vmid",
27043 "minimum" : 1,
27044 "type" : "integer",
27045 "typetext" : "<integer> (1 - N)"
27046 }
27047 }
27048 },
27049 "permissions" : {
27050 "check" : [
27051 "perm",
27052 "/vms/{vmid}",
27053 [
27054 "VM.PowerMgmt"
7aacca6f
DM
27055 ]
27056 ]
27057 },
44660702 27058 "protected" : 1,
7aacca6f 27059 "proxyto" : "node",
44660702 27060 "returns" : {
4d47f125 27061 "type" : "string"
44660702 27062 }
56122987
DM
27063 }
27064 },
44660702 27065 "leaf" : 1,
4d47f125
TL
27066 "path" : "/nodes/{node}/lxc/{vmid}/status/shutdown",
27067 "text" : "shutdown"
56122987
DM
27068 },
27069 {
56122987
DM
27070 "info" : {
27071 "POST" : {
e9cd3bd4 27072 "allowtoken" : 1,
5370fa8c 27073 "description" : "Suspend the container. This is experimental.",
44660702 27074 "method" : "POST",
4d47f125 27075 "name" : "vm_suspend",
56122987
DM
27076 "parameters" : {
27077 "additionalProperties" : 0,
27078 "properties" : {
56122987 27079 "node" : {
7aacca6f 27080 "description" : "The cluster node name.",
44660702 27081 "format" : "pve-node",
013dc89f
DM
27082 "type" : "string",
27083 "typetext" : "<string>"
56122987
DM
27084 },
27085 "vmid" : {
7aacca6f 27086 "description" : "The (unique) ID of the VM.",
44660702 27087 "format" : "pve-vmid",
56122987 27088 "minimum" : 1,
4bd7df8b 27089 "type" : "integer",
013dc89f 27090 "typetext" : "<integer> (1 - N)"
56122987
DM
27091 }
27092 }
27093 },
27094 "permissions" : {
27095 "check" : [
27096 "perm",
27097 "/vms/{vmid}",
27098 [
27099 "VM.PowerMgmt"
27100 ]
27101 ]
27102 },
44660702 27103 "protected" : 1,
7aacca6f 27104 "proxyto" : "node",
44660702
DM
27105 "returns" : {
27106 "type" : "string"
27107 }
27108 }
27109 },
27110 "leaf" : 1,
4d47f125
TL
27111 "path" : "/nodes/{node}/lxc/{vmid}/status/suspend",
27112 "text" : "suspend"
44660702
DM
27113 },
27114 {
27115 "info" : {
27116 "POST" : {
e9cd3bd4 27117 "allowtoken" : 1,
4d47f125 27118 "description" : "Resume the container.",
7aacca6f 27119 "method" : "POST",
4d47f125 27120 "name" : "vm_resume",
7aacca6f 27121 "parameters" : {
44660702 27122 "additionalProperties" : 0,
7aacca6f 27123 "properties" : {
44660702
DM
27124 "node" : {
27125 "description" : "The cluster node name.",
27126 "format" : "pve-node",
013dc89f
DM
27127 "type" : "string",
27128 "typetext" : "<string>"
44660702 27129 },
7aacca6f 27130 "vmid" : {
44660702 27131 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
27132 "format" : "pve-vmid",
27133 "minimum" : 1,
4bd7df8b 27134 "type" : "integer",
013dc89f 27135 "typetext" : "<integer> (1 - N)"
7aacca6f 27136 }
44660702
DM
27137 }
27138 },
27139 "permissions" : {
27140 "check" : [
27141 "perm",
27142 "/vms/{vmid}",
27143 [
27144 "VM.PowerMgmt"
27145 ]
27146 ]
7aacca6f 27147 },
44660702
DM
27148 "protected" : 1,
27149 "proxyto" : "node",
27150 "returns" : {
27151 "type" : "string"
27152 }
56122987 27153 }
7aacca6f 27154 },
7aacca6f 27155 "leaf" : 1,
4d47f125
TL
27156 "path" : "/nodes/{node}/lxc/{vmid}/status/resume",
27157 "text" : "resume"
5c1699e5
TL
27158 },
27159 {
27160 "info" : {
27161 "POST" : {
e9cd3bd4 27162 "allowtoken" : 1,
5c1699e5
TL
27163 "description" : "Reboot the container by shutting it down, and starting it again. Applies pending changes.",
27164 "method" : "POST",
27165 "name" : "vm_reboot",
27166 "parameters" : {
27167 "additionalProperties" : 0,
27168 "properties" : {
27169 "node" : {
27170 "description" : "The cluster node name.",
27171 "format" : "pve-node",
27172 "type" : "string",
27173 "typetext" : "<string>"
27174 },
27175 "timeout" : {
27176 "description" : "Wait maximal timeout seconds for the shutdown.",
27177 "minimum" : 0,
27178 "optional" : 1,
27179 "type" : "integer",
27180 "typetext" : "<integer> (0 - N)"
27181 },
27182 "vmid" : {
27183 "description" : "The (unique) ID of the VM.",
27184 "format" : "pve-vmid",
27185 "minimum" : 1,
27186 "type" : "integer",
27187 "typetext" : "<integer> (1 - N)"
27188 }
27189 }
27190 },
27191 "permissions" : {
27192 "check" : [
27193 "perm",
27194 "/vms/{vmid}",
27195 [
27196 "VM.PowerMgmt"
27197 ]
27198 ]
27199 },
27200 "protected" : 1,
27201 "proxyto" : "node",
27202 "returns" : {
27203 "type" : "string"
27204 }
27205 }
27206 },
27207 "leaf" : 1,
27208 "path" : "/nodes/{node}/lxc/{vmid}/status/reboot",
27209 "text" : "reboot"
4d47f125
TL
27210 }
27211 ],
27212 "info" : {
27213 "GET" : {
e9cd3bd4 27214 "allowtoken" : 1,
4d47f125
TL
27215 "description" : "Directory index",
27216 "method" : "GET",
27217 "name" : "vmcmdidx",
27218 "parameters" : {
27219 "additionalProperties" : 0,
27220 "properties" : {
27221 "node" : {
27222 "description" : "The cluster node name.",
27223 "format" : "pve-node",
27224 "type" : "string",
27225 "typetext" : "<string>"
27226 },
27227 "vmid" : {
27228 "description" : "The (unique) ID of the VM.",
27229 "format" : "pve-vmid",
27230 "minimum" : 1,
27231 "type" : "integer",
27232 "typetext" : "<integer> (1 - N)"
27233 }
27234 }
27235 },
27236 "permissions" : {
27237 "user" : "all"
27238 },
27239 "proxyto" : "node",
27240 "returns" : {
27241 "items" : {
27242 "properties" : {
27243 "subdir" : {
27244 "type" : "string"
27245 }
27246 },
27247 "type" : "object"
27248 },
27249 "links" : [
27250 {
27251 "href" : "{subdir}",
27252 "rel" : "child"
27253 }
27254 ],
27255 "type" : "array"
27256 }
27257 }
27258 },
27259 "leaf" : 0,
27260 "path" : "/nodes/{node}/lxc/{vmid}/status",
27261 "text" : "status"
27262 },
27263 {
27264 "children" : [
56122987 27265 {
4d47f125
TL
27266 "children" : [
27267 {
27268 "info" : {
27269 "POST" : {
e9cd3bd4 27270 "allowtoken" : 1,
4d47f125
TL
27271 "description" : "Rollback LXC state to specified snapshot.",
27272 "method" : "POST",
27273 "name" : "rollback",
27274 "parameters" : {
27275 "additionalProperties" : 0,
27276 "properties" : {
27277 "node" : {
27278 "description" : "The cluster node name.",
27279 "format" : "pve-node",
27280 "type" : "string",
27281 "typetext" : "<string>"
27282 },
27283 "snapname" : {
27284 "description" : "The name of the snapshot.",
27285 "format" : "pve-configid",
27286 "maxLength" : 40,
27287 "type" : "string",
27288 "typetext" : "<string>"
27289 },
4e7f60c2
TL
27290 "start" : {
27291 "default" : 0,
27292 "description" : "Whether the container should get started after rolling back successfully",
27293 "optional" : 1,
27294 "type" : "boolean",
27295 "typetext" : "<boolean>"
27296 },
4d47f125
TL
27297 "vmid" : {
27298 "description" : "The (unique) ID of the VM.",
27299 "format" : "pve-vmid",
27300 "minimum" : 1,
27301 "type" : "integer",
27302 "typetext" : "<integer> (1 - N)"
27303 }
27304 }
27305 },
27306 "permissions" : {
27307 "check" : [
27308 "perm",
27309 "/vms/{vmid}",
27310 [
27311 "VM.Snapshot",
27312 "VM.Snapshot.Rollback"
27313 ],
27314 "any",
27315 1
27316 ]
27317 },
27318 "protected" : 1,
27319 "proxyto" : "node",
27320 "returns" : {
27321 "description" : "the task ID.",
27322 "type" : "string"
27323 }
27324 }
27325 },
27326 "leaf" : 1,
27327 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/rollback",
27328 "text" : "rollback"
27329 },
27330 {
27331 "info" : {
27332 "GET" : {
e9cd3bd4 27333 "allowtoken" : 1,
4d47f125
TL
27334 "description" : "Get snapshot configuration",
27335 "method" : "GET",
27336 "name" : "get_snapshot_config",
27337 "parameters" : {
27338 "additionalProperties" : 0,
27339 "properties" : {
27340 "node" : {
27341 "description" : "The cluster node name.",
27342 "format" : "pve-node",
27343 "type" : "string",
27344 "typetext" : "<string>"
27345 },
27346 "snapname" : {
27347 "description" : "The name of the snapshot.",
27348 "format" : "pve-configid",
27349 "maxLength" : 40,
27350 "type" : "string",
27351 "typetext" : "<string>"
27352 },
27353 "vmid" : {
27354 "description" : "The (unique) ID of the VM.",
27355 "format" : "pve-vmid",
27356 "minimum" : 1,
27357 "type" : "integer",
27358 "typetext" : "<integer> (1 - N)"
27359 }
27360 }
27361 },
27362 "permissions" : {
27363 "check" : [
27364 "perm",
27365 "/vms/{vmid}",
27366 [
27367 "VM.Snapshot",
c5aa7e14
TL
27368 "VM.Snapshot.Rollback",
27369 "VM.Audit"
4d47f125
TL
27370 ],
27371 "any",
27372 1
27373 ]
27374 },
27375 "proxyto" : "node",
27376 "returns" : {
27377 "type" : "object"
27378 }
27379 },
27380 "PUT" : {
e9cd3bd4 27381 "allowtoken" : 1,
4d47f125
TL
27382 "description" : "Update snapshot metadata.",
27383 "method" : "PUT",
27384 "name" : "update_snapshot_config",
27385 "parameters" : {
27386 "additionalProperties" : 0,
27387 "properties" : {
27388 "description" : {
27389 "description" : "A textual description or comment.",
27390 "optional" : 1,
27391 "type" : "string",
27392 "typetext" : "<string>"
27393 },
27394 "node" : {
27395 "description" : "The cluster node name.",
27396 "format" : "pve-node",
27397 "type" : "string",
27398 "typetext" : "<string>"
27399 },
27400 "snapname" : {
27401 "description" : "The name of the snapshot.",
27402 "format" : "pve-configid",
27403 "maxLength" : 40,
27404 "type" : "string",
27405 "typetext" : "<string>"
27406 },
27407 "vmid" : {
27408 "description" : "The (unique) ID of the VM.",
27409 "format" : "pve-vmid",
27410 "minimum" : 1,
27411 "type" : "integer",
27412 "typetext" : "<integer> (1 - N)"
27413 }
27414 }
27415 },
27416 "permissions" : {
27417 "check" : [
27418 "perm",
27419 "/vms/{vmid}",
27420 [
27421 "VM.Snapshot"
27422 ]
27423 ]
27424 },
27425 "protected" : 1,
27426 "proxyto" : "node",
27427 "returns" : {
27428 "type" : "null"
27429 }
27430 }
27431 },
27432 "leaf" : 1,
27433 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}/config",
27434 "text" : "config"
27435 }
27436 ],
56122987 27437 "info" : {
4d47f125 27438 "DELETE" : {
e9cd3bd4 27439 "allowtoken" : 1,
4d47f125
TL
27440 "description" : "Delete a LXC snapshot.",
27441 "method" : "DELETE",
27442 "name" : "delsnapshot",
56122987 27443 "parameters" : {
44660702 27444 "additionalProperties" : 0,
56122987 27445 "properties" : {
4d47f125
TL
27446 "force" : {
27447 "description" : "For removal from config file, even if removing disk snapshots fails.",
7aacca6f 27448 "optional" : 1,
013dc89f
DM
27449 "type" : "boolean",
27450 "typetext" : "<boolean>"
44660702
DM
27451 },
27452 "node" : {
27453 "description" : "The cluster node name.",
27454 "format" : "pve-node",
013dc89f
DM
27455 "type" : "string",
27456 "typetext" : "<string>"
7aacca6f 27457 },
4d47f125
TL
27458 "snapname" : {
27459 "description" : "The name of the snapshot.",
27460 "format" : "pve-configid",
27461 "maxLength" : 40,
27462 "type" : "string",
27463 "typetext" : "<string>"
56122987
DM
27464 },
27465 "vmid" : {
7aacca6f 27466 "description" : "The (unique) ID of the VM.",
44660702
DM
27467 "format" : "pve-vmid",
27468 "minimum" : 1,
4bd7df8b 27469 "type" : "integer",
013dc89f 27470 "typetext" : "<integer> (1 - N)"
56122987 27471 }
44660702 27472 }
56122987
DM
27473 },
27474 "permissions" : {
27475 "check" : [
27476 "perm",
27477 "/vms/{vmid}",
27478 [
4d47f125 27479 "VM.Snapshot"
56122987
DM
27480 ]
27481 ]
27482 },
44660702
DM
27483 "protected" : 1,
27484 "proxyto" : "node",
7aacca6f 27485 "returns" : {
4d47f125 27486 "description" : "the task ID.",
7aacca6f
DM
27487 "type" : "string"
27488 }
4d47f125
TL
27489 },
27490 "GET" : {
e9cd3bd4 27491 "allowtoken" : 1,
4d47f125
TL
27492 "description" : "",
27493 "method" : "GET",
27494 "name" : "snapshot_cmd_idx",
56122987
DM
27495 "parameters" : {
27496 "additionalProperties" : 0,
27497 "properties" : {
44660702
DM
27498 "node" : {
27499 "description" : "The cluster node name.",
27500 "format" : "pve-node",
013dc89f
DM
27501 "type" : "string",
27502 "typetext" : "<string>"
44660702 27503 },
4d47f125
TL
27504 "snapname" : {
27505 "description" : "The name of the snapshot.",
27506 "format" : "pve-configid",
27507 "maxLength" : 40,
013dc89f
DM
27508 "type" : "string",
27509 "typetext" : "<string>"
56122987
DM
27510 },
27511 "vmid" : {
7aacca6f 27512 "description" : "The (unique) ID of the VM.",
56122987 27513 "format" : "pve-vmid",
44660702 27514 "minimum" : 1,
4bd7df8b 27515 "type" : "integer",
013dc89f 27516 "typetext" : "<integer> (1 - N)"
56122987 27517 }
44660702
DM
27518 }
27519 },
27520 "permissions" : {
4d47f125 27521 "user" : "all"
56122987 27522 },
44660702 27523 "returns" : {
4d47f125
TL
27524 "items" : {
27525 "properties" : {},
27526 "type" : "object"
27527 },
27528 "links" : [
27529 {
27530 "href" : "{cmd}",
27531 "rel" : "child"
27532 }
27533 ],
27534 "type" : "array"
44660702 27535 }
7aacca6f
DM
27536 }
27537 },
4d47f125
TL
27538 "leaf" : 0,
27539 "path" : "/nodes/{node}/lxc/{vmid}/snapshot/{snapname}",
27540 "text" : "{snapname}"
7aacca6f
DM
27541 }
27542 ],
27543 "info" : {
27544 "GET" : {
e9cd3bd4 27545 "allowtoken" : 1,
4d47f125 27546 "description" : "List all snapshots.",
44660702 27547 "method" : "GET",
4d47f125 27548 "name" : "list",
7aacca6f
DM
27549 "parameters" : {
27550 "additionalProperties" : 0,
27551 "properties" : {
27552 "node" : {
27553 "description" : "The cluster node name.",
44660702 27554 "format" : "pve-node",
013dc89f
DM
27555 "type" : "string",
27556 "typetext" : "<string>"
56122987 27557 },
7aacca6f 27558 "vmid" : {
44660702 27559 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
27560 "format" : "pve-vmid",
27561 "minimum" : 1,
4bd7df8b 27562 "type" : "integer",
013dc89f 27563 "typetext" : "<integer> (1 - N)"
7aacca6f 27564 }
56122987
DM
27565 }
27566 },
44660702 27567 "permissions" : {
4d47f125
TL
27568 "check" : [
27569 "perm",
27570 "/vms/{vmid}",
27571 [
27572 "VM.Audit"
27573 ]
27574 ]
44660702 27575 },
4d47f125 27576 "protected" : 1,
44660702 27577 "proxyto" : "node",
7aacca6f 27578 "returns" : {
7aacca6f
DM
27579 "items" : {
27580 "properties" : {
4d47f125
TL
27581 "description" : {
27582 "description" : "Snapshot description.",
7aacca6f 27583 "type" : "string"
4d47f125
TL
27584 },
27585 "name" : {
27586 "description" : "Snapshot identifier. Value 'current' identifies the current VM.",
27587 "type" : "string"
27588 },
27589 "parent" : {
27590 "description" : "Parent snapshot identifier.",
27591 "optional" : 1,
27592 "type" : "string"
27593 },
27594 "snaptime" : {
27595 "description" : "Snapshot creation time",
27596 "optional" : 1,
27597 "renderer" : "timestamp",
27598 "type" : "integer"
7aacca6f
DM
27599 }
27600 },
27601 "type" : "object"
27602 },
27603 "links" : [
27604 {
4d47f125 27605 "href" : "{name}",
44660702 27606 "rel" : "child"
7aacca6f 27607 }
44660702
DM
27608 ],
27609 "type" : "array"
7aacca6f 27610 }
4d47f125
TL
27611 },
27612 "POST" : {
e9cd3bd4 27613 "allowtoken" : 1,
4d47f125
TL
27614 "description" : "Snapshot a container.",
27615 "method" : "POST",
27616 "name" : "snapshot",
27617 "parameters" : {
27618 "additionalProperties" : 0,
27619 "properties" : {
27620 "description" : {
27621 "description" : "A textual description or comment.",
27622 "optional" : 1,
27623 "type" : "string",
27624 "typetext" : "<string>"
27625 },
27626 "node" : {
27627 "description" : "The cluster node name.",
27628 "format" : "pve-node",
27629 "type" : "string",
27630 "typetext" : "<string>"
27631 },
27632 "snapname" : {
27633 "description" : "The name of the snapshot.",
27634 "format" : "pve-configid",
27635 "maxLength" : 40,
27636 "type" : "string",
27637 "typetext" : "<string>"
27638 },
27639 "vmid" : {
27640 "description" : "The (unique) ID of the VM.",
27641 "format" : "pve-vmid",
27642 "minimum" : 1,
27643 "type" : "integer",
27644 "typetext" : "<integer> (1 - N)"
27645 }
27646 }
27647 },
27648 "permissions" : {
27649 "check" : [
27650 "perm",
27651 "/vms/{vmid}",
27652 [
27653 "VM.Snapshot"
27654 ]
27655 ]
27656 },
27657 "protected" : 1,
27658 "proxyto" : "node",
27659 "returns" : {
27660 "description" : "the task ID.",
27661 "type" : "string"
27662 }
7aacca6f 27663 }
44660702
DM
27664 },
27665 "leaf" : 0,
4d47f125
TL
27666 "path" : "/nodes/{node}/lxc/{vmid}/snapshot",
27667 "text" : "snapshot"
7aacca6f
DM
27668 },
27669 {
7aacca6f 27670 "children" : [
56122987 27671 {
7aacca6f
DM
27672 "children" : [
27673 {
27674 "info" : {
4d47f125 27675 "DELETE" : {
e9cd3bd4 27676 "allowtoken" : 1,
4d47f125
TL
27677 "description" : "Delete rule.",
27678 "method" : "DELETE",
27679 "name" : "delete_rule",
7aacca6f 27680 "parameters" : {
44660702 27681 "additionalProperties" : 0,
7aacca6f 27682 "properties" : {
4d47f125
TL
27683 "digest" : {
27684 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27685 "maxLength" : 40,
27686 "optional" : 1,
27687 "type" : "string",
27688 "typetext" : "<string>"
27689 },
44660702
DM
27690 "node" : {
27691 "description" : "The cluster node name.",
27692 "format" : "pve-node",
013dc89f
DM
27693 "type" : "string",
27694 "typetext" : "<string>"
44660702 27695 },
4d47f125
TL
27696 "pos" : {
27697 "description" : "Update rule at position <pos>.",
27698 "minimum" : 0,
27699 "optional" : 1,
27700 "type" : "integer",
27701 "typetext" : "<integer> (0 - N)"
7aacca6f 27702 },
7aacca6f 27703 "vmid" : {
44660702 27704 "description" : "The (unique) ID of the VM.",
7aacca6f 27705 "format" : "pve-vmid",
44660702 27706 "minimum" : 1,
4bd7df8b 27707 "type" : "integer",
013dc89f 27708 "typetext" : "<integer> (1 - N)"
7aacca6f 27709 }
44660702
DM
27710 }
27711 },
27712 "permissions" : {
27713 "check" : [
27714 "perm",
27715 "/vms/{vmid}",
27716 [
4d47f125
TL
27717 "VM.Config.Network"
27718 ]
44660702 27719 ]
7aacca6f 27720 },
44660702 27721 "protected" : 1,
4d47f125 27722 "proxyto" : null,
44660702 27723 "returns" : {
4d47f125 27724 "type" : "null"
44660702 27725 }
4d47f125 27726 },
7aacca6f 27727 "GET" : {
e9cd3bd4 27728 "allowtoken" : 1,
4d47f125 27729 "description" : "Get single rule data.",
44660702 27730 "method" : "GET",
4d47f125 27731 "name" : "get_rule",
7aacca6f
DM
27732 "parameters" : {
27733 "additionalProperties" : 0,
4d47f125
TL
27734 "properties" : {
27735 "node" : {
27736 "description" : "The cluster node name.",
27737 "format" : "pve-node",
013dc89f
DM
27738 "type" : "string",
27739 "typetext" : "<string>"
44660702 27740 },
4d47f125
TL
27741 "pos" : {
27742 "description" : "Update rule at position <pos>.",
27743 "minimum" : 0,
27744 "optional" : 1,
27745 "type" : "integer",
27746 "typetext" : "<integer> (0 - N)"
27747 },
44660702
DM
27748 "vmid" : {
27749 "description" : "The (unique) ID of the VM.",
27750 "format" : "pve-vmid",
27751 "minimum" : 1,
4bd7df8b 27752 "type" : "integer",
013dc89f 27753 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
27754 }
27755 }
27756 },
27757 "permissions" : {
27758 "check" : [
27759 "perm",
27760 "/vms/{vmid}",
27761 [
4d47f125
TL
27762 "VM.Audit"
27763 ]
7aacca6f
DM
27764 ]
27765 },
4d47f125 27766 "proxyto" : null,
44660702 27767 "returns" : {
4d47f125 27768 "properties" : {
e2d681b3
TL
27769 "action" : {
27770 "type" : "string"
27771 },
27772 "comment" : {
27773 "optional" : 1,
27774 "type" : "string"
27775 },
27776 "dest" : {
27777 "optional" : 1,
27778 "type" : "string"
27779 },
27780 "dport" : {
27781 "optional" : 1,
27782 "type" : "string"
27783 },
27784 "enable" : {
27785 "optional" : 1,
27786 "type" : "integer"
27787 },
4772952b
TL
27788 "icmp-type" : {
27789 "optional" : 1,
27790 "type" : "string"
27791 },
e2d681b3
TL
27792 "iface" : {
27793 "optional" : 1,
27794 "type" : "string"
27795 },
27796 "ipversion" : {
27797 "optional" : 1,
27798 "type" : "integer"
27799 },
95895385
TL
27800 "log" : {
27801 "description" : "Log level for firewall rule",
27802 "enum" : [
27803 "emerg",
27804 "alert",
27805 "crit",
27806 "err",
27807 "warning",
27808 "notice",
27809 "info",
27810 "debug",
27811 "nolog"
27812 ],
27813 "optional" : 1,
27814 "type" : "string"
27815 },
e2d681b3
TL
27816 "macro" : {
27817 "optional" : 1,
5f26e15b 27818 "type" : "string"
e2d681b3 27819 },
4d47f125
TL
27820 "pos" : {
27821 "type" : "integer"
e2d681b3
TL
27822 },
27823 "proto" : {
27824 "optional" : 1,
27825 "type" : "string"
27826 },
27827 "source" : {
27828 "optional" : 1,
27829 "type" : "string"
27830 },
27831 "sport" : {
27832 "optional" : 1,
27833 "type" : "string"
27834 },
27835 "type" : {
27836 "type" : "string"
4d47f125
TL
27837 }
27838 },
44660702
DM
27839 "type" : "object"
27840 }
7aacca6f
DM
27841 },
27842 "PUT" : {
e9cd3bd4 27843 "allowtoken" : 1,
4d47f125 27844 "description" : "Modify rule data.",
44660702 27845 "method" : "PUT",
4d47f125 27846 "name" : "update_rule",
7aacca6f
DM
27847 "parameters" : {
27848 "additionalProperties" : 0,
27849 "properties" : {
4d47f125
TL
27850 "action" : {
27851 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
27852 "maxLength" : 20,
27853 "minLength" : 2,
27854 "optional" : 1,
27855 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
27856 "type" : "string"
27857 },
27858 "comment" : {
27859 "description" : "Descriptive comment.",
27860 "optional" : 1,
27861 "type" : "string",
27862 "typetext" : "<string>"
27863 },
27864 "delete" : {
27865 "description" : "A list of settings you want to delete.",
27866 "format" : "pve-configid-list",
27867 "optional" : 1,
27868 "type" : "string",
27869 "typetext" : "<string>"
27870 },
27871 "dest" : {
27872 "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.",
27873 "format" : "pve-fw-addr-spec",
0695fdaf 27874 "maxLength" : 512,
4d47f125
TL
27875 "optional" : 1,
27876 "type" : "string",
27877 "typetext" : "<string>"
27878 },
27879 "digest" : {
27880 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
27881 "maxLength" : 40,
27882 "optional" : 1,
27883 "type" : "string",
27884 "typetext" : "<string>"
27885 },
27886 "dport" : {
27887 "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.",
27888 "format" : "pve-fw-dport-spec",
27889 "optional" : 1,
27890 "type" : "string",
27891 "typetext" : "<string>"
27892 },
27893 "enable" : {
27894 "description" : "Flag to enable/disable a rule.",
27895 "minimum" : 0,
27896 "optional" : 1,
27897 "type" : "integer",
27898 "typetext" : "<integer> (0 - N)"
27899 },
4772952b
TL
27900 "icmp-type" : {
27901 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
27902 "format" : "pve-fw-icmp-type-spec",
27903 "optional" : 1,
27904 "type" : "string",
27905 "typetext" : "<string>"
27906 },
4d47f125
TL
27907 "iface" : {
27908 "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.",
27909 "format" : "pve-iface",
27910 "maxLength" : 20,
27911 "minLength" : 2,
27912 "optional" : 1,
27913 "type" : "string",
27914 "typetext" : "<string>"
27915 },
95895385
TL
27916 "log" : {
27917 "description" : "Log level for firewall rule.",
27918 "enum" : [
27919 "emerg",
27920 "alert",
27921 "crit",
27922 "err",
27923 "warning",
27924 "notice",
27925 "info",
27926 "debug",
27927 "nolog"
27928 ],
27929 "optional" : 1,
27930 "type" : "string"
27931 },
4d47f125
TL
27932 "macro" : {
27933 "description" : "Use predefined standard macro.",
27934 "maxLength" : 128,
44660702 27935 "optional" : 1,
013dc89f
DM
27936 "type" : "string",
27937 "typetext" : "<string>"
44660702 27938 },
4d47f125
TL
27939 "moveto" : {
27940 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
27941 "minimum" : 0,
27942 "optional" : 1,
27943 "type" : "integer",
27944 "typetext" : "<integer> (0 - N)"
27945 },
7aacca6f 27946 "node" : {
7aacca6f 27947 "description" : "The cluster node name.",
44660702 27948 "format" : "pve-node",
013dc89f
DM
27949 "type" : "string",
27950 "typetext" : "<string>"
7aacca6f 27951 },
4d47f125
TL
27952 "pos" : {
27953 "description" : "Update rule at position <pos>.",
27954 "minimum" : 0,
27955 "optional" : 1,
27956 "type" : "integer",
27957 "typetext" : "<integer> (0 - N)"
27958 },
27959 "proto" : {
27960 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
27961 "format" : "pve-fw-protocol-spec",
27962 "optional" : 1,
27963 "type" : "string",
27964 "typetext" : "<string>"
27965 },
27966 "source" : {
27967 "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.",
27968 "format" : "pve-fw-addr-spec",
0695fdaf 27969 "maxLength" : 512,
4d47f125
TL
27970 "optional" : 1,
27971 "type" : "string",
27972 "typetext" : "<string>"
27973 },
27974 "sport" : {
27975 "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.",
27976 "format" : "pve-fw-sport-spec",
27977 "optional" : 1,
013dc89f
DM
27978 "type" : "string",
27979 "typetext" : "<string>"
7aacca6f 27980 },
4d47f125
TL
27981 "type" : {
27982 "description" : "Rule type.",
27983 "enum" : [
27984 "in",
27985 "out",
27986 "group"
27987 ],
27988 "optional" : 1,
27989 "type" : "string"
27990 },
7aacca6f 27991 "vmid" : {
44660702 27992 "description" : "The (unique) ID of the VM.",
7aacca6f 27993 "format" : "pve-vmid",
44660702 27994 "minimum" : 1,
4bd7df8b 27995 "type" : "integer",
013dc89f 27996 "typetext" : "<integer> (1 - N)"
7aacca6f
DM
27997 }
27998 }
27999 },
7aacca6f
DM
28000 "permissions" : {
28001 "check" : [
28002 "perm",
28003 "/vms/{vmid}",
28004 [
4d47f125 28005 "VM.Config.Network"
7aacca6f
DM
28006 ]
28007 ]
28008 },
4d47f125
TL
28009 "protected" : 1,
28010 "proxyto" : null,
28011 "returns" : {
28012 "type" : "null"
28013 }
28014 }
28015 },
28016 "leaf" : 1,
28017 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules/{pos}",
28018 "text" : "{pos}"
28019 }
28020 ],
28021 "info" : {
28022 "GET" : {
e9cd3bd4 28023 "allowtoken" : 1,
4d47f125
TL
28024 "description" : "List rules.",
28025 "method" : "GET",
28026 "name" : "get_rules",
28027 "parameters" : {
28028 "additionalProperties" : 0,
28029 "properties" : {
28030 "node" : {
28031 "description" : "The cluster node name.",
28032 "format" : "pve-node",
28033 "type" : "string",
28034 "typetext" : "<string>"
28035 },
28036 "vmid" : {
28037 "description" : "The (unique) ID of the VM.",
28038 "format" : "pve-vmid",
28039 "minimum" : 1,
28040 "type" : "integer",
28041 "typetext" : "<integer> (1 - N)"
28042 }
28043 }
28044 },
28045 "permissions" : {
28046 "check" : [
28047 "perm",
28048 "/vms/{vmid}",
28049 [
28050 "VM.Audit"
28051 ]
28052 ]
28053 },
28054 "proxyto" : null,
28055 "returns" : {
28056 "items" : {
28057 "properties" : {
28058 "pos" : {
28059 "type" : "integer"
28060 }
28061 },
28062 "type" : "object"
28063 },
28064 "links" : [
28065 {
28066 "href" : "{pos}",
28067 "rel" : "child"
28068 }
28069 ],
28070 "type" : "array"
28071 }
28072 },
28073 "POST" : {
e9cd3bd4 28074 "allowtoken" : 1,
4d47f125
TL
28075 "description" : "Create new rule.",
28076 "method" : "POST",
28077 "name" : "create_rule",
28078 "parameters" : {
28079 "additionalProperties" : 0,
28080 "properties" : {
28081 "action" : {
28082 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
28083 "maxLength" : 20,
28084 "minLength" : 2,
28085 "optional" : 0,
28086 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28087 "type" : "string"
28088 },
28089 "comment" : {
28090 "description" : "Descriptive comment.",
28091 "optional" : 1,
28092 "type" : "string",
28093 "typetext" : "<string>"
28094 },
28095 "dest" : {
28096 "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.",
28097 "format" : "pve-fw-addr-spec",
0695fdaf 28098 "maxLength" : 512,
4d47f125
TL
28099 "optional" : 1,
28100 "type" : "string",
28101 "typetext" : "<string>"
28102 },
28103 "digest" : {
28104 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28105 "maxLength" : 40,
28106 "optional" : 1,
28107 "type" : "string",
28108 "typetext" : "<string>"
28109 },
28110 "dport" : {
28111 "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.",
28112 "format" : "pve-fw-dport-spec",
28113 "optional" : 1,
28114 "type" : "string",
28115 "typetext" : "<string>"
28116 },
28117 "enable" : {
28118 "description" : "Flag to enable/disable a rule.",
28119 "minimum" : 0,
28120 "optional" : 1,
28121 "type" : "integer",
28122 "typetext" : "<integer> (0 - N)"
28123 },
4772952b
TL
28124 "icmp-type" : {
28125 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
28126 "format" : "pve-fw-icmp-type-spec",
28127 "optional" : 1,
28128 "type" : "string",
28129 "typetext" : "<string>"
28130 },
4d47f125
TL
28131 "iface" : {
28132 "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.",
28133 "format" : "pve-iface",
28134 "maxLength" : 20,
28135 "minLength" : 2,
28136 "optional" : 1,
28137 "type" : "string",
28138 "typetext" : "<string>"
28139 },
95895385
TL
28140 "log" : {
28141 "description" : "Log level for firewall rule.",
28142 "enum" : [
28143 "emerg",
28144 "alert",
28145 "crit",
28146 "err",
28147 "warning",
28148 "notice",
28149 "info",
28150 "debug",
28151 "nolog"
28152 ],
28153 "optional" : 1,
28154 "type" : "string"
28155 },
4d47f125
TL
28156 "macro" : {
28157 "description" : "Use predefined standard macro.",
28158 "maxLength" : 128,
44660702 28159 "optional" : 1,
4d47f125
TL
28160 "type" : "string",
28161 "typetext" : "<string>"
44660702
DM
28162 },
28163 "node" : {
28164 "description" : "The cluster node name.",
28165 "format" : "pve-node",
013dc89f
DM
28166 "type" : "string",
28167 "typetext" : "<string>"
7aacca6f 28168 },
4d47f125
TL
28169 "pos" : {
28170 "description" : "Update rule at position <pos>.",
28171 "minimum" : 0,
28172 "optional" : 1,
28173 "type" : "integer",
28174 "typetext" : "<integer> (0 - N)"
28175 },
28176 "proto" : {
28177 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
28178 "format" : "pve-fw-protocol-spec",
28179 "optional" : 1,
28180 "type" : "string",
28181 "typetext" : "<string>"
28182 },
28183 "source" : {
28184 "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.",
28185 "format" : "pve-fw-addr-spec",
0695fdaf 28186 "maxLength" : 512,
4d47f125 28187 "optional" : 1,
013dc89f
DM
28188 "type" : "string",
28189 "typetext" : "<string>"
44660702 28190 },
4d47f125
TL
28191 "sport" : {
28192 "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.",
28193 "format" : "pve-fw-sport-spec",
28194 "optional" : 1,
28195 "type" : "string",
28196 "typetext" : "<string>"
28197 },
28198 "type" : {
28199 "description" : "Rule type.",
28200 "enum" : [
28201 "in",
28202 "out",
28203 "group"
28204 ],
28205 "optional" : 0,
28206 "type" : "string"
28207 },
44660702
DM
28208 "vmid" : {
28209 "description" : "The (unique) ID of the VM.",
28210 "format" : "pve-vmid",
28211 "minimum" : 1,
4bd7df8b 28212 "type" : "integer",
013dc89f 28213 "typetext" : "<integer> (1 - N)"
56122987 28214 }
44660702 28215 }
7aacca6f 28216 },
56122987
DM
28217 "permissions" : {
28218 "check" : [
28219 "perm",
28220 "/vms/{vmid}",
28221 [
4d47f125 28222 "VM.Config.Network"
56122987
DM
28223 ]
28224 ]
28225 },
44660702 28226 "protected" : 1,
4d47f125 28227 "proxyto" : null,
44660702 28228 "returns" : {
4d47f125 28229 "type" : "null"
44660702
DM
28230 }
28231 }
28232 },
28233 "leaf" : 0,
4d47f125
TL
28234 "path" : "/nodes/{node}/lxc/{vmid}/firewall/rules",
28235 "text" : "rules"
7aacca6f 28236 },
56122987 28237 {
56122987
DM
28238 "children" : [
28239 {
56122987 28240 "info" : {
44660702 28241 "DELETE" : {
e9cd3bd4 28242 "allowtoken" : 1,
4d47f125 28243 "description" : "Remove IP or Network alias.",
44660702 28244 "method" : "DELETE",
4d47f125 28245 "name" : "remove_alias",
56122987 28246 "parameters" : {
44660702 28247 "additionalProperties" : 0,
56122987 28248 "properties" : {
44660702
DM
28249 "digest" : {
28250 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28251 "maxLength" : 40,
7aacca6f 28252 "optional" : 1,
013dc89f
DM
28253 "type" : "string",
28254 "typetext" : "<string>"
7aacca6f 28255 },
4d47f125
TL
28256 "name" : {
28257 "description" : "Alias name.",
28258 "maxLength" : 64,
28259 "minLength" : 2,
28260 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28261 "type" : "string"
28262 },
7aacca6f 28263 "node" : {
44660702 28264 "description" : "The cluster node name.",
7aacca6f 28265 "format" : "pve-node",
013dc89f
DM
28266 "type" : "string",
28267 "typetext" : "<string>"
44660702 28268 },
44660702
DM
28269 "vmid" : {
28270 "description" : "The (unique) ID of the VM.",
28271 "format" : "pve-vmid",
28272 "minimum" : 1,
4bd7df8b 28273 "type" : "integer",
013dc89f 28274 "typetext" : "<integer> (1 - N)"
56122987 28275 }
44660702 28276 }
56122987 28277 },
56122987
DM
28278 "permissions" : {
28279 "check" : [
28280 "perm",
28281 "/vms/{vmid}",
28282 [
44660702 28283 "VM.Config.Network"
56122987
DM
28284 ]
28285 ]
28286 },
44660702 28287 "protected" : 1,
44660702
DM
28288 "returns" : {
28289 "type" : "null"
28290 }
7aacca6f 28291 },
44660702 28292 "GET" : {
e9cd3bd4 28293 "allowtoken" : 1,
4d47f125 28294 "description" : "Read alias.",
44660702 28295 "method" : "GET",
4d47f125 28296 "name" : "read_alias",
56122987 28297 "parameters" : {
44660702 28298 "additionalProperties" : 0,
56122987 28299 "properties" : {
4d47f125
TL
28300 "name" : {
28301 "description" : "Alias name.",
28302 "maxLength" : 64,
28303 "minLength" : 2,
28304 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28305 "type" : "string"
28306 },
7aacca6f 28307 "node" : {
7aacca6f 28308 "description" : "The cluster node name.",
44660702 28309 "format" : "pve-node",
013dc89f
DM
28310 "type" : "string",
28311 "typetext" : "<string>"
56122987 28312 },
7aacca6f 28313 "vmid" : {
44660702 28314 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
28315 "format" : "pve-vmid",
28316 "minimum" : 1,
4bd7df8b 28317 "type" : "integer",
013dc89f 28318 "typetext" : "<integer> (1 - N)"
56122987 28319 }
44660702 28320 }
56122987 28321 },
7aacca6f
DM
28322 "permissions" : {
28323 "check" : [
28324 "perm",
28325 "/vms/{vmid}",
28326 [
44660702 28327 "VM.Audit"
7aacca6f
DM
28328 ]
28329 ]
28330 },
7aacca6f 28331 "returns" : {
44660702 28332 "type" : "object"
7aacca6f 28333 }
56122987 28334 },
44660702 28335 "PUT" : {
e9cd3bd4 28336 "allowtoken" : 1,
4d47f125 28337 "description" : "Update IP or Network alias.",
44660702 28338 "method" : "PUT",
4d47f125 28339 "name" : "update_alias",
56122987
DM
28340 "parameters" : {
28341 "additionalProperties" : 0,
28342 "properties" : {
4d47f125
TL
28343 "cidr" : {
28344 "description" : "Network/IP specification in CIDR format.",
28345 "format" : "IPorCIDR",
013dc89f
DM
28346 "type" : "string",
28347 "typetext" : "<string>"
44660702 28348 },
4d47f125 28349 "comment" : {
44660702 28350 "optional" : 1,
013dc89f
DM
28351 "type" : "string",
28352 "typetext" : "<string>"
44660702
DM
28353 },
28354 "digest" : {
28355 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28356 "maxLength" : 40,
28357 "optional" : 1,
013dc89f
DM
28358 "type" : "string",
28359 "typetext" : "<string>"
44660702 28360 },
4d47f125
TL
28361 "name" : {
28362 "description" : "Alias name.",
28363 "maxLength" : 64,
44660702 28364 "minLength" : 2,
4d47f125
TL
28365 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28366 "type" : "string"
44660702 28367 },
7aacca6f
DM
28368 "node" : {
28369 "description" : "The cluster node name.",
44660702 28370 "format" : "pve-node",
013dc89f
DM
28371 "type" : "string",
28372 "typetext" : "<string>"
56122987 28373 },
4d47f125
TL
28374 "rename" : {
28375 "description" : "Rename an existing alias.",
28376 "maxLength" : 64,
28377 "minLength" : 2,
7aacca6f 28378 "optional" : 1,
4d47f125 28379 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
28380 "type" : "string"
28381 },
28382 "vmid" : {
28383 "description" : "The (unique) ID of the VM.",
28384 "format" : "pve-vmid",
28385 "minimum" : 1,
4bd7df8b 28386 "type" : "integer",
013dc89f 28387 "typetext" : "<integer> (1 - N)"
56122987
DM
28388 }
28389 }
28390 },
56122987
DM
28391 "permissions" : {
28392 "check" : [
28393 "perm",
28394 "/vms/{vmid}",
28395 [
7aacca6f 28396 "VM.Config.Network"
56122987
DM
28397 ]
28398 ]
28399 },
44660702 28400 "protected" : 1,
56122987 28401 "returns" : {
7aacca6f
DM
28402 "type" : "null"
28403 }
56122987 28404 }
44660702
DM
28405 },
28406 "leaf" : 1,
4d47f125
TL
28407 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases/{name}",
28408 "text" : "{name}"
56122987
DM
28409 }
28410 ],
28411 "info" : {
7aacca6f 28412 "GET" : {
e9cd3bd4 28413 "allowtoken" : 1,
4d47f125 28414 "description" : "List aliases",
44660702 28415 "method" : "GET",
4d47f125 28416 "name" : "get_aliases",
7aacca6f 28417 "parameters" : {
44660702 28418 "additionalProperties" : 0,
7aacca6f
DM
28419 "properties" : {
28420 "node" : {
7aacca6f 28421 "description" : "The cluster node name.",
44660702 28422 "format" : "pve-node",
013dc89f
DM
28423 "type" : "string",
28424 "typetext" : "<string>"
7aacca6f
DM
28425 },
28426 "vmid" : {
28427 "description" : "The (unique) ID of the VM.",
44660702 28428 "format" : "pve-vmid",
7aacca6f 28429 "minimum" : 1,
4bd7df8b 28430 "type" : "integer",
013dc89f 28431 "typetext" : "<integer> (1 - N)"
7aacca6f 28432 }
44660702 28433 }
56122987 28434 },
56122987
DM
28435 "permissions" : {
28436 "check" : [
28437 "perm",
28438 "/vms/{vmid}",
28439 [
7aacca6f 28440 "VM.Audit"
56122987
DM
28441 ]
28442 ]
28443 },
7aacca6f 28444 "returns" : {
7aacca6f
DM
28445 "items" : {
28446 "properties" : {
4d47f125
TL
28447 "cidr" : {
28448 "type" : "string"
28449 },
28450 "comment" : {
28451 "optional" : 1,
28452 "type" : "string"
28453 },
28454 "digest" : {
28455 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28456 "maxLength" : 40,
28457 "optional" : 0,
28458 "type" : "string"
28459 },
28460 "name" : {
28461 "type" : "string"
7aacca6f
DM
28462 }
28463 },
28464 "type" : "object"
28465 },
28466 "links" : [
28467 {
4d47f125 28468 "href" : "{name}",
44660702 28469 "rel" : "child"
7aacca6f 28470 }
44660702
DM
28471 ],
28472 "type" : "array"
28473 }
7aacca6f
DM
28474 },
28475 "POST" : {
e9cd3bd4 28476 "allowtoken" : 1,
4d47f125 28477 "description" : "Create IP or Network Alias.",
44660702 28478 "method" : "POST",
4d47f125 28479 "name" : "create_alias",
56122987 28480 "parameters" : {
44660702 28481 "additionalProperties" : 0,
56122987 28482 "properties" : {
4d47f125
TL
28483 "cidr" : {
28484 "description" : "Network/IP specification in CIDR format.",
28485 "format" : "IPorCIDR",
013dc89f 28486 "type" : "string",
4d47f125
TL
28487 "typetext" : "<string>"
28488 },
28489 "comment" : {
44660702 28490 "optional" : 1,
013dc89f
DM
28491 "type" : "string",
28492 "typetext" : "<string>"
7aacca6f 28493 },
4d47f125
TL
28494 "name" : {
28495 "description" : "Alias name.",
28496 "maxLength" : 64,
28497 "minLength" : 2,
28498 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702
DM
28499 "type" : "string"
28500 },
4d47f125
TL
28501 "node" : {
28502 "description" : "The cluster node name.",
28503 "format" : "pve-node",
28504 "type" : "string",
28505 "typetext" : "<string>"
28506 },
44660702
DM
28507 "vmid" : {
28508 "description" : "The (unique) ID of the VM.",
28509 "format" : "pve-vmid",
28510 "minimum" : 1,
4bd7df8b 28511 "type" : "integer",
013dc89f 28512 "typetext" : "<integer> (1 - N)"
44660702
DM
28513 }
28514 }
28515 },
28516 "permissions" : {
28517 "check" : [
28518 "perm",
28519 "/vms/{vmid}",
28520 [
28521 "VM.Config.Network"
28522 ]
28523 ]
28524 },
28525 "protected" : 1,
44660702
DM
28526 "returns" : {
28527 "type" : "null"
28528 }
28529 }
28530 },
28531 "leaf" : 0,
4d47f125
TL
28532 "path" : "/nodes/{node}/lxc/{vmid}/firewall/aliases",
28533 "text" : "aliases"
44660702
DM
28534 },
28535 {
28536 "children" : [
28537 {
4d47f125
TL
28538 "children" : [
28539 {
28540 "info" : {
28541 "DELETE" : {
e9cd3bd4 28542 "allowtoken" : 1,
4d47f125
TL
28543 "description" : "Remove IP or Network from IPSet.",
28544 "method" : "DELETE",
28545 "name" : "remove_ip",
28546 "parameters" : {
28547 "additionalProperties" : 0,
28548 "properties" : {
28549 "cidr" : {
28550 "description" : "Network/IP specification in CIDR format.",
28551 "format" : "IPorCIDRorAlias",
28552 "type" : "string",
28553 "typetext" : "<string>"
28554 },
28555 "digest" : {
28556 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28557 "maxLength" : 40,
28558 "optional" : 1,
28559 "type" : "string",
28560 "typetext" : "<string>"
28561 },
28562 "name" : {
28563 "description" : "IP set name.",
28564 "maxLength" : 64,
28565 "minLength" : 2,
28566 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28567 "type" : "string"
28568 },
28569 "node" : {
28570 "description" : "The cluster node name.",
28571 "format" : "pve-node",
28572 "type" : "string",
28573 "typetext" : "<string>"
28574 },
28575 "vmid" : {
28576 "description" : "The (unique) ID of the VM.",
28577 "format" : "pve-vmid",
28578 "minimum" : 1,
28579 "type" : "integer",
28580 "typetext" : "<integer> (1 - N)"
28581 }
28582 }
28583 },
28584 "permissions" : {
28585 "check" : [
28586 "perm",
28587 "/vms/{vmid}",
28588 [
28589 "VM.Config.Network"
28590 ]
28591 ]
28592 },
28593 "protected" : 1,
28594 "returns" : {
28595 "type" : "null"
28596 }
28597 },
28598 "GET" : {
e9cd3bd4 28599 "allowtoken" : 1,
4d47f125
TL
28600 "description" : "Read IP or Network settings from IPSet.",
28601 "method" : "GET",
28602 "name" : "read_ip",
28603 "parameters" : {
28604 "additionalProperties" : 0,
28605 "properties" : {
28606 "cidr" : {
28607 "description" : "Network/IP specification in CIDR format.",
28608 "format" : "IPorCIDRorAlias",
28609 "type" : "string",
28610 "typetext" : "<string>"
28611 },
28612 "name" : {
28613 "description" : "IP set name.",
28614 "maxLength" : 64,
28615 "minLength" : 2,
28616 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28617 "type" : "string"
28618 },
28619 "node" : {
28620 "description" : "The cluster node name.",
28621 "format" : "pve-node",
28622 "type" : "string",
28623 "typetext" : "<string>"
28624 },
28625 "vmid" : {
28626 "description" : "The (unique) ID of the VM.",
28627 "format" : "pve-vmid",
28628 "minimum" : 1,
28629 "type" : "integer",
28630 "typetext" : "<integer> (1 - N)"
28631 }
28632 }
28633 },
28634 "permissions" : {
28635 "check" : [
28636 "perm",
28637 "/vms/{vmid}",
28638 [
28639 "VM.Audit"
28640 ]
28641 ]
28642 },
28643 "protected" : 1,
28644 "returns" : {
28645 "type" : "object"
28646 }
28647 },
28648 "PUT" : {
e9cd3bd4 28649 "allowtoken" : 1,
4d47f125
TL
28650 "description" : "Update IP or Network settings",
28651 "method" : "PUT",
28652 "name" : "update_ip",
28653 "parameters" : {
28654 "additionalProperties" : 0,
28655 "properties" : {
28656 "cidr" : {
28657 "description" : "Network/IP specification in CIDR format.",
28658 "format" : "IPorCIDRorAlias",
28659 "type" : "string",
28660 "typetext" : "<string>"
28661 },
28662 "comment" : {
28663 "optional" : 1,
28664 "type" : "string",
28665 "typetext" : "<string>"
28666 },
28667 "digest" : {
28668 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28669 "maxLength" : 40,
28670 "optional" : 1,
28671 "type" : "string",
28672 "typetext" : "<string>"
28673 },
28674 "name" : {
28675 "description" : "IP set name.",
28676 "maxLength" : 64,
28677 "minLength" : 2,
28678 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28679 "type" : "string"
28680 },
28681 "node" : {
28682 "description" : "The cluster node name.",
28683 "format" : "pve-node",
28684 "type" : "string",
28685 "typetext" : "<string>"
28686 },
28687 "nomatch" : {
28688 "optional" : 1,
28689 "type" : "boolean",
28690 "typetext" : "<boolean>"
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 "check" : [
28703 "perm",
28704 "/vms/{vmid}",
28705 [
28706 "VM.Config.Network"
28707 ]
28708 ]
28709 },
28710 "protected" : 1,
28711 "returns" : {
28712 "type" : "null"
28713 }
28714 }
28715 },
28716 "leaf" : 1,
28717 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}/{cidr}",
28718 "text" : "{cidr}"
28719 }
28720 ],
44660702
DM
28721 "info" : {
28722 "DELETE" : {
e9cd3bd4 28723 "allowtoken" : 1,
4d47f125 28724 "description" : "Delete IPSet",
44660702 28725 "method" : "DELETE",
4d47f125 28726 "name" : "delete_ipset",
56122987 28727 "parameters" : {
44660702 28728 "additionalProperties" : 0,
56122987 28729 "properties" : {
81a3384d
TL
28730 "force" : {
28731 "description" : "Delete all members of the IPSet, if there are any.",
28732 "optional" : 1,
28733 "type" : "boolean",
28734 "typetext" : "<boolean>"
28735 },
7aacca6f 28736 "name" : {
4d47f125 28737 "description" : "IP set name.",
7aacca6f 28738 "maxLength" : 64,
7aacca6f
DM
28739 "minLength" : 2,
28740 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 28741 "type" : "string"
7aacca6f
DM
28742 },
28743 "node" : {
44660702 28744 "description" : "The cluster node name.",
56122987 28745 "format" : "pve-node",
013dc89f
DM
28746 "type" : "string",
28747 "typetext" : "<string>"
7aacca6f 28748 },
56122987 28749 "vmid" : {
44660702 28750 "description" : "The (unique) ID of the VM.",
56122987 28751 "format" : "pve-vmid",
44660702 28752 "minimum" : 1,
4bd7df8b 28753 "type" : "integer",
013dc89f 28754 "typetext" : "<integer> (1 - N)"
56122987 28755 }
44660702 28756 }
56122987 28757 },
56122987
DM
28758 "permissions" : {
28759 "check" : [
28760 "perm",
28761 "/vms/{vmid}",
28762 [
7aacca6f 28763 "VM.Config.Network"
56122987
DM
28764 ]
28765 ]
28766 },
44660702 28767 "protected" : 1,
56122987 28768 "returns" : {
7aacca6f 28769 "type" : "null"
44660702 28770 }
56122987 28771 },
44660702 28772 "GET" : {
e9cd3bd4 28773 "allowtoken" : 1,
4d47f125 28774 "description" : "List IPSet content",
44660702 28775 "method" : "GET",
4d47f125 28776 "name" : "get_ipset",
44660702
DM
28777 "parameters" : {
28778 "additionalProperties" : 0,
28779 "properties" : {
28780 "name" : {
4d47f125 28781 "description" : "IP set name.",
44660702
DM
28782 "maxLength" : 64,
28783 "minLength" : 2,
28784 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28785 "type" : "string"
28786 },
28787 "node" : {
28788 "description" : "The cluster node name.",
28789 "format" : "pve-node",
013dc89f
DM
28790 "type" : "string",
28791 "typetext" : "<string>"
44660702
DM
28792 },
28793 "vmid" : {
28794 "description" : "The (unique) ID of the VM.",
28795 "format" : "pve-vmid",
28796 "minimum" : 1,
4bd7df8b 28797 "type" : "integer",
013dc89f 28798 "typetext" : "<integer> (1 - N)"
44660702 28799 }
4d47f125
TL
28800 }
28801 },
28802 "permissions" : {
28803 "check" : [
28804 "perm",
28805 "/vms/{vmid}",
28806 [
28807 "VM.Audit"
28808 ]
28809 ]
28810 },
28811 "returns" : {
28812 "items" : {
28813 "properties" : {
28814 "cidr" : {
28815 "type" : "string"
28816 },
28817 "comment" : {
28818 "optional" : 1,
28819 "type" : "string"
28820 },
28821 "digest" : {
28822 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28823 "maxLength" : 40,
28824 "optional" : 0,
28825 "type" : "string"
28826 },
28827 "nomatch" : {
28828 "optional" : 1,
28829 "type" : "boolean"
28830 }
28831 },
28832 "type" : "object"
28833 },
28834 "links" : [
28835 {
28836 "href" : "{cidr}",
28837 "rel" : "child"
28838 }
28839 ],
28840 "type" : "array"
44660702
DM
28841 }
28842 },
4d47f125 28843 "POST" : {
e9cd3bd4 28844 "allowtoken" : 1,
4d47f125
TL
28845 "description" : "Add IP or Network to IPSet.",
28846 "method" : "POST",
28847 "name" : "create_ip",
56122987
DM
28848 "parameters" : {
28849 "additionalProperties" : 0,
28850 "properties" : {
44660702
DM
28851 "cidr" : {
28852 "description" : "Network/IP specification in CIDR format.",
4d47f125 28853 "format" : "IPorCIDRorAlias",
013dc89f
DM
28854 "type" : "string",
28855 "typetext" : "<string>"
44660702
DM
28856 },
28857 "comment" : {
28858 "optional" : 1,
013dc89f
DM
28859 "type" : "string",
28860 "typetext" : "<string>"
44660702 28861 },
56122987 28862 "name" : {
4d47f125 28863 "description" : "IP set name.",
44660702
DM
28864 "maxLength" : 64,
28865 "minLength" : 2,
7aacca6f 28866 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 28867 "type" : "string"
56122987
DM
28868 },
28869 "node" : {
28870 "description" : "The cluster node name.",
44660702 28871 "format" : "pve-node",
013dc89f
DM
28872 "type" : "string",
28873 "typetext" : "<string>"
44660702 28874 },
4d47f125 28875 "nomatch" : {
44660702 28876 "optional" : 1,
4d47f125
TL
28877 "type" : "boolean",
28878 "typetext" : "<boolean>"
56122987 28879 },
7aacca6f 28880 "vmid" : {
7aacca6f 28881 "description" : "The (unique) ID of the VM.",
44660702 28882 "format" : "pve-vmid",
7aacca6f 28883 "minimum" : 1,
4bd7df8b 28884 "type" : "integer",
013dc89f 28885 "typetext" : "<integer> (1 - N)"
56122987
DM
28886 }
28887 }
28888 },
44660702
DM
28889 "permissions" : {
28890 "check" : [
28891 "perm",
28892 "/vms/{vmid}",
28893 [
28894 "VM.Config.Network"
28895 ]
28896 ]
7aacca6f 28897 },
44660702
DM
28898 "protected" : 1,
28899 "returns" : {
28900 "type" : "null"
7aacca6f
DM
28901 }
28902 }
28903 },
4d47f125
TL
28904 "leaf" : 0,
28905 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset/{name}",
44660702
DM
28906 "text" : "{name}"
28907 }
28908 ],
28909 "info" : {
28910 "GET" : {
e9cd3bd4 28911 "allowtoken" : 1,
4d47f125 28912 "description" : "List IPSets",
44660702 28913 "method" : "GET",
4d47f125 28914 "name" : "ipset_index",
56122987
DM
28915 "parameters" : {
28916 "additionalProperties" : 0,
28917 "properties" : {
28918 "node" : {
44660702 28919 "description" : "The cluster node name.",
56122987 28920 "format" : "pve-node",
013dc89f
DM
28921 "type" : "string",
28922 "typetext" : "<string>"
56122987
DM
28923 },
28924 "vmid" : {
7aacca6f 28925 "description" : "The (unique) ID of the VM.",
44660702 28926 "format" : "pve-vmid",
7aacca6f 28927 "minimum" : 1,
4bd7df8b 28928 "type" : "integer",
013dc89f 28929 "typetext" : "<integer> (1 - N)"
56122987
DM
28930 }
28931 }
28932 },
44660702
DM
28933 "permissions" : {
28934 "check" : [
28935 "perm",
28936 "/vms/{vmid}",
28937 [
28938 "VM.Audit"
28939 ]
28940 ]
28941 },
56122987
DM
28942 "returns" : {
28943 "items" : {
56122987 28944 "properties" : {
44660702
DM
28945 "comment" : {
28946 "optional" : 1,
56122987
DM
28947 "type" : "string"
28948 },
56122987 28949 "digest" : {
56122987 28950 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702
DM
28951 "maxLength" : 40,
28952 "optional" : 0,
28953 "type" : "string"
28954 },
28955 "name" : {
4d47f125
TL
28956 "description" : "IP set name.",
28957 "maxLength" : 64,
28958 "minLength" : 2,
28959 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
44660702 28960 "type" : "string"
56122987 28961 }
44660702
DM
28962 },
28963 "type" : "object"
28964 },
28965 "links" : [
28966 {
28967 "href" : "{name}",
28968 "rel" : "child"
56122987 28969 }
4d47f125
TL
28970 ],
28971 "type" : "array"
28972 }
28973 },
28974 "POST" : {
e9cd3bd4 28975 "allowtoken" : 1,
4d47f125
TL
28976 "description" : "Create new IPSet",
28977 "method" : "POST",
28978 "name" : "create_ipset",
28979 "parameters" : {
28980 "additionalProperties" : 0,
28981 "properties" : {
28982 "comment" : {
28983 "optional" : 1,
28984 "type" : "string",
28985 "typetext" : "<string>"
28986 },
28987 "digest" : {
28988 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
28989 "maxLength" : 40,
28990 "optional" : 1,
28991 "type" : "string",
28992 "typetext" : "<string>"
28993 },
28994 "name" : {
28995 "description" : "IP set name.",
28996 "maxLength" : 64,
28997 "minLength" : 2,
28998 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
28999 "type" : "string"
29000 },
29001 "node" : {
29002 "description" : "The cluster node name.",
29003 "format" : "pve-node",
29004 "type" : "string",
29005 "typetext" : "<string>"
29006 },
29007 "rename" : {
29008 "description" : "Rename an existing IPSet. You can set 'rename' to the same value as 'name' to update the 'comment' of an existing IPSet.",
29009 "maxLength" : 64,
29010 "minLength" : 2,
29011 "optional" : 1,
29012 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
29013 "type" : "string"
29014 },
29015 "vmid" : {
29016 "description" : "The (unique) ID of the VM.",
29017 "format" : "pve-vmid",
29018 "minimum" : 1,
29019 "type" : "integer",
29020 "typetext" : "<integer> (1 - N)"
29021 }
29022 }
29023 },
29024 "permissions" : {
29025 "check" : [
29026 "perm",
29027 "/vms/{vmid}",
29028 [
29029 "VM.Config.Network"
29030 ]
29031 ]
29032 },
29033 "protected" : 1,
29034 "returns" : {
29035 "type" : "null"
29036 }
29037 }
29038 },
29039 "leaf" : 0,
29040 "path" : "/nodes/{node}/lxc/{vmid}/firewall/ipset",
29041 "text" : "ipset"
29042 },
29043 {
29044 "info" : {
29045 "GET" : {
e9cd3bd4 29046 "allowtoken" : 1,
4d47f125
TL
29047 "description" : "Get VM firewall options.",
29048 "method" : "GET",
29049 "name" : "get_options",
29050 "parameters" : {
29051 "additionalProperties" : 0,
29052 "properties" : {
29053 "node" : {
29054 "description" : "The cluster node name.",
29055 "format" : "pve-node",
29056 "type" : "string",
29057 "typetext" : "<string>"
29058 },
29059 "vmid" : {
29060 "description" : "The (unique) ID of the VM.",
29061 "format" : "pve-vmid",
29062 "minimum" : 1,
29063 "type" : "integer",
29064 "typetext" : "<integer> (1 - N)"
29065 }
29066 }
29067 },
29068 "permissions" : {
29069 "check" : [
29070 "perm",
29071 "/vms/{vmid}",
29072 [
29073 "VM.Audit"
29074 ]
29075 ]
29076 },
29077 "proxyto" : "node",
29078 "returns" : {
29079 "properties" : {
29080 "dhcp" : {
5c1699e5 29081 "default" : 0,
4d47f125
TL
29082 "description" : "Enable DHCP.",
29083 "optional" : 1,
29084 "type" : "boolean"
29085 },
29086 "enable" : {
5c1699e5 29087 "default" : 0,
4d47f125
TL
29088 "description" : "Enable/disable firewall rules.",
29089 "optional" : 1,
29090 "type" : "boolean"
29091 },
29092 "ipfilter" : {
29093 "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.",
29094 "optional" : 1,
29095 "type" : "boolean"
29096 },
29097 "log_level_in" : {
29098 "description" : "Log level for incoming traffic.",
29099 "enum" : [
29100 "emerg",
29101 "alert",
29102 "crit",
29103 "err",
29104 "warning",
29105 "notice",
29106 "info",
29107 "debug",
29108 "nolog"
29109 ],
29110 "optional" : 1,
29111 "type" : "string"
29112 },
29113 "log_level_out" : {
29114 "description" : "Log level for outgoing traffic.",
29115 "enum" : [
29116 "emerg",
29117 "alert",
29118 "crit",
29119 "err",
29120 "warning",
29121 "notice",
29122 "info",
29123 "debug",
29124 "nolog"
29125 ],
29126 "optional" : 1,
29127 "type" : "string"
29128 },
29129 "macfilter" : {
de786b48 29130 "default" : 1,
4d47f125
TL
29131 "description" : "Enable/disable MAC address filter.",
29132 "optional" : 1,
29133 "type" : "boolean"
29134 },
29135 "ndp" : {
5c1699e5
TL
29136 "default" : 0,
29137 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
29138 "optional" : 1,
29139 "type" : "boolean"
29140 },
29141 "policy_in" : {
29142 "description" : "Input policy.",
29143 "enum" : [
29144 "ACCEPT",
29145 "REJECT",
29146 "DROP"
29147 ],
29148 "optional" : 1,
29149 "type" : "string"
29150 },
29151 "policy_out" : {
29152 "description" : "Output policy.",
29153 "enum" : [
29154 "ACCEPT",
29155 "REJECT",
29156 "DROP"
29157 ],
29158 "optional" : 1,
29159 "type" : "string"
29160 },
29161 "radv" : {
29162 "description" : "Allow sending Router Advertisement.",
29163 "optional" : 1,
29164 "type" : "boolean"
29165 }
29166 },
29167 "type" : "object"
7aacca6f
DM
29168 }
29169 },
4d47f125 29170 "PUT" : {
e9cd3bd4 29171 "allowtoken" : 1,
4d47f125
TL
29172 "description" : "Set Firewall options.",
29173 "method" : "PUT",
29174 "name" : "set_options",
7aacca6f
DM
29175 "parameters" : {
29176 "additionalProperties" : 0,
29177 "properties" : {
4d47f125
TL
29178 "delete" : {
29179 "description" : "A list of settings you want to delete.",
29180 "format" : "pve-configid-list",
7aacca6f 29181 "optional" : 1,
013dc89f
DM
29182 "type" : "string",
29183 "typetext" : "<string>"
7aacca6f 29184 },
4d47f125 29185 "dhcp" : {
5c1699e5 29186 "default" : 0,
4d47f125
TL
29187 "description" : "Enable DHCP.",
29188 "optional" : 1,
29189 "type" : "boolean",
29190 "typetext" : "<boolean>"
7aacca6f 29191 },
4d47f125
TL
29192 "digest" : {
29193 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
29194 "maxLength" : 40,
29195 "optional" : 1,
013dc89f
DM
29196 "type" : "string",
29197 "typetext" : "<string>"
7aacca6f 29198 },
4d47f125 29199 "enable" : {
5c1699e5 29200 "default" : 0,
4d47f125
TL
29201 "description" : "Enable/disable firewall rules.",
29202 "optional" : 1,
29203 "type" : "boolean",
29204 "typetext" : "<boolean>"
29205 },
29206 "ipfilter" : {
29207 "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.",
29208 "optional" : 1,
29209 "type" : "boolean",
29210 "typetext" : "<boolean>"
56122987 29211 },
4d47f125
TL
29212 "log_level_in" : {
29213 "description" : "Log level for incoming traffic.",
29214 "enum" : [
29215 "emerg",
29216 "alert",
29217 "crit",
29218 "err",
29219 "warning",
29220 "notice",
29221 "info",
29222 "debug",
29223 "nolog"
29224 ],
29225 "optional" : 1,
29226 "type" : "string"
44660702 29227 },
4d47f125
TL
29228 "log_level_out" : {
29229 "description" : "Log level for outgoing traffic.",
29230 "enum" : [
29231 "emerg",
29232 "alert",
29233 "crit",
29234 "err",
29235 "warning",
29236 "notice",
29237 "info",
29238 "debug",
29239 "nolog"
29240 ],
29241 "optional" : 1,
29242 "type" : "string"
44660702 29243 },
4d47f125 29244 "macfilter" : {
de786b48 29245 "default" : 1,
4d47f125
TL
29246 "description" : "Enable/disable MAC address filter.",
29247 "optional" : 1,
29248 "type" : "boolean",
29249 "typetext" : "<boolean>"
7aacca6f 29250 },
4d47f125 29251 "ndp" : {
5c1699e5
TL
29252 "default" : 0,
29253 "description" : "Enable NDP (Neighbor Discovery Protocol).",
4d47f125
TL
29254 "optional" : 1,
29255 "type" : "boolean",
29256 "typetext" : "<boolean>"
7aacca6f 29257 },
4d47f125
TL
29258 "node" : {
29259 "description" : "The cluster node name.",
29260 "format" : "pve-node",
29261 "type" : "string",
29262 "typetext" : "<string>"
29263 },
29264 "policy_in" : {
29265 "description" : "Input policy.",
29266 "enum" : [
29267 "ACCEPT",
29268 "REJECT",
29269 "DROP"
44660702 29270 ],
4d47f125
TL
29271 "optional" : 1,
29272 "type" : "string"
29273 },
29274 "policy_out" : {
29275 "description" : "Output policy.",
29276 "enum" : [
29277 "ACCEPT",
29278 "REJECT",
29279 "DROP"
29280 ],
29281 "optional" : 1,
29282 "type" : "string"
29283 },
29284 "radv" : {
29285 "description" : "Allow sending Router Advertisement.",
29286 "optional" : 1,
29287 "type" : "boolean",
29288 "typetext" : "<boolean>"
29289 },
29290 "vmid" : {
29291 "description" : "The (unique) ID of the VM.",
29292 "format" : "pve-vmid",
29293 "minimum" : 1,
29294 "type" : "integer",
29295 "typetext" : "<integer> (1 - N)"
44660702 29296 }
4d47f125
TL
29297 }
29298 },
29299 "permissions" : {
29300 "check" : [
29301 "perm",
29302 "/vms/{vmid}",
29303 [
29304 "VM.Config.Network"
29305 ]
29306 ]
29307 },
29308 "protected" : 1,
29309 "proxyto" : "node",
29310 "returns" : {
29311 "type" : "null"
29312 }
29313 }
29314 },
29315 "leaf" : 1,
29316 "path" : "/nodes/{node}/lxc/{vmid}/firewall/options",
29317 "text" : "options"
29318 },
29319 {
29320 "info" : {
29321 "GET" : {
e9cd3bd4 29322 "allowtoken" : 1,
4d47f125
TL
29323 "description" : "Read firewall log",
29324 "method" : "GET",
29325 "name" : "log",
29326 "parameters" : {
29327 "additionalProperties" : 0,
29328 "properties" : {
29329 "limit" : {
29330 "minimum" : 0,
29331 "optional" : 1,
29332 "type" : "integer",
29333 "typetext" : "<integer> (0 - N)"
44660702 29334 },
4d47f125
TL
29335 "node" : {
29336 "description" : "The cluster node name.",
29337 "format" : "pve-node",
29338 "type" : "string",
29339 "typetext" : "<string>"
44660702 29340 },
4d47f125
TL
29341 "start" : {
29342 "minimum" : 0,
29343 "optional" : 1,
29344 "type" : "integer",
29345 "typetext" : "<integer> (0 - N)"
29346 },
29347 "vmid" : {
29348 "description" : "The (unique) ID of the VM.",
29349 "format" : "pve-vmid",
29350 "minimum" : 1,
29351 "type" : "integer",
29352 "typetext" : "<integer> (1 - N)"
44660702
DM
29353 }
29354 }
29355 },
4d47f125
TL
29356 "permissions" : {
29357 "check" : [
29358 "perm",
29359 "/vms/{vmid}",
29360 [
29361 "VM.Console"
29362 ]
29363 ]
29364 },
29365 "protected" : 1,
29366 "proxyto" : "node",
29367 "returns" : {
29368 "items" : {
29369 "properties" : {
29370 "n" : {
29371 "description" : "Line number",
29372 "type" : "integer"
29373 },
29374 "t" : {
29375 "description" : "Line text",
29376 "type" : "string"
29377 }
29378 },
29379 "type" : "object"
29380 },
29381 "type" : "array"
29382 }
44660702 29383 }
4d47f125
TL
29384 },
29385 "leaf" : 1,
29386 "path" : "/nodes/{node}/lxc/{vmid}/firewall/log",
29387 "text" : "log"
29388 },
29389 {
44660702
DM
29390 "info" : {
29391 "GET" : {
e9cd3bd4 29392 "allowtoken" : 1,
4d47f125 29393 "description" : "Lists possible IPSet/Alias reference which are allowed in source/dest properties.",
44660702 29394 "method" : "GET",
4d47f125 29395 "name" : "refs",
44660702
DM
29396 "parameters" : {
29397 "additionalProperties" : 0,
29398 "properties" : {
29399 "node" : {
29400 "description" : "The cluster node name.",
29401 "format" : "pve-node",
013dc89f
DM
29402 "type" : "string",
29403 "typetext" : "<string>"
44660702 29404 },
4d47f125
TL
29405 "type" : {
29406 "description" : "Only list references of specified type.",
29407 "enum" : [
29408 "alias",
29409 "ipset"
29410 ],
29411 "optional" : 1,
29412 "type" : "string"
29413 },
44660702
DM
29414 "vmid" : {
29415 "description" : "The (unique) ID of the VM.",
29416 "format" : "pve-vmid",
29417 "minimum" : 1,
4bd7df8b 29418 "type" : "integer",
013dc89f 29419 "typetext" : "<integer> (1 - N)"
44660702
DM
29420 }
29421 }
29422 },
4d47f125
TL
29423 "permissions" : {
29424 "check" : [
29425 "perm",
29426 "/vms/{vmid}",
29427 [
29428 "VM.Audit"
29429 ]
29430 ]
29431 },
29432 "returns" : {
29433 "items" : {
29434 "properties" : {
29435 "comment" : {
29436 "optional" : 1,
29437 "type" : "string"
29438 },
29439 "name" : {
29440 "type" : "string"
29441 },
29442 "type" : {
29443 "enum" : [
29444 "alias",
29445 "ipset"
29446 ],
29447 "type" : "string"
29448 }
29449 },
29450 "type" : "object"
29451 },
29452 "type" : "array"
29453 }
29454 }
29455 },
29456 "leaf" : 1,
29457 "path" : "/nodes/{node}/lxc/{vmid}/firewall/refs",
29458 "text" : "refs"
29459 }
29460 ],
29461 "info" : {
29462 "GET" : {
e9cd3bd4 29463 "allowtoken" : 1,
4d47f125
TL
29464 "description" : "Directory index.",
29465 "method" : "GET",
29466 "name" : "index",
29467 "parameters" : {
29468 "additionalProperties" : 0,
29469 "properties" : {
29470 "node" : {
29471 "description" : "The cluster node name.",
29472 "format" : "pve-node",
29473 "type" : "string",
29474 "typetext" : "<string>"
29475 },
29476 "vmid" : {
29477 "description" : "The (unique) ID of the VM.",
29478 "format" : "pve-vmid",
29479 "minimum" : 1,
29480 "type" : "integer",
29481 "typetext" : "<integer> (1 - N)"
29482 }
29483 }
29484 },
29485 "permissions" : {
29486 "user" : "all"
29487 },
29488 "returns" : {
29489 "items" : {
29490 "properties" : {},
29491 "type" : "object"
29492 },
29493 "links" : [
29494 {
29495 "href" : "{name}",
29496 "rel" : "child"
29497 }
29498 ],
29499 "type" : "array"
29500 }
29501 }
29502 },
29503 "leaf" : 0,
29504 "path" : "/nodes/{node}/lxc/{vmid}/firewall",
29505 "text" : "firewall"
29506 },
29507 {
29508 "info" : {
29509 "GET" : {
e9cd3bd4 29510 "allowtoken" : 1,
4d47f125
TL
29511 "description" : "Read VM RRD statistics (returns PNG)",
29512 "method" : "GET",
29513 "name" : "rrd",
29514 "parameters" : {
29515 "additionalProperties" : 0,
29516 "properties" : {
29517 "cf" : {
29518 "description" : "The RRD consolidation function",
29519 "enum" : [
29520 "AVERAGE",
29521 "MAX"
29522 ],
29523 "optional" : 1,
29524 "type" : "string"
29525 },
29526 "ds" : {
29527 "description" : "The list of datasources you want to display.",
29528 "format" : "pve-configid-list",
29529 "type" : "string",
29530 "typetext" : "<string>"
29531 },
29532 "node" : {
29533 "description" : "The cluster node name.",
29534 "format" : "pve-node",
29535 "type" : "string",
29536 "typetext" : "<string>"
29537 },
29538 "timeframe" : {
29539 "description" : "Specify the time frame you are interested in.",
29540 "enum" : [
29541 "hour",
29542 "day",
29543 "week",
29544 "month",
29545 "year"
29546 ],
29547 "type" : "string"
29548 },
29549 "vmid" : {
29550 "description" : "The (unique) ID of the VM.",
29551 "format" : "pve-vmid",
29552 "minimum" : 1,
29553 "type" : "integer",
29554 "typetext" : "<integer> (1 - N)"
29555 }
29556 }
29557 },
29558 "permissions" : {
29559 "check" : [
29560 "perm",
29561 "/vms/{vmid}",
29562 [
29563 "VM.Audit"
29564 ]
29565 ]
29566 },
29567 "protected" : 1,
29568 "returns" : {
29569 "properties" : {
29570 "filename" : {
29571 "type" : "string"
29572 }
29573 },
29574 "type" : "object"
29575 }
29576 }
29577 },
29578 "leaf" : 1,
29579 "path" : "/nodes/{node}/lxc/{vmid}/rrd",
29580 "text" : "rrd"
29581 },
29582 {
29583 "info" : {
29584 "GET" : {
e9cd3bd4 29585 "allowtoken" : 1,
4d47f125
TL
29586 "description" : "Read VM RRD statistics",
29587 "method" : "GET",
29588 "name" : "rrddata",
29589 "parameters" : {
29590 "additionalProperties" : 0,
29591 "properties" : {
29592 "cf" : {
29593 "description" : "The RRD consolidation function",
29594 "enum" : [
29595 "AVERAGE",
29596 "MAX"
29597 ],
29598 "optional" : 1,
29599 "type" : "string"
29600 },
29601 "node" : {
29602 "description" : "The cluster node name.",
29603 "format" : "pve-node",
29604 "type" : "string",
29605 "typetext" : "<string>"
44660702 29606 },
4d47f125
TL
29607 "timeframe" : {
29608 "description" : "Specify the time frame you are interested in.",
29609 "enum" : [
29610 "hour",
29611 "day",
29612 "week",
29613 "month",
29614 "year"
44660702 29615 ],
4d47f125
TL
29616 "type" : "string"
29617 },
29618 "vmid" : {
29619 "description" : "The (unique) ID of the VM.",
29620 "format" : "pve-vmid",
29621 "minimum" : 1,
29622 "type" : "integer",
29623 "typetext" : "<integer> (1 - N)"
44660702 29624 }
4d47f125
TL
29625 }
29626 },
29627 "permissions" : {
29628 "check" : [
29629 "perm",
29630 "/vms/{vmid}",
29631 [
29632 "VM.Audit"
29633 ]
29634 ]
29635 },
29636 "protected" : 1,
29637 "returns" : {
29638 "items" : {
29639 "properties" : {},
29640 "type" : "object"
44660702 29641 },
4d47f125
TL
29642 "type" : "array"
29643 }
29644 }
29645 },
29646 "leaf" : 1,
29647 "path" : "/nodes/{node}/lxc/{vmid}/rrddata",
29648 "text" : "rrddata"
29649 },
29650 {
29651 "info" : {
29652 "POST" : {
e9cd3bd4 29653 "allowtoken" : 1,
4d47f125
TL
29654 "description" : "Creates a TCP VNC proxy connections.",
29655 "method" : "POST",
29656 "name" : "vncproxy",
29657 "parameters" : {
29658 "additionalProperties" : 0,
29659 "properties" : {
29660 "height" : {
29661 "description" : "sets the height of the console in pixels.",
29662 "maximum" : 2160,
29663 "minimum" : 16,
29664 "optional" : 1,
29665 "type" : "integer",
29666 "typetext" : "<integer> (16 - 2160)"
44660702 29667 },
4d47f125
TL
29668 "node" : {
29669 "description" : "The cluster node name.",
29670 "format" : "pve-node",
29671 "type" : "string",
29672 "typetext" : "<string>"
44660702 29673 },
4d47f125
TL
29674 "vmid" : {
29675 "description" : "The (unique) ID of the VM.",
29676 "format" : "pve-vmid",
29677 "minimum" : 1,
29678 "type" : "integer",
29679 "typetext" : "<integer> (1 - N)"
29680 },
29681 "websocket" : {
29682 "description" : "use websocket instead of standard VNC.",
29683 "optional" : 1,
29684 "type" : "boolean",
29685 "typetext" : "<boolean>"
29686 },
29687 "width" : {
29688 "description" : "sets the width of the console in pixels.",
29689 "maximum" : 4096,
29690 "minimum" : 16,
29691 "optional" : 1,
29692 "type" : "integer",
29693 "typetext" : "<integer> (16 - 4096)"
56122987
DM
29694 }
29695 }
44660702 29696 },
4d47f125
TL
29697 "permissions" : {
29698 "check" : [
29699 "perm",
29700 "/vms/{vmid}",
29701 [
29702 "VM.Console"
29703 ]
29704 ]
29705 },
29706 "protected" : 1,
29707 "returns" : {
29708 "additionalProperties" : 0,
29709 "properties" : {
29710 "cert" : {
29711 "type" : "string"
44660702 29712 },
4d47f125
TL
29713 "port" : {
29714 "type" : "integer"
29715 },
29716 "ticket" : {
29717 "type" : "string"
29718 },
29719 "upid" : {
29720 "type" : "string"
29721 },
29722 "user" : {
29723 "type" : "string"
29724 }
29725 }
29726 }
29727 }
29728 },
29729 "leaf" : 1,
29730 "path" : "/nodes/{node}/lxc/{vmid}/vncproxy",
29731 "text" : "vncproxy"
29732 },
29733 {
29734 "info" : {
29735 "POST" : {
e9cd3bd4 29736 "allowtoken" : 1,
4d47f125
TL
29737 "description" : "Creates a TCP proxy connection.",
29738 "method" : "POST",
29739 "name" : "termproxy",
29740 "parameters" : {
29741 "additionalProperties" : 0,
29742 "properties" : {
29743 "node" : {
29744 "description" : "The cluster node name.",
29745 "format" : "pve-node",
29746 "type" : "string",
29747 "typetext" : "<string>"
44660702 29748 },
4d47f125
TL
29749 "vmid" : {
29750 "description" : "The (unique) ID of the VM.",
29751 "format" : "pve-vmid",
29752 "minimum" : 1,
29753 "type" : "integer",
29754 "typetext" : "<integer> (1 - N)"
44660702 29755 }
4d47f125
TL
29756 }
29757 },
29758 "permissions" : {
29759 "check" : [
29760 "perm",
29761 "/vms/{vmid}",
29762 [
29763 "VM.Console"
29764 ]
29765 ]
29766 },
29767 "protected" : 1,
29768 "returns" : {
29769 "additionalProperties" : 0,
29770 "properties" : {
29771 "port" : {
29772 "type" : "integer"
56122987 29773 },
4d47f125
TL
29774 "ticket" : {
29775 "type" : "string"
7aacca6f 29776 },
4d47f125
TL
29777 "upid" : {
29778 "type" : "string"
29779 },
29780 "user" : {
29781 "type" : "string"
29782 }
29783 }
29784 }
29785 }
29786 },
29787 "leaf" : 1,
29788 "path" : "/nodes/{node}/lxc/{vmid}/termproxy",
29789 "text" : "termproxy"
29790 },
29791 {
29792 "info" : {
29793 "GET" : {
e9cd3bd4 29794 "allowtoken" : 1,
4d47f125
TL
29795 "description" : "Opens a weksocket for VNC traffic.",
29796 "method" : "GET",
29797 "name" : "vncwebsocket",
29798 "parameters" : {
29799 "additionalProperties" : 0,
29800 "properties" : {
29801 "node" : {
29802 "description" : "The cluster node name.",
29803 "format" : "pve-node",
29804 "type" : "string",
29805 "typetext" : "<string>"
29806 },
29807 "port" : {
29808 "description" : "Port number returned by previous vncproxy call.",
29809 "maximum" : 5999,
29810 "minimum" : 5900,
29811 "type" : "integer",
29812 "typetext" : "<integer> (5900 - 5999)"
29813 },
29814 "vmid" : {
29815 "description" : "The (unique) ID of the VM.",
29816 "format" : "pve-vmid",
29817 "minimum" : 1,
29818 "type" : "integer",
29819 "typetext" : "<integer> (1 - N)"
29820 },
29821 "vncticket" : {
29822 "description" : "Ticket from previous call to vncproxy.",
29823 "maxLength" : 512,
29824 "type" : "string",
29825 "typetext" : "<string>"
56122987
DM
29826 }
29827 }
29828 },
4d47f125
TL
29829 "permissions" : {
29830 "check" : [
29831 "perm",
29832 "/vms/{vmid}",
29833 [
29834 "VM.Console"
29835 ]
29836 ],
29837 "description" : "You also need to pass a valid ticket (vncticket)."
29838 },
29839 "returns" : {
29840 "properties" : {
29841 "port" : {
29842 "type" : "string"
29843 }
29844 },
29845 "type" : "object"
29846 }
29847 }
29848 },
29849 "leaf" : 1,
29850 "path" : "/nodes/{node}/lxc/{vmid}/vncwebsocket",
29851 "text" : "vncwebsocket"
29852 },
29853 {
29854 "info" : {
29855 "POST" : {
e9cd3bd4 29856 "allowtoken" : 1,
4d47f125
TL
29857 "description" : "Returns a SPICE configuration to connect to the CT.",
29858 "method" : "POST",
29859 "name" : "spiceproxy",
29860 "parameters" : {
29861 "additionalProperties" : 0,
29862 "properties" : {
29863 "node" : {
29864 "description" : "The cluster node name.",
29865 "format" : "pve-node",
29866 "type" : "string",
29867 "typetext" : "<string>"
56122987 29868 },
4d47f125
TL
29869 "proxy" : {
29870 "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).",
29871 "format" : "address",
29872 "optional" : 1,
29873 "type" : "string",
29874 "typetext" : "<string>"
44660702 29875 },
4d47f125
TL
29876 "vmid" : {
29877 "description" : "The (unique) ID of the VM.",
29878 "format" : "pve-vmid",
29879 "minimum" : 1,
29880 "type" : "integer",
29881 "typetext" : "<integer> (1 - N)"
44660702 29882 }
56122987
DM
29883 }
29884 },
4d47f125
TL
29885 "permissions" : {
29886 "check" : [
29887 "perm",
29888 "/vms/{vmid}",
29889 [
29890 "VM.Console"
29891 ]
29892 ]
29893 },
29894 "protected" : 1,
29895 "proxyto" : "node",
29896 "returns" : {
29897 "additionalProperties" : 1,
29898 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
29899 "properties" : {
29900 "host" : {
29901 "type" : "string"
29902 },
29903 "password" : {
29904 "type" : "string"
29905 },
29906 "proxy" : {
29907 "type" : "string"
29908 },
29909 "tls-port" : {
29910 "type" : "integer"
29911 },
29912 "type" : {
29913 "type" : "string"
29914 }
29915 }
29916 }
29917 }
29918 },
29919 "leaf" : 1,
29920 "path" : "/nodes/{node}/lxc/{vmid}/spiceproxy",
29921 "text" : "spiceproxy"
29922 },
81a3384d
TL
29923 {
29924 "info" : {
29925 "POST" : {
29926 "allowtoken" : 1,
29927 "description" : "Migrate the container to another cluster. Creates a new migration task. EXPERIMENTAL feature!",
29928 "method" : "POST",
29929 "name" : "remote_migrate_vm",
29930 "parameters" : {
29931 "additionalProperties" : 0,
29932 "properties" : {
29933 "bwlimit" : {
29934 "default" : "migrate limit from datacenter or storage config",
29935 "description" : "Override I/O bandwidth limit (in KiB/s).",
29936 "minimum" : "0",
29937 "optional" : 1,
29938 "type" : "number",
29939 "typetext" : "<number> (0 - N)"
29940 },
29941 "delete" : {
29942 "default" : 0,
29943 "description" : "Delete the original CT and related data after successful migration. By default the original CT is kept on the source cluster in a stopped state.",
29944 "optional" : 1,
29945 "type" : "boolean",
29946 "typetext" : "<boolean>"
29947 },
29948 "node" : {
29949 "description" : "The cluster node name.",
29950 "format" : "pve-node",
29951 "type" : "string",
29952 "typetext" : "<string>"
29953 },
29954 "online" : {
29955 "description" : "Use online/live migration.",
29956 "optional" : 1,
29957 "type" : "boolean",
29958 "typetext" : "<boolean>"
29959 },
29960 "restart" : {
29961 "description" : "Use restart migration",
29962 "optional" : 1,
29963 "type" : "boolean",
29964 "typetext" : "<boolean>"
29965 },
29966 "target-bridge" : {
29967 "description" : "Mapping from source to target bridges. Providing only a single bridge ID maps all source bridges to that bridge. Providing the special value '1' will map each source bridge to itself.",
29968 "format" : "bridge-pair-list",
29969 "type" : "string",
29970 "typetext" : "<string>"
29971 },
29972 "target-endpoint" : {
29973 "description" : "Remote target endpoint",
29974 "format" : "proxmox-remote",
29975 "type" : "string",
29976 "typetext" : "apitoken=<A full Proxmox API token including the secret value.> ,host=<Remote Proxmox hostname or IP> [,fingerprint=<Remote host's certificate fingerprint, if not trusted by system store.>] [,port=<integer>]"
29977 },
29978 "target-storage" : {
29979 "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.",
29980 "format" : "storage-pair-list",
29981 "optional" : 0,
29982 "type" : "string",
29983 "typetext" : "<string>"
29984 },
29985 "target-vmid" : {
29986 "description" : "The (unique) ID of the VM.",
29987 "format" : "pve-vmid",
29988 "minimum" : 1,
29989 "optional" : 1,
29990 "type" : "integer",
29991 "typetext" : "<integer> (1 - N)"
29992 },
29993 "timeout" : {
29994 "default" : 180,
29995 "description" : "Timeout in seconds for shutdown for restart migration",
29996 "optional" : 1,
29997 "type" : "integer",
29998 "typetext" : "<integer>"
29999 },
30000 "vmid" : {
30001 "description" : "The (unique) ID of the VM.",
30002 "format" : "pve-vmid",
30003 "minimum" : 1,
30004 "type" : "integer",
30005 "typetext" : "<integer> (1 - N)"
30006 }
30007 }
30008 },
30009 "permissions" : {
30010 "check" : [
30011 "perm",
30012 "/vms/{vmid}",
30013 [
30014 "VM.Migrate"
30015 ]
30016 ]
30017 },
30018 "protected" : 1,
30019 "proxyto" : "node",
30020 "returns" : {
30021 "description" : "the task ID.",
30022 "type" : "string"
30023 }
30024 }
30025 },
30026 "leaf" : 1,
30027 "path" : "/nodes/{node}/lxc/{vmid}/remote_migrate",
30028 "text" : "remote_migrate"
30029 },
4d47f125
TL
30030 {
30031 "info" : {
30032 "POST" : {
e9cd3bd4 30033 "allowtoken" : 1,
4d47f125
TL
30034 "description" : "Migrate the container to another node. Creates a new migration task.",
30035 "method" : "POST",
30036 "name" : "migrate_vm",
30037 "parameters" : {
30038 "additionalProperties" : 0,
30039 "properties" : {
95895385
TL
30040 "bwlimit" : {
30041 "default" : "migrate limit from datacenter or storage config",
30042 "description" : "Override I/O bandwidth limit (in KiB/s).",
30043 "minimum" : "0",
30044 "optional" : 1,
30045 "type" : "number",
30046 "typetext" : "<number> (0 - N)"
30047 },
4d47f125
TL
30048 "node" : {
30049 "description" : "The cluster node name.",
30050 "format" : "pve-node",
30051 "type" : "string",
30052 "typetext" : "<string>"
44660702 30053 },
4d47f125
TL
30054 "online" : {
30055 "description" : "Use online/live migration.",
30056 "optional" : 1,
30057 "type" : "boolean",
30058 "typetext" : "<boolean>"
30059 },
30060 "restart" : {
30061 "description" : "Use restart migration",
30062 "optional" : 1,
30063 "type" : "boolean",
30064 "typetext" : "<boolean>"
30065 },
30066 "target" : {
30067 "description" : "Target node.",
30068 "format" : "pve-node",
30069 "type" : "string",
30070 "typetext" : "<string>"
30071 },
c30bb419
TL
30072 "target-storage" : {
30073 "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.",
30074 "format" : "storage-pair-list",
30075 "optional" : 1,
30076 "type" : "string",
30077 "typetext" : "<string>"
30078 },
4d47f125
TL
30079 "timeout" : {
30080 "default" : 180,
30081 "description" : "Timeout in seconds for shutdown for restart migration",
30082 "optional" : 1,
30083 "type" : "integer",
30084 "typetext" : "<integer>"
30085 },
30086 "vmid" : {
30087 "description" : "The (unique) ID of the VM.",
30088 "format" : "pve-vmid",
30089 "minimum" : 1,
30090 "type" : "integer",
30091 "typetext" : "<integer> (1 - N)"
56122987
DM
30092 }
30093 }
30094 },
4d47f125
TL
30095 "permissions" : {
30096 "check" : [
30097 "perm",
30098 "/vms/{vmid}",
30099 [
30100 "VM.Migrate"
30101 ]
30102 ]
30103 },
30104 "protected" : 1,
30105 "proxyto" : "node",
30106 "returns" : {
30107 "description" : "the task ID.",
30108 "type" : "string"
30109 }
56122987 30110 }
4d47f125
TL
30111 },
30112 "leaf" : 1,
30113 "path" : "/nodes/{node}/lxc/{vmid}/migrate",
30114 "text" : "migrate"
30115 },
30116 {
56122987
DM
30117 "info" : {
30118 "GET" : {
e9cd3bd4 30119 "allowtoken" : 1,
4d47f125 30120 "description" : "Check if feature for virtual machine is available.",
44660702 30121 "method" : "GET",
4d47f125 30122 "name" : "vm_feature",
56122987 30123 "parameters" : {
44660702 30124 "additionalProperties" : 0,
56122987 30125 "properties" : {
4d47f125
TL
30126 "feature" : {
30127 "description" : "Feature to check.",
30128 "enum" : [
30129 "snapshot",
30130 "clone",
30131 "copy"
30132 ],
30133 "type" : "string"
30134 },
56122987 30135 "node" : {
44660702 30136 "description" : "The cluster node name.",
56122987 30137 "format" : "pve-node",
013dc89f
DM
30138 "type" : "string",
30139 "typetext" : "<string>"
44660702 30140 },
4d47f125
TL
30141 "snapname" : {
30142 "description" : "The name of the snapshot.",
30143 "format" : "pve-configid",
30144 "maxLength" : 40,
30145 "optional" : 1,
30146 "type" : "string",
30147 "typetext" : "<string>"
30148 },
44660702
DM
30149 "vmid" : {
30150 "description" : "The (unique) ID of the VM.",
30151 "format" : "pve-vmid",
30152 "minimum" : 1,
4bd7df8b 30153 "type" : "integer",
013dc89f 30154 "typetext" : "<integer> (1 - N)"
56122987 30155 }
44660702
DM
30156 }
30157 },
30158 "permissions" : {
4d47f125
TL
30159 "check" : [
30160 "perm",
30161 "/vms/{vmid}",
30162 [
30163 "VM.Audit"
30164 ]
30165 ]
56122987 30166 },
4d47f125
TL
30167 "protected" : 1,
30168 "proxyto" : "node",
56122987 30169 "returns" : {
4d47f125
TL
30170 "properties" : {
30171 "hasFeature" : {
30172 "type" : "boolean"
30173 }
7aacca6f 30174 },
4d47f125
TL
30175 "type" : "object"
30176 }
30177 }
30178 },
30179 "leaf" : 1,
30180 "path" : "/nodes/{node}/lxc/{vmid}/feature",
30181 "text" : "feature"
30182 },
30183 {
30184 "info" : {
30185 "POST" : {
e9cd3bd4 30186 "allowtoken" : 1,
4d47f125
TL
30187 "description" : "Create a Template.",
30188 "method" : "POST",
30189 "name" : "template",
30190 "parameters" : {
30191 "additionalProperties" : 0,
30192 "properties" : {
30193 "node" : {
30194 "description" : "The cluster node name.",
30195 "format" : "pve-node",
30196 "type" : "string",
30197 "typetext" : "<string>"
30198 },
30199 "vmid" : {
30200 "description" : "The (unique) ID of the VM.",
30201 "format" : "pve-vmid",
30202 "minimum" : 1,
30203 "type" : "integer",
30204 "typetext" : "<integer> (1 - N)"
56122987 30205 }
4d47f125
TL
30206 }
30207 },
30208 "permissions" : {
30209 "check" : [
30210 "perm",
30211 "/vms/{vmid}",
30212 [
30213 "VM.Allocate"
30214 ]
44660702 30215 ],
4d47f125
TL
30216 "description" : "You need 'VM.Allocate' permissions on /vms/{vmid}"
30217 },
30218 "protected" : 1,
30219 "proxyto" : "node",
30220 "returns" : {
30221 "type" : "null"
56122987
DM
30222 }
30223 }
30224 },
4d47f125
TL
30225 "leaf" : 1,
30226 "path" : "/nodes/{node}/lxc/{vmid}/template",
30227 "text" : "template"
56122987
DM
30228 },
30229 {
56122987 30230 "info" : {
4d47f125 30231 "POST" : {
e9cd3bd4 30232 "allowtoken" : 1,
4d47f125
TL
30233 "description" : "Create a container clone/copy",
30234 "method" : "POST",
30235 "name" : "clone_vm",
56122987 30236 "parameters" : {
7aacca6f 30237 "additionalProperties" : 0,
56122987 30238 "properties" : {
95895385
TL
30239 "bwlimit" : {
30240 "default" : "clone limit from datacenter or storage config",
30241 "description" : "Override I/O bandwidth limit (in KiB/s).",
30242 "minimum" : "0",
30243 "optional" : 1,
30244 "type" : "number",
30245 "typetext" : "<number> (0 - N)"
30246 },
4d47f125
TL
30247 "description" : {
30248 "description" : "Description for the new CT.",
44660702 30249 "optional" : 1,
4d47f125
TL
30250 "type" : "string",
30251 "typetext" : "<string>"
44660702 30252 },
4d47f125
TL
30253 "full" : {
30254 "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.",
30255 "optional" : 1,
30256 "type" : "boolean",
30257 "typetext" : "<boolean>"
30258 },
30259 "hostname" : {
30260 "description" : "Set a hostname for the new CT.",
30261 "format" : "dns-name",
30262 "optional" : 1,
013dc89f
DM
30263 "type" : "string",
30264 "typetext" : "<string>"
44660702 30265 },
4d47f125
TL
30266 "newid" : {
30267 "description" : "VMID for the clone.",
30268 "format" : "pve-vmid",
30269 "minimum" : 1,
30270 "type" : "integer",
30271 "typetext" : "<integer> (1 - N)"
30272 },
7aacca6f
DM
30273 "node" : {
30274 "description" : "The cluster node name.",
44660702 30275 "format" : "pve-node",
013dc89f
DM
30276 "type" : "string",
30277 "typetext" : "<string>"
56122987 30278 },
4d47f125
TL
30279 "pool" : {
30280 "description" : "Add the new CT to the specified pool.",
30281 "format" : "pve-poolid",
30282 "optional" : 1,
30283 "type" : "string",
30284 "typetext" : "<string>"
30285 },
30286 "snapname" : {
30287 "description" : "The name of the snapshot.",
30288 "format" : "pve-configid",
30289 "maxLength" : 40,
30290 "optional" : 1,
30291 "type" : "string",
30292 "typetext" : "<string>"
30293 },
30294 "storage" : {
30295 "description" : "Target storage for full clone.",
30296 "format" : "pve-storage-id",
30297 "optional" : 1,
30298 "type" : "string",
30299 "typetext" : "<string>"
30300 },
30301 "target" : {
30302 "description" : "Target node. Only allowed if the original VM is on shared storage.",
30303 "format" : "pve-node",
30304 "optional" : 1,
30305 "type" : "string",
30306 "typetext" : "<string>"
30307 },
7aacca6f 30308 "vmid" : {
44660702 30309 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
30310 "format" : "pve-vmid",
30311 "minimum" : 1,
4bd7df8b 30312 "type" : "integer",
013dc89f 30313 "typetext" : "<integer> (1 - N)"
56122987 30314 }
7aacca6f
DM
30315 }
30316 },
30317 "permissions" : {
30318 "check" : [
4d47f125 30319 "and",
7aacca6f 30320 [
4d47f125
TL
30321 "perm",
30322 "/vms/{vmid}",
30323 [
30324 "VM.Clone"
30325 ]
30326 ],
30327 [
30328 "or",
30329 [
30330 "perm",
30331 "/vms/{newid}",
30332 [
30333 "VM.Allocate"
30334 ]
30335 ],
30336 [
30337 "perm",
30338 "/pool/{pool}",
30339 [
30340 "VM.Allocate"
30341 ],
30342 "require_param",
30343 "pool"
30344 ]
7aacca6f 30345 ]
4d47f125
TL
30346 ],
30347 "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 30348 },
44660702 30349 "protected" : 1,
4d47f125 30350 "proxyto" : "node",
7aacca6f 30351 "returns" : {
4d47f125 30352 "type" : "string"
7aacca6f 30353 }
56122987 30354 }
7aacca6f 30355 },
44660702 30356 "leaf" : 1,
4d47f125
TL
30357 "path" : "/nodes/{node}/lxc/{vmid}/clone",
30358 "text" : "clone"
56122987
DM
30359 },
30360 {
56122987 30361 "info" : {
4d47f125 30362 "PUT" : {
e9cd3bd4 30363 "allowtoken" : 1,
4d47f125
TL
30364 "description" : "Resize a container mount point.",
30365 "method" : "PUT",
30366 "name" : "resize_vm",
56122987 30367 "parameters" : {
7aacca6f 30368 "additionalProperties" : 0,
56122987 30369 "properties" : {
4d47f125
TL
30370 "digest" : {
30371 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
30372 "maxLength" : 40,
30373 "optional" : 1,
30374 "type" : "string",
30375 "typetext" : "<string>"
30376 },
30377 "disk" : {
30378 "description" : "The disk you want to resize.",
44660702 30379 "enum" : [
4d47f125
TL
30380 "rootfs",
30381 "mp0",
30382 "mp1",
30383 "mp2",
30384 "mp3",
30385 "mp4",
30386 "mp5",
30387 "mp6",
30388 "mp7",
30389 "mp8",
30390 "mp9",
30391 "mp10",
30392 "mp11",
30393 "mp12",
30394 "mp13",
30395 "mp14",
30396 "mp15",
30397 "mp16",
30398 "mp17",
30399 "mp18",
30400 "mp19",
30401 "mp20",
30402 "mp21",
30403 "mp22",
30404 "mp23",
30405 "mp24",
30406 "mp25",
30407 "mp26",
30408 "mp27",
30409 "mp28",
30410 "mp29",
30411 "mp30",
30412 "mp31",
30413 "mp32",
30414 "mp33",
30415 "mp34",
30416 "mp35",
30417 "mp36",
30418 "mp37",
30419 "mp38",
30420 "mp39",
30421 "mp40",
30422 "mp41",
30423 "mp42",
30424 "mp43",
30425 "mp44",
30426 "mp45",
30427 "mp46",
30428 "mp47",
30429 "mp48",
30430 "mp49",
30431 "mp50",
30432 "mp51",
30433 "mp52",
30434 "mp53",
30435 "mp54",
30436 "mp55",
30437 "mp56",
30438 "mp57",
30439 "mp58",
30440 "mp59",
30441 "mp60",
30442 "mp61",
30443 "mp62",
30444 "mp63",
30445 "mp64",
30446 "mp65",
30447 "mp66",
30448 "mp67",
30449 "mp68",
30450 "mp69",
30451 "mp70",
30452 "mp71",
30453 "mp72",
30454 "mp73",
30455 "mp74",
30456 "mp75",
30457 "mp76",
30458 "mp77",
30459 "mp78",
30460 "mp79",
30461 "mp80",
30462 "mp81",
30463 "mp82",
30464 "mp83",
30465 "mp84",
30466 "mp85",
30467 "mp86",
30468 "mp87",
30469 "mp88",
30470 "mp89",
30471 "mp90",
30472 "mp91",
30473 "mp92",
30474 "mp93",
30475 "mp94",
30476 "mp95",
30477 "mp96",
30478 "mp97",
30479 "mp98",
30480 "mp99",
30481 "mp100",
30482 "mp101",
30483 "mp102",
30484 "mp103",
30485 "mp104",
30486 "mp105",
30487 "mp106",
30488 "mp107",
30489 "mp108",
30490 "mp109",
30491 "mp110",
30492 "mp111",
30493 "mp112",
30494 "mp113",
30495 "mp114",
30496 "mp115",
30497 "mp116",
30498 "mp117",
30499 "mp118",
30500 "mp119",
30501 "mp120",
30502 "mp121",
30503 "mp122",
30504 "mp123",
30505 "mp124",
30506 "mp125",
30507 "mp126",
30508 "mp127",
30509 "mp128",
30510 "mp129",
30511 "mp130",
30512 "mp131",
30513 "mp132",
30514 "mp133",
30515 "mp134",
30516 "mp135",
30517 "mp136",
30518 "mp137",
30519 "mp138",
30520 "mp139",
30521 "mp140",
30522 "mp141",
30523 "mp142",
30524 "mp143",
30525 "mp144",
30526 "mp145",
30527 "mp146",
30528 "mp147",
30529 "mp148",
30530 "mp149",
30531 "mp150",
30532 "mp151",
30533 "mp152",
30534 "mp153",
30535 "mp154",
30536 "mp155",
30537 "mp156",
30538 "mp157",
30539 "mp158",
30540 "mp159",
30541 "mp160",
30542 "mp161",
30543 "mp162",
30544 "mp163",
30545 "mp164",
30546 "mp165",
30547 "mp166",
30548 "mp167",
30549 "mp168",
30550 "mp169",
30551 "mp170",
30552 "mp171",
30553 "mp172",
30554 "mp173",
30555 "mp174",
30556 "mp175",
30557 "mp176",
30558 "mp177",
30559 "mp178",
30560 "mp179",
30561 "mp180",
30562 "mp181",
30563 "mp182",
30564 "mp183",
30565 "mp184",
30566 "mp185",
30567 "mp186",
30568 "mp187",
30569 "mp188",
30570 "mp189",
30571 "mp190",
30572 "mp191",
30573 "mp192",
30574 "mp193",
30575 "mp194",
30576 "mp195",
30577 "mp196",
30578 "mp197",
30579 "mp198",
30580 "mp199",
30581 "mp200",
30582 "mp201",
30583 "mp202",
30584 "mp203",
30585 "mp204",
30586 "mp205",
30587 "mp206",
30588 "mp207",
30589 "mp208",
30590 "mp209",
30591 "mp210",
30592 "mp211",
30593 "mp212",
30594 "mp213",
30595 "mp214",
30596 "mp215",
30597 "mp216",
30598 "mp217",
30599 "mp218",
30600 "mp219",
30601 "mp220",
30602 "mp221",
30603 "mp222",
30604 "mp223",
30605 "mp224",
30606 "mp225",
30607 "mp226",
30608 "mp227",
30609 "mp228",
30610 "mp229",
30611 "mp230",
30612 "mp231",
30613 "mp232",
30614 "mp233",
30615 "mp234",
30616 "mp235",
30617 "mp236",
30618 "mp237",
30619 "mp238",
30620 "mp239",
30621 "mp240",
30622 "mp241",
30623 "mp242",
30624 "mp243",
30625 "mp244",
30626 "mp245",
30627 "mp246",
30628 "mp247",
30629 "mp248",
30630 "mp249",
30631 "mp250",
30632 "mp251",
30633 "mp252",
30634 "mp253",
30635 "mp254",
30636 "mp255"
44660702 30637 ],
44660702
DM
30638 "type" : "string"
30639 },
7aacca6f 30640 "node" : {
44660702 30641 "description" : "The cluster node name.",
7aacca6f 30642 "format" : "pve-node",
013dc89f
DM
30643 "type" : "string",
30644 "typetext" : "<string>"
7aacca6f 30645 },
4d47f125
TL
30646 "size" : {
30647 "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.",
30648 "pattern" : "\\+?\\d+(\\.\\d+)?[KMGT]?",
44660702 30649 "type" : "string"
7aacca6f
DM
30650 },
30651 "vmid" : {
30652 "description" : "The (unique) ID of the VM.",
44660702 30653 "format" : "pve-vmid",
7aacca6f 30654 "minimum" : 1,
4bd7df8b 30655 "type" : "integer",
013dc89f 30656 "typetext" : "<integer> (1 - N)"
56122987 30657 }
56122987
DM
30658 }
30659 },
56122987
DM
30660 "permissions" : {
30661 "check" : [
30662 "perm",
30663 "/vms/{vmid}",
30664 [
4d47f125
TL
30665 "VM.Config.Disk"
30666 ],
30667 "any",
30668 1
56122987
DM
30669 ]
30670 },
7aacca6f 30671 "protected" : 1,
4d47f125 30672 "proxyto" : "node",
7aacca6f 30673 "returns" : {
4d47f125
TL
30674 "description" : "the task ID.",
30675 "type" : "string"
44660702 30676 }
56122987
DM
30677 }
30678 },
44660702 30679 "leaf" : 1,
4d47f125
TL
30680 "path" : "/nodes/{node}/lxc/{vmid}/resize",
30681 "text" : "resize"
56122987
DM
30682 },
30683 {
30684 "info" : {
30685 "POST" : {
e9cd3bd4 30686 "allowtoken" : 1,
5370fa8c 30687 "description" : "Move a rootfs-/mp-volume to a different storage or to a different container.",
44660702 30688 "method" : "POST",
4d47f125 30689 "name" : "move_volume",
7aacca6f 30690 "parameters" : {
44660702 30691 "additionalProperties" : 0,
7aacca6f 30692 "properties" : {
95895385
TL
30693 "bwlimit" : {
30694 "default" : "clone limit from datacenter or storage config",
30695 "description" : "Override I/O bandwidth limit (in KiB/s).",
30696 "minimum" : "0",
30697 "optional" : 1,
30698 "type" : "number",
30699 "typetext" : "<number> (0 - N)"
30700 },
4d47f125
TL
30701 "delete" : {
30702 "default" : 0,
30703 "description" : "Delete the original volume after successful copy. By default the original is kept as an unused volume entry.",
5d9c884c 30704 "optional" : 1,
4d47f125
TL
30705 "type" : "boolean",
30706 "typetext" : "<boolean>"
30707 },
30708 "digest" : {
5370fa8c 30709 "description" : "Prevent changes if current configuration file has different SHA1 \" .\n\t\t \"digest. This can be used to prevent concurrent modifications.",
4d47f125
TL
30710 "maxLength" : 40,
30711 "optional" : 1,
30712 "type" : "string",
30713 "typetext" : "<string>"
5d9c884c 30714 },
44660702
DM
30715 "node" : {
30716 "description" : "The cluster node name.",
30717 "format" : "pve-node",
013dc89f
DM
30718 "type" : "string",
30719 "typetext" : "<string>"
44660702 30720 },
4d47f125
TL
30721 "storage" : {
30722 "description" : "Target Storage.",
30723 "format" : "pve-storage-id",
5370fa8c 30724 "optional" : 1,
4d47f125
TL
30725 "type" : "string",
30726 "typetext" : "<string>"
30727 },
5370fa8c
TL
30728 "target-digest" : {
30729 "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.",
30730 "maxLength" : 40,
30731 "optional" : 1,
30732 "type" : "string",
30733 "typetext" : "<string>"
30734 },
30735 "target-vmid" : {
44660702 30736 "description" : "The (unique) ID of the VM.",
7aacca6f
DM
30737 "format" : "pve-vmid",
30738 "minimum" : 1,
5370fa8c 30739 "optional" : 1,
4bd7df8b 30740 "type" : "integer",
013dc89f 30741 "typetext" : "<integer> (1 - N)"
7aacca6f 30742 },
5370fa8c
TL
30743 "target-volume" : {
30744 "description" : "The config key the volume will be moved to. Default is the source volume key.",
4d47f125
TL
30745 "enum" : [
30746 "rootfs",
30747 "mp0",
30748 "mp1",
30749 "mp2",
30750 "mp3",
30751 "mp4",
30752 "mp5",
30753 "mp6",
30754 "mp7",
30755 "mp8",
30756 "mp9",
30757 "mp10",
30758 "mp11",
30759 "mp12",
30760 "mp13",
30761 "mp14",
30762 "mp15",
30763 "mp16",
30764 "mp17",
30765 "mp18",
30766 "mp19",
30767 "mp20",
30768 "mp21",
30769 "mp22",
30770 "mp23",
30771 "mp24",
30772 "mp25",
30773 "mp26",
30774 "mp27",
30775 "mp28",
30776 "mp29",
30777 "mp30",
30778 "mp31",
30779 "mp32",
30780 "mp33",
30781 "mp34",
30782 "mp35",
30783 "mp36",
30784 "mp37",
30785 "mp38",
30786 "mp39",
30787 "mp40",
30788 "mp41",
30789 "mp42",
30790 "mp43",
30791 "mp44",
30792 "mp45",
30793 "mp46",
30794 "mp47",
30795 "mp48",
30796 "mp49",
30797 "mp50",
30798 "mp51",
30799 "mp52",
30800 "mp53",
30801 "mp54",
30802 "mp55",
30803 "mp56",
30804 "mp57",
30805 "mp58",
30806 "mp59",
30807 "mp60",
30808 "mp61",
30809 "mp62",
30810 "mp63",
30811 "mp64",
30812 "mp65",
30813 "mp66",
30814 "mp67",
30815 "mp68",
30816 "mp69",
30817 "mp70",
30818 "mp71",
30819 "mp72",
30820 "mp73",
30821 "mp74",
30822 "mp75",
30823 "mp76",
30824 "mp77",
30825 "mp78",
30826 "mp79",
30827 "mp80",
30828 "mp81",
30829 "mp82",
30830 "mp83",
30831 "mp84",
30832 "mp85",
30833 "mp86",
30834 "mp87",
30835 "mp88",
30836 "mp89",
30837 "mp90",
30838 "mp91",
30839 "mp92",
30840 "mp93",
30841 "mp94",
30842 "mp95",
30843 "mp96",
30844 "mp97",
30845 "mp98",
30846 "mp99",
30847 "mp100",
30848 "mp101",
30849 "mp102",
30850 "mp103",
30851 "mp104",
30852 "mp105",
30853 "mp106",
30854 "mp107",
30855 "mp108",
30856 "mp109",
30857 "mp110",
30858 "mp111",
30859 "mp112",
30860 "mp113",
30861 "mp114",
30862 "mp115",
30863 "mp116",
30864 "mp117",
30865 "mp118",
30866 "mp119",
30867 "mp120",
30868 "mp121",
30869 "mp122",
30870 "mp123",
30871 "mp124",
30872 "mp125",
30873 "mp126",
30874 "mp127",
30875 "mp128",
30876 "mp129",
30877 "mp130",
30878 "mp131",
30879 "mp132",
30880 "mp133",
30881 "mp134",
30882 "mp135",
30883 "mp136",
30884 "mp137",
30885 "mp138",
30886 "mp139",
30887 "mp140",
30888 "mp141",
30889 "mp142",
30890 "mp143",
30891 "mp144",
30892 "mp145",
30893 "mp146",
30894 "mp147",
30895 "mp148",
30896 "mp149",
30897 "mp150",
30898 "mp151",
30899 "mp152",
30900 "mp153",
30901 "mp154",
30902 "mp155",
30903 "mp156",
30904 "mp157",
30905 "mp158",
30906 "mp159",
30907 "mp160",
30908 "mp161",
30909 "mp162",
30910 "mp163",
30911 "mp164",
30912 "mp165",
30913 "mp166",
30914 "mp167",
30915 "mp168",
30916 "mp169",
30917 "mp170",
30918 "mp171",
30919 "mp172",
30920 "mp173",
30921 "mp174",
30922 "mp175",
30923 "mp176",
30924 "mp177",
30925 "mp178",
30926 "mp179",
30927 "mp180",
30928 "mp181",
30929 "mp182",
30930 "mp183",
30931 "mp184",
30932 "mp185",
30933 "mp186",
30934 "mp187",
30935 "mp188",
30936 "mp189",
30937 "mp190",
30938 "mp191",
30939 "mp192",
30940 "mp193",
30941 "mp194",
30942 "mp195",
30943 "mp196",
30944 "mp197",
30945 "mp198",
30946 "mp199",
30947 "mp200",
30948 "mp201",
30949 "mp202",
30950 "mp203",
30951 "mp204",
30952 "mp205",
30953 "mp206",
30954 "mp207",
30955 "mp208",
30956 "mp209",
30957 "mp210",
30958 "mp211",
30959 "mp212",
30960 "mp213",
30961 "mp214",
30962 "mp215",
30963 "mp216",
30964 "mp217",
30965 "mp218",
30966 "mp219",
30967 "mp220",
30968 "mp221",
30969 "mp222",
30970 "mp223",
30971 "mp224",
30972 "mp225",
30973 "mp226",
30974 "mp227",
30975 "mp228",
30976 "mp229",
30977 "mp230",
30978 "mp231",
30979 "mp232",
30980 "mp233",
30981 "mp234",
30982 "mp235",
30983 "mp236",
30984 "mp237",
30985 "mp238",
30986 "mp239",
30987 "mp240",
30988 "mp241",
30989 "mp242",
30990 "mp243",
30991 "mp244",
30992 "mp245",
30993 "mp246",
30994 "mp247",
30995 "mp248",
30996 "mp249",
30997 "mp250",
30998 "mp251",
30999 "mp252",
31000 "mp253",
31001 "mp254",
5370fa8c
TL
31002 "mp255",
31003 "unused0",
31004 "unused1",
31005 "unused2",
31006 "unused3",
31007 "unused4",
31008 "unused5",
31009 "unused6",
31010 "unused7",
31011 "unused8",
31012 "unused9",
31013 "unused10",
31014 "unused11",
31015 "unused12",
31016 "unused13",
31017 "unused14",
31018 "unused15",
31019 "unused16",
31020 "unused17",
31021 "unused18",
31022 "unused19",
31023 "unused20",
31024 "unused21",
31025 "unused22",
31026 "unused23",
31027 "unused24",
31028 "unused25",
31029 "unused26",
31030 "unused27",
31031 "unused28",
31032 "unused29",
31033 "unused30",
31034 "unused31",
31035 "unused32",
31036 "unused33",
31037 "unused34",
31038 "unused35",
31039 "unused36",
31040 "unused37",
31041 "unused38",
31042 "unused39",
31043 "unused40",
31044 "unused41",
31045 "unused42",
31046 "unused43",
31047 "unused44",
31048 "unused45",
31049 "unused46",
31050 "unused47",
31051 "unused48",
31052 "unused49",
31053 "unused50",
31054 "unused51",
31055 "unused52",
31056 "unused53",
31057 "unused54",
31058 "unused55",
31059 "unused56",
31060 "unused57",
31061 "unused58",
31062 "unused59",
31063 "unused60",
31064 "unused61",
31065 "unused62",
31066 "unused63",
31067 "unused64",
31068 "unused65",
31069 "unused66",
31070 "unused67",
31071 "unused68",
31072 "unused69",
31073 "unused70",
31074 "unused71",
31075 "unused72",
31076 "unused73",
31077 "unused74",
31078 "unused75",
31079 "unused76",
31080 "unused77",
31081 "unused78",
31082 "unused79",
31083 "unused80",
31084 "unused81",
31085 "unused82",
31086 "unused83",
31087 "unused84",
31088 "unused85",
31089 "unused86",
31090 "unused87",
31091 "unused88",
31092 "unused89",
31093 "unused90",
31094 "unused91",
31095 "unused92",
31096 "unused93",
31097 "unused94",
31098 "unused95",
31099 "unused96",
31100 "unused97",
31101 "unused98",
31102 "unused99",
31103 "unused100",
31104 "unused101",
31105 "unused102",
31106 "unused103",
31107 "unused104",
31108 "unused105",
31109 "unused106",
31110 "unused107",
31111 "unused108",
31112 "unused109",
31113 "unused110",
31114 "unused111",
31115 "unused112",
31116 "unused113",
31117 "unused114",
31118 "unused115",
31119 "unused116",
31120 "unused117",
31121 "unused118",
31122 "unused119",
31123 "unused120",
31124 "unused121",
31125 "unused122",
31126 "unused123",
31127 "unused124",
31128 "unused125",
31129 "unused126",
31130 "unused127",
31131 "unused128",
31132 "unused129",
31133 "unused130",
31134 "unused131",
31135 "unused132",
31136 "unused133",
31137 "unused134",
31138 "unused135",
31139 "unused136",
31140 "unused137",
31141 "unused138",
31142 "unused139",
31143 "unused140",
31144 "unused141",
31145 "unused142",
31146 "unused143",
31147 "unused144",
31148 "unused145",
31149 "unused146",
31150 "unused147",
31151 "unused148",
31152 "unused149",
31153 "unused150",
31154 "unused151",
31155 "unused152",
31156 "unused153",
31157 "unused154",
31158 "unused155",
31159 "unused156",
31160 "unused157",
31161 "unused158",
31162 "unused159",
31163 "unused160",
31164 "unused161",
31165 "unused162",
31166 "unused163",
31167 "unused164",
31168 "unused165",
31169 "unused166",
31170 "unused167",
31171 "unused168",
31172 "unused169",
31173 "unused170",
31174 "unused171",
31175 "unused172",
31176 "unused173",
31177 "unused174",
31178 "unused175",
31179 "unused176",
31180 "unused177",
31181 "unused178",
31182 "unused179",
31183 "unused180",
31184 "unused181",
31185 "unused182",
31186 "unused183",
31187 "unused184",
31188 "unused185",
31189 "unused186",
31190 "unused187",
31191 "unused188",
31192 "unused189",
31193 "unused190",
31194 "unused191",
31195 "unused192",
31196 "unused193",
31197 "unused194",
31198 "unused195",
31199 "unused196",
31200 "unused197",
31201 "unused198",
31202 "unused199",
31203 "unused200",
31204 "unused201",
31205 "unused202",
31206 "unused203",
31207 "unused204",
31208 "unused205",
31209 "unused206",
31210 "unused207",
31211 "unused208",
31212 "unused209",
31213 "unused210",
31214 "unused211",
31215 "unused212",
31216 "unused213",
31217 "unused214",
31218 "unused215",
31219 "unused216",
31220 "unused217",
31221 "unused218",
31222 "unused219",
31223 "unused220",
31224 "unused221",
31225 "unused222",
31226 "unused223",
31227 "unused224",
31228 "unused225",
31229 "unused226",
31230 "unused227",
31231 "unused228",
31232 "unused229",
31233 "unused230",
31234 "unused231",
31235 "unused232",
31236 "unused233",
31237 "unused234",
31238 "unused235",
31239 "unused236",
31240 "unused237",
31241 "unused238",
31242 "unused239",
31243 "unused240",
31244 "unused241",
31245 "unused242",
31246 "unused243",
31247 "unused244",
31248 "unused245",
31249 "unused246",
31250 "unused247",
31251 "unused248",
31252 "unused249",
31253 "unused250",
31254 "unused251",
31255 "unused252",
31256 "unused253",
31257 "unused254",
31258 "unused255"
31259 ],
31260 "optional" : 1,
31261 "type" : "string"
31262 },
31263 "vmid" : {
31264 "description" : "The (unique) ID of the VM.",
31265 "format" : "pve-vmid",
31266 "minimum" : 1,
31267 "type" : "integer",
31268 "typetext" : "<integer> (1 - N)"
31269 },
31270 "volume" : {
31271 "description" : "Volume which will be moved.",
31272 "enum" : [
31273 "rootfs",
31274 "mp0",
31275 "mp1",
31276 "mp2",
31277 "mp3",
31278 "mp4",
31279 "mp5",
31280 "mp6",
31281 "mp7",
31282 "mp8",
31283 "mp9",
31284 "mp10",
31285 "mp11",
31286 "mp12",
31287 "mp13",
31288 "mp14",
31289 "mp15",
31290 "mp16",
31291 "mp17",
31292 "mp18",
31293 "mp19",
31294 "mp20",
31295 "mp21",
31296 "mp22",
31297 "mp23",
31298 "mp24",
31299 "mp25",
31300 "mp26",
31301 "mp27",
31302 "mp28",
31303 "mp29",
31304 "mp30",
31305 "mp31",
31306 "mp32",
31307 "mp33",
31308 "mp34",
31309 "mp35",
31310 "mp36",
31311 "mp37",
31312 "mp38",
31313 "mp39",
31314 "mp40",
31315 "mp41",
31316 "mp42",
31317 "mp43",
31318 "mp44",
31319 "mp45",
31320 "mp46",
31321 "mp47",
31322 "mp48",
31323 "mp49",
31324 "mp50",
31325 "mp51",
31326 "mp52",
31327 "mp53",
31328 "mp54",
31329 "mp55",
31330 "mp56",
31331 "mp57",
31332 "mp58",
31333 "mp59",
31334 "mp60",
31335 "mp61",
31336 "mp62",
31337 "mp63",
31338 "mp64",
31339 "mp65",
31340 "mp66",
31341 "mp67",
31342 "mp68",
31343 "mp69",
31344 "mp70",
31345 "mp71",
31346 "mp72",
31347 "mp73",
31348 "mp74",
31349 "mp75",
31350 "mp76",
31351 "mp77",
31352 "mp78",
31353 "mp79",
31354 "mp80",
31355 "mp81",
31356 "mp82",
31357 "mp83",
31358 "mp84",
31359 "mp85",
31360 "mp86",
31361 "mp87",
31362 "mp88",
31363 "mp89",
31364 "mp90",
31365 "mp91",
31366 "mp92",
31367 "mp93",
31368 "mp94",
31369 "mp95",
31370 "mp96",
31371 "mp97",
31372 "mp98",
31373 "mp99",
31374 "mp100",
31375 "mp101",
31376 "mp102",
31377 "mp103",
31378 "mp104",
31379 "mp105",
31380 "mp106",
31381 "mp107",
31382 "mp108",
31383 "mp109",
31384 "mp110",
31385 "mp111",
31386 "mp112",
31387 "mp113",
31388 "mp114",
31389 "mp115",
31390 "mp116",
31391 "mp117",
31392 "mp118",
31393 "mp119",
31394 "mp120",
31395 "mp121",
31396 "mp122",
31397 "mp123",
31398 "mp124",
31399 "mp125",
31400 "mp126",
31401 "mp127",
31402 "mp128",
31403 "mp129",
31404 "mp130",
31405 "mp131",
31406 "mp132",
31407 "mp133",
31408 "mp134",
31409 "mp135",
31410 "mp136",
31411 "mp137",
31412 "mp138",
31413 "mp139",
31414 "mp140",
31415 "mp141",
31416 "mp142",
31417 "mp143",
31418 "mp144",
31419 "mp145",
31420 "mp146",
31421 "mp147",
31422 "mp148",
31423 "mp149",
31424 "mp150",
31425 "mp151",
31426 "mp152",
31427 "mp153",
31428 "mp154",
31429 "mp155",
31430 "mp156",
31431 "mp157",
31432 "mp158",
31433 "mp159",
31434 "mp160",
31435 "mp161",
31436 "mp162",
31437 "mp163",
31438 "mp164",
31439 "mp165",
31440 "mp166",
31441 "mp167",
31442 "mp168",
31443 "mp169",
31444 "mp170",
31445 "mp171",
31446 "mp172",
31447 "mp173",
31448 "mp174",
31449 "mp175",
31450 "mp176",
31451 "mp177",
31452 "mp178",
31453 "mp179",
31454 "mp180",
31455 "mp181",
31456 "mp182",
31457 "mp183",
31458 "mp184",
31459 "mp185",
31460 "mp186",
31461 "mp187",
31462 "mp188",
31463 "mp189",
31464 "mp190",
31465 "mp191",
31466 "mp192",
31467 "mp193",
31468 "mp194",
31469 "mp195",
31470 "mp196",
31471 "mp197",
31472 "mp198",
31473 "mp199",
31474 "mp200",
31475 "mp201",
31476 "mp202",
31477 "mp203",
31478 "mp204",
31479 "mp205",
31480 "mp206",
31481 "mp207",
31482 "mp208",
31483 "mp209",
31484 "mp210",
31485 "mp211",
31486 "mp212",
31487 "mp213",
31488 "mp214",
31489 "mp215",
31490 "mp216",
31491 "mp217",
31492 "mp218",
31493 "mp219",
31494 "mp220",
31495 "mp221",
31496 "mp222",
31497 "mp223",
31498 "mp224",
31499 "mp225",
31500 "mp226",
31501 "mp227",
31502 "mp228",
31503 "mp229",
31504 "mp230",
31505 "mp231",
31506 "mp232",
31507 "mp233",
31508 "mp234",
31509 "mp235",
31510 "mp236",
31511 "mp237",
31512 "mp238",
31513 "mp239",
31514 "mp240",
31515 "mp241",
31516 "mp242",
31517 "mp243",
31518 "mp244",
31519 "mp245",
31520 "mp246",
31521 "mp247",
31522 "mp248",
31523 "mp249",
31524 "mp250",
31525 "mp251",
31526 "mp252",
31527 "mp253",
31528 "mp254",
31529 "mp255",
31530 "unused0",
31531 "unused1",
31532 "unused2",
31533 "unused3",
31534 "unused4",
31535 "unused5",
31536 "unused6",
31537 "unused7",
31538 "unused8",
31539 "unused9",
31540 "unused10",
31541 "unused11",
31542 "unused12",
31543 "unused13",
31544 "unused14",
31545 "unused15",
31546 "unused16",
31547 "unused17",
31548 "unused18",
31549 "unused19",
31550 "unused20",
31551 "unused21",
31552 "unused22",
31553 "unused23",
31554 "unused24",
31555 "unused25",
31556 "unused26",
31557 "unused27",
31558 "unused28",
31559 "unused29",
31560 "unused30",
31561 "unused31",
31562 "unused32",
31563 "unused33",
31564 "unused34",
31565 "unused35",
31566 "unused36",
31567 "unused37",
31568 "unused38",
31569 "unused39",
31570 "unused40",
31571 "unused41",
31572 "unused42",
31573 "unused43",
31574 "unused44",
31575 "unused45",
31576 "unused46",
31577 "unused47",
31578 "unused48",
31579 "unused49",
31580 "unused50",
31581 "unused51",
31582 "unused52",
31583 "unused53",
31584 "unused54",
31585 "unused55",
31586 "unused56",
31587 "unused57",
31588 "unused58",
31589 "unused59",
31590 "unused60",
31591 "unused61",
31592 "unused62",
31593 "unused63",
31594 "unused64",
31595 "unused65",
31596 "unused66",
31597 "unused67",
31598 "unused68",
31599 "unused69",
31600 "unused70",
31601 "unused71",
31602 "unused72",
31603 "unused73",
31604 "unused74",
31605 "unused75",
31606 "unused76",
31607 "unused77",
31608 "unused78",
31609 "unused79",
31610 "unused80",
31611 "unused81",
31612 "unused82",
31613 "unused83",
31614 "unused84",
31615 "unused85",
31616 "unused86",
31617 "unused87",
31618 "unused88",
31619 "unused89",
31620 "unused90",
31621 "unused91",
31622 "unused92",
31623 "unused93",
31624 "unused94",
31625 "unused95",
31626 "unused96",
31627 "unused97",
31628 "unused98",
31629 "unused99",
31630 "unused100",
31631 "unused101",
31632 "unused102",
31633 "unused103",
31634 "unused104",
31635 "unused105",
31636 "unused106",
31637 "unused107",
31638 "unused108",
31639 "unused109",
31640 "unused110",
31641 "unused111",
31642 "unused112",
31643 "unused113",
31644 "unused114",
31645 "unused115",
31646 "unused116",
31647 "unused117",
31648 "unused118",
31649 "unused119",
31650 "unused120",
31651 "unused121",
31652 "unused122",
31653 "unused123",
31654 "unused124",
31655 "unused125",
31656 "unused126",
31657 "unused127",
31658 "unused128",
31659 "unused129",
31660 "unused130",
31661 "unused131",
31662 "unused132",
31663 "unused133",
31664 "unused134",
31665 "unused135",
31666 "unused136",
31667 "unused137",
31668 "unused138",
31669 "unused139",
31670 "unused140",
31671 "unused141",
31672 "unused142",
31673 "unused143",
31674 "unused144",
31675 "unused145",
31676 "unused146",
31677 "unused147",
31678 "unused148",
31679 "unused149",
31680 "unused150",
31681 "unused151",
31682 "unused152",
31683 "unused153",
31684 "unused154",
31685 "unused155",
31686 "unused156",
31687 "unused157",
31688 "unused158",
31689 "unused159",
31690 "unused160",
31691 "unused161",
31692 "unused162",
31693 "unused163",
31694 "unused164",
31695 "unused165",
31696 "unused166",
31697 "unused167",
31698 "unused168",
31699 "unused169",
31700 "unused170",
31701 "unused171",
31702 "unused172",
31703 "unused173",
31704 "unused174",
31705 "unused175",
31706 "unused176",
31707 "unused177",
31708 "unused178",
31709 "unused179",
31710 "unused180",
31711 "unused181",
31712 "unused182",
31713 "unused183",
31714 "unused184",
31715 "unused185",
31716 "unused186",
31717 "unused187",
31718 "unused188",
31719 "unused189",
31720 "unused190",
31721 "unused191",
31722 "unused192",
31723 "unused193",
31724 "unused194",
31725 "unused195",
31726 "unused196",
31727 "unused197",
31728 "unused198",
31729 "unused199",
31730 "unused200",
31731 "unused201",
31732 "unused202",
31733 "unused203",
31734 "unused204",
31735 "unused205",
31736 "unused206",
31737 "unused207",
31738 "unused208",
31739 "unused209",
31740 "unused210",
31741 "unused211",
31742 "unused212",
31743 "unused213",
31744 "unused214",
31745 "unused215",
31746 "unused216",
31747 "unused217",
31748 "unused218",
31749 "unused219",
31750 "unused220",
31751 "unused221",
31752 "unused222",
31753 "unused223",
31754 "unused224",
31755 "unused225",
31756 "unused226",
31757 "unused227",
31758 "unused228",
31759 "unused229",
31760 "unused230",
31761 "unused231",
31762 "unused232",
31763 "unused233",
31764 "unused234",
31765 "unused235",
31766 "unused236",
31767 "unused237",
31768 "unused238",
31769 "unused239",
31770 "unused240",
31771 "unused241",
31772 "unused242",
31773 "unused243",
31774 "unused244",
31775 "unused245",
31776 "unused246",
31777 "unused247",
31778 "unused248",
31779 "unused249",
31780 "unused250",
31781 "unused251",
31782 "unused252",
31783 "unused253",
31784 "unused254",
31785 "unused255"
4d47f125
TL
31786 ],
31787 "type" : "string"
7aacca6f 31788 }
44660702 31789 }
7aacca6f 31790 },
56122987
DM
31791 "permissions" : {
31792 "check" : [
5370fa8c
TL
31793 "perm",
31794 "/vms/{vmid}",
4d47f125 31795 [
5370fa8c 31796 "VM.Config.Disk"
56122987 31797 ]
4d47f125 31798 ],
5370fa8c 31799 "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
31800 },
31801 "protected" : 1,
31802 "proxyto" : "node",
31803 "returns" : {
31804 "type" : "string"
31805 }
31806 }
31807 },
31808 "leaf" : 1,
31809 "path" : "/nodes/{node}/lxc/{vmid}/move_volume",
31810 "text" : "move_volume"
1c532546
TL
31811 },
31812 {
31813 "info" : {
31814 "GET" : {
e9cd3bd4 31815 "allowtoken" : 1,
1c532546
TL
31816 "description" : "Get container configuration, including pending changes.",
31817 "method" : "GET",
31818 "name" : "vm_pending",
31819 "parameters" : {
31820 "additionalProperties" : 0,
31821 "properties" : {
31822 "node" : {
31823 "description" : "The cluster node name.",
31824 "format" : "pve-node",
31825 "type" : "string",
31826 "typetext" : "<string>"
31827 },
31828 "vmid" : {
31829 "description" : "The (unique) ID of the VM.",
31830 "format" : "pve-vmid",
31831 "minimum" : 1,
31832 "type" : "integer",
31833 "typetext" : "<integer> (1 - N)"
31834 }
31835 }
31836 },
31837 "permissions" : {
31838 "check" : [
31839 "perm",
31840 "/vms/{vmid}",
31841 [
31842 "VM.Audit"
31843 ]
31844 ]
31845 },
31846 "proxyto" : "node",
31847 "returns" : {
31848 "items" : {
31849 "properties" : {
31850 "delete" : {
31851 "description" : "Indicates a pending delete request if present and not 0.",
31852 "maximum" : 2,
31853 "minimum" : 0,
31854 "optional" : 1,
31855 "type" : "integer"
31856 },
31857 "key" : {
31858 "description" : "Configuration option name.",
31859 "type" : "string"
31860 },
31861 "pending" : {
31862 "description" : "Pending value.",
31863 "optional" : 1,
31864 "type" : "string"
31865 },
31866 "value" : {
31867 "description" : "Current value.",
31868 "optional" : 1,
31869 "type" : "string"
31870 }
31871 },
31872 "type" : "object"
31873 },
31874 "type" : "array"
31875 }
31876 }
31877 },
31878 "leaf" : 1,
31879 "path" : "/nodes/{node}/lxc/{vmid}/pending",
31880 "text" : "pending"
81a3384d
TL
31881 },
31882 {
31883 "info" : {
31884 "POST" : {
31885 "allowtoken" : 1,
31886 "description" : "Migration tunnel endpoint - only for internal use by CT migration.",
31887 "method" : "POST",
31888 "name" : "mtunnel",
31889 "parameters" : {
31890 "additionalProperties" : 0,
31891 "properties" : {
31892 "bridges" : {
31893 "description" : "List of network bridges to check availability. Will be checked again for actually used bridges during migration.",
31894 "format" : "pve-bridge-id-list",
31895 "optional" : 1,
31896 "type" : "string",
31897 "typetext" : "<string>"
31898 },
31899 "node" : {
31900 "description" : "The cluster node name.",
31901 "format" : "pve-node",
31902 "type" : "string",
31903 "typetext" : "<string>"
31904 },
31905 "storages" : {
31906 "description" : "List of storages to check permission and availability. Will be checked again for all actually used storages during migration.",
31907 "format" : "pve-storage-id-list",
31908 "optional" : 1,
31909 "type" : "string",
31910 "typetext" : "<string>"
31911 },
31912 "vmid" : {
31913 "description" : "The (unique) ID of the VM.",
31914 "format" : "pve-vmid",
31915 "minimum" : 1,
31916 "type" : "integer",
31917 "typetext" : "<integer> (1 - N)"
31918 }
31919 }
31920 },
31921 "permissions" : {
31922 "check" : [
31923 "and",
31924 [
31925 "perm",
31926 "/vms/{vmid}",
31927 [
31928 "VM.Allocate"
31929 ]
31930 ],
31931 [
31932 "perm",
31933 "/",
31934 [
31935 "Sys.Incoming"
31936 ]
31937 ]
31938 ],
31939 "description" : "You need 'VM.Allocate' permissions on '/vms/{vmid}' and Sys.Incoming on '/'. Further permission checks happen during the actual migration."
31940 },
31941 "protected" : 1,
31942 "returns" : {
31943 "additionalProperties" : 0,
31944 "properties" : {
31945 "socket" : {
31946 "type" : "string"
31947 },
31948 "ticket" : {
31949 "type" : "string"
31950 },
31951 "upid" : {
31952 "type" : "string"
31953 }
31954 }
31955 }
31956 }
31957 },
31958 "leaf" : 1,
31959 "path" : "/nodes/{node}/lxc/{vmid}/mtunnel",
31960 "text" : "mtunnel"
31961 },
31962 {
31963 "info" : {
31964 "GET" : {
31965 "allowtoken" : 1,
31966 "description" : "Migration tunnel endpoint for websocket upgrade - only for internal use by VM migration.",
31967 "method" : "GET",
31968 "name" : "mtunnelwebsocket",
31969 "parameters" : {
31970 "additionalProperties" : 0,
31971 "properties" : {
31972 "node" : {
31973 "description" : "The cluster node name.",
31974 "format" : "pve-node",
31975 "type" : "string",
31976 "typetext" : "<string>"
31977 },
31978 "socket" : {
31979 "description" : "unix socket to forward to",
31980 "type" : "string",
31981 "typetext" : "<string>"
31982 },
31983 "ticket" : {
31984 "description" : "ticket return by initial 'mtunnel' API call, or retrieved via 'ticket' tunnel command",
31985 "type" : "string",
31986 "typetext" : "<string>"
31987 },
31988 "vmid" : {
31989 "description" : "The (unique) ID of the VM.",
31990 "format" : "pve-vmid",
31991 "minimum" : 1,
31992 "type" : "integer",
31993 "typetext" : "<integer> (1 - N)"
31994 }
31995 }
31996 },
31997 "permissions" : {
31998 "description" : "You need to pass a ticket valid for the selected socket. Tickets can be created via the mtunnel API call, which will check permissions accordingly.",
31999 "user" : "all"
32000 },
32001 "returns" : {
32002 "properties" : {
32003 "port" : {
32004 "optional" : 1,
32005 "type" : "string"
32006 },
32007 "socket" : {
32008 "optional" : 1,
32009 "type" : "string"
32010 }
32011 },
32012 "type" : "object"
32013 }
32014 }
32015 },
32016 "leaf" : 1,
32017 "path" : "/nodes/{node}/lxc/{vmid}/mtunnelwebsocket",
32018 "text" : "mtunnelwebsocket"
4d47f125
TL
32019 }
32020 ],
32021 "info" : {
32022 "DELETE" : {
e9cd3bd4 32023 "allowtoken" : 1,
4d47f125
TL
32024 "description" : "Destroy the container (also delete all uses files).",
32025 "method" : "DELETE",
32026 "name" : "destroy_vm",
32027 "parameters" : {
32028 "additionalProperties" : 0,
32029 "properties" : {
d2656385
TL
32030 "destroy-unreferenced-disks" : {
32031 "description" : "If set, destroy additionally all disks with the VMID from all enabled storages which are not referenced in the config.",
32032 "optional" : 1,
32033 "type" : "boolean",
32034 "typetext" : "<boolean>"
32035 },
c5aa7e14
TL
32036 "force" : {
32037 "default" : 0,
32038 "description" : "Force destroy, even if running.",
32039 "optional" : 1,
32040 "type" : "boolean",
32041 "typetext" : "<boolean>"
32042 },
4d47f125
TL
32043 "node" : {
32044 "description" : "The cluster node name.",
32045 "format" : "pve-node",
32046 "type" : "string",
32047 "typetext" : "<string>"
32048 },
1c532546 32049 "purge" : {
c5aa7e14
TL
32050 "default" : 0,
32051 "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
32052 "optional" : 1,
32053 "type" : "boolean",
32054 "typetext" : "<boolean>"
32055 },
4d47f125
TL
32056 "vmid" : {
32057 "description" : "The (unique) ID of the VM.",
32058 "format" : "pve-vmid",
32059 "minimum" : 1,
32060 "type" : "integer",
32061 "typetext" : "<integer> (1 - N)"
32062 }
32063 }
32064 },
32065 "permissions" : {
32066 "check" : [
32067 "perm",
32068 "/vms/{vmid}",
32069 [
32070 "VM.Allocate"
32071 ]
32072 ]
32073 },
32074 "protected" : 1,
32075 "proxyto" : "node",
32076 "returns" : {
32077 "type" : "string"
32078 }
32079 },
32080 "GET" : {
e9cd3bd4 32081 "allowtoken" : 1,
4d47f125
TL
32082 "description" : "Directory index",
32083 "method" : "GET",
32084 "name" : "vmdiridx",
32085 "parameters" : {
32086 "additionalProperties" : 0,
32087 "properties" : {
32088 "node" : {
32089 "description" : "The cluster node name.",
32090 "format" : "pve-node",
32091 "type" : "string",
32092 "typetext" : "<string>"
56122987 32093 },
4d47f125
TL
32094 "vmid" : {
32095 "description" : "The (unique) ID of the VM.",
32096 "format" : "pve-vmid",
32097 "minimum" : 1,
32098 "type" : "integer",
32099 "typetext" : "<integer> (1 - N)"
56122987
DM
32100 }
32101 }
32102 },
4d47f125
TL
32103 "permissions" : {
32104 "user" : "all"
32105 },
32106 "proxyto" : "node",
32107 "returns" : {
32108 "items" : {
32109 "properties" : {
32110 "subdir" : {
32111 "type" : "string"
35a75dd3
DM
32112 }
32113 },
4d47f125
TL
32114 "type" : "object"
32115 },
32116 "links" : [
32117 {
32118 "href" : "{subdir}",
32119 "rel" : "child"
35a75dd3 32120 }
4d47f125
TL
32121 ],
32122 "type" : "array"
32123 }
32124 }
32125 },
32126 "leaf" : 0,
32127 "path" : "/nodes/{node}/lxc/{vmid}",
32128 "text" : "{vmid}"
32129 }
32130 ],
32131 "info" : {
32132 "GET" : {
e9cd3bd4 32133 "allowtoken" : 1,
4d47f125
TL
32134 "description" : "LXC container index (per node).",
32135 "method" : "GET",
32136 "name" : "vmlist",
32137 "parameters" : {
32138 "additionalProperties" : 0,
32139 "properties" : {
32140 "node" : {
32141 "description" : "The cluster node name.",
32142 "format" : "pve-node",
32143 "type" : "string",
32144 "typetext" : "<string>"
32145 }
32146 }
32147 },
32148 "permissions" : {
32149 "description" : "Only list CTs where you have VM.Audit permissons on /vms/<vmid>.",
32150 "user" : "all"
32151 },
32152 "protected" : 1,
32153 "proxyto" : "node",
32154 "returns" : {
32155 "items" : {
32156 "properties" : {
32157 "cpus" : {
32158 "description" : "Maximum usable CPUs.",
32159 "optional" : 1,
32160 "type" : "number"
32161 },
95895385
TL
32162 "lock" : {
32163 "description" : "The current config lock, if any.",
32164 "optional" : 1,
32165 "type" : "string"
32166 },
4d47f125
TL
32167 "maxdisk" : {
32168 "description" : "Root disk size in bytes.",
32169 "optional" : 1,
32170 "renderer" : "bytes",
32171 "type" : "integer"
32172 },
32173 "maxmem" : {
32174 "description" : "Maximum memory in bytes.",
32175 "optional" : 1,
32176 "renderer" : "bytes",
32177 "type" : "integer"
32178 },
32179 "maxswap" : {
32180 "description" : "Maximum SWAP memory in bytes.",
32181 "optional" : 1,
32182 "renderer" : "bytes",
32183 "type" : "integer"
32184 },
32185 "name" : {
32186 "description" : "Container name.",
32187 "optional" : 1,
32188 "type" : "string"
32189 },
32190 "status" : {
32191 "description" : "LXC Container status.",
32192 "enum" : [
32193 "stopped",
32194 "running"
32195 ],
32196 "type" : "string"
32197 },
5c1699e5
TL
32198 "tags" : {
32199 "description" : "The current configured tags, if any.",
32200 "optional" : 1,
32201 "type" : "string"
32202 },
4d47f125
TL
32203 "uptime" : {
32204 "description" : "Uptime.",
32205 "optional" : 1,
32206 "renderer" : "duration",
32207 "type" : "integer"
32208 },
32209 "vmid" : {
32210 "description" : "The (unique) ID of the VM.",
32211 "format" : "pve-vmid",
32212 "minimum" : 1,
32213 "type" : "integer"
35a75dd3
DM
32214 }
32215 },
4d47f125 32216 "type" : "object"
35a75dd3 32217 },
4d47f125
TL
32218 "links" : [
32219 {
32220 "href" : "{vmid}",
32221 "rel" : "child"
32222 }
32223 ],
32224 "type" : "array"
32225 }
32226 },
32227 "POST" : {
e9cd3bd4 32228 "allowtoken" : 1,
4d47f125
TL
32229 "description" : "Create or restore a container.",
32230 "method" : "POST",
32231 "name" : "create_vm",
32232 "parameters" : {
32233 "additionalProperties" : 0,
32234 "properties" : {
32235 "arch" : {
32236 "default" : "amd64",
32237 "description" : "OS architecture type.",
32238 "enum" : [
32239 "amd64",
32240 "i386",
32241 "arm64",
32242 "armhf"
32243 ],
32244 "optional" : 1,
32245 "type" : "string"
32246 },
32247 "bwlimit" : {
95895385
TL
32248 "default" : "restore limit from datacenter or storage config",
32249 "description" : "Override I/O bandwidth limit (in KiB/s).",
4d47f125
TL
32250 "minimum" : "0",
32251 "optional" : 1,
32252 "type" : "number",
32253 "typetext" : "<number> (0 - N)"
32254 },
32255 "cmode" : {
32256 "default" : "tty",
32257 "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).",
32258 "enum" : [
32259 "shell",
32260 "console",
32261 "tty"
32262 ],
32263 "optional" : 1,
32264 "type" : "string"
32265 },
32266 "console" : {
32267 "default" : 1,
32268 "description" : "Attach a console device (/dev/console) to the container.",
32269 "optional" : 1,
32270 "type" : "boolean",
32271 "typetext" : "<boolean>"
32272 },
32273 "cores" : {
32274 "description" : "The number of cores assigned to the container. A container can use all available cores by default.",
4772952b 32275 "maximum" : 8192,
4d47f125
TL
32276 "minimum" : 1,
32277 "optional" : 1,
32278 "type" : "integer",
4772952b 32279 "typetext" : "<integer> (1 - 8192)"
4d47f125
TL
32280 },
32281 "cpulimit" : {
32282 "default" : 0,
32283 "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 32284 "maximum" : 8192,
4d47f125
TL
32285 "minimum" : 0,
32286 "optional" : 1,
32287 "type" : "number",
4772952b 32288 "typetext" : "<number> (0 - 8192)"
4d47f125
TL
32289 },
32290 "cpuunits" : {
4e7f60c2
TL
32291 "default" : "cgroup v1: 1024, cgroup v2: 100",
32292 "description" : "CPU weight for a container, will be clamped to [1, 10000] in cgroup v2.",
4d47f125
TL
32293 "maximum" : 500000,
32294 "minimum" : 0,
32295 "optional" : 1,
32296 "type" : "integer",
4e7f60c2
TL
32297 "typetext" : "<integer> (0 - 500000)",
32298 "verbose_description" : "CPU weight for a container. Argument is used in the kernel fair scheduler. The larger the number is, the more CPU time this container gets. Number is relative to the weights of all the other running guests."
4d47f125 32299 },
739d4d64
TL
32300 "debug" : {
32301 "default" : 0,
32302 "description" : "Try to be more verbose. For now this only enables debug log-level on start.",
32303 "optional" : 1,
32304 "type" : "boolean",
32305 "typetext" : "<boolean>"
32306 },
4d47f125 32307 "description" : {
8f4d9c87
TL
32308 "description" : "Description for the Container. Shown in the web-interface CT's summary. This is saved as comment inside the configuration file.",
32309 "maxLength" : 8192,
4d47f125
TL
32310 "optional" : 1,
32311 "type" : "string",
32312 "typetext" : "<string>"
32313 },
32314 "features" : {
32315 "description" : "Allow containers access to advanced features.",
32316 "format" : {
c5aa7e14
TL
32317 "force_rw_sys" : {
32318 "default" : 0,
32319 "description" : "Mount /sys in unprivileged containers as `rw` instead of `mixed`. This can break networking under newer (>= v245) systemd-network use.",
32320 "optional" : 1,
32321 "type" : "boolean"
32322 },
e2d681b3
TL
32323 "fuse" : {
32324 "default" : 0,
32325 "description" : "Allow using 'fuse' file systems in a container. Note that interactions between fuse and the freezer cgroup can potentially cause I/O deadlocks.",
32326 "optional" : 1,
32327 "type" : "boolean"
32328 },
4d47f125
TL
32329 "keyctl" : {
32330 "default" : 0,
32331 "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.",
32332 "optional" : 1,
32333 "type" : "boolean"
7aacca6f 32334 },
c5aa7e14
TL
32335 "mknod" : {
32336 "default" : 0,
32337 "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.",
32338 "optional" : 1,
32339 "type" : "boolean"
32340 },
4d47f125
TL
32341 "mount" : {
32342 "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.",
32343 "format_description" : "fstype;fstype;...",
32344 "optional" : 1,
95895385 32345 "pattern" : "(?^:[a-zA-Z0-9_; ]+)",
4d47f125 32346 "type" : "string"
56122987 32347 },
4d47f125
TL
32348 "nesting" : {
32349 "default" : 0,
32350 "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.",
32351 "optional" : 1,
32352 "type" : "boolean"
44660702 32353 }
4d47f125
TL
32354 },
32355 "optional" : 1,
32356 "type" : "string",
c5aa7e14 32357 "typetext" : "[force_rw_sys=<1|0>] [,fuse=<1|0>] [,keyctl=<1|0>] [,mknod=<1|0>] [,mount=<fstype;fstype;...>] [,nesting=<1|0>]"
56122987 32358 },
4d47f125
TL
32359 "force" : {
32360 "description" : "Allow to overwrite existing container.",
32361 "optional" : 1,
32362 "type" : "boolean",
32363 "typetext" : "<boolean>"
32364 },
5f26e15b
TL
32365 "hookscript" : {
32366 "description" : "Script that will be exectued during various steps in the containers lifetime.",
32367 "format" : "pve-volume-id",
32368 "optional" : 1,
32369 "type" : "string",
32370 "typetext" : "<string>"
32371 },
4d47f125
TL
32372 "hostname" : {
32373 "description" : "Set a host name for the container.",
32374 "format" : "dns-name",
32375 "maxLength" : 255,
32376 "optional" : 1,
32377 "type" : "string",
32378 "typetext" : "<string>"
32379 },
32380 "ignore-unpack-errors" : {
32381 "description" : "Ignore errors when extracting the template.",
32382 "optional" : 1,
32383 "type" : "boolean",
32384 "typetext" : "<boolean>"
32385 },
32386 "lock" : {
4e7f60c2 32387 "description" : "Lock/unlock the container.",
4d47f125
TL
32388 "enum" : [
32389 "backup",
bb4c8cf8 32390 "create",
1c532546 32391 "destroyed",
4d47f125 32392 "disk",
bb4c8cf8 32393 "fstrim",
4d47f125
TL
32394 "migrate",
32395 "mounted",
32396 "rollback",
32397 "snapshot",
32398 "snapshot-delete"
32399 ],
32400 "optional" : 1,
32401 "type" : "string"
32402 },
32403 "memory" : {
32404 "default" : 512,
4e7f60c2 32405 "description" : "Amount of RAM for the container in MB.",
4d47f125
TL
32406 "minimum" : 16,
32407 "optional" : 1,
32408 "type" : "integer",
32409 "typetext" : "<integer> (16 - N)"
32410 },
32411 "mp[n]" : {
d2656385 32412 "description" : "Use volume as container mount point. Use the special syntax STORAGE_ID:SIZE_IN_GiB to allocate a new volume.",
4d47f125
TL
32413 "format" : {
32414 "acl" : {
32415 "description" : "Explicitly enable or disable ACL support.",
32416 "optional" : 1,
32417 "type" : "boolean"
56122987 32418 },
4d47f125
TL
32419 "backup" : {
32420 "description" : "Whether to include the mount point in backups.",
32421 "optional" : 1,
32422 "type" : "boolean",
32423 "verbose_description" : "Whether to include the mount point in backups (only used for volume mount points)."
56122987 32424 },
7cbed89a
TL
32425 "mountoptions" : {
32426 "description" : "Extra mount options for rootfs/mps.",
32427 "format_description" : "opt[;opt...]",
32428 "optional" : 1,
c30bb419 32429 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
32430 "type" : "string"
32431 },
4d47f125
TL
32432 "mp" : {
32433 "description" : "Path to the mount point as seen from inside the container (must not contain symlinks).",
32434 "format" : "pve-lxc-mp-string",
32435 "format_description" : "Path",
32436 "type" : "string",
32437 "verbose_description" : "Path to the mount point as seen from inside the container.\n\nNOTE: Must not contain any symlinks for security reasons."
7aacca6f 32438 },
4d47f125
TL
32439 "quota" : {
32440 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
32441 "optional" : 1,
32442 "type" : "boolean"
32443 },
32444 "replicate" : {
32445 "default" : 1,
32446 "description" : "Will include this volume to a storage replica job.",
32447 "optional" : 1,
32448 "type" : "boolean"
32449 },
32450 "ro" : {
32451 "description" : "Read-only mount point",
32452 "optional" : 1,
32453 "type" : "boolean"
32454 },
32455 "shared" : {
32456 "default" : 0,
32457 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
32458 "optional" : 1,
32459 "type" : "boolean",
32460 "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 32461 },
4d47f125
TL
32462 "size" : {
32463 "description" : "Volume size (read only value).",
32464 "format" : "disk-size",
32465 "format_description" : "DiskSize",
32466 "optional" : 1,
32467 "type" : "string"
32468 },
32469 "volume" : {
32470 "default_key" : 1,
32471 "description" : "Volume, device or directory to mount into the container.",
32472 "format" : "pve-lxc-mp-string",
32473 "format_description" : "volume",
44660702
DM
32474 "type" : "string"
32475 }
4d47f125
TL
32476 },
32477 "optional" : 1,
32478 "type" : "string",
7cbed89a 32479 "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 32480 },
4d47f125
TL
32481 "nameserver" : {
32482 "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 32483 "format" : "lxc-ip-with-ll-iface-list",
4d47f125
TL
32484 "optional" : 1,
32485 "type" : "string",
32486 "typetext" : "<string>"
32487 },
32488 "net[n]" : {
32489 "description" : "Specifies network interfaces for the container.",
32490 "format" : {
32491 "bridge" : {
32492 "description" : "Bridge to attach the network device to.",
32493 "format_description" : "bridge",
32494 "optional" : 1,
32495 "pattern" : "[-_.\\w\\d]+",
32496 "type" : "string"
56122987 32497 },
4d47f125
TL
32498 "firewall" : {
32499 "description" : "Controls whether this interface's firewall rules should be used.",
32500 "optional" : 1,
32501 "type" : "boolean"
56122987 32502 },
4d47f125
TL
32503 "gw" : {
32504 "description" : "Default gateway for IPv4 traffic.",
32505 "format" : "ipv4",
32506 "format_description" : "GatewayIPv4",
32507 "optional" : 1,
32508 "type" : "string"
32509 },
32510 "gw6" : {
32511 "description" : "Default gateway for IPv6 traffic.",
32512 "format" : "ipv6",
32513 "format_description" : "GatewayIPv6",
32514 "optional" : 1,
32515 "type" : "string"
32516 },
32517 "hwaddr" : {
32518 "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 32519 "format" : "mac-addr",
4d47f125
TL
32520 "format_description" : "XX:XX:XX:XX:XX:XX",
32521 "optional" : 1,
95895385
TL
32522 "type" : "string",
32523 "verbose_description" : "A common MAC address with the I/G (Individual/Group) bit not set."
4d47f125
TL
32524 },
32525 "ip" : {
32526 "description" : "IPv4 address in CIDR format.",
32527 "format" : "pve-ipv4-config",
32528 "format_description" : "(IPv4/CIDR|dhcp|manual)",
32529 "optional" : 1,
32530 "type" : "string"
32531 },
32532 "ip6" : {
32533 "description" : "IPv6 address in CIDR format.",
32534 "format" : "pve-ipv6-config",
32535 "format_description" : "(IPv6/CIDR|auto|dhcp|manual)",
32536 "optional" : 1,
32537 "type" : "string"
32538 },
32539 "mtu" : {
32540 "description" : "Maximum transfer unit of the interface. (lxc.network.mtu)",
81a3384d 32541 "maximum" : 65535,
4d47f125
TL
32542 "minimum" : 64,
32543 "optional" : 1,
32544 "type" : "integer"
32545 },
32546 "name" : {
32547 "description" : "Name of the network device as seen from inside the container. (lxc.network.name)",
32548 "format_description" : "string",
32549 "pattern" : "[-_.\\w\\d]+",
32550 "type" : "string"
32551 },
32552 "rate" : {
32553 "description" : "Apply rate limiting to the interface",
32554 "format_description" : "mbps",
32555 "optional" : 1,
32556 "type" : "number"
32557 },
32558 "tag" : {
32559 "description" : "VLAN tag for this interface.",
32560 "maximum" : 4094,
32561 "minimum" : 1,
32562 "optional" : 1,
32563 "type" : "integer"
32564 },
32565 "trunks" : {
32566 "description" : "VLAN ids to pass through the interface",
32567 "format_description" : "vlanid[;vlanid...]",
32568 "optional" : 1,
32569 "pattern" : "(?^:\\d+(?:;\\d+)*)",
32570 "type" : "string"
32571 },
32572 "type" : {
32573 "description" : "Network interface type.",
32574 "enum" : [
32575 "veth"
32576 ],
32577 "optional" : 1,
32578 "type" : "string"
7aacca6f 32579 }
4d47f125
TL
32580 },
32581 "optional" : 1,
32582 "type" : "string",
32583 "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 32584 },
4d47f125
TL
32585 "node" : {
32586 "description" : "The cluster node name.",
32587 "format" : "pve-node",
32588 "type" : "string",
32589 "typetext" : "<string>"
32590 },
32591 "onboot" : {
32592 "default" : 0,
4e7f60c2 32593 "description" : "Specifies whether a container will be started during system bootup.",
4d47f125
TL
32594 "optional" : 1,
32595 "type" : "boolean",
32596 "typetext" : "<boolean>"
32597 },
32598 "ostemplate" : {
32599 "description" : "The OS template or backup file.",
32600 "maxLength" : 255,
32601 "type" : "string",
32602 "typetext" : "<string>"
32603 },
32604 "ostype" : {
32605 "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.",
32606 "enum" : [
32607 "debian",
d2656385 32608 "devuan",
4d47f125
TL
32609 "ubuntu",
32610 "centos",
32611 "fedora",
32612 "opensuse",
32613 "archlinux",
32614 "alpine",
32615 "gentoo",
7af2edf9 32616 "nixos",
4d47f125
TL
32617 "unmanaged"
32618 ],
32619 "optional" : 1,
32620 "type" : "string"
32621 },
32622 "password" : {
32623 "description" : "Sets root password inside container.",
32624 "minLength" : 5,
32625 "optional" : 1,
32626 "type" : "string",
32627 "typetext" : "<string>"
32628 },
32629 "pool" : {
32630 "description" : "Add the VM to the specified pool.",
32631 "format" : "pve-poolid",
32632 "optional" : 1,
32633 "type" : "string",
32634 "typetext" : "<string>"
32635 },
32636 "protection" : {
32637 "default" : 0,
32638 "description" : "Sets the protection flag of the container. This will prevent the CT or CT's disk remove/update operation.",
32639 "optional" : 1,
32640 "type" : "boolean",
32641 "typetext" : "<boolean>"
32642 },
32643 "restore" : {
32644 "description" : "Mark this as restore task.",
32645 "optional" : 1,
32646 "type" : "boolean",
32647 "typetext" : "<boolean>"
32648 },
32649 "rootfs" : {
32650 "description" : "Use volume as container root.",
32651 "format" : {
32652 "acl" : {
32653 "description" : "Explicitly enable or disable ACL support.",
32654 "optional" : 1,
32655 "type" : "boolean"
56122987 32656 },
7cbed89a
TL
32657 "mountoptions" : {
32658 "description" : "Extra mount options for rootfs/mps.",
32659 "format_description" : "opt[;opt...]",
32660 "optional" : 1,
c30bb419 32661 "pattern" : "(?^:(?^:(noatime|lazytime|nodev|nosuid|noexec))(;(?^:(noatime|lazytime|nodev|nosuid|noexec)))*)",
7cbed89a
TL
32662 "type" : "string"
32663 },
4d47f125
TL
32664 "quota" : {
32665 "description" : "Enable user quotas inside the container (not supported with zfs subvolumes)",
32666 "optional" : 1,
32667 "type" : "boolean"
7aacca6f 32668 },
4d47f125
TL
32669 "replicate" : {
32670 "default" : 1,
32671 "description" : "Will include this volume to a storage replica job.",
32672 "optional" : 1,
32673 "type" : "boolean"
32674 },
32675 "ro" : {
32676 "description" : "Read-only mount point",
32677 "optional" : 1,
32678 "type" : "boolean"
32679 },
32680 "shared" : {
32681 "default" : 0,
32682 "description" : "Mark this non-volume mount point as available on multiple nodes (see 'nodes')",
32683 "optional" : 1,
32684 "type" : "boolean",
32685 "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!"
32686 },
32687 "size" : {
32688 "description" : "Volume size (read only value).",
32689 "format" : "disk-size",
32690 "format_description" : "DiskSize",
32691 "optional" : 1,
32692 "type" : "string"
32693 },
32694 "volume" : {
32695 "default_key" : 1,
32696 "description" : "Volume, device or directory to mount into the container.",
32697 "format" : "pve-lxc-mp-string",
32698 "format_description" : "volume",
32699 "type" : "string"
56122987 32700 }
4d47f125
TL
32701 },
32702 "optional" : 1,
32703 "type" : "string",
7cbed89a 32704 "typetext" : "[volume=]<volume> [,acl=<1|0>] [,mountoptions=<opt[;opt...]>] [,quota=<1|0>] [,replicate=<1|0>] [,ro=<1|0>] [,shared=<1|0>] [,size=<DiskSize>]"
56122987 32705 },
4d47f125
TL
32706 "searchdomain" : {
32707 "description" : "Sets DNS search domains for a container. Create will automatically use the setting from the host if you neither set searchdomain nor nameserver.",
32708 "format" : "dns-name-list",
32709 "optional" : 1,
32710 "type" : "string",
32711 "typetext" : "<string>"
32712 },
32713 "ssh-public-keys" : {
32714 "description" : "Setup public SSH keys (one key per line, OpenSSH format).",
32715 "optional" : 1,
32716 "type" : "string",
32717 "typetext" : "<string>"
32718 },
32719 "start" : {
32720 "default" : 0,
32721 "description" : "Start the CT after its creation finished successfully.",
32722 "optional" : 1,
32723 "type" : "boolean",
32724 "typetext" : "<boolean>"
32725 },
32726 "startup" : {
32727 "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.",
32728 "format" : "pve-startup-order",
32729 "optional" : 1,
32730 "type" : "string",
32731 "typetext" : "[[order=]\\d+] [,up=\\d+] [,down=\\d+] "
32732 },
32733 "storage" : {
32734 "default" : "local",
32735 "description" : "Default Storage.",
32736 "format" : "pve-storage-id",
32737 "optional" : 1,
32738 "type" : "string",
32739 "typetext" : "<string>"
32740 },
32741 "swap" : {
32742 "default" : 512,
4e7f60c2 32743 "description" : "Amount of SWAP for the container in MB.",
4d47f125
TL
32744 "minimum" : 0,
32745 "optional" : 1,
32746 "type" : "integer",
32747 "typetext" : "<integer> (0 - N)"
32748 },
5c1699e5
TL
32749 "tags" : {
32750 "description" : "Tags of the Container. This is only meta information.",
32751 "format" : "pve-tag-list",
32752 "optional" : 1,
32753 "type" : "string",
32754 "typetext" : "<string>"
32755 },
4d47f125
TL
32756 "template" : {
32757 "default" : 0,
32758 "description" : "Enable/disable Template.",
32759 "optional" : 1,
32760 "type" : "boolean",
32761 "typetext" : "<boolean>"
32762 },
04d22a9f
TL
32763 "timezone" : {
32764 "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",
32765 "format" : "pve-ct-timezone",
32766 "optional" : 1,
32767 "type" : "string",
32768 "typetext" : "<string>"
32769 },
4d47f125
TL
32770 "tty" : {
32771 "default" : 2,
32772 "description" : "Specify the number of tty available to the container",
32773 "maximum" : 6,
32774 "minimum" : 0,
32775 "optional" : 1,
32776 "type" : "integer",
32777 "typetext" : "<integer> (0 - 6)"
32778 },
95895385
TL
32779 "unique" : {
32780 "description" : "Assign a unique random ethernet address.",
32781 "optional" : 1,
32782 "requires" : "restore",
32783 "type" : "boolean",
32784 "typetext" : "<boolean>"
32785 },
4d47f125
TL
32786 "unprivileged" : {
32787 "default" : 0,
32788 "description" : "Makes the container run as unprivileged user. (Should not be modified manually.)",
32789 "optional" : 1,
32790 "type" : "boolean",
32791 "typetext" : "<boolean>"
32792 },
32793 "unused[n]" : {
32794 "description" : "Reference to unused volumes. This is used internally, and should not be modified manually.",
c5aa7e14
TL
32795 "format" : {
32796 "volume" : {
32797 "default_key" : 1,
32798 "description" : "The volume that is not used currently.",
32799 "format" : "pve-volume-id",
32800 "format_description" : "volume",
32801 "type" : "string"
32802 }
32803 },
4d47f125
TL
32804 "optional" : 1,
32805 "type" : "string",
c5aa7e14 32806 "typetext" : "[volume=]<volume>"
4d47f125
TL
32807 },
32808 "vmid" : {
32809 "description" : "The (unique) ID of the VM.",
32810 "format" : "pve-vmid",
32811 "minimum" : 1,
32812 "type" : "integer",
32813 "typetext" : "<integer> (1 - N)"
32814 }
32815 }
32816 },
32817 "permissions" : {
32818 "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.",
32819 "user" : "all"
32820 },
32821 "protected" : 1,
32822 "proxyto" : "node",
32823 "returns" : {
32824 "type" : "string"
32825 }
32826 }
32827 },
32828 "leaf" : 0,
32829 "path" : "/nodes/{node}/lxc",
32830 "text" : "lxc"
32831 },
32832 {
32833 "children" : [
32834 {
32835 "children" : [
56122987 32836 {
4d47f125
TL
32837 "children" : [
32838 {
32839 "info" : {
32840 "POST" : {
e9cd3bd4 32841 "allowtoken" : 1,
4d47f125
TL
32842 "description" : "ceph osd in",
32843 "method" : "POST",
32844 "name" : "in",
32845 "parameters" : {
32846 "additionalProperties" : 0,
32847 "properties" : {
32848 "node" : {
32849 "description" : "The cluster node name.",
32850 "format" : "pve-node",
32851 "type" : "string",
32852 "typetext" : "<string>"
32853 },
32854 "osdid" : {
32855 "description" : "OSD ID",
32856 "type" : "integer",
32857 "typetext" : "<integer>"
32858 }
32859 }
27a7acb2 32860 },
4d47f125
TL
32861 "permissions" : {
32862 "check" : [
32863 "perm",
32864 "/",
32865 [
32866 "Sys.Modify"
32867 ]
32868 ]
44660702 32869 },
4d47f125
TL
32870 "protected" : 1,
32871 "proxyto" : "node",
32872 "returns" : {
32873 "type" : "null"
7aacca6f
DM
32874 }
32875 }
56122987 32876 },
4d47f125
TL
32877 "leaf" : 1,
32878 "path" : "/nodes/{node}/ceph/osd/{osdid}/in",
32879 "text" : "in"
32880 },
32881 {
32882 "info" : {
32883 "POST" : {
e9cd3bd4 32884 "allowtoken" : 1,
4d47f125
TL
32885 "description" : "ceph osd out",
32886 "method" : "POST",
32887 "name" : "out",
32888 "parameters" : {
32889 "additionalProperties" : 0,
32890 "properties" : {
32891 "node" : {
32892 "description" : "The cluster node name.",
32893 "format" : "pve-node",
32894 "type" : "string",
32895 "typetext" : "<string>"
32896 },
32897 "osdid" : {
32898 "description" : "OSD ID",
32899 "type" : "integer",
32900 "typetext" : "<integer>"
32901 }
32902 }
32903 },
32904 "permissions" : {
32905 "check" : [
56122987 32906 "perm",
4d47f125 32907 "/",
56122987 32908 [
4d47f125 32909 "Sys.Modify"
56122987 32910 ]
56122987 32911 ]
44660702 32912 },
4d47f125
TL
32913 "protected" : 1,
32914 "proxyto" : "node",
32915 "returns" : {
32916 "type" : "null"
56122987 32917 }
44660702 32918 }
56122987 32919 },
4d47f125
TL
32920 "leaf" : 1,
32921 "path" : "/nodes/{node}/ceph/osd/{osdid}/out",
32922 "text" : "out"
7cbed89a
TL
32923 },
32924 {
32925 "info" : {
32926 "POST" : {
e9cd3bd4 32927 "allowtoken" : 1,
7cbed89a
TL
32928 "description" : "Instruct the OSD to scrub.",
32929 "method" : "POST",
32930 "name" : "scrub",
32931 "parameters" : {
32932 "additionalProperties" : 0,
32933 "properties" : {
32934 "deep" : {
32935 "default" : 0,
32936 "description" : "If set, instructs a deep scrub instead of a normal one.",
32937 "optional" : 1,
32938 "type" : "boolean",
32939 "typetext" : "<boolean>"
32940 },
32941 "node" : {
32942 "description" : "The cluster node name.",
32943 "format" : "pve-node",
32944 "type" : "string",
32945 "typetext" : "<string>"
32946 },
32947 "osdid" : {
32948 "description" : "OSD ID",
32949 "type" : "integer",
32950 "typetext" : "<integer>"
32951 }
32952 }
32953 },
32954 "permissions" : {
32955 "check" : [
32956 "perm",
32957 "/",
32958 [
32959 "Sys.Modify"
32960 ]
32961 ]
32962 },
32963 "protected" : 1,
32964 "proxyto" : "node",
32965 "returns" : {
32966 "type" : "null"
32967 }
32968 }
32969 },
32970 "leaf" : 1,
32971 "path" : "/nodes/{node}/ceph/osd/{osdid}/scrub",
32972 "text" : "scrub"
56122987 32973 }
4d47f125 32974 ],
27a7acb2 32975 "info" : {
4d47f125 32976 "DELETE" : {
e9cd3bd4 32977 "allowtoken" : 1,
4d47f125
TL
32978 "description" : "Destroy OSD",
32979 "method" : "DELETE",
32980 "name" : "destroyosd",
27a7acb2
DM
32981 "parameters" : {
32982 "additionalProperties" : 0,
32983 "properties" : {
4d47f125 32984 "cleanup" : {
27a7acb2 32985 "default" : 0,
4d47f125 32986 "description" : "If set, we remove partition table entries.",
27a7acb2 32987 "optional" : 1,
4d47f125
TL
32988 "type" : "boolean",
32989 "typetext" : "<boolean>"
32990 },
32991 "node" : {
32992 "description" : "The cluster node name.",
32993 "format" : "pve-node",
32994 "type" : "string",
32995 "typetext" : "<string>"
32996 },
32997 "osdid" : {
32998 "description" : "OSD ID",
32999 "type" : "integer",
33000 "typetext" : "<integer>"
33001 }
33002 }
27a7acb2
DM
33003 },
33004 "protected" : 1,
33005 "proxyto" : "node",
33006 "returns" : {
33007 "type" : "string"
33008 }
33009 }
33010 },
4d47f125
TL
33011 "leaf" : 0,
33012 "path" : "/nodes/{node}/ceph/osd/{osdid}",
33013 "text" : "{osdid}"
56122987
DM
33014 }
33015 ],
33016 "info" : {
4d47f125 33017 "GET" : {
e9cd3bd4 33018 "allowtoken" : 1,
4d47f125
TL
33019 "description" : "Get Ceph osd list/tree.",
33020 "method" : "GET",
33021 "name" : "index",
44660702
DM
33022 "parameters" : {
33023 "additionalProperties" : 0,
33024 "properties" : {
33025 "node" : {
33026 "description" : "The cluster node name.",
33027 "format" : "pve-node",
013dc89f
DM
33028 "type" : "string",
33029 "typetext" : "<string>"
44660702
DM
33030 }
33031 }
33032 },
7aacca6f
DM
33033 "permissions" : {
33034 "check" : [
33035 "perm",
4d47f125 33036 "/",
7aacca6f 33037 [
4d47f125
TL
33038 "Sys.Audit",
33039 "Datastore.Audit"
33040 ],
33041 "any",
33042 1
33043 ]
33044 },
33045 "protected" : 1,
33046 "proxyto" : "node",
33047 "returns" : {
33048 "type" : "object"
33049 }
33050 },
33051 "POST" : {
e9cd3bd4 33052 "allowtoken" : 1,
4d47f125
TL
33053 "description" : "Create OSD",
33054 "method" : "POST",
33055 "name" : "createosd",
33056 "parameters" : {
33057 "additionalProperties" : 0,
33058 "properties" : {
739d4d64
TL
33059 "crush-device-class" : {
33060 "description" : "Set the device class of the OSD in crush.",
33061 "optional" : 1,
33062 "type" : "string",
33063 "typetext" : "<string>"
33064 },
1e3f8156
TL
33065 "db_dev" : {
33066 "description" : "Block device name for block.db.",
44660702 33067 "optional" : 1,
4bd7df8b 33068 "type" : "string",
4d47f125 33069 "typetext" : "<string>"
44660702 33070 },
0695fdaf 33071 "db_dev_size" : {
1e3f8156
TL
33072 "default" : "bluestore_block_db_size or 10% of OSD size",
33073 "description" : "Size in GiB for block.db.",
33074 "minimum" : 1,
7aacca6f 33075 "optional" : 1,
1e3f8156
TL
33076 "requires" : "db_dev",
33077 "type" : "number",
33078 "typetext" : "<number> (1 - N)",
33079 "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 33080 },
1e3f8156
TL
33081 "dev" : {
33082 "description" : "Block device name.",
4d47f125
TL
33083 "type" : "string",
33084 "typetext" : "<string>"
5d9c884c 33085 },
1e3f8156
TL
33086 "encrypted" : {
33087 "default" : 0,
33088 "description" : "Enables encryption of the OSD.",
33089 "optional" : 1,
33090 "type" : "boolean",
33091 "typetext" : "<boolean>"
33092 },
4d47f125
TL
33093 "node" : {
33094 "description" : "The cluster node name.",
33095 "format" : "pve-node",
33096 "type" : "string",
33097 "typetext" : "<string>"
7aacca6f 33098 },
4d47f125 33099 "wal_dev" : {
1e3f8156 33100 "description" : "Block device name for block.wal.",
de0983cb 33101 "optional" : 1,
4d47f125
TL
33102 "type" : "string",
33103 "typetext" : "<string>"
1e3f8156 33104 },
0695fdaf 33105 "wal_dev_size" : {
1e3f8156
TL
33106 "default" : "bluestore_block_wal_size or 1% of OSD size",
33107 "description" : "Size in GiB for block.wal.",
33108 "minimum" : 0.5,
33109 "optional" : 1,
33110 "requires" : "wal_dev",
33111 "type" : "number",
33112 "typetext" : "<number> (0.5 - N)",
33113 "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
33114 }
33115 }
33116 },
33117 "protected" : 1,
33118 "proxyto" : "node",
33119 "returns" : {
33120 "type" : "string"
33121 }
33122 }
33123 },
33124 "leaf" : 0,
33125 "path" : "/nodes/{node}/ceph/osd",
33126 "text" : "osd"
33127 },
e2d681b3
TL
33128 {
33129 "children" : [
33130 {
33131 "info" : {
33132 "DELETE" : {
e9cd3bd4 33133 "allowtoken" : 1,
e2d681b3
TL
33134 "description" : "Destroy Ceph Metadata Server",
33135 "method" : "DELETE",
33136 "name" : "destroymds",
33137 "parameters" : {
33138 "additionalProperties" : 0,
33139 "properties" : {
33140 "name" : {
33141 "description" : "The name (ID) of the mds",
33142 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
33143 "type" : "string"
33144 },
33145 "node" : {
33146 "description" : "The cluster node name.",
33147 "format" : "pve-node",
33148 "type" : "string",
33149 "typetext" : "<string>"
33150 }
33151 }
33152 },
33153 "permissions" : {
33154 "check" : [
33155 "perm",
33156 "/",
33157 [
33158 "Sys.Modify"
33159 ]
33160 ]
33161 },
33162 "protected" : 1,
33163 "proxyto" : "node",
33164 "returns" : {
33165 "type" : "string"
33166 }
33167 },
33168 "POST" : {
e9cd3bd4 33169 "allowtoken" : 1,
e2d681b3
TL
33170 "description" : "Create Ceph Metadata Server (MDS)",
33171 "method" : "POST",
33172 "name" : "createmds",
33173 "parameters" : {
33174 "additionalProperties" : 0,
33175 "properties" : {
33176 "hotstandby" : {
33177 "default" : "0",
33178 "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.",
33179 "optional" : 1,
33180 "type" : "boolean",
33181 "typetext" : "<boolean>"
33182 },
33183 "name" : {
33184 "default" : "nodename",
33185 "description" : "The ID for the mds, when omitted the same as the nodename",
c5aa7e14 33186 "maxLength" : 200,
e2d681b3
TL
33187 "optional" : 1,
33188 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
33189 "type" : "string"
33190 },
33191 "node" : {
33192 "description" : "The cluster node name.",
33193 "format" : "pve-node",
33194 "type" : "string",
33195 "typetext" : "<string>"
33196 }
33197 }
33198 },
33199 "permissions" : {
33200 "check" : [
33201 "perm",
33202 "/",
33203 [
33204 "Sys.Modify"
33205 ]
33206 ]
33207 },
33208 "protected" : 1,
33209 "proxyto" : "node",
33210 "returns" : {
33211 "type" : "string"
33212 }
33213 }
33214 },
33215 "leaf" : 1,
33216 "path" : "/nodes/{node}/ceph/mds/{name}",
33217 "text" : "{name}"
33218 }
33219 ],
33220 "info" : {
33221 "GET" : {
e9cd3bd4 33222 "allowtoken" : 1,
e2d681b3
TL
33223 "description" : "MDS directory index.",
33224 "method" : "GET",
33225 "name" : "index",
33226 "parameters" : {
33227 "additionalProperties" : 0,
33228 "properties" : {
33229 "node" : {
33230 "description" : "The cluster node name.",
33231 "format" : "pve-node",
33232 "type" : "string",
33233 "typetext" : "<string>"
33234 }
33235 }
33236 },
33237 "permissions" : {
33238 "check" : [
33239 "perm",
33240 "/",
33241 [
33242 "Sys.Audit",
33243 "Datastore.Audit"
33244 ],
33245 "any",
33246 1
33247 ]
33248 },
33249 "protected" : 1,
33250 "proxyto" : "node",
33251 "returns" : {
33252 "items" : {
33253 "properties" : {
33254 "addr" : {
33255 "optional" : 1,
33256 "type" : "string"
33257 },
33258 "host" : {
33259 "optional" : 1,
33260 "type" : "string"
33261 },
33262 "name" : {
33263 "description" : "The name (ID) for the MDS"
33264 },
33265 "rank" : {
33266 "optional" : 1,
33267 "type" : "integer"
33268 },
33269 "standby_replay" : {
33270 "description" : "If true, the standby MDS is polling the active MDS for faster recovery (hot standby).",
33271 "optional" : 1,
33272 "type" : "boolean"
33273 },
33274 "state" : {
33275 "description" : "State of the MDS",
33276 "type" : "string"
33277 }
33278 },
33279 "type" : "object"
33280 },
33281 "links" : [
33282 {
33283 "href" : "{name}",
33284 "rel" : "child"
33285 }
33286 ],
33287 "type" : "array"
33288 }
33289 }
33290 },
33291 "leaf" : 0,
33292 "path" : "/nodes/{node}/ceph/mds",
33293 "text" : "mds"
33294 },
33295 {
33296 "children" : [
33297 {
33298 "info" : {
5f26e15b 33299 "DELETE" : {
e9cd3bd4 33300 "allowtoken" : 1,
5f26e15b
TL
33301 "description" : "Destroy Ceph Manager.",
33302 "method" : "DELETE",
33303 "name" : "destroymgr",
e2d681b3
TL
33304 "parameters" : {
33305 "additionalProperties" : 0,
33306 "properties" : {
5f26e15b
TL
33307 "id" : {
33308 "description" : "The ID of the manager",
33309 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
33310 "type" : "string"
e2d681b3
TL
33311 },
33312 "node" : {
33313 "description" : "The cluster node name.",
33314 "format" : "pve-node",
33315 "type" : "string",
33316 "typetext" : "<string>"
e2d681b3
TL
33317 }
33318 }
33319 },
33320 "permissions" : {
33321 "check" : [
33322 "perm",
33323 "/",
33324 [
33325 "Sys.Modify"
33326 ]
33327 ]
33328 },
33329 "protected" : 1,
33330 "proxyto" : "node",
33331 "returns" : {
33332 "type" : "string"
33333 }
1e3f8156
TL
33334 },
33335 "POST" : {
e9cd3bd4 33336 "allowtoken" : 1,
1e3f8156
TL
33337 "description" : "Create Ceph Manager",
33338 "method" : "POST",
33339 "name" : "createmgr",
33340 "parameters" : {
33341 "additionalProperties" : 0,
33342 "properties" : {
33343 "id" : {
33344 "description" : "The ID for the manager, when omitted the same as the nodename",
c5aa7e14 33345 "maxLength" : 200,
1e3f8156
TL
33346 "optional" : 1,
33347 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
33348 "type" : "string"
33349 },
33350 "node" : {
33351 "description" : "The cluster node name.",
33352 "format" : "pve-node",
33353 "type" : "string",
33354 "typetext" : "<string>"
33355 }
33356 }
33357 },
33358 "permissions" : {
33359 "check" : [
33360 "perm",
33361 "/",
33362 [
33363 "Sys.Modify"
33364 ]
33365 ]
33366 },
33367 "protected" : 1,
33368 "proxyto" : "node",
33369 "returns" : {
33370 "type" : "string"
33371 }
e2d681b3
TL
33372 }
33373 },
33374 "leaf" : 1,
5f26e15b
TL
33375 "path" : "/nodes/{node}/ceph/mgr/{id}",
33376 "text" : "{id}"
e2d681b3
TL
33377 }
33378 ],
33379 "info" : {
1e3f8156 33380 "GET" : {
e9cd3bd4 33381 "allowtoken" : 1,
1e3f8156
TL
33382 "description" : "MGR directory index.",
33383 "method" : "GET",
33384 "name" : "index",
e2d681b3
TL
33385 "parameters" : {
33386 "additionalProperties" : 0,
33387 "properties" : {
33388 "node" : {
33389 "description" : "The cluster node name.",
33390 "format" : "pve-node",
33391 "type" : "string",
33392 "typetext" : "<string>"
33393 }
33394 }
33395 },
33396 "permissions" : {
33397 "check" : [
33398 "perm",
33399 "/",
33400 [
1e3f8156
TL
33401 "Sys.Audit",
33402 "Datastore.Audit"
33403 ],
33404 "any",
33405 1
e2d681b3
TL
33406 ]
33407 },
33408 "protected" : 1,
5f26e15b 33409 "proxyto" : "node",
e2d681b3 33410 "returns" : {
1e3f8156
TL
33411 "items" : {
33412 "properties" : {
33413 "addr" : {
33414 "optional" : 1,
33415 "type" : "string"
33416 },
33417 "host" : {
33418 "optional" : 1,
33419 "type" : "string"
33420 },
33421 "name" : {
33422 "description" : "The name (ID) for the MGR"
33423 },
33424 "state" : {
33425 "description" : "State of the MGR",
33426 "type" : "string"
33427 }
33428 },
33429 "type" : "object"
33430 },
33431 "links" : [
33432 {
33433 "href" : "{name}",
33434 "rel" : "child"
33435 }
33436 ],
33437 "type" : "array"
e2d681b3
TL
33438 }
33439 }
33440 },
33441 "leaf" : 0,
5f26e15b
TL
33442 "path" : "/nodes/{node}/ceph/mgr",
33443 "text" : "mgr"
e2d681b3 33444 },
4d47f125 33445 {
5f26e15b
TL
33446 "children" : [
33447 {
33448 "info" : {
33449 "DELETE" : {
e9cd3bd4 33450 "allowtoken" : 1,
5f26e15b
TL
33451 "description" : "Destroy Ceph Monitor and Manager.",
33452 "method" : "DELETE",
33453 "name" : "destroymon",
33454 "parameters" : {
33455 "additionalProperties" : 0,
33456 "properties" : {
1e3f8156
TL
33457 "monid" : {
33458 "description" : "Monitor ID",
33459 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
33460 "type" : "string"
33461 },
33462 "node" : {
33463 "description" : "The cluster node name.",
33464 "format" : "pve-node",
33465 "type" : "string",
33466 "typetext" : "<string>"
33467 }
33468 }
33469 },
33470 "permissions" : {
33471 "check" : [
33472 "perm",
33473 "/",
33474 [
33475 "Sys.Modify"
33476 ]
33477 ]
33478 },
33479 "protected" : 1,
33480 "proxyto" : "node",
33481 "returns" : {
33482 "type" : "string"
33483 }
33484 },
33485 "POST" : {
e9cd3bd4 33486 "allowtoken" : 1,
1e3f8156
TL
33487 "description" : "Create Ceph Monitor and Manager",
33488 "method" : "POST",
33489 "name" : "createmon",
33490 "parameters" : {
33491 "additionalProperties" : 0,
33492 "properties" : {
33493 "mon-address" : {
0695fdaf
TL
33494 "description" : "Overwrites autodetected monitor IP address(es). Must be in the public network(s) of Ceph.",
33495 "format" : "ip-list",
5f26e15b 33496 "optional" : 1,
1e3f8156
TL
33497 "type" : "string",
33498 "typetext" : "<string>"
5f26e15b
TL
33499 },
33500 "monid" : {
1e3f8156 33501 "description" : "The ID for the monitor, when omitted the same as the nodename",
c5aa7e14 33502 "maxLength" : 200,
1e3f8156 33503 "optional" : 1,
5f26e15b
TL
33504 "pattern" : "[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?",
33505 "type" : "string"
33506 },
33507 "node" : {
33508 "description" : "The cluster node name.",
33509 "format" : "pve-node",
33510 "type" : "string",
33511 "typetext" : "<string>"
33512 }
33513 }
33514 },
33515 "permissions" : {
33516 "check" : [
33517 "perm",
33518 "/",
33519 [
33520 "Sys.Modify"
33521 ]
33522 ]
33523 },
33524 "protected" : 1,
33525 "proxyto" : "node",
33526 "returns" : {
7aacca6f 33527 "type" : "string"
56122987 33528 }
4d47f125 33529 }
56122987 33530 },
5f26e15b
TL
33531 "leaf" : 1,
33532 "path" : "/nodes/{node}/ceph/mon/{monid}",
33533 "text" : "{monid}"
33534 }
33535 ],
33536 "info" : {
33537 "GET" : {
e9cd3bd4 33538 "allowtoken" : 1,
5f26e15b
TL
33539 "description" : "Get Ceph monitor list.",
33540 "method" : "GET",
33541 "name" : "listmon",
33542 "parameters" : {
33543 "additionalProperties" : 0,
33544 "properties" : {
33545 "node" : {
33546 "description" : "The cluster node name.",
33547 "format" : "pve-node",
33548 "type" : "string",
33549 "typetext" : "<string>"
33550 }
33551 }
33552 },
4d47f125
TL
33553 "permissions" : {
33554 "check" : [
33555 "perm",
33556 "/",
33557 [
33558 "Sys.Audit",
33559 "Datastore.Audit"
33560 ],
33561 "any",
33562 1
33563 ]
56122987 33564 },
4d47f125
TL
33565 "protected" : 1,
33566 "proxyto" : "node",
33567 "returns" : {
33568 "items" : {
33569 "properties" : {
5f26e15b 33570 "addr" : {
1e3f8156
TL
33571 "optional" : 1,
33572 "type" : "string"
33573 },
33574 "host" : {
33575 "optional" : 1,
4d47f125
TL
33576 "type" : "string"
33577 },
5f26e15b 33578 "name" : {
4d47f125
TL
33579 "type" : "string"
33580 }
7aacca6f 33581 },
4d47f125
TL
33582 "type" : "object"
33583 },
5f26e15b
TL
33584 "links" : [
33585 {
33586 "href" : "{name}",
33587 "rel" : "child"
33588 }
33589 ],
4d47f125
TL
33590 "type" : "array"
33591 }
4d47f125
TL
33592 }
33593 },
5f26e15b
TL
33594 "leaf" : 0,
33595 "path" : "/nodes/{node}/ceph/mon",
33596 "text" : "mon"
4d47f125
TL
33597 },
33598 {
33599 "children" : [
33600 {
33601 "info" : {
5f26e15b 33602 "POST" : {
e9cd3bd4 33603 "allowtoken" : 1,
5f26e15b
TL
33604 "description" : "Create a Ceph filesystem",
33605 "method" : "POST",
33606 "name" : "createfs",
4d47f125
TL
33607 "parameters" : {
33608 "additionalProperties" : 0,
33609 "properties" : {
5f26e15b 33610 "add-storage" : {
4d47f125 33611 "default" : 0,
5f26e15b 33612 "description" : "Configure the created CephFS as storage for this cluster.",
4d47f125
TL
33613 "optional" : 1,
33614 "type" : "boolean",
33615 "typetext" : "<boolean>"
33616 },
5f26e15b
TL
33617 "name" : {
33618 "default" : "cephfs",
33619 "description" : "The ceph filesystem name.",
33620 "optional" : 1,
33621 "type" : "string",
33622 "typetext" : "<string>"
4d47f125
TL
33623 },
33624 "node" : {
33625 "description" : "The cluster node name.",
33626 "format" : "pve-node",
33627 "type" : "string",
33628 "typetext" : "<string>"
5f26e15b
TL
33629 },
33630 "pg_num" : {
33631 "default" : 128,
33632 "description" : "Number of placement groups for the backing data pool. The metadata pool will use a quarter of this.",
33633 "maximum" : 32768,
33634 "minimum" : 8,
33635 "optional" : 1,
33636 "type" : "integer",
33637 "typetext" : "<integer> (8 - 32768)"
4d47f125
TL
33638 }
33639 }
7aacca6f 33640 },
4d47f125
TL
33641 "permissions" : {
33642 "check" : [
33643 "perm",
33644 "/",
33645 [
33646 "Sys.Modify"
33647 ]
33648 ]
7aacca6f 33649 },
4d47f125
TL
33650 "protected" : 1,
33651 "proxyto" : "node",
33652 "returns" : {
44660702 33653 "type" : "string"
4d47f125
TL
33654 }
33655 }
33656 },
33657 "leaf" : 1,
5f26e15b
TL
33658 "path" : "/nodes/{node}/ceph/fs/{name}",
33659 "text" : "{name}"
4d47f125
TL
33660 }
33661 ],
33662 "info" : {
33663 "GET" : {
e9cd3bd4 33664 "allowtoken" : 1,
5f26e15b 33665 "description" : "Directory index.",
4d47f125 33666 "method" : "GET",
5f26e15b 33667 "name" : "index",
4d47f125
TL
33668 "parameters" : {
33669 "additionalProperties" : 0,
33670 "properties" : {
33671 "node" : {
33672 "description" : "The cluster node name.",
33673 "format" : "pve-node",
33674 "type" : "string",
33675 "typetext" : "<string>"
33676 }
33677 }
33678 },
33679 "permissions" : {
33680 "check" : [
33681 "perm",
33682 "/",
33683 [
33684 "Sys.Audit",
33685 "Datastore.Audit"
33686 ],
33687 "any",
33688 1
33689 ]
33690 },
33691 "protected" : 1,
95895385 33692 "proxyto" : "node",
4d47f125
TL
33693 "returns" : {
33694 "items" : {
33695 "properties" : {
5f26e15b
TL
33696 "data_pool" : {
33697 "description" : "The name of the data pool.",
33698 "type" : "string"
33699 },
33700 "metadata_pool" : {
33701 "description" : "The name of the metadata pool.",
4d47f125
TL
33702 "type" : "string"
33703 },
33704 "name" : {
5f26e15b 33705 "description" : "The ceph filesystem name.",
4d47f125
TL
33706 "type" : "string"
33707 }
7aacca6f 33708 },
4d47f125
TL
33709 "type" : "object"
33710 },
33711 "links" : [
33712 {
33713 "href" : "{name}",
33714 "rel" : "child"
33715 }
33716 ],
33717 "type" : "array"
33718 }
5f26e15b
TL
33719 }
33720 },
33721 "leaf" : 0,
33722 "path" : "/nodes/{node}/ceph/fs",
33723 "text" : "fs"
33724 },
d2656385
TL
33725 {
33726 "children" : [
33727 {
33728 "info" : {
33729 "DELETE" : {
33730 "allowtoken" : 1,
33731 "description" : "Destroy pool",
33732 "method" : "DELETE",
33733 "name" : "destroypool",
33734 "parameters" : {
33735 "additionalProperties" : 0,
33736 "properties" : {
33737 "force" : {
33738 "default" : 0,
33739 "description" : "If true, destroys pool even if in use",
33740 "optional" : 1,
33741 "type" : "boolean",
33742 "typetext" : "<boolean>"
33743 },
33744 "name" : {
33745 "description" : "The name of the pool. It must be unique.",
33746 "type" : "string",
33747 "typetext" : "<string>"
33748 },
33749 "node" : {
33750 "description" : "The cluster node name.",
33751 "format" : "pve-node",
33752 "type" : "string",
33753 "typetext" : "<string>"
33754 },
7af2edf9
TL
33755 "remove_ecprofile" : {
33756 "default" : 1,
33757 "description" : "Remove the erasure code profile. Defaults to true, if applicable.",
33758 "optional" : 1,
33759 "type" : "boolean",
33760 "typetext" : "<boolean>"
33761 },
d2656385
TL
33762 "remove_storages" : {
33763 "default" : 0,
33764 "description" : "Remove all pveceph-managed storages configured for this pool",
33765 "optional" : 1,
33766 "type" : "boolean",
33767 "typetext" : "<boolean>"
33768 }
33769 }
33770 },
33771 "permissions" : {
33772 "check" : [
33773 "perm",
33774 "/",
33775 [
33776 "Sys.Modify"
33777 ]
33778 ]
33779 },
33780 "protected" : 1,
33781 "proxyto" : "node",
33782 "returns" : {
33783 "type" : "string"
33784 }
33785 },
33786 "GET" : {
33787 "allowtoken" : 1,
33788 "description" : "List pool settings.",
33789 "method" : "GET",
33790 "name" : "getpool",
33791 "parameters" : {
33792 "additionalProperties" : 0,
33793 "properties" : {
33794 "name" : {
33795 "description" : "The name of the pool. It must be unique.",
33796 "type" : "string",
33797 "typetext" : "<string>"
33798 },
33799 "node" : {
33800 "description" : "The cluster node name.",
33801 "format" : "pve-node",
33802 "type" : "string",
33803 "typetext" : "<string>"
33804 },
33805 "verbose" : {
33806 "default" : 0,
33807 "description" : "If enabled, will display additional data(eg. statistics).",
33808 "optional" : 1,
33809 "type" : "boolean",
33810 "typetext" : "<boolean>"
33811 }
33812 }
33813 },
33814 "permissions" : {
33815 "check" : [
33816 "perm",
33817 "/",
33818 [
33819 "Sys.Audit",
33820 "Datastore.Audit"
33821 ],
33822 "any",
33823 1
33824 ]
33825 },
33826 "protected" : 1,
33827 "proxyto" : "node",
33828 "returns" : {
33829 "properties" : {
33830 "application" : {
33831 "default" : "rbd",
33832 "description" : "The application of the pool.",
33833 "enum" : [
33834 "rbd",
33835 "cephfs",
33836 "rgw"
33837 ],
33838 "optional" : 1,
33839 "title" : "Application",
33840 "type" : "string"
33841 },
33842 "application_list" : {
33843 "optional" : 1,
33844 "title" : "Application",
33845 "type" : "array"
33846 },
33847 "autoscale_status" : {
33848 "optional" : 1,
33849 "title" : "Autoscale Status",
33850 "type" : "object"
33851 },
33852 "crush_rule" : {
33853 "description" : "The rule to use for mapping object placement in the cluster.",
33854 "optional" : 1,
33855 "title" : "Crush Rule Name",
33856 "type" : "string"
33857 },
33858 "fast_read" : {
33859 "title" : "Fast Read",
33860 "type" : "boolean"
33861 },
33862 "hashpspool" : {
33863 "title" : "hashpspool",
33864 "type" : "boolean"
33865 },
33866 "id" : {
33867 "title" : "ID",
33868 "type" : "integer"
33869 },
33870 "min_size" : {
33871 "default" : 2,
33872 "description" : "Minimum number of replicas per object",
33873 "maximum" : 7,
33874 "minimum" : 1,
33875 "optional" : 1,
33876 "title" : "Min Size",
33877 "type" : "integer"
33878 },
33879 "name" : {
33880 "description" : "The name of the pool. It must be unique.",
33881 "title" : "Name",
33882 "type" : "string"
33883 },
33884 "nodeep-scrub" : {
33885 "title" : "nodeep-scrub",
33886 "type" : "boolean"
33887 },
33888 "nodelete" : {
33889 "title" : "nodelete",
33890 "type" : "boolean"
33891 },
33892 "nopgchange" : {
33893 "title" : "nopgchange",
33894 "type" : "boolean"
33895 },
33896 "noscrub" : {
33897 "title" : "noscrub",
33898 "type" : "boolean"
33899 },
33900 "nosizechange" : {
33901 "title" : "nosizechange",
33902 "type" : "boolean"
33903 },
33904 "pg_autoscale_mode" : {
33905 "default" : "warn",
33906 "description" : "The automatic PG scaling mode of the pool.",
33907 "enum" : [
33908 "on",
33909 "off",
33910 "warn"
33911 ],
33912 "optional" : 1,
33913 "title" : "PG Autoscale Mode",
33914 "type" : "string"
33915 },
33916 "pg_num" : {
33917 "default" : 128,
33918 "description" : "Number of placement groups.",
33919 "maximum" : 32768,
33920 "minimum" : 1,
33921 "optional" : 1,
33922 "title" : "PG Num",
33923 "type" : "integer"
33924 },
33925 "pg_num_min" : {
33926 "description" : "Minimal number of placement groups.",
33927 "maximum" : 32768,
33928 "optional" : 1,
33929 "title" : "min. PG Num",
33930 "type" : "integer"
33931 },
33932 "pgp_num" : {
33933 "title" : "PGP num",
33934 "type" : "integer"
33935 },
33936 "size" : {
33937 "default" : 3,
33938 "description" : "Number of replicas per object",
33939 "maximum" : 7,
33940 "minimum" : 1,
33941 "optional" : 1,
33942 "title" : "Size",
33943 "type" : "integer"
33944 },
33945 "statistics" : {
33946 "optional" : 1,
33947 "title" : "Statistics",
33948 "type" : "object"
33949 },
33950 "target_size" : {
33951 "description" : "The estimated target size of the pool for the PG autoscaler.",
33952 "optional" : 1,
33953 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
33954 "title" : "PG Autoscale Target Size",
33955 "type" : "string"
33956 },
33957 "target_size_ratio" : {
33958 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
33959 "optional" : 1,
33960 "title" : "PG Autoscale Target Ratio",
33961 "type" : "number"
33962 },
33963 "use_gmt_hitset" : {
33964 "title" : "use_gmt_hitset",
33965 "type" : "boolean"
33966 },
33967 "write_fadvise_dontneed" : {
33968 "title" : "write_fadvise_dontneed",
33969 "type" : "boolean"
33970 }
33971 },
33972 "type" : "object"
33973 }
33974 },
33975 "PUT" : {
33976 "allowtoken" : 1,
33977 "description" : "Change POOL settings",
33978 "method" : "PUT",
33979 "name" : "setpool",
33980 "parameters" : {
33981 "additionalProperties" : 0,
33982 "properties" : {
33983 "application" : {
33984 "description" : "The application of the pool.",
33985 "enum" : [
33986 "rbd",
33987 "cephfs",
33988 "rgw"
33989 ],
33990 "optional" : 1,
33991 "title" : "Application",
33992 "type" : "string"
33993 },
33994 "crush_rule" : {
33995 "description" : "The rule to use for mapping object placement in the cluster.",
33996 "optional" : 1,
33997 "title" : "Crush Rule Name",
33998 "type" : "string",
33999 "typetext" : "<string>"
34000 },
34001 "min_size" : {
34002 "description" : "Minimum number of replicas per object",
34003 "maximum" : 7,
34004 "minimum" : 1,
34005 "optional" : 1,
34006 "title" : "Min Size",
34007 "type" : "integer",
34008 "typetext" : "<integer> (1 - 7)"
34009 },
34010 "name" : {
34011 "description" : "The name of the pool. It must be unique.",
34012 "title" : "Name",
34013 "type" : "string",
34014 "typetext" : "<string>"
34015 },
34016 "node" : {
34017 "description" : "The cluster node name.",
34018 "format" : "pve-node",
34019 "type" : "string",
34020 "typetext" : "<string>"
34021 },
34022 "pg_autoscale_mode" : {
34023 "description" : "The automatic PG scaling mode of the pool.",
34024 "enum" : [
34025 "on",
34026 "off",
34027 "warn"
34028 ],
34029 "optional" : 1,
34030 "title" : "PG Autoscale Mode",
34031 "type" : "string"
34032 },
34033 "pg_num" : {
34034 "description" : "Number of placement groups.",
34035 "maximum" : 32768,
34036 "minimum" : 1,
34037 "optional" : 1,
34038 "title" : "PG Num",
34039 "type" : "integer",
34040 "typetext" : "<integer> (1 - 32768)"
34041 },
34042 "pg_num_min" : {
34043 "description" : "Minimal number of placement groups.",
34044 "maximum" : 32768,
34045 "optional" : 1,
34046 "title" : "min. PG Num",
34047 "type" : "integer",
34048 "typetext" : "<integer> (-N - 32768)"
34049 },
34050 "size" : {
34051 "description" : "Number of replicas per object",
34052 "maximum" : 7,
34053 "minimum" : 1,
34054 "optional" : 1,
34055 "title" : "Size",
34056 "type" : "integer",
34057 "typetext" : "<integer> (1 - 7)"
34058 },
34059 "target_size" : {
34060 "description" : "The estimated target size of the pool for the PG autoscaler.",
34061 "optional" : 1,
34062 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
34063 "title" : "PG Autoscale Target Size",
34064 "type" : "string"
34065 },
34066 "target_size_ratio" : {
34067 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
34068 "optional" : 1,
34069 "title" : "PG Autoscale Target Ratio",
34070 "type" : "number",
34071 "typetext" : "<number>"
34072 }
34073 }
34074 },
34075 "permissions" : {
34076 "check" : [
34077 "perm",
34078 "/",
34079 [
34080 "Sys.Modify"
34081 ]
34082 ]
34083 },
34084 "protected" : 1,
34085 "proxyto" : "node",
34086 "returns" : {
34087 "type" : "string"
34088 }
34089 }
34090 },
34091 "leaf" : 1,
34092 "path" : "/nodes/{node}/ceph/pools/{name}",
34093 "text" : "{name}"
34094 }
34095 ],
34096 "info" : {
34097 "GET" : {
34098 "allowtoken" : 1,
34099 "description" : "List all pools.",
34100 "method" : "GET",
34101 "name" : "lspools",
34102 "parameters" : {
34103 "additionalProperties" : 0,
34104 "properties" : {
34105 "node" : {
34106 "description" : "The cluster node name.",
34107 "format" : "pve-node",
34108 "type" : "string",
34109 "typetext" : "<string>"
34110 }
34111 }
34112 },
34113 "permissions" : {
34114 "check" : [
34115 "perm",
34116 "/",
34117 [
34118 "Sys.Audit",
34119 "Datastore.Audit"
34120 ],
34121 "any",
34122 1
34123 ]
34124 },
34125 "protected" : 1,
34126 "proxyto" : "node",
34127 "returns" : {
34128 "items" : {
34129 "properties" : {
81a3384d
TL
34130 "application_metadata" : {
34131 "optional" : 1,
34132 "title" : "Associated Applications",
34133 "type" : "object"
34134 },
d2656385
TL
34135 "autoscale_status" : {
34136 "optional" : 1,
34137 "title" : "Autoscale Status",
34138 "type" : "object"
34139 },
34140 "bytes_used" : {
34141 "title" : "Used",
34142 "type" : "integer"
34143 },
34144 "crush_rule" : {
34145 "title" : "Crush Rule",
34146 "type" : "integer"
34147 },
34148 "crush_rule_name" : {
34149 "title" : "Crush Rule Name",
34150 "type" : "string"
34151 },
34152 "min_size" : {
34153 "title" : "Min Size",
34154 "type" : "integer"
34155 },
34156 "percent_used" : {
34157 "title" : "%-Used",
34158 "type" : "number"
34159 },
34160 "pg_autoscale_mode" : {
34161 "optional" : 1,
34162 "title" : "PG Autoscale Mode",
34163 "type" : "string"
34164 },
34165 "pg_num" : {
34166 "title" : "PG Num",
34167 "type" : "integer"
34168 },
34169 "pg_num_final" : {
34170 "optional" : 1,
34171 "title" : "Optimal PG Num",
34172 "type" : "integer"
34173 },
34174 "pg_num_min" : {
34175 "optional" : 1,
34176 "title" : "min. PG Num",
34177 "type" : "integer"
34178 },
34179 "pool" : {
34180 "title" : "ID",
34181 "type" : "integer"
34182 },
34183 "pool_name" : {
34184 "title" : "Name",
34185 "type" : "string"
34186 },
34187 "size" : {
34188 "title" : "Size",
34189 "type" : "integer"
34190 },
34191 "target_size" : {
34192 "optional" : 1,
34193 "title" : "PG Autoscale Target Size",
34194 "type" : "integer"
34195 },
34196 "target_size_ratio" : {
34197 "optional" : 1,
34198 "title" : "PG Autoscale Target Ratio",
34199 "type" : "number"
e6d66c2f
TL
34200 },
34201 "type" : {
34202 "enum" : [
34203 "replicated",
34204 "erasure",
34205 "unknown"
34206 ],
34207 "title" : "Type",
34208 "type" : "string"
d2656385
TL
34209 }
34210 },
34211 "type" : "object"
34212 },
34213 "links" : [
34214 {
34215 "href" : "{pool_name}",
34216 "rel" : "child"
34217 }
34218 ],
34219 "type" : "array"
34220 }
34221 },
34222 "POST" : {
34223 "allowtoken" : 1,
7af2edf9 34224 "description" : "Create Ceph pool",
d2656385
TL
34225 "method" : "POST",
34226 "name" : "createpool",
34227 "parameters" : {
34228 "additionalProperties" : 0,
34229 "properties" : {
34230 "add_storages" : {
e6d66c2f
TL
34231 "default" : "0; for erasure coded pools: 1",
34232 "description" : "Configure VM and CT storage using the new pool.",
d2656385
TL
34233 "optional" : 1,
34234 "type" : "boolean",
34235 "typetext" : "<boolean>"
34236 },
34237 "application" : {
34238 "default" : "rbd",
34239 "description" : "The application of the pool.",
34240 "enum" : [
34241 "rbd",
34242 "cephfs",
34243 "rgw"
34244 ],
34245 "optional" : 1,
34246 "title" : "Application",
34247 "type" : "string"
34248 },
34249 "crush_rule" : {
34250 "description" : "The rule to use for mapping object placement in the cluster.",
34251 "optional" : 1,
34252 "title" : "Crush Rule Name",
34253 "type" : "string",
34254 "typetext" : "<string>"
34255 },
7af2edf9 34256 "erasure-coding" : {
460359c5 34257 "description" : "Create an erasure coded pool for RBD with an accompaning replicated pool for metadata storage. With EC, the common ceph options 'size', 'min_size' and 'crush_rule' parameters will be applied to the metadata pool.",
7af2edf9
TL
34258 "format" : {
34259 "device-class" : {
34260 "description" : "CRUSH device class. Will create an erasure coded pool plus a replicated pool for metadata.",
34261 "format_description" : "class",
34262 "optional" : 1,
34263 "type" : "string"
34264 },
34265 "failure-domain" : {
e6d66c2f 34266 "default" : "host",
7af2edf9
TL
34267 "description" : "CRUSH failure domain. Default is 'host'. Will create an erasure coded pool plus a replicated pool for metadata.",
34268 "format_description" : "domain",
34269 "optional" : 1,
34270 "type" : "string"
34271 },
34272 "k" : {
34273 "description" : "Number of data chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
e6d66c2f 34274 "minimum" : 2,
7af2edf9
TL
34275 "type" : "integer"
34276 },
34277 "m" : {
34278 "description" : "Number of coding chunks. Will create an erasure coded pool plus a replicated pool for metadata.",
34279 "minimum" : 1,
34280 "type" : "integer"
34281 },
34282 "profile" : {
34283 "description" : "Override the erasure code (EC) profile to use. Will create an erasure coded pool plus a replicated pool for metadata.",
34284 "format_description" : "profile",
34285 "optional" : 1,
34286 "type" : "string"
34287 }
34288 },
34289 "optional" : 1,
34290 "type" : "string",
34291 "typetext" : "k=<integer> ,m=<integer> [,device-class=<class>] [,failure-domain=<domain>] [,profile=<profile>]"
34292 },
d2656385
TL
34293 "min_size" : {
34294 "default" : 2,
34295 "description" : "Minimum number of replicas per object",
34296 "maximum" : 7,
34297 "minimum" : 1,
34298 "optional" : 1,
34299 "title" : "Min Size",
34300 "type" : "integer",
34301 "typetext" : "<integer> (1 - 7)"
34302 },
34303 "name" : {
34304 "description" : "The name of the pool. It must be unique.",
34305 "title" : "Name",
34306 "type" : "string",
34307 "typetext" : "<string>"
34308 },
34309 "node" : {
34310 "description" : "The cluster node name.",
34311 "format" : "pve-node",
34312 "type" : "string",
34313 "typetext" : "<string>"
34314 },
34315 "pg_autoscale_mode" : {
34316 "default" : "warn",
34317 "description" : "The automatic PG scaling mode of the pool.",
34318 "enum" : [
34319 "on",
34320 "off",
34321 "warn"
34322 ],
34323 "optional" : 1,
34324 "title" : "PG Autoscale Mode",
34325 "type" : "string"
34326 },
34327 "pg_num" : {
34328 "default" : 128,
34329 "description" : "Number of placement groups.",
34330 "maximum" : 32768,
34331 "minimum" : 1,
34332 "optional" : 1,
34333 "title" : "PG Num",
34334 "type" : "integer",
34335 "typetext" : "<integer> (1 - 32768)"
34336 },
34337 "pg_num_min" : {
34338 "description" : "Minimal number of placement groups.",
34339 "maximum" : 32768,
34340 "optional" : 1,
34341 "title" : "min. PG Num",
34342 "type" : "integer",
34343 "typetext" : "<integer> (-N - 32768)"
34344 },
34345 "size" : {
34346 "default" : 3,
34347 "description" : "Number of replicas per object",
34348 "maximum" : 7,
34349 "minimum" : 1,
34350 "optional" : 1,
34351 "title" : "Size",
34352 "type" : "integer",
34353 "typetext" : "<integer> (1 - 7)"
34354 },
34355 "target_size" : {
34356 "description" : "The estimated target size of the pool for the PG autoscaler.",
34357 "optional" : 1,
34358 "pattern" : "^(\\d+(\\.\\d+)?)([KMGT])?$",
34359 "title" : "PG Autoscale Target Size",
34360 "type" : "string"
34361 },
34362 "target_size_ratio" : {
34363 "description" : "The estimated target ratio of the pool for the PG autoscaler.",
34364 "optional" : 1,
34365 "title" : "PG Autoscale Target Ratio",
34366 "type" : "number",
34367 "typetext" : "<number>"
34368 }
34369 }
34370 },
34371 "permissions" : {
34372 "check" : [
34373 "perm",
34374 "/",
34375 [
34376 "Sys.Modify"
34377 ]
34378 ]
34379 },
34380 "protected" : 1,
34381 "proxyto" : "node",
34382 "returns" : {
34383 "type" : "string"
34384 }
34385 }
34386 },
34387 "leaf" : 0,
34388 "path" : "/nodes/{node}/ceph/pools",
34389 "text" : "pools"
34390 },
5f26e15b
TL
34391 {
34392 "info" : {
34393 "GET" : {
e9cd3bd4 34394 "allowtoken" : 1,
5f26e15b
TL
34395 "description" : "Get Ceph configuration.",
34396 "method" : "GET",
34397 "name" : "config",
34398 "parameters" : {
34399 "additionalProperties" : 0,
34400 "properties" : {
4d47f125
TL
34401 "node" : {
34402 "description" : "The cluster node name.",
34403 "format" : "pve-node",
34404 "type" : "string",
34405 "typetext" : "<string>"
7aacca6f 34406 }
4d47f125 34407 }
44660702 34408 },
4d47f125
TL
34409 "permissions" : {
34410 "check" : [
34411 "perm",
34412 "/",
34413 [
5f26e15b
TL
34414 "Sys.Audit",
34415 "Datastore.Audit"
34416 ],
34417 "any",
34418 1
4d47f125 34419 ]
56122987 34420 },
95895385 34421 "proxyto" : "node",
4d47f125 34422 "returns" : {
7aacca6f 34423 "type" : "string"
4d47f125
TL
34424 }
34425 }
34426 },
5f26e15b
TL
34427 "leaf" : 1,
34428 "path" : "/nodes/{node}/ceph/config",
34429 "text" : "config"
4d47f125 34430 },
7cbed89a
TL
34431 {
34432 "info" : {
34433 "GET" : {
e9cd3bd4 34434 "allowtoken" : 1,
7cbed89a
TL
34435 "description" : "Get Ceph configuration database.",
34436 "method" : "GET",
34437 "name" : "configdb",
34438 "parameters" : {
34439 "additionalProperties" : 0,
34440 "properties" : {
34441 "node" : {
34442 "description" : "The cluster node name.",
34443 "format" : "pve-node",
34444 "type" : "string",
34445 "typetext" : "<string>"
34446 }
34447 }
34448 },
34449 "permissions" : {
34450 "check" : [
34451 "perm",
34452 "/",
34453 [
34454 "Sys.Audit",
34455 "Datastore.Audit"
34456 ],
34457 "any",
34458 1
34459 ]
34460 },
34461 "protected" : 1,
34462 "proxyto" : "node",
34463 "returns" : {
34464 "items" : {
34465 "properties" : {
34466 "can_update_at_runtime" : {
34467 "type" : "boolean"
34468 },
34469 "level" : {
34470 "type" : "string"
34471 },
34472 "mask" : {
34473 "type" : "string"
34474 },
34475 "name" : {
34476 "type" : "string"
34477 },
34478 "section" : {
34479 "type" : "string"
34480 },
34481 "value" : {
34482 "type" : "string"
34483 }
34484 },
34485 "type" : "object"
34486 },
34487 "type" : "array"
34488 }
34489 }
34490 },
34491 "leaf" : 1,
34492 "path" : "/nodes/{node}/ceph/configdb",
34493 "text" : "configdb"
34494 },
4d47f125
TL
34495 {
34496 "info" : {
34497 "POST" : {
e9cd3bd4 34498 "allowtoken" : 1,
4d47f125
TL
34499 "description" : "Create initial ceph default configuration and setup symlinks.",
34500 "method" : "POST",
34501 "name" : "init",
34502 "parameters" : {
34503 "additionalProperties" : 0,
34504 "properties" : {
e2d681b3
TL
34505 "cluster-network" : {
34506 "description" : "Declare a separate cluster network, OSDs will routeheartbeat, object replication and recovery traffic over it",
34507 "format" : "CIDR",
34508 "maxLength" : 128,
34509 "optional" : 1,
34510 "requires" : "network",
34511 "type" : "string",
34512 "typetext" : "<string>"
34513 },
4d47f125
TL
34514 "disable_cephx" : {
34515 "default" : 0,
1e3f8156 34516 "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 34517 "optional" : 1,
4d47f125
TL
34518 "type" : "boolean",
34519 "typetext" : "<boolean>"
56122987 34520 },
4d47f125
TL
34521 "min_size" : {
34522 "default" : 2,
34523 "description" : "Minimum number of available replicas per object to allow I/O",
34524 "maximum" : 7,
34525 "minimum" : 1,
7aacca6f 34526 "optional" : 1,
4d47f125
TL
34527 "type" : "integer",
34528 "typetext" : "<integer> (1 - 7)"
7aacca6f 34529 },
4d47f125
TL
34530 "network" : {
34531 "description" : "Use specific network for all ceph related traffic",
34532 "format" : "CIDR",
34533 "maxLength" : 128,
5d9c884c 34534 "optional" : 1,
4d47f125
TL
34535 "type" : "string",
34536 "typetext" : "<string>"
5d9c884c 34537 },
4d47f125
TL
34538 "node" : {
34539 "description" : "The cluster node name.",
34540 "format" : "pve-node",
34541 "type" : "string",
34542 "typetext" : "<string>"
7aacca6f 34543 },
4d47f125
TL
34544 "pg_bits" : {
34545 "default" : 6,
34546 "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.",
34547 "maximum" : 14,
34548 "minimum" : 6,
de0983cb 34549 "optional" : 1,
4d47f125
TL
34550 "type" : "integer",
34551 "typetext" : "<integer> (6 - 14)"
de0983cb 34552 },
44660702 34553 "size" : {
4d47f125
TL
34554 "default" : 3,
34555 "description" : "Targeted number of replicas per object",
34556 "maximum" : 7,
34557 "minimum" : 1,
7aacca6f 34558 "optional" : 1,
4d47f125
TL
34559 "type" : "integer",
34560 "typetext" : "<integer> (1 - 7)"
56122987 34561 }
4d47f125 34562 }
44660702 34563 },
4d47f125
TL
34564 "permissions" : {
34565 "check" : [
34566 "perm",
34567 "/",
34568 [
34569 "Sys.Modify"
34570 ]
34571 ]
5da3d723 34572 },
4d47f125
TL
34573 "protected" : 1,
34574 "proxyto" : "node",
34575 "returns" : {
34576 "type" : "null"
34577 }
34578 }
34579 },
34580 "leaf" : 1,
34581 "path" : "/nodes/{node}/ceph/init",
34582 "text" : "init"
34583 },
4d47f125
TL
34584 {
34585 "info" : {
34586 "POST" : {
e9cd3bd4 34587 "allowtoken" : 1,
4d47f125
TL
34588 "description" : "Stop ceph services.",
34589 "method" : "POST",
34590 "name" : "stop",
34591 "parameters" : {
34592 "additionalProperties" : 0,
34593 "properties" : {
34594 "node" : {
34595 "description" : "The cluster node name.",
34596 "format" : "pve-node",
34597 "type" : "string",
34598 "typetext" : "<string>"
34599 },
34600 "service" : {
e2d681b3 34601 "default" : "ceph.target",
4d47f125
TL
34602 "description" : "Ceph service name.",
34603 "optional" : 1,
c5aa7e14 34604 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
34605 "type" : "string"
34606 }
34607 }
7aacca6f 34608 },
4d47f125
TL
34609 "permissions" : {
34610 "check" : [
34611 "perm",
34612 "/",
34613 [
34614 "Sys.Modify"
34615 ]
34616 ]
7aacca6f 34617 },
4d47f125
TL
34618 "protected" : 1,
34619 "proxyto" : "node",
34620 "returns" : {
34621 "type" : "string"
34622 }
34623 }
34624 },
34625 "leaf" : 1,
34626 "path" : "/nodes/{node}/ceph/stop",
34627 "text" : "stop"
34628 },
34629 {
34630 "info" : {
34631 "POST" : {
e9cd3bd4 34632 "allowtoken" : 1,
4d47f125
TL
34633 "description" : "Start ceph services.",
34634 "method" : "POST",
34635 "name" : "start",
34636 "parameters" : {
34637 "additionalProperties" : 0,
34638 "properties" : {
34639 "node" : {
34640 "description" : "The cluster node name.",
34641 "format" : "pve-node",
34642 "type" : "string",
34643 "typetext" : "<string>"
34644 },
34645 "service" : {
e2d681b3 34646 "default" : "ceph.target",
4d47f125
TL
34647 "description" : "Ceph service name.",
34648 "optional" : 1,
c5aa7e14 34649 "pattern" : "(ceph|mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
4d47f125
TL
34650 "type" : "string"
34651 }
34652 }
44660702 34653 },
4d47f125
TL
34654 "permissions" : {
34655 "check" : [
34656 "perm",
34657 "/",
34658 [
34659 "Sys.Modify"
34660 ]
34661 ]
44660702 34662 },
4d47f125
TL
34663 "protected" : 1,
34664 "proxyto" : "node",
34665 "returns" : {
34666 "type" : "string"
44660702 34667 }
7aacca6f
DM
34668 }
34669 },
4d47f125
TL
34670 "leaf" : 1,
34671 "path" : "/nodes/{node}/ceph/start",
34672 "text" : "start"
34673 },
e2d681b3
TL
34674 {
34675 "info" : {
34676 "POST" : {
e9cd3bd4 34677 "allowtoken" : 1,
e2d681b3
TL
34678 "description" : "Restart ceph services.",
34679 "method" : "POST",
34680 "name" : "restart",
34681 "parameters" : {
34682 "additionalProperties" : 0,
34683 "properties" : {
34684 "node" : {
34685 "description" : "The cluster node name.",
34686 "format" : "pve-node",
34687 "type" : "string",
34688 "typetext" : "<string>"
34689 },
34690 "service" : {
34691 "default" : "ceph.target",
34692 "description" : "Ceph service name.",
34693 "optional" : 1,
c5aa7e14 34694 "pattern" : "(mon|mds|osd|mgr)(\\.[a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)?",
e2d681b3
TL
34695 "type" : "string"
34696 }
34697 }
34698 },
34699 "permissions" : {
34700 "check" : [
34701 "perm",
34702 "/",
34703 [
34704 "Sys.Modify"
34705 ]
34706 ]
34707 },
34708 "protected" : 1,
34709 "proxyto" : "node",
34710 "returns" : {
34711 "type" : "string"
34712 }
34713 }
34714 },
34715 "leaf" : 1,
34716 "path" : "/nodes/{node}/ceph/restart",
34717 "text" : "restart"
34718 },
4d47f125
TL
34719 {
34720 "info" : {
34721 "GET" : {
e9cd3bd4 34722 "allowtoken" : 1,
4d47f125
TL
34723 "description" : "Get ceph status.",
34724 "method" : "GET",
34725 "name" : "status",
34726 "parameters" : {
34727 "additionalProperties" : 0,
34728 "properties" : {
34729 "node" : {
34730 "description" : "The cluster node name.",
34731 "format" : "pve-node",
34732 "type" : "string",
34733 "typetext" : "<string>"
34734 }
34735 }
34736 },
34737 "permissions" : {
34738 "check" : [
34739 "perm",
34740 "/",
34741 [
34742 "Sys.Audit",
34743 "Datastore.Audit"
34744 ],
34745 "any",
34746 1
34747 ]
34748 },
34749 "protected" : 1,
34750 "proxyto" : "node",
34751 "returns" : {
d2656385 34752 "type" : "object"
44660702 34753 }
56122987 34754 }
44660702 34755 },
d2656385
TL
34756 "leaf" : 1,
34757 "path" : "/nodes/{node}/ceph/status",
34758 "text" : "status"
7aacca6f 34759 },
56122987 34760 {
56122987
DM
34761 "info" : {
34762 "GET" : {
e9cd3bd4 34763 "allowtoken" : 1,
4d47f125 34764 "description" : "Get OSD crush map",
44660702 34765 "method" : "GET",
4d47f125 34766 "name" : "crush",
56122987 34767 "parameters" : {
7aacca6f 34768 "additionalProperties" : 0,
56122987 34769 "properties" : {
56122987 34770 "node" : {
7aacca6f 34771 "description" : "The cluster node name.",
44660702 34772 "format" : "pve-node",
013dc89f
DM
34773 "type" : "string",
34774 "typetext" : "<string>"
56122987 34775 }
7aacca6f 34776 }
56122987 34777 },
56122987
DM
34778 "permissions" : {
34779 "check" : [
34780 "perm",
34781 "/",
34782 [
34783 "Sys.Audit",
34784 "Datastore.Audit"
34785 ],
34786 "any",
34787 1
34788 ]
44660702 34789 },
4d47f125
TL
34790 "protected" : 1,
34791 "proxyto" : "node",
44660702
DM
34792 "returns" : {
34793 "type" : "string"
7aacca6f
DM
34794 }
34795 }
44660702
DM
34796 },
34797 "leaf" : 1,
4d47f125
TL
34798 "path" : "/nodes/{node}/ceph/crush",
34799 "text" : "crush"
7aacca6f
DM
34800 },
34801 {
7aacca6f
DM
34802 "info" : {
34803 "GET" : {
e9cd3bd4 34804 "allowtoken" : 1,
4d47f125 34805 "description" : "Read ceph log",
7aacca6f 34806 "method" : "GET",
4d47f125 34807 "name" : "log",
7aacca6f
DM
34808 "parameters" : {
34809 "additionalProperties" : 0,
34810 "properties" : {
4d47f125
TL
34811 "limit" : {
34812 "minimum" : 0,
34813 "optional" : 1,
34814 "type" : "integer",
34815 "typetext" : "<integer> (0 - N)"
34816 },
7aacca6f 34817 "node" : {
7aacca6f 34818 "description" : "The cluster node name.",
44660702 34819 "format" : "pve-node",
013dc89f
DM
34820 "type" : "string",
34821 "typetext" : "<string>"
4d47f125
TL
34822 },
34823 "start" : {
34824 "minimum" : 0,
34825 "optional" : 1,
34826 "type" : "integer",
34827 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
34828 }
34829 }
34830 },
44660702
DM
34831 "permissions" : {
34832 "check" : [
34833 "perm",
4d47f125 34834 "/nodes/{node}",
44660702 34835 [
4d47f125
TL
34836 "Sys.Syslog"
34837 ]
44660702
DM
34838 ]
34839 },
7aacca6f 34840 "protected" : 1,
44660702 34841 "proxyto" : "node",
7aacca6f
DM
34842 "returns" : {
34843 "items" : {
34844 "properties" : {
4d47f125
TL
34845 "n" : {
34846 "description" : "Line number",
34847 "type" : "integer"
56122987 34848 },
4d47f125
TL
34849 "t" : {
34850 "description" : "Line text",
56122987
DM
34851 "type" : "string"
34852 }
7aacca6f
DM
34853 },
34854 "type" : "object"
56122987
DM
34855 },
34856 "type" : "array"
44660702 34857 }
4d47f125
TL
34858 }
34859 },
34860 "leaf" : 1,
34861 "path" : "/nodes/{node}/ceph/log",
34862 "text" : "log"
34863 },
34864 {
34865 "info" : {
34866 "GET" : {
e9cd3bd4 34867 "allowtoken" : 1,
4d47f125
TL
34868 "description" : "List ceph rules.",
34869 "method" : "GET",
34870 "name" : "rules",
44660702
DM
34871 "parameters" : {
34872 "additionalProperties" : 0,
34873 "properties" : {
34874 "node" : {
34875 "description" : "The cluster node name.",
34876 "format" : "pve-node",
013dc89f
DM
34877 "type" : "string",
34878 "typetext" : "<string>"
44660702
DM
34879 }
34880 }
34881 },
7aacca6f
DM
34882 "permissions" : {
34883 "check" : [
34884 "perm",
34885 "/",
34886 [
4d47f125
TL
34887 "Sys.Audit",
34888 "Datastore.Audit"
34889 ],
34890 "any",
34891 1
7aacca6f
DM
34892 ]
34893 },
44660702 34894 "protected" : 1,
7aacca6f 34895 "proxyto" : "node",
56122987 34896 "returns" : {
4d47f125
TL
34897 "items" : {
34898 "properties" : {},
34899 "type" : "object"
34900 },
34901 "links" : [
34902 {
34903 "href" : "{name}",
34904 "rel" : "child"
34905 }
34906 ],
34907 "type" : "array"
44660702 34908 }
56122987 34909 }
44660702 34910 },
4d47f125
TL
34911 "leaf" : 1,
34912 "path" : "/nodes/{node}/ceph/rules",
34913 "text" : "rules"
81a3384d
TL
34914 },
34915 {
34916 "info" : {
34917 "GET" : {
34918 "allowtoken" : 1,
34919 "description" : "Heuristical check if it is safe to perform an action.",
34920 "method" : "GET",
34921 "name" : "cmd_safety",
34922 "parameters" : {
34923 "additionalProperties" : 0,
34924 "properties" : {
34925 "action" : {
34926 "description" : "Action to check",
34927 "enum" : [
34928 "stop",
34929 "destroy"
34930 ],
34931 "type" : "string"
34932 },
34933 "id" : {
34934 "description" : "ID of the service",
34935 "type" : "string",
34936 "typetext" : "<string>"
34937 },
34938 "node" : {
34939 "description" : "The cluster node name.",
34940 "format" : "pve-node",
34941 "type" : "string",
34942 "typetext" : "<string>"
34943 },
34944 "service" : {
34945 "description" : "Service type",
34946 "enum" : [
34947 "osd",
34948 "mon",
34949 "mds"
34950 ],
34951 "type" : "string"
34952 }
34953 }
34954 },
34955 "permissions" : {
34956 "check" : [
34957 "perm",
34958 "/",
34959 [
34960 "Sys.audit"
34961 ]
34962 ]
34963 },
34964 "protected" : 1,
34965 "proxyto" : "node",
34966 "returns" : {
34967 "properties" : {
34968 "safe" : {
34969 "description" : "If it is safe to run the command.",
34970 "type" : "boolean"
34971 },
34972 "status" : {
34973 "description" : "Status message given by Ceph.",
34974 "optional" : 1,
34975 "type" : "string"
34976 }
34977 },
34978 "type" : "object"
34979 }
34980 }
34981 },
34982 "leaf" : 1,
34983 "path" : "/nodes/{node}/ceph/cmd-safety",
34984 "text" : "cmd-safety"
4d47f125
TL
34985 }
34986 ],
34987 "info" : {
34988 "GET" : {
e9cd3bd4 34989 "allowtoken" : 1,
4d47f125
TL
34990 "description" : "Directory index.",
34991 "method" : "GET",
34992 "name" : "index",
34993 "parameters" : {
34994 "additionalProperties" : 0,
34995 "properties" : {
34996 "node" : {
34997 "description" : "The cluster node name.",
34998 "format" : "pve-node",
34999 "type" : "string",
35000 "typetext" : "<string>"
35001 }
35002 }
35003 },
35004 "permissions" : {
35005 "check" : [
35006 "perm",
35007 "/",
35008 [
35009 "Sys.Audit",
35010 "Datastore.Audit"
35011 ],
35012 "any",
35013 1
35014 ]
35015 },
35016 "returns" : {
35017 "items" : {
35018 "properties" : {},
35019 "type" : "object"
35020 },
35021 "links" : [
35022 {
35023 "href" : "{name}",
35024 "rel" : "child"
35025 }
35026 ],
35027 "type" : "array"
35028 }
35029 }
35030 },
35031 "leaf" : 0,
35032 "path" : "/nodes/{node}/ceph",
35033 "text" : "ceph"
35034 },
35035 {
35036 "children" : [
e7084ef7
TL
35037 {
35038 "info" : {
35039 "GET" : {
35040 "allowtoken" : 1,
35041 "description" : "Get the currently configured vzdump defaults.",
35042 "method" : "GET",
35043 "name" : "defaults",
35044 "parameters" : {
35045 "additionalProperties" : 0,
35046 "properties" : {
35047 "node" : {
35048 "description" : "The cluster node name.",
35049 "format" : "pve-node",
35050 "type" : "string",
35051 "typetext" : "<string>"
35052 },
35053 "storage" : {
35054 "description" : "The storage identifier.",
35055 "format" : "pve-storage-id",
35056 "optional" : 1,
35057 "type" : "string",
35058 "typetext" : "<string>"
35059 }
35060 }
35061 },
35062 "permissions" : {
35063 "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.",
35064 "user" : "all"
35065 },
35066 "proxyto" : "node",
35067 "returns" : {
35068 "additionalProperties" : 0,
35069 "properties" : {
35070 "all" : {
35071 "default" : 0,
35072 "description" : "Backup all known guest systems on this host.",
35073 "optional" : 1,
35074 "type" : "boolean"
35075 },
35076 "bwlimit" : {
35077 "default" : 0,
35078 "description" : "Limit I/O bandwidth (KBytes per second).",
35079 "minimum" : 0,
35080 "optional" : 1,
35081 "type" : "integer"
35082 },
35083 "compress" : {
35084 "default" : "0",
35085 "description" : "Compress dump file.",
35086 "enum" : [
35087 "0",
35088 "1",
35089 "gzip",
35090 "lzo",
35091 "zstd"
35092 ],
35093 "optional" : 1,
35094 "type" : "string"
35095 },
35096 "dumpdir" : {
35097 "description" : "Store resulting files to specified directory.",
35098 "optional" : 1,
35099 "type" : "string"
35100 },
35101 "exclude" : {
35102 "description" : "Exclude specified guest systems (assumes --all)",
35103 "format" : "pve-vmid-list",
35104 "optional" : 1,
35105 "type" : "string"
35106 },
35107 "exclude-path" : {
35108 "description" : "Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory.",
35109 "format" : "string-alist",
35110 "optional" : 1,
35111 "type" : "string"
35112 },
35113 "ionice" : {
35114 "default" : 7,
35115 "description" : "Set CFQ ionice priority.",
35116 "maximum" : 8,
35117 "minimum" : 0,
35118 "optional" : 1,
35119 "type" : "integer"
35120 },
35121 "lockwait" : {
35122 "default" : 180,
35123 "description" : "Maximal time to wait for the global lock (minutes).",
35124 "minimum" : 0,
35125 "optional" : 1,
35126 "type" : "integer"
35127 },
35128 "mailnotification" : {
35129 "default" : "always",
35130 "description" : "Specify when to send an email",
35131 "enum" : [
35132 "always",
35133 "failure"
35134 ],
35135 "optional" : 1,
35136 "type" : "string"
35137 },
35138 "mailto" : {
35139 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
35140 "format" : "email-or-username-list",
35141 "optional" : 1,
35142 "type" : "string"
35143 },
35144 "maxfiles" : {
0695fdaf 35145 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
e7084ef7
TL
35146 "minimum" : 1,
35147 "optional" : 1,
35148 "type" : "integer"
35149 },
35150 "mode" : {
35151 "default" : "snapshot",
35152 "description" : "Backup mode.",
35153 "enum" : [
35154 "snapshot",
35155 "suspend",
35156 "stop"
35157 ],
35158 "optional" : 1,
35159 "type" : "string"
35160 },
35161 "node" : {
35162 "description" : "Only run if executed on this node.",
35163 "format" : "pve-node",
35164 "optional" : 1,
35165 "type" : "string"
35166 },
7af2edf9 35167 "notes-template" : {
4e7f60c2
TL
35168 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
35169 "maxLength" : 1024,
7af2edf9
TL
35170 "optional" : 1,
35171 "requires" : "storage",
35172 "type" : "string"
35173 },
4e7f60c2
TL
35174 "performance" : {
35175 "description" : "Other performance-related settings.",
35176 "format" : "backup-performance",
35177 "optional" : 1,
35178 "type" : "string"
35179 },
e7084ef7
TL
35180 "pigz" : {
35181 "default" : 0,
35182 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
35183 "optional" : 1,
35184 "type" : "integer"
35185 },
35186 "pool" : {
35187 "description" : "Backup all known guest systems included in the specified pool.",
35188 "optional" : 1,
35189 "type" : "string"
35190 },
7af2edf9
TL
35191 "protected" : {
35192 "description" : "If true, mark backup(s) as protected.",
35193 "optional" : 1,
35194 "requires" : "storage",
35195 "type" : "boolean"
35196 },
e7084ef7 35197 "prune-backups" : {
0695fdaf 35198 "default" : "keep-all=1",
e7084ef7
TL
35199 "description" : "Use these retention options instead of those from the storage configuration.",
35200 "format" : "prune-backups",
35201 "optional" : 1,
35202 "type" : "string"
35203 },
35204 "quiet" : {
35205 "default" : 0,
35206 "description" : "Be quiet.",
35207 "optional" : 1,
35208 "type" : "boolean"
35209 },
35210 "remove" : {
35211 "default" : 1,
0695fdaf 35212 "description" : "Prune older backups according to 'prune-backups'.",
e7084ef7
TL
35213 "optional" : 1,
35214 "type" : "boolean"
35215 },
35216 "script" : {
35217 "description" : "Use specified hook script.",
35218 "optional" : 1,
35219 "type" : "string"
35220 },
e7084ef7
TL
35221 "stdexcludes" : {
35222 "default" : 1,
35223 "description" : "Exclude temporary files and logs.",
35224 "optional" : 1,
35225 "type" : "boolean"
35226 },
35227 "stop" : {
35228 "default" : 0,
35229 "description" : "Stop running backup jobs on this host.",
35230 "optional" : 1,
35231 "type" : "boolean"
35232 },
35233 "stopwait" : {
35234 "default" : 10,
35235 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
35236 "minimum" : 0,
35237 "optional" : 1,
35238 "type" : "integer"
35239 },
35240 "storage" : {
35241 "description" : "Store resulting file to this storage.",
35242 "format" : "pve-storage-id",
35243 "optional" : 1,
35244 "type" : "string"
35245 },
35246 "tmpdir" : {
35247 "description" : "Store temporary files to specified directory.",
35248 "optional" : 1,
35249 "type" : "string"
35250 },
35251 "vmid" : {
35252 "description" : "The ID of the guest system you want to backup.",
35253 "format" : "pve-vmid-list",
35254 "optional" : 1,
35255 "type" : "string"
35256 },
35257 "zstd" : {
35258 "default" : 1,
35259 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
35260 "optional" : 1,
35261 "type" : "integer"
35262 }
35263 },
35264 "type" : "object"
35265 }
35266 }
35267 },
35268 "leaf" : 1,
35269 "path" : "/nodes/{node}/vzdump/defaults",
35270 "text" : "defaults"
35271 },
56122987
DM
35272 {
35273 "info" : {
4d47f125 35274 "GET" : {
e9cd3bd4 35275 "allowtoken" : 1,
4d47f125
TL
35276 "description" : "Extract configuration from vzdump backup archive.",
35277 "method" : "GET",
35278 "name" : "extractconfig",
35279 "parameters" : {
35280 "additionalProperties" : 0,
35281 "properties" : {
44660702
DM
35282 "node" : {
35283 "description" : "The cluster node name.",
35284 "format" : "pve-node",
013dc89f
DM
35285 "type" : "string",
35286 "typetext" : "<string>"
44660702 35287 },
4d47f125
TL
35288 "volume" : {
35289 "description" : "Volume identifier",
35290 "type" : "string",
35291 "typetext" : "<string>"
44660702
DM
35292 }
35293 }
7aacca6f 35294 },
56122987 35295 "permissions" : {
4d47f125
TL
35296 "description" : "The user needs 'VM.Backup' permissions on the backed up guest ID, and 'Datastore.AllocateSpace' on the backup storage.",
35297 "user" : "all"
56122987 35298 },
7aacca6f 35299 "protected" : 1,
44660702
DM
35300 "proxyto" : "node",
35301 "returns" : {
4d47f125 35302 "type" : "string"
7aacca6f
DM
35303 }
35304 }
35305 },
7aacca6f 35306 "leaf" : 1,
4d47f125
TL
35307 "path" : "/nodes/{node}/vzdump/extractconfig",
35308 "text" : "extractconfig"
35309 }
35310 ],
35311 "info" : {
35312 "POST" : {
e9cd3bd4 35313 "allowtoken" : 1,
4d47f125
TL
35314 "description" : "Create backup.",
35315 "method" : "POST",
35316 "name" : "vzdump",
35317 "parameters" : {
35318 "additionalProperties" : 0,
35319 "properties" : {
35320 "all" : {
35321 "default" : 0,
35322 "description" : "Backup all known guest systems on this host.",
35323 "optional" : 1,
35324 "type" : "boolean",
35325 "typetext" : "<boolean>"
35326 },
35327 "bwlimit" : {
35328 "default" : 0,
35329 "description" : "Limit I/O bandwidth (KBytes per second).",
35330 "minimum" : 0,
35331 "optional" : 1,
35332 "type" : "integer",
35333 "typetext" : "<integer> (0 - N)"
35334 },
35335 "compress" : {
35336 "default" : "0",
35337 "description" : "Compress dump file.",
35338 "enum" : [
35339 "0",
35340 "1",
35341 "gzip",
c5aa7e14
TL
35342 "lzo",
35343 "zstd"
4d47f125
TL
35344 ],
35345 "optional" : 1,
35346 "type" : "string"
35347 },
35348 "dumpdir" : {
35349 "description" : "Store resulting files to specified directory.",
35350 "optional" : 1,
35351 "type" : "string",
35352 "typetext" : "<string>"
35353 },
35354 "exclude" : {
35355 "description" : "Exclude specified guest systems (assumes --all)",
35356 "format" : "pve-vmid-list",
35357 "optional" : 1,
35358 "type" : "string",
35359 "typetext" : "<string>"
35360 },
35361 "exclude-path" : {
d2656385 35362 "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
35363 "format" : "string-alist",
35364 "optional" : 1,
35365 "type" : "string",
35366 "typetext" : "<string>"
35367 },
35368 "ionice" : {
35369 "default" : 7,
35370 "description" : "Set CFQ ionice priority.",
35371 "maximum" : 8,
35372 "minimum" : 0,
35373 "optional" : 1,
35374 "type" : "integer",
35375 "typetext" : "<integer> (0 - 8)"
35376 },
35377 "lockwait" : {
35378 "default" : 180,
35379 "description" : "Maximal time to wait for the global lock (minutes).",
35380 "minimum" : 0,
35381 "optional" : 1,
35382 "type" : "integer",
35383 "typetext" : "<integer> (0 - N)"
35384 },
35385 "mailnotification" : {
35386 "default" : "always",
35387 "description" : "Specify when to send an email",
35388 "enum" : [
35389 "always",
35390 "failure"
35391 ],
35392 "optional" : 1,
35393 "type" : "string"
35394 },
35395 "mailto" : {
d2656385
TL
35396 "description" : "Comma-separated list of email addresses or users that should receive email notifications.",
35397 "format" : "email-or-username-list",
4d47f125
TL
35398 "optional" : 1,
35399 "type" : "string",
35400 "typetext" : "<string>"
35401 },
35402 "maxfiles" : {
0695fdaf 35403 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per guest system.",
4d47f125
TL
35404 "minimum" : 1,
35405 "optional" : 1,
35406 "type" : "integer",
35407 "typetext" : "<integer> (1 - N)"
35408 },
35409 "mode" : {
35410 "default" : "snapshot",
35411 "description" : "Backup mode.",
35412 "enum" : [
35413 "snapshot",
35414 "suspend",
35415 "stop"
35416 ],
35417 "optional" : 1,
35418 "type" : "string"
35419 },
35420 "node" : {
35421 "description" : "Only run if executed on this node.",
35422 "format" : "pve-node",
35423 "optional" : 1,
35424 "type" : "string",
35425 "typetext" : "<string>"
35426 },
7af2edf9 35427 "notes-template" : {
4e7f60c2
TL
35428 "description" : "Template string for generating notes for the backup(s). It can contain variables which will be replaced by their values. Currently supported are {{cluster}}, {{guestname}}, {{node}}, and {{vmid}}, but more might be added in the future. Needs to be a single line, newline and backslash need to be escaped as '\\n' and '\\\\' respectively.",
35429 "maxLength" : 1024,
7af2edf9
TL
35430 "optional" : 1,
35431 "requires" : "storage",
35432 "type" : "string",
35433 "typetext" : "<string>"
35434 },
4e7f60c2
TL
35435 "performance" : {
35436 "description" : "Other performance-related settings.",
35437 "format" : "backup-performance",
35438 "optional" : 1,
35439 "type" : "string",
35440 "typetext" : "[max-workers=<integer>]"
35441 },
4d47f125
TL
35442 "pigz" : {
35443 "default" : 0,
35444 "description" : "Use pigz instead of gzip when N>0. N=1 uses half of cores, N>1 uses N as thread count.",
35445 "optional" : 1,
35446 "type" : "integer",
35447 "typetext" : "<integer>"
35448 },
9226ccbc
TL
35449 "pool" : {
35450 "description" : "Backup all known guest systems included in the specified pool.",
35451 "optional" : 1,
35452 "type" : "string",
35453 "typetext" : "<string>"
35454 },
7af2edf9
TL
35455 "protected" : {
35456 "description" : "If true, mark backup(s) as protected.",
35457 "optional" : 1,
35458 "requires" : "storage",
35459 "type" : "boolean",
35460 "typetext" : "<boolean>"
35461 },
739d4d64 35462 "prune-backups" : {
0695fdaf 35463 "default" : "keep-all=1",
739d4d64
TL
35464 "description" : "Use these retention options instead of those from the storage configuration.",
35465 "format" : "prune-backups",
35466 "optional" : 1,
35467 "type" : "string",
4772952b 35468 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 35469 },
4d47f125
TL
35470 "quiet" : {
35471 "default" : 0,
35472 "description" : "Be quiet.",
35473 "optional" : 1,
35474 "type" : "boolean",
35475 "typetext" : "<boolean>"
35476 },
35477 "remove" : {
35478 "default" : 1,
0695fdaf 35479 "description" : "Prune older backups according to 'prune-backups'.",
4d47f125
TL
35480 "optional" : 1,
35481 "type" : "boolean",
35482 "typetext" : "<boolean>"
35483 },
35484 "script" : {
35485 "description" : "Use specified hook script.",
35486 "optional" : 1,
35487 "type" : "string",
35488 "typetext" : "<string>"
35489 },
4d47f125
TL
35490 "stdexcludes" : {
35491 "default" : 1,
35492 "description" : "Exclude temporary files and logs.",
35493 "optional" : 1,
35494 "type" : "boolean",
35495 "typetext" : "<boolean>"
35496 },
35497 "stdout" : {
35498 "description" : "Write tar to stdout, not to a file.",
35499 "optional" : 1,
35500 "type" : "boolean",
35501 "typetext" : "<boolean>"
35502 },
35503 "stop" : {
35504 "default" : 0,
1e3f8156 35505 "description" : "Stop running backup jobs on this host.",
4d47f125
TL
35506 "optional" : 1,
35507 "type" : "boolean",
35508 "typetext" : "<boolean>"
35509 },
35510 "stopwait" : {
35511 "default" : 10,
35512 "description" : "Maximal time to wait until a guest system is stopped (minutes).",
35513 "minimum" : 0,
35514 "optional" : 1,
35515 "type" : "integer",
35516 "typetext" : "<integer> (0 - N)"
35517 },
35518 "storage" : {
35519 "description" : "Store resulting file to this storage.",
35520 "format" : "pve-storage-id",
35521 "optional" : 1,
35522 "type" : "string",
35523 "typetext" : "<string>"
35524 },
35525 "tmpdir" : {
35526 "description" : "Store temporary files to specified directory.",
35527 "optional" : 1,
35528 "type" : "string",
35529 "typetext" : "<string>"
35530 },
35531 "vmid" : {
35532 "description" : "The ID of the guest system you want to backup.",
35533 "format" : "pve-vmid-list",
35534 "optional" : 1,
35535 "type" : "string",
35536 "typetext" : "<string>"
c5aa7e14
TL
35537 },
35538 "zstd" : {
35539 "default" : 1,
35540 "description" : "Zstd threads. N=0 uses half of the available cores, N>0 uses N as thread count.",
35541 "optional" : 1,
35542 "type" : "integer",
35543 "typetext" : "<integer>"
4d47f125
TL
35544 }
35545 }
35546 },
35547 "permissions" : {
4e7f60c2 35548 "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', 'performance' and 'ionice' parameters are restricted to the 'root@pam' user.",
4d47f125
TL
35549 "user" : "all"
35550 },
35551 "protected" : 1,
35552 "proxyto" : "node",
35553 "returns" : {
35554 "type" : "string"
35555 }
35556 }
35557 },
35558 "leaf" : 0,
35559 "path" : "/nodes/{node}/vzdump",
35560 "text" : "vzdump"
35561 },
35562 {
35563 "children" : [
2489d6df
WB
35564 {
35565 "children" : [
35566 {
35567 "info" : {
4d47f125 35568 "GET" : {
e9cd3bd4 35569 "allowtoken" : 1,
4d47f125
TL
35570 "description" : "Read service properties",
35571 "method" : "GET",
35572 "name" : "service_state",
2489d6df
WB
35573 "parameters" : {
35574 "additionalProperties" : 0,
35575 "properties" : {
2489d6df
WB
35576 "node" : {
35577 "description" : "The cluster node name.",
35578 "format" : "pve-node",
35579 "type" : "string",
35580 "typetext" : "<string>"
4d47f125
TL
35581 },
35582 "service" : {
35583 "description" : "Service ID",
35584 "enum" : [
5370fa8c 35585 "chrony",
4d47f125 35586 "corosync",
5370fa8c
TL
35587 "cron",
35588 "ksmtuned",
35589 "postfix",
35590 "pve-cluster",
4d47f125 35591 "pve-firewall",
4d47f125
TL
35592 "pve-ha-crm",
35593 "pve-ha-lrm",
5370fa8c
TL
35594 "pvedaemon",
35595 "pvefw-logger",
35596 "pveproxy",
35597 "pvescheduler",
35598 "pvestatd",
35599 "spiceproxy",
4d47f125
TL
35600 "sshd",
35601 "syslog",
8f4d9c87 35602 "systemd-journald",
5370fa8c 35603 "systemd-timesyncd"
4d47f125
TL
35604 ],
35605 "type" : "string"
2489d6df
WB
35606 }
35607 }
35608 },
35609 "permissions" : {
35610 "check" : [
35611 "perm",
4d47f125 35612 "/nodes/{node}",
2489d6df 35613 [
4d47f125 35614 "Sys.Audit"
2489d6df
WB
35615 ]
35616 ]
35617 },
35618 "protected" : 1,
35619 "proxyto" : "node",
35620 "returns" : {
4d47f125 35621 "type" : "object"
2489d6df
WB
35622 }
35623 }
35624 },
35625 "leaf" : 1,
4d47f125
TL
35626 "path" : "/nodes/{node}/services/{service}/state",
35627 "text" : "state"
35628 },
35629 {
35630 "info" : {
35631 "POST" : {
e9cd3bd4 35632 "allowtoken" : 1,
4d47f125
TL
35633 "description" : "Start service.",
35634 "method" : "POST",
35635 "name" : "service_start",
35636 "parameters" : {
35637 "additionalProperties" : 0,
35638 "properties" : {
35639 "node" : {
35640 "description" : "The cluster node name.",
35641 "format" : "pve-node",
35642 "type" : "string",
35643 "typetext" : "<string>"
35644 },
35645 "service" : {
35646 "description" : "Service ID",
35647 "enum" : [
5370fa8c 35648 "chrony",
4d47f125 35649 "corosync",
5370fa8c
TL
35650 "cron",
35651 "ksmtuned",
35652 "postfix",
35653 "pve-cluster",
4d47f125 35654 "pve-firewall",
4d47f125
TL
35655 "pve-ha-crm",
35656 "pve-ha-lrm",
5370fa8c
TL
35657 "pvedaemon",
35658 "pvefw-logger",
35659 "pveproxy",
35660 "pvescheduler",
35661 "pvestatd",
35662 "spiceproxy",
4d47f125
TL
35663 "sshd",
35664 "syslog",
8f4d9c87 35665 "systemd-journald",
5370fa8c 35666 "systemd-timesyncd"
4d47f125
TL
35667 ],
35668 "type" : "string"
35669 }
35670 }
7aacca6f 35671 },
4d47f125
TL
35672 "permissions" : {
35673 "check" : [
35674 "perm",
35675 "/nodes/{node}",
35676 [
35677 "Sys.Modify"
35678 ]
35679 ]
7aacca6f 35680 },
4d47f125
TL
35681 "protected" : 1,
35682 "proxyto" : "node",
35683 "returns" : {
35684 "type" : "string"
35685 }
35686 }
56122987 35687 },
4d47f125
TL
35688 "leaf" : 1,
35689 "path" : "/nodes/{node}/services/{service}/start",
35690 "text" : "start"
35691 },
44660702
DM
35692 {
35693 "info" : {
4d47f125 35694 "POST" : {
e9cd3bd4 35695 "allowtoken" : 1,
4d47f125
TL
35696 "description" : "Stop service.",
35697 "method" : "POST",
35698 "name" : "service_stop",
44660702
DM
35699 "parameters" : {
35700 "additionalProperties" : 0,
35701 "properties" : {
44660702
DM
35702 "node" : {
35703 "description" : "The cluster node name.",
35704 "format" : "pve-node",
013dc89f
DM
35705 "type" : "string",
35706 "typetext" : "<string>"
2489d6df 35707 },
4d47f125
TL
35708 "service" : {
35709 "description" : "Service ID",
35710 "enum" : [
5370fa8c 35711 "chrony",
4d47f125 35712 "corosync",
5370fa8c
TL
35713 "cron",
35714 "ksmtuned",
35715 "postfix",
35716 "pve-cluster",
4d47f125 35717 "pve-firewall",
4d47f125
TL
35718 "pve-ha-crm",
35719 "pve-ha-lrm",
5370fa8c
TL
35720 "pvedaemon",
35721 "pvefw-logger",
35722 "pveproxy",
35723 "pvescheduler",
35724 "pvestatd",
35725 "spiceproxy",
4d47f125
TL
35726 "sshd",
35727 "syslog",
8f4d9c87 35728 "systemd-journald",
5370fa8c 35729 "systemd-timesyncd"
4d47f125
TL
35730 ],
35731 "type" : "string"
44660702
DM
35732 }
35733 }
35734 },
35735 "permissions" : {
35736 "check" : [
35737 "perm",
4d47f125 35738 "/nodes/{node}",
44660702
DM
35739 [
35740 "Sys.Modify"
35741 ]
35742 ]
35743 },
35744 "protected" : 1,
35745 "proxyto" : "node",
35746 "returns" : {
2489d6df 35747 "type" : "string"
44660702
DM
35748 }
35749 }
35750 },
35751 "leaf" : 1,
4d47f125
TL
35752 "path" : "/nodes/{node}/services/{service}/stop",
35753 "text" : "stop"
7aacca6f 35754 },
32d876b5
DM
35755 {
35756 "info" : {
4d47f125 35757 "POST" : {
e9cd3bd4 35758 "allowtoken" : 1,
739d4d64 35759 "description" : "Hard restart service. Use reload if you want to reduce interruptions.",
4d47f125
TL
35760 "method" : "POST",
35761 "name" : "service_restart",
32d876b5
DM
35762 "parameters" : {
35763 "additionalProperties" : 0,
35764 "properties" : {
4d47f125
TL
35765 "node" : {
35766 "description" : "The cluster node name.",
35767 "format" : "pve-node",
35768 "type" : "string",
35769 "typetext" : "<string>"
35770 },
35771 "service" : {
35772 "description" : "Service ID",
32d876b5 35773 "enum" : [
5370fa8c 35774 "chrony",
4d47f125 35775 "corosync",
5370fa8c
TL
35776 "cron",
35777 "ksmtuned",
35778 "postfix",
35779 "pve-cluster",
4d47f125 35780 "pve-firewall",
4d47f125
TL
35781 "pve-ha-crm",
35782 "pve-ha-lrm",
5370fa8c
TL
35783 "pvedaemon",
35784 "pvefw-logger",
35785 "pveproxy",
35786 "pvescheduler",
35787 "pvestatd",
35788 "spiceproxy",
4d47f125
TL
35789 "sshd",
35790 "syslog",
8f4d9c87 35791 "systemd-journald",
5370fa8c 35792 "systemd-timesyncd"
32d876b5
DM
35793 ],
35794 "type" : "string"
32d876b5
DM
35795 }
35796 }
35797 },
35798 "permissions" : {
35799 "check" : [
35800 "perm",
4d47f125 35801 "/nodes/{node}",
32d876b5
DM
35802 [
35803 "Sys.Modify"
35804 ]
35805 ]
35806 },
35807 "protected" : 1,
35808 "proxyto" : "node",
35809 "returns" : {
4d47f125 35810 "type" : "string"
32d876b5 35811 }
4d47f125
TL
35812 }
35813 },
35814 "leaf" : 1,
35815 "path" : "/nodes/{node}/services/{service}/restart",
35816 "text" : "restart"
35817 },
35818 {
35819 "info" : {
32d876b5 35820 "POST" : {
e9cd3bd4 35821 "allowtoken" : 1,
739d4d64 35822 "description" : "Reload service. Falls back to restart if service cannot be reloaded.",
32d876b5 35823 "method" : "POST",
4d47f125 35824 "name" : "service_reload",
32d876b5
DM
35825 "parameters" : {
35826 "additionalProperties" : 0,
35827 "properties" : {
32d876b5
DM
35828 "node" : {
35829 "description" : "The cluster node name.",
35830 "format" : "pve-node",
35831 "type" : "string",
35832 "typetext" : "<string>"
4d47f125
TL
35833 },
35834 "service" : {
35835 "description" : "Service ID",
35836 "enum" : [
5370fa8c 35837 "chrony",
4d47f125 35838 "corosync",
5370fa8c
TL
35839 "cron",
35840 "ksmtuned",
35841 "postfix",
35842 "pve-cluster",
4d47f125 35843 "pve-firewall",
4d47f125
TL
35844 "pve-ha-crm",
35845 "pve-ha-lrm",
5370fa8c
TL
35846 "pvedaemon",
35847 "pvefw-logger",
35848 "pveproxy",
35849 "pvescheduler",
35850 "pvestatd",
35851 "spiceproxy",
4d47f125
TL
35852 "sshd",
35853 "syslog",
8f4d9c87 35854 "systemd-journald",
5370fa8c 35855 "systemd-timesyncd"
4d47f125
TL
35856 ],
35857 "type" : "string"
32d876b5
DM
35858 }
35859 }
35860 },
35861 "permissions" : {
35862 "check" : [
35863 "perm",
4d47f125 35864 "/nodes/{node}",
32d876b5
DM
35865 [
35866 "Sys.Modify"
35867 ]
35868 ]
35869 },
35870 "protected" : 1,
35871 "proxyto" : "node",
35872 "returns" : {
4d47f125 35873 "type" : "string"
32d876b5
DM
35874 }
35875 }
35876 },
35877 "leaf" : 1,
4d47f125
TL
35878 "path" : "/nodes/{node}/services/{service}/reload",
35879 "text" : "reload"
32d876b5
DM
35880 }
35881 ],
35882 "info" : {
35883 "GET" : {
e9cd3bd4 35884 "allowtoken" : 1,
4d47f125 35885 "description" : "Directory index",
44660702 35886 "method" : "GET",
4d47f125 35887 "name" : "srvcmdidx",
44660702
DM
35888 "parameters" : {
35889 "additionalProperties" : 0,
35890 "properties" : {
44660702
DM
35891 "node" : {
35892 "description" : "The cluster node name.",
35893 "format" : "pve-node",
013dc89f
DM
35894 "type" : "string",
35895 "typetext" : "<string>"
44660702 35896 },
4d47f125
TL
35897 "service" : {
35898 "description" : "Service ID",
35899 "enum" : [
5370fa8c 35900 "chrony",
4d47f125 35901 "corosync",
5370fa8c
TL
35902 "cron",
35903 "ksmtuned",
35904 "postfix",
35905 "pve-cluster",
4d47f125 35906 "pve-firewall",
4d47f125
TL
35907 "pve-ha-crm",
35908 "pve-ha-lrm",
5370fa8c
TL
35909 "pvedaemon",
35910 "pvefw-logger",
35911 "pveproxy",
35912 "pvescheduler",
35913 "pvestatd",
35914 "spiceproxy",
4d47f125
TL
35915 "sshd",
35916 "syslog",
8f4d9c87 35917 "systemd-journald",
5370fa8c 35918 "systemd-timesyncd"
4d47f125
TL
35919 ],
35920 "type" : "string"
44660702 35921 }
7aacca6f 35922 }
56122987 35923 },
56122987
DM
35924 "permissions" : {
35925 "check" : [
35926 "perm",
7aacca6f 35927 "/nodes/{node}",
56122987 35928 [
4d47f125 35929 "Sys.Audit"
56122987
DM
35930 ]
35931 ]
35932 },
44660702
DM
35933 "returns" : {
35934 "items" : {
35935 "properties" : {
4d47f125 35936 "subdir" : {
44660702
DM
35937 "type" : "string"
35938 }
56122987 35939 },
44660702 35940 "type" : "object"
56122987 35941 },
2489d6df
WB
35942 "links" : [
35943 {
4d47f125 35944 "href" : "{subdir}",
2489d6df
WB
35945 "rel" : "child"
35946 }
35947 ],
35948 "type" : "array"
35949 }
35950 }
4d47f125
TL
35951 },
35952 "leaf" : 0,
35953 "path" : "/nodes/{node}/services/{service}",
35954 "text" : "{service}"
7aacca6f
DM
35955 }
35956 ],
44660702
DM
35957 "info" : {
35958 "GET" : {
e9cd3bd4 35959 "allowtoken" : 1,
4d47f125 35960 "description" : "Service list.",
44660702
DM
35961 "method" : "GET",
35962 "name" : "index",
35963 "parameters" : {
35964 "additionalProperties" : 0,
35965 "properties" : {
35966 "node" : {
35967 "description" : "The cluster node name.",
35968 "format" : "pve-node",
013dc89f
DM
35969 "type" : "string",
35970 "typetext" : "<string>"
44660702
DM
35971 }
35972 }
35973 },
35974 "permissions" : {
35975 "check" : [
35976 "perm",
4d47f125 35977 "/nodes/{node}",
44660702 35978 [
4d47f125
TL
35979 "Sys.Audit"
35980 ]
44660702
DM
35981 ]
35982 },
4d47f125
TL
35983 "protected" : 1,
35984 "proxyto" : "node",
44660702
DM
35985 "returns" : {
35986 "items" : {
35987 "properties" : {},
35988 "type" : "object"
35989 },
35990 "links" : [
35991 {
4d47f125 35992 "href" : "{service}",
44660702
DM
35993 "rel" : "child"
35994 }
35995 ],
35996 "type" : "array"
35997 }
35998 }
35999 },
7aacca6f 36000 "leaf" : 0,
4d47f125
TL
36001 "path" : "/nodes/{node}/services",
36002 "text" : "services"
7aacca6f
DM
36003 },
36004 {
7aacca6f 36005 "info" : {
ac70d7d1
TL
36006 "DELETE" : {
36007 "allowtoken" : 1,
36008 "description" : "Delete subscription key of this node.",
36009 "method" : "DELETE",
36010 "name" : "delete",
36011 "parameters" : {
36012 "additionalProperties" : 0,
36013 "properties" : {
36014 "node" : {
36015 "description" : "The cluster node name.",
36016 "format" : "pve-node",
36017 "type" : "string",
36018 "typetext" : "<string>"
36019 }
36020 }
36021 },
36022 "permissions" : {
36023 "check" : [
36024 "perm",
36025 "/nodes/{node}",
36026 [
36027 "Sys.Modify"
36028 ]
36029 ]
36030 },
36031 "protected" : 1,
36032 "proxyto" : "node",
36033 "returns" : {
36034 "type" : "null"
36035 }
36036 },
4d47f125 36037 "GET" : {
e9cd3bd4 36038 "allowtoken" : 1,
4d47f125
TL
36039 "description" : "Read subscription info.",
36040 "method" : "GET",
36041 "name" : "get",
7aacca6f 36042 "parameters" : {
44660702 36043 "additionalProperties" : 0,
7aacca6f 36044 "properties" : {
44660702 36045 "node" : {
4d47f125 36046 "description" : "The cluster node name.",
44660702 36047 "format" : "pve-node",
013dc89f
DM
36048 "type" : "string",
36049 "typetext" : "<string>"
4d47f125
TL
36050 }
36051 }
36052 },
36053 "permissions" : {
36054 "user" : "all"
36055 },
36056 "proxyto" : "node",
36057 "returns" : {
36058 "type" : "object"
36059 }
36060 },
36061 "POST" : {
e9cd3bd4 36062 "allowtoken" : 1,
4d47f125
TL
36063 "description" : "Update subscription info.",
36064 "method" : "POST",
36065 "name" : "update",
36066 "parameters" : {
36067 "additionalProperties" : 0,
36068 "properties" : {
36069 "force" : {
36070 "default" : 0,
36071 "description" : "Always connect to server, even if we have up to date info inside local cache.",
7aacca6f 36072 "optional" : 1,
4d47f125
TL
36073 "type" : "boolean",
36074 "typetext" : "<boolean>"
44660702 36075 },
4d47f125
TL
36076 "node" : {
36077 "description" : "The cluster node name.",
36078 "format" : "pve-node",
013dc89f
DM
36079 "type" : "string",
36080 "typetext" : "<string>"
4d47f125
TL
36081 }
36082 }
36083 },
36084 "permissions" : {
36085 "check" : [
36086 "perm",
36087 "/nodes/{node}",
36088 [
36089 "Sys.Modify"
36090 ]
36091 ]
36092 },
36093 "protected" : 1,
36094 "proxyto" : "node",
36095 "returns" : {
36096 "type" : "null"
36097 }
36098 },
36099 "PUT" : {
e9cd3bd4 36100 "allowtoken" : 1,
4d47f125
TL
36101 "description" : "Set subscription key.",
36102 "method" : "PUT",
36103 "name" : "set",
36104 "parameters" : {
36105 "additionalProperties" : 0,
36106 "properties" : {
36107 "key" : {
36108 "description" : "Proxmox VE subscription key",
36109 "maxLength" : 32,
5f26e15b 36110 "pattern" : "pve([1248])([cbsp])-[0-9a-f]{10}",
4d47f125 36111 "type" : "string"
7aacca6f 36112 },
4d47f125
TL
36113 "node" : {
36114 "description" : "The cluster node name.",
36115 "format" : "pve-node",
013dc89f
DM
36116 "type" : "string",
36117 "typetext" : "<string>"
7aacca6f 36118 }
7aacca6f
DM
36119 }
36120 },
7aacca6f 36121 "permissions" : {
4d47f125
TL
36122 "check" : [
36123 "perm",
36124 "/nodes/{node}",
36125 [
36126 "Sys.Modify"
36127 ]
36128 ]
7aacca6f 36129 },
44660702 36130 "protected" : 1,
7aacca6f 36131 "proxyto" : "node",
7aacca6f 36132 "returns" : {
4d47f125 36133 "type" : "null"
7aacca6f
DM
36134 }
36135 }
36136 },
4d47f125
TL
36137 "leaf" : 1,
36138 "path" : "/nodes/{node}/subscription",
36139 "text" : "subscription"
44660702
DM
36140 },
36141 {
7aacca6f
DM
36142 "children" : [
36143 {
4d47f125
TL
36144 "info" : {
36145 "DELETE" : {
e9cd3bd4 36146 "allowtoken" : 1,
4d47f125
TL
36147 "description" : "Delete network device configuration",
36148 "method" : "DELETE",
36149 "name" : "delete_network",
36150 "parameters" : {
36151 "additionalProperties" : 0,
36152 "properties" : {
36153 "iface" : {
36154 "description" : "Network interface name.",
36155 "format" : "pve-iface",
36156 "maxLength" : 20,
36157 "minLength" : 2,
36158 "type" : "string",
36159 "typetext" : "<string>"
7aacca6f 36160 },
4d47f125
TL
36161 "node" : {
36162 "description" : "The cluster node name.",
36163 "format" : "pve-node",
36164 "type" : "string",
36165 "typetext" : "<string>"
44660702
DM
36166 }
36167 }
36168 },
4d47f125
TL
36169 "permissions" : {
36170 "check" : [
36171 "perm",
36172 "/nodes/{node}",
36173 [
36174 "Sys.Modify"
36175 ]
36176 ]
36177 },
36178 "protected" : 1,
36179 "proxyto" : "node",
36180 "returns" : {
36181 "type" : "null"
36182 }
36183 },
36184 "GET" : {
e9cd3bd4 36185 "allowtoken" : 1,
4d47f125
TL
36186 "description" : "Read network device configuration",
36187 "method" : "GET",
36188 "name" : "network_config",
36189 "parameters" : {
36190 "additionalProperties" : 0,
36191 "properties" : {
36192 "iface" : {
36193 "description" : "Network interface name.",
36194 "format" : "pve-iface",
36195 "maxLength" : 20,
36196 "minLength" : 2,
36197 "type" : "string",
36198 "typetext" : "<string>"
56122987 36199 },
4d47f125
TL
36200 "node" : {
36201 "description" : "The cluster node name.",
36202 "format" : "pve-node",
36203 "type" : "string",
36204 "typetext" : "<string>"
44660702
DM
36205 }
36206 }
36207 },
4d47f125
TL
36208 "permissions" : {
36209 "check" : [
36210 "perm",
36211 "/nodes/{node}",
36212 [
36213 "Sys.Audit"
36214 ]
36215 ]
36216 },
36217 "proxyto" : "node",
36218 "returns" : {
36219 "properties" : {
36220 "method" : {
36221 "type" : "string"
44660702 36222 },
4d47f125 36223 "type" : {
44660702
DM
36224 "type" : "string"
36225 }
4d47f125
TL
36226 },
36227 "type" : "object"
36228 }
56122987 36229 },
4d47f125 36230 "PUT" : {
e9cd3bd4 36231 "allowtoken" : 1,
4d47f125
TL
36232 "description" : "Update network device configuration",
36233 "method" : "PUT",
36234 "name" : "update_network",
36235 "parameters" : {
36236 "additionalProperties" : 0,
36237 "properties" : {
36238 "address" : {
36239 "description" : "IP address.",
36240 "format" : "ipv4",
36241 "optional" : 1,
36242 "requires" : "netmask",
36243 "type" : "string",
36244 "typetext" : "<string>"
36245 },
36246 "address6" : {
36247 "description" : "IP address.",
36248 "format" : "ipv6",
36249 "optional" : 1,
36250 "requires" : "netmask6",
36251 "type" : "string",
36252 "typetext" : "<string>"
36253 },
36254 "autostart" : {
36255 "description" : "Automatically start interface on boot.",
36256 "optional" : 1,
36257 "type" : "boolean",
36258 "typetext" : "<boolean>"
36259 },
e9cd3bd4
TL
36260 "bond-primary" : {
36261 "description" : "Specify the primary interface for active-backup bond.",
36262 "format" : "pve-iface",
36263 "optional" : 1,
36264 "type" : "string",
36265 "typetext" : "<string>"
36266 },
4d47f125
TL
36267 "bond_mode" : {
36268 "description" : "Bonding mode.",
36269 "enum" : [
36270 "balance-rr",
36271 "active-backup",
36272 "balance-xor",
36273 "broadcast",
36274 "802.3ad",
36275 "balance-tlb",
36276 "balance-alb",
36277 "balance-slb",
36278 "lacp-balance-slb",
36279 "lacp-balance-tcp"
36280 ],
36281 "optional" : 1,
36282 "type" : "string"
36283 },
36284 "bond_xmit_hash_policy" : {
36285 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
36286 "enum" : [
36287 "layer2",
36288 "layer2+3",
36289 "layer3+4"
36290 ],
36291 "optional" : 1,
36292 "type" : "string"
36293 },
36294 "bridge_ports" : {
1e3f8156 36295 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
36296 "format" : "pve-iface-list",
36297 "optional" : 1,
36298 "type" : "string",
36299 "typetext" : "<string>"
36300 },
36301 "bridge_vlan_aware" : {
36302 "description" : "Enable bridge vlan support.",
36303 "optional" : 1,
36304 "type" : "boolean",
36305 "typetext" : "<boolean>"
36306 },
bb4c8cf8
TL
36307 "cidr" : {
36308 "description" : "IPv4 CIDR.",
36309 "format" : "CIDRv4",
36310 "optional" : 1,
36311 "type" : "string",
36312 "typetext" : "<string>"
36313 },
36314 "cidr6" : {
36315 "description" : "IPv6 CIDR.",
36316 "format" : "CIDRv6",
36317 "optional" : 1,
36318 "type" : "string",
36319 "typetext" : "<string>"
36320 },
4d47f125
TL
36321 "comments" : {
36322 "description" : "Comments",
36323 "optional" : 1,
36324 "type" : "string",
36325 "typetext" : "<string>"
36326 },
36327 "comments6" : {
36328 "description" : "Comments",
36329 "optional" : 1,
36330 "type" : "string",
36331 "typetext" : "<string>"
36332 },
36333 "delete" : {
36334 "description" : "A list of settings you want to delete.",
36335 "format" : "pve-configid-list",
36336 "optional" : 1,
36337 "type" : "string",
36338 "typetext" : "<string>"
36339 },
36340 "gateway" : {
36341 "description" : "Default gateway address.",
36342 "format" : "ipv4",
36343 "optional" : 1,
36344 "type" : "string",
36345 "typetext" : "<string>"
36346 },
36347 "gateway6" : {
36348 "description" : "Default ipv6 gateway address.",
36349 "format" : "ipv6",
36350 "optional" : 1,
36351 "type" : "string",
36352 "typetext" : "<string>"
36353 },
36354 "iface" : {
36355 "description" : "Network interface name.",
36356 "format" : "pve-iface",
36357 "maxLength" : 20,
36358 "minLength" : 2,
36359 "type" : "string",
36360 "typetext" : "<string>"
56122987 36361 },
e9cd3bd4
TL
36362 "mtu" : {
36363 "description" : "MTU.",
36364 "maximum" : 65520,
36365 "minimum" : 1280,
36366 "optional" : 1,
36367 "type" : "integer",
36368 "typetext" : "<integer> (1280 - 65520)"
36369 },
4d47f125
TL
36370 "netmask" : {
36371 "description" : "Network mask.",
36372 "format" : "ipv4mask",
36373 "optional" : 1,
36374 "requires" : "address",
36375 "type" : "string",
36376 "typetext" : "<string>"
36377 },
36378 "netmask6" : {
36379 "description" : "Network mask.",
36380 "maximum" : 128,
36381 "minimum" : 0,
36382 "optional" : 1,
36383 "requires" : "address6",
36384 "type" : "integer",
36385 "typetext" : "<integer> (0 - 128)"
56122987 36386 },
44660702
DM
36387 "node" : {
36388 "description" : "The cluster node name.",
36389 "format" : "pve-node",
013dc89f
DM
36390 "type" : "string",
36391 "typetext" : "<string>"
44660702 36392 },
4d47f125
TL
36393 "ovs_bonds" : {
36394 "description" : "Specify the interfaces used by the bonding device.",
36395 "format" : "pve-iface-list",
36396 "optional" : 1,
36397 "type" : "string",
36398 "typetext" : "<string>"
36399 },
36400 "ovs_bridge" : {
36401 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
36402 "format" : "pve-iface",
36403 "optional" : 1,
36404 "type" : "string",
36405 "typetext" : "<string>"
36406 },
36407 "ovs_options" : {
36408 "description" : "OVS interface options.",
36409 "maxLength" : 1024,
36410 "optional" : 1,
36411 "type" : "string",
36412 "typetext" : "<string>"
36413 },
36414 "ovs_ports" : {
1e3f8156 36415 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
36416 "format" : "pve-iface-list",
36417 "optional" : 1,
36418 "type" : "string",
36419 "typetext" : "<string>"
36420 },
36421 "ovs_tag" : {
36422 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
36423 "maximum" : 4094,
36424 "minimum" : 1,
36425 "optional" : 1,
36426 "type" : "integer",
36427 "typetext" : "<integer> (1 - 4094)"
36428 },
36429 "slaves" : {
36430 "description" : "Specify the interfaces used by the bonding device.",
36431 "format" : "pve-iface-list",
36432 "optional" : 1,
36433 "type" : "string",
36434 "typetext" : "<string>"
36435 },
36436 "type" : {
36437 "description" : "Network interface type",
44660702 36438 "enum" : [
4d47f125
TL
36439 "bridge",
36440 "bond",
36441 "eth",
36442 "alias",
36443 "vlan",
36444 "OVSBridge",
36445 "OVSBond",
36446 "OVSPort",
36447 "OVSIntPort",
36448 "unknown"
44660702
DM
36449 ],
36450 "type" : "string"
e9cd3bd4
TL
36451 },
36452 "vlan-id" : {
36453 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
36454 "maximum" : 4094,
36455 "minimum" : 1,
36456 "optional" : 1,
36457 "type" : "integer",
36458 "typetext" : "<integer> (1 - 4094)"
36459 },
36460 "vlan-raw-device" : {
36461 "description" : "Specify the raw interface for the vlan interface.",
36462 "format" : "pve-iface",
36463 "optional" : 1,
36464 "type" : "string",
36465 "typetext" : "<string>"
44660702
DM
36466 }
36467 }
36468 },
36469 "permissions" : {
36470 "check" : [
36471 "perm",
36472 "/nodes/{node}",
36473 [
4d47f125 36474 "Sys.Modify"
44660702
DM
36475 ]
36476 ]
36477 },
4d47f125
TL
36478 "protected" : 1,
36479 "proxyto" : "node",
44660702 36480 "returns" : {
4d47f125 36481 "type" : "null"
44660702
DM
36482 }
36483 }
36484 },
4d47f125
TL
36485 "leaf" : 1,
36486 "path" : "/nodes/{node}/network/{iface}",
36487 "text" : "{iface}"
44660702
DM
36488 }
36489 ],
36490 "info" : {
4d47f125 36491 "DELETE" : {
e9cd3bd4 36492 "allowtoken" : 1,
4d47f125
TL
36493 "description" : "Revert network configuration changes.",
36494 "method" : "DELETE",
36495 "name" : "revert_network_changes",
44660702
DM
36496 "parameters" : {
36497 "additionalProperties" : 0,
36498 "properties" : {
36499 "node" : {
36500 "description" : "The cluster node name.",
36501 "format" : "pve-node",
013dc89f
DM
36502 "type" : "string",
36503 "typetext" : "<string>"
44660702
DM
36504 }
36505 }
36506 },
36507 "permissions" : {
36508 "check" : [
36509 "perm",
36510 "/nodes/{node}",
36511 [
4d47f125 36512 "Sys.Modify"
44660702
DM
36513 ]
36514 ]
36515 },
36516 "protected" : 1,
36517 "proxyto" : "node",
4d47f125
TL
36518 "returns" : {
36519 "type" : "null"
36520 }
36521 },
36522 "GET" : {
e9cd3bd4 36523 "allowtoken" : 1,
4d47f125
TL
36524 "description" : "List available networks",
36525 "method" : "GET",
36526 "name" : "index",
36527 "parameters" : {
36528 "additionalProperties" : 0,
36529 "properties" : {
36530 "node" : {
36531 "description" : "The cluster node name.",
36532 "format" : "pve-node",
36533 "type" : "string",
36534 "typetext" : "<string>"
36535 },
36536 "type" : {
36537 "description" : "Only list specific interface types.",
36538 "enum" : [
36539 "bridge",
36540 "bond",
36541 "eth",
36542 "alias",
36543 "vlan",
36544 "OVSBridge",
36545 "OVSBond",
36546 "OVSPort",
36547 "OVSIntPort",
36548 "any_bridge"
36549 ],
36550 "optional" : 1,
36551 "type" : "string"
36552 }
36553 }
36554 },
36555 "permissions" : {
36556 "user" : "all"
36557 },
36558 "proxyto" : "node",
44660702
DM
36559 "returns" : {
36560 "items" : {
36561 "properties" : {},
36562 "type" : "object"
36563 },
36564 "links" : [
36565 {
4d47f125 36566 "href" : "{iface}",
44660702 36567 "rel" : "child"
56122987 36568 }
44660702
DM
36569 ],
36570 "type" : "array"
36571 }
4d47f125
TL
36572 },
36573 "POST" : {
e9cd3bd4 36574 "allowtoken" : 1,
4d47f125
TL
36575 "description" : "Create network device configuration",
36576 "method" : "POST",
36577 "name" : "create_network",
7aacca6f 36578 "parameters" : {
44660702 36579 "additionalProperties" : 0,
7aacca6f 36580 "properties" : {
4d47f125
TL
36581 "address" : {
36582 "description" : "IP address.",
36583 "format" : "ipv4",
36584 "optional" : 1,
36585 "requires" : "netmask",
36586 "type" : "string",
36587 "typetext" : "<string>"
36588 },
36589 "address6" : {
36590 "description" : "IP address.",
36591 "format" : "ipv6",
36592 "optional" : 1,
36593 "requires" : "netmask6",
36594 "type" : "string",
36595 "typetext" : "<string>"
36596 },
36597 "autostart" : {
36598 "description" : "Automatically start interface on boot.",
36599 "optional" : 1,
36600 "type" : "boolean",
36601 "typetext" : "<boolean>"
36602 },
e9cd3bd4
TL
36603 "bond-primary" : {
36604 "description" : "Specify the primary interface for active-backup bond.",
36605 "format" : "pve-iface",
36606 "optional" : 1,
36607 "type" : "string",
36608 "typetext" : "<string>"
36609 },
4d47f125
TL
36610 "bond_mode" : {
36611 "description" : "Bonding mode.",
36612 "enum" : [
36613 "balance-rr",
36614 "active-backup",
36615 "balance-xor",
36616 "broadcast",
36617 "802.3ad",
36618 "balance-tlb",
36619 "balance-alb",
36620 "balance-slb",
36621 "lacp-balance-slb",
36622 "lacp-balance-tcp"
36623 ],
36624 "optional" : 1,
36625 "type" : "string"
36626 },
36627 "bond_xmit_hash_policy" : {
36628 "description" : "Selects the transmit hash policy to use for slave selection in balance-xor and 802.3ad modes.",
36629 "enum" : [
36630 "layer2",
36631 "layer2+3",
36632 "layer3+4"
36633 ],
36634 "optional" : 1,
36635 "type" : "string"
36636 },
36637 "bridge_ports" : {
1e3f8156 36638 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
36639 "format" : "pve-iface-list",
36640 "optional" : 1,
013dc89f
DM
36641 "type" : "string",
36642 "typetext" : "<string>"
4d47f125
TL
36643 },
36644 "bridge_vlan_aware" : {
36645 "description" : "Enable bridge vlan support.",
44660702 36646 "optional" : 1,
013dc89f
DM
36647 "type" : "boolean",
36648 "typetext" : "<boolean>"
44660702 36649 },
bb4c8cf8
TL
36650 "cidr" : {
36651 "description" : "IPv4 CIDR.",
36652 "format" : "CIDRv4",
36653 "optional" : 1,
36654 "type" : "string",
36655 "typetext" : "<string>"
36656 },
36657 "cidr6" : {
36658 "description" : "IPv6 CIDR.",
36659 "format" : "CIDRv6",
36660 "optional" : 1,
36661 "type" : "string",
36662 "typetext" : "<string>"
36663 },
4d47f125
TL
36664 "comments" : {
36665 "description" : "Comments",
36666 "optional" : 1,
36667 "type" : "string",
36668 "typetext" : "<string>"
36669 },
36670 "comments6" : {
36671 "description" : "Comments",
36672 "optional" : 1,
36673 "type" : "string",
36674 "typetext" : "<string>"
36675 },
36676 "gateway" : {
36677 "description" : "Default gateway address.",
36678 "format" : "ipv4",
36679 "optional" : 1,
36680 "type" : "string",
36681 "typetext" : "<string>"
36682 },
36683 "gateway6" : {
36684 "description" : "Default ipv6 gateway address.",
36685 "format" : "ipv6",
36686 "optional" : 1,
36687 "type" : "string",
36688 "typetext" : "<string>"
36689 },
36690 "iface" : {
36691 "description" : "Network interface name.",
36692 "format" : "pve-iface",
36693 "maxLength" : 20,
36694 "minLength" : 2,
36695 "type" : "string",
36696 "typetext" : "<string>"
36697 },
e9cd3bd4
TL
36698 "mtu" : {
36699 "description" : "MTU.",
36700 "maximum" : 65520,
36701 "minimum" : 1280,
36702 "optional" : 1,
36703 "type" : "integer",
36704 "typetext" : "<integer> (1280 - 65520)"
36705 },
4d47f125
TL
36706 "netmask" : {
36707 "description" : "Network mask.",
36708 "format" : "ipv4mask",
36709 "optional" : 1,
36710 "requires" : "address",
36711 "type" : "string",
36712 "typetext" : "<string>"
36713 },
36714 "netmask6" : {
36715 "description" : "Network mask.",
36716 "maximum" : 128,
36717 "minimum" : 0,
36718 "optional" : 1,
36719 "requires" : "address6",
36720 "type" : "integer",
36721 "typetext" : "<integer> (0 - 128)"
36722 },
7aacca6f 36723 "node" : {
7aacca6f 36724 "description" : "The cluster node name.",
44660702 36725 "format" : "pve-node",
013dc89f
DM
36726 "type" : "string",
36727 "typetext" : "<string>"
4d47f125
TL
36728 },
36729 "ovs_bonds" : {
36730 "description" : "Specify the interfaces used by the bonding device.",
36731 "format" : "pve-iface-list",
36732 "optional" : 1,
36733 "type" : "string",
36734 "typetext" : "<string>"
36735 },
36736 "ovs_bridge" : {
36737 "description" : "The OVS bridge associated with a OVS port. This is required when you create an OVS port.",
36738 "format" : "pve-iface",
36739 "optional" : 1,
36740 "type" : "string",
36741 "typetext" : "<string>"
36742 },
36743 "ovs_options" : {
36744 "description" : "OVS interface options.",
36745 "maxLength" : 1024,
36746 "optional" : 1,
36747 "type" : "string",
36748 "typetext" : "<string>"
36749 },
36750 "ovs_ports" : {
1e3f8156 36751 "description" : "Specify the interfaces you want to add to your bridge.",
4d47f125
TL
36752 "format" : "pve-iface-list",
36753 "optional" : 1,
36754 "type" : "string",
36755 "typetext" : "<string>"
36756 },
36757 "ovs_tag" : {
36758 "description" : "Specify a VLan tag (used by OVSPort, OVSIntPort, OVSBond)",
36759 "maximum" : 4094,
36760 "minimum" : 1,
36761 "optional" : 1,
36762 "type" : "integer",
36763 "typetext" : "<integer> (1 - 4094)"
36764 },
36765 "slaves" : {
36766 "description" : "Specify the interfaces used by the bonding device.",
36767 "format" : "pve-iface-list",
36768 "optional" : 1,
36769 "type" : "string",
36770 "typetext" : "<string>"
36771 },
36772 "type" : {
36773 "description" : "Network interface type",
36774 "enum" : [
36775 "bridge",
36776 "bond",
36777 "eth",
36778 "alias",
36779 "vlan",
36780 "OVSBridge",
36781 "OVSBond",
36782 "OVSPort",
36783 "OVSIntPort",
36784 "unknown"
36785 ],
36786 "type" : "string"
e9cd3bd4
TL
36787 },
36788 "vlan-id" : {
36789 "description" : "vlan-id for a custom named vlan interface (ifupdown2 only).",
36790 "maximum" : 4094,
36791 "minimum" : 1,
36792 "optional" : 1,
36793 "type" : "integer",
36794 "typetext" : "<integer> (1 - 4094)"
36795 },
36796 "vlan-raw-device" : {
36797 "description" : "Specify the raw interface for the vlan interface.",
36798 "format" : "pve-iface",
36799 "optional" : 1,
36800 "type" : "string",
36801 "typetext" : "<string>"
7aacca6f
DM
36802 }
36803 }
36804 },
35a75dd3
DM
36805 "permissions" : {
36806 "check" : [
36807 "perm",
36808 "/nodes/{node}",
36809 [
36810 "Sys.Modify"
36811 ]
36812 ]
36813 },
7aacca6f 36814 "protected" : 1,
7aacca6f 36815 "proxyto" : "node",
44660702
DM
36816 "returns" : {
36817 "type" : "null"
36818 }
36819 },
36820 "PUT" : {
e9cd3bd4 36821 "allowtoken" : 1,
4d47f125 36822 "description" : "Reload network configuration",
44660702 36823 "method" : "PUT",
4d47f125 36824 "name" : "reload_network_config",
7aacca6f
DM
36825 "parameters" : {
36826 "additionalProperties" : 0,
36827 "properties" : {
7aacca6f 36828 "node" : {
7aacca6f 36829 "description" : "The cluster node name.",
44660702 36830 "format" : "pve-node",
013dc89f
DM
36831 "type" : "string",
36832 "typetext" : "<string>"
7aacca6f
DM
36833 }
36834 }
36835 },
35a75dd3
DM
36836 "permissions" : {
36837 "check" : [
36838 "perm",
36839 "/nodes/{node}",
36840 [
36841 "Sys.Modify"
36842 ]
36843 ]
36844 },
44660702
DM
36845 "protected" : 1,
36846 "proxyto" : "node",
7aacca6f 36847 "returns" : {
4d47f125 36848 "type" : "string"
44660702 36849 }
7aacca6f
DM
36850 }
36851 },
4d47f125
TL
36852 "leaf" : 0,
36853 "path" : "/nodes/{node}/network",
36854 "text" : "network"
7aacca6f
DM
36855 },
36856 {
7aacca6f
DM
36857 "children" : [
36858 {
4d47f125
TL
36859 "children" : [
36860 {
36861 "info" : {
36862 "GET" : {
e9cd3bd4 36863 "allowtoken" : 1,
4d47f125
TL
36864 "description" : "Read task log.",
36865 "method" : "GET",
36866 "name" : "read_task_log",
36867 "parameters" : {
36868 "additionalProperties" : 0,
36869 "properties" : {
36870 "limit" : {
36871 "default" : 50,
5370fa8c 36872 "description" : "The maximum amount of lines that should be printed.",
4d47f125
TL
36873 "minimum" : 0,
36874 "optional" : 1,
36875 "type" : "integer",
36876 "typetext" : "<integer> (0 - N)"
36877 },
36878 "node" : {
36879 "description" : "The cluster node name.",
36880 "format" : "pve-node",
36881 "type" : "string",
36882 "typetext" : "<string>"
36883 },
36884 "start" : {
36885 "default" : 0,
5370fa8c 36886 "description" : "The line number to start printing at.",
4d47f125
TL
36887 "minimum" : 0,
36888 "optional" : 1,
36889 "type" : "integer",
36890 "typetext" : "<integer> (0 - N)"
36891 },
36892 "upid" : {
5370fa8c 36893 "description" : "The task's unique ID.",
4d47f125
TL
36894 "type" : "string",
36895 "typetext" : "<string>"
36896 }
36897 }
36898 },
36899 "permissions" : {
5370fa8c 36900 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125
TL
36901 "user" : "all"
36902 },
36903 "protected" : 1,
36904 "proxyto" : "node",
36905 "returns" : {
36906 "items" : {
36907 "properties" : {
36908 "n" : {
36909 "description" : "Line number",
36910 "type" : "integer"
36911 },
36912 "t" : {
36913 "description" : "Line text",
36914 "type" : "string"
36915 }
36916 },
36917 "type" : "object"
36918 },
36919 "type" : "array"
36920 }
36921 }
36922 },
36923 "leaf" : 1,
36924 "path" : "/nodes/{node}/tasks/{upid}/log",
36925 "text" : "log"
36926 },
36927 {
36928 "info" : {
36929 "GET" : {
e9cd3bd4 36930 "allowtoken" : 1,
4d47f125
TL
36931 "description" : "Read task status.",
36932 "method" : "GET",
36933 "name" : "read_task_status",
36934 "parameters" : {
36935 "additionalProperties" : 0,
36936 "properties" : {
36937 "node" : {
36938 "description" : "The cluster node name.",
36939 "format" : "pve-node",
36940 "type" : "string",
36941 "typetext" : "<string>"
36942 },
36943 "upid" : {
5370fa8c 36944 "description" : "The task's unique ID.",
4d47f125
TL
36945 "type" : "string",
36946 "typetext" : "<string>"
36947 }
36948 }
36949 },
36950 "permissions" : {
5370fa8c 36951 "description" : "The user needs 'Sys.Audit' permissions on '/nodes/<node>' if they are not the owner of the task.",
4d47f125
TL
36952 "user" : "all"
36953 },
36954 "protected" : 1,
36955 "proxyto" : "node",
36956 "returns" : {
36957 "properties" : {
5370fa8c
TL
36958 "exitstatus" : {
36959 "optional" : 1,
36960 "type" : "string"
36961 },
36962 "id" : {
36963 "type" : "string"
36964 },
36965 "node" : {
36966 "type" : "string"
36967 },
4d47f125
TL
36968 "pid" : {
36969 "type" : "integer"
36970 },
5370fa8c
TL
36971 "starttime" : {
36972 "type" : "number"
36973 },
4d47f125
TL
36974 "status" : {
36975 "enum" : [
36976 "running",
36977 "stopped"
36978 ],
36979 "type" : "string"
5370fa8c
TL
36980 },
36981 "type" : {
36982 "type" : "string"
36983 },
36984 "upid" : {
36985 "type" : "string"
36986 },
36987 "user" : {
36988 "type" : "string"
4d47f125
TL
36989 }
36990 },
36991 "type" : "object"
36992 }
36993 }
36994 },
36995 "leaf" : 1,
36996 "path" : "/nodes/{node}/tasks/{upid}/status",
36997 "text" : "status"
36998 }
36999 ],
56122987 37000 "info" : {
7aacca6f 37001 "DELETE" : {
e9cd3bd4 37002 "allowtoken" : 1,
4d47f125 37003 "description" : "Stop a task.",
44660702 37004 "method" : "DELETE",
4d47f125 37005 "name" : "stop_task",
44660702
DM
37006 "parameters" : {
37007 "additionalProperties" : 0,
37008 "properties" : {
44660702
DM
37009 "node" : {
37010 "description" : "The cluster node name.",
37011 "format" : "pve-node",
013dc89f
DM
37012 "type" : "string",
37013 "typetext" : "<string>"
4d47f125
TL
37014 },
37015 "upid" : {
37016 "type" : "string",
37017 "typetext" : "<string>"
44660702
DM
37018 }
37019 }
7aacca6f
DM
37020 },
37021 "permissions" : {
5370fa8c 37022 "description" : "The user needs 'Sys.Modify' permissions on '/nodes/<node>' if they aren't the owner of the task.",
4d47f125 37023 "user" : "all"
7aacca6f 37024 },
44660702 37025 "protected" : 1,
7aacca6f 37026 "proxyto" : "node",
44660702
DM
37027 "returns" : {
37028 "type" : "null"
37029 }
37030 },
37031 "GET" : {
e9cd3bd4 37032 "allowtoken" : 1,
4d47f125 37033 "description" : "",
44660702 37034 "method" : "GET",
4d47f125 37035 "name" : "upid_index",
7aacca6f
DM
37036 "parameters" : {
37037 "additionalProperties" : 0,
37038 "properties" : {
7aacca6f 37039 "node" : {
44660702 37040 "description" : "The cluster node name.",
7aacca6f 37041 "format" : "pve-node",
013dc89f
DM
37042 "type" : "string",
37043 "typetext" : "<string>"
7aacca6f 37044 },
4d47f125
TL
37045 "upid" : {
37046 "type" : "string",
37047 "typetext" : "<string>"
7aacca6f
DM
37048 }
37049 }
37050 },
7aacca6f 37051 "permissions" : {
4d47f125 37052 "user" : "all"
7aacca6f
DM
37053 },
37054 "returns" : {
4d47f125
TL
37055 "items" : {
37056 "properties" : {},
37057 "type" : "object"
37058 },
37059 "links" : [
37060 {
37061 "href" : "{name}",
37062 "rel" : "child"
37063 }
37064 ],
37065 "type" : "array"
44660702 37066 }
7aacca6f
DM
37067 }
37068 },
4d47f125
TL
37069 "leaf" : 0,
37070 "path" : "/nodes/{node}/tasks/{upid}",
37071 "text" : "{upid}"
7aacca6f
DM
37072 }
37073 ],
7aacca6f 37074 "info" : {
44660702 37075 "GET" : {
e9cd3bd4 37076 "allowtoken" : 1,
4d47f125 37077 "description" : "Read task list for one node (finished tasks).",
44660702 37078 "method" : "GET",
4d47f125 37079 "name" : "node_tasks",
44660702
DM
37080 "parameters" : {
37081 "additionalProperties" : 0,
37082 "properties" : {
4d47f125
TL
37083 "errors" : {
37084 "default" : 0,
5370fa8c 37085 "description" : "Only list tasks with a status of ERROR.",
7aacca6f 37086 "optional" : 1,
4d47f125
TL
37087 "type" : "boolean",
37088 "typetext" : "<boolean>"
7aacca6f 37089 },
4d47f125
TL
37090 "limit" : {
37091 "default" : 50,
37092 "description" : "Only list this amount of tasks.",
37093 "minimum" : 0,
44660702 37094 "optional" : 1,
4d47f125
TL
37095 "type" : "integer",
37096 "typetext" : "<integer> (0 - N)"
37097 },
37098 "node" : {
37099 "description" : "The cluster node name.",
37100 "format" : "pve-node",
013dc89f
DM
37101 "type" : "string",
37102 "typetext" : "<string>"
44660702 37103 },
34f3e481
TL
37104 "since" : {
37105 "description" : "Only list tasks since this UNIX epoch.",
37106 "optional" : 1,
37107 "type" : "integer",
37108 "typetext" : "<integer>"
37109 },
5f26e15b
TL
37110 "source" : {
37111 "default" : "archive",
37112 "description" : "List archived, active or all tasks.",
37113 "enum" : [
37114 "archive",
37115 "active",
37116 "all"
37117 ],
37118 "optional" : 1,
37119 "type" : "string"
37120 },
4d47f125
TL
37121 "start" : {
37122 "default" : 0,
37123 "description" : "List tasks beginning from this offset.",
37124 "minimum" : 0,
44660702 37125 "optional" : 1,
4d47f125
TL
37126 "type" : "integer",
37127 "typetext" : "<integer> (0 - N)"
44660702 37128 },
34f3e481
TL
37129 "statusfilter" : {
37130 "description" : "List of Task States that should be returned.",
37131 "format" : "pve-task-status-type-list",
37132 "optional" : 1,
37133 "type" : "string",
37134 "typetext" : "<string>"
37135 },
5f26e15b
TL
37136 "typefilter" : {
37137 "description" : "Only list tasks of this type (e.g., vzstart, vzdump).",
37138 "optional" : 1,
37139 "type" : "string",
37140 "typetext" : "<string>"
37141 },
34f3e481
TL
37142 "until" : {
37143 "description" : "Only list tasks until this UNIX epoch.",
37144 "optional" : 1,
37145 "type" : "integer",
37146 "typetext" : "<integer>"
37147 },
4d47f125
TL
37148 "userfilter" : {
37149 "description" : "Only list tasks from this user.",
44660702 37150 "optional" : 1,
013dc89f
DM
37151 "type" : "string",
37152 "typetext" : "<string>"
44660702 37153 },
4d47f125
TL
37154 "vmid" : {
37155 "description" : "Only list tasks for this VM.",
37156 "format" : "pve-vmid",
44660702
DM
37157 "minimum" : 1,
37158 "optional" : 1,
4bd7df8b 37159 "type" : "integer",
4d47f125
TL
37160 "typetext" : "<integer> (1 - N)"
37161 }
37162 }
37163 },
37164 "permissions" : {
37165 "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).",
37166 "user" : "all"
37167 },
37168 "proxyto" : "node",
37169 "returns" : {
37170 "items" : {
37171 "properties" : {
37172 "endtime" : {
37173 "optional" : 1,
37174 "title" : "Endtime",
37175 "type" : "integer"
37176 },
37177 "id" : {
4d47f125
TL
37178 "title" : "ID",
37179 "type" : "string"
37180 },
37181 "node" : {
4d47f125
TL
37182 "title" : "Node",
37183 "type" : "string"
37184 },
37185 "pid" : {
4d47f125
TL
37186 "title" : "PID",
37187 "type" : "integer"
37188 },
37189 "pstart" : {
4d47f125
TL
37190 "type" : "integer"
37191 },
37192 "starttime" : {
4d47f125
TL
37193 "title" : "Starttime",
37194 "type" : "integer"
37195 },
37196 "status" : {
37197 "optional" : 1,
37198 "title" : "Status",
37199 "type" : "string"
37200 },
37201 "type" : {
4d47f125
TL
37202 "title" : "Type",
37203 "type" : "string"
37204 },
37205 "upid" : {
37206 "title" : "UPID",
37207 "type" : "string"
37208 },
37209 "user" : {
4d47f125
TL
37210 "title" : "User",
37211 "type" : "string"
37212 }
44660702 37213 },
4d47f125
TL
37214 "type" : "object"
37215 },
37216 "links" : [
37217 {
37218 "href" : "{upid}",
37219 "rel" : "child"
37220 }
37221 ],
37222 "type" : "array"
37223 }
37224 }
37225 },
37226 "leaf" : 0,
37227 "path" : "/nodes/{node}/tasks",
37228 "text" : "tasks"
37229 },
37230 {
37231 "children" : [
37232 {
37233 "info" : {
37234 "GET" : {
e9cd3bd4 37235 "allowtoken" : 1,
d2656385 37236 "description" : "Scan remote NFS server.",
4d47f125 37237 "method" : "GET",
d2656385 37238 "name" : "nfsscan",
4d47f125
TL
37239 "parameters" : {
37240 "additionalProperties" : 0,
37241 "properties" : {
37242 "node" : {
37243 "description" : "The cluster node name.",
37244 "format" : "pve-node",
37245 "type" : "string",
37246 "typetext" : "<string>"
d2656385
TL
37247 },
37248 "server" : {
37249 "description" : "The server address (name or IP).",
37250 "format" : "pve-storage-server",
37251 "type" : "string",
37252 "typetext" : "<string>"
4d47f125
TL
37253 }
37254 }
44660702 37255 },
4d47f125
TL
37256 "permissions" : {
37257 "check" : [
37258 "perm",
37259 "/storage",
37260 [
37261 "Datastore.Allocate"
37262 ]
37263 ]
37264 },
37265 "protected" : 1,
37266 "proxyto" : "node",
37267 "returns" : {
37268 "items" : {
37269 "properties" : {
d2656385
TL
37270 "options" : {
37271 "description" : "NFS export options.",
37272 "type" : "string"
37273 },
37274 "path" : {
37275 "description" : "The exported path.",
4d47f125
TL
37276 "type" : "string"
37277 }
37278 },
37279 "type" : "object"
37280 },
37281 "type" : "array"
37282 }
37283 }
37284 },
37285 "leaf" : 1,
d2656385
TL
37286 "path" : "/nodes/{node}/scan/nfs",
37287 "text" : "nfs"
4d47f125
TL
37288 },
37289 {
37290 "info" : {
37291 "GET" : {
e9cd3bd4 37292 "allowtoken" : 1,
d2656385 37293 "description" : "Scan remote CIFS server.",
4d47f125 37294 "method" : "GET",
d2656385 37295 "name" : "cifsscan",
4d47f125
TL
37296 "parameters" : {
37297 "additionalProperties" : 0,
37298 "properties" : {
d2656385
TL
37299 "domain" : {
37300 "description" : "SMB domain (Workgroup).",
37301 "optional" : 1,
37302 "type" : "string",
37303 "typetext" : "<string>"
37304 },
4d47f125
TL
37305 "node" : {
37306 "description" : "The cluster node name.",
37307 "format" : "pve-node",
37308 "type" : "string",
37309 "typetext" : "<string>"
37310 },
d2656385
TL
37311 "password" : {
37312 "description" : "User password.",
37313 "optional" : 1,
37314 "type" : "string",
37315 "typetext" : "<string>"
37316 },
4d47f125
TL
37317 "server" : {
37318 "description" : "The server address (name or IP).",
37319 "format" : "pve-storage-server",
37320 "type" : "string",
37321 "typetext" : "<string>"
d2656385
TL
37322 },
37323 "username" : {
37324 "description" : "User name.",
37325 "optional" : 1,
37326 "type" : "string",
37327 "typetext" : "<string>"
4d47f125
TL
37328 }
37329 }
37330 },
37331 "permissions" : {
37332 "check" : [
37333 "perm",
37334 "/storage",
37335 [
37336 "Datastore.Allocate"
37337 ]
37338 ]
37339 },
37340 "protected" : 1,
37341 "proxyto" : "node",
37342 "returns" : {
37343 "items" : {
37344 "properties" : {
d2656385
TL
37345 "description" : {
37346 "description" : "Descriptive text from server.",
4d47f125
TL
37347 "type" : "string"
37348 },
d2656385
TL
37349 "share" : {
37350 "description" : "The cifs share name.",
4d47f125
TL
37351 "type" : "string"
37352 }
37353 },
37354 "type" : "object"
37355 },
37356 "type" : "array"
37357 }
37358 }
37359 },
37360 "leaf" : 1,
d2656385
TL
37361 "path" : "/nodes/{node}/scan/cifs",
37362 "text" : "cifs"
4d47f125
TL
37363 },
37364 {
37365 "info" : {
37366 "GET" : {
e9cd3bd4 37367 "allowtoken" : 1,
d2656385 37368 "description" : "Scan remote Proxmox Backup Server.",
4d47f125 37369 "method" : "GET",
d2656385 37370 "name" : "pbsscan",
4d47f125
TL
37371 "parameters" : {
37372 "additionalProperties" : 0,
37373 "properties" : {
d2656385
TL
37374 "fingerprint" : {
37375 "description" : "Certificate SHA 256 fingerprint.",
4d47f125 37376 "optional" : 1,
d2656385
TL
37377 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
37378 "type" : "string"
4d47f125
TL
37379 },
37380 "node" : {
37381 "description" : "The cluster node name.",
37382 "format" : "pve-node",
37383 "type" : "string",
37384 "typetext" : "<string>"
37385 },
37386 "password" : {
d2656385 37387 "description" : "User password or API token secret.",
4d47f125
TL
37388 "type" : "string",
37389 "typetext" : "<string>"
37390 },
d2656385
TL
37391 "port" : {
37392 "default" : 8007,
37393 "description" : "Optional port.",
37394 "maximum" : 65535,
37395 "minimum" : 1,
37396 "optional" : 1,
37397 "type" : "integer",
37398 "typetext" : "<integer> (1 - 65535)"
37399 },
4d47f125
TL
37400 "server" : {
37401 "description" : "The server address (name or IP).",
37402 "format" : "pve-storage-server",
37403 "type" : "string",
37404 "typetext" : "<string>"
37405 },
37406 "username" : {
d2656385 37407 "description" : "User-name or API token-ID.",
4d47f125
TL
37408 "type" : "string",
37409 "typetext" : "<string>"
37410 }
37411 }
37412 },
37413 "permissions" : {
37414 "check" : [
37415 "perm",
37416 "/storage",
37417 [
37418 "Datastore.Allocate"
37419 ]
37420 ]
37421 },
37422 "protected" : 1,
37423 "proxyto" : "node",
37424 "returns" : {
37425 "items" : {
37426 "properties" : {
d2656385
TL
37427 "comment" : {
37428 "description" : "Comment from server.",
37429 "optional" : 1,
4d47f125
TL
37430 "type" : "string"
37431 },
d2656385
TL
37432 "store" : {
37433 "description" : "The datastore name.",
4d47f125
TL
37434 "type" : "string"
37435 }
37436 },
37437 "type" : "object"
37438 },
37439 "type" : "array"
56122987 37440 }
44660702 37441 }
56122987 37442 },
4d47f125 37443 "leaf" : 1,
d2656385
TL
37444 "path" : "/nodes/{node}/scan/pbs",
37445 "text" : "pbs"
4d47f125 37446 },
44660702 37447 {
4d47f125
TL
37448 "info" : {
37449 "GET" : {
e9cd3bd4 37450 "allowtoken" : 1,
4d47f125
TL
37451 "description" : "Scan remote GlusterFS server.",
37452 "method" : "GET",
37453 "name" : "glusterfsscan",
37454 "parameters" : {
37455 "additionalProperties" : 0,
37456 "properties" : {
37457 "node" : {
37458 "description" : "The cluster node name.",
37459 "format" : "pve-node",
37460 "type" : "string",
37461 "typetext" : "<string>"
7aacca6f 37462 },
4d47f125
TL
37463 "server" : {
37464 "description" : "The server address (name or IP).",
37465 "format" : "pve-storage-server",
37466 "type" : "string",
37467 "typetext" : "<string>"
44660702 37468 }
7aacca6f 37469 }
56122987 37470 },
4d47f125
TL
37471 "permissions" : {
37472 "check" : [
37473 "perm",
37474 "/storage",
37475 [
37476 "Datastore.Allocate"
37477 ]
37478 ]
37479 },
37480 "protected" : 1,
37481 "proxyto" : "node",
37482 "returns" : {
37483 "items" : {
37484 "properties" : {
37485 "volname" : {
37486 "description" : "The volume name.",
37487 "type" : "string"
7aacca6f
DM
37488 }
37489 },
4d47f125
TL
37490 "type" : "object"
37491 },
37492 "type" : "array"
37493 }
37494 }
37495 },
37496 "leaf" : 1,
37497 "path" : "/nodes/{node}/scan/glusterfs",
37498 "text" : "glusterfs"
37499 },
37500 {
37501 "info" : {
37502 "GET" : {
e9cd3bd4 37503 "allowtoken" : 1,
4d47f125
TL
37504 "description" : "Scan remote iSCSI server.",
37505 "method" : "GET",
37506 "name" : "iscsiscan",
37507 "parameters" : {
37508 "additionalProperties" : 0,
37509 "properties" : {
37510 "node" : {
37511 "description" : "The cluster node name.",
37512 "format" : "pve-node",
37513 "type" : "string",
37514 "typetext" : "<string>"
56122987 37515 },
4d47f125
TL
37516 "portal" : {
37517 "description" : "The iSCSI portal (IP or DNS name with optional port).",
37518 "format" : "pve-storage-portal-dns",
37519 "type" : "string",
37520 "typetext" : "<string>"
37521 }
37522 }
37523 },
37524 "permissions" : {
37525 "check" : [
37526 "perm",
37527 "/storage",
37528 [
37529 "Datastore.Allocate"
37530 ]
37531 ]
37532 },
37533 "protected" : 1,
37534 "proxyto" : "node",
37535 "returns" : {
37536 "items" : {
37537 "properties" : {
37538 "portal" : {
37539 "description" : "The iSCSI portal name.",
37540 "type" : "string"
7aacca6f 37541 },
4d47f125
TL
37542 "target" : {
37543 "description" : "The iSCSI target name.",
37544 "type" : "string"
37545 }
37546 },
37547 "type" : "object"
37548 },
37549 "type" : "array"
37550 }
37551 }
37552 },
37553 "leaf" : 1,
37554 "path" : "/nodes/{node}/scan/iscsi",
37555 "text" : "iscsi"
37556 },
37557 {
37558 "info" : {
37559 "GET" : {
e9cd3bd4 37560 "allowtoken" : 1,
4d47f125
TL
37561 "description" : "List local LVM volume groups.",
37562 "method" : "GET",
37563 "name" : "lvmscan",
37564 "parameters" : {
37565 "additionalProperties" : 0,
37566 "properties" : {
37567 "node" : {
37568 "description" : "The cluster node name.",
37569 "format" : "pve-node",
37570 "type" : "string",
37571 "typetext" : "<string>"
56122987 37572 }
7aacca6f 37573 }
44660702 37574 },
4d47f125
TL
37575 "permissions" : {
37576 "check" : [
37577 "perm",
37578 "/storage",
37579 [
37580 "Datastore.Allocate"
37581 ]
37582 ]
37583 },
37584 "protected" : 1,
37585 "proxyto" : "node",
37586 "returns" : {
37587 "items" : {
37588 "properties" : {
37589 "vg" : {
37590 "description" : "The LVM logical volume group name.",
37591 "type" : "string"
37592 }
37593 },
37594 "type" : "object"
37595 },
37596 "type" : "array"
37597 }
56122987 37598 }
4d47f125
TL
37599 },
37600 "leaf" : 1,
37601 "path" : "/nodes/{node}/scan/lvm",
37602 "text" : "lvm"
37603 },
37604 {
44660702 37605 "info" : {
4d47f125 37606 "GET" : {
e9cd3bd4 37607 "allowtoken" : 1,
4d47f125
TL
37608 "description" : "List local LVM Thin Pools.",
37609 "method" : "GET",
37610 "name" : "lvmthinscan",
44660702
DM
37611 "parameters" : {
37612 "additionalProperties" : 0,
37613 "properties" : {
37614 "node" : {
37615 "description" : "The cluster node name.",
37616 "format" : "pve-node",
013dc89f
DM
37617 "type" : "string",
37618 "typetext" : "<string>"
44660702 37619 },
4d47f125
TL
37620 "vg" : {
37621 "maxLength" : 100,
37622 "pattern" : "[a-zA-Z0-9\\.\\+\\_][a-zA-Z0-9\\.\\+\\_\\-]+",
37623 "type" : "string"
44660702 37624 }
7aacca6f 37625 }
44660702
DM
37626 },
37627 "permissions" : {
4d47f125
TL
37628 "check" : [
37629 "perm",
37630 "/storage",
37631 [
37632 "Datastore.Allocate"
37633 ]
37634 ]
44660702
DM
37635 },
37636 "protected" : 1,
37637 "proxyto" : "node",
37638 "returns" : {
4d47f125
TL
37639 "items" : {
37640 "properties" : {
37641 "lv" : {
37642 "description" : "The LVM Thin Pool name (LVM logical volume).",
37643 "type" : "string"
37644 }
37645 },
37646 "type" : "object"
37647 },
37648 "type" : "array"
7aacca6f 37649 }
4d47f125
TL
37650 }
37651 },
37652 "leaf" : 1,
37653 "path" : "/nodes/{node}/scan/lvmthin",
37654 "text" : "lvmthin"
37655 },
d2656385
TL
37656 {
37657 "info" : {
37658 "GET" : {
37659 "allowtoken" : 1,
37660 "description" : "Scan zfs pool list on local node.",
37661 "method" : "GET",
37662 "name" : "zfsscan",
37663 "parameters" : {
37664 "additionalProperties" : 0,
37665 "properties" : {
37666 "node" : {
37667 "description" : "The cluster node name.",
37668 "format" : "pve-node",
37669 "type" : "string",
37670 "typetext" : "<string>"
37671 }
37672 }
37673 },
37674 "permissions" : {
37675 "check" : [
37676 "perm",
37677 "/storage",
37678 [
37679 "Datastore.Allocate"
37680 ]
37681 ]
37682 },
37683 "protected" : 1,
37684 "proxyto" : "node",
37685 "returns" : {
37686 "items" : {
37687 "properties" : {
37688 "pool" : {
37689 "description" : "ZFS pool name.",
37690 "type" : "string"
37691 }
37692 },
37693 "type" : "object"
37694 },
37695 "type" : "array"
37696 }
37697 }
37698 },
37699 "leaf" : 1,
37700 "path" : "/nodes/{node}/scan/zfs",
37701 "text" : "zfs"
44660702
DM
37702 }
37703 ],
37704 "info" : {
37705 "GET" : {
e9cd3bd4 37706 "allowtoken" : 1,
4d47f125 37707 "description" : "Index of available scan methods",
44660702 37708 "method" : "GET",
4d47f125 37709 "name" : "index",
56122987 37710 "parameters" : {
7aacca6f 37711 "additionalProperties" : 0,
56122987 37712 "properties" : {
56122987
DM
37713 "node" : {
37714 "description" : "The cluster node name.",
44660702 37715 "format" : "pve-node",
013dc89f
DM
37716 "type" : "string",
37717 "typetext" : "<string>"
56122987
DM
37718 }
37719 }
37720 },
7aacca6f
DM
37721 "permissions" : {
37722 "user" : "all"
37723 },
56122987
DM
37724 "returns" : {
37725 "items" : {
37726 "properties" : {
4d47f125 37727 "method" : {
56122987
DM
37728 "type" : "string"
37729 }
37730 },
37731 "type" : "object"
37732 },
56122987
DM
37733 "links" : [
37734 {
4d47f125 37735 "href" : "{method}",
44660702 37736 "rel" : "child"
56122987 37737 }
44660702
DM
37738 ],
37739 "type" : "array"
56122987
DM
37740 }
37741 }
37742 },
44660702 37743 "leaf" : 0,
4d47f125
TL
37744 "path" : "/nodes/{node}/scan",
37745 "text" : "scan"
44660702 37746 },
e2d681b3
TL
37747 {
37748 "children" : [
37749 {
37750 "children" : [
37751 {
37752 "children" : [
37753 {
37754 "info" : {
37755 "GET" : {
e9cd3bd4 37756 "allowtoken" : 1,
e2d681b3
TL
37757 "description" : "List mediated device types for given PCI device.",
37758 "method" : "GET",
37759 "name" : "mdevscan",
37760 "parameters" : {
37761 "additionalProperties" : 0,
37762 "properties" : {
37763 "node" : {
37764 "description" : "The cluster node name.",
37765 "format" : "pve-node",
37766 "type" : "string",
37767 "typetext" : "<string>"
37768 },
37769 "pciid" : {
37770 "description" : "The PCI ID to list the mdev types for.",
37771 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
37772 "type" : "string"
37773 }
37774 }
37775 },
37776 "permissions" : {
37777 "check" : [
37778 "perm",
37779 "/",
37780 [
37781 "Sys.Modify"
37782 ]
37783 ]
37784 },
37785 "protected" : 1,
37786 "proxyto" : "node",
37787 "returns" : {
37788 "items" : {
37789 "properties" : {
37790 "available" : {
37791 "description" : "The number of still available instances of this type.",
37792 "type" : "integer"
37793 },
37794 "description" : {
37795 "type" : "string"
37796 },
37797 "type" : {
37798 "description" : "The name of the mdev type.",
37799 "type" : "string"
37800 }
37801 },
37802 "type" : "object"
37803 },
37804 "type" : "array"
37805 }
37806 }
37807 },
37808 "leaf" : 1,
37809 "path" : "/nodes/{node}/hardware/pci/{pciid}/mdev",
37810 "text" : "mdev"
37811 }
37812 ],
37813 "info" : {
37814 "GET" : {
e9cd3bd4 37815 "allowtoken" : 1,
e2d681b3
TL
37816 "description" : "Index of available pci methods",
37817 "method" : "GET",
37818 "name" : "pciindex",
37819 "parameters" : {
37820 "additionalProperties" : 0,
37821 "properties" : {
37822 "node" : {
37823 "description" : "The cluster node name.",
37824 "format" : "pve-node",
37825 "type" : "string",
37826 "typetext" : "<string>"
37827 },
37828 "pciid" : {
37829 "pattern" : "(?:[0-9a-fA-F]{4}:)?[0-9a-fA-F]{2}:[0-9a-fA-F]{2}\\.[0-9a-fA-F]",
37830 "type" : "string"
37831 }
37832 }
37833 },
37834 "permissions" : {
37835 "user" : "all"
37836 },
37837 "returns" : {
37838 "items" : {
37839 "properties" : {
37840 "method" : {
37841 "type" : "string"
37842 }
37843 },
37844 "type" : "object"
37845 },
37846 "links" : [
37847 {
37848 "href" : "{method}",
37849 "rel" : "child"
37850 }
37851 ],
37852 "type" : "array"
37853 }
37854 }
37855 },
37856 "leaf" : 0,
37857 "path" : "/nodes/{node}/hardware/pci/{pciid}",
37858 "text" : "{pciid}"
37859 }
37860 ],
37861 "info" : {
37862 "GET" : {
e9cd3bd4 37863 "allowtoken" : 1,
e2d681b3
TL
37864 "description" : "List local PCI devices.",
37865 "method" : "GET",
37866 "name" : "pciscan",
37867 "parameters" : {
37868 "additionalProperties" : 0,
37869 "properties" : {
37870 "node" : {
37871 "description" : "The cluster node name.",
37872 "format" : "pve-node",
37873 "type" : "string",
37874 "typetext" : "<string>"
37875 },
37876 "pci-class-blacklist" : {
5370fa8c
TL
37877 "default" : "05;06;0b",
37878 "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
37879 "format" : "string-list",
37880 "optional" : 1,
37881 "type" : "string",
37882 "typetext" : "<string>"
37883 },
37884 "verbose" : {
37885 "default" : 1,
37886 "description" : "If disabled, does only print the PCI IDs. Otherwise, additional information like vendor and device will be returned.",
37887 "optional" : 1,
37888 "type" : "boolean",
37889 "typetext" : "<boolean>"
37890 }
37891 }
37892 },
37893 "permissions" : {
37894 "check" : [
37895 "perm",
37896 "/",
37897 [
37898 "Sys.Modify"
37899 ]
37900 ]
37901 },
37902 "protected" : 1,
37903 "proxyto" : "node",
37904 "returns" : {
37905 "items" : {
37906 "properties" : {
37907 "class" : {
37908 "description" : "The PCI Class of the device.",
37909 "type" : "string"
37910 },
37911 "device" : {
37912 "description" : "The Device ID.",
37913 "type" : "string"
37914 },
37915 "device_name" : {
37916 "optional" : 1,
37917 "type" : "string"
37918 },
37919 "id" : {
37920 "description" : "The PCI ID.",
37921 "type" : "string"
37922 },
37923 "iommugroup" : {
37924 "description" : "The IOMMU group in which the device is in. If no IOMMU group is detected, it is set to -1.",
37925 "type" : "integer"
37926 },
37927 "mdev" : {
37928 "description" : "If set, marks that the device is capable of creating mediated devices.",
37929 "optional" : 1,
37930 "type" : "boolean"
37931 },
37932 "subsystem_device" : {
37933 "description" : "The Subsystem Device ID.",
37934 "optional" : 1,
37935 "type" : "string"
37936 },
37937 "subsystem_device_name" : {
37938 "optional" : 1,
37939 "type" : "string"
37940 },
37941 "subsystem_vendor" : {
37942 "description" : "The Subsystem Vendor ID.",
37943 "optional" : 1,
37944 "type" : "string"
37945 },
37946 "subsystem_vendor_name" : {
37947 "optional" : 1,
37948 "type" : "string"
37949 },
37950 "vendor" : {
37951 "description" : "The Vendor ID.",
37952 "type" : "string"
37953 },
37954 "vendor_name" : {
37955 "optional" : 1,
37956 "type" : "string"
37957 }
37958 },
37959 "type" : "object"
37960 },
37961 "links" : [
37962 {
37963 "href" : "{id}",
37964 "rel" : "child"
37965 }
37966 ],
37967 "type" : "array"
37968 }
37969 }
37970 },
37971 "leaf" : 0,
37972 "path" : "/nodes/{node}/hardware/pci",
37973 "text" : "pci"
d2656385
TL
37974 },
37975 {
37976 "info" : {
37977 "GET" : {
37978 "allowtoken" : 1,
37979 "description" : "List local USB devices.",
37980 "method" : "GET",
37981 "name" : "usbscan",
37982 "parameters" : {
37983 "additionalProperties" : 0,
37984 "properties" : {
37985 "node" : {
37986 "description" : "The cluster node name.",
37987 "format" : "pve-node",
37988 "type" : "string",
37989 "typetext" : "<string>"
37990 }
37991 }
37992 },
37993 "permissions" : {
37994 "check" : [
37995 "perm",
37996 "/",
37997 [
37998 "Sys.Modify"
37999 ]
38000 ]
38001 },
38002 "protected" : 1,
38003 "proxyto" : "node",
38004 "returns" : {
38005 "items" : {
38006 "properties" : {
38007 "busnum" : {
38008 "type" : "integer"
38009 },
38010 "class" : {
38011 "type" : "integer"
38012 },
38013 "devnum" : {
38014 "type" : "integer"
38015 },
38016 "level" : {
38017 "type" : "integer"
38018 },
38019 "manufacturer" : {
38020 "optional" : 1,
38021 "type" : "string"
38022 },
38023 "port" : {
38024 "type" : "integer"
38025 },
38026 "prodid" : {
38027 "type" : "string"
38028 },
38029 "product" : {
38030 "optional" : 1,
38031 "type" : "string"
38032 },
38033 "serial" : {
38034 "optional" : 1,
38035 "type" : "string"
38036 },
38037 "speed" : {
38038 "type" : "string"
38039 },
38040 "usbpath" : {
38041 "optional" : 1,
38042 "type" : "string"
38043 },
38044 "vendid" : {
38045 "type" : "string"
38046 }
38047 },
38048 "type" : "object"
38049 },
38050 "type" : "array"
38051 }
38052 }
38053 },
38054 "leaf" : 1,
38055 "path" : "/nodes/{node}/hardware/usb",
38056 "text" : "usb"
e2d681b3
TL
38057 }
38058 ],
38059 "info" : {
38060 "GET" : {
e9cd3bd4 38061 "allowtoken" : 1,
e2d681b3
TL
38062 "description" : "Index of hardware types",
38063 "method" : "GET",
38064 "name" : "index",
38065 "parameters" : {
38066 "additionalProperties" : 0,
38067 "properties" : {
38068 "node" : {
38069 "description" : "The cluster node name.",
38070 "format" : "pve-node",
38071 "type" : "string",
38072 "typetext" : "<string>"
38073 }
38074 }
38075 },
38076 "permissions" : {
38077 "user" : "all"
38078 },
38079 "returns" : {
38080 "items" : {
38081 "properties" : {
38082 "type" : {
38083 "type" : "string"
38084 }
38085 },
38086 "type" : "object"
38087 },
38088 "links" : [
38089 {
38090 "href" : "{type}",
38091 "rel" : "child"
38092 }
38093 ],
38094 "type" : "array"
38095 }
38096 }
38097 },
38098 "leaf" : 0,
38099 "path" : "/nodes/{node}/hardware",
38100 "text" : "hardware"
38101 },
d2656385
TL
38102 {
38103 "children" : [
38104 {
38105 "children" : [
0695fdaf
TL
38106 {
38107 "info" : {
38108 "GET" : {
38109 "allowtoken" : 1,
38110 "description" : "List all custom and default CPU models.",
38111 "method" : "GET",
38112 "name" : "index",
38113 "parameters" : {
38114 "additionalProperties" : 0,
38115 "properties" : {
38116 "node" : {
38117 "description" : "The cluster node name.",
38118 "format" : "pve-node",
38119 "type" : "string",
38120 "typetext" : "<string>"
38121 }
38122 }
38123 },
38124 "permissions" : {
38125 "description" : "Only returns custom models when the current user has Sys.Audit on /nodes.",
38126 "user" : "all"
38127 },
38128 "returns" : {
38129 "items" : {
38130 "properties" : {
38131 "custom" : {
38132 "description" : "True if this is a custom CPU model.",
38133 "type" : "boolean"
38134 },
38135 "name" : {
38136 "description" : "Name of the CPU model. Identifies it for subsequent API calls. Prefixed with 'custom-' for custom models.",
38137 "type" : "string"
38138 },
38139 "vendor" : {
38140 "description" : "CPU vendor visible to the guest when this model is selected. Vendor of 'reported-model' in case of custom models.",
38141 "type" : "string"
38142 }
38143 },
38144 "type" : "object"
38145 },
38146 "links" : [
38147 {
38148 "href" : "{name}",
38149 "rel" : "child"
38150 }
38151 ],
38152 "type" : "array"
38153 }
38154 }
38155 },
38156 "leaf" : 1,
38157 "path" : "/nodes/{node}/capabilities/qemu/cpu",
38158 "text" : "cpu"
38159 },
d2656385
TL
38160 {
38161 "info" : {
38162 "GET" : {
38163 "allowtoken" : 1,
38164 "description" : "Get available QEMU/KVM machine types.",
38165 "method" : "GET",
38166 "name" : "types",
38167 "parameters" : {
38168 "additionalProperties" : 0,
38169 "properties" : {
38170 "node" : {
38171 "description" : "The cluster node name.",
38172 "format" : "pve-node",
38173 "type" : "string",
38174 "typetext" : "<string>"
38175 }
38176 }
38177 },
38178 "permissions" : {
38179 "user" : "all"
38180 },
38181 "proxyto" : "node",
38182 "returns" : {
38183 "items" : {
38184 "additionalProperties" : 1,
38185 "properties" : {
38186 "id" : {
38187 "description" : "Full name of machine type and version.",
38188 "type" : "string"
38189 },
38190 "type" : {
38191 "description" : "The machine type.",
38192 "enum" : [
38193 "q35",
38194 "i440fx"
38195 ],
38196 "type" : "string"
38197 },
38198 "version" : {
38199 "description" : "The machine version.",
38200 "type" : "string"
38201 }
38202 },
38203 "type" : "object"
38204 },
38205 "type" : "array"
38206 }
38207 }
38208 },
38209 "leaf" : 1,
38210 "path" : "/nodes/{node}/capabilities/qemu/machines",
38211 "text" : "machines"
38212 }
38213 ],
38214 "info" : {
38215 "GET" : {
38216 "allowtoken" : 1,
38217 "description" : "QEMU capabilities index.",
38218 "method" : "GET",
38219 "name" : "qemu_caps_index",
38220 "parameters" : {
38221 "additionalProperties" : 0,
38222 "properties" : {
38223 "node" : {
38224 "description" : "The cluster node name.",
38225 "format" : "pve-node",
38226 "type" : "string",
38227 "typetext" : "<string>"
38228 }
38229 }
38230 },
38231 "permissions" : {
38232 "user" : "all"
38233 },
38234 "returns" : {
38235 "items" : {
38236 "properties" : {},
38237 "type" : "object"
38238 },
38239 "links" : [
38240 {
38241 "href" : "{name}",
38242 "rel" : "child"
38243 }
38244 ],
38245 "type" : "array"
38246 }
38247 }
38248 },
38249 "leaf" : 0,
38250 "path" : "/nodes/{node}/capabilities/qemu",
38251 "text" : "qemu"
38252 }
38253 ],
38254 "info" : {
38255 "GET" : {
38256 "allowtoken" : 1,
38257 "description" : "Node capabilities index.",
38258 "method" : "GET",
38259 "name" : "index",
38260 "parameters" : {
38261 "additionalProperties" : 0,
38262 "properties" : {
38263 "node" : {
38264 "description" : "The cluster node name.",
38265 "format" : "pve-node",
38266 "type" : "string",
38267 "typetext" : "<string>"
38268 }
38269 }
38270 },
38271 "permissions" : {
38272 "user" : "all"
38273 },
38274 "returns" : {
38275 "items" : {
38276 "properties" : {},
38277 "type" : "object"
38278 },
38279 "links" : [
38280 {
38281 "href" : "{name}",
38282 "rel" : "child"
38283 }
38284 ],
38285 "type" : "array"
38286 }
38287 }
38288 },
38289 "leaf" : 0,
38290 "path" : "/nodes/{node}/capabilities",
38291 "text" : "capabilities"
38292 },
44660702 38293 {
56122987
DM
38294 "children" : [
38295 {
4d47f125 38296 "children" : [
739d4d64
TL
38297 {
38298 "info" : {
38299 "DELETE" : {
38300 "allowtoken" : 1,
38301 "description" : "Prune backups. Only those using the standard naming scheme are considered.",
38302 "method" : "DELETE",
38303 "name" : "delete",
38304 "parameters" : {
38305 "additionalProperties" : 0,
38306 "properties" : {
38307 "node" : {
38308 "description" : "The cluster node name.",
38309 "format" : "pve-node",
38310 "type" : "string",
38311 "typetext" : "<string>"
38312 },
38313 "prune-backups" : {
38314 "description" : "Use these retention options instead of those from the storage configuration.",
38315 "format" : "prune-backups",
38316 "optional" : 1,
38317 "type" : "string",
4772952b 38318 "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
38319 },
38320 "storage" : {
38321 "description" : "The storage identifier.",
38322 "format" : "pve-storage-id",
38323 "type" : "string",
38324 "typetext" : "<string>"
38325 },
38326 "type" : {
38327 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
38328 "enum" : [
38329 "qemu",
38330 "lxc"
38331 ],
38332 "optional" : 1,
38333 "type" : "string"
38334 },
38335 "vmid" : {
38336 "description" : "Only prune backups for this VM.",
38337 "format" : "pve-vmid",
38338 "minimum" : 1,
38339 "optional" : 1,
38340 "type" : "integer",
38341 "typetext" : "<integer> (1 - N)"
38342 }
38343 }
38344 },
38345 "permissions" : {
38346 "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).",
38347 "user" : "all"
38348 },
38349 "protected" : 1,
38350 "proxyto" : "node",
38351 "returns" : {
38352 "type" : "string"
38353 }
38354 },
38355 "GET" : {
38356 "allowtoken" : 1,
4772952b 38357 "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
38358 "method" : "GET",
38359 "name" : "dryrun",
38360 "parameters" : {
38361 "additionalProperties" : 0,
38362 "properties" : {
38363 "node" : {
38364 "description" : "The cluster node name.",
38365 "format" : "pve-node",
38366 "type" : "string",
38367 "typetext" : "<string>"
38368 },
38369 "prune-backups" : {
38370 "description" : "Use these retention options instead of those from the storage configuration.",
38371 "format" : "prune-backups",
38372 "optional" : 1,
38373 "type" : "string",
4772952b 38374 "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
38375 },
38376 "storage" : {
38377 "description" : "The storage identifier.",
38378 "format" : "pve-storage-id",
38379 "type" : "string",
38380 "typetext" : "<string>"
38381 },
38382 "type" : {
38383 "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.",
38384 "enum" : [
38385 "qemu",
38386 "lxc"
38387 ],
38388 "optional" : 1,
38389 "type" : "string"
38390 },
38391 "vmid" : {
38392 "description" : "Only consider backups for this guest.",
38393 "format" : "pve-vmid",
38394 "minimum" : 1,
38395 "optional" : 1,
38396 "type" : "integer",
38397 "typetext" : "<integer> (1 - N)"
38398 }
38399 }
38400 },
38401 "permissions" : {
38402 "check" : [
38403 "perm",
38404 "/storage/{storage}",
38405 [
38406 "Datastore.Audit",
38407 "Datastore.AllocateSpace"
38408 ],
38409 "any",
38410 1
38411 ]
38412 },
38413 "protected" : 1,
38414 "proxyto" : "node",
38415 "returns" : {
38416 "items" : {
38417 "properties" : {
38418 "ctime" : {
38419 "description" : "Creation time of the backup (seconds since the UNIX epoch).",
38420 "type" : "integer"
38421 },
38422 "mark" : {
5370fa8c
TL
38423 "description" : "Whether the backup would be kept or removed. Backups that are protected or don't use the standard naming scheme are not removed.",
38424 "enum" : [
38425 "keep",
38426 "remove",
38427 "protected",
38428 "renamed"
38429 ],
739d4d64
TL
38430 "type" : "string"
38431 },
38432 "type" : {
38433 "description" : "One of 'qemu', 'lxc', 'openvz' or 'unknown'.",
38434 "type" : "string"
38435 },
38436 "vmid" : {
38437 "description" : "The VM the backup belongs to.",
38438 "optional" : 1,
38439 "type" : "integer"
38440 },
38441 "volid" : {
38442 "description" : "Backup volume ID.",
38443 "type" : "string"
38444 }
38445 },
38446 "type" : "object"
38447 },
38448 "type" : "array"
38449 }
38450 }
38451 },
38452 "leaf" : 1,
38453 "path" : "/nodes/{node}/storage/{storage}/prunebackups",
38454 "text" : "prunebackups"
38455 },
4d47f125
TL
38456 {
38457 "children" : [
38458 {
38459 "info" : {
38460 "DELETE" : {
e9cd3bd4 38461 "allowtoken" : 1,
4d47f125
TL
38462 "description" : "Delete volume",
38463 "method" : "DELETE",
38464 "name" : "delete",
38465 "parameters" : {
38466 "additionalProperties" : 0,
38467 "properties" : {
1c532546
TL
38468 "delay" : {
38469 "description" : "Time to wait for the task to finish. We return 'null' if the task finish within that time.",
38470 "maximum" : 30,
38471 "minimum" : 1,
38472 "optional" : 1,
38473 "type" : "integer",
38474 "typetext" : "<integer> (1 - 30)"
38475 },
4d47f125
TL
38476 "node" : {
38477 "description" : "The cluster node name.",
38478 "format" : "pve-node",
38479 "type" : "string",
38480 "typetext" : "<string>"
38481 },
38482 "storage" : {
38483 "description" : "The storage identifier.",
38484 "format" : "pve-storage-id",
38485 "optional" : 1,
38486 "type" : "string",
38487 "typetext" : "<string>"
38488 },
38489 "volume" : {
38490 "description" : "Volume identifier",
38491 "type" : "string",
38492 "typetext" : "<string>"
38493 }
38494 }
38495 },
38496 "permissions" : {
38497 "description" : "You need 'Datastore.Allocate' privilege on the storage (or 'Datastore.AllocateSpace' for backup volumes if you have VM.Backup privilege on the VM).",
38498 "user" : "all"
38499 },
38500 "protected" : 1,
38501 "proxyto" : "node",
38502 "returns" : {
1c532546
TL
38503 "optional" : 1,
38504 "type" : "string"
4d47f125
TL
38505 }
38506 },
38507 "GET" : {
e9cd3bd4 38508 "allowtoken" : 1,
4d47f125
TL
38509 "description" : "Get volume attributes",
38510 "method" : "GET",
38511 "name" : "info",
38512 "parameters" : {
38513 "additionalProperties" : 0,
38514 "properties" : {
38515 "node" : {
38516 "description" : "The cluster node name.",
38517 "format" : "pve-node",
38518 "type" : "string",
38519 "typetext" : "<string>"
38520 },
38521 "storage" : {
38522 "description" : "The storage identifier.",
38523 "format" : "pve-storage-id",
38524 "optional" : 1,
38525 "type" : "string",
38526 "typetext" : "<string>"
38527 },
38528 "volume" : {
38529 "description" : "Volume identifier",
38530 "type" : "string",
38531 "typetext" : "<string>"
38532 }
38533 }
38534 },
38535 "permissions" : {
38536 "description" : "You need read access for the volume.",
38537 "user" : "all"
38538 },
38539 "protected" : 1,
38540 "proxyto" : "node",
38541 "returns" : {
4772952b
TL
38542 "properties" : {
38543 "format" : {
38544 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
38545 "type" : "string"
38546 },
38547 "notes" : {
38548 "description" : "Optional notes.",
38549 "optional" : 1,
38550 "type" : "string"
38551 },
38552 "path" : {
38553 "description" : "The Path",
38554 "type" : "string"
38555 },
5370fa8c
TL
38556 "protected" : {
38557 "description" : "Protection status. Currently only supported for backups.",
38558 "optional" : 1,
38559 "type" : "boolean"
38560 },
4772952b
TL
38561 "size" : {
38562 "description" : "Volume size in bytes.",
38563 "renderer" : "bytes",
38564 "type" : "integer"
38565 },
38566 "used" : {
38567 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
38568 "renderer" : "bytes",
38569 "type" : "integer"
38570 }
38571 },
4d47f125
TL
38572 "type" : "object"
38573 }
38574 },
38575 "POST" : {
e9cd3bd4 38576 "allowtoken" : 1,
4d47f125
TL
38577 "description" : "Copy a volume. This is experimental code - do not use.",
38578 "method" : "POST",
38579 "name" : "copy",
38580 "parameters" : {
38581 "additionalProperties" : 0,
38582 "properties" : {
38583 "node" : {
38584 "description" : "The cluster node name.",
38585 "format" : "pve-node",
38586 "type" : "string",
38587 "typetext" : "<string>"
38588 },
38589 "storage" : {
38590 "description" : "The storage identifier.",
38591 "format" : "pve-storage-id",
38592 "optional" : 1,
38593 "type" : "string",
38594 "typetext" : "<string>"
38595 },
38596 "target" : {
38597 "description" : "Target volume identifier",
38598 "type" : "string",
38599 "typetext" : "<string>"
38600 },
38601 "target_node" : {
38602 "description" : "Target node. Default is local node.",
38603 "format" : "pve-node",
38604 "optional" : 1,
38605 "type" : "string",
38606 "typetext" : "<string>"
38607 },
38608 "volume" : {
38609 "description" : "Source volume identifier",
38610 "type" : "string",
38611 "typetext" : "<string>"
38612 }
38613 }
38614 },
38615 "protected" : 1,
38616 "proxyto" : "node",
38617 "returns" : {
38618 "type" : "string"
38619 }
4772952b
TL
38620 },
38621 "PUT" : {
38622 "allowtoken" : 1,
38623 "description" : "Update volume attributes",
38624 "method" : "PUT",
38625 "name" : "updateattributes",
38626 "parameters" : {
38627 "additionalProperties" : 0,
38628 "properties" : {
38629 "node" : {
38630 "description" : "The cluster node name.",
38631 "format" : "pve-node",
38632 "type" : "string",
38633 "typetext" : "<string>"
38634 },
38635 "notes" : {
38636 "description" : "The new notes.",
38637 "optional" : 1,
38638 "type" : "string",
38639 "typetext" : "<string>"
38640 },
5370fa8c
TL
38641 "protected" : {
38642 "description" : "Protection status. Currently only supported for backups.",
38643 "optional" : 1,
38644 "type" : "boolean",
38645 "typetext" : "<boolean>"
38646 },
4772952b
TL
38647 "storage" : {
38648 "description" : "The storage identifier.",
38649 "format" : "pve-storage-id",
38650 "optional" : 1,
38651 "type" : "string",
38652 "typetext" : "<string>"
38653 },
38654 "volume" : {
38655 "description" : "Volume identifier",
38656 "type" : "string",
38657 "typetext" : "<string>"
38658 }
38659 }
38660 },
38661 "permissions" : {
38662 "description" : "You need read access for the volume.",
38663 "user" : "all"
38664 },
38665 "protected" : 1,
38666 "proxyto" : "node",
38667 "returns" : {
38668 "type" : "null"
38669 }
4d47f125
TL
38670 }
38671 },
38672 "leaf" : 1,
38673 "path" : "/nodes/{node}/storage/{storage}/content/{volume}",
38674 "text" : "{volume}"
44660702 38675 }
4d47f125
TL
38676 ],
38677 "info" : {
38678 "GET" : {
e9cd3bd4 38679 "allowtoken" : 1,
4d47f125
TL
38680 "description" : "List storage content.",
38681 "method" : "GET",
38682 "name" : "index",
38683 "parameters" : {
38684 "additionalProperties" : 0,
38685 "properties" : {
38686 "content" : {
38687 "description" : "Only list content of this type.",
38688 "format" : "pve-storage-content",
38689 "optional" : 1,
38690 "type" : "string",
38691 "typetext" : "<string>"
38692 },
38693 "node" : {
38694 "description" : "The cluster node name.",
38695 "format" : "pve-node",
38696 "type" : "string",
38697 "typetext" : "<string>"
38698 },
38699 "storage" : {
38700 "description" : "The storage identifier.",
38701 "format" : "pve-storage-id",
38702 "type" : "string",
38703 "typetext" : "<string>"
38704 },
38705 "vmid" : {
38706 "description" : "Only list images for this VM",
38707 "format" : "pve-vmid",
38708 "minimum" : 1,
38709 "optional" : 1,
38710 "type" : "integer",
38711 "typetext" : "<integer> (1 - N)"
38712 }
56122987 38713 }
44660702 38714 },
4d47f125
TL
38715 "permissions" : {
38716 "check" : [
38717 "perm",
38718 "/storage/{storage}",
38719 [
38720 "Datastore.Audit",
38721 "Datastore.AllocateSpace"
38722 ],
38723 "any",
38724 1
38725 ]
7aacca6f 38726 },
4d47f125
TL
38727 "protected" : 1,
38728 "proxyto" : "node",
38729 "returns" : {
38730 "items" : {
38731 "properties" : {
c5aa7e14
TL
38732 "ctime" : {
38733 "description" : "Creation time (seconds since the UNIX Epoch).",
38734 "minimum" : 0,
38735 "optional" : 1,
38736 "type" : "integer"
38737 },
d2656385
TL
38738 "encrypted" : {
38739 "description" : "If whole backup is encrypted, value is the fingerprint or '1' if encrypted. Only useful for the Proxmox Backup Server storage type.",
38740 "optional" : 1,
38741 "type" : "string"
38742 },
4d47f125
TL
38743 "format" : {
38744 "description" : "Format identifier ('raw', 'qcow2', 'subvol', 'iso', 'tgz' ...)",
38745 "type" : "string"
38746 },
4772952b
TL
38747 "notes" : {
38748 "description" : "Optional notes. If they contain multiple lines, only the first one is returned here.",
38749 "optional" : 1,
38750 "type" : "string"
38751 },
4d47f125
TL
38752 "parent" : {
38753 "description" : "Volume identifier of parent (for linked cloned).",
38754 "optional" : 1,
38755 "type" : "string"
38756 },
5370fa8c
TL
38757 "protected" : {
38758 "description" : "Protection status. Currently only supported for backups.",
38759 "optional" : 1,
38760 "type" : "boolean"
38761 },
4d47f125
TL
38762 "size" : {
38763 "description" : "Volume size in bytes.",
38764 "renderer" : "bytes",
38765 "type" : "integer"
38766 },
38767 "used" : {
c5aa7e14 38768 "description" : "Used space. Please note that most storage plugins do not report anything useful here.",
4d47f125
TL
38769 "optional" : 1,
38770 "renderer" : "bytes",
38771 "type" : "integer"
38772 },
4772952b
TL
38773 "verification" : {
38774 "description" : "Last backup verification result, only useful for PBS storages.",
38775 "optional" : 1,
38776 "properties" : {
38777 "state" : {
38778 "description" : "Last backup verification state.",
38779 "type" : "string"
38780 },
38781 "upid" : {
38782 "description" : "Last backup verification UPID.",
38783 "type" : "string"
38784 }
38785 },
38786 "type" : "object"
38787 },
4d47f125
TL
38788 "vmid" : {
38789 "description" : "Associated Owner VMID.",
38790 "optional" : 1,
38791 "type" : "integer"
38792 },
38793 "volid" : {
38794 "description" : "Volume identifier.",
38795 "type" : "string"
38796 }
38797 },
38798 "type" : "object"
44660702 38799 },
4d47f125
TL
38800 "links" : [
38801 {
38802 "href" : "{volid}",
38803 "rel" : "child"
38804 }
38805 ],
38806 "type" : "array"
38807 }
38808 },
38809 "POST" : {
e9cd3bd4 38810 "allowtoken" : 1,
4d47f125
TL
38811 "description" : "Allocate disk images.",
38812 "method" : "POST",
38813 "name" : "create",
38814 "parameters" : {
38815 "additionalProperties" : 0,
38816 "properties" : {
38817 "filename" : {
38818 "description" : "The name of the file to create.",
38819 "type" : "string",
38820 "typetext" : "<string>"
38821 },
38822 "format" : {
38823 "enum" : [
38824 "raw",
38825 "qcow2",
38826 "subvol"
38827 ],
38828 "optional" : 1,
38829 "requires" : "size",
38830 "type" : "string"
38831 },
38832 "node" : {
38833 "description" : "The cluster node name.",
38834 "format" : "pve-node",
38835 "type" : "string",
38836 "typetext" : "<string>"
38837 },
38838 "size" : {
38839 "description" : "Size in kilobyte (1024 bytes). Optional suffixes 'M' (megabyte, 1024K) and 'G' (gigabyte, 1024M)",
38840 "pattern" : "\\d+[MG]?",
38841 "type" : "string"
38842 },
38843 "storage" : {
38844 "description" : "The storage identifier.",
38845 "format" : "pve-storage-id",
38846 "type" : "string",
38847 "typetext" : "<string>"
38848 },
38849 "vmid" : {
38850 "description" : "Specify owner VM",
38851 "format" : "pve-vmid",
38852 "minimum" : 1,
38853 "type" : "integer",
38854 "typetext" : "<integer> (1 - N)"
38855 }
44660702
DM
38856 }
38857 },
4d47f125
TL
38858 "permissions" : {
38859 "check" : [
38860 "perm",
38861 "/storage/{storage}",
38862 [
38863 "Datastore.AllocateSpace"
38864 ]
38865 ]
27a7acb2 38866 },
4d47f125
TL
38867 "protected" : 1,
38868 "proxyto" : "node",
38869 "returns" : {
38870 "description" : "Volume identifier",
38871 "type" : "string"
27a7acb2
DM
38872 }
38873 }
38874 },
4d47f125
TL
38875 "leaf" : 0,
38876 "path" : "/nodes/{node}/storage/{storage}/content",
38877 "text" : "content"
38878 },
d2656385
TL
38879 {
38880 "children" : [
38881 {
38882 "info" : {
38883 "GET" : {
38884 "allowtoken" : 1,
38885 "description" : "List files and directories for single file restore under the given path.",
38886 "method" : "GET",
38887 "name" : "list",
38888 "parameters" : {
38889 "additionalProperties" : 0,
38890 "properties" : {
38891 "filepath" : {
38892 "description" : "base64-path to the directory or file being listed, or \"/\".",
38893 "type" : "string",
38894 "typetext" : "<string>"
38895 },
38896 "node" : {
38897 "description" : "The cluster node name.",
38898 "format" : "pve-node",
38899 "type" : "string",
38900 "typetext" : "<string>"
38901 },
38902 "storage" : {
38903 "description" : "The storage identifier.",
38904 "format" : "pve-storage-id",
38905 "type" : "string",
38906 "typetext" : "<string>"
38907 },
38908 "volume" : {
38909 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
38910 "type" : "string",
38911 "typetext" : "<string>"
38912 }
38913 }
38914 },
38915 "permissions" : {
38916 "description" : "You need read access for the volume.",
38917 "user" : "all"
38918 },
38919 "protected" : 1,
38920 "proxyto" : "node",
38921 "returns" : {
38922 "items" : {
38923 "properties" : {
38924 "filepath" : {
38925 "description" : "base64 path of the current entry",
38926 "type" : "string"
38927 },
38928 "leaf" : {
38929 "description" : "If this entry is a leaf in the directory graph.",
38930 "type" : "boolean"
38931 },
38932 "mtime" : {
38933 "description" : "Entry last-modified time (unix timestamp).",
38934 "optional" : 1,
38935 "type" : "integer"
38936 },
38937 "size" : {
38938 "description" : "Entry file size.",
38939 "optional" : 1,
38940 "type" : "integer"
38941 },
38942 "text" : {
38943 "description" : "Entry display text.",
38944 "type" : "string"
38945 },
38946 "type" : {
38947 "description" : "Entry type.",
38948 "type" : "string"
38949 }
38950 },
38951 "type" : "object"
38952 },
38953 "type" : "array"
38954 }
38955 }
38956 },
38957 "leaf" : 1,
38958 "path" : "/nodes/{node}/storage/{storage}/file-restore/list",
38959 "text" : "list"
38960 },
38961 {
38962 "info" : {
38963 "GET" : {
38964 "allowtoken" : 1,
38965 "description" : "Extract a file or directory (as zip archive) from a PBS backup.",
38966 "method" : "GET",
38967 "name" : "download",
38968 "parameters" : {
38969 "additionalProperties" : 0,
38970 "properties" : {
38971 "filepath" : {
38972 "description" : "base64-path to the directory or file to download.",
38973 "type" : "string",
38974 "typetext" : "<string>"
38975 },
38976 "node" : {
38977 "description" : "The cluster node name.",
38978 "format" : "pve-node",
38979 "type" : "string",
38980 "typetext" : "<string>"
38981 },
38982 "storage" : {
38983 "description" : "The storage identifier.",
38984 "format" : "pve-storage-id",
38985 "type" : "string",
38986 "typetext" : "<string>"
38987 },
38988 "volume" : {
38989 "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.",
38990 "type" : "string",
38991 "typetext" : "<string>"
38992 }
38993 }
38994 },
38995 "permissions" : {
38996 "description" : "You need read access for the volume.",
38997 "user" : "all"
38998 },
38999 "protected" : 1,
39000 "proxyto" : "node",
39001 "returns" : {
39002 "type" : "any"
39003 }
39004 }
39005 },
39006 "leaf" : 1,
39007 "path" : "/nodes/{node}/storage/{storage}/file-restore/download",
39008 "text" : "download"
39009 }
39010 ],
39011 "leaf" : 0,
39012 "path" : "/nodes/{node}/storage/{storage}/file-restore",
39013 "text" : "file-restore"
39014 },
4d47f125
TL
39015 {
39016 "info" : {
39017 "GET" : {
e9cd3bd4 39018 "allowtoken" : 1,
4d47f125
TL
39019 "description" : "Read storage status.",
39020 "method" : "GET",
39021 "name" : "read_status",
39022 "parameters" : {
39023 "additionalProperties" : 0,
39024 "properties" : {
39025 "node" : {
39026 "description" : "The cluster node name.",
39027 "format" : "pve-node",
39028 "type" : "string",
39029 "typetext" : "<string>"
39030 },
39031 "storage" : {
39032 "description" : "The storage identifier.",
39033 "format" : "pve-storage-id",
39034 "type" : "string",
39035 "typetext" : "<string>"
39036 }
27a7acb2
DM
39037 }
39038 },
4d47f125
TL
39039 "permissions" : {
39040 "check" : [
39041 "perm",
39042 "/storage/{storage}",
39043 [
39044 "Datastore.Audit",
39045 "Datastore.AllocateSpace"
39046 ],
39047 "any",
39048 1
39049 ]
7aacca6f 39050 },
4d47f125
TL
39051 "protected" : 1,
39052 "proxyto" : "node",
39053 "returns" : {
39054 "type" : "object"
56122987 39055 }
44660702
DM
39056 }
39057 },
4d47f125
TL
39058 "leaf" : 1,
39059 "path" : "/nodes/{node}/storage/{storage}/status",
39060 "text" : "status"
39061 },
39062 {
39063 "info" : {
39064 "GET" : {
e9cd3bd4 39065 "allowtoken" : 1,
4d47f125
TL
39066 "description" : "Read storage RRD statistics (returns PNG).",
39067 "method" : "GET",
39068 "name" : "rrd",
39069 "parameters" : {
39070 "additionalProperties" : 0,
39071 "properties" : {
39072 "cf" : {
39073 "description" : "The RRD consolidation function",
39074 "enum" : [
39075 "AVERAGE",
39076 "MAX"
39077 ],
39078 "optional" : 1,
39079 "type" : "string"
39080 },
39081 "ds" : {
39082 "description" : "The list of datasources you want to display.",
39083 "format" : "pve-configid-list",
39084 "type" : "string",
39085 "typetext" : "<string>"
39086 },
39087 "node" : {
39088 "description" : "The cluster node name.",
39089 "format" : "pve-node",
39090 "type" : "string",
39091 "typetext" : "<string>"
39092 },
39093 "storage" : {
39094 "description" : "The storage identifier.",
39095 "format" : "pve-storage-id",
39096 "type" : "string",
39097 "typetext" : "<string>"
39098 },
39099 "timeframe" : {
39100 "description" : "Specify the time frame you are interested in.",
39101 "enum" : [
39102 "hour",
39103 "day",
39104 "week",
39105 "month",
39106 "year"
39107 ],
39108 "type" : "string"
39109 }
44660702
DM
39110 }
39111 },
4d47f125
TL
39112 "permissions" : {
39113 "check" : [
39114 "perm",
39115 "/storage/{storage}",
39116 [
39117 "Datastore.Audit",
39118 "Datastore.AllocateSpace"
39119 ],
39120 "any",
39121 1
39122 ]
39123 },
39124 "protected" : 1,
39125 "proxyto" : "node",
39126 "returns" : {
39127 "properties" : {
39128 "filename" : {
39129 "type" : "string"
39130 }
39131 },
39132 "type" : "object"
44660702
DM
39133 }
39134 }
39135 },
4d47f125
TL
39136 "leaf" : 1,
39137 "path" : "/nodes/{node}/storage/{storage}/rrd",
39138 "text" : "rrd"
39139 },
39140 {
39141 "info" : {
39142 "GET" : {
e9cd3bd4 39143 "allowtoken" : 1,
4d47f125
TL
39144 "description" : "Read storage RRD statistics.",
39145 "method" : "GET",
39146 "name" : "rrddata",
39147 "parameters" : {
39148 "additionalProperties" : 0,
39149 "properties" : {
39150 "cf" : {
39151 "description" : "The RRD consolidation function",
39152 "enum" : [
39153 "AVERAGE",
39154 "MAX"
39155 ],
39156 "optional" : 1,
39157 "type" : "string"
39158 },
39159 "node" : {
39160 "description" : "The cluster node name.",
39161 "format" : "pve-node",
39162 "type" : "string",
39163 "typetext" : "<string>"
39164 },
39165 "storage" : {
39166 "description" : "The storage identifier.",
39167 "format" : "pve-storage-id",
39168 "type" : "string",
39169 "typetext" : "<string>"
39170 },
39171 "timeframe" : {
39172 "description" : "Specify the time frame you are interested in.",
39173 "enum" : [
39174 "hour",
39175 "day",
39176 "week",
39177 "month",
39178 "year"
39179 ],
39180 "type" : "string"
39181 }
56122987
DM
39182 }
39183 },
4d47f125
TL
39184 "permissions" : {
39185 "check" : [
39186 "perm",
39187 "/storage/{storage}",
39188 [
39189 "Datastore.Audit",
39190 "Datastore.AllocateSpace"
39191 ],
39192 "any",
39193 1
39194 ]
39195 },
39196 "protected" : 1,
39197 "proxyto" : "node",
39198 "returns" : {
39199 "items" : {
39200 "properties" : {},
39201 "type" : "object"
39202 },
39203 "type" : "array"
56122987 39204 }
7aacca6f 39205 }
56122987 39206 },
4d47f125
TL
39207 "leaf" : 1,
39208 "path" : "/nodes/{node}/storage/{storage}/rrddata",
39209 "text" : "rrddata"
39210 },
39211 {
39212 "info" : {
39213 "POST" : {
e9cd3bd4 39214 "allowtoken" : 1,
4d47f125
TL
39215 "description" : "Upload templates and ISO images.",
39216 "method" : "POST",
39217 "name" : "upload",
39218 "parameters" : {
39219 "additionalProperties" : 0,
39220 "properties" : {
5370fa8c
TL
39221 "checksum" : {
39222 "description" : "The expected checksum of the file.",
39223 "optional" : 1,
39224 "requires" : "checksum-algorithm",
39225 "type" : "string",
39226 "typetext" : "<string>"
39227 },
39228 "checksum-algorithm" : {
39229 "description" : "The algorithm to calculate the checksum of the file.",
39230 "enum" : [
39231 "md5",
39232 "sha1",
39233 "sha224",
39234 "sha256",
39235 "sha384",
39236 "sha512"
39237 ],
39238 "optional" : 1,
39239 "requires" : "checksum",
39240 "type" : "string"
39241 },
4d47f125
TL
39242 "content" : {
39243 "description" : "Content type.",
5370fa8c
TL
39244 "enum" : [
39245 "iso",
39246 "vztmpl"
39247 ],
4d47f125 39248 "format" : "pve-storage-content",
5370fa8c 39249 "type" : "string"
4d47f125
TL
39250 },
39251 "filename" : {
5370fa8c
TL
39252 "description" : "The name of the file to create. Caution: This will be normalized!",
39253 "maxLength" : 255,
4d47f125
TL
39254 "type" : "string",
39255 "typetext" : "<string>"
39256 },
39257 "node" : {
39258 "description" : "The cluster node name.",
39259 "format" : "pve-node",
39260 "type" : "string",
39261 "typetext" : "<string>"
39262 },
39263 "storage" : {
39264 "description" : "The storage identifier.",
39265 "format" : "pve-storage-id",
39266 "type" : "string",
39267 "typetext" : "<string>"
39268 },
39269 "tmpfilename" : {
1e3f8156 39270 "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
39271 "optional" : 1,
39272 "type" : "string",
39273 "typetext" : "<string>"
39274 }
44660702
DM
39275 }
39276 },
4d47f125
TL
39277 "permissions" : {
39278 "check" : [
39279 "perm",
39280 "/storage/{storage}",
39281 [
39282 "Datastore.AllocateTemplate"
39283 ]
39284 ]
56122987 39285 },
4d47f125
TL
39286 "protected" : 1,
39287 "returns" : {
44660702 39288 "type" : "string"
56122987 39289 }
44660702 39290 }
56122987 39291 },
4d47f125
TL
39292 "leaf" : 1,
39293 "path" : "/nodes/{node}/storage/{storage}/upload",
39294 "text" : "upload"
34f3e481
TL
39295 },
39296 {
39297 "info" : {
39298 "POST" : {
39299 "allowtoken" : 1,
39300 "description" : "Download templates and ISO images by using an URL.",
39301 "method" : "POST",
39302 "name" : "download_url",
39303 "parameters" : {
39304 "additionalProperties" : 0,
39305 "properties" : {
39306 "checksum" : {
39307 "description" : "The expected checksum of the file.",
39308 "optional" : 1,
39309 "requires" : "checksum-algorithm",
39310 "type" : "string",
39311 "typetext" : "<string>"
39312 },
39313 "checksum-algorithm" : {
39314 "description" : "The algorithm to calculate the checksum of the file.",
39315 "enum" : [
39316 "md5",
39317 "sha1",
39318 "sha224",
39319 "sha256",
39320 "sha384",
39321 "sha512"
39322 ],
39323 "optional" : 1,
39324 "requires" : "checksum",
39325 "type" : "string"
39326 },
39327 "content" : {
39328 "description" : "Content type.",
39329 "enum" : [
39330 "iso",
39331 "vztmpl"
39332 ],
39333 "format" : "pve-storage-content",
39334 "type" : "string"
39335 },
39336 "filename" : {
39337 "description" : "The name of the file to create. Caution: This will be normalized!",
39338 "maxLength" : 255,
39339 "type" : "string",
39340 "typetext" : "<string>"
39341 },
39342 "node" : {
39343 "description" : "The cluster node name.",
39344 "format" : "pve-node",
39345 "type" : "string",
39346 "typetext" : "<string>"
39347 },
39348 "storage" : {
39349 "description" : "The storage identifier.",
39350 "format" : "pve-storage-id",
39351 "type" : "string",
39352 "typetext" : "<string>"
39353 },
39354 "url" : {
39355 "description" : "The URL to download the file from.",
39356 "pattern" : "https?://.*",
39357 "type" : "string"
39358 },
39359 "verify-certificates" : {
39360 "default" : 1,
39361 "description" : "If false, no SSL/TLS certificates will be verified.",
39362 "optional" : 1,
39363 "type" : "boolean",
39364 "typetext" : "<boolean>"
39365 }
39366 }
39367 },
39368 "permissions" : {
39369 "check" : [
39370 "and",
39371 [
39372 "perm",
39373 "/storage/{storage}",
39374 [
39375 "Datastore.AllocateTemplate"
39376 ]
39377 ],
39378 [
39379 "perm",
39380 "/",
39381 [
39382 "Sys.Audit",
39383 "Sys.Modify"
39384 ]
39385 ]
39386 ]
39387 },
39388 "protected" : 1,
39389 "proxyto" : "node",
39390 "returns" : {
39391 "type" : "string"
39392 }
39393 }
39394 },
39395 "leaf" : 1,
39396 "path" : "/nodes/{node}/storage/{storage}/download-url",
39397 "text" : "download-url"
56122987 39398 }
4d47f125 39399 ],
56122987
DM
39400 "info" : {
39401 "GET" : {
e9cd3bd4 39402 "allowtoken" : 1,
4d47f125 39403 "description" : "",
44660702 39404 "method" : "GET",
4d47f125 39405 "name" : "diridx",
44660702
DM
39406 "parameters" : {
39407 "additionalProperties" : 0,
39408 "properties" : {
39409 "node" : {
39410 "description" : "The cluster node name.",
39411 "format" : "pve-node",
013dc89f
DM
39412 "type" : "string",
39413 "typetext" : "<string>"
4d47f125
TL
39414 },
39415 "storage" : {
39416 "description" : "The storage identifier.",
39417 "format" : "pve-storage-id",
39418 "type" : "string",
39419 "typetext" : "<string>"
44660702
DM
39420 }
39421 }
39422 },
7aacca6f
DM
39423 "permissions" : {
39424 "check" : [
39425 "perm",
4d47f125 39426 "/storage/{storage}",
7aacca6f 39427 [
4d47f125
TL
39428 "Datastore.Audit",
39429 "Datastore.AllocateSpace"
39430 ],
39431 "any",
39432 1
7aacca6f
DM
39433 ]
39434 },
56122987
DM
39435 "returns" : {
39436 "items" : {
39437 "properties" : {
4d47f125 39438 "subdir" : {
44660702 39439 "type" : "string"
56122987
DM
39440 }
39441 },
39442 "type" : "object"
7aacca6f 39443 },
4d47f125
TL
39444 "links" : [
39445 {
39446 "href" : "{subdir}",
39447 "rel" : "child"
39448 }
39449 ],
7aacca6f 39450 "type" : "array"
44660702
DM
39451 }
39452 }
39453 },
4d47f125
TL
39454 "leaf" : 0,
39455 "path" : "/nodes/{node}/storage/{storage}",
39456 "text" : "{storage}"
44660702
DM
39457 }
39458 ],
39459 "info" : {
39460 "GET" : {
e9cd3bd4 39461 "allowtoken" : 1,
4d47f125 39462 "description" : "Get status for all datastores.",
44660702
DM
39463 "method" : "GET",
39464 "name" : "index",
39465 "parameters" : {
39466 "additionalProperties" : 0,
39467 "properties" : {
4d47f125
TL
39468 "content" : {
39469 "description" : "Only list stores which support this content type.",
39470 "format" : "pve-storage-content-list",
39471 "optional" : 1,
39472 "type" : "string",
39473 "typetext" : "<string>"
39474 },
39475 "enabled" : {
39476 "default" : 0,
39477 "description" : "Only list stores which are enabled (not disabled in config).",
39478 "optional" : 1,
39479 "type" : "boolean",
39480 "typetext" : "<boolean>"
39481 },
39482 "format" : {
39483 "default" : 0,
39484 "description" : "Include information about formats",
39485 "optional" : 1,
39486 "type" : "boolean",
39487 "typetext" : "<boolean>"
39488 },
44660702
DM
39489 "node" : {
39490 "description" : "The cluster node name.",
39491 "format" : "pve-node",
013dc89f
DM
39492 "type" : "string",
39493 "typetext" : "<string>"
4d47f125
TL
39494 },
39495 "storage" : {
39496 "description" : "Only list status for specified storage",
39497 "format" : "pve-storage-id",
39498 "optional" : 1,
39499 "type" : "string",
39500 "typetext" : "<string>"
39501 },
39502 "target" : {
39503 "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.",
39504 "format" : "pve-node",
39505 "optional" : 1,
39506 "type" : "string",
39507 "typetext" : "<string>"
44660702
DM
39508 }
39509 }
39510 },
4d47f125
TL
39511 "permissions" : {
39512 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
39513 "user" : "all"
39514 },
39515 "protected" : 1,
39516 "proxyto" : "node",
39517 "returns" : {
39518 "items" : {
39519 "properties" : {
39520 "active" : {
39521 "description" : "Set when storage is accessible.",
39522 "optional" : 1,
39523 "type" : "boolean"
39524 },
39525 "avail" : {
39526 "description" : "Available storage space in bytes.",
39527 "optional" : 1,
39528 "renderer" : "bytes",
39529 "type" : "integer"
39530 },
39531 "content" : {
39532 "description" : "Allowed storage content types.",
39533 "format" : "pve-storage-content-list",
39534 "type" : "string"
39535 },
39536 "enabled" : {
39537 "description" : "Set when storage is enabled (not disabled).",
39538 "optional" : 1,
39539 "type" : "boolean"
39540 },
39541 "shared" : {
39542 "description" : "Shared flag from storage configuration.",
39543 "optional" : 1,
39544 "type" : "boolean"
39545 },
39546 "storage" : {
39547 "description" : "The storage identifier.",
39548 "format" : "pve-storage-id",
39549 "type" : "string"
39550 },
39551 "total" : {
39552 "description" : "Total storage space in bytes.",
39553 "optional" : 1,
39554 "renderer" : "bytes",
39555 "type" : "integer"
39556 },
39557 "type" : {
39558 "description" : "Storage type.",
39559 "type" : "string"
39560 },
39561 "used" : {
39562 "description" : "Used storage space in bytes.",
39563 "optional" : 1,
39564 "renderer" : "bytes",
39565 "type" : "integer"
39566 },
39567 "used_fraction" : {
39568 "description" : "Used fraction (used/total).",
39569 "optional" : 1,
39570 "renderer" : "fraction_as_percentage",
39571 "type" : "number"
7aacca6f 39572 }
4d47f125
TL
39573 },
39574 "type" : "object"
39575 },
39576 "links" : [
39577 {
39578 "href" : "{storage}",
39579 "rel" : "child"
39580 }
39581 ],
39582 "type" : "array"
39583 }
39584 }
39585 },
39586 "leaf" : 0,
39587 "path" : "/nodes/{node}/storage",
39588 "text" : "storage"
39589 },
39590 {
39591 "children" : [
39592 {
5370fa8c
TL
39593 "children" : [
39594 {
39595 "info" : {
39596 "DELETE" : {
39597 "allowtoken" : 1,
39598 "description" : "Remove an LVM Volume Group.",
39599 "method" : "DELETE",
39600 "name" : "delete",
39601 "parameters" : {
39602 "additionalProperties" : 0,
39603 "properties" : {
39604 "cleanup-config" : {
39605 "default" : 0,
39606 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
39607 "optional" : 1,
39608 "type" : "boolean",
39609 "typetext" : "<boolean>"
39610 },
39611 "cleanup-disks" : {
39612 "default" : 0,
39613 "description" : "Also wipe disks so they can be repurposed afterwards.",
39614 "optional" : 1,
39615 "type" : "boolean",
39616 "typetext" : "<boolean>"
39617 },
39618 "name" : {
39619 "description" : "The storage identifier.",
39620 "format" : "pve-storage-id",
39621 "type" : "string",
39622 "typetext" : "<string>"
39623 },
39624 "node" : {
39625 "description" : "The cluster node name.",
39626 "format" : "pve-node",
39627 "type" : "string",
39628 "typetext" : "<string>"
39629 }
39630 }
39631 },
39632 "permissions" : {
39633 "check" : [
39634 "perm",
39635 "/",
39636 [
39637 "Sys.Modify",
39638 "Datastore.Allocate"
39639 ]
39640 ]
39641 },
39642 "protected" : 1,
39643 "proxyto" : "node",
39644 "returns" : {
39645 "type" : "string"
39646 }
39647 }
39648 },
39649 "leaf" : 1,
39650 "path" : "/nodes/{node}/disks/lvm/{name}",
39651 "text" : "{name}"
39652 }
39653 ],
4d47f125
TL
39654 "info" : {
39655 "GET" : {
e9cd3bd4 39656 "allowtoken" : 1,
4d47f125
TL
39657 "description" : "List LVM Volume Groups",
39658 "method" : "GET",
39659 "name" : "index",
39660 "parameters" : {
39661 "additionalProperties" : 0,
39662 "properties" : {
39663 "node" : {
39664 "description" : "The cluster node name.",
39665 "format" : "pve-node",
39666 "type" : "string",
39667 "typetext" : "<string>"
39668 }
39669 }
39670 },
39671 "permissions" : {
39672 "check" : [
39673 "perm",
39674 "/",
39675 [
39676 "Sys.Audit",
39677 "Datastore.Audit"
39678 ],
39679 "any",
39680 1
39681 ]
39682 },
39683 "protected" : 1,
39684 "proxyto" : "node",
39685 "returns" : {
39686 "properties" : {
39687 "children" : {
44660702
DM
39688 "items" : {
39689 "properties" : {
4d47f125
TL
39690 "children" : {
39691 "description" : "The underlying physical volumes",
39692 "items" : {
39693 "properties" : {
39694 "free" : {
39695 "description" : "The free bytes in the physical volume",
39696 "type" : "integer"
39697 },
39698 "leaf" : {
39699 "type" : "boolean"
39700 },
39701 "name" : {
39702 "description" : "The name of the physical volume",
39703 "type" : "string"
39704 },
39705 "size" : {
39706 "description" : "The size of the physical volume in bytes",
39707 "type" : "integer"
39708 }
39709 },
39710 "type" : "object"
39711 },
39712 "optional" : 1,
39713 "type" : "array"
39714 },
39715 "free" : {
39716 "description" : "The free bytes in the volume group",
39717 "type" : "integer"
39718 },
39719 "leaf" : {
39720 "type" : "boolean"
39721 },
39722 "name" : {
39723 "description" : "The name of the volume group",
44660702 39724 "type" : "string"
4d47f125
TL
39725 },
39726 "size" : {
39727 "description" : "The size of the volume group in bytes",
39728 "type" : "integer"
44660702
DM
39729 }
39730 },
39731 "type" : "object"
39732 },
44660702 39733 "type" : "array"
4d47f125
TL
39734 },
39735 "leaf" : {
39736 "type" : "boolean"
44660702
DM
39737 }
39738 },
4d47f125
TL
39739 "type" : "object"
39740 }
39741 },
39742 "POST" : {
e9cd3bd4 39743 "allowtoken" : 1,
4d47f125
TL
39744 "description" : "Create an LVM Volume Group",
39745 "method" : "POST",
39746 "name" : "create",
39747 "parameters" : {
39748 "additionalProperties" : 0,
39749 "properties" : {
39750 "add_storage" : {
39751 "default" : 0,
39752 "description" : "Configure storage using the Volume Group",
39753 "optional" : 1,
39754 "type" : "boolean",
39755 "typetext" : "<boolean>"
44660702 39756 },
4d47f125
TL
39757 "device" : {
39758 "description" : "The block device you want to create the volume group on",
39759 "type" : "string",
39760 "typetext" : "<string>"
44660702 39761 },
4d47f125
TL
39762 "name" : {
39763 "description" : "The storage identifier.",
39764 "format" : "pve-storage-id",
39765 "type" : "string",
39766 "typetext" : "<string>"
39767 },
39768 "node" : {
39769 "description" : "The cluster node name.",
39770 "format" : "pve-node",
39771 "type" : "string",
39772 "typetext" : "<string>"
39773 }
39774 }
39775 },
39776 "permissions" : {
39777 "check" : [
39778 "perm",
39779 "/",
39780 [
39781 "Sys.Modify",
39782 "Datastore.Allocate"
39783 ]
39784 ]
39785 },
39786 "protected" : 1,
39787 "proxyto" : "node",
39788 "returns" : {
39789 "type" : "string"
39790 }
39791 }
39792 },
5370fa8c 39793 "leaf" : 0,
4d47f125
TL
39794 "path" : "/nodes/{node}/disks/lvm",
39795 "text" : "lvm"
39796 },
39797 {
5370fa8c
TL
39798 "children" : [
39799 {
39800 "info" : {
39801 "DELETE" : {
39802 "allowtoken" : 1,
39803 "description" : "Remove an LVM thin pool.",
39804 "method" : "DELETE",
39805 "name" : "delete",
39806 "parameters" : {
39807 "additionalProperties" : 0,
39808 "properties" : {
39809 "cleanup-config" : {
39810 "default" : 0,
39811 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
39812 "optional" : 1,
39813 "type" : "boolean",
39814 "typetext" : "<boolean>"
39815 },
39816 "cleanup-disks" : {
39817 "default" : 0,
39818 "description" : "Also wipe disks so they can be repurposed afterwards.",
39819 "optional" : 1,
39820 "type" : "boolean",
39821 "typetext" : "<boolean>"
39822 },
39823 "name" : {
39824 "description" : "The storage identifier.",
39825 "format" : "pve-storage-id",
39826 "type" : "string",
39827 "typetext" : "<string>"
39828 },
39829 "node" : {
39830 "description" : "The cluster node name.",
39831 "format" : "pve-node",
39832 "type" : "string",
39833 "typetext" : "<string>"
39834 },
39835 "volume-group" : {
39836 "description" : "The storage identifier.",
39837 "format" : "pve-storage-id",
39838 "type" : "string",
39839 "typetext" : "<string>"
39840 }
39841 }
39842 },
39843 "permissions" : {
39844 "check" : [
39845 "perm",
39846 "/",
39847 [
39848 "Sys.Modify",
39849 "Datastore.Allocate"
39850 ]
39851 ]
39852 },
39853 "protected" : 1,
39854 "proxyto" : "node",
39855 "returns" : {
39856 "type" : "string"
39857 }
39858 }
39859 },
39860 "leaf" : 1,
39861 "path" : "/nodes/{node}/disks/lvmthin/{name}",
39862 "text" : "{name}"
39863 }
39864 ],
4d47f125
TL
39865 "info" : {
39866 "GET" : {
e9cd3bd4 39867 "allowtoken" : 1,
4d47f125
TL
39868 "description" : "List LVM thinpools",
39869 "method" : "GET",
39870 "name" : "index",
39871 "parameters" : {
39872 "additionalProperties" : 0,
39873 "properties" : {
39874 "node" : {
39875 "description" : "The cluster node name.",
39876 "format" : "pve-node",
39877 "type" : "string",
39878 "typetext" : "<string>"
44660702
DM
39879 }
39880 }
39881 },
4d47f125
TL
39882 "permissions" : {
39883 "check" : [
39884 "perm",
39885 "/",
39886 [
39887 "Sys.Audit",
39888 "Datastore.Audit"
39889 ],
39890 "any",
39891 1
39892 ]
39893 },
39894 "protected" : 1,
39895 "proxyto" : "node",
39896 "returns" : {
39897 "items" : {
39898 "properties" : {
39899 "lv" : {
39900 "description" : "The name of the thinpool.",
39901 "type" : "string"
39902 },
39903 "lv_size" : {
39904 "description" : "The size of the thinpool in bytes.",
39905 "type" : "integer"
39906 },
39907 "metadata_size" : {
39908 "description" : "The size of the metadata lv in bytes.",
39909 "type" : "integer"
39910 },
39911 "metadata_used" : {
39912 "description" : "The used bytes of the metadata lv.",
39913 "type" : "integer"
39914 },
39915 "used" : {
39916 "description" : "The used bytes of the thinpool.",
39917 "type" : "integer"
5370fa8c
TL
39918 },
39919 "vg" : {
39920 "description" : "The associated volume group.",
39921 "type" : "string"
44660702
DM
39922 }
39923 },
4d47f125
TL
39924 "type" : "object"
39925 },
39926 "type" : "array"
39927 }
39928 },
39929 "POST" : {
e9cd3bd4 39930 "allowtoken" : 1,
4d47f125
TL
39931 "description" : "Create an LVM thinpool",
39932 "method" : "POST",
39933 "name" : "create",
39934 "parameters" : {
39935 "additionalProperties" : 0,
39936 "properties" : {
39937 "add_storage" : {
39938 "default" : 0,
39939 "description" : "Configure storage using the thinpool.",
39940 "optional" : 1,
39941 "type" : "boolean",
39942 "typetext" : "<boolean>"
56122987 39943 },
4d47f125
TL
39944 "device" : {
39945 "description" : "The block device you want to create the thinpool on.",
39946 "type" : "string",
39947 "typetext" : "<string>"
39948 },
39949 "name" : {
39950 "description" : "The storage identifier.",
39951 "format" : "pve-storage-id",
39952 "type" : "string",
39953 "typetext" : "<string>"
39954 },
39955 "node" : {
39956 "description" : "The cluster node name.",
39957 "format" : "pve-node",
39958 "type" : "string",
39959 "typetext" : "<string>"
44660702 39960 }
56122987
DM
39961 }
39962 },
4d47f125
TL
39963 "permissions" : {
39964 "check" : [
39965 "perm",
39966 "/",
39967 [
39968 "Sys.Modify",
39969 "Datastore.Allocate"
39970 ]
39971 ]
39972 },
39973 "protected" : 1,
39974 "proxyto" : "node",
39975 "returns" : {
39976 "type" : "string"
39977 }
39978 }
39979 },
5370fa8c 39980 "leaf" : 0,
4d47f125
TL
39981 "path" : "/nodes/{node}/disks/lvmthin",
39982 "text" : "lvmthin"
39983 },
39984 {
5370fa8c
TL
39985 "children" : [
39986 {
39987 "info" : {
39988 "DELETE" : {
39989 "allowtoken" : 1,
39990 "description" : "Unmounts the storage and removes the mount unit.",
39991 "method" : "DELETE",
39992 "name" : "delete",
39993 "parameters" : {
39994 "additionalProperties" : 0,
39995 "properties" : {
39996 "cleanup-config" : {
39997 "default" : 0,
39998 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
39999 "optional" : 1,
40000 "type" : "boolean",
40001 "typetext" : "<boolean>"
40002 },
40003 "cleanup-disks" : {
40004 "default" : 0,
40005 "description" : "Also wipe disk so it can be repurposed afterwards.",
40006 "optional" : 1,
40007 "type" : "boolean",
40008 "typetext" : "<boolean>"
40009 },
40010 "name" : {
40011 "description" : "The storage identifier.",
40012 "format" : "pve-storage-id",
40013 "type" : "string",
40014 "typetext" : "<string>"
40015 },
40016 "node" : {
40017 "description" : "The cluster node name.",
40018 "format" : "pve-node",
40019 "type" : "string",
40020 "typetext" : "<string>"
40021 }
40022 }
40023 },
40024 "permissions" : {
40025 "check" : [
40026 "perm",
40027 "/",
40028 [
40029 "Sys.Modify",
40030 "Datastore.Allocate"
40031 ]
40032 ]
40033 },
40034 "protected" : 1,
40035 "proxyto" : "node",
40036 "returns" : {
40037 "type" : "string"
40038 }
40039 }
40040 },
40041 "leaf" : 1,
40042 "path" : "/nodes/{node}/disks/directory/{name}",
40043 "text" : "{name}"
40044 }
40045 ],
4d47f125
TL
40046 "info" : {
40047 "GET" : {
e9cd3bd4 40048 "allowtoken" : 1,
4d47f125
TL
40049 "description" : "PVE Managed Directory storages.",
40050 "method" : "GET",
40051 "name" : "index",
40052 "parameters" : {
40053 "additionalProperties" : 0,
40054 "properties" : {
40055 "node" : {
40056 "description" : "The cluster node name.",
40057 "format" : "pve-node",
40058 "type" : "string",
40059 "typetext" : "<string>"
40060 }
40061 }
40062 },
40063 "permissions" : {
40064 "check" : [
40065 "perm",
40066 "/",
40067 [
40068 "Sys.Audit",
40069 "Datastore.Audit"
40070 ],
40071 "any",
40072 1
40073 ]
40074 },
40075 "protected" : 1,
40076 "proxyto" : "node",
40077 "returns" : {
40078 "items" : {
40079 "properties" : {
40080 "device" : {
40081 "description" : "The mounted device.",
40082 "type" : "string"
40083 },
40084 "options" : {
40085 "description" : "The mount options.",
40086 "type" : "string"
40087 },
40088 "path" : {
40089 "description" : "The mount path.",
40090 "type" : "string"
40091 },
40092 "type" : {
40093 "description" : "The filesystem type.",
40094 "type" : "string"
40095 },
40096 "unitfile" : {
40097 "description" : "The path of the mount unit.",
40098 "type" : "string"
44660702 40099 }
56122987 40100 },
4d47f125
TL
40101 "type" : "object"
40102 },
40103 "type" : "array"
40104 }
40105 },
40106 "POST" : {
e9cd3bd4 40107 "allowtoken" : 1,
4d47f125
TL
40108 "description" : "Create a Filesystem on an unused disk. Will be mounted under '/mnt/pve/NAME'.",
40109 "method" : "POST",
40110 "name" : "create",
40111 "parameters" : {
40112 "additionalProperties" : 0,
40113 "properties" : {
40114 "add_storage" : {
40115 "default" : 0,
40116 "description" : "Configure storage using the directory.",
40117 "optional" : 1,
40118 "type" : "boolean",
40119 "typetext" : "<boolean>"
40120 },
40121 "device" : {
40122 "description" : "The block device you want to create the filesystem on.",
40123 "type" : "string",
40124 "typetext" : "<string>"
40125 },
40126 "filesystem" : {
40127 "default" : "ext4",
40128 "description" : "The desired filesystem.",
40129 "enum" : [
40130 "ext4",
40131 "xfs"
40132 ],
40133 "optional" : 1,
40134 "type" : "string"
56122987 40135 },
4d47f125
TL
40136 "name" : {
40137 "description" : "The storage identifier.",
40138 "format" : "pve-storage-id",
40139 "type" : "string",
40140 "typetext" : "<string>"
40141 },
40142 "node" : {
40143 "description" : "The cluster node name.",
40144 "format" : "pve-node",
40145 "type" : "string",
40146 "typetext" : "<string>"
7aacca6f 40147 }
56122987
DM
40148 }
40149 },
4d47f125
TL
40150 "permissions" : {
40151 "check" : [
40152 "perm",
40153 "/",
40154 [
40155 "Sys.Modify",
40156 "Datastore.Allocate"
40157 ]
40158 ]
40159 },
40160 "protected" : 1,
40161 "proxyto" : "node",
40162 "returns" : {
40163 "type" : "string"
40164 }
40165 }
40166 },
5370fa8c 40167 "leaf" : 0,
4d47f125
TL
40168 "path" : "/nodes/{node}/disks/directory",
40169 "text" : "directory"
40170 },
40171 {
40172 "children" : [
56122987 40173 {
56122987 40174 "info" : {
5370fa8c
TL
40175 "DELETE" : {
40176 "allowtoken" : 1,
40177 "description" : "Destroy a ZFS pool.",
40178 "method" : "DELETE",
40179 "name" : "delete",
40180 "parameters" : {
40181 "additionalProperties" : 0,
40182 "properties" : {
40183 "cleanup-config" : {
40184 "default" : 0,
40185 "description" : "Marks associated storage(s) as not available on this node anymore or removes them from the configuration (if configured for this node only).",
40186 "optional" : 1,
40187 "type" : "boolean",
40188 "typetext" : "<boolean>"
40189 },
40190 "cleanup-disks" : {
40191 "default" : 0,
40192 "description" : "Also wipe disks so they can be repurposed afterwards.",
40193 "optional" : 1,
40194 "type" : "boolean",
40195 "typetext" : "<boolean>"
40196 },
40197 "name" : {
40198 "description" : "The storage identifier.",
40199 "format" : "pve-storage-id",
40200 "type" : "string",
40201 "typetext" : "<string>"
40202 },
40203 "node" : {
40204 "description" : "The cluster node name.",
40205 "format" : "pve-node",
40206 "type" : "string",
40207 "typetext" : "<string>"
40208 }
40209 }
40210 },
40211 "permissions" : {
40212 "check" : [
40213 "perm",
40214 "/",
40215 [
40216 "Sys.Modify",
40217 "Datastore.Allocate"
40218 ]
40219 ]
40220 },
40221 "protected" : 1,
40222 "proxyto" : "node",
40223 "returns" : {
40224 "type" : "string"
40225 }
40226 },
56122987 40227 "GET" : {
e9cd3bd4 40228 "allowtoken" : 1,
4d47f125 40229 "description" : "Get details about a zpool.",
44660702 40230 "method" : "GET",
4d47f125 40231 "name" : "detail",
56122987 40232 "parameters" : {
44660702 40233 "additionalProperties" : 0,
56122987 40234 "properties" : {
4d47f125
TL
40235 "name" : {
40236 "description" : "The storage identifier.",
40237 "format" : "pve-storage-id",
40238 "type" : "string",
40239 "typetext" : "<string>"
44660702 40240 },
7aacca6f 40241 "node" : {
7aacca6f 40242 "description" : "The cluster node name.",
44660702 40243 "format" : "pve-node",
013dc89f
DM
40244 "type" : "string",
40245 "typetext" : "<string>"
56122987 40246 }
44660702 40247 }
7aacca6f 40248 },
7aacca6f
DM
40249 "permissions" : {
40250 "check" : [
40251 "perm",
4d47f125 40252 "/",
7aacca6f 40253 [
4d47f125
TL
40254 "Sys.Audit",
40255 "Datastore.Audit"
7aacca6f
DM
40256 ],
40257 "any",
40258 1
40259 ]
40260 },
44660702
DM
40261 "protected" : 1,
40262 "proxyto" : "node",
7aacca6f 40263 "returns" : {
56122987 40264 "properties" : {
4d47f125
TL
40265 "action" : {
40266 "description" : "Information about the recommended action to fix the state.",
40267 "optional" : 1,
40268 "type" : "string"
56122987 40269 },
4d47f125 40270 "children" : {
e2d681b3 40271 "description" : "The pool configuration information, including the vdevs for each section (e.g. spares, cache), may be nested.",
4d47f125
TL
40272 "items" : {
40273 "properties" : {
40274 "cksum" : {
e2d681b3 40275 "optional" : 1,
4d47f125
TL
40276 "type" : "number"
40277 },
40278 "msg" : {
40279 "description" : "An optional message about the vdev.",
40280 "type" : "string"
40281 },
40282 "name" : {
e2d681b3 40283 "description" : "The name of the vdev or section.",
4d47f125
TL
40284 "type" : "string"
40285 },
40286 "read" : {
e2d681b3 40287 "optional" : 1,
4d47f125
TL
40288 "type" : "number"
40289 },
40290 "state" : {
40291 "description" : "The state of the vdev.",
e2d681b3 40292 "optional" : 1,
4d47f125
TL
40293 "type" : "string"
40294 },
40295 "write" : {
e2d681b3 40296 "optional" : 1,
4d47f125
TL
40297 "type" : "number"
40298 }
40299 },
40300 "type" : "object"
40301 },
40302 "type" : "array"
56122987 40303 },
e2d681b3
TL
40304 "errors" : {
40305 "description" : "Information about the errors on the zpool.",
40306 "type" : "string"
40307 },
4d47f125
TL
40308 "name" : {
40309 "description" : "The name of the zpool.",
40310 "type" : "string"
44660702 40311 },
4d47f125 40312 "scan" : {
e2d681b3 40313 "description" : "Information about the last/current scrub.",
d2656385 40314 "optional" : 1,
4d47f125 40315 "type" : "string"
44660702 40316 },
4d47f125
TL
40317 "state" : {
40318 "description" : "The state of the zpool.",
40319 "type" : "string"
40320 },
40321 "status" : {
40322 "description" : "Information about the state of the zpool.",
44660702 40323 "optional" : 1,
4d47f125 40324 "type" : "string"
56122987 40325 }
4d47f125
TL
40326 },
40327 "type" : "object"
44660702
DM
40328 }
40329 }
40330 },
40331 "leaf" : 1,
4d47f125
TL
40332 "path" : "/nodes/{node}/disks/zfs/{name}",
40333 "text" : "{name}"
44660702
DM
40334 }
40335 ],
40336 "info" : {
40337 "GET" : {
e9cd3bd4 40338 "allowtoken" : 1,
4d47f125 40339 "description" : "List Zpools.",
44660702 40340 "method" : "GET",
4d47f125 40341 "name" : "index",
44660702
DM
40342 "parameters" : {
40343 "additionalProperties" : 0,
40344 "properties" : {
40345 "node" : {
40346 "description" : "The cluster node name.",
40347 "format" : "pve-node",
013dc89f
DM
40348 "type" : "string",
40349 "typetext" : "<string>"
4d47f125
TL
40350 }
40351 }
40352 },
40353 "permissions" : {
40354 "check" : [
40355 "perm",
40356 "/",
40357 [
40358 "Sys.Audit",
40359 "Datastore.Audit"
40360 ],
40361 "any",
40362 1
40363 ]
40364 },
40365 "protected" : 1,
40366 "proxyto" : "node",
40367 "returns" : {
40368 "items" : {
40369 "properties" : {
40370 "alloc" : {
40371 "description" : "",
40372 "type" : "integer"
40373 },
40374 "dedup" : {
40375 "description" : "",
40376 "type" : "number"
40377 },
40378 "frag" : {
40379 "description" : "",
40380 "type" : "integer"
40381 },
40382 "free" : {
40383 "description" : "",
40384 "type" : "integer"
40385 },
40386 "health" : {
40387 "description" : "",
40388 "type" : "string"
40389 },
40390 "name" : {
40391 "description" : "",
40392 "type" : "string"
40393 },
40394 "size" : {
40395 "description" : "",
40396 "type" : "integer"
40397 }
40398 },
40399 "type" : "object"
40400 },
40401 "links" : [
40402 {
40403 "href" : "{name}",
40404 "rel" : "child"
40405 }
40406 ],
40407 "type" : "array"
40408 }
40409 },
40410 "POST" : {
e9cd3bd4 40411 "allowtoken" : 1,
4d47f125
TL
40412 "description" : "Create a ZFS pool.",
40413 "method" : "POST",
40414 "name" : "create",
40415 "parameters" : {
40416 "additionalProperties" : 0,
40417 "properties" : {
40418 "add_storage" : {
40419 "default" : 0,
40420 "description" : "Configure storage using the zpool.",
40421 "optional" : 1,
40422 "type" : "boolean",
40423 "typetext" : "<boolean>"
40424 },
40425 "ashift" : {
40426 "default" : 12,
40427 "description" : "Pool sector size exponent.",
40428 "maximum" : 16,
40429 "minimum" : 9,
40430 "optional" : 1,
40431 "type" : "integer",
40432 "typetext" : "<integer> (9 - 16)"
40433 },
40434 "compression" : {
40435 "default" : "on",
40436 "description" : "The compression algorithm to use.",
40437 "enum" : [
40438 "on",
40439 "off",
40440 "gzip",
40441 "lz4",
40442 "lzjb",
5370fa8c
TL
40443 "zle",
40444 "zstd"
4d47f125
TL
40445 ],
40446 "optional" : 1,
40447 "type" : "string"
40448 },
40449 "devices" : {
40450 "description" : "The block devices you want to create the zpool on.",
40451 "format" : "string-list",
40452 "type" : "string",
40453 "typetext" : "<string>"
44660702 40454 },
81a3384d
TL
40455 "draid-config" : {
40456 "format" : {
40457 "data" : {
40458 "description" : "The number of data devices per redundancy group. (dRAID)",
40459 "minimum" : 1,
40460 "type" : "integer"
40461 },
40462 "spares" : {
40463 "description" : "Number of dRAID spares.",
40464 "minimum" : 0,
40465 "type" : "integer"
40466 }
40467 },
40468 "optional" : 1,
40469 "type" : "string",
40470 "typetext" : "data=<integer> ,spares=<integer>"
40471 },
4d47f125 40472 "name" : {
44660702
DM
40473 "description" : "The storage identifier.",
40474 "format" : "pve-storage-id",
013dc89f
DM
40475 "type" : "string",
40476 "typetext" : "<string>"
4d47f125
TL
40477 },
40478 "node" : {
40479 "description" : "The cluster node name.",
40480 "format" : "pve-node",
40481 "type" : "string",
40482 "typetext" : "<string>"
40483 },
40484 "raidlevel" : {
40485 "description" : "The RAID level to use.",
40486 "enum" : [
40487 "single",
40488 "mirror",
40489 "raid10",
40490 "raidz",
40491 "raidz2",
81a3384d
TL
40492 "raidz3",
40493 "draid",
40494 "draid2",
40495 "draid3"
4d47f125
TL
40496 ],
40497 "type" : "string"
56122987
DM
40498 }
40499 }
44660702
DM
40500 },
40501 "permissions" : {
40502 "check" : [
40503 "perm",
4d47f125 40504 "/",
44660702 40505 [
4d47f125
TL
40506 "Sys.Modify",
40507 "Datastore.Allocate"
40508 ]
44660702
DM
40509 ]
40510 },
4d47f125
TL
40511 "protected" : 1,
40512 "proxyto" : "node",
44660702 40513 "returns" : {
4d47f125 40514 "type" : "string"
56122987
DM
40515 }
40516 }
44660702
DM
40517 },
40518 "leaf" : 0,
4d47f125
TL
40519 "path" : "/nodes/{node}/disks/zfs",
40520 "text" : "zfs"
40521 },
2c0dde61
DM
40522 {
40523 "info" : {
40524 "GET" : {
e9cd3bd4 40525 "allowtoken" : 1,
2c0dde61
DM
40526 "description" : "List local disks.",
40527 "method" : "GET",
40528 "name" : "list",
40529 "parameters" : {
40530 "additionalProperties" : 0,
40531 "properties" : {
d2656385
TL
40532 "include-partitions" : {
40533 "default" : 0,
40534 "description" : "Also include partitions.",
40535 "optional" : 1,
40536 "type" : "boolean",
40537 "typetext" : "<boolean>"
40538 },
2c0dde61
DM
40539 "node" : {
40540 "description" : "The cluster node name.",
40541 "format" : "pve-node",
013dc89f
DM
40542 "type" : "string",
40543 "typetext" : "<string>"
4d47f125
TL
40544 },
40545 "skipsmart" : {
40546 "default" : 0,
40547 "description" : "Skip smart checks.",
40548 "optional" : 1,
40549 "type" : "boolean",
40550 "typetext" : "<boolean>"
40551 },
40552 "type" : {
40553 "description" : "Only list specific types of disks.",
40554 "enum" : [
40555 "unused",
40556 "journal_disks"
40557 ],
40558 "optional" : 1,
40559 "type" : "string"
2c0dde61
DM
40560 }
40561 }
40562 },
40563 "permissions" : {
40564 "check" : [
d2656385 40565 "or",
2c0dde61 40566 [
d2656385
TL
40567 "perm",
40568 "/",
40569 [
40570 "Sys.Audit",
40571 "Datastore.Audit"
40572 ],
40573 "any",
40574 1
2c0dde61 40575 ],
d2656385
TL
40576 [
40577 "perm",
40578 "/nodes/{node}",
40579 [
40580 "Sys.Audit",
40581 "Datastore.Audit"
40582 ],
40583 "any",
40584 1
40585 ]
2c0dde61
DM
40586 ]
40587 },
40588 "protected" : 1,
40589 "proxyto" : "node",
40590 "returns" : {
40591 "items" : {
40592 "properties" : {
40593 "devpath" : {
40594 "description" : "The device path",
40595 "type" : "string"
40596 },
40597 "gpt" : {
40598 "type" : "boolean"
40599 },
40600 "health" : {
40601 "optional" : 1,
40602 "type" : "string"
40603 },
40604 "model" : {
40605 "optional" : 1,
40606 "type" : "string"
40607 },
de786b48
TL
40608 "mounted" : {
40609 "type" : "boolean"
40610 },
2c0dde61
DM
40611 "osdid" : {
40612 "type" : "integer"
40613 },
d2656385
TL
40614 "parent" : {
40615 "description" : "For partitions only. The device path of the disk the partition resides on.",
40616 "optional" : 1,
40617 "type" : "string"
40618 },
2c0dde61
DM
40619 "serial" : {
40620 "optional" : 1,
40621 "type" : "string"
40622 },
40623 "size" : {
40624 "type" : "integer"
40625 },
40626 "used" : {
40627 "optional" : 1,
40628 "type" : "string"
40629 },
40630 "vendor" : {
40631 "optional" : 1,
40632 "type" : "string"
40633 },
40634 "wwn" : {
40635 "optional" : 1,
40636 "type" : "string"
40637 }
40638 },
40639 "type" : "object"
40640 },
40641 "type" : "array"
40642 }
40643 }
40644 },
40645 "leaf" : 1,
40646 "path" : "/nodes/{node}/disks/list",
40647 "text" : "list"
40648 },
40649 {
40650 "info" : {
40651 "GET" : {
e9cd3bd4 40652 "allowtoken" : 1,
2c0dde61
DM
40653 "description" : "Get SMART Health of a disk.",
40654 "method" : "GET",
40655 "name" : "smart",
40656 "parameters" : {
40657 "additionalProperties" : 0,
40658 "properties" : {
40659 "disk" : {
40660 "description" : "Block device name",
40661 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
40662 "type" : "string"
40663 },
40664 "healthonly" : {
40665 "description" : "If true returns only the health status",
40666 "optional" : 1,
013dc89f
DM
40667 "type" : "boolean",
40668 "typetext" : "<boolean>"
2c0dde61
DM
40669 },
40670 "node" : {
40671 "description" : "The cluster node name.",
40672 "format" : "pve-node",
013dc89f
DM
40673 "type" : "string",
40674 "typetext" : "<string>"
2c0dde61
DM
40675 }
40676 }
40677 },
40678 "permissions" : {
40679 "check" : [
40680 "perm",
40681 "/",
40682 [
40683 "Sys.Audit",
40684 "Datastore.Audit"
40685 ],
40686 "any",
40687 1
40688 ]
40689 },
40690 "protected" : 1,
40691 "proxyto" : "node",
40692 "returns" : {
de0983cb
DM
40693 "properties" : {
40694 "attributes" : {
40695 "optional" : 1,
40696 "type" : "array"
40697 },
40698 "health" : {
40699 "type" : "string"
40700 },
40701 "text" : {
40702 "optional" : 1,
40703 "type" : "string"
40704 },
40705 "type" : {
40706 "optional" : 1,
40707 "type" : "string"
40708 }
40709 },
2c0dde61
DM
40710 "type" : "object"
40711 }
40712 }
40713 },
40714 "leaf" : 1,
40715 "path" : "/nodes/{node}/disks/smart",
40716 "text" : "smart"
40717 },
40718 {
40719 "info" : {
40720 "POST" : {
e9cd3bd4 40721 "allowtoken" : 1,
2c0dde61
DM
40722 "description" : "Initialize Disk with GPT",
40723 "method" : "POST",
40724 "name" : "initgpt",
40725 "parameters" : {
40726 "additionalProperties" : 0,
40727 "properties" : {
40728 "disk" : {
40729 "description" : "Block device name",
40730 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
40731 "type" : "string"
40732 },
40733 "node" : {
40734 "description" : "The cluster node name.",
40735 "format" : "pve-node",
013dc89f
DM
40736 "type" : "string",
40737 "typetext" : "<string>"
2c0dde61
DM
40738 },
40739 "uuid" : {
40740 "description" : "UUID for the GPT table",
40741 "maxLength" : 36,
40742 "optional" : 1,
40743 "pattern" : "[a-fA-F0-9\\-]+",
40744 "type" : "string"
40745 }
40746 }
40747 },
40748 "permissions" : {
40749 "check" : [
40750 "perm",
40751 "/",
40752 [
40753 "Sys.Modify"
40754 ]
40755 ]
40756 },
40757 "protected" : 1,
40758 "proxyto" : "node",
40759 "returns" : {
40760 "type" : "string"
40761 }
40762 }
40763 },
40764 "leaf" : 1,
40765 "path" : "/nodes/{node}/disks/initgpt",
40766 "text" : "initgpt"
0695fdaf
TL
40767 },
40768 {
40769 "info" : {
40770 "PUT" : {
40771 "allowtoken" : 1,
40772 "description" : "Wipe a disk or partition.",
40773 "method" : "PUT",
40774 "name" : "wipe_disk",
40775 "parameters" : {
40776 "additionalProperties" : 0,
40777 "properties" : {
40778 "disk" : {
40779 "description" : "Block device name",
40780 "pattern" : "^/dev/[a-zA-Z0-9\\/]+$",
40781 "type" : "string"
40782 },
40783 "node" : {
40784 "description" : "The cluster node name.",
40785 "format" : "pve-node",
40786 "type" : "string",
40787 "typetext" : "<string>"
40788 }
40789 }
40790 },
40791 "protected" : 1,
40792 "proxyto" : "node",
40793 "returns" : {
40794 "type" : "string"
40795 }
40796 }
40797 },
40798 "leaf" : 1,
40799 "path" : "/nodes/{node}/disks/wipedisk",
40800 "text" : "wipedisk"
2c0dde61
DM
40801 }
40802 ],
40803 "info" : {
40804 "GET" : {
e9cd3bd4 40805 "allowtoken" : 1,
2c0dde61
DM
40806 "description" : "Node index.",
40807 "method" : "GET",
40808 "name" : "index",
40809 "parameters" : {
40810 "additionalProperties" : 0,
40811 "properties" : {
40812 "node" : {
40813 "description" : "The cluster node name.",
40814 "format" : "pve-node",
013dc89f
DM
40815 "type" : "string",
40816 "typetext" : "<string>"
2c0dde61
DM
40817 }
40818 }
40819 },
40820 "permissions" : {
40821 "user" : "all"
40822 },
40823 "proxyto" : "node",
40824 "returns" : {
40825 "items" : {
40826 "properties" : {},
40827 "type" : "object"
40828 },
40829 "links" : [
40830 {
40831 "href" : "{name}",
40832 "rel" : "child"
40833 }
40834 ],
40835 "type" : "array"
40836 }
40837 }
40838 },
40839 "leaf" : 0,
40840 "path" : "/nodes/{node}/disks",
40841 "text" : "disks"
40842 },
56122987 40843 {
56122987
DM
40844 "children" : [
40845 {
40846 "info" : {
44660702 40847 "GET" : {
e9cd3bd4 40848 "allowtoken" : 1,
44660702
DM
40849 "description" : "List available updates.",
40850 "method" : "GET",
40851 "name" : "list_updates",
40852 "parameters" : {
40853 "additionalProperties" : 0,
40854 "properties" : {
40855 "node" : {
40856 "description" : "The cluster node name.",
40857 "format" : "pve-node",
013dc89f
DM
40858 "type" : "string",
40859 "typetext" : "<string>"
44660702
DM
40860 }
40861 }
7aacca6f
DM
40862 },
40863 "permissions" : {
40864 "check" : [
40865 "perm",
40866 "/nodes/{node}",
40867 [
40868 "Sys.Modify"
40869 ]
40870 ]
40871 },
44660702 40872 "protected" : 1,
56122987 40873 "proxyto" : "node",
44660702
DM
40874 "returns" : {
40875 "items" : {
40876 "properties" : {},
40877 "type" : "object"
40878 },
40879 "type" : "array"
40880 }
40881 },
40882 "POST" : {
e9cd3bd4 40883 "allowtoken" : 1,
44660702 40884 "description" : "This is used to resynchronize the package index files from their sources (apt-get update).",
7aacca6f
DM
40885 "method" : "POST",
40886 "name" : "update_database",
56122987
DM
40887 "parameters" : {
40888 "additionalProperties" : 0,
40889 "properties" : {
44660702
DM
40890 "node" : {
40891 "description" : "The cluster node name.",
40892 "format" : "pve-node",
013dc89f
DM
40893 "type" : "string",
40894 "typetext" : "<string>"
44660702 40895 },
56122987 40896 "notify" : {
56122987 40897 "default" : 0,
44660702
DM
40898 "description" : "Send notification mail about new packages (to email address specified for user 'root@pam').",
40899 "optional" : 1,
013dc89f
DM
40900 "type" : "boolean",
40901 "typetext" : "<boolean>"
56122987
DM
40902 },
40903 "quiet" : {
56122987 40904 "default" : 0,
44660702 40905 "description" : "Only produces output suitable for logging, omitting progress indicators.",
56122987 40906 "optional" : 1,
013dc89f
DM
40907 "type" : "boolean",
40908 "typetext" : "<boolean>"
56122987 40909 }
7aacca6f
DM
40910 }
40911 },
40912 "permissions" : {
40913 "check" : [
40914 "perm",
40915 "/nodes/{node}",
40916 [
40917 "Sys.Modify"
40918 ]
40919 ]
40920 },
44660702
DM
40921 "protected" : 1,
40922 "proxyto" : "node",
40923 "returns" : {
40924 "type" : "string"
40925 }
56122987
DM
40926 }
40927 },
7aacca6f 40928 "leaf" : 1,
44660702
DM
40929 "path" : "/nodes/{node}/apt/update",
40930 "text" : "update"
56122987
DM
40931 },
40932 {
56122987
DM
40933 "info" : {
40934 "GET" : {
e9cd3bd4 40935 "allowtoken" : 1,
44660702 40936 "description" : "Get package changelogs.",
56122987 40937 "method" : "GET",
7aacca6f 40938 "name" : "changelog",
56122987 40939 "parameters" : {
44660702 40940 "additionalProperties" : 0,
56122987
DM
40941 "properties" : {
40942 "name" : {
40943 "description" : "Package name.",
013dc89f
DM
40944 "type" : "string",
40945 "typetext" : "<string>"
56122987 40946 },
44660702
DM
40947 "node" : {
40948 "description" : "The cluster node name.",
40949 "format" : "pve-node",
013dc89f
DM
40950 "type" : "string",
40951 "typetext" : "<string>"
44660702 40952 },
56122987 40953 "version" : {
7aacca6f 40954 "description" : "Package version.",
44660702 40955 "optional" : 1,
013dc89f
DM
40956 "type" : "string",
40957 "typetext" : "<string>"
56122987 40958 }
44660702 40959 }
56122987 40960 },
44660702
DM
40961 "permissions" : {
40962 "check" : [
40963 "perm",
40964 "/nodes/{node}",
40965 [
40966 "Sys.Modify"
40967 ]
40968 ]
40969 },
40970 "proxyto" : "node",
40971 "returns" : {
40972 "type" : "string"
40973 }
56122987
DM
40974 }
40975 },
44660702
DM
40976 "leaf" : 1,
40977 "path" : "/nodes/{node}/apt/changelog",
7aacca6f 40978 "text" : "changelog"
56122987 40979 },
34f3e481
TL
40980 {
40981 "info" : {
40982 "GET" : {
40983 "allowtoken" : 1,
40984 "description" : "Get APT repository information.",
40985 "method" : "GET",
40986 "name" : "repositories",
40987 "parameters" : {
40988 "additionalProperties" : 0,
40989 "properties" : {
40990 "node" : {
40991 "description" : "The cluster node name.",
40992 "format" : "pve-node",
40993 "type" : "string",
40994 "typetext" : "<string>"
40995 }
40996 }
40997 },
40998 "permissions" : {
40999 "check" : [
41000 "perm",
41001 "/nodes/{node}",
41002 [
41003 "Sys.Audit"
41004 ]
41005 ]
41006 },
41007 "proxyto" : "node",
41008 "returns" : {
41009 "description" : "Result from parsing the APT repository files in /etc/apt/.",
41010 "properties" : {
41011 "digest" : {
41012 "description" : "Common digest of all files.",
41013 "type" : "string"
41014 },
41015 "errors" : {
41016 "description" : "List of problematic repository files.",
41017 "items" : {
41018 "properties" : {
41019 "error" : {
41020 "description" : "The error message",
41021 "type" : "string"
41022 },
41023 "path" : {
41024 "description" : "Path to the problematic file.",
41025 "type" : "string"
41026 }
41027 },
41028 "type" : "object"
41029 },
41030 "type" : "array"
41031 },
41032 "files" : {
41033 "description" : "List of parsed repository files.",
41034 "items" : {
41035 "properties" : {
41036 "digest" : {
41037 "description" : "Digest of the file as bytes.",
41038 "items" : {
41039 "type" : "integer"
41040 },
41041 "type" : "array"
41042 },
41043 "file-type" : {
41044 "description" : "Format of the file.",
41045 "enum" : [
41046 "list",
41047 "sources"
41048 ],
41049 "type" : "string"
41050 },
41051 "path" : {
41052 "description" : "Path to the problematic file.",
41053 "type" : "string"
41054 },
41055 "repositories" : {
41056 "description" : "The parsed repositories.",
41057 "items" : {
41058 "properties" : {
41059 "Comment" : {
41060 "description" : "Associated comment",
41061 "optional" : 1,
41062 "type" : "string"
41063 },
41064 "Components" : {
41065 "description" : "List of repository components",
41066 "items" : {
41067 "type" : "string"
41068 },
41069 "optional" : 1,
41070 "type" : "array"
41071 },
41072 "Enabled" : {
41073 "description" : "Whether the repository is enabled or not",
41074 "type" : "boolean"
41075 },
41076 "FileType" : {
41077 "description" : "Format of the defining file.",
41078 "enum" : [
41079 "list",
41080 "sources"
41081 ],
41082 "type" : "string"
41083 },
41084 "Options" : {
41085 "description" : "Additional options",
41086 "items" : {
41087 "properties" : {
41088 "Key" : {
41089 "type" : "string"
41090 },
41091 "Values" : {
41092 "items" : {
41093 "type" : "string"
41094 },
41095 "type" : "array"
41096 }
41097 },
41098 "type" : "object"
41099 },
41100 "optional" : 1,
41101 "type" : "array"
41102 },
41103 "Suites" : {
41104 "description" : "List of package distribuitions",
41105 "items" : {
41106 "type" : "string"
41107 },
41108 "type" : "array"
41109 },
41110 "Types" : {
41111 "description" : "List of package types.",
41112 "items" : {
41113 "enum" : [
41114 "deb",
41115 "deb-src"
41116 ],
41117 "type" : "string"
41118 },
41119 "type" : "array"
41120 },
41121 "URIs" : {
41122 "description" : "List of repository URIs.",
41123 "items" : {
41124 "type" : "string"
41125 },
41126 "type" : "array"
41127 }
41128 },
41129 "type" : "object"
41130 },
41131 "type" : "array"
41132 }
41133 },
41134 "type" : "object"
41135 },
41136 "type" : "array"
41137 },
41138 "infos" : {
41139 "description" : "Additional information/warnings for APT repositories.",
41140 "items" : {
41141 "properties" : {
41142 "index" : {
41143 "description" : "Index of the associated repository within the file.",
41144 "type" : "string"
41145 },
41146 "kind" : {
41147 "description" : "Kind of the information (e.g. warning).",
41148 "type" : "string"
41149 },
41150 "message" : {
41151 "description" : "Information message.",
41152 "type" : "string"
41153 },
41154 "path" : {
41155 "description" : "Path to the associated file.",
41156 "type" : "string"
41157 },
41158 "property" : {
41159 "description" : "Property from which the info originates.",
41160 "optional" : 1,
41161 "type" : "string"
41162 }
41163 },
41164 "type" : "object"
41165 },
41166 "type" : "array"
41167 },
41168 "standard-repos" : {
41169 "description" : "List of standard repositories and their configuration status",
41170 "items" : {
41171 "properties" : {
41172 "handle" : {
41173 "description" : "Handle to identify the repository.",
41174 "type" : "string"
41175 },
41176 "name" : {
41177 "description" : "Full name of the repository.",
41178 "type" : "string"
41179 },
41180 "status" : {
41181 "description" : "Indicating enabled/disabled status, if the repository is configured.",
41182 "optional" : 1,
41183 "type" : "boolean"
41184 }
41185 },
41186 "type" : "object"
41187 },
41188 "type" : "array"
41189 }
41190 },
41191 "type" : "object"
41192 }
41193 },
41194 "POST" : {
41195 "allowtoken" : 1,
41196 "description" : "Change the properties of a repository. Currently only allows enabling/disabling.",
41197 "method" : "POST",
41198 "name" : "change_repository",
41199 "parameters" : {
41200 "additionalProperties" : 0,
41201 "properties" : {
41202 "digest" : {
41203 "description" : "Digest to detect modifications.",
41204 "maxLength" : 80,
41205 "optional" : 1,
41206 "type" : "string",
41207 "typetext" : "<string>"
41208 },
41209 "enabled" : {
41210 "description" : "Whether the repository should be enabled or not.",
41211 "optional" : 1,
41212 "type" : "boolean",
41213 "typetext" : "<boolean>"
41214 },
41215 "index" : {
41216 "description" : "Index within the file (starting from 0).",
41217 "type" : "integer",
41218 "typetext" : "<integer>"
41219 },
41220 "node" : {
41221 "description" : "The cluster node name.",
41222 "format" : "pve-node",
41223 "type" : "string",
41224 "typetext" : "<string>"
41225 },
41226 "path" : {
41227 "description" : "Path to the containing file.",
41228 "type" : "string",
41229 "typetext" : "<string>"
41230 }
41231 }
41232 },
41233 "permissions" : {
41234 "check" : [
41235 "perm",
41236 "/nodes/{node}",
41237 [
41238 "Sys.Modify"
41239 ]
41240 ]
41241 },
41242 "protected" : 1,
41243 "proxyto" : "node",
41244 "returns" : {
41245 "type" : "null"
41246 }
41247 },
41248 "PUT" : {
41249 "allowtoken" : 1,
41250 "description" : "Add a standard repository to the configuration",
41251 "method" : "PUT",
41252 "name" : "add_repository",
41253 "parameters" : {
41254 "additionalProperties" : 0,
41255 "properties" : {
41256 "digest" : {
41257 "description" : "Digest to detect modifications.",
41258 "maxLength" : 80,
41259 "optional" : 1,
41260 "type" : "string",
41261 "typetext" : "<string>"
41262 },
41263 "handle" : {
41264 "description" : "Handle that identifies a repository.",
41265 "type" : "string",
41266 "typetext" : "<string>"
41267 },
41268 "node" : {
41269 "description" : "The cluster node name.",
41270 "format" : "pve-node",
41271 "type" : "string",
41272 "typetext" : "<string>"
41273 }
41274 }
41275 },
41276 "permissions" : {
41277 "check" : [
41278 "perm",
41279 "/nodes/{node}",
41280 [
41281 "Sys.Modify"
41282 ]
41283 ]
41284 },
41285 "protected" : 1,
41286 "proxyto" : "node",
41287 "returns" : {
41288 "type" : "null"
41289 }
41290 }
41291 },
41292 "leaf" : 1,
41293 "path" : "/nodes/{node}/apt/repositories",
41294 "text" : "repositories"
41295 },
56122987 41296 {
56122987
DM
41297 "info" : {
41298 "GET" : {
e9cd3bd4 41299 "allowtoken" : 1,
44660702
DM
41300 "description" : "Get package information for important Proxmox packages.",
41301 "method" : "GET",
7aacca6f
DM
41302 "name" : "versions",
41303 "parameters" : {
44660702 41304 "additionalProperties" : 0,
7aacca6f
DM
41305 "properties" : {
41306 "node" : {
44660702 41307 "description" : "The cluster node name.",
7aacca6f 41308 "format" : "pve-node",
013dc89f
DM
41309 "type" : "string",
41310 "typetext" : "<string>"
7aacca6f 41311 }
44660702 41312 }
7aacca6f 41313 },
56122987
DM
41314 "permissions" : {
41315 "check" : [
41316 "perm",
41317 "/nodes/{node}",
41318 [
41319 "Sys.Audit"
41320 ]
41321 ]
41322 },
7aacca6f 41323 "proxyto" : "node",
56122987
DM
41324 "returns" : {
41325 "items" : {
7aacca6f
DM
41326 "properties" : {},
41327 "type" : "object"
44660702
DM
41328 },
41329 "type" : "array"
56122987
DM
41330 }
41331 }
41332 },
44660702 41333 "leaf" : 1,
7aacca6f 41334 "path" : "/nodes/{node}/apt/versions",
44660702 41335 "text" : "versions"
56122987
DM
41336 }
41337 ],
56122987
DM
41338 "info" : {
41339 "GET" : {
e9cd3bd4 41340 "allowtoken" : 1,
44660702 41341 "description" : "Directory index for apt (Advanced Package Tool).",
7aacca6f 41342 "method" : "GET",
44660702 41343 "name" : "index",
7aacca6f
DM
41344 "parameters" : {
41345 "additionalProperties" : 0,
41346 "properties" : {
41347 "node" : {
44660702 41348 "description" : "The cluster node name.",
7aacca6f 41349 "format" : "pve-node",
013dc89f
DM
41350 "type" : "string",
41351 "typetext" : "<string>"
7aacca6f
DM
41352 }
41353 }
41354 },
7aacca6f
DM
41355 "permissions" : {
41356 "user" : "all"
41357 },
44660702
DM
41358 "returns" : {
41359 "items" : {
41360 "properties" : {
41361 "id" : {
41362 "type" : "string"
41363 }
41364 },
41365 "type" : "object"
41366 },
41367 "links" : [
41368 {
41369 "href" : "{id}",
41370 "rel" : "child"
41371 }
41372 ],
41373 "type" : "array"
41374 }
56122987 41375 }
7aacca6f 41376 },
44660702 41377 "leaf" : 0,
7aacca6f 41378 "path" : "/nodes/{node}/apt",
44660702 41379 "text" : "apt"
56122987
DM
41380 },
41381 {
56122987
DM
41382 "children" : [
41383 {
41384 "children" : [
41385 {
56122987
DM
41386 "info" : {
41387 "DELETE" : {
e9cd3bd4 41388 "allowtoken" : 1,
44660702 41389 "description" : "Delete rule.",
7aacca6f 41390 "method" : "DELETE",
44660702 41391 "name" : "delete_rule",
56122987
DM
41392 "parameters" : {
41393 "additionalProperties" : 0,
41394 "properties" : {
56122987
DM
41395 "digest" : {
41396 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
44660702 41397 "maxLength" : 40,
56122987 41398 "optional" : 1,
013dc89f
DM
41399 "type" : "string",
41400 "typetext" : "<string>"
56122987 41401 },
44660702
DM
41402 "node" : {
41403 "description" : "The cluster node name.",
41404 "format" : "pve-node",
013dc89f
DM
41405 "type" : "string",
41406 "typetext" : "<string>"
44660702 41407 },
7aacca6f 41408 "pos" : {
7aacca6f 41409 "description" : "Update rule at position <pos>.",
44660702
DM
41410 "minimum" : 0,
41411 "optional" : 1,
4bd7df8b 41412 "type" : "integer",
013dc89f 41413 "typetext" : "<integer> (0 - N)"
56122987
DM
41414 }
41415 }
41416 },
44660702
DM
41417 "permissions" : {
41418 "check" : [
41419 "perm",
41420 "/nodes/{node}",
41421 [
41422 "Sys.Modify"
41423 ]
41424 ]
41425 },
41426 "protected" : 1,
41427 "proxyto" : "node",
56122987
DM
41428 "returns" : {
41429 "type" : "null"
44660702
DM
41430 }
41431 },
41432 "GET" : {
e9cd3bd4 41433 "allowtoken" : 1,
44660702
DM
41434 "description" : "Get single rule data.",
41435 "method" : "GET",
41436 "name" : "get_rule",
41437 "parameters" : {
41438 "additionalProperties" : 0,
41439 "properties" : {
41440 "node" : {
41441 "description" : "The cluster node name.",
41442 "format" : "pve-node",
013dc89f
DM
41443 "type" : "string",
41444 "typetext" : "<string>"
44660702
DM
41445 },
41446 "pos" : {
41447 "description" : "Update rule at position <pos>.",
41448 "minimum" : 0,
41449 "optional" : 1,
4bd7df8b 41450 "type" : "integer",
013dc89f 41451 "typetext" : "<integer> (0 - N)"
44660702
DM
41452 }
41453 }
56122987 41454 },
56122987
DM
41455 "permissions" : {
41456 "check" : [
41457 "perm",
41458 "/nodes/{node}",
41459 [
44660702 41460 "Sys.Audit"
56122987
DM
41461 ]
41462 ]
44660702
DM
41463 },
41464 "proxyto" : "node",
41465 "returns" : {
41466 "properties" : {
e2d681b3
TL
41467 "action" : {
41468 "type" : "string"
41469 },
41470 "comment" : {
41471 "optional" : 1,
41472 "type" : "string"
41473 },
41474 "dest" : {
41475 "optional" : 1,
41476 "type" : "string"
41477 },
41478 "dport" : {
41479 "optional" : 1,
41480 "type" : "string"
41481 },
41482 "enable" : {
41483 "optional" : 1,
41484 "type" : "integer"
41485 },
4772952b
TL
41486 "icmp-type" : {
41487 "optional" : 1,
41488 "type" : "string"
41489 },
e2d681b3
TL
41490 "iface" : {
41491 "optional" : 1,
41492 "type" : "string"
41493 },
41494 "ipversion" : {
41495 "optional" : 1,
41496 "type" : "integer"
41497 },
95895385
TL
41498 "log" : {
41499 "description" : "Log level for firewall rule",
41500 "enum" : [
41501 "emerg",
41502 "alert",
41503 "crit",
41504 "err",
41505 "warning",
41506 "notice",
41507 "info",
41508 "debug",
41509 "nolog"
41510 ],
41511 "optional" : 1,
41512 "type" : "string"
41513 },
e2d681b3
TL
41514 "macro" : {
41515 "optional" : 1,
5f26e15b 41516 "type" : "string"
e2d681b3 41517 },
44660702
DM
41518 "pos" : {
41519 "type" : "integer"
e2d681b3
TL
41520 },
41521 "proto" : {
41522 "optional" : 1,
41523 "type" : "string"
41524 },
41525 "source" : {
41526 "optional" : 1,
41527 "type" : "string"
41528 },
41529 "sport" : {
41530 "optional" : 1,
41531 "type" : "string"
41532 },
41533 "type" : {
41534 "type" : "string"
44660702
DM
41535 }
41536 },
41537 "type" : "object"
7aacca6f 41538 }
56122987
DM
41539 },
41540 "PUT" : {
e9cd3bd4 41541 "allowtoken" : 1,
44660702
DM
41542 "description" : "Modify rule data.",
41543 "method" : "PUT",
56122987 41544 "name" : "update_rule",
56122987 41545 "parameters" : {
44660702 41546 "additionalProperties" : 0,
56122987 41547 "properties" : {
44660702
DM
41548 "action" : {
41549 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
41550 "maxLength" : 20,
41551 "minLength" : 2,
56122987 41552 "optional" : 1,
44660702
DM
41553 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
41554 "type" : "string"
56122987 41555 },
7aacca6f 41556 "comment" : {
e94f0d56 41557 "description" : "Descriptive comment.",
56122987 41558 "optional" : 1,
013dc89f
DM
41559 "type" : "string",
41560 "typetext" : "<string>"
56122987 41561 },
44660702
DM
41562 "delete" : {
41563 "description" : "A list of settings you want to delete.",
41564 "format" : "pve-configid-list",
56122987 41565 "optional" : 1,
013dc89f
DM
41566 "type" : "string",
41567 "typetext" : "<string>"
56122987 41568 },
44660702
DM
41569 "dest" : {
41570 "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.",
41571 "format" : "pve-fw-addr-spec",
0695fdaf 41572 "maxLength" : 512,
56122987 41573 "optional" : 1,
013dc89f
DM
41574 "type" : "string",
41575 "typetext" : "<string>"
56122987 41576 },
44660702
DM
41577 "digest" : {
41578 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
41579 "maxLength" : 40,
56122987 41580 "optional" : 1,
013dc89f
DM
41581 "type" : "string",
41582 "typetext" : "<string>"
56122987 41583 },
7aacca6f 41584 "dport" : {
7aacca6f 41585 "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
41586 "format" : "pve-fw-dport-spec",
41587 "optional" : 1,
013dc89f
DM
41588 "type" : "string",
41589 "typetext" : "<string>"
7aacca6f 41590 },
44660702 41591 "enable" : {
e94f0d56 41592 "description" : "Flag to enable/disable a rule.",
44660702 41593 "minimum" : 0,
56122987 41594 "optional" : 1,
4bd7df8b 41595 "type" : "integer",
013dc89f 41596 "typetext" : "<integer> (0 - N)"
56122987 41597 },
4772952b
TL
41598 "icmp-type" : {
41599 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
41600 "format" : "pve-fw-icmp-type-spec",
41601 "optional" : 1,
41602 "type" : "string",
41603 "typetext" : "<string>"
41604 },
7aacca6f 41605 "iface" : {
44660702 41606 "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 41607 "format" : "pve-iface",
44660702 41608 "maxLength" : 20,
56122987 41609 "minLength" : 2,
44660702 41610 "optional" : 1,
013dc89f
DM
41611 "type" : "string",
41612 "typetext" : "<string>"
56122987 41613 },
95895385
TL
41614 "log" : {
41615 "description" : "Log level for firewall rule.",
41616 "enum" : [
41617 "emerg",
41618 "alert",
41619 "crit",
41620 "err",
41621 "warning",
41622 "notice",
41623 "info",
41624 "debug",
41625 "nolog"
41626 ],
41627 "optional" : 1,
41628 "type" : "string"
41629 },
44660702 41630 "macro" : {
e94f0d56 41631 "description" : "Use predefined standard macro.",
44660702
DM
41632 "maxLength" : 128,
41633 "optional" : 1,
013dc89f
DM
41634 "type" : "string",
41635 "typetext" : "<string>"
44660702
DM
41636 },
41637 "moveto" : {
41638 "description" : "Move rule to new position <moveto>. Other arguments are ignored.",
41639 "minimum" : 0,
7aacca6f 41640 "optional" : 1,
4bd7df8b 41641 "type" : "integer",
013dc89f 41642 "typetext" : "<integer> (0 - N)"
44660702
DM
41643 },
41644 "node" : {
41645 "description" : "The cluster node name.",
41646 "format" : "pve-node",
013dc89f
DM
41647 "type" : "string",
41648 "typetext" : "<string>"
56122987
DM
41649 },
41650 "pos" : {
44660702 41651 "description" : "Update rule at position <pos>.",
7aacca6f 41652 "minimum" : 0,
7aacca6f 41653 "optional" : 1,
4bd7df8b 41654 "type" : "integer",
013dc89f 41655 "typetext" : "<integer> (0 - N)"
7aacca6f 41656 },
44660702
DM
41657 "proto" : {
41658 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
41659 "format" : "pve-fw-protocol-spec",
7aacca6f 41660 "optional" : 1,
013dc89f
DM
41661 "type" : "string",
41662 "typetext" : "<string>"
7aacca6f 41663 },
44660702
DM
41664 "source" : {
41665 "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.",
41666 "format" : "pve-fw-addr-spec",
0695fdaf 41667 "maxLength" : 512,
56122987 41668 "optional" : 1,
013dc89f
DM
41669 "type" : "string",
41670 "typetext" : "<string>"
7aacca6f 41671 },
44660702
DM
41672 "sport" : {
41673 "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.",
41674 "format" : "pve-fw-sport-spec",
41675 "optional" : 1,
013dc89f
DM
41676 "type" : "string",
41677 "typetext" : "<string>"
44660702
DM
41678 },
41679 "type" : {
e94f0d56 41680 "description" : "Rule type.",
44660702
DM
41681 "enum" : [
41682 "in",
41683 "out",
41684 "group"
41685 ],
41686 "optional" : 1,
41687 "type" : "string"
56122987 41688 }
44660702 41689 }
56122987 41690 },
56122987
DM
41691 "permissions" : {
41692 "check" : [
41693 "perm",
41694 "/nodes/{node}",
41695 [
41696 "Sys.Modify"
41697 ]
41698 ]
7aacca6f 41699 },
44660702 41700 "protected" : 1,
7aacca6f 41701 "proxyto" : "node",
7aacca6f
DM
41702 "returns" : {
41703 "type" : "null"
56122987
DM
41704 }
41705 }
7aacca6f 41706 },
44660702 41707 "leaf" : 1,
7aacca6f 41708 "path" : "/nodes/{node}/firewall/rules/{pos}",
44660702 41709 "text" : "{pos}"
56122987
DM
41710 }
41711 ],
56122987
DM
41712 "info" : {
41713 "GET" : {
e9cd3bd4 41714 "allowtoken" : 1,
44660702
DM
41715 "description" : "List rules.",
41716 "method" : "GET",
41717 "name" : "get_rules",
41718 "parameters" : {
41719 "additionalProperties" : 0,
41720 "properties" : {
41721 "node" : {
41722 "description" : "The cluster node name.",
41723 "format" : "pve-node",
013dc89f
DM
41724 "type" : "string",
41725 "typetext" : "<string>"
44660702
DM
41726 }
41727 }
41728 },
41729 "permissions" : {
41730 "check" : [
41731 "perm",
41732 "/nodes/{node}",
41733 [
41734 "Sys.Audit"
41735 ]
41736 ]
41737 },
41738 "proxyto" : "node",
56122987 41739 "returns" : {
56122987
DM
41740 "items" : {
41741 "properties" : {
41742 "pos" : {
41743 "type" : "integer"
41744 }
44660702
DM
41745 },
41746 "type" : "object"
56122987 41747 },
7aacca6f
DM
41748 "links" : [
41749 {
41750 "href" : "{pos}",
41751 "rel" : "child"
41752 }
41753 ],
41754 "type" : "array"
44660702 41755 }
56122987
DM
41756 },
41757 "POST" : {
e9cd3bd4 41758 "allowtoken" : 1,
44660702 41759 "description" : "Create new rule.",
7aacca6f
DM
41760 "method" : "POST",
41761 "name" : "create_rule",
56122987 41762 "parameters" : {
44660702 41763 "additionalProperties" : 0,
56122987 41764 "properties" : {
7aacca6f 41765 "action" : {
7aacca6f 41766 "description" : "Rule action ('ACCEPT', 'DROP', 'REJECT') or security group name.",
44660702 41767 "maxLength" : 20,
7aacca6f
DM
41768 "minLength" : 2,
41769 "optional" : 0,
44660702
DM
41770 "pattern" : "[A-Za-z][A-Za-z0-9\\-\\_]+",
41771 "type" : "string"
56122987 41772 },
44660702 41773 "comment" : {
e94f0d56 41774 "description" : "Descriptive comment.",
56122987 41775 "optional" : 1,
013dc89f
DM
41776 "type" : "string",
41777 "typetext" : "<string>"
56122987 41778 },
44660702
DM
41779 "dest" : {
41780 "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.",
41781 "format" : "pve-fw-addr-spec",
0695fdaf 41782 "maxLength" : 512,
7aacca6f 41783 "optional" : 1,
013dc89f
DM
41784 "type" : "string",
41785 "typetext" : "<string>"
56122987 41786 },
44660702
DM
41787 "digest" : {
41788 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
41789 "maxLength" : 40,
41790 "optional" : 1,
013dc89f
DM
41791 "type" : "string",
41792 "typetext" : "<string>"
56122987 41793 },
44660702
DM
41794 "dport" : {
41795 "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.",
41796 "format" : "pve-fw-dport-spec",
7aacca6f 41797 "optional" : 1,
013dc89f
DM
41798 "type" : "string",
41799 "typetext" : "<string>"
56122987 41800 },
44660702 41801 "enable" : {
e94f0d56 41802 "description" : "Flag to enable/disable a rule.",
44660702
DM
41803 "minimum" : 0,
41804 "optional" : 1,
4bd7df8b 41805 "type" : "integer",
013dc89f 41806 "typetext" : "<integer> (0 - N)"
44660702 41807 },
4772952b
TL
41808 "icmp-type" : {
41809 "description" : "Specify icmp-type. Only valid if proto equals 'icmp'.",
41810 "format" : "pve-fw-icmp-type-spec",
41811 "optional" : 1,
41812 "type" : "string",
41813 "typetext" : "<string>"
41814 },
7aacca6f 41815 "iface" : {
44660702 41816 "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 41817 "format" : "pve-iface",
56122987 41818 "maxLength" : 20,
7aacca6f 41819 "minLength" : 2,
7aacca6f 41820 "optional" : 1,
013dc89f
DM
41821 "type" : "string",
41822 "typetext" : "<string>"
56122987 41823 },
95895385
TL
41824 "log" : {
41825 "description" : "Log level for firewall rule.",
41826 "enum" : [
41827 "emerg",
41828 "alert",
41829 "crit",
41830 "err",
41831 "warning",
41832 "notice",
41833 "info",
41834 "debug",
41835 "nolog"
41836 ],
41837 "optional" : 1,
41838 "type" : "string"
41839 },
44660702 41840 "macro" : {
e94f0d56 41841 "description" : "Use predefined standard macro.",
44660702 41842 "maxLength" : 128,
7aacca6f 41843 "optional" : 1,
013dc89f
DM
41844 "type" : "string",
41845 "typetext" : "<string>"
56122987 41846 },
44660702
DM
41847 "node" : {
41848 "description" : "The cluster node name.",
41849 "format" : "pve-node",
013dc89f
DM
41850 "type" : "string",
41851 "typetext" : "<string>"
44660702
DM
41852 },
41853 "pos" : {
41854 "description" : "Update rule at position <pos>.",
41855 "minimum" : 0,
41856 "optional" : 1,
4bd7df8b 41857 "type" : "integer",
013dc89f 41858 "typetext" : "<integer> (0 - N)"
44660702
DM
41859 },
41860 "proto" : {
41861 "description" : "IP protocol. You can use protocol names ('tcp'/'udp') or simple numbers, as defined in '/etc/protocols'.",
41862 "format" : "pve-fw-protocol-spec",
56122987 41863 "optional" : 1,
013dc89f
DM
41864 "type" : "string",
41865 "typetext" : "<string>"
56122987 41866 },
7aacca6f 41867 "source" : {
7aacca6f 41868 "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 41869 "format" : "pve-fw-addr-spec",
0695fdaf 41870 "maxLength" : 512,
44660702 41871 "optional" : 1,
013dc89f
DM
41872 "type" : "string",
41873 "typetext" : "<string>"
7aacca6f 41874 },
44660702
DM
41875 "sport" : {
41876 "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.",
41877 "format" : "pve-fw-sport-spec",
7aacca6f 41878 "optional" : 1,
013dc89f
DM
41879 "type" : "string",
41880 "typetext" : "<string>"
44660702
DM
41881 },
41882 "type" : {
e94f0d56 41883 "description" : "Rule type.",
44660702
DM
41884 "enum" : [
41885 "in",
41886 "out",
41887 "group"
41888 ],
41889 "optional" : 0,
41890 "type" : "string"
56122987 41891 }
44660702 41892 }
7aacca6f 41893 },
56122987
DM
41894 "permissions" : {
41895 "check" : [
41896 "perm",
41897 "/nodes/{node}",
41898 [
41899 "Sys.Modify"
41900 ]
41901 ]
41902 },
44660702
DM
41903 "protected" : 1,
41904 "proxyto" : "node",
41905 "returns" : {
41906 "type" : "null"
41907 }
56122987
DM
41908 }
41909 },
44660702 41910 "leaf" : 0,
7aacca6f 41911 "path" : "/nodes/{node}/firewall/rules",
44660702 41912 "text" : "rules"
56122987
DM
41913 },
41914 {
56122987 41915 "info" : {
44660702 41916 "GET" : {
e9cd3bd4 41917 "allowtoken" : 1,
44660702
DM
41918 "description" : "Get host firewall options.",
41919 "method" : "GET",
41920 "name" : "get_options",
56122987 41921 "parameters" : {
7aacca6f 41922 "additionalProperties" : 0,
56122987 41923 "properties" : {
44660702
DM
41924 "node" : {
41925 "description" : "The cluster node name.",
41926 "format" : "pve-node",
013dc89f
DM
41927 "type" : "string",
41928 "typetext" : "<string>"
44660702
DM
41929 }
41930 }
41931 },
41932 "permissions" : {
41933 "check" : [
41934 "perm",
41935 "/nodes/{node}",
41936 [
41937 "Sys.Audit"
41938 ]
41939 ]
41940 },
41941 "proxyto" : "node",
41942 "returns" : {
41943 "properties" : {
41944 "enable" : {
41945 "description" : "Enable host firewall rules.",
7aacca6f 41946 "optional" : 1,
44660702 41947 "type" : "boolean"
7aacca6f 41948 },
44660702
DM
41949 "log_level_in" : {
41950 "description" : "Log level for incoming traffic.",
56122987
DM
41951 "enum" : [
41952 "emerg",
41953 "alert",
41954 "crit",
41955 "err",
41956 "warning",
41957 "notice",
41958 "info",
41959 "debug",
41960 "nolog"
41961 ],
56122987 41962 "optional" : 1,
44660702
DM
41963 "type" : "string"
41964 },
41965 "log_level_out" : {
41966 "description" : "Log level for outgoing traffic.",
56122987
DM
41967 "enum" : [
41968 "emerg",
41969 "alert",
41970 "crit",
41971 "err",
41972 "warning",
41973 "notice",
41974 "info",
41975 "debug",
41976 "nolog"
41977 ],
44660702
DM
41978 "optional" : 1,
41979 "type" : "string"
41980 },
95895385
TL
41981 "log_nf_conntrack" : {
41982 "default" : 0,
41983 "description" : "Enable logging of conntrack information.",
41984 "optional" : 1,
41985 "type" : "boolean"
41986 },
44660702 41987 "ndp" : {
5c1699e5
TL
41988 "default" : 0,
41989 "description" : "Enable NDP (Neighbor Discovery Protocol).",
44660702
DM
41990 "optional" : 1,
41991 "type" : "boolean"
41992 },
5f26e15b
TL
41993 "nf_conntrack_allow_invalid" : {
41994 "default" : 0,
41995 "description" : "Allow invalid packets on connection tracking.",
41996 "optional" : 1,
41997 "type" : "boolean"
41998 },
44660702 41999 "nf_conntrack_max" : {
5c1699e5 42000 "default" : 262144,
44660702
DM
42001 "description" : "Maximum number of tracked connections.",
42002 "minimum" : 32768,
42003 "optional" : 1,
42004 "type" : "integer"
42005 },
42006 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 42007 "default" : 432000,
44660702
DM
42008 "description" : "Conntrack established timeout.",
42009 "minimum" : 7875,
42010 "optional" : 1,
42011 "type" : "integer"
42012 },
5c1699e5
TL
42013 "nf_conntrack_tcp_timeout_syn_recv" : {
42014 "default" : 60,
42015 "description" : "Conntrack syn recv timeout.",
42016 "maximum" : 60,
42017 "minimum" : 30,
42018 "optional" : 1,
42019 "type" : "integer"
42020 },
44660702
DM
42021 "nosmurfs" : {
42022 "description" : "Enable SMURFS filter.",
42023 "optional" : 1,
42024 "type" : "boolean"
56122987 42025 },
5c1699e5
TL
42026 "protection_synflood" : {
42027 "default" : 0,
42028 "description" : "Enable synflood protection",
42029 "optional" : 1,
42030 "type" : "boolean"
42031 },
42032 "protection_synflood_burst" : {
42033 "default" : 1000,
42034 "description" : "Synflood protection rate burst by ip src.",
42035 "optional" : 1,
42036 "type" : "integer"
42037 },
42038 "protection_synflood_rate" : {
42039 "default" : 200,
42040 "description" : "Synflood protection rate syn/sec by ip src.",
42041 "optional" : 1,
42042 "type" : "integer"
42043 },
7aacca6f 42044 "smurf_log_level" : {
44660702 42045 "description" : "Log level for SMURFS filter.",
56122987
DM
42046 "enum" : [
42047 "emerg",
42048 "alert",
42049 "crit",
42050 "err",
42051 "warning",
42052 "notice",
42053 "info",
42054 "debug",
42055 "nolog"
7aacca6f 42056 ],
7aacca6f
DM
42057 "optional" : 1,
42058 "type" : "string"
56122987 42059 },
44660702
DM
42060 "tcp_flags_log_level" : {
42061 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
42062 "enum" : [
42063 "emerg",
42064 "alert",
42065 "crit",
42066 "err",
42067 "warning",
42068 "notice",
42069 "info",
42070 "debug",
42071 "nolog"
42072 ],
44660702
DM
42073 "optional" : 1,
42074 "type" : "string"
7aacca6f 42075 },
44660702 42076 "tcpflags" : {
5c1699e5 42077 "default" : 0,
44660702 42078 "description" : "Filter illegal combinations of TCP flags.",
56122987 42079 "optional" : 1,
44660702 42080 "type" : "boolean"
56122987 42081 }
44660702
DM
42082 },
42083 "type" : "object"
7aacca6f 42084 }
56122987 42085 },
44660702 42086 "PUT" : {
e9cd3bd4 42087 "allowtoken" : 1,
44660702
DM
42088 "description" : "Set Firewall options.",
42089 "method" : "PUT",
42090 "name" : "set_options",
7aacca6f 42091 "parameters" : {
44660702 42092 "additionalProperties" : 0,
7aacca6f 42093 "properties" : {
44660702
DM
42094 "delete" : {
42095 "description" : "A list of settings you want to delete.",
42096 "format" : "pve-configid-list",
7aacca6f 42097 "optional" : 1,
013dc89f
DM
42098 "type" : "string",
42099 "typetext" : "<string>"
56122987 42100 },
44660702
DM
42101 "digest" : {
42102 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
42103 "maxLength" : 40,
42104 "optional" : 1,
013dc89f
DM
42105 "type" : "string",
42106 "typetext" : "<string>"
56122987 42107 },
44660702
DM
42108 "enable" : {
42109 "description" : "Enable host firewall rules.",
7aacca6f 42110 "optional" : 1,
013dc89f
DM
42111 "type" : "boolean",
42112 "typetext" : "<boolean>"
44660702
DM
42113 },
42114 "log_level_in" : {
42115 "description" : "Log level for incoming traffic.",
56122987
DM
42116 "enum" : [
42117 "emerg",
42118 "alert",
42119 "crit",
42120 "err",
42121 "warning",
42122 "notice",
42123 "info",
42124 "debug",
42125 "nolog"
44660702 42126 ],
7aacca6f 42127 "optional" : 1,
44660702 42128 "type" : "string"
7aacca6f 42129 },
44660702
DM
42130 "log_level_out" : {
42131 "description" : "Log level for outgoing traffic.",
56122987
DM
42132 "enum" : [
42133 "emerg",
42134 "alert",
42135 "crit",
42136 "err",
42137 "warning",
42138 "notice",
42139 "info",
42140 "debug",
42141 "nolog"
42142 ],
42143 "optional" : 1,
7aacca6f 42144 "type" : "string"
56122987 42145 },
95895385
TL
42146 "log_nf_conntrack" : {
42147 "default" : 0,
42148 "description" : "Enable logging of conntrack information.",
42149 "optional" : 1,
42150 "type" : "boolean",
42151 "typetext" : "<boolean>"
42152 },
44660702 42153 "ndp" : {
5c1699e5
TL
42154 "default" : 0,
42155 "description" : "Enable NDP (Neighbor Discovery Protocol).",
7aacca6f 42156 "optional" : 1,
013dc89f
DM
42157 "type" : "boolean",
42158 "typetext" : "<boolean>"
44660702 42159 },
5f26e15b
TL
42160 "nf_conntrack_allow_invalid" : {
42161 "default" : 0,
42162 "description" : "Allow invalid packets on connection tracking.",
42163 "optional" : 1,
42164 "type" : "boolean",
42165 "typetext" : "<boolean>"
42166 },
44660702 42167 "nf_conntrack_max" : {
5c1699e5 42168 "default" : 262144,
44660702
DM
42169 "description" : "Maximum number of tracked connections.",
42170 "minimum" : 32768,
42171 "optional" : 1,
4bd7df8b 42172 "type" : "integer",
013dc89f 42173 "typetext" : "<integer> (32768 - N)"
44660702
DM
42174 },
42175 "nf_conntrack_tcp_timeout_established" : {
5c1699e5 42176 "default" : 432000,
44660702
DM
42177 "description" : "Conntrack established timeout.",
42178 "minimum" : 7875,
42179 "optional" : 1,
4bd7df8b 42180 "type" : "integer",
013dc89f 42181 "typetext" : "<integer> (7875 - N)"
44660702 42182 },
5c1699e5
TL
42183 "nf_conntrack_tcp_timeout_syn_recv" : {
42184 "default" : 60,
42185 "description" : "Conntrack syn recv timeout.",
42186 "maximum" : 60,
42187 "minimum" : 30,
42188 "optional" : 1,
42189 "type" : "integer",
42190 "typetext" : "<integer> (30 - 60)"
42191 },
44660702
DM
42192 "node" : {
42193 "description" : "The cluster node name.",
42194 "format" : "pve-node",
013dc89f
DM
42195 "type" : "string",
42196 "typetext" : "<string>"
44660702
DM
42197 },
42198 "nosmurfs" : {
42199 "description" : "Enable SMURFS filter.",
42200 "optional" : 1,
013dc89f
DM
42201 "type" : "boolean",
42202 "typetext" : "<boolean>"
44660702 42203 },
5c1699e5
TL
42204 "protection_synflood" : {
42205 "default" : 0,
42206 "description" : "Enable synflood protection",
42207 "optional" : 1,
42208 "type" : "boolean",
42209 "typetext" : "<boolean>"
42210 },
42211 "protection_synflood_burst" : {
42212 "default" : 1000,
42213 "description" : "Synflood protection rate burst by ip src.",
42214 "optional" : 1,
42215 "type" : "integer",
42216 "typetext" : "<integer>"
42217 },
42218 "protection_synflood_rate" : {
42219 "default" : 200,
42220 "description" : "Synflood protection rate syn/sec by ip src.",
42221 "optional" : 1,
42222 "type" : "integer",
42223 "typetext" : "<integer>"
42224 },
44660702
DM
42225 "smurf_log_level" : {
42226 "description" : "Log level for SMURFS filter.",
56122987
DM
42227 "enum" : [
42228 "emerg",
42229 "alert",
42230 "crit",
42231 "err",
42232 "warning",
42233 "notice",
42234 "info",
42235 "debug",
42236 "nolog"
44660702
DM
42237 ],
42238 "optional" : 1,
42239 "type" : "string"
56122987 42240 },
44660702
DM
42241 "tcp_flags_log_level" : {
42242 "description" : "Log level for illegal tcp flags filter.",
56122987
DM
42243 "enum" : [
42244 "emerg",
42245 "alert",
42246 "crit",
42247 "err",
42248 "warning",
42249 "notice",
42250 "info",
42251 "debug",
42252 "nolog"
42253 ],
44660702
DM
42254 "optional" : 1,
42255 "type" : "string"
7aacca6f 42256 },
44660702 42257 "tcpflags" : {
5c1699e5 42258 "default" : 0,
44660702 42259 "description" : "Filter illegal combinations of TCP flags.",
56122987 42260 "optional" : 1,
013dc89f
DM
42261 "type" : "boolean",
42262 "typetext" : "<boolean>"
56122987 42263 }
7aacca6f 42264 }
56122987 42265 },
44660702
DM
42266 "permissions" : {
42267 "check" : [
42268 "perm",
42269 "/nodes/{node}",
42270 [
42271 "Sys.Modify"
42272 ]
42273 ]
42274 },
42275 "protected" : 1,
42276 "proxyto" : "node",
42277 "returns" : {
42278 "type" : "null"
42279 }
7aacca6f
DM
42280 }
42281 },
44660702
DM
42282 "leaf" : 1,
42283 "path" : "/nodes/{node}/firewall/options",
7aacca6f
DM
42284 "text" : "options"
42285 },
42286 {
7aacca6f
DM
42287 "info" : {
42288 "GET" : {
e9cd3bd4 42289 "allowtoken" : 1,
44660702
DM
42290 "description" : "Read firewall log",
42291 "method" : "GET",
7aacca6f 42292 "name" : "log",
56122987 42293 "parameters" : {
44660702 42294 "additionalProperties" : 0,
56122987 42295 "properties" : {
7aacca6f 42296 "limit" : {
44660702 42297 "minimum" : 0,
7aacca6f 42298 "optional" : 1,
4bd7df8b 42299 "type" : "integer",
013dc89f 42300 "typetext" : "<integer> (0 - N)"
7aacca6f 42301 },
56122987 42302 "node" : {
7aacca6f 42303 "description" : "The cluster node name.",
44660702 42304 "format" : "pve-node",
013dc89f
DM
42305 "type" : "string",
42306 "typetext" : "<string>"
44660702
DM
42307 },
42308 "start" : {
42309 "minimum" : 0,
42310 "optional" : 1,
4bd7df8b 42311 "type" : "integer",
013dc89f 42312 "typetext" : "<integer> (0 - N)"
56122987 42313 }
44660702 42314 }
7aacca6f 42315 },
56122987
DM
42316 "permissions" : {
42317 "check" : [
42318 "perm",
42319 "/nodes/{node}",
42320 [
42321 "Sys.Syslog"
42322 ]
42323 ]
42324 },
44660702
DM
42325 "protected" : 1,
42326 "proxyto" : "node",
56122987
DM
42327 "returns" : {
42328 "items" : {
56122987 42329 "properties" : {
56122987 42330 "n" : {
44660702
DM
42331 "description" : "Line number",
42332 "type" : "integer"
7aacca6f
DM
42333 },
42334 "t" : {
44660702
DM
42335 "description" : "Line text",
42336 "type" : "string"
56122987 42337 }
44660702
DM
42338 },
42339 "type" : "object"
56122987
DM
42340 },
42341 "type" : "array"
7aacca6f 42342 }
56122987
DM
42343 }
42344 },
44660702
DM
42345 "leaf" : 1,
42346 "path" : "/nodes/{node}/firewall/log",
7aacca6f 42347 "text" : "log"
56122987
DM
42348 }
42349 ],
42350 "info" : {
42351 "GET" : {
e9cd3bd4 42352 "allowtoken" : 1,
44660702
DM
42353 "description" : "Directory index.",
42354 "method" : "GET",
42355 "name" : "index",
56122987 42356 "parameters" : {
44660702 42357 "additionalProperties" : 0,
56122987
DM
42358 "properties" : {
42359 "node" : {
42360 "description" : "The cluster node name.",
44660702 42361 "format" : "pve-node",
013dc89f
DM
42362 "type" : "string",
42363 "typetext" : "<string>"
56122987 42364 }
44660702 42365 }
56122987 42366 },
7aacca6f
DM
42367 "permissions" : {
42368 "user" : "all"
42369 },
56122987
DM
42370 "returns" : {
42371 "items" : {
42372 "properties" : {},
42373 "type" : "object"
42374 },
56122987
DM
42375 "links" : [
42376 {
44660702
DM
42377 "href" : "{name}",
42378 "rel" : "child"
56122987 42379 }
44660702
DM
42380 ],
42381 "type" : "array"
42382 }
56122987 42383 }
7aacca6f 42384 },
44660702 42385 "leaf" : 0,
7aacca6f 42386 "path" : "/nodes/{node}/firewall",
44660702 42387 "text" : "firewall"
56122987 42388 },
5d9c884c
DM
42389 {
42390 "children" : [
42391 {
42392 "children" : [
42393 {
42394 "info" : {
42395 "GET" : {
e9cd3bd4 42396 "allowtoken" : 1,
5d9c884c
DM
42397 "description" : "Get replication job status.",
42398 "method" : "GET",
42399 "name" : "job_status",
42400 "parameters" : {
42401 "additionalProperties" : 0,
42402 "properties" : {
42403 "id" : {
42404 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
42405 "format" : "pve-replication-job-id",
42406 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
42407 "type" : "string"
42408 },
42409 "node" : {
42410 "description" : "The cluster node name.",
42411 "format" : "pve-node",
42412 "type" : "string",
42413 "typetext" : "<string>"
42414 }
42415 }
42416 },
42417 "permissions" : {
42418 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
42419 "user" : "all"
42420 },
42421 "protected" : 1,
42422 "proxyto" : "node",
42423 "returns" : {
5d9c884c
DM
42424 "type" : "object"
42425 }
42426 }
42427 },
42428 "leaf" : 1,
42429 "path" : "/nodes/{node}/replication/{id}/status",
42430 "text" : "status"
42431 },
42432 {
42433 "info" : {
42434 "GET" : {
e9cd3bd4 42435 "allowtoken" : 1,
5d9c884c
DM
42436 "description" : "Read replication job log.",
42437 "method" : "GET",
42438 "name" : "read_job_log",
42439 "parameters" : {
42440 "additionalProperties" : 0,
42441 "properties" : {
42442 "id" : {
42443 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
42444 "format" : "pve-replication-job-id",
42445 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
42446 "type" : "string"
42447 },
42448 "limit" : {
42449 "minimum" : 0,
42450 "optional" : 1,
42451 "type" : "integer",
42452 "typetext" : "<integer> (0 - N)"
42453 },
42454 "node" : {
42455 "description" : "The cluster node name.",
42456 "format" : "pve-node",
42457 "type" : "string",
42458 "typetext" : "<string>"
42459 },
42460 "start" : {
42461 "minimum" : 0,
42462 "optional" : 1,
42463 "type" : "integer",
42464 "typetext" : "<integer> (0 - N)"
42465 }
42466 }
42467 },
42468 "permissions" : {
42469 "description" : "Requires the VM.Audit permission on /vms/<vmid>, or 'Sys.Audit' on '/nodes/<node>'",
42470 "user" : "all"
42471 },
42472 "protected" : 1,
42473 "proxyto" : "node",
42474 "returns" : {
42475 "items" : {
42476 "properties" : {
42477 "n" : {
42478 "description" : "Line number",
42479 "type" : "integer"
42480 },
42481 "t" : {
42482 "description" : "Line text",
42483 "type" : "string"
42484 }
42485 },
42486 "type" : "object"
42487 },
42488 "type" : "array"
42489 }
42490 }
42491 },
42492 "leaf" : 1,
42493 "path" : "/nodes/{node}/replication/{id}/log",
42494 "text" : "log"
42495 },
42496 {
42497 "info" : {
42498 "POST" : {
e9cd3bd4 42499 "allowtoken" : 1,
5d9c884c
DM
42500 "description" : "Schedule replication job to start as soon as possible.",
42501 "method" : "POST",
42502 "name" : "schedule_now",
42503 "parameters" : {
42504 "additionalProperties" : 0,
42505 "properties" : {
42506 "id" : {
42507 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
42508 "format" : "pve-replication-job-id",
42509 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
42510 "type" : "string"
42511 },
42512 "node" : {
42513 "description" : "The cluster node name.",
42514 "format" : "pve-node",
42515 "type" : "string",
42516 "typetext" : "<string>"
42517 }
42518 }
42519 },
42520 "permissions" : {
42521 "check" : [
42522 "perm",
42523 "/storage",
42524 [
42525 "Datastore.Allocate"
42526 ]
42527 ]
42528 },
42529 "protected" : 1,
42530 "proxyto" : "node",
42531 "returns" : {
42532 "type" : "string"
42533 }
42534 }
42535 },
42536 "leaf" : 1,
42537 "path" : "/nodes/{node}/replication/{id}/schedule_now",
42538 "text" : "schedule_now"
42539 }
42540 ],
42541 "info" : {
42542 "GET" : {
e9cd3bd4 42543 "allowtoken" : 1,
5d9c884c
DM
42544 "description" : "Directory index.",
42545 "method" : "GET",
42546 "name" : "index",
42547 "parameters" : {
42548 "additionalProperties" : 0,
42549 "properties" : {
42550 "id" : {
42551 "description" : "Replication Job ID. The ID is composed of a Guest ID and a job number, separated by a hyphen, i.e. '<GUEST>-<JOBNUM>'.",
42552 "format" : "pve-replication-job-id",
42553 "pattern" : "[1-9][0-9]{2,8}-\\d{1,9}",
42554 "type" : "string"
42555 },
42556 "node" : {
42557 "description" : "The cluster node name.",
42558 "format" : "pve-node",
42559 "type" : "string",
42560 "typetext" : "<string>"
42561 }
42562 }
42563 },
42564 "permissions" : {
42565 "user" : "all"
42566 },
42567 "returns" : {
42568 "items" : {
42569 "properties" : {},
42570 "type" : "object"
42571 },
42572 "links" : [
42573 {
42574 "href" : "{name}",
42575 "rel" : "child"
42576 }
42577 ],
42578 "type" : "array"
42579 }
42580 }
42581 },
42582 "leaf" : 0,
42583 "path" : "/nodes/{node}/replication/{id}",
42584 "text" : "{id}"
42585 }
42586 ],
42587 "info" : {
42588 "GET" : {
e9cd3bd4 42589 "allowtoken" : 1,
5d9c884c
DM
42590 "description" : "List status of all replication jobs on this node.",
42591 "method" : "GET",
42592 "name" : "status",
42593 "parameters" : {
42594 "additionalProperties" : 0,
42595 "properties" : {
42596 "guest" : {
42597 "description" : "Only list replication jobs for this guest.",
42598 "format" : "pve-vmid",
42599 "minimum" : 1,
42600 "optional" : 1,
42601 "type" : "integer",
42602 "typetext" : "<integer> (1 - N)"
42603 },
42604 "node" : {
42605 "description" : "The cluster node name.",
42606 "format" : "pve-node",
42607 "type" : "string",
42608 "typetext" : "<string>"
42609 }
42610 }
42611 },
42612 "permissions" : {
42613 "description" : "Requires the VM.Audit permission on /vms/<vmid>.",
42614 "user" : "all"
42615 },
42616 "protected" : 1,
42617 "proxyto" : "node",
42618 "returns" : {
42619 "items" : {
42620 "properties" : {
42621 "id" : {
42622 "type" : "string"
42623 }
42624 },
42625 "type" : "object"
42626 },
42627 "links" : [
42628 {
42629 "href" : "{id}",
42630 "rel" : "child"
42631 }
42632 ],
42633 "type" : "array"
42634 }
42635 }
42636 },
42637 "leaf" : 0,
42638 "path" : "/nodes/{node}/replication",
42639 "text" : "replication"
42640 },
a9a8e3d1
DM
42641 {
42642 "children" : [
42643 {
42644 "children" : [
42645 {
42646 "info" : {
42647 "DELETE" : {
e9cd3bd4 42648 "allowtoken" : 1,
a9a8e3d1
DM
42649 "description" : "Revoke existing certificate from CA.",
42650 "method" : "DELETE",
42651 "name" : "revoke_certificate",
42652 "parameters" : {
42653 "additionalProperties" : 0,
42654 "properties" : {
42655 "node" : {
42656 "description" : "The cluster node name.",
42657 "format" : "pve-node",
42658 "type" : "string",
42659 "typetext" : "<string>"
42660 }
42661 }
42662 },
ac70d7d1
TL
42663 "permissions" : {
42664 "check" : [
42665 "perm",
42666 "/nodes/{node}",
42667 [
42668 "Sys.Modify"
42669 ]
42670 ]
42671 },
a9a8e3d1
DM
42672 "protected" : 1,
42673 "proxyto" : "node",
42674 "returns" : {
42675 "type" : "string"
42676 }
42677 },
42678 "POST" : {
e9cd3bd4 42679 "allowtoken" : 1,
a9a8e3d1
DM
42680 "description" : "Order a new certificate from ACME-compatible CA.",
42681 "method" : "POST",
42682 "name" : "new_certificate",
42683 "parameters" : {
42684 "additionalProperties" : 0,
42685 "properties" : {
42686 "force" : {
42687 "default" : 0,
42688 "description" : "Overwrite existing custom certificate.",
42689 "optional" : 1,
42690 "type" : "boolean",
42691 "typetext" : "<boolean>"
42692 },
42693 "node" : {
42694 "description" : "The cluster node name.",
42695 "format" : "pve-node",
42696 "type" : "string",
42697 "typetext" : "<string>"
42698 }
42699 }
42700 },
ac70d7d1
TL
42701 "permissions" : {
42702 "check" : [
42703 "perm",
42704 "/nodes/{node}",
42705 [
42706 "Sys.Modify"
42707 ]
42708 ]
42709 },
a9a8e3d1
DM
42710 "protected" : 1,
42711 "proxyto" : "node",
42712 "returns" : {
42713 "type" : "string"
42714 }
42715 },
42716 "PUT" : {
e9cd3bd4 42717 "allowtoken" : 1,
a9a8e3d1
DM
42718 "description" : "Renew existing certificate from CA.",
42719 "method" : "PUT",
42720 "name" : "renew_certificate",
42721 "parameters" : {
42722 "additionalProperties" : 0,
42723 "properties" : {
42724 "force" : {
42725 "default" : 0,
42726 "description" : "Force renewal even if expiry is more than 30 days away.",
42727 "optional" : 1,
42728 "type" : "boolean",
42729 "typetext" : "<boolean>"
42730 },
42731 "node" : {
42732 "description" : "The cluster node name.",
42733 "format" : "pve-node",
42734 "type" : "string",
42735 "typetext" : "<string>"
42736 }
42737 }
42738 },
ac70d7d1
TL
42739 "permissions" : {
42740 "check" : [
42741 "perm",
42742 "/nodes/{node}",
42743 [
42744 "Sys.Modify"
42745 ]
42746 ]
42747 },
a9a8e3d1
DM
42748 "protected" : 1,
42749 "proxyto" : "node",
42750 "returns" : {
42751 "type" : "string"
42752 }
42753 }
42754 },
42755 "leaf" : 1,
42756 "path" : "/nodes/{node}/certificates/acme/certificate",
42757 "text" : "certificate"
42758 }
42759 ],
42760 "info" : {
42761 "GET" : {
e9cd3bd4 42762 "allowtoken" : 1,
a9a8e3d1
DM
42763 "description" : "ACME index.",
42764 "method" : "GET",
42765 "name" : "index",
42766 "parameters" : {
42767 "additionalProperties" : 0,
42768 "properties" : {
42769 "node" : {
42770 "description" : "The cluster node name.",
42771 "format" : "pve-node",
42772 "type" : "string",
42773 "typetext" : "<string>"
42774 }
42775 }
42776 },
42777 "permissions" : {
42778 "user" : "all"
42779 },
42780 "returns" : {
42781 "items" : {
42782 "properties" : {},
42783 "type" : "object"
42784 },
42785 "links" : [
42786 {
42787 "href" : "{name}",
42788 "rel" : "child"
42789 }
42790 ],
42791 "type" : "array"
42792 }
42793 }
42794 },
42795 "leaf" : 0,
42796 "path" : "/nodes/{node}/certificates/acme",
42797 "text" : "acme"
42798 },
42799 {
42800 "info" : {
42801 "GET" : {
e9cd3bd4 42802 "allowtoken" : 1,
a9a8e3d1
DM
42803 "description" : "Get information about node's certificates.",
42804 "method" : "GET",
42805 "name" : "info",
42806 "parameters" : {
42807 "additionalProperties" : 0,
42808 "properties" : {
42809 "node" : {
42810 "description" : "The cluster node name.",
42811 "format" : "pve-node",
42812 "type" : "string",
42813 "typetext" : "<string>"
42814 }
42815 }
42816 },
42817 "permissions" : {
42818 "user" : "all"
42819 },
42820 "proxyto" : "node",
42821 "returns" : {
42822 "items" : {
42823 "properties" : {
42824 "filename" : {
42825 "optional" : 1,
42826 "type" : "string"
42827 },
42828 "fingerprint" : {
42829 "description" : "Certificate SHA 256 fingerprint.",
42830 "optional" : 1,
42831 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
42832 "type" : "string"
42833 },
42834 "issuer" : {
42835 "description" : "Certificate issuer name.",
42836 "optional" : 1,
42837 "type" : "string"
42838 },
42839 "notafter" : {
42840 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
42841 "optional" : 1,
4d47f125 42842 "renderer" : "timestamp",
a9a8e3d1
DM
42843 "type" : "integer"
42844 },
42845 "notbefore" : {
42846 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
42847 "optional" : 1,
4d47f125 42848 "renderer" : "timestamp",
a9a8e3d1
DM
42849 "type" : "integer"
42850 },
42851 "pem" : {
42852 "description" : "Certificate in PEM format",
42853 "format" : "pem-certificate",
42854 "optional" : 1,
42855 "type" : "string"
42856 },
1c532546
TL
42857 "public-key-bits" : {
42858 "description" : "Certificate's public key size",
42859 "optional" : 1,
42860 "type" : "integer"
42861 },
42862 "public-key-type" : {
42863 "description" : "Certificate's public key algorithm",
42864 "optional" : 1,
42865 "type" : "string"
42866 },
a9a8e3d1
DM
42867 "san" : {
42868 "description" : "List of Certificate's SubjectAlternativeName entries.",
42869 "items" : {
42870 "type" : "string"
42871 },
42872 "optional" : 1,
4d47f125 42873 "renderer" : "yaml",
a9a8e3d1
DM
42874 "type" : "array"
42875 },
42876 "subject" : {
42877 "description" : "Certificate subject name.",
42878 "optional" : 1,
42879 "type" : "string"
42880 }
42881 },
42882 "type" : "object"
42883 },
42884 "type" : "array"
42885 }
42886 }
42887 },
42888 "leaf" : 1,
42889 "path" : "/nodes/{node}/certificates/info",
42890 "text" : "info"
42891 },
42892 {
42893 "info" : {
42894 "DELETE" : {
e9cd3bd4 42895 "allowtoken" : 1,
a9a8e3d1
DM
42896 "description" : "DELETE custom certificate chain and key.",
42897 "method" : "DELETE",
42898 "name" : "remove_custom_cert",
42899 "parameters" : {
42900 "additionalProperties" : 0,
42901 "properties" : {
42902 "node" : {
42903 "description" : "The cluster node name.",
42904 "format" : "pve-node",
42905 "type" : "string",
42906 "typetext" : "<string>"
42907 },
42908 "restart" : {
42909 "default" : 0,
42910 "description" : "Restart pveproxy.",
42911 "optional" : 1,
42912 "type" : "boolean",
42913 "typetext" : "<boolean>"
42914 }
42915 }
42916 },
ac70d7d1
TL
42917 "permissions" : {
42918 "check" : [
42919 "perm",
42920 "/nodes/{node}",
42921 [
42922 "Sys.Modify"
42923 ]
42924 ]
42925 },
a9a8e3d1
DM
42926 "protected" : 1,
42927 "proxyto" : "node",
42928 "returns" : {
42929 "type" : "null"
42930 }
42931 },
42932 "POST" : {
e9cd3bd4 42933 "allowtoken" : 1,
a9a8e3d1
DM
42934 "description" : "Upload or update custom certificate chain and key.",
42935 "method" : "POST",
42936 "name" : "upload_custom_cert",
42937 "parameters" : {
42938 "additionalProperties" : 0,
42939 "properties" : {
42940 "certificates" : {
42941 "description" : "PEM encoded certificate (chain).",
42942 "format" : "pem-certificate-chain",
42943 "type" : "string",
42944 "typetext" : "<string>"
42945 },
42946 "force" : {
42947 "default" : 0,
42948 "description" : "Overwrite existing custom or ACME certificate files.",
42949 "optional" : 1,
42950 "type" : "boolean",
42951 "typetext" : "<boolean>"
42952 },
42953 "key" : {
42954 "description" : "PEM encoded private key.",
42955 "format" : "pem-string",
42956 "optional" : 1,
42957 "type" : "string",
42958 "typetext" : "<string>"
42959 },
42960 "node" : {
42961 "description" : "The cluster node name.",
42962 "format" : "pve-node",
42963 "type" : "string",
42964 "typetext" : "<string>"
42965 },
42966 "restart" : {
42967 "default" : 0,
42968 "description" : "Restart pveproxy.",
42969 "optional" : 1,
42970 "type" : "boolean",
42971 "typetext" : "<boolean>"
42972 }
42973 }
42974 },
ac70d7d1
TL
42975 "permissions" : {
42976 "check" : [
42977 "perm",
42978 "/nodes/{node}",
42979 [
42980 "Sys.Modify"
42981 ]
42982 ]
42983 },
a9a8e3d1
DM
42984 "protected" : 1,
42985 "proxyto" : "node",
42986 "returns" : {
42987 "properties" : {
42988 "filename" : {
42989 "optional" : 1,
42990 "type" : "string"
42991 },
42992 "fingerprint" : {
42993 "description" : "Certificate SHA 256 fingerprint.",
42994 "optional" : 1,
42995 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
42996 "type" : "string"
42997 },
42998 "issuer" : {
42999 "description" : "Certificate issuer name.",
43000 "optional" : 1,
43001 "type" : "string"
43002 },
43003 "notafter" : {
43004 "description" : "Certificate's notAfter timestamp (UNIX epoch).",
43005 "optional" : 1,
4d47f125 43006 "renderer" : "timestamp",
a9a8e3d1
DM
43007 "type" : "integer"
43008 },
43009 "notbefore" : {
43010 "description" : "Certificate's notBefore timestamp (UNIX epoch).",
43011 "optional" : 1,
4d47f125 43012 "renderer" : "timestamp",
a9a8e3d1
DM
43013 "type" : "integer"
43014 },
43015 "pem" : {
43016 "description" : "Certificate in PEM format",
43017 "format" : "pem-certificate",
43018 "optional" : 1,
43019 "type" : "string"
43020 },
1c532546
TL
43021 "public-key-bits" : {
43022 "description" : "Certificate's public key size",
43023 "optional" : 1,
43024 "type" : "integer"
43025 },
43026 "public-key-type" : {
43027 "description" : "Certificate's public key algorithm",
43028 "optional" : 1,
43029 "type" : "string"
43030 },
a9a8e3d1
DM
43031 "san" : {
43032 "description" : "List of Certificate's SubjectAlternativeName entries.",
43033 "items" : {
43034 "type" : "string"
43035 },
43036 "optional" : 1,
4d47f125 43037 "renderer" : "yaml",
a9a8e3d1
DM
43038 "type" : "array"
43039 },
43040 "subject" : {
43041 "description" : "Certificate subject name.",
43042 "optional" : 1,
43043 "type" : "string"
43044 }
43045 },
43046 "type" : "object"
43047 }
43048 }
43049 },
43050 "leaf" : 1,
43051 "path" : "/nodes/{node}/certificates/custom",
43052 "text" : "custom"
43053 }
43054 ],
43055 "info" : {
43056 "GET" : {
e9cd3bd4 43057 "allowtoken" : 1,
a9a8e3d1
DM
43058 "description" : "Node index.",
43059 "method" : "GET",
43060 "name" : "index",
43061 "parameters" : {
43062 "additionalProperties" : 0,
43063 "properties" : {
43064 "node" : {
43065 "description" : "The cluster node name.",
43066 "format" : "pve-node",
43067 "type" : "string",
43068 "typetext" : "<string>"
43069 }
43070 }
43071 },
43072 "permissions" : {
43073 "user" : "all"
43074 },
43075 "returns" : {
43076 "items" : {
43077 "properties" : {},
43078 "type" : "object"
43079 },
43080 "links" : [
43081 {
43082 "href" : "{name}",
43083 "rel" : "child"
43084 }
43085 ],
43086 "type" : "array"
43087 }
43088 }
43089 },
43090 "leaf" : 0,
c5aa7e14
TL
43091 "path" : "/nodes/{node}/certificates",
43092 "text" : "certificates"
43093 },
43094 {
43095 "info" : {
43096 "GET" : {
43097 "allowtoken" : 1,
43098 "description" : "Get node configuration options.",
43099 "method" : "GET",
43100 "name" : "get_config",
43101 "parameters" : {
43102 "additionalProperties" : 0,
43103 "properties" : {
43104 "node" : {
43105 "description" : "The cluster node name.",
43106 "format" : "pve-node",
43107 "type" : "string",
43108 "typetext" : "<string>"
43109 },
43110 "property" : {
43111 "default" : "all",
43112 "description" : "Return only a specific property from the node configuration.",
43113 "enum" : [
43114 "acme",
43115 "acmedomain0",
43116 "acmedomain1",
43117 "acmedomain2",
43118 "acmedomain3",
43119 "acmedomain4",
43120 "acmedomain5",
43121 "description",
43122 "startall-onboot-delay",
43123 "wakeonlan"
43124 ],
43125 "optional" : 1,
43126 "type" : "string"
43127 }
43128 }
43129 },
43130 "permissions" : {
43131 "check" : [
43132 "perm",
43133 "/",
43134 [
43135 "Sys.Audit"
43136 ]
43137 ]
43138 },
43139 "proxyto" : "node",
43140 "returns" : {
c30bb419
TL
43141 "properties" : {
43142 "acme" : {
43143 "description" : "Node specific ACME settings.",
43144 "format" : {
43145 "account" : {
43146 "default" : "default",
43147 "description" : "ACME account config file name.",
43148 "format" : "pve-configid",
43149 "format_description" : "name",
43150 "optional" : 1,
43151 "type" : "string"
43152 },
43153 "domains" : {
43154 "description" : "List of domains for this node's ACME certificate",
43155 "format" : "pve-acme-domain-list",
43156 "format_description" : "domain[;domain;...]",
43157 "optional" : 1,
43158 "type" : "string"
43159 }
43160 },
43161 "optional" : 1,
43162 "type" : "string"
43163 },
43164 "acmedomain[n]" : {
43165 "description" : "ACME domain and validation plugin",
43166 "format" : {
43167 "alias" : {
43168 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
43169 "format" : "pve-acme-alias",
43170 "format_description" : "domain",
43171 "optional" : 1,
43172 "type" : "string"
43173 },
43174 "domain" : {
43175 "default_key" : 1,
43176 "description" : "domain for this node's ACME certificate",
43177 "format" : "pve-acme-domain",
43178 "format_description" : "domain",
43179 "type" : "string"
43180 },
43181 "plugin" : {
43182 "default" : "standalone",
43183 "description" : "The ACME plugin ID",
43184 "format" : "pve-configid",
43185 "format_description" : "name of the plugin configuration",
43186 "optional" : 1,
43187 "type" : "string"
43188 }
43189 },
43190 "optional" : 1,
43191 "type" : "string"
43192 },
43193 "description" : {
43194 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
43195 "maxLength" : 65536,
43196 "optional" : 1,
43197 "type" : "string"
43198 },
43199 "digest" : {
43200 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
43201 "maxLength" : 40,
43202 "optional" : 1,
43203 "type" : "string"
43204 },
43205 "startall-onboot-delay" : {
43206 "default" : 0,
43207 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
43208 "maximum" : 300,
43209 "minimum" : 0,
43210 "optional" : 1,
43211 "type" : "integer"
43212 },
43213 "wakeonlan" : {
43214 "description" : "MAC address for wake on LAN",
43215 "format" : "mac-addr",
43216 "optional" : 1,
43217 "type" : "string"
43218 }
43219 },
c5aa7e14
TL
43220 "type" : "object"
43221 }
43222 },
43223 "PUT" : {
43224 "allowtoken" : 1,
43225 "description" : "Set node configuration options.",
43226 "method" : "PUT",
43227 "name" : "set_options",
43228 "parameters" : {
43229 "additionalProperties" : 0,
43230 "properties" : {
43231 "acme" : {
43232 "description" : "Node specific ACME settings.",
43233 "format" : {
43234 "account" : {
43235 "default" : "default",
43236 "description" : "ACME account config file name.",
43237 "format" : "pve-configid",
43238 "format_description" : "name",
43239 "optional" : 1,
43240 "type" : "string"
43241 },
43242 "domains" : {
43243 "description" : "List of domains for this node's ACME certificate",
43244 "format" : "pve-acme-domain-list",
43245 "format_description" : "domain[;domain;...]",
43246 "optional" : 1,
43247 "type" : "string"
43248 }
43249 },
43250 "optional" : 1,
43251 "type" : "string",
43252 "typetext" : "[account=<name>] [,domains=<domain[;domain;...]>]"
43253 },
43254 "acmedomain[n]" : {
43255 "description" : "ACME domain and validation plugin",
43256 "format" : {
43257 "alias" : {
43258 "description" : "Alias for the Domain to verify ACME Challenge over DNS",
ac70d7d1 43259 "format" : "pve-acme-alias",
c5aa7e14
TL
43260 "format_description" : "domain",
43261 "optional" : 1,
43262 "type" : "string"
43263 },
43264 "domain" : {
43265 "default_key" : 1,
43266 "description" : "domain for this node's ACME certificate",
43267 "format" : "pve-acme-domain",
43268 "format_description" : "domain",
43269 "type" : "string"
43270 },
43271 "plugin" : {
43272 "default" : "standalone",
43273 "description" : "The ACME plugin ID",
43274 "format" : "pve-configid",
43275 "format_description" : "name of the plugin configuration",
43276 "optional" : 1,
43277 "type" : "string"
43278 }
43279 },
43280 "optional" : 1,
43281 "type" : "string",
43282 "typetext" : "[domain=]<domain> [,alias=<domain>] [,plugin=<name of the plugin configuration>]"
43283 },
43284 "delete" : {
43285 "description" : "A list of settings you want to delete.",
43286 "format" : "pve-configid-list",
43287 "optional" : 1,
43288 "type" : "string",
43289 "typetext" : "<string>"
43290 },
43291 "description" : {
0695fdaf
TL
43292 "description" : "Description for the Node. Shown in the web-interface node notes panel. This is saved as comment inside the configuration file.",
43293 "maxLength" : 65536,
c5aa7e14
TL
43294 "optional" : 1,
43295 "type" : "string",
43296 "typetext" : "<string>"
43297 },
43298 "digest" : {
43299 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
43300 "maxLength" : 40,
43301 "optional" : 1,
43302 "type" : "string",
43303 "typetext" : "<string>"
43304 },
43305 "node" : {
43306 "description" : "The cluster node name.",
43307 "format" : "pve-node",
43308 "type" : "string",
43309 "typetext" : "<string>"
43310 },
43311 "startall-onboot-delay" : {
43312 "default" : 0,
43313 "description" : "Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled.",
43314 "maximum" : 300,
43315 "minimum" : 0,
43316 "optional" : 1,
43317 "type" : "integer",
43318 "typetext" : "<integer> (0 - 300)"
43319 },
43320 "wakeonlan" : {
43321 "description" : "MAC address for wake on LAN",
43322 "format" : "mac-addr",
43323 "optional" : 1,
43324 "type" : "string",
43325 "typetext" : "<string>"
43326 }
43327 }
43328 },
43329 "permissions" : {
43330 "check" : [
43331 "perm",
43332 "/",
43333 [
43334 "Sys.Modify"
43335 ]
43336 ]
43337 },
43338 "protected" : 1,
43339 "proxyto" : "node",
43340 "returns" : {
43341 "type" : "null"
43342 }
43343 }
43344 },
43345 "leaf" : 1,
43346 "path" : "/nodes/{node}/config",
43347 "text" : "config"
43348 },
43349 {
43350 "children" : [
43351 {
43352 "children" : [
43353 {
43354 "children" : [
43355 {
43356 "info" : {
43357 "GET" : {
43358 "allowtoken" : 1,
43359 "description" : "List zone content.",
43360 "method" : "GET",
43361 "name" : "index",
43362 "parameters" : {
43363 "additionalProperties" : 0,
43364 "properties" : {
43365 "node" : {
43366 "description" : "The cluster node name.",
43367 "format" : "pve-node",
43368 "type" : "string",
43369 "typetext" : "<string>"
43370 },
43371 "zone" : {
43372 "description" : "The SDN zone object identifier.",
43373 "format" : "pve-sdn-zone-id",
43374 "type" : "string",
43375 "typetext" : "<string>"
43376 }
43377 }
43378 },
43379 "permissions" : {
43380 "check" : [
43381 "perm",
43382 "/sdn/zones/{zone}",
43383 [
43384 "SDN.Audit"
43385 ],
43386 "any",
43387 1
43388 ]
43389 },
43390 "protected" : 1,
43391 "proxyto" : "node",
43392 "returns" : {
43393 "items" : {
43394 "properties" : {
43395 "status" : {
43396 "description" : "Status.",
43397 "optional" : 1,
43398 "type" : "string"
43399 },
43400 "statusmsg" : {
43401 "description" : "Status details",
43402 "optional" : 1,
43403 "type" : "string"
43404 },
43405 "vnet" : {
43406 "description" : "Vnet identifier.",
43407 "type" : "string"
43408 }
43409 },
43410 "type" : "object"
43411 },
43412 "links" : [
43413 {
43414 "href" : "{vnet}",
43415 "rel" : "child"
43416 }
43417 ],
43418 "type" : "array"
43419 }
43420 }
43421 },
43422 "leaf" : 1,
43423 "path" : "/nodes/{node}/sdn/zones/{zone}/content",
43424 "text" : "content"
43425 }
43426 ],
43427 "info" : {
43428 "GET" : {
43429 "allowtoken" : 1,
43430 "description" : "",
43431 "method" : "GET",
43432 "name" : "diridx",
43433 "parameters" : {
43434 "additionalProperties" : 0,
43435 "properties" : {
43436 "node" : {
43437 "description" : "The cluster node name.",
43438 "format" : "pve-node",
43439 "type" : "string",
43440 "typetext" : "<string>"
43441 },
43442 "zone" : {
43443 "description" : "The SDN zone object identifier.",
43444 "format" : "pve-sdn-zone-id",
43445 "type" : "string",
43446 "typetext" : "<string>"
43447 }
43448 }
43449 },
43450 "permissions" : {
43451 "check" : [
43452 "perm",
43453 "/sdn/zones/{zone}",
43454 [
43455 "SDN.Audit"
43456 ],
43457 "any",
43458 1
43459 ]
43460 },
43461 "returns" : {
43462 "items" : {
43463 "properties" : {
43464 "subdir" : {
43465 "type" : "string"
43466 }
43467 },
43468 "type" : "object"
43469 },
43470 "links" : [
43471 {
43472 "href" : "{subdir}",
43473 "rel" : "child"
43474 }
43475 ],
43476 "type" : "array"
43477 }
43478 }
43479 },
43480 "leaf" : 0,
43481 "path" : "/nodes/{node}/sdn/zones/{zone}",
43482 "text" : "{zone}"
43483 }
43484 ],
43485 "info" : {
43486 "GET" : {
43487 "allowtoken" : 1,
43488 "description" : "Get status for all zones.",
43489 "method" : "GET",
43490 "name" : "index",
43491 "parameters" : {
43492 "additionalProperties" : 0,
43493 "properties" : {
43494 "node" : {
43495 "description" : "The cluster node name.",
43496 "format" : "pve-node",
43497 "type" : "string",
43498 "typetext" : "<string>"
43499 }
43500 }
43501 },
43502 "permissions" : {
43503 "description" : "Only list entries where you have 'SDN.Audit'",
43504 "user" : "all"
43505 },
43506 "protected" : 1,
43507 "proxyto" : "node",
43508 "returns" : {
43509 "items" : {
43510 "properties" : {
43511 "status" : {
43512 "description" : "Status of zone",
ac70d7d1
TL
43513 "enum" : [
43514 "available",
43515 "pending",
43516 "error"
43517 ],
c5aa7e14
TL
43518 "type" : "string"
43519 },
43520 "zone" : {
43521 "description" : "The SDN zone object identifier.",
43522 "format" : "pve-sdn-zone-id",
43523 "type" : "string"
43524 }
43525 },
43526 "type" : "object"
43527 },
43528 "links" : [
43529 {
43530 "href" : "{zone}",
43531 "rel" : "child"
43532 }
43533 ],
43534 "type" : "array"
43535 }
43536 }
43537 },
43538 "leaf" : 0,
43539 "path" : "/nodes/{node}/sdn/zones",
43540 "text" : "zones"
43541 }
43542 ],
43543 "info" : {
43544 "GET" : {
43545 "allowtoken" : 1,
43546 "description" : "SDN index.",
43547 "method" : "GET",
43548 "name" : "sdnindex",
43549 "parameters" : {
43550 "additionalProperties" : 0,
43551 "properties" : {
43552 "node" : {
43553 "description" : "The cluster node name.",
43554 "format" : "pve-node",
43555 "type" : "string",
43556 "typetext" : "<string>"
43557 }
43558 }
43559 },
43560 "permissions" : {
43561 "user" : "all"
43562 },
43563 "returns" : {
43564 "items" : {
43565 "properties" : {},
43566 "type" : "object"
43567 },
43568 "links" : [
43569 {
43570 "href" : "{name}",
43571 "rel" : "child"
43572 }
43573 ],
43574 "type" : "array"
43575 }
43576 }
43577 },
43578 "leaf" : 0,
43579 "path" : "/nodes/{node}/sdn",
43580 "text" : "sdn"
a9a8e3d1 43581 },
56122987 43582 {
56122987
DM
43583 "info" : {
43584 "GET" : {
e9cd3bd4 43585 "allowtoken" : 1,
44660702
DM
43586 "description" : "API version details",
43587 "method" : "GET",
43588 "name" : "version",
56122987 43589 "parameters" : {
44660702 43590 "additionalProperties" : 0,
56122987
DM
43591 "properties" : {
43592 "node" : {
56122987 43593 "description" : "The cluster node name.",
44660702 43594 "format" : "pve-node",
013dc89f
DM
43595 "type" : "string",
43596 "typetext" : "<string>"
56122987 43597 }
44660702 43598 }
56122987 43599 },
56122987 43600 "permissions" : {
7aacca6f 43601 "user" : "all"
56122987 43602 },
56122987 43603 "proxyto" : "node",
56122987 43604 "returns" : {
56122987 43605 "properties" : {
44660702 43606 "release" : {
1e3f8156 43607 "description" : "The current installed Proxmox VE Release",
56122987
DM
43608 "type" : "string"
43609 },
44660702 43610 "repoid" : {
1e3f8156 43611 "description" : "The short git commit hash ID from which this version was build",
7aacca6f
DM
43612 "type" : "string"
43613 },
43614 "version" : {
1e3f8156 43615 "description" : "The current installed pve-manager package version",
7aacca6f
DM
43616 "type" : "string"
43617 }
44660702
DM
43618 },
43619 "type" : "object"
7aacca6f 43620 }
56122987
DM
43621 }
43622 },
56122987 43623 "leaf" : 1,
44660702
DM
43624 "path" : "/nodes/{node}/version",
43625 "text" : "version"
56122987
DM
43626 },
43627 {
56122987
DM
43628 "info" : {
43629 "GET" : {
e9cd3bd4 43630 "allowtoken" : 1,
7aacca6f 43631 "description" : "Read node status",
44660702 43632 "method" : "GET",
7aacca6f 43633 "name" : "status",
56122987 43634 "parameters" : {
44660702 43635 "additionalProperties" : 0,
56122987
DM
43636 "properties" : {
43637 "node" : {
7aacca6f 43638 "description" : "The cluster node name.",
44660702 43639 "format" : "pve-node",
013dc89f
DM
43640 "type" : "string",
43641 "typetext" : "<string>"
56122987 43642 }
44660702 43643 }
56122987 43644 },
56122987
DM
43645 "permissions" : {
43646 "check" : [
43647 "perm",
43648 "/nodes/{node}",
43649 [
43650 "Sys.Audit"
43651 ]
43652 ]
44660702
DM
43653 },
43654 "proxyto" : "node",
43655 "returns" : {
44660702 43656 "type" : "object"
7aacca6f
DM
43657 }
43658 },
43659 "POST" : {
e9cd3bd4 43660 "allowtoken" : 1,
44660702
DM
43661 "description" : "Reboot or shutdown a node.",
43662 "method" : "POST",
7aacca6f 43663 "name" : "node_cmd",
56122987 43664 "parameters" : {
44660702 43665 "additionalProperties" : 0,
56122987 43666 "properties" : {
7aacca6f
DM
43667 "command" : {
43668 "description" : "Specify the command.",
56122987 43669 "enum" : [
7aacca6f
DM
43670 "reboot",
43671 "shutdown"
56122987
DM
43672 ],
43673 "type" : "string"
44660702
DM
43674 },
43675 "node" : {
43676 "description" : "The cluster node name.",
43677 "format" : "pve-node",
013dc89f
DM
43678 "type" : "string",
43679 "typetext" : "<string>"
56122987 43680 }
44660702 43681 }
7aacca6f 43682 },
7aacca6f
DM
43683 "permissions" : {
43684 "check" : [
43685 "perm",
43686 "/nodes/{node}",
43687 [
43688 "Sys.PowerMgmt"
43689 ]
43690 ]
43691 },
44660702 43692 "protected" : 1,
7aacca6f 43693 "proxyto" : "node",
7aacca6f
DM
43694 "returns" : {
43695 "type" : "null"
56122987
DM
43696 }
43697 }
43698 },
7aacca6f 43699 "leaf" : 1,
44660702
DM
43700 "path" : "/nodes/{node}/status",
43701 "text" : "status"
56122987
DM
43702 },
43703 {
56122987
DM
43704 "info" : {
43705 "GET" : {
e9cd3bd4 43706 "allowtoken" : 1,
44660702
DM
43707 "description" : "Read tap/vm network device interface counters",
43708 "method" : "GET",
43709 "name" : "netstat",
43710 "parameters" : {
43711 "additionalProperties" : 0,
43712 "properties" : {
43713 "node" : {
43714 "description" : "The cluster node name.",
43715 "format" : "pve-node",
013dc89f
DM
43716 "type" : "string",
43717 "typetext" : "<string>"
44660702 43718 }
56122987
DM
43719 }
43720 },
43721 "permissions" : {
43722 "check" : [
43723 "perm",
43724 "/nodes/{node}",
43725 [
7aacca6f 43726 "Sys.Audit"
56122987
DM
43727 ]
43728 ]
43729 },
7aacca6f 43730 "proxyto" : "node",
44660702
DM
43731 "returns" : {
43732 "items" : {
43733 "properties" : {},
43734 "type" : "object"
43735 },
43736 "type" : "array"
43737 }
7aacca6f
DM
43738 }
43739 },
44660702
DM
43740 "leaf" : 1,
43741 "path" : "/nodes/{node}/netstat",
7aacca6f
DM
43742 "text" : "netstat"
43743 },
43744 {
43745 "info" : {
43746 "POST" : {
e9cd3bd4 43747 "allowtoken" : 1,
7aacca6f 43748 "description" : "Execute multiple commands in order.",
7aacca6f 43749 "method" : "POST",
7aacca6f 43750 "name" : "execute",
56122987
DM
43751 "parameters" : {
43752 "additionalProperties" : 0,
43753 "properties" : {
7aacca6f
DM
43754 "commands" : {
43755 "description" : "JSON encoded array of commands.",
de786b48 43756 "format" : "pve-command-batch",
013dc89f 43757 "type" : "string",
de786b48
TL
43758 "typetext" : "<string>",
43759 "verbose_description" : "JSON encoded array of commands, where each command is an object with the following properties:\n args: <object>\n\n\t A set of parameter names and their values.\n\n method: (GET|POST|PUT|DELETE)\n\n\t A method related to the API endpoint (GET, POST etc.).\n\n path: <string>\n\n\t A relative path to an API endpoint on this node.\n\n"
56122987
DM
43760 },
43761 "node" : {
44660702 43762 "description" : "The cluster node name.",
56122987 43763 "format" : "pve-node",
013dc89f
DM
43764 "type" : "string",
43765 "typetext" : "<string>"
56122987
DM
43766 }
43767 }
44660702
DM
43768 },
43769 "permissions" : {
43770 "check" : [
43771 "perm",
43772 "/nodes/{node}",
43773 [
43774 "Sys.Audit"
43775 ]
43776 ]
43777 },
43778 "protected" : 1,
43779 "proxyto" : "node",
43780 "returns" : {
de786b48
TL
43781 "items" : {
43782 "properties" : {},
43783 "type" : "object"
43784 },
44660702 43785 "type" : "array"
56122987
DM
43786 }
43787 }
43788 },
56122987 43789 "leaf" : 1,
44660702
DM
43790 "path" : "/nodes/{node}/execute",
43791 "text" : "execute"
56122987 43792 },
5f26e15b
TL
43793 {
43794 "info" : {
43795 "POST" : {
e9cd3bd4 43796 "allowtoken" : 1,
5f26e15b
TL
43797 "description" : "Try to wake a node via 'wake on LAN' network packet.",
43798 "method" : "POST",
43799 "name" : "wakeonlan",
43800 "parameters" : {
43801 "additionalProperties" : 0,
43802 "properties" : {
43803 "node" : {
43804 "description" : "target node for wake on LAN packet",
43805 "format" : "pve-node",
43806 "type" : "string",
43807 "typetext" : "<string>"
43808 }
43809 }
43810 },
43811 "permissions" : {
43812 "check" : [
43813 "perm",
43814 "/nodes/{node}",
43815 [
43816 "Sys.PowerMgmt"
43817 ]
43818 ]
43819 },
43820 "protected" : 1,
43821 "returns" : {
43822 "description" : "MAC address used to assemble the WoL magic packet.",
43823 "format" : "mac-addr",
43824 "type" : "string"
43825 }
43826 }
43827 },
43828 "leaf" : 1,
43829 "path" : "/nodes/{node}/wakeonlan",
43830 "text" : "wakeonlan"
43831 },
56122987
DM
43832 {
43833 "info" : {
7aacca6f 43834 "GET" : {
e9cd3bd4 43835 "allowtoken" : 1,
44660702
DM
43836 "description" : "Read node RRD statistics (returns PNG)",
43837 "method" : "GET",
7aacca6f 43838 "name" : "rrd",
56122987 43839 "parameters" : {
7aacca6f 43840 "additionalProperties" : 0,
56122987 43841 "properties" : {
44660702
DM
43842 "cf" : {
43843 "description" : "The RRD consolidation function",
43844 "enum" : [
43845 "AVERAGE",
43846 "MAX"
43847 ],
43848 "optional" : 1,
43849 "type" : "string"
43850 },
7aacca6f 43851 "ds" : {
7aacca6f 43852 "description" : "The list of datasources you want to display.",
44660702 43853 "format" : "pve-configid-list",
013dc89f
DM
43854 "type" : "string",
43855 "typetext" : "<string>"
44660702
DM
43856 },
43857 "node" : {
43858 "description" : "The cluster node name.",
43859 "format" : "pve-node",
013dc89f
DM
43860 "type" : "string",
43861 "typetext" : "<string>"
7aacca6f
DM
43862 },
43863 "timeframe" : {
43864 "description" : "Specify the time frame you are interested in.",
43865 "enum" : [
43866 "hour",
43867 "day",
43868 "week",
43869 "month",
43870 "year"
43871 ],
43872 "type" : "string"
56122987 43873 }
7aacca6f 43874 }
56122987 43875 },
56122987 43876 "permissions" : {
56122987
DM
43877 "check" : [
43878 "perm",
43879 "/nodes/{node}",
43880 [
7aacca6f 43881 "Sys.Audit"
56122987
DM
43882 ]
43883 ]
43884 },
7aacca6f 43885 "protected" : 1,
56122987 43886 "returns" : {
56122987 43887 "properties" : {
7aacca6f 43888 "filename" : {
56122987
DM
43889 "type" : "string"
43890 }
44660702
DM
43891 },
43892 "type" : "object"
43893 }
56122987
DM
43894 }
43895 },
44660702 43896 "leaf" : 1,
7aacca6f 43897 "path" : "/nodes/{node}/rrd",
44660702 43898 "text" : "rrd"
56122987
DM
43899 },
43900 {
43901 "info" : {
7aacca6f 43902 "GET" : {
e9cd3bd4 43903 "allowtoken" : 1,
44660702
DM
43904 "description" : "Read node RRD statistics",
43905 "method" : "GET",
7aacca6f 43906 "name" : "rrddata",
56122987 43907 "parameters" : {
44660702 43908 "additionalProperties" : 0,
56122987 43909 "properties" : {
7aacca6f 43910 "cf" : {
7aacca6f
DM
43911 "description" : "The RRD consolidation function",
43912 "enum" : [
43913 "AVERAGE",
43914 "MAX"
44660702
DM
43915 ],
43916 "optional" : 1,
43917 "type" : "string"
56122987
DM
43918 },
43919 "node" : {
44660702 43920 "description" : "The cluster node name.",
56122987 43921 "format" : "pve-node",
013dc89f
DM
43922 "type" : "string",
43923 "typetext" : "<string>"
56122987 43924 },
7aacca6f 43925 "timeframe" : {
7aacca6f
DM
43926 "description" : "Specify the time frame you are interested in.",
43927 "enum" : [
43928 "hour",
43929 "day",
43930 "week",
43931 "month",
43932 "year"
44660702
DM
43933 ],
43934 "type" : "string"
56122987 43935 }
56122987
DM
43936 }
43937 },
56122987
DM
43938 "permissions" : {
43939 "check" : [
43940 "perm",
43941 "/nodes/{node}",
43942 [
44660702 43943 "Sys.Audit"
56122987
DM
43944 ]
43945 ]
7aacca6f 43946 },
44660702 43947 "protected" : 1,
56122987 43948 "returns" : {
7aacca6f 43949 "items" : {
44660702 43950 "properties" : {},
7aacca6f
DM
43951 "type" : "object"
43952 },
43953 "type" : "array"
44660702
DM
43954 }
43955 }
43956 },
43957 "leaf" : 1,
43958 "path" : "/nodes/{node}/rrddata",
43959 "text" : "rrddata"
43960 },
43961 {
43962 "info" : {
43963 "GET" : {
e9cd3bd4 43964 "allowtoken" : 1,
44660702
DM
43965 "description" : "Read system log",
43966 "method" : "GET",
43967 "name" : "syslog",
56122987 43968 "parameters" : {
44660702 43969 "additionalProperties" : 0,
56122987 43970 "properties" : {
44660702
DM
43971 "limit" : {
43972 "minimum" : 0,
7aacca6f 43973 "optional" : 1,
4bd7df8b 43974 "type" : "integer",
013dc89f 43975 "typetext" : "<integer> (0 - N)"
7aacca6f 43976 },
56122987 43977 "node" : {
7aacca6f 43978 "description" : "The cluster node name.",
44660702 43979 "format" : "pve-node",
013dc89f
DM
43980 "type" : "string",
43981 "typetext" : "<string>"
56122987 43982 },
35a75dd3
DM
43983 "service" : {
43984 "description" : "Service ID",
43985 "maxLength" : 128,
43986 "optional" : 1,
43987 "type" : "string",
43988 "typetext" : "<string>"
43989 },
44660702
DM
43990 "since" : {
43991 "description" : "Display all log since this date-time string.",
43992 "optional" : 1,
43993 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
43994 "type" : "string"
43995 },
43996 "start" : {
7aacca6f
DM
43997 "minimum" : 0,
43998 "optional" : 1,
4bd7df8b 43999 "type" : "integer",
013dc89f 44000 "typetext" : "<integer> (0 - N)"
7aacca6f
DM
44001 },
44002 "until" : {
44003 "description" : "Display all log until this date-time string.",
7aacca6f 44004 "optional" : 1,
44660702 44005 "pattern" : "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
56122987
DM
44006 "type" : "string"
44007 }
44660702 44008 }
56122987 44009 },
44660702
DM
44010 "permissions" : {
44011 "check" : [
44012 "perm",
44013 "/nodes/{node}",
44014 [
44015 "Sys.Syslog"
44016 ]
44017 ]
44018 },
44019 "protected" : 1,
44020 "proxyto" : "node",
44021 "returns" : {
44022 "items" : {
44023 "properties" : {
44024 "n" : {
44025 "description" : "Line number",
44026 "type" : "integer"
44027 },
44028 "t" : {
44029 "description" : "Line text",
44030 "type" : "string"
44031 }
44032 },
44033 "type" : "object"
44034 },
44035 "type" : "array"
44036 }
56122987
DM
44037 }
44038 },
44660702
DM
44039 "leaf" : 1,
44040 "path" : "/nodes/{node}/syslog",
7aacca6f 44041 "text" : "syslog"
56122987 44042 },
bb4c8cf8
TL
44043 {
44044 "info" : {
44045 "GET" : {
e9cd3bd4 44046 "allowtoken" : 1,
bb4c8cf8
TL
44047 "description" : "Read Journal",
44048 "method" : "GET",
44049 "name" : "journal",
44050 "parameters" : {
44051 "additionalProperties" : 0,
44052 "properties" : {
44053 "endcursor" : {
44054 "description" : "End before the given Cursor. Conflicts with 'until'",
44055 "optional" : 1,
44056 "type" : "string",
44057 "typetext" : "<string>"
44058 },
44059 "lastentries" : {
44060 "description" : "Limit to the last X lines. Conflicts with a range.",
44061 "minimum" : 0,
44062 "optional" : 1,
44063 "type" : "integer",
44064 "typetext" : "<integer> (0 - N)"
44065 },
44066 "node" : {
44067 "description" : "The cluster node name.",
44068 "format" : "pve-node",
44069 "type" : "string",
44070 "typetext" : "<string>"
44071 },
44072 "since" : {
44073 "description" : "Display all log since this UNIX epoch. Conflicts with 'startcursor'.",
44074 "minimum" : 0,
44075 "optional" : 1,
44076 "type" : "integer",
44077 "typetext" : "<integer> (0 - N)"
44078 },
44079 "startcursor" : {
44080 "description" : "Start after the given Cursor. Conflicts with 'since'",
44081 "optional" : 1,
44082 "type" : "string",
44083 "typetext" : "<string>"
44084 },
44085 "until" : {
44086 "description" : "Display all log until this UNIX epoch. Conflicts with 'endcursor'.",
44087 "minimum" : 0,
44088 "optional" : 1,
44089 "type" : "integer",
44090 "typetext" : "<integer> (0 - N)"
44091 }
44092 }
44093 },
44094 "permissions" : {
44095 "check" : [
44096 "perm",
44097 "/nodes/{node}",
44098 [
44099 "Sys.Syslog"
44100 ]
44101 ]
44102 },
44103 "protected" : 1,
44104 "proxyto" : "node",
44105 "returns" : {
44106 "items" : {
44107 "type" : "string"
44108 },
44109 "type" : "array"
44110 }
44111 }
44112 },
44113 "leaf" : 1,
44114 "path" : "/nodes/{node}/journal",
44115 "text" : "journal"
44116 },
56122987 44117 {
56122987
DM
44118 "info" : {
44119 "POST" : {
e9cd3bd4 44120 "allowtoken" : 1,
44660702
DM
44121 "description" : "Creates a VNC Shell proxy.",
44122 "method" : "POST",
44123 "name" : "vncshell",
44124 "parameters" : {
44125 "additionalProperties" : 0,
56122987 44126 "properties" : {
95895385
TL
44127 "cmd" : {
44128 "default" : "login",
44129 "description" : "Run specific command or default to login.",
44130 "enum" : [
81a3384d 44131 "ceph_install",
e7e885f9 44132 "login",
81a3384d 44133 "upgrade"
95895385
TL
44134 ],
44135 "optional" : 1,
44136 "type" : "string"
44137 },
4772952b
TL
44138 "cmd-opts" : {
44139 "default" : "",
44140 "description" : "Add parameters to a command. Encoded as null terminated strings.",
44141 "optional" : 1,
44142 "requires" : "cmd",
44143 "type" : "string",
44144 "typetext" : "<string>"
44145 },
5d9c884c
DM
44146 "height" : {
44147 "description" : "sets the height of the console in pixels.",
44148 "maximum" : 2160,
44149 "minimum" : 16,
44150 "optional" : 1,
44151 "type" : "integer",
44152 "typetext" : "<integer> (16 - 2160)"
44153 },
44660702
DM
44154 "node" : {
44155 "description" : "The cluster node name.",
44156 "format" : "pve-node",
013dc89f
DM
44157 "type" : "string",
44158 "typetext" : "<string>"
7aacca6f 44159 },
44660702
DM
44160 "websocket" : {
44161 "description" : "use websocket instead of standard vnc.",
44162 "optional" : 1,
013dc89f
DM
44163 "type" : "boolean",
44164 "typetext" : "<boolean>"
5d9c884c
DM
44165 },
44166 "width" : {
44167 "description" : "sets the width of the console in pixels.",
44168 "maximum" : 4096,
44169 "minimum" : 16,
44170 "optional" : 1,
44171 "type" : "integer",
44172 "typetext" : "<integer> (16 - 4096)"
56122987 44173 }
44660702 44174 }
56122987 44175 },
56122987
DM
44176 "permissions" : {
44177 "check" : [
44178 "perm",
7aacca6f 44179 "/nodes/{node}",
56122987 44180 [
7aacca6f 44181 "Sys.Console"
56122987 44182 ]
44660702
DM
44183 ],
44184 "description" : "Restricted to users on realm 'pam'"
56122987 44185 },
44660702
DM
44186 "protected" : 1,
44187 "returns" : {
44188 "additionalProperties" : 0,
56122987 44189 "properties" : {
44660702
DM
44190 "cert" : {
44191 "type" : "string"
7aacca6f 44192 },
44660702
DM
44193 "port" : {
44194 "type" : "integer"
7aacca6f 44195 },
44660702
DM
44196 "ticket" : {
44197 "type" : "string"
44198 },
44199 "upid" : {
44200 "type" : "string"
44201 },
44202 "user" : {
44203 "type" : "string"
56122987 44204 }
44660702
DM
44205 }
44206 }
56122987
DM
44207 }
44208 },
7aacca6f 44209 "leaf" : 1,
44660702
DM
44210 "path" : "/nodes/{node}/vncshell",
44211 "text" : "vncshell"
56122987 44212 },
35a75dd3
DM
44213 {
44214 "info" : {
44215 "POST" : {
e9cd3bd4 44216 "allowtoken" : 1,
35a75dd3
DM
44217 "description" : "Creates a VNC Shell proxy.",
44218 "method" : "POST",
44219 "name" : "termproxy",
44220 "parameters" : {
44221 "additionalProperties" : 0,
44222 "properties" : {
95895385
TL
44223 "cmd" : {
44224 "default" : "login",
44225 "description" : "Run specific command or default to login.",
44226 "enum" : [
81a3384d 44227 "ceph_install",
e7e885f9 44228 "login",
81a3384d 44229 "upgrade"
95895385
TL
44230 ],
44231 "optional" : 1,
44232 "type" : "string"
44233 },
4772952b
TL
44234 "cmd-opts" : {
44235 "default" : "",
44236 "description" : "Add parameters to a command. Encoded as null terminated strings.",
44237 "optional" : 1,
44238 "requires" : "cmd",
44239 "type" : "string",
44240 "typetext" : "<string>"
44241 },
35a75dd3
DM
44242 "node" : {
44243 "description" : "The cluster node name.",
44244 "format" : "pve-node",
44245 "type" : "string",
44246 "typetext" : "<string>"
35a75dd3
DM
44247 }
44248 }
44249 },
44250 "permissions" : {
44251 "check" : [
44252 "perm",
44253 "/nodes/{node}",
44254 [
44255 "Sys.Console"
44256 ]
44257 ],
44258 "description" : "Restricted to users on realm 'pam'"
44259 },
44260 "protected" : 1,
44261 "returns" : {
44262 "additionalProperties" : 0,
44263 "properties" : {
44264 "port" : {
44265 "type" : "integer"
44266 },
44267 "ticket" : {
44268 "type" : "string"
44269 },
44270 "upid" : {
44271 "type" : "string"
44272 },
44273 "user" : {
44274 "type" : "string"
44275 }
44276 }
44277 }
44278 }
44279 },
44280 "leaf" : 1,
44281 "path" : "/nodes/{node}/termproxy",
44282 "text" : "termproxy"
44283 },
56122987
DM
44284 {
44285 "info" : {
44286 "GET" : {
e9cd3bd4 44287 "allowtoken" : 1,
0695fdaf 44288 "description" : "Opens a websocket for VNC traffic.",
44660702
DM
44289 "method" : "GET",
44290 "name" : "vncwebsocket",
56122987 44291 "parameters" : {
44660702 44292 "additionalProperties" : 0,
56122987
DM
44293 "properties" : {
44294 "node" : {
44295 "description" : "The cluster node name.",
44660702 44296 "format" : "pve-node",
013dc89f
DM
44297 "type" : "string",
44298 "typetext" : "<string>"
7aacca6f
DM
44299 },
44300 "port" : {
7aacca6f
DM
44301 "description" : "Port number returned by previous vncproxy call.",
44302 "maximum" : 5999,
44660702 44303 "minimum" : 5900,
4bd7df8b 44304 "type" : "integer",
013dc89f 44305 "typetext" : "<integer> (5900 - 5999)"
44660702
DM
44306 },
44307 "vncticket" : {
44308 "description" : "Ticket from previous call to vncproxy.",
44309 "maxLength" : 512,
013dc89f
DM
44310 "type" : "string",
44311 "typetext" : "<string>"
56122987 44312 }
44660702 44313 }
56122987 44314 },
56122987
DM
44315 "permissions" : {
44316 "check" : [
44317 "perm",
44318 "/nodes/{node}",
44319 [
7aacca6f 44320 "Sys.Console"
56122987 44321 ]
44660702
DM
44322 ],
44323 "description" : "Restricted to users on realm 'pam'. You also need to pass a valid ticket (vncticket)."
44324 },
44325 "returns" : {
44326 "properties" : {
44327 "port" : {
44328 "type" : "string"
44329 }
44330 },
44331 "type" : "object"
7aacca6f 44332 }
56122987
DM
44333 }
44334 },
44660702 44335 "leaf" : 1,
7aacca6f 44336 "path" : "/nodes/{node}/vncwebsocket",
44660702 44337 "text" : "vncwebsocket"
56122987
DM
44338 },
44339 {
44340 "info" : {
44341 "POST" : {
e9cd3bd4 44342 "allowtoken" : 1,
44660702 44343 "description" : "Creates a SPICE shell.",
7aacca6f 44344 "method" : "POST",
44660702 44345 "name" : "spiceshell",
56122987 44346 "parameters" : {
7aacca6f 44347 "additionalProperties" : 0,
56122987 44348 "properties" : {
95895385
TL
44349 "cmd" : {
44350 "default" : "login",
44351 "description" : "Run specific command or default to login.",
44352 "enum" : [
81a3384d 44353 "ceph_install",
e7e885f9 44354 "login",
81a3384d 44355 "upgrade"
95895385
TL
44356 ],
44357 "optional" : 1,
44358 "type" : "string"
44359 },
4772952b
TL
44360 "cmd-opts" : {
44361 "default" : "",
44362 "description" : "Add parameters to a command. Encoded as null terminated strings.",
44363 "optional" : 1,
44364 "requires" : "cmd",
44365 "type" : "string",
44366 "typetext" : "<string>"
44367 },
7aacca6f 44368 "node" : {
44660702 44369 "description" : "The cluster node name.",
56122987 44370 "format" : "pve-node",
013dc89f
DM
44371 "type" : "string",
44372 "typetext" : "<string>"
7aacca6f 44373 },
44660702 44374 "proxy" : {
4d47f125 44375 "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
44376 "format" : "address",
44377 "optional" : 1,
013dc89f
DM
44378 "type" : "string",
44379 "typetext" : "<string>"
56122987 44380 }
7aacca6f 44381 }
56122987 44382 },
56122987
DM
44383 "permissions" : {
44384 "check" : [
44385 "perm",
7aacca6f 44386 "/nodes/{node}",
56122987 44387 [
7aacca6f 44388 "Sys.Console"
56122987 44389 ]
7aacca6f
DM
44390 ],
44391 "description" : "Restricted to users on realm 'pam'"
44660702
DM
44392 },
44393 "protected" : 1,
44394 "proxyto" : "node",
44395 "returns" : {
44396 "additionalProperties" : 1,
44397 "description" : "Returned values can be directly passed to the 'remote-viewer' application.",
44398 "properties" : {
44399 "host" : {
44400 "type" : "string"
44401 },
44402 "password" : {
44403 "type" : "string"
44404 },
44405 "proxy" : {
44406 "type" : "string"
44407 },
44408 "tls-port" : {
44409 "type" : "integer"
44410 },
44411 "type" : {
44412 "type" : "string"
44413 }
44414 }
7aacca6f 44415 }
56122987
DM
44416 }
44417 },
56122987 44418 "leaf" : 1,
44660702
DM
44419 "path" : "/nodes/{node}/spiceshell",
44420 "text" : "spiceshell"
56122987
DM
44421 },
44422 {
56122987 44423 "info" : {
7aacca6f 44424 "GET" : {
e9cd3bd4 44425 "allowtoken" : 1,
44660702 44426 "description" : "Read DNS settings.",
7aacca6f 44427 "method" : "GET",
44660702
DM
44428 "name" : "dns",
44429 "parameters" : {
7aacca6f
DM
44430 "additionalProperties" : 0,
44431 "properties" : {
44660702
DM
44432 "node" : {
44433 "description" : "The cluster node name.",
44434 "format" : "pve-node",
013dc89f
DM
44435 "type" : "string",
44436 "typetext" : "<string>"
7aacca6f
DM
44437 }
44438 }
44439 },
7aacca6f
DM
44440 "permissions" : {
44441 "check" : [
44442 "perm",
44443 "/nodes/{node}",
44444 [
44445 "Sys.Audit"
44446 ]
44447 ]
44448 },
44660702
DM
44449 "proxyto" : "node",
44450 "returns" : {
56122987
DM
44451 "additionalProperties" : 0,
44452 "properties" : {
44660702
DM
44453 "dns1" : {
44454 "description" : "First name server IP address.",
44455 "optional" : 1,
44456 "type" : "string"
44457 },
44458 "dns2" : {
44459 "description" : "Second name server IP address.",
44460 "optional" : 1,
44461 "type" : "string"
44462 },
44463 "dns3" : {
44464 "description" : "Third name server IP address.",
44465 "optional" : 1,
44466 "type" : "string"
44467 },
44468 "search" : {
44469 "description" : "Search domain for host-name lookup.",
44470 "optional" : 1,
44471 "type" : "string"
7aacca6f 44472 }
44660702
DM
44473 },
44474 "type" : "object"
44475 }
7aacca6f
DM
44476 },
44477 "PUT" : {
e9cd3bd4 44478 "allowtoken" : 1,
44660702
DM
44479 "description" : "Write DNS settings.",
44480 "method" : "PUT",
7aacca6f
DM
44481 "name" : "update_dns",
44482 "parameters" : {
44483 "additionalProperties" : 0,
44484 "properties" : {
44660702
DM
44485 "dns1" : {
44486 "description" : "First name server IP address.",
44487 "format" : "ip",
44488 "optional" : 1,
013dc89f
DM
44489 "type" : "string",
44490 "typetext" : "<string>"
7aacca6f 44491 },
44660702
DM
44492 "dns2" : {
44493 "description" : "Second name server IP address.",
44494 "format" : "ip",
7aacca6f 44495 "optional" : 1,
013dc89f
DM
44496 "type" : "string",
44497 "typetext" : "<string>"
7aacca6f 44498 },
44660702
DM
44499 "dns3" : {
44500 "description" : "Third name server IP address.",
44501 "format" : "ip",
7aacca6f 44502 "optional" : 1,
013dc89f
DM
44503 "type" : "string",
44504 "typetext" : "<string>"
7aacca6f
DM
44505 },
44506 "node" : {
44660702 44507 "description" : "The cluster node name.",
56122987 44508 "format" : "pve-node",
013dc89f
DM
44509 "type" : "string",
44510 "typetext" : "<string>"
7aacca6f 44511 },
44660702
DM
44512 "search" : {
44513 "description" : "Search domain for host-name lookup.",
013dc89f
DM
44514 "type" : "string",
44515 "typetext" : "<string>"
56122987
DM
44516 }
44517 }
44518 },
44519 "permissions" : {
44520 "check" : [
44521 "perm",
7aacca6f 44522 "/nodes/{node}",
56122987 44523 [
7aacca6f 44524 "Sys.Modify"
56122987
DM
44525 ]
44526 ]
44527 },
44660702 44528 "protected" : 1,
7aacca6f 44529 "proxyto" : "node",
56122987 44530 "returns" : {
7aacca6f
DM
44531 "type" : "null"
44532 }
56122987 44533 }
44660702
DM
44534 },
44535 "leaf" : 1,
44536 "path" : "/nodes/{node}/dns",
44537 "text" : "dns"
56122987
DM
44538 },
44539 {
44540 "info" : {
7aacca6f 44541 "GET" : {
e9cd3bd4 44542 "allowtoken" : 1,
7aacca6f 44543 "description" : "Read server time and time zone settings.",
44660702
DM
44544 "method" : "GET",
44545 "name" : "time",
56122987 44546 "parameters" : {
44660702 44547 "additionalProperties" : 0,
56122987
DM
44548 "properties" : {
44549 "node" : {
44660702 44550 "description" : "The cluster node name.",
56122987 44551 "format" : "pve-node",
013dc89f
DM
44552 "type" : "string",
44553 "typetext" : "<string>"
56122987 44554 }
44660702 44555 }
56122987
DM
44556 },
44557 "permissions" : {
44558 "check" : [
44559 "perm",
7aacca6f 44560 "/nodes/{node}",
56122987 44561 [
7aacca6f 44562 "Sys.Audit"
56122987
DM
44563 ]
44564 ]
44660702
DM
44565 },
44566 "proxyto" : "node",
44567 "returns" : {
44568 "additionalProperties" : 0,
44569 "properties" : {
44570 "localtime" : {
44571 "description" : "Seconds since 1970-01-01 00:00:00 (local time)",
44572 "minimum" : 1297163644,
4d47f125 44573 "renderer" : "timestamp_gmt",
44660702
DM
44574 "type" : "integer"
44575 },
44576 "time" : {
44577 "description" : "Seconds since 1970-01-01 00:00:00 UTC.",
44578 "minimum" : 1297163644,
4d47f125 44579 "renderer" : "timestamp",
44660702
DM
44580 "type" : "integer"
44581 },
44582 "timezone" : {
44583 "description" : "Time zone",
44584 "type" : "string"
44585 }
44586 },
44587 "type" : "object"
7aacca6f
DM
44588 }
44589 },
44590 "PUT" : {
e9cd3bd4 44591 "allowtoken" : 1,
7aacca6f 44592 "description" : "Set time zone.",
44660702
DM
44593 "method" : "PUT",
44594 "name" : "set_timezone",
44595 "parameters" : {
44596 "additionalProperties" : 0,
44597 "properties" : {
44598 "node" : {
44599 "description" : "The cluster node name.",
44600 "format" : "pve-node",
013dc89f
DM
44601 "type" : "string",
44602 "typetext" : "<string>"
44660702
DM
44603 },
44604 "timezone" : {
44605 "description" : "Time zone. The file '/usr/share/zoneinfo/zone.tab' contains the list of valid names.",
013dc89f
DM
44606 "type" : "string",
44607 "typetext" : "<string>"
44660702
DM
44608 }
44609 }
44610 },
7aacca6f
DM
44611 "permissions" : {
44612 "check" : [
44613 "perm",
44614 "/nodes/{node}",
44615 [
44616 "Sys.Modify"
44617 ]
44618 ]
56122987 44619 },
7aacca6f 44620 "protected" : 1,
44660702
DM
44621 "proxyto" : "node",
44622 "returns" : {
44623 "type" : "null"
44624 }
7aacca6f
DM
44625 }
44626 },
7aacca6f 44627 "leaf" : 1,
44660702
DM
44628 "path" : "/nodes/{node}/time",
44629 "text" : "time"
7aacca6f
DM
44630 },
44631 {
44632 "info" : {
44660702 44633 "GET" : {
e9cd3bd4 44634 "allowtoken" : 1,
44660702
DM
44635 "description" : "Get list of appliances.",
44636 "method" : "GET",
44637 "name" : "aplinfo",
7aacca6f
DM
44638 "parameters" : {
44639 "additionalProperties" : 0,
44640 "properties" : {
7aacca6f 44641 "node" : {
44660702 44642 "description" : "The cluster node name.",
7aacca6f 44643 "format" : "pve-node",
013dc89f
DM
44644 "type" : "string",
44645 "typetext" : "<string>"
7aacca6f
DM
44646 }
44647 }
56122987 44648 },
7aacca6f 44649 "permissions" : {
44660702 44650 "user" : "all"
56122987 44651 },
44660702 44652 "proxyto" : "node",
7aacca6f
DM
44653 "returns" : {
44654 "items" : {
44660702
DM
44655 "properties" : {},
44656 "type" : "object"
7aacca6f
DM
44657 },
44658 "type" : "array"
44660702
DM
44659 }
44660 },
44661 "POST" : {
e9cd3bd4 44662 "allowtoken" : 1,
44660702
DM
44663 "description" : "Download appliance templates.",
44664 "method" : "POST",
44665 "name" : "apl_download",
7aacca6f
DM
44666 "parameters" : {
44667 "additionalProperties" : 0,
44668 "properties" : {
44669 "node" : {
7aacca6f 44670 "description" : "The cluster node name.",
44660702 44671 "format" : "pve-node",
013dc89f
DM
44672 "type" : "string",
44673 "typetext" : "<string>"
44660702
DM
44674 },
44675 "storage" : {
4bd7df8b 44676 "description" : "The storage where the template will be stored",
44660702 44677 "format" : "pve-storage-id",
013dc89f
DM
44678 "type" : "string",
44679 "typetext" : "<string>"
44660702
DM
44680 },
44681 "template" : {
1e3f8156 44682 "description" : "The template which will downloaded",
44660702 44683 "maxLength" : 255,
013dc89f
DM
44684 "type" : "string",
44685 "typetext" : "<string>"
7aacca6f
DM
44686 }
44687 }
56122987 44688 },
7aacca6f 44689 "permissions" : {
44660702
DM
44690 "check" : [
44691 "perm",
44692 "/storage/{storage}",
44693 [
44694 "Datastore.AllocateTemplate"
44695 ]
44696 ]
44697 },
44698 "protected" : 1,
44699 "proxyto" : "node",
44700 "returns" : {
44701 "type" : "string"
7aacca6f
DM
44702 }
44703 }
44704 },
7aacca6f 44705 "leaf" : 1,
44660702
DM
44706 "path" : "/nodes/{node}/aplinfo",
44707 "text" : "aplinfo"
7aacca6f 44708 },
5370fa8c
TL
44709 {
44710 "info" : {
44711 "GET" : {
44712 "allowtoken" : 1,
44713 "description" : "Query metadata of an URL: file size, file name and mime type.",
44714 "method" : "GET",
44715 "name" : "query_url_metadata",
44716 "parameters" : {
44717 "additionalProperties" : 0,
44718 "properties" : {
44719 "node" : {
44720 "description" : "The cluster node name.",
44721 "format" : "pve-node",
44722 "type" : "string",
44723 "typetext" : "<string>"
44724 },
44725 "url" : {
44726 "description" : "The URL to query the metadata from.",
44727 "pattern" : "https?://.*",
44728 "type" : "string"
44729 },
44730 "verify-certificates" : {
44731 "default" : 1,
44732 "description" : "If false, no SSL/TLS certificates will be verified.",
44733 "optional" : 1,
44734 "type" : "boolean",
44735 "typetext" : "<boolean>"
44736 }
44737 }
44738 },
44739 "permissions" : {
44740 "check" : [
44741 "perm",
44742 "/",
44743 [
44744 "Sys.Audit",
44745 "Sys.Modify"
44746 ]
44747 ]
44748 },
44749 "proxyto" : "node",
44750 "returns" : {
44751 "properties" : {
44752 "filename" : {
44753 "optional" : 1,
44754 "type" : "string"
44755 },
44756 "mimetype" : {
44757 "optional" : 1,
44758 "type" : "string"
44759 },
44760 "size" : {
44761 "optional" : 1,
44762 "renderer" : "bytes",
44763 "type" : "integer"
44764 }
44765 },
44766 "type" : "object"
44767 }
44768 }
44769 },
44770 "leaf" : 1,
44771 "path" : "/nodes/{node}/query-url-metadata",
44772 "text" : "query-url-metadata"
44773 },
7aacca6f
DM
44774 {
44775 "info" : {
44776 "GET" : {
e9cd3bd4 44777 "allowtoken" : 1,
44660702
DM
44778 "description" : "Gather various systems information about a node",
44779 "method" : "GET",
44780 "name" : "report",
7aacca6f 44781 "parameters" : {
44660702 44782 "additionalProperties" : 0,
7aacca6f
DM
44783 "properties" : {
44784 "node" : {
7aacca6f 44785 "description" : "The cluster node name.",
44660702 44786 "format" : "pve-node",
013dc89f
DM
44787 "type" : "string",
44788 "typetext" : "<string>"
7aacca6f 44789 }
44660702 44790 }
56122987 44791 },
7aacca6f
DM
44792 "permissions" : {
44793 "check" : [
44794 "perm",
44795 "/nodes/{node}",
44796 [
44797 "Sys.Audit"
44798 ]
44799 ]
56122987 44800 },
44660702 44801 "protected" : 1,
7aacca6f
DM
44802 "proxyto" : "node",
44803 "returns" : {
56122987 44804 "type" : "string"
7aacca6f
DM
44805 }
44806 }
44807 },
7aacca6f 44808 "leaf" : 1,
44660702
DM
44809 "path" : "/nodes/{node}/report",
44810 "text" : "report"
7aacca6f
DM
44811 },
44812 {
7aacca6f
DM
44813 "info" : {
44814 "POST" : {
e9cd3bd4 44815 "allowtoken" : 1,
1c532546 44816 "description" : "Start all VMs and containers located on this node (by default only those with onboot=1).",
7aacca6f 44817 "method" : "POST",
44660702 44818 "name" : "startall",
7aacca6f 44819 "parameters" : {
44660702 44820 "additionalProperties" : 0,
7aacca6f
DM
44821 "properties" : {
44822 "force" : {
1c532546
TL
44823 "default" : "off",
44824 "description" : "Issue start command even if virtual guest have 'onboot' not set or set to off.",
7aacca6f 44825 "optional" : 1,
013dc89f
DM
44826 "type" : "boolean",
44827 "typetext" : "<boolean>"
7aacca6f
DM
44828 },
44829 "node" : {
7aacca6f 44830 "description" : "The cluster node name.",
44660702 44831 "format" : "pve-node",
013dc89f
DM
44832 "type" : "string",
44833 "typetext" : "<string>"
52e44c50
FG
44834 },
44835 "vms" : {
1c532546 44836 "description" : "Only consider guests from this comma separated list of VMIDs.",
52e44c50
FG
44837 "format" : "pve-vmid-list",
44838 "optional" : 1,
44839 "type" : "string",
44840 "typetext" : "<string>"
7aacca6f 44841 }
44660702 44842 }
56122987 44843 },
7aacca6f
DM
44844 "permissions" : {
44845 "check" : [
44846 "perm",
44847 "/",
44848 [
44849 "VM.PowerMgmt"
44850 ]
44851 ]
44660702
DM
44852 },
44853 "protected" : 1,
44854 "proxyto" : "node",
44855 "returns" : {
44856 "type" : "string"
7aacca6f
DM
44857 }
44858 }
44859 },
44660702 44860 "leaf" : 1,
7aacca6f 44861 "path" : "/nodes/{node}/startall",
44660702 44862 "text" : "startall"
7aacca6f
DM
44863 },
44864 {
7aacca6f
DM
44865 "info" : {
44866 "POST" : {
e9cd3bd4 44867 "allowtoken" : 1,
7aacca6f 44868 "description" : "Stop all VMs and Containers.",
44660702
DM
44869 "method" : "POST",
44870 "name" : "stopall",
7aacca6f 44871 "parameters" : {
44660702 44872 "additionalProperties" : 0,
7aacca6f
DM
44873 "properties" : {
44874 "node" : {
44660702 44875 "description" : "The cluster node name.",
7aacca6f 44876 "format" : "pve-node",
013dc89f
DM
44877 "type" : "string",
44878 "typetext" : "<string>"
52e44c50
FG
44879 },
44880 "vms" : {
44881 "description" : "Only consider Guests with these IDs.",
44882 "format" : "pve-vmid-list",
44883 "optional" : 1,
44884 "type" : "string",
44885 "typetext" : "<string>"
7aacca6f 44886 }
44660702 44887 }
56122987 44888 },
7aacca6f
DM
44889 "permissions" : {
44890 "check" : [
44891 "perm",
44892 "/",
44893 [
44660702 44894 "VM.PowerMgmt"
7aacca6f
DM
44895 ]
44896 ]
56122987 44897 },
44660702 44898 "protected" : 1,
7aacca6f 44899 "proxyto" : "node",
44660702
DM
44900 "returns" : {
44901 "type" : "string"
44902 }
44903 }
56122987 44904 },
44660702
DM
44905 "leaf" : 1,
44906 "path" : "/nodes/{node}/stopall",
44907 "text" : "stopall"
44908 },
44909 {
44910 "info" : {
44911 "POST" : {
e9cd3bd4 44912 "allowtoken" : 1,
44660702
DM
44913 "description" : "Migrate all VMs and Containers.",
44914 "method" : "POST",
44915 "name" : "migrateall",
44916 "parameters" : {
44917 "additionalProperties" : 0,
44918 "properties" : {
44919 "maxworkers" : {
44920 "description" : "Maximal number of parallel migration job. If not set use 'max_workers' from datacenter.cfg, one of both must be set!",
44921 "minimum" : 1,
44922 "optional" : 1,
4bd7df8b 44923 "type" : "integer",
013dc89f 44924 "typetext" : "<integer> (1 - N)"
44660702
DM
44925 },
44926 "node" : {
44927 "description" : "The cluster node name.",
44928 "format" : "pve-node",
013dc89f
DM
44929 "type" : "string",
44930 "typetext" : "<string>"
44660702
DM
44931 },
44932 "target" : {
44933 "description" : "Target node.",
44934 "format" : "pve-node",
013dc89f
DM
44935 "type" : "string",
44936 "typetext" : "<string>"
52e44c50
FG
44937 },
44938 "vms" : {
44939 "description" : "Only consider Guests with these IDs.",
44940 "format" : "pve-vmid-list",
44941 "optional" : 1,
44942 "type" : "string",
44943 "typetext" : "<string>"
e9cd3bd4
TL
44944 },
44945 "with-local-disks" : {
44946 "description" : "Enable live storage migration for local disk",
44947 "optional" : 1,
44948 "type" : "boolean",
44949 "typetext" : "<boolean>"
44660702
DM
44950 }
44951 }
44952 },
44953 "permissions" : {
44954 "check" : [
44955 "perm",
44956 "/",
44957 [
44958 "VM.Migrate"
44959 ]
44960 ]
44961 },
44962 "protected" : 1,
44963 "proxyto" : "node",
44964 "returns" : {
44965 "type" : "string"
44966 }
44967 }
56122987 44968 },
44660702
DM
44969 "leaf" : 1,
44970 "path" : "/nodes/{node}/migrateall",
44971 "text" : "migrateall"
4d47f125
TL
44972 },
44973 {
44974 "info" : {
44975 "GET" : {
e9cd3bd4 44976 "allowtoken" : 1,
4d47f125
TL
44977 "description" : "Get the content of /etc/hosts.",
44978 "method" : "GET",
44979 "name" : "get_etc_hosts",
44980 "parameters" : {
44981 "additionalProperties" : 0,
44982 "properties" : {
44983 "node" : {
44984 "description" : "The cluster node name.",
44985 "format" : "pve-node",
44986 "type" : "string",
44987 "typetext" : "<string>"
44988 }
44989 }
44990 },
44991 "permissions" : {
44992 "check" : [
44993 "perm",
44994 "/",
44995 [
44996 "Sys.Audit"
44997 ]
44998 ]
44999 },
45000 "protected" : 1,
45001 "proxyto" : "node",
45002 "returns" : {
45003 "properties" : {
45004 "data" : {
45005 "description" : "The content of /etc/hosts.",
45006 "type" : "string"
45007 },
45008 "digest" : {
45009 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
45010 "maxLength" : 40,
45011 "optional" : 1,
45012 "type" : "string"
45013 }
45014 },
45015 "type" : "object"
45016 }
45017 },
45018 "POST" : {
e9cd3bd4 45019 "allowtoken" : 1,
4d47f125
TL
45020 "description" : "Write /etc/hosts.",
45021 "method" : "POST",
45022 "name" : "write_etc_hosts",
45023 "parameters" : {
45024 "additionalProperties" : 0,
45025 "properties" : {
45026 "data" : {
45027 "description" : "The target content of /etc/hosts.",
45028 "type" : "string",
45029 "typetext" : "<string>"
45030 },
45031 "digest" : {
45032 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
45033 "maxLength" : 40,
45034 "optional" : 1,
45035 "type" : "string",
45036 "typetext" : "<string>"
45037 },
45038 "node" : {
45039 "description" : "The cluster node name.",
45040 "format" : "pve-node",
45041 "type" : "string",
45042 "typetext" : "<string>"
45043 }
45044 }
45045 },
45046 "permissions" : {
45047 "check" : [
45048 "perm",
45049 "/nodes/{node}",
45050 [
45051 "Sys.Modify"
45052 ]
45053 ]
45054 },
45055 "protected" : 1,
45056 "proxyto" : "node",
45057 "returns" : {
45058 "type" : "null"
45059 }
45060 }
45061 },
45062 "leaf" : 1,
45063 "path" : "/nodes/{node}/hosts",
45064 "text" : "hosts"
44660702
DM
45065 }
45066 ],
45067 "info" : {
45068 "GET" : {
e9cd3bd4 45069 "allowtoken" : 1,
44660702
DM
45070 "description" : "Node index.",
45071 "method" : "GET",
45072 "name" : "index",
45073 "parameters" : {
45074 "additionalProperties" : 0,
45075 "properties" : {
45076 "node" : {
45077 "description" : "The cluster node name.",
45078 "format" : "pve-node",
013dc89f
DM
45079 "type" : "string",
45080 "typetext" : "<string>"
44660702
DM
45081 }
45082 }
56122987 45083 },
44660702
DM
45084 "permissions" : {
45085 "user" : "all"
56122987 45086 },
44660702
DM
45087 "returns" : {
45088 "items" : {
45089 "properties" : {},
45090 "type" : "object"
45091 },
45092 "links" : [
45093 {
45094 "href" : "{name}",
45095 "rel" : "child"
45096 }
56122987 45097 ],
44660702 45098 "type" : "array"
7aacca6f
DM
45099 }
45100 }
45101 },
44660702
DM
45102 "leaf" : 0,
45103 "path" : "/nodes/{node}",
45104 "text" : "{node}"
45105 }
45106 ],
45107 "info" : {
7aacca6f 45108 "GET" : {
e9cd3bd4 45109 "allowtoken" : 1,
44660702 45110 "description" : "Cluster node index.",
7aacca6f 45111 "method" : "GET",
44660702 45112 "name" : "index",
7aacca6f 45113 "parameters" : {
7aacca6f
DM
45114 "additionalProperties" : 0
45115 },
45116 "permissions" : {
7aacca6f
DM
45117 "user" : "all"
45118 },
44660702
DM
45119 "returns" : {
45120 "items" : {
4d47f125
TL
45121 "properties" : {
45122 "cpu" : {
45123 "description" : "CPU utilization.",
45124 "optional" : 1,
45125 "renderer" : "fraction_as_percentage",
45126 "type" : "number"
45127 },
45128 "level" : {
45129 "description" : "Support level.",
45130 "optional" : 1,
45131 "type" : "string"
45132 },
45133 "maxcpu" : {
45134 "description" : "Number of available CPUs.",
45135 "optional" : 1,
45136 "type" : "integer"
45137 },
45138 "maxmem" : {
45139 "description" : "Number of available memory in bytes.",
45140 "optional" : 1,
45141 "renderer" : "bytes",
45142 "type" : "integer"
45143 },
45144 "mem" : {
45145 "description" : "Used memory in bytes.",
45146 "optional" : 1,
45147 "renderer" : "bytes",
1c532546 45148 "type" : "integer"
4d47f125
TL
45149 },
45150 "node" : {
45151 "description" : "The cluster node name.",
45152 "format" : "pve-node",
45153 "type" : "string"
45154 },
45155 "ssl_fingerprint" : {
45156 "description" : "The SSL fingerprint for the node certificate.",
45157 "optional" : 1,
45158 "type" : "string"
45159 },
45160 "status" : {
45161 "description" : "Node status.",
45162 "enum" : [
45163 "unknown",
45164 "online",
45165 "offline"
45166 ],
45167 "type" : "string"
45168 },
45169 "uptime" : {
45170 "description" : "Node uptime in seconds.",
45171 "optional" : 1,
45172 "renderer" : "duration",
45173 "type" : "integer"
45174 }
45175 },
44660702
DM
45176 "type" : "object"
45177 },
45178 "links" : [
45179 {
45180 "href" : "{node}",
45181 "rel" : "child"
45182 }
45183 ],
45184 "type" : "array"
45185 }
7aacca6f
DM
45186 }
45187 },
44660702
DM
45188 "leaf" : 0,
45189 "path" : "/nodes",
45190 "text" : "nodes"
45191 },
45192 {
7aacca6f
DM
45193 "children" : [
45194 {
7aacca6f 45195 "info" : {
44660702 45196 "DELETE" : {
e9cd3bd4 45197 "allowtoken" : 1,
44660702
DM
45198 "description" : "Delete storage configuration.",
45199 "method" : "DELETE",
45200 "name" : "delete",
7aacca6f
DM
45201 "parameters" : {
45202 "additionalProperties" : 0,
45203 "properties" : {
45204 "storage" : {
7aacca6f 45205 "description" : "The storage identifier.",
44660702 45206 "format" : "pve-storage-id",
013dc89f
DM
45207 "type" : "string",
45208 "typetext" : "<string>"
7aacca6f
DM
45209 }
45210 }
56122987 45211 },
7aacca6f
DM
45212 "permissions" : {
45213 "check" : [
45214 "perm",
45215 "/storage",
45216 [
45217 "Datastore.Allocate"
45218 ]
45219 ]
56122987 45220 },
44660702
DM
45221 "protected" : 1,
45222 "returns" : {
45223 "type" : "null"
45224 }
45225 },
45226 "GET" : {
e9cd3bd4 45227 "allowtoken" : 1,
44660702
DM
45228 "description" : "Read storage configuration.",
45229 "method" : "GET",
45230 "name" : "read",
7aacca6f
DM
45231 "parameters" : {
45232 "additionalProperties" : 0,
45233 "properties" : {
45234 "storage" : {
44660702 45235 "description" : "The storage identifier.",
7aacca6f 45236 "format" : "pve-storage-id",
013dc89f
DM
45237 "type" : "string",
45238 "typetext" : "<string>"
7aacca6f
DM
45239 }
45240 }
45241 },
44660702
DM
45242 "permissions" : {
45243 "check" : [
45244 "perm",
45245 "/storage/{storage}",
45246 [
45247 "Datastore.Allocate"
45248 ]
45249 ]
45250 },
5da3d723
TL
45251 "returns" : {
45252 "type" : "object"
45253 }
7aacca6f
DM
45254 },
45255 "PUT" : {
e9cd3bd4 45256 "allowtoken" : 1,
44660702
DM
45257 "description" : "Update storage configuration.",
45258 "method" : "PUT",
45259 "name" : "update",
45260 "parameters" : {
45261 "additionalProperties" : 0,
45262 "properties" : {
45263 "blocksize" : {
45264 "description" : "block size",
7aacca6f 45265 "optional" : 1,
013dc89f
DM
45266 "type" : "string",
45267 "typetext" : "<string>"
7aacca6f 45268 },
27a7acb2
DM
45269 "bwlimit" : {
45270 "description" : "Set bandwidth/io limits various operations.",
45271 "format" : {
45272 "clone" : {
95895385 45273 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
45274 "format_description" : "LIMIT",
45275 "minimum" : "0",
45276 "optional" : 1,
45277 "type" : "number"
45278 },
45279 "default" : {
95895385 45280 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
45281 "format_description" : "LIMIT",
45282 "minimum" : "0",
45283 "optional" : 1,
45284 "type" : "number"
45285 },
45286 "migration" : {
95895385 45287 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
45288 "format_description" : "LIMIT",
45289 "minimum" : "0",
45290 "optional" : 1,
45291 "type" : "number"
45292 },
45293 "move" : {
95895385 45294 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
45295 "format_description" : "LIMIT",
45296 "minimum" : "0",
45297 "optional" : 1,
45298 "type" : "number"
45299 },
45300 "restore" : {
95895385 45301 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
45302 "format_description" : "LIMIT",
45303 "minimum" : "0",
45304 "optional" : 1,
45305 "type" : "number"
45306 }
45307 },
45308 "optional" : 1,
45309 "type" : "string",
45310 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
45311 },
44660702
DM
45312 "comstar_hg" : {
45313 "description" : "host group for comstar views",
45314 "optional" : 1,
013dc89f
DM
45315 "type" : "string",
45316 "typetext" : "<string>"
7aacca6f 45317 },
44660702
DM
45318 "comstar_tg" : {
45319 "description" : "target group for comstar views",
7aacca6f 45320 "optional" : 1,
013dc89f
DM
45321 "type" : "string",
45322 "typetext" : "<string>"
7aacca6f 45323 },
44660702
DM
45324 "content" : {
45325 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
45326 "format" : "pve-storage-content-list",
7aacca6f 45327 "optional" : 1,
013dc89f
DM
45328 "type" : "string",
45329 "typetext" : "<string>"
7aacca6f 45330 },
c30bb419
TL
45331 "data-pool" : {
45332 "description" : "Data Pool (for erasure coding only)",
45333 "optional" : 1,
45334 "type" : "string",
45335 "typetext" : "<string>"
45336 },
44660702
DM
45337 "delete" : {
45338 "description" : "A list of settings you want to delete.",
45339 "format" : "pve-configid-list",
45340 "maxLength" : 4096,
7aacca6f 45341 "optional" : 1,
013dc89f
DM
45342 "type" : "string",
45343 "typetext" : "<string>"
7aacca6f
DM
45344 },
45345 "digest" : {
44660702 45346 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
7aacca6f 45347 "maxLength" : 40,
7aacca6f 45348 "optional" : 1,
013dc89f
DM
45349 "type" : "string",
45350 "typetext" : "<string>"
7aacca6f 45351 },
44660702
DM
45352 "disable" : {
45353 "description" : "Flag to disable the storage.",
45354 "optional" : 1,
013dc89f
DM
45355 "type" : "boolean",
45356 "typetext" : "<boolean>"
7aacca6f 45357 },
27a7acb2
DM
45358 "domain" : {
45359 "description" : "CIFS domain.",
45360 "maxLength" : 256,
45361 "optional" : 1,
45362 "type" : "string",
45363 "typetext" : "<string>"
45364 },
04d22a9f
TL
45365 "encryption-key" : {
45366 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
45367 "optional" : 1,
45368 "type" : "string",
45369 "typetext" : "<string>"
45370 },
c5aa7e14
TL
45371 "fingerprint" : {
45372 "description" : "Certificate SHA 256 fingerprint.",
45373 "optional" : 1,
45374 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
45375 "type" : "string"
45376 },
7aacca6f
DM
45377 "format" : {
45378 "description" : "Default image format.",
44660702 45379 "format" : "pve-storage-format",
7aacca6f 45380 "optional" : 1,
013dc89f
DM
45381 "type" : "string",
45382 "typetext" : "<string>"
7aacca6f 45383 },
5370fa8c
TL
45384 "fs-name" : {
45385 "description" : "The Ceph filesystem name.",
45386 "format" : "pve-configid",
45387 "optional" : 1,
45388 "type" : "string",
45389 "typetext" : "<string>"
45390 },
5da3d723
TL
45391 "fuse" : {
45392 "description" : "Mount CephFS through FUSE.",
45393 "optional" : 1,
45394 "type" : "boolean",
45395 "typetext" : "<boolean>"
45396 },
2c0dde61
DM
45397 "is_mountpoint" : {
45398 "default" : "no",
2489d6df 45399 "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 45400 "optional" : 1,
2489d6df
WB
45401 "type" : "string",
45402 "typetext" : "<string>"
2c0dde61 45403 },
5370fa8c
TL
45404 "keyring" : {
45405 "description" : "Client keyring contents (for external clusters).",
45406 "optional" : 1,
45407 "type" : "string",
45408 "typetext" : "<string>"
45409 },
44660702 45410 "krbd" : {
e2d681b3 45411 "description" : "Always access rbd through krbd kernel module.",
7aacca6f 45412 "optional" : 1,
013dc89f
DM
45413 "type" : "boolean",
45414 "typetext" : "<boolean>"
7aacca6f 45415 },
4d47f125
TL
45416 "lio_tpg" : {
45417 "description" : "target portal group for Linux LIO targets",
45418 "optional" : 1,
45419 "type" : "string",
45420 "typetext" : "<string>"
45421 },
d2656385 45422 "master-pubkey" : {
5f4e66fe 45423 "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
45424 "optional" : 1,
45425 "type" : "string",
45426 "typetext" : "<string>"
45427 },
7af2edf9
TL
45428 "max-protected-backups" : {
45429 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
45430 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
45431 "minimum" : -1,
45432 "optional" : 1,
45433 "type" : "integer",
45434 "typetext" : "<integer> (-1 - N)"
45435 },
44660702 45436 "maxfiles" : {
5f4e66fe 45437 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
45438 "minimum" : 0,
45439 "optional" : 1,
4bd7df8b 45440 "type" : "integer",
013dc89f 45441 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
45442 },
45443 "mkdir" : {
45444 "default" : "yes",
45445 "description" : "Create the directory if it doesn't exist.",
45446 "optional" : 1,
013dc89f
DM
45447 "type" : "boolean",
45448 "typetext" : "<boolean>"
7aacca6f 45449 },
2489d6df
WB
45450 "monhost" : {
45451 "description" : "IP addresses of monitors (for external clusters).",
45452 "format" : "pve-storage-portal-dns-list",
45453 "optional" : 1,
45454 "type" : "string",
45455 "typetext" : "<string>"
45456 },
5c1699e5
TL
45457 "mountpoint" : {
45458 "description" : "mount point",
45459 "format" : "pve-storage-path",
45460 "optional" : 1,
45461 "type" : "string",
45462 "typetext" : "<string>"
45463 },
d2656385 45464 "namespace" : {
de786b48 45465 "description" : "Namespace.",
d2656385
TL
45466 "optional" : 1,
45467 "type" : "string",
45468 "typetext" : "<string>"
45469 },
5f4e66fe
TL
45470 "nocow" : {
45471 "default" : 0,
45472 "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.",
45473 "optional" : 1,
45474 "type" : "boolean",
45475 "typetext" : "<boolean>"
45476 },
7aacca6f 45477 "nodes" : {
44660702 45478 "description" : "List of cluster node names.",
7aacca6f
DM
45479 "format" : "pve-node-list",
45480 "optional" : 1,
013dc89f
DM
45481 "type" : "string",
45482 "typetext" : "<string>"
7aacca6f 45483 },
44660702
DM
45484 "nowritecache" : {
45485 "description" : "disable write caching on the target",
7aacca6f 45486 "optional" : 1,
013dc89f
DM
45487 "type" : "boolean",
45488 "typetext" : "<boolean>"
7aacca6f
DM
45489 },
45490 "options" : {
7aacca6f 45491 "description" : "NFS mount options (see 'man nfs')",
44660702
DM
45492 "format" : "pve-storage-options",
45493 "optional" : 1,
013dc89f
DM
45494 "type" : "string",
45495 "typetext" : "<string>"
44660702 45496 },
27a7acb2 45497 "password" : {
04d22a9f 45498 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
45499 "maxLength" : 256,
45500 "optional" : 1,
45501 "type" : "string",
45502 "typetext" : "<string>"
45503 },
44660702
DM
45504 "pool" : {
45505 "description" : "Pool.",
45506 "optional" : 1,
013dc89f
DM
45507 "type" : "string",
45508 "typetext" : "<string>"
44660702 45509 },
4772952b
TL
45510 "port" : {
45511 "default" : 8007,
45512 "description" : "For non default port.",
45513 "maximum" : 65535,
45514 "minimum" : 1,
45515 "optional" : 1,
45516 "type" : "integer",
45517 "typetext" : "<integer> (1 - 65535)"
45518 },
5370fa8c
TL
45519 "preallocation" : {
45520 "default" : "metadata",
45521 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
45522 "enum" : [
45523 "off",
45524 "metadata",
45525 "falloc",
45526 "full"
45527 ],
45528 "optional" : 1,
45529 "type" : "string"
45530 },
739d4d64
TL
45531 "prune-backups" : {
45532 "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.",
45533 "format" : "prune-backups",
45534 "optional" : 1,
45535 "type" : "string",
4772952b 45536 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 45537 },
44660702
DM
45538 "saferemove" : {
45539 "description" : "Zero-out data when removing LVs.",
45540 "optional" : 1,
013dc89f
DM
45541 "type" : "boolean",
45542 "typetext" : "<boolean>"
7aacca6f
DM
45543 },
45544 "saferemove_throughput" : {
44660702 45545 "description" : "Wipe throughput (cstream -t parameter value).",
7aacca6f 45546 "optional" : 1,
013dc89f
DM
45547 "type" : "string",
45548 "typetext" : "<string>"
7aacca6f 45549 },
44660702
DM
45550 "server" : {
45551 "description" : "Server IP or DNS name.",
45552 "format" : "pve-storage-server",
7aacca6f 45553 "optional" : 1,
013dc89f
DM
45554 "type" : "string",
45555 "typetext" : "<string>"
7aacca6f 45556 },
44660702
DM
45557 "server2" : {
45558 "description" : "Backup volfile server IP or DNS name.",
45559 "format" : "pve-storage-server",
7aacca6f 45560 "optional" : 1,
44660702 45561 "requires" : "server",
013dc89f
DM
45562 "type" : "string",
45563 "typetext" : "<string>"
44660702
DM
45564 },
45565 "shared" : {
45566 "description" : "Mark storage as shared.",
45567 "optional" : 1,
013dc89f
DM
45568 "type" : "boolean",
45569 "typetext" : "<boolean>"
44660702 45570 },
27a7acb2 45571 "smbversion" : {
5370fa8c
TL
45572 "default" : "default",
45573 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 45574 "enum" : [
5370fa8c 45575 "default",
5da3d723
TL
45576 "2.0",
45577 "2.1",
5370fa8c
TL
45578 "3",
45579 "3.0",
45580 "3.11"
5da3d723 45581 ],
27a7acb2 45582 "optional" : 1,
5da3d723 45583 "type" : "string"
27a7acb2 45584 },
44660702
DM
45585 "sparse" : {
45586 "description" : "use sparse volumes",
45587 "optional" : 1,
013dc89f
DM
45588 "type" : "boolean",
45589 "typetext" : "<boolean>"
44660702
DM
45590 },
45591 "storage" : {
45592 "description" : "The storage identifier.",
45593 "format" : "pve-storage-id",
013dc89f
DM
45594 "type" : "string",
45595 "typetext" : "<string>"
44660702 45596 },
5da3d723
TL
45597 "subdir" : {
45598 "description" : "Subdir to mount.",
45599 "format" : "pve-storage-path",
45600 "optional" : 1,
45601 "type" : "string",
45602 "typetext" : "<string>"
45603 },
4bd7df8b
DM
45604 "tagged_only" : {
45605 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
45606 "optional" : 1,
013dc89f
DM
45607 "type" : "boolean",
45608 "typetext" : "<boolean>"
4bd7df8b 45609 },
44660702
DM
45610 "transport" : {
45611 "description" : "Gluster transport: tcp or rdma",
45612 "enum" : [
45613 "tcp",
45614 "rdma",
45615 "unix"
45616 ],
45617 "optional" : 1,
45618 "type" : "string"
7aacca6f
DM
45619 },
45620 "username" : {
45621 "description" : "RBD Id.",
44660702 45622 "optional" : 1,
013dc89f
DM
45623 "type" : "string",
45624 "typetext" : "<string>"
7aacca6f 45625 }
44660702
DM
45626 },
45627 "type" : "object"
45628 },
45629 "permissions" : {
45630 "check" : [
45631 "perm",
45632 "/storage",
45633 [
45634 "Datastore.Allocate"
45635 ]
45636 ]
45637 },
45638 "protected" : 1,
45639 "returns" : {
4772952b
TL
45640 "properties" : {
45641 "config" : {
45642 "additionalProperties" : 1,
45643 "description" : "Partial, possible server generated, configuration properties.",
45644 "optional" : 1,
45645 "properties" : {
45646 "encryption-key" : {
45647 "description" : "The, possible auto-generated, encryption-key.",
45648 "optional" : 1,
45649 "type" : "string"
45650 }
45651 },
45652 "type" : "object"
45653 },
45654 "storage" : {
45655 "description" : "The ID of the created storage.",
45656 "type" : "string"
45657 },
45658 "type" : {
45659 "description" : "The type of the created storage.",
45660 "enum" : [
5f4e66fe 45661 "btrfs",
4772952b
TL
45662 "cephfs",
45663 "cifs",
45664 "dir",
4772952b
TL
45665 "glusterfs",
45666 "iscsi",
45667 "iscsidirect",
45668 "lvm",
45669 "lvmthin",
45670 "nfs",
45671 "pbs",
45672 "rbd",
45673 "zfs",
45674 "zfspool"
45675 ],
45676 "type" : "string"
45677 }
45678 },
45679 "type" : "object"
44660702
DM
45680 }
45681 }
45682 },
45683 "leaf" : 1,
45684 "path" : "/storage/{storage}",
45685 "text" : "{storage}"
45686 }
45687 ],
45688 "info" : {
45689 "GET" : {
e9cd3bd4 45690 "allowtoken" : 1,
44660702
DM
45691 "description" : "Storage index.",
45692 "method" : "GET",
45693 "name" : "index",
45694 "parameters" : {
45695 "additionalProperties" : 0,
45696 "properties" : {
45697 "type" : {
45698 "description" : "Only list storage of specific type",
45699 "enum" : [
5f4e66fe 45700 "btrfs",
5da3d723 45701 "cephfs",
27a7acb2 45702 "cifs",
44660702 45703 "dir",
44660702
DM
45704 "glusterfs",
45705 "iscsi",
45706 "iscsidirect",
45707 "lvm",
45708 "lvmthin",
45709 "nfs",
c5aa7e14 45710 "pbs",
44660702 45711 "rbd",
44660702
DM
45712 "zfs",
45713 "zfspool"
45714 ],
45715 "optional" : 1,
45716 "type" : "string"
45717 }
45718 }
45719 },
45720 "permissions" : {
45721 "description" : "Only list entries where you have 'Datastore.Audit' or 'Datastore.AllocateSpace' permissions on '/storage/<storage>'",
45722 "user" : "all"
45723 },
45724 "returns" : {
45725 "items" : {
45726 "properties" : {
45727 "storage" : {
45728 "type" : "string"
7aacca6f 45729 }
56122987 45730 },
44660702
DM
45731 "type" : "object"
45732 },
45733 "links" : [
45734 {
45735 "href" : "{storage}",
45736 "rel" : "child"
45737 }
45738 ],
45739 "type" : "array"
45740 }
45741 },
45742 "POST" : {
e9cd3bd4 45743 "allowtoken" : 1,
44660702
DM
45744 "description" : "Create a new storage.",
45745 "method" : "POST",
45746 "name" : "create",
45747 "parameters" : {
45748 "additionalProperties" : 0,
45749 "properties" : {
45750 "authsupported" : {
45751 "description" : "Authsupported.",
45752 "optional" : 1,
013dc89f
DM
45753 "type" : "string",
45754 "typetext" : "<string>"
44660702
DM
45755 },
45756 "base" : {
45757 "description" : "Base volume. This volume is automatically activated.",
45758 "format" : "pve-volume-id",
45759 "optional" : 1,
013dc89f
DM
45760 "type" : "string",
45761 "typetext" : "<string>"
44660702
DM
45762 },
45763 "blocksize" : {
45764 "description" : "block size",
45765 "optional" : 1,
013dc89f
DM
45766 "type" : "string",
45767 "typetext" : "<string>"
44660702 45768 },
27a7acb2
DM
45769 "bwlimit" : {
45770 "description" : "Set bandwidth/io limits various operations.",
45771 "format" : {
45772 "clone" : {
95895385 45773 "description" : "bandwidth limit in KiB/s for cloning disks",
27a7acb2
DM
45774 "format_description" : "LIMIT",
45775 "minimum" : "0",
45776 "optional" : 1,
45777 "type" : "number"
45778 },
45779 "default" : {
95895385 45780 "description" : "default bandwidth limit in KiB/s",
27a7acb2
DM
45781 "format_description" : "LIMIT",
45782 "minimum" : "0",
45783 "optional" : 1,
45784 "type" : "number"
45785 },
45786 "migration" : {
95895385 45787 "description" : "bandwidth limit in KiB/s for migrating guests (including moving local disks)",
27a7acb2
DM
45788 "format_description" : "LIMIT",
45789 "minimum" : "0",
45790 "optional" : 1,
45791 "type" : "number"
45792 },
45793 "move" : {
95895385 45794 "description" : "bandwidth limit in KiB/s for moving disks",
27a7acb2
DM
45795 "format_description" : "LIMIT",
45796 "minimum" : "0",
45797 "optional" : 1,
45798 "type" : "number"
45799 },
45800 "restore" : {
95895385 45801 "description" : "bandwidth limit in KiB/s for restoring guests from backups",
27a7acb2
DM
45802 "format_description" : "LIMIT",
45803 "minimum" : "0",
45804 "optional" : 1,
45805 "type" : "number"
45806 }
45807 },
45808 "optional" : 1,
45809 "type" : "string",
45810 "typetext" : "[clone=<LIMIT>] [,default=<LIMIT>] [,migration=<LIMIT>] [,move=<LIMIT>] [,restore=<LIMIT>]"
45811 },
44660702
DM
45812 "comstar_hg" : {
45813 "description" : "host group for comstar views",
45814 "optional" : 1,
013dc89f
DM
45815 "type" : "string",
45816 "typetext" : "<string>"
44660702
DM
45817 },
45818 "comstar_tg" : {
45819 "description" : "target group for comstar views",
45820 "optional" : 1,
013dc89f
DM
45821 "type" : "string",
45822 "typetext" : "<string>"
44660702
DM
45823 },
45824 "content" : {
45825 "description" : "Allowed content types.\n\nNOTE: the value 'rootdir' is used for Containers, and value 'images' for VMs.\n",
45826 "format" : "pve-storage-content-list",
45827 "optional" : 1,
013dc89f
DM
45828 "type" : "string",
45829 "typetext" : "<string>"
44660702 45830 },
c30bb419
TL
45831 "data-pool" : {
45832 "description" : "Data Pool (for erasure coding only)",
45833 "optional" : 1,
45834 "type" : "string",
45835 "typetext" : "<string>"
45836 },
c5aa7e14 45837 "datastore" : {
4772952b 45838 "description" : "Proxmox Backup Server datastore name.",
c5aa7e14
TL
45839 "optional" : 1,
45840 "type" : "string",
45841 "typetext" : "<string>"
45842 },
44660702
DM
45843 "disable" : {
45844 "description" : "Flag to disable the storage.",
45845 "optional" : 1,
013dc89f
DM
45846 "type" : "boolean",
45847 "typetext" : "<boolean>"
44660702 45848 },
27a7acb2
DM
45849 "domain" : {
45850 "description" : "CIFS domain.",
45851 "maxLength" : 256,
45852 "optional" : 1,
45853 "type" : "string",
45854 "typetext" : "<string>"
45855 },
04d22a9f
TL
45856 "encryption-key" : {
45857 "description" : "Encryption key. Use 'autogen' to generate one automatically without passphrase.",
45858 "optional" : 1,
45859 "type" : "string",
45860 "typetext" : "<string>"
45861 },
44660702
DM
45862 "export" : {
45863 "description" : "NFS export path.",
45864 "format" : "pve-storage-path",
45865 "optional" : 1,
013dc89f
DM
45866 "type" : "string",
45867 "typetext" : "<string>"
44660702 45868 },
c5aa7e14
TL
45869 "fingerprint" : {
45870 "description" : "Certificate SHA 256 fingerprint.",
45871 "optional" : 1,
45872 "pattern" : "([A-Fa-f0-9]{2}:){31}[A-Fa-f0-9]{2}",
45873 "type" : "string"
45874 },
44660702
DM
45875 "format" : {
45876 "description" : "Default image format.",
45877 "format" : "pve-storage-format",
45878 "optional" : 1,
013dc89f
DM
45879 "type" : "string",
45880 "typetext" : "<string>"
44660702 45881 },
5370fa8c
TL
45882 "fs-name" : {
45883 "description" : "The Ceph filesystem name.",
45884 "format" : "pve-configid",
45885 "optional" : 1,
45886 "type" : "string",
45887 "typetext" : "<string>"
45888 },
5da3d723
TL
45889 "fuse" : {
45890 "description" : "Mount CephFS through FUSE.",
45891 "optional" : 1,
45892 "type" : "boolean",
45893 "typetext" : "<boolean>"
45894 },
2c0dde61
DM
45895 "is_mountpoint" : {
45896 "default" : "no",
2489d6df 45897 "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 45898 "optional" : 1,
2489d6df
WB
45899 "type" : "string",
45900 "typetext" : "<string>"
2c0dde61 45901 },
44660702
DM
45902 "iscsiprovider" : {
45903 "description" : "iscsi provider",
45904 "optional" : 1,
013dc89f
DM
45905 "type" : "string",
45906 "typetext" : "<string>"
44660702 45907 },
5370fa8c
TL
45908 "keyring" : {
45909 "description" : "Client keyring contents (for external clusters).",
45910 "optional" : 1,
45911 "type" : "string",
45912 "typetext" : "<string>"
45913 },
44660702 45914 "krbd" : {
e2d681b3 45915 "description" : "Always access rbd through krbd kernel module.",
44660702 45916 "optional" : 1,
013dc89f
DM
45917 "type" : "boolean",
45918 "typetext" : "<boolean>"
56122987 45919 },
4d47f125
TL
45920 "lio_tpg" : {
45921 "description" : "target portal group for Linux LIO targets",
45922 "optional" : 1,
45923 "type" : "string",
45924 "typetext" : "<string>"
45925 },
d2656385 45926 "master-pubkey" : {
5f4e66fe 45927 "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
45928 "optional" : 1,
45929 "type" : "string",
45930 "typetext" : "<string>"
45931 },
7af2edf9
TL
45932 "max-protected-backups" : {
45933 "default" : "Unlimited for users with Datastore.Allocate privilege, 5 for other users",
45934 "description" : "Maximal number of protected backups per guest. Use '-1' for unlimited.",
45935 "minimum" : -1,
45936 "optional" : 1,
45937 "type" : "integer",
45938 "typetext" : "<integer> (-1 - N)"
45939 },
44660702 45940 "maxfiles" : {
5f4e66fe 45941 "description" : "Deprecated: use 'prune-backups' instead. Maximal number of backup files per VM. Use '0' for unlimited.",
44660702
DM
45942 "minimum" : 0,
45943 "optional" : 1,
4bd7df8b 45944 "type" : "integer",
013dc89f 45945 "typetext" : "<integer> (0 - N)"
4bd7df8b
DM
45946 },
45947 "mkdir" : {
45948 "default" : "yes",
45949 "description" : "Create the directory if it doesn't exist.",
45950 "optional" : 1,
013dc89f
DM
45951 "type" : "boolean",
45952 "typetext" : "<boolean>"
7aacca6f 45953 },
44660702 45954 "monhost" : {
2489d6df 45955 "description" : "IP addresses of monitors (for external clusters).",
4bd7df8b 45956 "format" : "pve-storage-portal-dns-list",
44660702 45957 "optional" : 1,
013dc89f
DM
45958 "type" : "string",
45959 "typetext" : "<string>"
7aacca6f 45960 },
5c1699e5
TL
45961 "mountpoint" : {
45962 "description" : "mount point",
45963 "format" : "pve-storage-path",
45964 "optional" : 1,
45965 "type" : "string",
45966 "typetext" : "<string>"
45967 },
d2656385 45968 "namespace" : {
de786b48 45969 "description" : "Namespace.",
d2656385
TL
45970 "optional" : 1,
45971 "type" : "string",
45972 "typetext" : "<string>"
45973 },
5f4e66fe
TL
45974 "nocow" : {
45975 "default" : 0,
45976 "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.",
45977 "optional" : 1,
45978 "type" : "boolean",
45979 "typetext" : "<boolean>"
45980 },
44660702
DM
45981 "nodes" : {
45982 "description" : "List of cluster node names.",
45983 "format" : "pve-node-list",
45984 "optional" : 1,
013dc89f
DM
45985 "type" : "string",
45986 "typetext" : "<string>"
7aacca6f 45987 },
44660702
DM
45988 "nowritecache" : {
45989 "description" : "disable write caching on the target",
45990 "optional" : 1,
013dc89f
DM
45991 "type" : "boolean",
45992 "typetext" : "<boolean>"
44660702
DM
45993 },
45994 "options" : {
45995 "description" : "NFS mount options (see 'man nfs')",
45996 "format" : "pve-storage-options",
45997 "optional" : 1,
013dc89f
DM
45998 "type" : "string",
45999 "typetext" : "<string>"
44660702 46000 },
27a7acb2 46001 "password" : {
04d22a9f 46002 "description" : "Password for accessing the share/datastore.",
27a7acb2
DM
46003 "maxLength" : 256,
46004 "optional" : 1,
46005 "type" : "string",
46006 "typetext" : "<string>"
46007 },
44660702
DM
46008 "path" : {
46009 "description" : "File system path.",
46010 "format" : "pve-storage-path",
46011 "optional" : 1,
013dc89f
DM
46012 "type" : "string",
46013 "typetext" : "<string>"
44660702
DM
46014 },
46015 "pool" : {
46016 "description" : "Pool.",
46017 "optional" : 1,
013dc89f
DM
46018 "type" : "string",
46019 "typetext" : "<string>"
44660702 46020 },
4772952b
TL
46021 "port" : {
46022 "default" : 8007,
46023 "description" : "For non default port.",
46024 "maximum" : 65535,
46025 "minimum" : 1,
46026 "optional" : 1,
46027 "type" : "integer",
46028 "typetext" : "<integer> (1 - 65535)"
46029 },
44660702
DM
46030 "portal" : {
46031 "description" : "iSCSI portal (IP or DNS name with optional port).",
46032 "format" : "pve-storage-portal-dns",
46033 "optional" : 1,
013dc89f
DM
46034 "type" : "string",
46035 "typetext" : "<string>"
44660702 46036 },
5370fa8c
TL
46037 "preallocation" : {
46038 "default" : "metadata",
46039 "description" : "Preallocation mode for raw and qcow2 images. Using 'metadata' on raw images results in preallocation=off.",
46040 "enum" : [
46041 "off",
46042 "metadata",
46043 "falloc",
46044 "full"
46045 ],
46046 "optional" : 1,
46047 "type" : "string"
46048 },
739d4d64
TL
46049 "prune-backups" : {
46050 "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.",
46051 "format" : "prune-backups",
46052 "optional" : 1,
46053 "type" : "string",
4772952b 46054 "typetext" : "[keep-all=<1|0>] [,keep-daily=<N>] [,keep-hourly=<N>] [,keep-last=<N>] [,keep-monthly=<N>] [,keep-weekly=<N>] [,keep-yearly=<N>]"
739d4d64 46055 },
44660702
DM
46056 "saferemove" : {
46057 "description" : "Zero-out data when removing LVs.",
46058 "optional" : 1,
013dc89f
DM
46059 "type" : "boolean",
46060 "typetext" : "<boolean>"
44660702
DM
46061 },
46062 "saferemove_throughput" : {
46063 "description" : "Wipe throughput (cstream -t parameter value).",
46064 "optional" : 1,
013dc89f
DM
46065 "type" : "string",
46066 "typetext" : "<string>"
44660702
DM
46067 },
46068 "server" : {
46069 "description" : "Server IP or DNS name.",
46070 "format" : "pve-storage-server",
46071 "optional" : 1,
013dc89f
DM
46072 "type" : "string",
46073 "typetext" : "<string>"
44660702
DM
46074 },
46075 "server2" : {
46076 "description" : "Backup volfile server IP or DNS name.",
46077 "format" : "pve-storage-server",
46078 "optional" : 1,
46079 "requires" : "server",
013dc89f
DM
46080 "type" : "string",
46081 "typetext" : "<string>"
44660702 46082 },
27a7acb2
DM
46083 "share" : {
46084 "description" : "CIFS share.",
46085 "optional" : 1,
46086 "type" : "string",
46087 "typetext" : "<string>"
46088 },
44660702
DM
46089 "shared" : {
46090 "description" : "Mark storage as shared.",
46091 "optional" : 1,
013dc89f
DM
46092 "type" : "boolean",
46093 "typetext" : "<boolean>"
44660702 46094 },
27a7acb2 46095 "smbversion" : {
5370fa8c
TL
46096 "default" : "default",
46097 "description" : "SMB protocol version. 'default' if not set, negotiates the highest SMB2+ version supported by both the client and server.",
5da3d723 46098 "enum" : [
5370fa8c 46099 "default",
5da3d723
TL
46100 "2.0",
46101 "2.1",
5370fa8c
TL
46102 "3",
46103 "3.0",
46104 "3.11"
5da3d723 46105 ],
27a7acb2 46106 "optional" : 1,
5da3d723 46107 "type" : "string"
27a7acb2 46108 },
44660702
DM
46109 "sparse" : {
46110 "description" : "use sparse volumes",
46111 "optional" : 1,
013dc89f
DM
46112 "type" : "boolean",
46113 "typetext" : "<boolean>"
44660702
DM
46114 },
46115 "storage" : {
46116 "description" : "The storage identifier.",
46117 "format" : "pve-storage-id",
013dc89f
DM
46118 "type" : "string",
46119 "typetext" : "<string>"
44660702 46120 },
5da3d723
TL
46121 "subdir" : {
46122 "description" : "Subdir to mount.",
46123 "format" : "pve-storage-path",
46124 "optional" : 1,
46125 "type" : "string",
46126 "typetext" : "<string>"
46127 },
4bd7df8b
DM
46128 "tagged_only" : {
46129 "description" : "Only use logical volumes tagged with 'pve-vm-ID'.",
46130 "optional" : 1,
013dc89f
DM
46131 "type" : "boolean",
46132 "typetext" : "<boolean>"
4bd7df8b 46133 },
44660702
DM
46134 "target" : {
46135 "description" : "iSCSI target.",
46136 "optional" : 1,
013dc89f
DM
46137 "type" : "string",
46138 "typetext" : "<string>"
44660702
DM
46139 },
46140 "thinpool" : {
46141 "description" : "LVM thin pool LV name.",
46142 "format" : "pve-storage-vgname",
46143 "optional" : 1,
013dc89f
DM
46144 "type" : "string",
46145 "typetext" : "<string>"
44660702
DM
46146 },
46147 "transport" : {
46148 "description" : "Gluster transport: tcp or rdma",
46149 "enum" : [
46150 "tcp",
46151 "rdma",
46152 "unix"
7aacca6f 46153 ],
44660702
DM
46154 "optional" : 1,
46155 "type" : "string"
56122987 46156 },
44660702
DM
46157 "type" : {
46158 "description" : "Storage type.",
46159 "enum" : [
5f4e66fe 46160 "btrfs",
5da3d723 46161 "cephfs",
27a7acb2 46162 "cifs",
44660702 46163 "dir",
44660702
DM
46164 "glusterfs",
46165 "iscsi",
46166 "iscsidirect",
46167 "lvm",
46168 "lvmthin",
46169 "nfs",
c5aa7e14 46170 "pbs",
44660702 46171 "rbd",
44660702
DM
46172 "zfs",
46173 "zfspool"
46174 ],
46175 "type" : "string"
56122987 46176 },
44660702
DM
46177 "username" : {
46178 "description" : "RBD Id.",
46179 "optional" : 1,
013dc89f
DM
46180 "type" : "string",
46181 "typetext" : "<string>"
7aacca6f 46182 },
44660702
DM
46183 "vgname" : {
46184 "description" : "Volume group name.",
46185 "format" : "pve-storage-vgname",
46186 "optional" : 1,
013dc89f
DM
46187 "type" : "string",
46188 "typetext" : "<string>"
44660702
DM
46189 },
46190 "volume" : {
46191 "description" : "Glusterfs Volume.",
46192 "optional" : 1,
013dc89f
DM
46193 "type" : "string",
46194 "typetext" : "<string>"
44660702
DM
46195 }
46196 },
46197 "type" : "object"
46198 },
46199 "permissions" : {
46200 "check" : [
46201 "perm",
46202 "/storage",
46203 [
46204 "Datastore.Allocate"
46205 ]
46206 ]
56122987 46207 },
44660702
DM
46208 "protected" : 1,
46209 "returns" : {
4772952b
TL
46210 "properties" : {
46211 "config" : {
46212 "additionalProperties" : 1,
46213 "description" : "Partial, possible server generated, configuration properties.",
46214 "optional" : 1,
46215 "properties" : {
46216 "encryption-key" : {
46217 "description" : "The, possible auto-generated, encryption-key.",
46218 "optional" : 1,
46219 "type" : "string"
46220 }
46221 },
46222 "type" : "object"
46223 },
46224 "storage" : {
46225 "description" : "The ID of the created storage.",
46226 "type" : "string"
46227 },
46228 "type" : {
46229 "description" : "The type of the created storage.",
46230 "enum" : [
5f4e66fe 46231 "btrfs",
4772952b
TL
46232 "cephfs",
46233 "cifs",
46234 "dir",
4772952b
TL
46235 "glusterfs",
46236 "iscsi",
46237 "iscsidirect",
46238 "lvm",
46239 "lvmthin",
46240 "nfs",
46241 "pbs",
46242 "rbd",
46243 "zfs",
46244 "zfspool"
46245 ],
46246 "type" : "string"
46247 }
46248 },
46249 "type" : "object"
44660702
DM
46250 }
46251 }
46252 },
46253 "leaf" : 0,
46254 "path" : "/storage",
46255 "text" : "storage"
46256 },
46257 {
46258 "children" : [
46259 {
56122987
DM
46260 "children" : [
46261 {
bb4c8cf8
TL
46262 "children" : [
46263 {
46264 "info" : {
46265 "GET" : {
e9cd3bd4 46266 "allowtoken" : 1,
bb4c8cf8
TL
46267 "description" : "Get user TFA types (Personal and Realm).",
46268 "method" : "GET",
46269 "name" : "read_user_tfa_type",
46270 "parameters" : {
46271 "additionalProperties" : 0,
46272 "properties" : {
5370fa8c
TL
46273 "multiple" : {
46274 "default" : 0,
46275 "description" : "Request all entries as an array.",
46276 "optional" : 1,
46277 "type" : "boolean",
46278 "typetext" : "<boolean>"
46279 },
bb4c8cf8
TL
46280 "userid" : {
46281 "description" : "User ID",
46282 "format" : "pve-userid",
46283 "maxLength" : 64,
46284 "type" : "string",
46285 "typetext" : "<string>"
46286 }
46287 }
46288 },
46289 "permissions" : {
46290 "check" : [
46291 "or",
46292 [
46293 "userid-param",
46294 "self"
46295 ],
46296 [
46297 "userid-group",
46298 [
46299 "User.Modify",
46300 "Sys.Audit"
46301 ]
46302 ]
46303 ]
46304 },
46305 "protected" : 1,
46306 "returns" : {
46307 "additionalProperties" : 0,
46308 "properties" : {
46309 "realm" : {
46310 "description" : "The type of TFA the users realm has set, if any.",
46311 "enum" : [
46312 "oath",
46313 "yubico"
46314 ],
46315 "optional" : 1,
46316 "type" : "string"
46317 },
5370fa8c
TL
46318 "types" : {
46319 "description" : "Array of the user configured TFA types, if any. Only available if 'multiple' was not passed.",
46320 "items" : {
46321 "description" : "A TFA type.",
46322 "enum" : [
46323 "totp",
46324 "u2f",
46325 "yubico",
46326 "webauthn",
46327 "recovedry"
46328 ],
46329 "type" : "string"
46330 },
46331 "optional" : 1,
46332 "type" : "array"
46333 },
bb4c8cf8 46334 "user" : {
5370fa8c 46335 "description" : "The type of TFA the user has set, if any. Only set if 'multiple' was not passed.",
bb4c8cf8
TL
46336 "enum" : [
46337 "oath",
46338 "u2f"
46339 ],
46340 "optional" : 1,
46341 "type" : "string"
46342 }
46343 },
46344 "type" : "object"
46345 }
46346 }
46347 },
46348 "leaf" : 1,
46349 "path" : "/access/users/{userid}/tfa",
46350 "text" : "tfa"
e9cd3bd4
TL
46351 },
46352 {
46353 "children" : [
46354 {
46355 "info" : {
46356 "DELETE" : {
46357 "allowtoken" : 1,
46358 "description" : "Remove API token for a specific user.",
46359 "method" : "DELETE",
46360 "name" : "remove_token",
46361 "parameters" : {
46362 "additionalProperties" : 0,
46363 "properties" : {
46364 "tokenid" : {
46365 "description" : "User-specific token identifier.",
46366 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
46367 "type" : "string"
46368 },
46369 "userid" : {
46370 "description" : "User ID",
46371 "format" : "pve-userid",
46372 "maxLength" : 64,
46373 "type" : "string",
46374 "typetext" : "<string>"
46375 }
46376 }
46377 },
46378 "permissions" : {
46379 "check" : [
46380 "or",
46381 [
46382 "userid-param",
46383 "self"
46384 ],
46385 [
de786b48 46386 "userid-group",
e9cd3bd4
TL
46387 [
46388 "User.Modify"
46389 ]
46390 ]
46391 ]
46392 },
46393 "protected" : 1,
46394 "returns" : {
c5aa7e14
TL
46395 "type" : "null"
46396 }
46397 },
46398 "GET" : {
46399 "allowtoken" : 1,
46400 "description" : "Get specific API token information.",
46401 "method" : "GET",
46402 "name" : "read_token",
46403 "parameters" : {
46404 "additionalProperties" : 0,
46405 "properties" : {
46406 "tokenid" : {
46407 "description" : "User-specific token identifier.",
46408 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
46409 "type" : "string"
46410 },
46411 "userid" : {
46412 "description" : "User ID",
46413 "format" : "pve-userid",
46414 "maxLength" : 64,
46415 "type" : "string",
46416 "typetext" : "<string>"
46417 }
46418 }
46419 },
46420 "permissions" : {
46421 "check" : [
46422 "or",
46423 [
46424 "userid-param",
46425 "self"
46426 ],
46427 [
de786b48 46428 "userid-group",
c5aa7e14
TL
46429 [
46430 "User.Modify"
46431 ]
46432 ]
46433 ]
46434 },
46435 "returns" : {
46436 "properties" : {
46437 "comment" : {
46438 "optional" : 1,
46439 "type" : "string"
46440 },
46441 "expire" : {
46442 "default" : "same as user",
46443 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46444 "minimum" : 0,
46445 "optional" : 1,
46446 "type" : "integer"
46447 },
46448 "privsep" : {
46449 "default" : 1,
46450 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46451 "optional" : 1,
46452 "type" : "boolean"
46453 }
46454 },
46455 "type" : "object"
46456 }
46457 },
46458 "POST" : {
46459 "allowtoken" : 1,
46460 "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!",
46461 "method" : "POST",
46462 "name" : "generate_token",
46463 "parameters" : {
46464 "additionalProperties" : 0,
46465 "properties" : {
46466 "comment" : {
46467 "optional" : 1,
46468 "type" : "string",
46469 "typetext" : "<string>"
46470 },
46471 "expire" : {
46472 "default" : "same as user",
46473 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46474 "minimum" : 0,
46475 "optional" : 1,
46476 "type" : "integer",
46477 "typetext" : "<integer> (0 - N)"
46478 },
46479 "privsep" : {
46480 "default" : 1,
46481 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46482 "optional" : 1,
46483 "type" : "boolean",
46484 "typetext" : "<boolean>"
46485 },
46486 "tokenid" : {
46487 "description" : "User-specific token identifier.",
46488 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
46489 "type" : "string"
46490 },
46491 "userid" : {
46492 "description" : "User ID",
46493 "format" : "pve-userid",
46494 "maxLength" : 64,
46495 "type" : "string",
46496 "typetext" : "<string>"
46497 }
46498 }
46499 },
46500 "permissions" : {
46501 "check" : [
46502 "or",
46503 [
46504 "userid-param",
46505 "self"
46506 ],
46507 [
de786b48 46508 "userid-group",
c5aa7e14
TL
46509 [
46510 "User.Modify"
46511 ]
46512 ]
46513 ]
46514 },
46515 "protected" : 1,
46516 "returns" : {
e9cd3bd4
TL
46517 "additionalProperties" : 0,
46518 "properties" : {
c5aa7e14
TL
46519 "full-tokenid" : {
46520 "description" : "The full token id.",
46521 "format_description" : "<userid>!<tokenid>",
e9cd3bd4
TL
46522 "type" : "string"
46523 },
e9cd3bd4
TL
46524 "info" : {
46525 "properties" : {
46526 "comment" : {
46527 "optional" : 1,
46528 "type" : "string"
46529 },
46530 "expire" : {
46531 "default" : "same as user",
46532 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46533 "minimum" : 0,
46534 "optional" : 1,
46535 "type" : "integer"
46536 },
46537 "privsep" : {
46538 "default" : 1,
46539 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46540 "optional" : 1,
46541 "type" : "boolean"
46542 }
46543 },
46544 "type" : "object"
46545 },
46546 "value" : {
46547 "description" : "API token value used for authentication.",
46548 "type" : "string"
46549 }
46550 },
46551 "type" : "object"
46552 }
46553 },
46554 "PUT" : {
46555 "allowtoken" : 1,
46556 "description" : "Update API token for a specific user.",
46557 "method" : "PUT",
46558 "name" : "update_token_info",
46559 "parameters" : {
46560 "additionalProperties" : 0,
46561 "properties" : {
46562 "comment" : {
46563 "optional" : 1,
46564 "type" : "string",
46565 "typetext" : "<string>"
46566 },
46567 "expire" : {
46568 "default" : "same as user",
46569 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46570 "minimum" : 0,
46571 "optional" : 1,
46572 "type" : "integer",
46573 "typetext" : "<integer> (0 - N)"
46574 },
46575 "privsep" : {
46576 "default" : 1,
46577 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46578 "optional" : 1,
46579 "type" : "boolean",
46580 "typetext" : "<boolean>"
46581 },
46582 "tokenid" : {
46583 "description" : "User-specific token identifier.",
46584 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
46585 "type" : "string"
46586 },
46587 "userid" : {
46588 "description" : "User ID",
46589 "format" : "pve-userid",
46590 "maxLength" : 64,
46591 "type" : "string",
46592 "typetext" : "<string>"
46593 }
46594 }
46595 },
46596 "permissions" : {
46597 "check" : [
46598 "or",
46599 [
46600 "userid-param",
46601 "self"
46602 ],
46603 [
de786b48 46604 "userid-group",
e9cd3bd4
TL
46605 [
46606 "User.Modify"
46607 ]
46608 ]
46609 ]
46610 },
46611 "protected" : 1,
46612 "returns" : {
46613 "description" : "Updated token information.",
46614 "properties" : {
46615 "comment" : {
46616 "optional" : 1,
46617 "type" : "string"
46618 },
46619 "expire" : {
46620 "default" : "same as user",
46621 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46622 "minimum" : 0,
46623 "optional" : 1,
46624 "type" : "integer"
46625 },
46626 "privsep" : {
46627 "default" : 1,
46628 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46629 "optional" : 1,
46630 "type" : "boolean"
46631 }
46632 },
46633 "type" : "object"
46634 }
46635 }
46636 },
46637 "leaf" : 1,
46638 "path" : "/access/users/{userid}/token/{tokenid}",
46639 "text" : "{tokenid}"
46640 }
46641 ],
46642 "info" : {
46643 "GET" : {
46644 "allowtoken" : 1,
46645 "description" : "Get user API tokens.",
46646 "method" : "GET",
46647 "name" : "token_index",
46648 "parameters" : {
46649 "additionalProperties" : 0,
46650 "properties" : {
46651 "userid" : {
46652 "description" : "User ID",
46653 "format" : "pve-userid",
46654 "maxLength" : 64,
46655 "type" : "string",
46656 "typetext" : "<string>"
46657 }
46658 }
46659 },
46660 "permissions" : {
46661 "check" : [
46662 "or",
46663 [
46664 "userid-param",
46665 "self"
46666 ],
46667 [
de786b48 46668 "userid-group",
e9cd3bd4
TL
46669 [
46670 "User.Modify"
46671 ]
46672 ]
46673 ]
46674 },
46675 "returns" : {
46676 "items" : {
46677 "properties" : {
46678 "comment" : {
46679 "optional" : 1,
46680 "type" : "string"
46681 },
46682 "expire" : {
46683 "default" : "same as user",
46684 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46685 "minimum" : 0,
46686 "optional" : 1,
46687 "type" : "integer"
46688 },
46689 "privsep" : {
46690 "default" : 1,
46691 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46692 "optional" : 1,
46693 "type" : "boolean"
46694 },
46695 "tokenid" : {
46696 "description" : "User-specific token identifier.",
46697 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
46698 "type" : "string"
46699 }
46700 },
46701 "type" : "object"
46702 },
46703 "links" : [
46704 {
46705 "href" : "{tokenid}",
46706 "rel" : "child"
46707 }
46708 ],
46709 "type" : "array"
46710 }
46711 }
46712 },
46713 "leaf" : 0,
46714 "path" : "/access/users/{userid}/token",
46715 "text" : "token"
bb4c8cf8
TL
46716 }
46717 ],
56122987 46718 "info" : {
44660702 46719 "DELETE" : {
e9cd3bd4 46720 "allowtoken" : 1,
44660702
DM
46721 "description" : "Delete user.",
46722 "method" : "DELETE",
46723 "name" : "delete_user",
56122987 46724 "parameters" : {
7aacca6f 46725 "additionalProperties" : 0,
56122987 46726 "properties" : {
56122987 46727 "userid" : {
56122987
DM
46728 "description" : "User ID",
46729 "format" : "pve-userid",
44660702 46730 "maxLength" : 64,
013dc89f
DM
46731 "type" : "string",
46732 "typetext" : "<string>"
56122987 46733 }
7aacca6f 46734 }
56122987 46735 },
56122987
DM
46736 "permissions" : {
46737 "check" : [
44660702 46738 "and",
56122987 46739 [
44660702
DM
46740 "userid-param",
46741 "Realm.AllocateUser"
56122987 46742 ],
44660702
DM
46743 [
46744 "userid-group",
46745 [
46746 "User.Modify"
46747 ]
46748 ]
56122987 46749 ]
7aacca6f 46750 },
44660702 46751 "protected" : 1,
56122987
DM
46752 "returns" : {
46753 "type" : "null"
44660702 46754 }
7aacca6f 46755 },
44660702 46756 "GET" : {
e9cd3bd4 46757 "allowtoken" : 1,
44660702
DM
46758 "description" : "Get user configuration.",
46759 "method" : "GET",
46760 "name" : "read_user",
56122987
DM
46761 "parameters" : {
46762 "additionalProperties" : 0,
46763 "properties" : {
46764 "userid" : {
44660702 46765 "description" : "User ID",
56122987 46766 "format" : "pve-userid",
44660702 46767 "maxLength" : 64,
013dc89f
DM
46768 "type" : "string",
46769 "typetext" : "<string>"
56122987
DM
46770 }
46771 }
46772 },
56122987
DM
46773 "permissions" : {
46774 "check" : [
44660702 46775 "userid-group",
56122987 46776 [
44660702
DM
46777 "User.Modify",
46778 "Sys.Audit"
56122987
DM
46779 ]
46780 ]
46781 },
56122987 46782 "returns" : {
7aacca6f 46783 "additionalProperties" : 0,
56122987 46784 "properties" : {
44660702
DM
46785 "comment" : {
46786 "optional" : 1,
46787 "type" : "string"
56122987 46788 },
44660702 46789 "email" : {
e2d681b3 46790 "format" : "email-opt",
44660702
DM
46791 "optional" : 1,
46792 "type" : "string"
7aacca6f
DM
46793 },
46794 "enable" : {
e2d681b3
TL
46795 "default" : 1,
46796 "description" : "Enable the account (default). You can set this to '0' to disable the account",
46797 "optional" : 1,
7aacca6f
DM
46798 "type" : "boolean"
46799 },
44660702 46800 "expire" : {
e2d681b3
TL
46801 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
46802 "minimum" : 0,
44660702
DM
46803 "optional" : 1,
46804 "type" : "integer"
46805 },
46806 "firstname" : {
56122987
DM
46807 "optional" : 1,
46808 "type" : "string"
46809 },
44660702 46810 "groups" : {
e9cd3bd4
TL
46811 "items" : {
46812 "format" : "pve-groupid",
46813 "type" : "string"
46814 },
46815 "optional" : 1,
44660702 46816 "type" : "array"
56122987 46817 },
44660702 46818 "keys" : {
e2d681b3 46819 "description" : "Keys for two factor auth (yubico).",
44660702
DM
46820 "optional" : 1,
46821 "type" : "string"
7aacca6f 46822 },
44660702
DM
46823 "lastname" : {
46824 "optional" : 1,
46825 "type" : "string"
e9cd3bd4
TL
46826 },
46827 "tokens" : {
c30bb419
TL
46828 "additionalProperties" : {
46829 "properties" : {
46830 "comment" : {
46831 "optional" : 1,
46832 "type" : "string"
46833 },
46834 "expire" : {
46835 "default" : "same as user",
46836 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
46837 "minimum" : 0,
46838 "optional" : 1,
46839 "type" : "integer"
46840 },
46841 "privsep" : {
46842 "default" : 1,
46843 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
46844 "optional" : 1,
46845 "type" : "boolean"
46846 }
46847 },
46848 "type" : "object"
46849 },
e9cd3bd4
TL
46850 "optional" : 1,
46851 "type" : "object"
56122987 46852 }
e2d681b3
TL
46853 },
46854 "type" : "object"
44660702
DM
46855 }
46856 },
46857 "PUT" : {
e9cd3bd4 46858 "allowtoken" : 1,
44660702
DM
46859 "description" : "Update user configuration.",
46860 "method" : "PUT",
46861 "name" : "update_user",
56122987 46862 "parameters" : {
44660702 46863 "additionalProperties" : 0,
56122987 46864 "properties" : {
44660702
DM
46865 "append" : {
46866 "optional" : 1,
46867 "requires" : "groups",
013dc89f
DM
46868 "type" : "boolean",
46869 "typetext" : "<boolean>"
44660702
DM
46870 },
46871 "comment" : {
46872 "optional" : 1,
013dc89f
DM
46873 "type" : "string",
46874 "typetext" : "<string>"
44660702
DM
46875 },
46876 "email" : {
46877 "format" : "email-opt",
46878 "optional" : 1,
013dc89f
DM
46879 "type" : "string",
46880 "typetext" : "<string>"
44660702
DM
46881 },
46882 "enable" : {
e2d681b3
TL
46883 "default" : 1,
46884 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 46885 "optional" : 1,
013dc89f
DM
46886 "type" : "boolean",
46887 "typetext" : "<boolean>"
44660702
DM
46888 },
46889 "expire" : {
46890 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
46891 "minimum" : 0,
46892 "optional" : 1,
4bd7df8b 46893 "type" : "integer",
013dc89f 46894 "typetext" : "<integer> (0 - N)"
44660702
DM
46895 },
46896 "firstname" : {
46897 "optional" : 1,
013dc89f
DM
46898 "type" : "string",
46899 "typetext" : "<string>"
44660702
DM
46900 },
46901 "groups" : {
46902 "format" : "pve-groupid-list",
46903 "optional" : 1,
013dc89f
DM
46904 "type" : "string",
46905 "typetext" : "<string>"
44660702
DM
46906 },
46907 "keys" : {
46908 "description" : "Keys for two factor auth (yubico).",
46909 "optional" : 1,
013dc89f
DM
46910 "type" : "string",
46911 "typetext" : "<string>"
44660702
DM
46912 },
46913 "lastname" : {
46914 "optional" : 1,
013dc89f
DM
46915 "type" : "string",
46916 "typetext" : "<string>"
44660702 46917 },
56122987 46918 "userid" : {
56122987
DM
46919 "description" : "User ID",
46920 "format" : "pve-userid",
44660702 46921 "maxLength" : 64,
013dc89f
DM
46922 "type" : "string",
46923 "typetext" : "<string>"
56122987 46924 }
44660702 46925 }
56122987 46926 },
56122987
DM
46927 "permissions" : {
46928 "check" : [
46929 "userid-group",
46930 [
44660702
DM
46931 "User.Modify"
46932 ],
46933 "groups_param",
c30bb419 46934 "update"
56122987
DM
46935 ]
46936 },
44660702
DM
46937 "protected" : 1,
46938 "returns" : {
46939 "type" : "null"
46940 }
56122987
DM
46941 }
46942 },
bb4c8cf8 46943 "leaf" : 0,
44660702 46944 "path" : "/access/users/{userid}",
7aacca6f 46945 "text" : "{userid}"
56122987 46946 }
7aacca6f 46947 ],
56122987 46948 "info" : {
7aacca6f 46949 "GET" : {
e9cd3bd4 46950 "allowtoken" : 1,
44660702
DM
46951 "description" : "User index.",
46952 "method" : "GET",
7aacca6f 46953 "name" : "index",
56122987 46954 "parameters" : {
44660702
DM
46955 "additionalProperties" : 0,
46956 "properties" : {
46957 "enabled" : {
46958 "description" : "Optional filter for enable property.",
46959 "optional" : 1,
013dc89f
DM
46960 "type" : "boolean",
46961 "typetext" : "<boolean>"
e9cd3bd4
TL
46962 },
46963 "full" : {
46964 "default" : 0,
46965 "description" : "Include group and token information.",
46966 "optional" : 1,
46967 "type" : "boolean",
46968 "typetext" : "<boolean>"
44660702
DM
46969 }
46970 }
46971 },
46972 "permissions" : {
46973 "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.",
46974 "user" : "all"
56122987 46975 },
7aacca6f 46976 "returns" : {
7aacca6f
DM
46977 "items" : {
46978 "properties" : {
e2d681b3
TL
46979 "comment" : {
46980 "optional" : 1,
46981 "type" : "string"
46982 },
46983 "email" : {
46984 "format" : "email-opt",
46985 "optional" : 1,
46986 "type" : "string"
46987 },
46988 "enable" : {
46989 "default" : 1,
46990 "description" : "Enable the account (default). You can set this to '0' to disable the account",
46991 "optional" : 1,
46992 "type" : "boolean"
46993 },
46994 "expire" : {
46995 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
46996 "minimum" : 0,
46997 "optional" : 1,
46998 "type" : "integer"
46999 },
47000 "firstname" : {
47001 "optional" : 1,
47002 "type" : "string"
47003 },
e9cd3bd4
TL
47004 "groups" : {
47005 "format" : "pve-groupid-list",
47006 "optional" : 1,
47007 "type" : "string"
47008 },
e2d681b3
TL
47009 "keys" : {
47010 "description" : "Keys for two factor auth (yubico).",
47011 "optional" : 1,
47012 "type" : "string"
47013 },
47014 "lastname" : {
47015 "optional" : 1,
47016 "type" : "string"
47017 },
34f3e481
TL
47018 "realm-type" : {
47019 "description" : "The type of the users realm",
47020 "format" : "pve-realm",
47021 "optional" : 1,
47022 "type" : "string"
47023 },
e9cd3bd4
TL
47024 "tokens" : {
47025 "items" : {
47026 "properties" : {
47027 "comment" : {
47028 "optional" : 1,
47029 "type" : "string"
47030 },
47031 "expire" : {
47032 "default" : "same as user",
47033 "description" : "API token expiration date (seconds since epoch). '0' means no expiration date.",
47034 "minimum" : 0,
47035 "optional" : 1,
47036 "type" : "integer"
47037 },
47038 "privsep" : {
47039 "default" : 1,
47040 "description" : "Restrict API token privileges with separate ACLs (default), or give full privileges of corresponding user.",
47041 "optional" : 1,
47042 "type" : "boolean"
47043 },
47044 "tokenid" : {
47045 "description" : "User-specific token identifier.",
47046 "pattern" : "(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)",
47047 "type" : "string"
47048 }
47049 },
47050 "type" : "object"
47051 },
47052 "optional" : 1,
47053 "type" : "array"
47054 },
44660702 47055 "userid" : {
e2d681b3
TL
47056 "description" : "User ID",
47057 "format" : "pve-userid",
47058 "maxLength" : 64,
7aacca6f
DM
47059 "type" : "string"
47060 }
47061 },
47062 "type" : "object"
47063 },
44660702
DM
47064 "links" : [
47065 {
47066 "href" : "{userid}",
47067 "rel" : "child"
47068 }
47069 ],
7aacca6f
DM
47070 "type" : "array"
47071 }
47072 },
47073 "POST" : {
e9cd3bd4 47074 "allowtoken" : 1,
44660702 47075 "description" : "Create new user.",
7aacca6f 47076 "method" : "POST",
44660702 47077 "name" : "create_user",
56122987 47078 "parameters" : {
7aacca6f
DM
47079 "additionalProperties" : 0,
47080 "properties" : {
44660702
DM
47081 "comment" : {
47082 "optional" : 1,
013dc89f
DM
47083 "type" : "string",
47084 "typetext" : "<string>"
7aacca6f 47085 },
44660702
DM
47086 "email" : {
47087 "format" : "email-opt",
47088 "optional" : 1,
013dc89f
DM
47089 "type" : "string",
47090 "typetext" : "<string>"
44660702
DM
47091 },
47092 "enable" : {
47093 "default" : 1,
e2d681b3 47094 "description" : "Enable the account (default). You can set this to '0' to disable the account",
44660702 47095 "optional" : 1,
013dc89f
DM
47096 "type" : "boolean",
47097 "typetext" : "<boolean>"
44660702
DM
47098 },
47099 "expire" : {
47100 "description" : "Account expiration date (seconds since epoch). '0' means no expiration date.",
47101 "minimum" : 0,
47102 "optional" : 1,
4bd7df8b 47103 "type" : "integer",
013dc89f 47104 "typetext" : "<integer> (0 - N)"
44660702
DM
47105 },
47106 "firstname" : {
47107 "optional" : 1,
013dc89f
DM
47108 "type" : "string",
47109 "typetext" : "<string>"
44660702
DM
47110 },
47111 "groups" : {
47112 "format" : "pve-groupid-list",
47113 "optional" : 1,
013dc89f
DM
47114 "type" : "string",
47115 "typetext" : "<string>"
44660702
DM
47116 },
47117 "keys" : {
47118 "description" : "Keys for two factor auth (yubico).",
47119 "optional" : 1,
013dc89f
DM
47120 "type" : "string",
47121 "typetext" : "<string>"
44660702
DM
47122 },
47123 "lastname" : {
7aacca6f 47124 "optional" : 1,
013dc89f
DM
47125 "type" : "string",
47126 "typetext" : "<string>"
44660702
DM
47127 },
47128 "password" : {
47129 "description" : "Initial password.",
47130 "maxLength" : 64,
47131 "minLength" : 5,
47132 "optional" : 1,
013dc89f
DM
47133 "type" : "string",
47134 "typetext" : "<string>"
44660702
DM
47135 },
47136 "userid" : {
47137 "description" : "User ID",
47138 "format" : "pve-userid",
47139 "maxLength" : 64,
013dc89f
DM
47140 "type" : "string",
47141 "typetext" : "<string>"
56122987 47142 }
7aacca6f 47143 }
56122987 47144 },
44660702
DM
47145 "permissions" : {
47146 "check" : [
47147 "and",
47148 [
47149 "userid-param",
47150 "Realm.AllocateUser"
47151 ],
47152 [
47153 "userid-group",
47154 [
47155 "User.Modify"
47156 ],
47157 "groups_param",
c30bb419 47158 "create"
44660702
DM
47159 ]
47160 ],
47161 "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."
47162 },
47163 "protected" : 1,
47164 "returns" : {
47165 "type" : "null"
47166 }
56122987
DM
47167 }
47168 },
44660702
DM
47169 "leaf" : 0,
47170 "path" : "/access/users",
47171 "text" : "users"
47172 },
47173 {
56122987
DM
47174 "children" : [
47175 {
56122987
DM
47176 "info" : {
47177 "DELETE" : {
e9cd3bd4 47178 "allowtoken" : 1,
44660702
DM
47179 "description" : "Delete group.",
47180 "method" : "DELETE",
47181 "name" : "delete_group",
47182 "parameters" : {
47183 "additionalProperties" : 0,
47184 "properties" : {
47185 "groupid" : {
47186 "format" : "pve-groupid",
013dc89f
DM
47187 "type" : "string",
47188 "typetext" : "<string>"
44660702
DM
47189 }
47190 }
47191 },
7aacca6f
DM
47192 "permissions" : {
47193 "check" : [
47194 "perm",
47195 "/access/groups",
47196 [
47197 "Group.Allocate"
47198 ]
47199 ]
47200 },
7aacca6f 47201 "protected" : 1,
7aacca6f
DM
47202 "returns" : {
47203 "type" : "null"
44660702 47204 }
7aacca6f 47205 },
44660702 47206 "GET" : {
e9cd3bd4 47207 "allowtoken" : 1,
44660702
DM
47208 "description" : "Get group configuration.",
47209 "method" : "GET",
47210 "name" : "read_group",
47211 "parameters" : {
47212 "additionalProperties" : 0,
47213 "properties" : {
47214 "groupid" : {
47215 "format" : "pve-groupid",
013dc89f
DM
47216 "type" : "string",
47217 "typetext" : "<string>"
44660702
DM
47218 }
47219 }
56122987 47220 },
7aacca6f
DM
47221 "permissions" : {
47222 "check" : [
47223 "perm",
47224 "/access/groups",
47225 [
44660702 47226 "Sys.Audit",
7aacca6f 47227 "Group.Allocate"
44660702
DM
47228 ],
47229 "any",
47230 1
7aacca6f
DM
47231 ]
47232 },
7aacca6f 47233 "returns" : {
44660702 47234 "additionalProperties" : 0,
7aacca6f
DM
47235 "properties" : {
47236 "comment" : {
44660702
DM
47237 "optional" : 1,
47238 "type" : "string"
7aacca6f
DM
47239 },
47240 "members" : {
47241 "items" : {
e2d681b3
TL
47242 "description" : "User ID",
47243 "format" : "pve-userid",
47244 "maxLength" : 64,
7aacca6f
DM
47245 "type" : "string"
47246 },
47247 "type" : "array"
47248 }
47249 },
44660702
DM
47250 "type" : "object"
47251 }
47252 },
47253 "PUT" : {
e9cd3bd4 47254 "allowtoken" : 1,
44660702
DM
47255 "description" : "Update group data.",
47256 "method" : "PUT",
47257 "name" : "update_group",
56122987 47258 "parameters" : {
44660702 47259 "additionalProperties" : 0,
56122987 47260 "properties" : {
44660702
DM
47261 "comment" : {
47262 "optional" : 1,
013dc89f
DM
47263 "type" : "string",
47264 "typetext" : "<string>"
44660702 47265 },
56122987
DM
47266 "groupid" : {
47267 "format" : "pve-groupid",
013dc89f
DM
47268 "type" : "string",
47269 "typetext" : "<string>"
56122987 47270 }
44660702 47271 }
56122987 47272 },
56122987
DM
47273 "permissions" : {
47274 "check" : [
47275 "perm",
47276 "/access/groups",
47277 [
47278 "Group.Allocate"
44660702 47279 ]
56122987
DM
47280 ]
47281 },
44660702
DM
47282 "protected" : 1,
47283 "returns" : {
47284 "type" : "null"
47285 }
7aacca6f
DM
47286 }
47287 },
7aacca6f 47288 "leaf" : 1,
44660702
DM
47289 "path" : "/access/groups/{groupid}",
47290 "text" : "{groupid}"
47291 }
47292 ],
47293 "info" : {
47294 "GET" : {
e9cd3bd4 47295 "allowtoken" : 1,
44660702
DM
47296 "description" : "Group index.",
47297 "method" : "GET",
47298 "name" : "index",
47299 "parameters" : {
47300 "additionalProperties" : 0
47301 },
47302 "permissions" : {
47303 "description" : "The returned list is restricted to groups where you have 'User.Modify', 'Sys.Audit' or 'Group.Allocate' permissions on /access/groups/<group>.",
47304 "user" : "all"
47305 },
47306 "returns" : {
47307 "items" : {
47308 "properties" : {
e2d681b3
TL
47309 "comment" : {
47310 "optional" : 1,
47311 "type" : "string"
47312 },
44660702 47313 "groupid" : {
e2d681b3 47314 "format" : "pve-groupid",
44660702 47315 "type" : "string"
e9cd3bd4
TL
47316 },
47317 "users" : {
47318 "description" : "list of users which form this group",
47319 "format" : "pve-userid-list",
47320 "optional" : 1,
47321 "type" : "string"
44660702
DM
47322 }
47323 },
47324 "type" : "object"
47325 },
47326 "links" : [
47327 {
47328 "href" : "{groupid}",
47329 "rel" : "child"
47330 }
47331 ],
47332 "type" : "array"
47333 }
47334 },
47335 "POST" : {
e9cd3bd4 47336 "allowtoken" : 1,
44660702
DM
47337 "description" : "Create new group.",
47338 "method" : "POST",
47339 "name" : "create_group",
47340 "parameters" : {
47341 "additionalProperties" : 0,
47342 "properties" : {
47343 "comment" : {
47344 "optional" : 1,
013dc89f
DM
47345 "type" : "string",
47346 "typetext" : "<string>"
44660702
DM
47347 },
47348 "groupid" : {
47349 "format" : "pve-groupid",
013dc89f
DM
47350 "type" : "string",
47351 "typetext" : "<string>"
44660702
DM
47352 }
47353 }
47354 },
47355 "permissions" : {
47356 "check" : [
47357 "perm",
47358 "/access/groups",
47359 [
47360 "Group.Allocate"
47361 ]
47362 ]
47363 },
47364 "protected" : 1,
47365 "returns" : {
47366 "type" : "null"
47367 }
7aacca6f 47368 }
44660702 47369 },
7aacca6f 47370 "leaf" : 0,
44660702
DM
47371 "path" : "/access/groups",
47372 "text" : "groups"
7aacca6f
DM
47373 },
47374 {
47375 "children" : [
47376 {
7aacca6f 47377 "info" : {
7aacca6f 47378 "DELETE" : {
e9cd3bd4 47379 "allowtoken" : 1,
7aacca6f 47380 "description" : "Delete role.",
44660702 47381 "method" : "DELETE",
7aacca6f 47382 "name" : "delete_role",
56122987
DM
47383 "parameters" : {
47384 "additionalProperties" : 0,
47385 "properties" : {
7aacca6f
DM
47386 "roleid" : {
47387 "format" : "pve-roleid",
013dc89f
DM
47388 "type" : "string",
47389 "typetext" : "<string>"
56122987
DM
47390 }
47391 }
47392 },
56122987
DM
47393 "permissions" : {
47394 "check" : [
47395 "perm",
7aacca6f 47396 "/access",
56122987 47397 [
7aacca6f
DM
47398 "Sys.Modify"
47399 ]
56122987 47400 ]
44660702
DM
47401 },
47402 "protected" : 1,
47403 "returns" : {
47404 "type" : "null"
56122987
DM
47405 }
47406 },
44660702 47407 "GET" : {
e9cd3bd4 47408 "allowtoken" : 1,
44660702
DM
47409 "description" : "Get role configuration.",
47410 "method" : "GET",
47411 "name" : "read_role",
47412 "parameters" : {
47413 "additionalProperties" : 0,
47414 "properties" : {
47415 "roleid" : {
47416 "format" : "pve-roleid",
013dc89f
DM
47417 "type" : "string",
47418 "typetext" : "<string>"
44660702
DM
47419 }
47420 }
47421 },
7aacca6f 47422 "permissions" : {
44660702 47423 "user" : "all"
56122987 47424 },
e2d681b3
TL
47425 "returns" : {
47426 "additionalProperties" : 0,
47427 "properties" : {
47428 "Datastore.Allocate" : {
47429 "optional" : 1,
47430 "type" : "boolean"
47431 },
47432 "Datastore.AllocateSpace" : {
47433 "optional" : 1,
47434 "type" : "boolean"
47435 },
47436 "Datastore.AllocateTemplate" : {
47437 "optional" : 1,
47438 "type" : "boolean"
47439 },
47440 "Datastore.Audit" : {
47441 "optional" : 1,
47442 "type" : "boolean"
47443 },
47444 "Group.Allocate" : {
47445 "optional" : 1,
47446 "type" : "boolean"
47447 },
47448 "Permissions.Modify" : {
47449 "optional" : 1,
47450 "type" : "boolean"
47451 },
47452 "Pool.Allocate" : {
47453 "optional" : 1,
47454 "type" : "boolean"
47455 },
0695fdaf
TL
47456 "Pool.Audit" : {
47457 "optional" : 1,
47458 "type" : "boolean"
47459 },
e2d681b3
TL
47460 "Realm.Allocate" : {
47461 "optional" : 1,
47462 "type" : "boolean"
47463 },
47464 "Realm.AllocateUser" : {
47465 "optional" : 1,
47466 "type" : "boolean"
47467 },
5c1699e5
TL
47468 "SDN.Allocate" : {
47469 "optional" : 1,
47470 "type" : "boolean"
47471 },
47472 "SDN.Audit" : {
47473 "optional" : 1,
47474 "type" : "boolean"
47475 },
e2d681b3
TL
47476 "Sys.Audit" : {
47477 "optional" : 1,
47478 "type" : "boolean"
47479 },
47480 "Sys.Console" : {
47481 "optional" : 1,
47482 "type" : "boolean"
47483 },
81a3384d
TL
47484 "Sys.Incoming" : {
47485 "optional" : 1,
47486 "type" : "boolean"
47487 },
e2d681b3
TL
47488 "Sys.Modify" : {
47489 "optional" : 1,
47490 "type" : "boolean"
47491 },
47492 "Sys.PowerMgmt" : {
47493 "optional" : 1,
47494 "type" : "boolean"
47495 },
47496 "Sys.Syslog" : {
47497 "optional" : 1,
47498 "type" : "boolean"
47499 },
47500 "User.Modify" : {
47501 "optional" : 1,
47502 "type" : "boolean"
47503 },
47504 "VM.Allocate" : {
47505 "optional" : 1,
47506 "type" : "boolean"
47507 },
47508 "VM.Audit" : {
47509 "optional" : 1,
47510 "type" : "boolean"
47511 },
47512 "VM.Backup" : {
47513 "optional" : 1,
47514 "type" : "boolean"
47515 },
47516 "VM.Clone" : {
47517 "optional" : 1,
47518 "type" : "boolean"
47519 },
47520 "VM.Config.CDROM" : {
47521 "optional" : 1,
47522 "type" : "boolean"
47523 },
47524 "VM.Config.CPU" : {
47525 "optional" : 1,
47526 "type" : "boolean"
47527 },
ac70d7d1
TL
47528 "VM.Config.Cloudinit" : {
47529 "optional" : 1,
47530 "type" : "boolean"
47531 },
e2d681b3
TL
47532 "VM.Config.Disk" : {
47533 "optional" : 1,
47534 "type" : "boolean"
47535 },
47536 "VM.Config.HWType" : {
47537 "optional" : 1,
47538 "type" : "boolean"
47539 },
47540 "VM.Config.Memory" : {
47541 "optional" : 1,
47542 "type" : "boolean"
47543 },
47544 "VM.Config.Network" : {
47545 "optional" : 1,
47546 "type" : "boolean"
47547 },
47548 "VM.Config.Options" : {
47549 "optional" : 1,
47550 "type" : "boolean"
47551 },
47552 "VM.Console" : {
47553 "optional" : 1,
47554 "type" : "boolean"
47555 },
47556 "VM.Migrate" : {
47557 "optional" : 1,
47558 "type" : "boolean"
47559 },
47560 "VM.Monitor" : {
47561 "optional" : 1,
47562 "type" : "boolean"
47563 },
47564 "VM.PowerMgmt" : {
47565 "optional" : 1,
47566 "type" : "boolean"
47567 },
47568 "VM.Snapshot" : {
47569 "optional" : 1,
47570 "type" : "boolean"
47571 },
47572 "VM.Snapshot.Rollback" : {
47573 "optional" : 1,
47574 "type" : "boolean"
47575 }
47576 },
47577 "type" : "object"
47578 }
44660702
DM
47579 },
47580 "PUT" : {
e9cd3bd4 47581 "allowtoken" : 1,
e2d681b3 47582 "description" : "Update an existing role.",
44660702
DM
47583 "method" : "PUT",
47584 "name" : "update_role",
56122987
DM
47585 "parameters" : {
47586 "additionalProperties" : 0,
47587 "properties" : {
7aacca6f 47588 "append" : {
44660702 47589 "optional" : 1,
7aacca6f 47590 "requires" : "privs",
013dc89f
DM
47591 "type" : "boolean",
47592 "typetext" : "<boolean>"
7aacca6f
DM
47593 },
47594 "privs" : {
47595 "format" : "pve-priv-list",
e2d681b3 47596 "optional" : 1,
013dc89f
DM
47597 "type" : "string",
47598 "typetext" : "<string>"
44660702
DM
47599 },
47600 "roleid" : {
47601 "format" : "pve-roleid",
013dc89f
DM
47602 "type" : "string",
47603 "typetext" : "<string>"
56122987
DM
47604 }
47605 }
47606 },
44660702
DM
47607 "permissions" : {
47608 "check" : [
47609 "perm",
47610 "/access",
47611 [
47612 "Sys.Modify"
47613 ]
47614 ]
47615 },
56122987 47616 "protected" : 1,
7aacca6f
DM
47617 "returns" : {
47618 "type" : "null"
56122987
DM
47619 }
47620 }
47621 },
44660702 47622 "leaf" : 1,
7aacca6f 47623 "path" : "/access/roles/{roleid}",
44660702 47624 "text" : "{roleid}"
56122987
DM
47625 }
47626 ],
56122987 47627 "info" : {
7aacca6f 47628 "GET" : {
e9cd3bd4 47629 "allowtoken" : 1,
7aacca6f 47630 "description" : "Role index.",
44660702 47631 "method" : "GET",
7aacca6f 47632 "name" : "index",
56122987 47633 "parameters" : {
56122987
DM
47634 "additionalProperties" : 0
47635 },
7aacca6f
DM
47636 "permissions" : {
47637 "user" : "all"
47638 },
56122987 47639 "returns" : {
7aacca6f 47640 "items" : {
7aacca6f 47641 "properties" : {
e2d681b3
TL
47642 "privs" : {
47643 "format" : "pve-priv-list",
47644 "optional" : 1,
47645 "type" : "string"
47646 },
7aacca6f 47647 "roleid" : {
e2d681b3 47648 "format" : "pve-roleid",
7aacca6f 47649 "type" : "string"
e2d681b3
TL
47650 },
47651 "special" : {
47652 "default" : 0,
47653 "optional" : 1,
47654 "type" : "boolean"
7aacca6f 47655 }
44660702
DM
47656 },
47657 "type" : "object"
47658 },
47659 "links" : [
47660 {
47661 "href" : "{roleid}",
47662 "rel" : "child"
7aacca6f 47663 }
44660702
DM
47664 ],
47665 "type" : "array"
47666 }
7aacca6f
DM
47667 },
47668 "POST" : {
e9cd3bd4 47669 "allowtoken" : 1,
7aacca6f 47670 "description" : "Create new role.",
44660702
DM
47671 "method" : "POST",
47672 "name" : "create_role",
7aacca6f
DM
47673 "parameters" : {
47674 "additionalProperties" : 0,
47675 "properties" : {
7aacca6f
DM
47676 "privs" : {
47677 "format" : "pve-priv-list",
47678 "optional" : 1,
013dc89f
DM
47679 "type" : "string",
47680 "typetext" : "<string>"
44660702
DM
47681 },
47682 "roleid" : {
47683 "format" : "pve-roleid",
013dc89f
DM
47684 "type" : "string",
47685 "typetext" : "<string>"
7aacca6f
DM
47686 }
47687 }
47688 },
44660702
DM
47689 "permissions" : {
47690 "check" : [
47691 "perm",
47692 "/access",
47693 [
47694 "Sys.Modify"
47695 ]
47696 ]
47697 },
47698 "protected" : 1,
7aacca6f
DM
47699 "returns" : {
47700 "type" : "null"
47701 }
47702 }
47703 },
44660702 47704 "leaf" : 0,
7aacca6f 47705 "path" : "/access/roles",
44660702 47706 "text" : "roles"
7aacca6f
DM
47707 },
47708 {
47709 "info" : {
56122987 47710 "GET" : {
e9cd3bd4 47711 "allowtoken" : 1,
44660702
DM
47712 "description" : "Get Access Control List (ACLs).",
47713 "method" : "GET",
47714 "name" : "read_acl",
7aacca6f
DM
47715 "parameters" : {
47716 "additionalProperties" : 0
47717 },
44660702
DM
47718 "permissions" : {
47719 "description" : "The returned list is restricted to objects where you have rights to modify permissions.",
47720 "user" : "all"
47721 },
56122987 47722 "returns" : {
56122987 47723 "items" : {
44660702 47724 "additionalProperties" : 0,
56122987 47725 "properties" : {
7aacca6f 47726 "path" : {
e2d681b3 47727 "description" : "Access control path",
7aacca6f
DM
47728 "type" : "string"
47729 },
44660702 47730 "propagate" : {
e2d681b3
TL
47731 "default" : 1,
47732 "description" : "Allow to propagate (inherit) permissions.",
47733 "optional" : 1,
44660702
DM
47734 "type" : "boolean"
47735 },
47736 "roleid" : {
47737 "type" : "string"
47738 },
7aacca6f
DM
47739 "type" : {
47740 "enum" : [
47741 "user",
e9cd3bd4
TL
47742 "group",
47743 "token"
7aacca6f
DM
47744 ],
47745 "type" : "string"
47746 },
7aacca6f
DM
47747 "ugid" : {
47748 "type" : "string"
56122987 47749 }
7aacca6f 47750 },
44660702 47751 "type" : "object"
7aacca6f
DM
47752 },
47753 "type" : "array"
44660702 47754 }
7aacca6f
DM
47755 },
47756 "PUT" : {
e9cd3bd4 47757 "allowtoken" : 1,
44660702
DM
47758 "description" : "Update Access Control List (add or remove permissions).",
47759 "method" : "PUT",
7aacca6f
DM
47760 "name" : "update_acl",
47761 "parameters" : {
47762 "additionalProperties" : 0,
47763 "properties" : {
47764 "delete" : {
44660702 47765 "description" : "Remove permissions (instead of adding it).",
7aacca6f 47766 "optional" : 1,
013dc89f
DM
47767 "type" : "boolean",
47768 "typetext" : "<boolean>"
7aacca6f 47769 },
44660702
DM
47770 "groups" : {
47771 "description" : "List of groups.",
47772 "format" : "pve-groupid-list",
7aacca6f 47773 "optional" : 1,
013dc89f
DM
47774 "type" : "string",
47775 "typetext" : "<string>"
7aacca6f
DM
47776 },
47777 "path" : {
47778 "description" : "Access control path",
013dc89f
DM
47779 "type" : "string",
47780 "typetext" : "<string>"
7aacca6f 47781 },
7aacca6f 47782 "propagate" : {
44660702 47783 "default" : 1,
7aacca6f 47784 "description" : "Allow to propagate (inherit) permissions.",
7aacca6f 47785 "optional" : 1,
013dc89f
DM
47786 "type" : "boolean",
47787 "typetext" : "<boolean>"
7aacca6f 47788 },
44660702
DM
47789 "roles" : {
47790 "description" : "List of roles.",
47791 "format" : "pve-roleid-list",
013dc89f
DM
47792 "type" : "string",
47793 "typetext" : "<string>"
44660702 47794 },
e9cd3bd4
TL
47795 "tokens" : {
47796 "description" : "List of API tokens.",
47797 "format" : "pve-tokenid-list",
47798 "optional" : 1,
47799 "type" : "string",
47800 "typetext" : "<string>"
47801 },
44660702
DM
47802 "users" : {
47803 "description" : "List of users.",
47804 "format" : "pve-userid-list",
7aacca6f 47805 "optional" : 1,
013dc89f
DM
47806 "type" : "string",
47807 "typetext" : "<string>"
56122987
DM
47808 }
47809 }
47810 },
56122987 47811 "permissions" : {
7aacca6f
DM
47812 "check" : [
47813 "perm-modify",
47814 "{path}"
47815 ]
47816 },
7aacca6f
DM
47817 "protected" : 1,
47818 "returns" : {
47819 "type" : "null"
44660702 47820 }
56122987
DM
47821 }
47822 },
7aacca6f 47823 "leaf" : 1,
44660702
DM
47824 "path" : "/access/acl",
47825 "text" : "acl"
7aacca6f
DM
47826 },
47827 {
56122987
DM
47828 "children" : [
47829 {
c5aa7e14
TL
47830 "children" : [
47831 {
47832 "info" : {
47833 "POST" : {
47834 "allowtoken" : 1,
47835 "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.",
47836 "method" : "POST",
47837 "name" : "sync",
47838 "parameters" : {
47839 "additionalProperties" : 0,
47840 "properties" : {
47841 "dry-run" : {
47842 "default" : 0,
47843 "description" : "If set, does not write anything.",
47844 "optional" : 1,
47845 "type" : "boolean",
47846 "typetext" : "<boolean>"
47847 },
47848 "enable-new" : {
47849 "default" : "1",
47850 "description" : "Enable newly synced users immediately.",
47851 "optional" : "1",
47852 "type" : "boolean",
47853 "typetext" : "<boolean>"
47854 },
47855 "full" : {
7af2edf9 47856 "description" : "DEPRECATED: use 'remove-vanished' instead. If set, uses the LDAP Directory as source of truth, deleting users or groups not returned from the sync and removing all locally modified properties of synced users. If not set, only syncs information which is present in the synced data, and does not delete or modify anything else.",
c5aa7e14
TL
47857 "optional" : "1",
47858 "type" : "boolean",
47859 "typetext" : "<boolean>"
47860 },
47861 "purge" : {
7af2edf9 47862 "description" : "DEPRECATED: use 'remove-vanished' instead. Remove ACLs for users or groups which were removed from the config during a sync.",
c5aa7e14
TL
47863 "optional" : "1",
47864 "type" : "boolean",
47865 "typetext" : "<boolean>"
47866 },
47867 "realm" : {
47868 "description" : "Authentication domain ID",
47869 "format" : "pve-realm",
47870 "maxLength" : 32,
47871 "type" : "string",
47872 "typetext" : "<string>"
47873 },
7af2edf9
TL
47874 "remove-vanished" : {
47875 "description" : "A semicolon-seperated list of things to remove when they or the user vanishes during a sync. The following values are possible: 'entry' removes the user/group when not returned from the sync. 'properties' removes the set properties on existing user/group that do not appear in the source (even custom ones). 'acl' removes acls when the user/group is not returned from the sync.",
47876 "optional" : "1",
47877 "pattern" : "(?:(?:acl|properties|entry);)*(?:acl|properties|entry)",
47878 "type" : "string",
47879 "typetext" : "[acl];[properties];[entry]"
47880 },
c5aa7e14
TL
47881 "scope" : {
47882 "description" : "Select what to sync.",
47883 "enum" : [
47884 "users",
47885 "groups",
47886 "both"
47887 ],
47888 "optional" : "1",
47889 "type" : "string"
47890 }
47891 }
47892 },
47893 "permissions" : {
47894 "check" : [
47895 "and",
47896 [
c30bb419
TL
47897 "perm",
47898 "/access/realm/{realm}",
47899 [
47900 "Realm.AllocateUser"
47901 ]
c5aa7e14
TL
47902 ],
47903 [
c30bb419
TL
47904 "perm",
47905 "/access/groups",
c5aa7e14
TL
47906 [
47907 "User.Modify"
47908 ]
47909 ]
47910 ],
47911 "description" : "'Realm.AllocateUser' on '/access/realm/<realm>' and 'User.Modify' permissions to '/access/groups/'."
47912 },
47913 "protected" : 1,
47914 "returns" : {
47915 "description" : "Worker Task-UPID",
47916 "type" : "string"
47917 }
47918 }
47919 },
47920 "leaf" : 1,
47921 "path" : "/access/domains/{realm}/sync",
47922 "text" : "sync"
47923 }
47924 ],
56122987 47925 "info" : {
44660702 47926 "DELETE" : {
e9cd3bd4 47927 "allowtoken" : 1,
44660702
DM
47928 "description" : "Delete an authentication server.",
47929 "method" : "DELETE",
47930 "name" : "delete",
47931 "parameters" : {
47932 "additionalProperties" : 0,
47933 "properties" : {
47934 "realm" : {
47935 "description" : "Authentication domain ID",
47936 "format" : "pve-realm",
47937 "maxLength" : 32,
013dc89f
DM
47938 "type" : "string",
47939 "typetext" : "<string>"
56122987 47940 }
44660702 47941 }
56122987 47942 },
56122987
DM
47943 "permissions" : {
47944 "check" : [
47945 "perm",
7aacca6f 47946 "/access/realm",
56122987 47947 [
7aacca6f 47948 "Realm.Allocate"
56122987
DM
47949 ]
47950 ]
47951 },
7aacca6f 47952 "protected" : 1,
7aacca6f
DM
47953 "returns" : {
47954 "type" : "null"
44660702 47955 }
7aacca6f 47956 },
44660702 47957 "GET" : {
e9cd3bd4 47958 "allowtoken" : 1,
44660702
DM
47959 "description" : "Get auth server configuration.",
47960 "method" : "GET",
47961 "name" : "read",
56122987 47962 "parameters" : {
44660702 47963 "additionalProperties" : 0,
56122987 47964 "properties" : {
7aacca6f 47965 "realm" : {
44660702 47966 "description" : "Authentication domain ID",
7aacca6f
DM
47967 "format" : "pve-realm",
47968 "maxLength" : 32,
013dc89f
DM
47969 "type" : "string",
47970 "typetext" : "<string>"
56122987 47971 }
44660702 47972 }
7aacca6f 47973 },
7aacca6f
DM
47974 "permissions" : {
47975 "check" : [
47976 "perm",
47977 "/access/realm",
47978 [
44660702
DM
47979 "Realm.Allocate",
47980 "Sys.Audit"
47981 ],
47982 "any",
47983 1
7aacca6f 47984 ]
44660702
DM
47985 },
47986 "returns" : {}
7aacca6f 47987 },
44660702 47988 "PUT" : {
e9cd3bd4 47989 "allowtoken" : 1,
44660702
DM
47990 "description" : "Update authentication server settings.",
47991 "method" : "PUT",
47992 "name" : "update",
7aacca6f 47993 "parameters" : {
44660702 47994 "additionalProperties" : 0,
7aacca6f 47995 "properties" : {
c30bb419
TL
47996 "acr-values" : {
47997 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
47998 "optional" : 1,
47999 "type" : "string",
48000 "typetext" : "<string>"
48001 },
34f3e481
TL
48002 "autocreate" : {
48003 "default" : 0,
48004 "description" : "Automatically create users if they do not exist.",
48005 "optional" : 1,
48006 "type" : "boolean",
48007 "typetext" : "<boolean>"
48008 },
44660702
DM
48009 "base_dn" : {
48010 "description" : "LDAP base domain name",
48011 "maxLength" : 256,
48012 "optional" : 1,
48013 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48014 "type" : "string"
48015 },
4bd7df8b
DM
48016 "bind_dn" : {
48017 "description" : "LDAP bind domain name",
48018 "maxLength" : 256,
48019 "optional" : 1,
48020 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48021 "type" : "string"
48022 },
2489d6df
WB
48023 "capath" : {
48024 "default" : "/etc/ssl/certs",
48025 "description" : "Path to the CA certificate store",
48026 "optional" : 1,
48027 "type" : "string",
48028 "typetext" : "<string>"
48029 },
4772952b
TL
48030 "case-sensitive" : {
48031 "default" : 1,
48032 "description" : "username is case-sensitive",
48033 "optional" : 1,
48034 "type" : "boolean",
48035 "typetext" : "<boolean>"
48036 },
2489d6df
WB
48037 "cert" : {
48038 "description" : "Path to the client certificate",
48039 "optional" : 1,
48040 "type" : "string",
48041 "typetext" : "<string>"
48042 },
48043 "certkey" : {
48044 "description" : "Path to the client certificate key",
48045 "optional" : 1,
48046 "type" : "string",
48047 "typetext" : "<string>"
48048 },
34f3e481
TL
48049 "client-id" : {
48050 "description" : "OpenID Client ID",
48051 "maxLength" : 256,
48052 "optional" : 1,
48053 "type" : "string",
48054 "typetext" : "<string>"
48055 },
48056 "client-key" : {
48057 "description" : "OpenID Client Key",
48058 "maxLength" : 256,
48059 "optional" : 1,
48060 "type" : "string",
48061 "typetext" : "<string>"
48062 },
44660702
DM
48063 "comment" : {
48064 "description" : "Description.",
48065 "maxLength" : 4096,
48066 "optional" : 1,
013dc89f
DM
48067 "type" : "string",
48068 "typetext" : "<string>"
44660702
DM
48069 },
48070 "default" : {
48071 "description" : "Use this as default realm",
48072 "optional" : 1,
013dc89f
DM
48073 "type" : "boolean",
48074 "typetext" : "<boolean>"
44660702
DM
48075 },
48076 "delete" : {
48077 "description" : "A list of settings you want to delete.",
48078 "format" : "pve-configid-list",
48079 "maxLength" : 4096,
48080 "optional" : 1,
013dc89f
DM
48081 "type" : "string",
48082 "typetext" : "<string>"
44660702
DM
48083 },
48084 "digest" : {
48085 "description" : "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.",
48086 "maxLength" : 40,
48087 "optional" : 1,
013dc89f
DM
48088 "type" : "string",
48089 "typetext" : "<string>"
44660702
DM
48090 },
48091 "domain" : {
48092 "description" : "AD domain name",
48093 "maxLength" : 256,
48094 "optional" : 1,
48095 "pattern" : "\\S+",
48096 "type" : "string"
48097 },
c5aa7e14
TL
48098 "filter" : {
48099 "description" : "LDAP filter for user sync.",
48100 "maxLength" : 2048,
48101 "optional" : 1,
48102 "type" : "string",
48103 "typetext" : "<string>"
48104 },
48105 "group_classes" : {
48106 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
48107 "description" : "The objectclasses for groups.",
48108 "format" : "ldap-simple-attr-list",
48109 "optional" : 1,
48110 "type" : "string",
48111 "typetext" : "<string>"
48112 },
48113 "group_dn" : {
48114 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
48115 "maxLength" : 256,
48116 "optional" : 1,
48117 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48118 "type" : "string"
48119 },
48120 "group_filter" : {
48121 "description" : "LDAP filter for group sync.",
48122 "maxLength" : 2048,
48123 "optional" : 1,
48124 "type" : "string",
48125 "typetext" : "<string>"
48126 },
48127 "group_name_attr" : {
48128 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
48129 "format" : "ldap-simple-attr",
48130 "maxLength" : 256,
48131 "optional" : 1,
48132 "type" : "string",
48133 "typetext" : "<string>"
48134 },
34f3e481
TL
48135 "issuer-url" : {
48136 "description" : "OpenID Issuer Url",
48137 "maxLength" : 256,
48138 "optional" : 1,
48139 "type" : "string",
48140 "typetext" : "<string>"
48141 },
c5aa7e14
TL
48142 "mode" : {
48143 "default" : "ldap",
48144 "description" : "LDAP protocol mode.",
48145 "enum" : [
48146 "ldap",
48147 "ldaps",
48148 "ldap+starttls"
48149 ],
48150 "optional" : 1,
48151 "type" : "string"
48152 },
48153 "password" : {
48154 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
48155 "optional" : 1,
48156 "type" : "string",
48157 "typetext" : "<string>"
48158 },
44660702
DM
48159 "port" : {
48160 "description" : "Server port.",
48161 "maximum" : 65535,
48162 "minimum" : 1,
48163 "optional" : 1,
4bd7df8b 48164 "type" : "integer",
013dc89f 48165 "typetext" : "<integer> (1 - 65535)"
44660702 48166 },
c30bb419
TL
48167 "prompt" : {
48168 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
48169 "optional" : 1,
48170 "pattern" : "(?:none|login|consent|select_account|\\S+)",
48171 "type" : "string"
48172 },
7aacca6f 48173 "realm" : {
7aacca6f
DM
48174 "description" : "Authentication domain ID",
48175 "format" : "pve-realm",
44660702 48176 "maxLength" : 32,
013dc89f
DM
48177 "type" : "string",
48178 "typetext" : "<string>"
44660702 48179 },
c30bb419
TL
48180 "scopes" : {
48181 "default" : "email profile",
48182 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
48183 "optional" : 1,
48184 "type" : "string",
48185 "typetext" : "<string>"
48186 },
44660702 48187 "secure" : {
c5aa7e14 48188 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
44660702 48189 "optional" : 1,
013dc89f
DM
48190 "type" : "boolean",
48191 "typetext" : "<boolean>"
44660702
DM
48192 },
48193 "server1" : {
48194 "description" : "Server IP address (or DNS name)",
48195 "format" : "address",
48196 "maxLength" : 256,
48197 "optional" : 1,
013dc89f
DM
48198 "type" : "string",
48199 "typetext" : "<string>"
44660702
DM
48200 },
48201 "server2" : {
48202 "description" : "Fallback Server IP address (or DNS name)",
48203 "format" : "address",
48204 "maxLength" : 256,
48205 "optional" : 1,
013dc89f
DM
48206 "type" : "string",
48207 "typetext" : "<string>"
44660702 48208 },
1c532546
TL
48209 "sslversion" : {
48210 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
48211 "enum" : [
48212 "tlsv1",
48213 "tlsv1_1",
48214 "tlsv1_2",
48215 "tlsv1_3"
48216 ],
48217 "optional" : 1,
48218 "type" : "string"
48219 },
c5aa7e14
TL
48220 "sync-defaults-options" : {
48221 "description" : "The default options for behavior of synchronizations.",
48222 "format" : "realm-sync-options",
48223 "optional" : 1,
48224 "type" : "string",
7af2edf9 48225 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=[acl];[properties];[entry]] [,scope=<users|groups|both>]"
c5aa7e14
TL
48226 },
48227 "sync_attributes" : {
48228 "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.",
48229 "optional" : 1,
48230 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48231 "type" : "string"
48232 },
44660702
DM
48233 "tfa" : {
48234 "description" : "Use Two-factor authentication.",
48235 "format" : "pve-tfa-config",
48236 "maxLength" : 128,
48237 "optional" : 1,
013dc89f 48238 "type" : "string",
95895385 48239 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
48240 },
48241 "user_attr" : {
48242 "description" : "LDAP user attribute name",
48243 "maxLength" : 256,
48244 "optional" : 1,
48245 "pattern" : "\\S{2,}",
48246 "type" : "string"
2489d6df 48247 },
c5aa7e14
TL
48248 "user_classes" : {
48249 "default" : "inetorgperson, posixaccount, person, user",
48250 "description" : "The objectclasses for users.",
48251 "format" : "ldap-simple-attr-list",
48252 "optional" : 1,
48253 "type" : "string",
48254 "typetext" : "<string>"
48255 },
2489d6df
WB
48256 "verify" : {
48257 "default" : 0,
48258 "description" : "Verify the server's SSL certificate",
48259 "optional" : 1,
48260 "type" : "boolean",
48261 "typetext" : "<boolean>"
7aacca6f 48262 }
56122987 48263 },
44660702 48264 "type" : "object"
56122987 48265 },
7aacca6f
DM
48266 "permissions" : {
48267 "check" : [
48268 "perm",
48269 "/access/realm",
48270 [
44660702
DM
48271 "Realm.Allocate"
48272 ]
7aacca6f
DM
48273 ]
48274 },
44660702
DM
48275 "protected" : 1,
48276 "returns" : {
48277 "type" : "null"
48278 }
56122987 48279 }
44660702 48280 },
c5aa7e14 48281 "leaf" : 0,
44660702
DM
48282 "path" : "/access/domains/{realm}",
48283 "text" : "{realm}"
56122987 48284 }
7aacca6f 48285 ],
56122987
DM
48286 "info" : {
48287 "GET" : {
e9cd3bd4 48288 "allowtoken" : 1,
44660702
DM
48289 "description" : "Authentication domain index.",
48290 "method" : "GET",
48291 "name" : "index",
48292 "parameters" : {
48293 "additionalProperties" : 0
48294 },
48295 "permissions" : {
48296 "description" : "Anyone can access that, because we need that list for the login box (before the user is authenticated).",
48297 "user" : "world"
48298 },
56122987 48299 "returns" : {
56122987
DM
48300 "items" : {
48301 "properties" : {
7aacca6f 48302 "comment" : {
52e44c50 48303 "description" : "A comment. The GUI use this text when you select a domain (Realm) on the login window.",
7aacca6f
DM
48304 "optional" : 1,
48305 "type" : "string"
48306 },
56122987
DM
48307 "realm" : {
48308 "type" : "string"
48309 },
48310 "tfa" : {
7aacca6f 48311 "description" : "Two-factor authentication provider.",
56122987
DM
48312 "enum" : [
48313 "yubico",
48314 "oath"
48315 ],
44660702
DM
48316 "optional" : 1,
48317 "type" : "string"
c5aa7e14
TL
48318 },
48319 "type" : {
48320 "type" : "string"
56122987
DM
48321 }
48322 },
48323 "type" : "object"
44660702
DM
48324 },
48325 "links" : [
48326 {
48327 "href" : "{realm}",
48328 "rel" : "child"
48329 }
48330 ],
48331 "type" : "array"
48332 }
56122987
DM
48333 },
48334 "POST" : {
e9cd3bd4 48335 "allowtoken" : 1,
7aacca6f 48336 "description" : "Add an authentication server.",
44660702 48337 "method" : "POST",
7aacca6f 48338 "name" : "create",
56122987 48339 "parameters" : {
44660702 48340 "additionalProperties" : 0,
56122987 48341 "properties" : {
c30bb419
TL
48342 "acr-values" : {
48343 "description" : "Specifies the Authentication Context Class Reference values that theAuthorization Server is being requested to use for the Auth Request.",
48344 "optional" : 1,
48345 "type" : "string",
48346 "typetext" : "<string>"
48347 },
34f3e481
TL
48348 "autocreate" : {
48349 "default" : 0,
48350 "description" : "Automatically create users if they do not exist.",
48351 "optional" : 1,
48352 "type" : "boolean",
48353 "typetext" : "<boolean>"
48354 },
44660702
DM
48355 "base_dn" : {
48356 "description" : "LDAP base domain name",
56122987 48357 "maxLength" : 256,
44660702
DM
48358 "optional" : 1,
48359 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
7aacca6f 48360 "type" : "string"
56122987 48361 },
4bd7df8b
DM
48362 "bind_dn" : {
48363 "description" : "LDAP bind domain name",
48364 "maxLength" : 256,
48365 "optional" : 1,
48366 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48367 "type" : "string"
48368 },
2489d6df
WB
48369 "capath" : {
48370 "default" : "/etc/ssl/certs",
48371 "description" : "Path to the CA certificate store",
48372 "optional" : 1,
48373 "type" : "string",
48374 "typetext" : "<string>"
48375 },
4772952b
TL
48376 "case-sensitive" : {
48377 "default" : 1,
48378 "description" : "username is case-sensitive",
48379 "optional" : 1,
48380 "type" : "boolean",
48381 "typetext" : "<boolean>"
48382 },
2489d6df
WB
48383 "cert" : {
48384 "description" : "Path to the client certificate",
48385 "optional" : 1,
48386 "type" : "string",
48387 "typetext" : "<string>"
48388 },
48389 "certkey" : {
48390 "description" : "Path to the client certificate key",
48391 "optional" : 1,
48392 "type" : "string",
48393 "typetext" : "<string>"
48394 },
34f3e481
TL
48395 "client-id" : {
48396 "description" : "OpenID Client ID",
48397 "maxLength" : 256,
48398 "optional" : 1,
48399 "type" : "string",
48400 "typetext" : "<string>"
48401 },
48402 "client-key" : {
48403 "description" : "OpenID Client Key",
48404 "maxLength" : 256,
48405 "optional" : 1,
48406 "type" : "string",
48407 "typetext" : "<string>"
48408 },
44660702
DM
48409 "comment" : {
48410 "description" : "Description.",
48411 "maxLength" : 4096,
56122987 48412 "optional" : 1,
013dc89f
DM
48413 "type" : "string",
48414 "typetext" : "<string>"
56122987 48415 },
44660702
DM
48416 "default" : {
48417 "description" : "Use this as default realm",
7aacca6f 48418 "optional" : 1,
013dc89f
DM
48419 "type" : "boolean",
48420 "typetext" : "<boolean>"
56122987 48421 },
44660702
DM
48422 "domain" : {
48423 "description" : "AD domain name",
48424 "maxLength" : 256,
7aacca6f 48425 "optional" : 1,
44660702
DM
48426 "pattern" : "\\S+",
48427 "type" : "string"
56122987 48428 },
c5aa7e14
TL
48429 "filter" : {
48430 "description" : "LDAP filter for user sync.",
48431 "maxLength" : 2048,
48432 "optional" : 1,
48433 "type" : "string",
48434 "typetext" : "<string>"
48435 },
48436 "group_classes" : {
48437 "default" : "groupOfNames, group, univentionGroup, ipausergroup",
48438 "description" : "The objectclasses for groups.",
48439 "format" : "ldap-simple-attr-list",
48440 "optional" : 1,
48441 "type" : "string",
48442 "typetext" : "<string>"
48443 },
48444 "group_dn" : {
48445 "description" : "LDAP base domain name for group sync. If not set, the base_dn will be used.",
48446 "maxLength" : 256,
48447 "optional" : 1,
48448 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48449 "type" : "string"
48450 },
48451 "group_filter" : {
48452 "description" : "LDAP filter for group sync.",
48453 "maxLength" : 2048,
48454 "optional" : 1,
48455 "type" : "string",
48456 "typetext" : "<string>"
48457 },
48458 "group_name_attr" : {
48459 "description" : "LDAP attribute representing a groups name. If not set or found, the first value of the DN will be used as name.",
48460 "format" : "ldap-simple-attr",
48461 "maxLength" : 256,
48462 "optional" : 1,
48463 "type" : "string",
48464 "typetext" : "<string>"
48465 },
34f3e481
TL
48466 "issuer-url" : {
48467 "description" : "OpenID Issuer Url",
48468 "maxLength" : 256,
48469 "optional" : 1,
48470 "type" : "string",
48471 "typetext" : "<string>"
48472 },
c5aa7e14
TL
48473 "mode" : {
48474 "default" : "ldap",
48475 "description" : "LDAP protocol mode.",
48476 "enum" : [
48477 "ldap",
48478 "ldaps",
48479 "ldap+starttls"
48480 ],
48481 "optional" : 1,
48482 "type" : "string"
48483 },
48484 "password" : {
48485 "description" : "LDAP bind password. Will be stored in '/etc/pve/priv/realm/<REALM>.pw'.",
48486 "optional" : 1,
48487 "type" : "string",
48488 "typetext" : "<string>"
48489 },
7aacca6f 48490 "port" : {
44660702 48491 "description" : "Server port.",
7aacca6f 48492 "maximum" : 65535,
44660702 48493 "minimum" : 1,
7aacca6f 48494 "optional" : 1,
4bd7df8b 48495 "type" : "integer",
013dc89f 48496 "typetext" : "<integer> (1 - 65535)"
56122987 48497 },
c30bb419
TL
48498 "prompt" : {
48499 "description" : "Specifies whether the Authorization Server prompts the End-User for reauthentication and consent.",
48500 "optional" : 1,
48501 "pattern" : "(?:none|login|consent|select_account|\\S+)",
48502 "type" : "string"
48503 },
44660702
DM
48504 "realm" : {
48505 "description" : "Authentication domain ID",
48506 "format" : "pve-realm",
48507 "maxLength" : 32,
013dc89f
DM
48508 "type" : "string",
48509 "typetext" : "<string>"
44660702 48510 },
c30bb419
TL
48511 "scopes" : {
48512 "default" : "email profile",
48513 "description" : "Specifies the scopes (user details) that should be authorized and returned, for example 'email' or 'profile'.",
48514 "optional" : 1,
48515 "type" : "string",
48516 "typetext" : "<string>"
48517 },
44660702 48518 "secure" : {
c5aa7e14 48519 "description" : "Use secure LDAPS protocol. DEPRECATED: use 'mode' instead.",
7aacca6f 48520 "optional" : 1,
013dc89f
DM
48521 "type" : "boolean",
48522 "typetext" : "<boolean>"
56122987 48523 },
44660702
DM
48524 "server1" : {
48525 "description" : "Server IP address (or DNS name)",
48526 "format" : "address",
48527 "maxLength" : 256,
48528 "optional" : 1,
013dc89f
DM
48529 "type" : "string",
48530 "typetext" : "<string>"
56122987 48531 },
44660702
DM
48532 "server2" : {
48533 "description" : "Fallback Server IP address (or DNS name)",
48534 "format" : "address",
7aacca6f 48535 "maxLength" : 256,
7aacca6f 48536 "optional" : 1,
013dc89f
DM
48537 "type" : "string",
48538 "typetext" : "<string>"
7aacca6f 48539 },
1c532546
TL
48540 "sslversion" : {
48541 "description" : "LDAPS TLS/SSL version. It's not recommended to use version older than 1.2!",
48542 "enum" : [
48543 "tlsv1",
48544 "tlsv1_1",
48545 "tlsv1_2",
48546 "tlsv1_3"
48547 ],
48548 "optional" : 1,
48549 "type" : "string"
48550 },
c5aa7e14
TL
48551 "sync-defaults-options" : {
48552 "description" : "The default options for behavior of synchronizations.",
48553 "format" : "realm-sync-options",
48554 "optional" : 1,
48555 "type" : "string",
7af2edf9 48556 "typetext" : "[enable-new=<1|0>] [,full=<1|0>] [,purge=<1|0>] [,remove-vanished=[acl];[properties];[entry]] [,scope=<users|groups|both>]"
c5aa7e14
TL
48557 },
48558 "sync_attributes" : {
48559 "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.",
48560 "optional" : 1,
48561 "pattern" : "\\w+=[^,]+(,\\s*\\w+=[^,]+)*",
48562 "type" : "string"
48563 },
44660702
DM
48564 "tfa" : {
48565 "description" : "Use Two-factor authentication.",
48566 "format" : "pve-tfa-config",
48567 "maxLength" : 128,
48568 "optional" : 1,
013dc89f 48569 "type" : "string",
95895385 48570 "typetext" : "type=<TFATYPE> [,digits=<COUNT>] [,id=<ID>] [,key=<KEY>] [,step=<SECONDS>] [,url=<URL>]"
44660702
DM
48571 },
48572 "type" : {
48573 "description" : "Realm type.",
48574 "enum" : [
48575 "ad",
48576 "ldap",
34f3e481 48577 "openid",
44660702
DM
48578 "pam",
48579 "pve"
48580 ],
48581 "type" : "string"
48582 },
48583 "user_attr" : {
48584 "description" : "LDAP user attribute name",
7aacca6f 48585 "maxLength" : 256,
7aacca6f 48586 "optional" : 1,
44660702
DM
48587 "pattern" : "\\S{2,}",
48588 "type" : "string"
2489d6df 48589 },
c5aa7e14
TL
48590 "user_classes" : {
48591 "default" : "inetorgperson, posixaccount, person, user",
48592 "description" : "The objectclasses for users.",
48593 "format" : "ldap-simple-attr-list",
48594 "optional" : 1,
48595 "type" : "string",
48596 "typetext" : "<string>"
48597 },
34f3e481
TL
48598 "username-claim" : {
48599 "description" : "OpenID claim used to generate the unique username.",
34f3e481 48600 "optional" : 1,
c30bb419
TL
48601 "type" : "string",
48602 "typetext" : "<string>"
34f3e481 48603 },
2489d6df
WB
48604 "verify" : {
48605 "default" : 0,
48606 "description" : "Verify the server's SSL certificate",
48607 "optional" : 1,
48608 "type" : "boolean",
48609 "typetext" : "<boolean>"
7aacca6f
DM
48610 }
48611 },
7aacca6f 48612 "type" : "object"
56122987 48613 },
7aacca6f
DM
48614 "permissions" : {
48615 "check" : [
48616 "perm",
48617 "/access/realm",
48618 [
48619 "Realm.Allocate"
48620 ]
48621 ]
44660702
DM
48622 },
48623 "protected" : 1,
48624 "returns" : {
48625 "type" : "null"
7aacca6f 48626 }
56122987 48627 }
7aacca6f 48628 },
44660702 48629 "leaf" : 0,
56122987 48630 "path" : "/access/domains",
44660702 48631 "text" : "domains"
56122987 48632 },
34f3e481
TL
48633 {
48634 "children" : [
48635 {
48636 "info" : {
48637 "POST" : {
48638 "allowtoken" : 1,
48639 "description" : "Get the OpenId Authorization Url for the specified realm.",
48640 "method" : "POST",
48641 "name" : "auth_url",
48642 "parameters" : {
48643 "additionalProperties" : 0,
48644 "properties" : {
48645 "realm" : {
48646 "description" : "Authentication domain ID",
48647 "format" : "pve-realm",
48648 "maxLength" : 32,
48649 "type" : "string",
48650 "typetext" : "<string>"
48651 },
48652 "redirect-url" : {
48653 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
48654 "maxLength" : 255,
48655 "type" : "string",
48656 "typetext" : "<string>"
48657 }
48658 }
48659 },
48660 "permissions" : {
48661 "user" : "world"
48662 },
48663 "protected" : 1,
48664 "returns" : {
48665 "description" : "Redirection URL.",
48666 "type" : "string"
48667 }
48668 }
48669 },
48670 "leaf" : 1,
48671 "path" : "/access/openid/auth-url",
48672 "text" : "auth-url"
48673 },
48674 {
48675 "info" : {
48676 "POST" : {
48677 "allowtoken" : 1,
48678 "description" : " Verify OpenID authorization code and create a ticket.",
48679 "method" : "POST",
48680 "name" : "login",
48681 "parameters" : {
48682 "additionalProperties" : 0,
48683 "properties" : {
48684 "code" : {
48685 "description" : "OpenId authorization code.",
de786b48 48686 "maxLength" : 4096,
34f3e481
TL
48687 "type" : "string",
48688 "typetext" : "<string>"
48689 },
48690 "redirect-url" : {
48691 "description" : "Redirection Url. The client should set this to the used server url (location.origin).",
48692 "maxLength" : 255,
48693 "type" : "string",
48694 "typetext" : "<string>"
48695 },
48696 "state" : {
48697 "description" : "OpenId state.",
48698 "maxLength" : 1024,
48699 "type" : "string",
48700 "typetext" : "<string>"
48701 }
48702 }
48703 },
48704 "permissions" : {
48705 "user" : "world"
48706 },
48707 "protected" : 1,
48708 "returns" : {
48709 "properties" : {
48710 "CSRFPreventionToken" : {
48711 "type" : "string"
48712 },
48713 "cap" : {
48714 "type" : "object"
48715 },
48716 "clustername" : {
48717 "optional" : 1,
48718 "type" : "string"
48719 },
48720 "ticket" : {
48721 "type" : "string"
48722 },
48723 "username" : {
48724 "type" : "string"
48725 }
48726 }
48727 }
48728 }
48729 },
48730 "leaf" : 1,
48731 "path" : "/access/openid/login",
48732 "text" : "login"
48733 }
48734 ],
48735 "info" : {
48736 "GET" : {
48737 "allowtoken" : 1,
48738 "description" : "Directory index.",
48739 "method" : "GET",
48740 "name" : "index",
48741 "parameters" : {
48742 "additionalProperties" : 0
48743 },
48744 "permissions" : {
48745 "user" : "all"
48746 },
48747 "returns" : {
48748 "items" : {
48749 "properties" : {
48750 "subdir" : {
48751 "type" : "string"
48752 }
48753 },
48754 "type" : "object"
48755 },
48756 "links" : [
48757 {
48758 "href" : "{subdir}",
48759 "rel" : "child"
48760 }
48761 ],
48762 "type" : "array"
48763 }
48764 }
48765 },
48766 "leaf" : 0,
48767 "path" : "/access/openid",
48768 "text" : "openid"
48769 },
5370fa8c
TL
48770 {
48771 "children" : [
48772 {
48773 "children" : [
48774 {
48775 "info" : {
48776 "DELETE" : {
48777 "allowtoken" : 0,
48778 "description" : "Delete a TFA entry by ID.",
48779 "method" : "DELETE",
48780 "name" : "delete_tfa",
48781 "parameters" : {
48782 "additionalProperties" : 0,
48783 "properties" : {
48784 "id" : {
48785 "description" : "A TFA entry id.",
48786 "type" : "string",
48787 "typetext" : "<string>"
48788 },
48789 "password" : {
48790 "description" : "The current password.",
48791 "maxLength" : 64,
48792 "minLength" : 5,
48793 "optional" : 1,
48794 "type" : "string",
48795 "typetext" : "<string>"
48796 },
48797 "userid" : {
48798 "description" : "User ID",
48799 "format" : "pve-userid",
48800 "maxLength" : 64,
48801 "type" : "string",
48802 "typetext" : "<string>"
48803 }
48804 }
48805 },
48806 "permissions" : {
48807 "check" : [
48808 "or",
48809 [
48810 "userid-param",
48811 "self"
48812 ],
48813 [
48814 "userid-group",
48815 [
48816 "User.Modify"
48817 ]
48818 ]
48819 ]
48820 },
48821 "protected" : 1,
48822 "returns" : {
48823 "type" : "null"
48824 }
48825 },
48826 "GET" : {
48827 "allowtoken" : 0,
48828 "description" : "Fetch a requested TFA entry if present.",
48829 "method" : "GET",
48830 "name" : "get_tfa_entry",
48831 "parameters" : {
48832 "additionalProperties" : 0,
48833 "properties" : {
48834 "id" : {
48835 "description" : "A TFA entry id.",
48836 "type" : "string",
48837 "typetext" : "<string>"
48838 },
48839 "userid" : {
48840 "description" : "User ID",
48841 "format" : "pve-userid",
48842 "maxLength" : 64,
48843 "type" : "string",
48844 "typetext" : "<string>"
48845 }
48846 }
48847 },
48848 "permissions" : {
48849 "check" : [
48850 "or",
48851 [
48852 "userid-param",
48853 "self"
48854 ],
48855 [
48856 "userid-group",
48857 [
48858 "User.Modify",
48859 "Sys.Audit"
48860 ]
48861 ]
48862 ]
48863 },
48864 "protected" : 1,
48865 "returns" : {
48866 "description" : "TFA Entry.",
48867 "properties" : {
48868 "created" : {
48869 "description" : "Creation time of this entry as unix epoch.",
48870 "type" : "integer"
48871 },
48872 "description" : {
48873 "description" : "User chosen description for this entry.",
48874 "type" : "string"
48875 },
48876 "enable" : {
48877 "default" : 1,
48878 "description" : "Whether this TFA entry is currently enabled.",
48879 "optional" : 1,
48880 "type" : "boolean"
48881 },
48882 "id" : {
48883 "description" : "The id used to reference this entry.",
48884 "type" : "string"
48885 },
48886 "type" : {
48887 "description" : "TFA Entry Type.",
48888 "enum" : [
48889 "totp",
48890 "u2f",
48891 "webauthn",
48892 "recovery",
48893 "yubico"
48894 ],
48895 "type" : "string"
48896 }
48897 },
48898 "type" : "object"
48899 }
48900 },
48901 "PUT" : {
48902 "allowtoken" : 0,
48903 "description" : "Add a TFA entry for a user.",
48904 "method" : "PUT",
48905 "name" : "update_tfa_entry",
48906 "parameters" : {
48907 "additionalProperties" : 0,
48908 "properties" : {
48909 "description" : {
48910 "description" : "A description to distinguish multiple entries from one another",
48911 "maxLength" : 255,
48912 "optional" : 1,
48913 "type" : "string",
48914 "typetext" : "<string>"
48915 },
48916 "enable" : {
48917 "description" : "Whether the entry should be enabled for login.",
48918 "optional" : 1,
48919 "type" : "boolean",
48920 "typetext" : "<boolean>"
48921 },
48922 "id" : {
48923 "description" : "A TFA entry id.",
48924 "type" : "string",
48925 "typetext" : "<string>"
48926 },
48927 "password" : {
48928 "description" : "The current password.",
48929 "maxLength" : 64,
48930 "minLength" : 5,
48931 "optional" : 1,
48932 "type" : "string",
48933 "typetext" : "<string>"
48934 },
48935 "userid" : {
48936 "description" : "User ID",
48937 "format" : "pve-userid",
48938 "maxLength" : 64,
48939 "type" : "string",
48940 "typetext" : "<string>"
48941 }
48942 }
48943 },
48944 "permissions" : {
48945 "check" : [
48946 "or",
48947 [
48948 "userid-param",
48949 "self"
48950 ],
48951 [
48952 "userid-group",
48953 [
48954 "User.Modify"
48955 ]
48956 ]
48957 ]
48958 },
48959 "protected" : 1,
48960 "returns" : {
48961 "type" : "null"
48962 }
48963 }
48964 },
48965 "leaf" : 1,
48966 "path" : "/access/tfa/{userid}/{id}",
48967 "text" : "{id}"
48968 }
48969 ],
48970 "info" : {
48971 "GET" : {
48972 "allowtoken" : 0,
48973 "description" : "List TFA configurations of users.",
48974 "method" : "GET",
48975 "name" : "list_user_tfa",
48976 "parameters" : {
48977 "additionalProperties" : 0,
48978 "properties" : {
48979 "userid" : {
48980 "description" : "User ID",
48981 "format" : "pve-userid",
48982 "maxLength" : 64,
48983 "type" : "string",
48984 "typetext" : "<string>"
48985 }
48986 }
48987 },
48988 "permissions" : {
48989 "check" : [
48990 "or",
48991 [
48992 "userid-param",
48993 "self"
48994 ],
48995 [
48996 "userid-group",
48997 [
48998 "User.Modify",
48999 "Sys.Audit"
49000 ]
49001 ]
49002 ]
49003 },
49004 "protected" : 1,
49005 "returns" : {
49006 "description" : "A list of the user's TFA entries.",
49007 "items" : {
49008 "description" : "TFA Entry.",
49009 "properties" : {
49010 "created" : {
49011 "description" : "Creation time of this entry as unix epoch.",
49012 "type" : "integer"
49013 },
49014 "description" : {
49015 "description" : "User chosen description for this entry.",
49016 "type" : "string"
49017 },
49018 "enable" : {
49019 "default" : 1,
49020 "description" : "Whether this TFA entry is currently enabled.",
49021 "optional" : 1,
49022 "type" : "boolean"
49023 },
49024 "id" : {
49025 "description" : "The id used to reference this entry.",
49026 "type" : "string"
49027 },
49028 "type" : {
49029 "description" : "TFA Entry Type.",
49030 "enum" : [
49031 "totp",
49032 "u2f",
49033 "webauthn",
49034 "recovery",
49035 "yubico"
49036 ],
49037 "type" : "string"
49038 }
49039 },
49040 "type" : "object"
49041 },
49042 "type" : "array"
49043 }
49044 },
49045 "POST" : {
49046 "allowtoken" : 0,
49047 "description" : "Add a TFA entry for a user.",
49048 "method" : "POST",
49049 "name" : "add_tfa_entry",
49050 "parameters" : {
49051 "additionalProperties" : 0,
49052 "properties" : {
49053 "challenge" : {
49054 "description" : "When responding to a u2f challenge: the original challenge string",
49055 "optional" : 1,
49056 "type" : "string",
49057 "typetext" : "<string>"
49058 },
49059 "description" : {
49060 "description" : "A description to distinguish multiple entries from one another",
49061 "maxLength" : 255,
49062 "optional" : 1,
49063 "type" : "string",
49064 "typetext" : "<string>"
49065 },
49066 "password" : {
49067 "description" : "The current password.",
49068 "maxLength" : 64,
49069 "minLength" : 5,
49070 "optional" : 1,
49071 "type" : "string",
49072 "typetext" : "<string>"
49073 },
49074 "totp" : {
49075 "description" : "A totp URI.",
49076 "optional" : 1,
49077 "type" : "string",
49078 "typetext" : "<string>"
49079 },
49080 "type" : {
49081 "description" : "TFA Entry Type.",
49082 "enum" : [
49083 "totp",
49084 "u2f",
49085 "webauthn",
49086 "recovery",
49087 "yubico"
49088 ],
49089 "type" : "string"
49090 },
49091 "userid" : {
49092 "description" : "User ID",
49093 "format" : "pve-userid",
49094 "maxLength" : 64,
49095 "type" : "string",
49096 "typetext" : "<string>"
49097 },
49098 "value" : {
49099 "description" : "The current value for the provided totp URI, or a Webauthn/U2F challenge response",
49100 "optional" : 1,
49101 "type" : "string",
49102 "typetext" : "<string>"
49103 }
49104 }
49105 },
49106 "permissions" : {
49107 "check" : [
49108 "or",
49109 [
49110 "userid-param",
49111 "self"
49112 ],
49113 [
49114 "userid-group",
49115 [
49116 "User.Modify"
49117 ]
49118 ]
49119 ]
49120 },
49121 "protected" : 1,
49122 "returns" : {
49123 "properties" : {
49124 "challenge" : {
49125 "description" : "When adding u2f entries, this contains a challenge the user must respond to in order to finish the registration.",
49126 "optional" : 1,
49127 "type" : "string"
49128 },
49129 "id" : {
49130 "description" : "The id of a newly added TFA entry.",
49131 "type" : "string"
49132 },
49133 "recovery" : {
49134 "description" : "When adding recovery codes, this contains the list of codes to be displayed to the user",
49135 "items" : {
49136 "description" : "A recovery entry.",
49137 "type" : "string"
49138 },
49139 "optional" : 1,
49140 "type" : "array"
49141 }
49142 },
49143 "type" : "object"
49144 }
49145 }
49146 },
49147 "leaf" : 0,
49148 "path" : "/access/tfa/{userid}",
49149 "text" : "{userid}"
49150 }
49151 ],
49152 "info" : {
49153 "GET" : {
49154 "allowtoken" : 0,
49155 "description" : "List TFA configurations of users.",
49156 "method" : "GET",
49157 "name" : "list_tfa",
49158 "parameters" : {
49159 "additionalProperties" : 0
49160 },
49161 "permissions" : {
49162 "description" : "Returns all or just the logged-in user, depending on privileges.",
49163 "user" : "all"
49164 },
49165 "protected" : 1,
49166 "returns" : {
49167 "description" : "The list tuples of user and TFA entries.",
49168 "items" : {
49169 "properties" : {
49170 "entries" : {
49171 "items" : {
49172 "description" : "TFA Entry.",
49173 "properties" : {
49174 "created" : {
49175 "description" : "Creation time of this entry as unix epoch.",
49176 "type" : "integer"
49177 },
49178 "description" : {
49179 "description" : "User chosen description for this entry.",
49180 "type" : "string"
49181 },
49182 "enable" : {
49183 "default" : 1,
49184 "description" : "Whether this TFA entry is currently enabled.",
49185 "optional" : 1,
49186 "type" : "boolean"
49187 },
49188 "id" : {
49189 "description" : "The id used to reference this entry.",
49190 "type" : "string"
49191 },
49192 "type" : {
49193 "description" : "TFA Entry Type.",
49194 "enum" : [
49195 "totp",
49196 "u2f",
49197 "webauthn",
49198 "recovery",
49199 "yubico"
49200 ],
49201 "type" : "string"
49202 }
49203 },
49204 "type" : "object"
49205 },
49206 "type" : "array"
49207 },
49208 "userid" : {
49209 "description" : "User this entry belongs to.",
49210 "type" : "string"
49211 }
49212 },
49213 "type" : "object"
49214 },
49215 "type" : "array"
49216 }
49217 },
49218 "POST" : {
49219 "allowtoken" : 0,
49220 "description" : "Finish a u2f challenge.",
49221 "method" : "POST",
49222 "name" : "verify_tfa",
49223 "parameters" : {
49224 "additionalProperties" : 0,
49225 "properties" : {
49226 "response" : {
49227 "description" : "The response to the current authentication challenge.",
49228 "type" : "string",
49229 "typetext" : "<string>"
49230 }
49231 }
49232 },
49233 "permissions" : {
49234 "user" : "all"
49235 },
49236 "protected" : 1,
49237 "returns" : {
49238 "properties" : {
49239 "ticket" : {
49240 "type" : "string"
49241 }
49242 },
49243 "type" : "object"
49244 }
49245 }
49246 },
49247 "leaf" : 0,
49248 "path" : "/access/tfa",
49249 "text" : "tfa"
49250 },
56122987 49251 {
56122987 49252 "info" : {
44660702 49253 "GET" : {
e9cd3bd4 49254 "allowtoken" : 1,
2489d6df 49255 "description" : "Dummy. Useful for formatters which want to provide a login page.",
44660702
DM
49256 "method" : "GET",
49257 "name" : "get_ticket",
49258 "parameters" : {
49259 "additionalProperties" : 0
49260 },
49261 "permissions" : {
49262 "user" : "world"
49263 },
49264 "returns" : {
49265 "type" : "null"
49266 }
49267 },
56122987 49268 "POST" : {
e9cd3bd4 49269 "allowtoken" : 0,
44660702 49270 "description" : "Create or verify authentication ticket.",
56122987 49271 "method" : "POST",
44660702
DM
49272 "name" : "create_ticket",
49273 "parameters" : {
49274 "additionalProperties" : 0,
56122987 49275 "properties" : {
5370fa8c
TL
49276 "new-format" : {
49277 "default" : 0,
49278 "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",
49279 "optional" : 1,
49280 "type" : "boolean",
49281 "typetext" : "<boolean>"
49282 },
44660702
DM
49283 "otp" : {
49284 "description" : "One-time password for Two-factor authentication.",
7aacca6f 49285 "optional" : 1,
013dc89f
DM
49286 "type" : "string",
49287 "typetext" : "<string>"
56122987 49288 },
7aacca6f
DM
49289 "password" : {
49290 "description" : "The secret password. This can also be a valid ticket.",
013dc89f
DM
49291 "type" : "string",
49292 "typetext" : "<string>"
7aacca6f 49293 },
44660702
DM
49294 "path" : {
49295 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
7aacca6f 49296 "maxLength" : 64,
56122987 49297 "optional" : 1,
56122987 49298 "requires" : "privs",
013dc89f
DM
49299 "type" : "string",
49300 "typetext" : "<string>"
44660702
DM
49301 },
49302 "privs" : {
7aacca6f 49303 "description" : "Verify ticket, and check if user have access 'privs' on 'path'",
44660702
DM
49304 "format" : "pve-priv-list",
49305 "maxLength" : 64,
56122987 49306 "optional" : 1,
44660702 49307 "requires" : "path",
013dc89f
DM
49308 "type" : "string",
49309 "typetext" : "<string>"
56122987
DM
49310 },
49311 "realm" : {
56122987 49312 "description" : "You can optionally pass the realm using this parameter. Normally the realm is simply added to the username <username>@<relam>.",
44660702 49313 "format" : "pve-realm",
7aacca6f 49314 "maxLength" : 32,
44660702 49315 "optional" : 1,
013dc89f
DM
49316 "type" : "string",
49317 "typetext" : "<string>"
56122987 49318 },
5370fa8c
TL
49319 "tfa-challenge" : {
49320 "description" : "The signed TFA challenge string the user wants to respond to.",
49321 "optional" : 1,
49322 "type" : "string",
49323 "typetext" : "<string>"
49324 },
56122987
DM
49325 "username" : {
49326 "description" : "User name",
44660702 49327 "maxLength" : 64,
013dc89f
DM
49328 "type" : "string",
49329 "typetext" : "<string>"
56122987 49330 }
44660702 49331 }
7aacca6f 49332 },
56122987 49333 "permissions" : {
44660702 49334 "description" : "You need to pass valid credientials.",
56122987
DM
49335 "user" : "world"
49336 },
44660702 49337 "protected" : 1,
7aacca6f 49338 "returns" : {
56122987 49339 "properties" : {
44660702
DM
49340 "CSRFPreventionToken" : {
49341 "optional" : 1,
49342 "type" : "string"
56122987 49343 },
e2d681b3
TL
49344 "clustername" : {
49345 "optional" : 1,
49346 "type" : "string"
49347 },
44660702
DM
49348 "ticket" : {
49349 "optional" : 1,
49350 "type" : "string"
49351 },
49352 "username" : {
56122987
DM
49353 "type" : "string"
49354 }
49355 },
44660702 49356 "type" : "object"
7aacca6f 49357 }
7aacca6f
DM
49358 }
49359 },
44660702
DM
49360 "leaf" : 1,
49361 "path" : "/access/ticket",
49362 "text" : "ticket"
7aacca6f 49363 },
56122987 49364 {
56122987 49365 "info" : {
7aacca6f 49366 "PUT" : {
e9cd3bd4 49367 "allowtoken" : 0,
44660702 49368 "description" : "Change user password.",
7aacca6f 49369 "method" : "PUT",
e2d681b3 49370 "name" : "change_password",
56122987
DM
49371 "parameters" : {
49372 "additionalProperties" : 0,
49373 "properties" : {
44660702
DM
49374 "password" : {
49375 "description" : "The new password.",
49376 "maxLength" : 64,
49377 "minLength" : 5,
013dc89f
DM
49378 "type" : "string",
49379 "typetext" : "<string>"
7aacca6f 49380 },
44660702
DM
49381 "userid" : {
49382 "description" : "User ID",
49383 "format" : "pve-userid",
49384 "maxLength" : 64,
013dc89f
DM
49385 "type" : "string",
49386 "typetext" : "<string>"
56122987 49387 }
7aacca6f 49388 }
56122987
DM
49389 },
49390 "permissions" : {
49391 "check" : [
44660702 49392 "or",
56122987 49393 [
44660702
DM
49394 "userid-param",
49395 "self"
49396 ],
49397 [
49398 "and",
49399 [
49400 "userid-param",
49401 "Realm.AllocateUser"
49402 ],
49403 [
49404 "userid-group",
49405 [
49406 "User.Modify"
49407 ]
49408 ]
56122987 49409 ]
7aacca6f 49410 ],
44660702 49411 "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 49412 },
44660702 49413 "protected" : 1,
7aacca6f
DM
49414 "returns" : {
49415 "type" : "null"
44660702
DM
49416 }
49417 }
49418 },
49419 "leaf" : 1,
49420 "path" : "/access/password",
49421 "text" : "password"
95895385 49422 },
e9cd3bd4
TL
49423 {
49424 "info" : {
49425 "GET" : {
49426 "allowtoken" : 1,
49427 "description" : "Retrieve effective permissions of given user/token.",
49428 "method" : "GET",
49429 "name" : "permissions",
49430 "parameters" : {
49431 "additionalProperties" : 0,
49432 "properties" : {
49433 "path" : {
49434 "description" : "Only dump this specific path, not the whole tree.",
49435 "optional" : 1,
49436 "type" : "string",
49437 "typetext" : "<string>"
49438 },
49439 "userid" : {
49440 "description" : "User ID or full API token ID",
49441 "optional" : 1,
49442 "pattern" : "(?^:^(?^:[^\\s:/]+)\\@(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+)(?:!(?^:[A-Za-z][A-Za-z0-9\\.\\-_]+))?$)",
49443 "type" : "string"
49444 }
49445 }
49446 },
49447 "permissions" : {
49448 "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.",
49449 "user" : "all"
49450 },
49451 "returns" : {
49452 "description" : "Map of \"path\" => (Map of \"privilege\" => \"propagate boolean\").",
49453 "type" : "object"
49454 }
49455 }
49456 },
49457 "leaf" : 1,
49458 "path" : "/access/permissions",
49459 "text" : "permissions"
44660702
DM
49460 }
49461 ],
49462 "info" : {
49463 "GET" : {
e9cd3bd4 49464 "allowtoken" : 1,
44660702
DM
49465 "description" : "Directory index.",
49466 "method" : "GET",
49467 "name" : "index",
49468 "parameters" : {
49469 "additionalProperties" : 0
49470 },
49471 "permissions" : {
49472 "user" : "all"
49473 },
49474 "returns" : {
49475 "items" : {
49476 "properties" : {
49477 "subdir" : {
49478 "type" : "string"
49479 }
7aacca6f 49480 },
44660702
DM
49481 "type" : "object"
49482 },
49483 "links" : [
49484 {
49485 "href" : "{subdir}",
49486 "rel" : "child"
49487 }
49488 ],
49489 "type" : "array"
49490 }
49491 }
49492 },
49493 "leaf" : 0,
49494 "path" : "/access",
49495 "text" : "access"
49496 },
49497 {
49498 "children" : [
49499 {
49500 "info" : {
49501 "DELETE" : {
e9cd3bd4 49502 "allowtoken" : 1,
7aacca6f 49503 "description" : "Delete pool.",
44660702
DM
49504 "method" : "DELETE",
49505 "name" : "delete_pool",
7aacca6f
DM
49506 "parameters" : {
49507 "additionalProperties" : 0,
49508 "properties" : {
49509 "poolid" : {
49510 "format" : "pve-poolid",
013dc89f
DM
49511 "type" : "string",
49512 "typetext" : "<string>"
7aacca6f
DM
49513 }
49514 }
49515 },
56122987
DM
49516 "permissions" : {
49517 "check" : [
49518 "perm",
49519 "/pool/{poolid}",
49520 [
49521 "Pool.Allocate"
49522 ]
44660702
DM
49523 ],
49524 "description" : "You can only delete empty pools (no members)."
49525 },
49526 "protected" : 1,
49527 "returns" : {
49528 "type" : "null"
7aacca6f
DM
49529 }
49530 },
49531 "GET" : {
e9cd3bd4 49532 "allowtoken" : 1,
7aacca6f 49533 "description" : "Get pool configuration.",
44660702 49534 "method" : "GET",
7aacca6f 49535 "name" : "read_pool",
56122987 49536 "parameters" : {
44660702 49537 "additionalProperties" : 0,
56122987
DM
49538 "properties" : {
49539 "poolid" : {
44660702 49540 "format" : "pve-poolid",
013dc89f
DM
49541 "type" : "string",
49542 "typetext" : "<string>"
c30bb419
TL
49543 },
49544 "type" : {
49545 "enum" : [
49546 "qemu",
49547 "lxc",
49548 "storage"
49549 ],
49550 "optional" : 1,
49551 "type" : "string"
56122987 49552 }
44660702 49553 }
56122987 49554 },
56122987 49555 "permissions" : {
56122987
DM
49556 "check" : [
49557 "perm",
49558 "/pool/{poolid}",
49559 [
0695fdaf 49560 "Pool.Audit"
56122987
DM
49561 ]
49562 ]
49563 },
7aacca6f 49564 "returns" : {
44660702 49565 "additionalProperties" : 0,
56122987 49566 "properties" : {
44660702
DM
49567 "comment" : {
49568 "optional" : 1,
49569 "type" : "string"
49570 },
7aacca6f 49571 "members" : {
7aacca6f
DM
49572 "items" : {
49573 "additionalProperties" : 1,
7aacca6f 49574 "properties" : {
7aacca6f
DM
49575 "id" : {
49576 "type" : "string"
49577 },
49578 "node" : {
49579 "type" : "string"
49580 },
44660702
DM
49581 "storage" : {
49582 "optional" : 1,
49583 "type" : "string"
49584 },
7aacca6f 49585 "type" : {
7aacca6f
DM
49586 "enum" : [
49587 "qemu",
49588 "lxc",
49589 "openvz",
49590 "storage"
44660702
DM
49591 ],
49592 "type" : "string"
49593 },
49594 "vmid" : {
49595 "optional" : 1,
49596 "type" : "integer"
7aacca6f 49597 }
44660702
DM
49598 },
49599 "type" : "object"
49600 },
49601 "type" : "array"
49602 }
49603 },
49604 "type" : "object"
49605 }
49606 },
49607 "PUT" : {
e9cd3bd4 49608 "allowtoken" : 1,
44660702
DM
49609 "description" : "Update pool data.",
49610 "method" : "PUT",
49611 "name" : "update_pool",
49612 "parameters" : {
49613 "additionalProperties" : 0,
49614 "properties" : {
56122987
DM
49615 "comment" : {
49616 "optional" : 1,
013dc89f
DM
49617 "type" : "string",
49618 "typetext" : "<string>"
44660702
DM
49619 },
49620 "delete" : {
49621 "description" : "Remove vms/storage (instead of adding it).",
49622 "optional" : 1,
013dc89f
DM
49623 "type" : "boolean",
49624 "typetext" : "<boolean>"
44660702
DM
49625 },
49626 "poolid" : {
49627 "format" : "pve-poolid",
013dc89f
DM
49628 "type" : "string",
49629 "typetext" : "<string>"
44660702
DM
49630 },
49631 "storage" : {
49632 "description" : "List of storage IDs.",
49633 "format" : "pve-storage-id-list",
49634 "optional" : 1,
013dc89f
DM
49635 "type" : "string",
49636 "typetext" : "<string>"
44660702
DM
49637 },
49638 "vms" : {
49639 "description" : "List of virtual machines.",
49640 "format" : "pve-vmid-list",
49641 "optional" : 1,
013dc89f
DM
49642 "type" : "string",
49643 "typetext" : "<string>"
56122987 49644 }
44660702
DM
49645 }
49646 },
49647 "permissions" : {
49648 "check" : [
49649 "perm",
49650 "/pool/{poolid}",
49651 [
49652 "Pool.Allocate"
49653 ]
49654 ],
49655 "description" : "You also need the right to modify permissions on any object you add/delete."
49656 },
49657 "protected" : 1,
49658 "returns" : {
49659 "type" : "null"
56122987
DM
49660 }
49661 }
49662 },
44660702
DM
49663 "leaf" : 1,
49664 "path" : "/pools/{poolid}",
7aacca6f 49665 "text" : "{poolid}"
56122987 49666 }
7aacca6f 49667 ],
56122987
DM
49668 "info" : {
49669 "GET" : {
e9cd3bd4 49670 "allowtoken" : 1,
44660702
DM
49671 "description" : "Pool index.",
49672 "method" : "GET",
49673 "name" : "index",
49674 "parameters" : {
49675 "additionalProperties" : 0
49676 },
49677 "permissions" : {
0695fdaf 49678 "description" : "List all pools where you have Pool.Audit permissions on /pool/<pool>.",
44660702
DM
49679 "user" : "all"
49680 },
56122987 49681 "returns" : {
44660702
DM
49682 "items" : {
49683 "properties" : {
49684 "poolid" : {
49685 "type" : "string"
49686 }
56122987 49687 },
44660702
DM
49688 "type" : "object"
49689 },
49690 "links" : [
49691 {
49692 "href" : "{poolid}",
49693 "rel" : "child"
49694 }
49695 ],
49696 "type" : "array"
49697 }
49698 },
49699 "POST" : {
e9cd3bd4 49700 "allowtoken" : 1,
44660702
DM
49701 "description" : "Create new pool.",
49702 "method" : "POST",
49703 "name" : "create_pool",
49704 "parameters" : {
49705 "additionalProperties" : 0,
49706 "properties" : {
49707 "comment" : {
49708 "optional" : 1,
013dc89f
DM
49709 "type" : "string",
49710 "typetext" : "<string>"
7aacca6f 49711 },
44660702
DM
49712 "poolid" : {
49713 "format" : "pve-poolid",
013dc89f
DM
49714 "type" : "string",
49715 "typetext" : "<string>"
56122987
DM
49716 }
49717 }
49718 },
56122987 49719 "permissions" : {
44660702
DM
49720 "check" : [
49721 "perm",
49722 "/pool/{poolid}",
49723 [
49724 "Pool.Allocate"
49725 ]
49726 ]
56122987 49727 },
44660702
DM
49728 "protected" : 1,
49729 "returns" : {
49730 "type" : "null"
49731 }
49732 }
49733 },
49734 "leaf" : 0,
49735 "path" : "/pools",
49736 "text" : "pools"
49737 },
49738 {
49739 "info" : {
49740 "GET" : {
e9cd3bd4 49741 "allowtoken" : 1,
5370fa8c 49742 "description" : "API version details, including some parts of the global datacenter config.",
44660702
DM
49743 "method" : "GET",
49744 "name" : "version",
7aacca6f
DM
49745 "parameters" : {
49746 "additionalProperties" : 0
49747 },
44660702
DM
49748 "permissions" : {
49749 "user" : "all"
49750 },
49751 "returns" : {
49752 "properties" : {
5370fa8c
TL
49753 "console" : {
49754 "description" : "The default console viewer to use.",
49755 "enum" : [
49756 "applet",
49757 "vv",
49758 "html5",
49759 "xtermjs"
49760 ],
49761 "optional" : 1,
49762 "type" : "string"
49763 },
44660702 49764 "release" : {
5370fa8c 49765 "description" : "The current Proxmox VE point release in `x.y` format.",
44660702
DM
49766 "type" : "string"
49767 },
49768 "repoid" : {
5370fa8c 49769 "description" : "The short git revision from which this version was build.",
44660702
DM
49770 "type" : "string"
49771 },
49772 "version" : {
5370fa8c 49773 "description" : "The full pve-manager package version of this node.",
44660702
DM
49774 "type" : "string"
49775 }
49776 },
49777 "type" : "object"
49778 }
56122987
DM
49779 }
49780 },
44660702
DM
49781 "leaf" : 1,
49782 "path" : "/version",
56122987
DM
49783 "text" : "version"
49784 }
49785]
49786;
49787